Tejaswini Chile
847d7ea082
feat: Add support to uncategorized articles ( #6912 )
2023-05-02 15:35:26 +05:30
Shivam Mishra
d95283f5c2
feat: improvements to priority ( #6981 )
...
* fix: colors for urgent icon
* feat: trigger updated event on priority change
* fix: specs
2023-04-25 22:28:19 +05:30
Shivam Mishra
5600b518ac
fix: validate template_params for WhatsApp ( #6881 )
...
- Add JsonSchemaValidator, which takes a declarative schema and validates it for a given property.
- Add specs for JsonSchemaValidator
- Enable the validator for template_params
2023-04-25 16:50:36 +05:30
Shivam Mishra
0bbb28c432
feat: sort conversation on priority ( #6943 )
...
* feat: update seed script to include prioritt
* feat: add sort_handler for conversations
* test: sort on priority order
---------
Co-authored-by: Muhsin Keloth <muhsinkeramam@gmail.com>
2023-04-25 09:47:47 +05:30
Muhsin Keloth
92fa9c4fdc
feat: Ability to improve drafts in the editor using GPT integration ( #6957 )
...
ref: https://github.com/chatwoot/chatwoot/issues/6436
fixes: https://linear.app/chatwoot/issue/CW-1552/ability-to-rephrase-text-in-the-editor-using-gpt-integration
---------
Co-authored-by: Sojan <sojan@pepalo.com>
Co-authored-by: Nithin David Thomas <1277421+nithindavid@users.noreply.github.com>
2023-04-24 23:52:23 +05:30
Tejaswini Chile
e3193dcabc
feat: Link help center portal to an Inbox ( #6903 )
2023-04-24 12:49:52 +05:30
Shivam Mishra
a34729c153
feat: add activity message for priority change ( #6933 )
...
* feat: add priority const
* feat: add toggle priority method
* feat: update controller route and specs
* refactor: status change method
* refactor: abstract label change and mute activity
* feat: add priority change_activity
* fix: interpolation for previous_changes
* refactor: reduce cognitive complexity of priority_change_activity
* refactor: move priority activity message handler to a separate module
* refactor: move typing logic to a service
* refactor: tests to reduce complexity
* fix: typo
* fix: constants
* fix: priority conditions
* fix: add a response
* fix: argument destructuring in I18n.t
---------
Co-authored-by: Muhsin Keloth <muhsinkeramam@gmail.com>
2023-04-20 16:41:53 +05:30
Pranav Raj S
e877b01e00
fix: Invalidate cache if any of the related objects change ( #6860 )
...
* fix: Invalidate cache if any of the related objects change
* Add specs:
* Update context
---------
Co-authored-by: Shivam Mishra <scm.mymail@gmail.com>
2023-04-10 15:47:13 +05:30
Tejaswini Chile
6a0ca35de4
Feat: detect language of the message content ( #6660 )
2023-04-04 08:57:27 +05:30
Sojan Jose
7e3a4d2c20
fix: Adds assignee as a participant during auto-assign ( #6789 )
...
- Ensures that the assignee is added as a participant during auto-assign
2023-03-30 11:39:53 +05:30
Chamath K.B. Attanayaka
6002394fcf
feat: Support input_select messages on telegram ( #5887 )
...
- Adding interactive button support for telegram for outgoing and incoming messages.
Co-authored-by: Sojan Jose <sojan@pepalo.com>
2023-03-28 22:50:07 +05:30
Tejaswini Chile
54a809ea54
fix: Case insensitive email match ( #6760 )
...
Fixes: https://linear.app/chatwoot/issue/CW-1354/email-id-case-sensitive
Co-authored-by: Sojan <sojan@pepalo.com>
2023-03-28 15:23:41 +05:30
Shivam Mishra
4c10845acd
fix: [CW-44] don't count private message as first reply ( #6707 )
...
* fix: don't count private message as first reply
* fix: update first_human_response_logic
* refactor: separate valid_first_reply method
* test: valid first reply
* feat: add check for automation rule
* test: update step that creates data
* fix: add boundary condition in case first_reply_created_at is not present
* test: fix report builder
* refactor: conditions
* test: remove second message condition
2023-03-27 21:23:37 +05:30
Muhsin Keloth
5b7bed9640
chore: Auto capitalize the name field while sending the canned response/variables ( #6758 )
...
* capitalize name before sending the message
* Fix specs
* Code cleanups
2023-03-27 18:49:48 +05:30
Tejaswini Chile
ce807d3251
fix: Condition based backend validation ( #6554 )
2023-02-27 20:22:07 +05:30
Pranav Raj S
7044eda281
chore: Add controllers for conversation participants ( #6462 )
...
Co-authored-by: Aswin Dev P.S <aswindevps@gmail.com>
Co-authored-by: Sojan Jose <sojan@chatwoot.com>
2023-02-15 16:33:31 -08:00
Tejaswini Chile
6013cc9bea
fix: validate instagram story only while saving the message ( #6340 )
2023-01-30 13:03:59 +05:30
Pranav Raj S
5d331f0bb2
fix: Add missing timestamp in the real-time event ( #6349 )
...
* fix: Add missing timestamp in the real-time event
* Fix broken specs
2023-01-25 15:21:41 -08:00
Tejaswini Chile
00cbdaa8ca
Feat: Support for Microsoft Oauth in Email Channel ( #6227 )
...
- Adds the backend APIs required for Microsoft Email Channels
Co-authored-by: Pranav Raj S <pranav@chatwoot.com>
Co-authored-by: Sojan <sojan@pepalo.com>
2023-01-17 02:39:05 +05:30
Sojan Jose
ad782e450e
fix: Stop processing broken liquid tags ( #6236 )
2023-01-11 17:41:02 +05:30
Muhsin Keloth
078ff615ee
feat: Add support for template variables in messages content ( #6215 )
...
Fixes : #6078
Co-authored-by: Sojan <sojan@pepalo.com>
2023-01-10 16:00:34 +05:30
Tejaswini Chile
7dc790a7e0
fix: Automatically remove expired story mention ( #5300 )
...
When a user mentions the connected Instagram page in a story, the story's content is downloaded in Chatwoot, then if the user deletes the story, the content persists in the platform.
fixes : #5258
2022-12-08 15:55:24 +03:00
Nithin David Thomas
85b52a1d3f
feat: Add a view for unattended conversations ( #5890 )
...
Co-authored-by: Pranav Raj S <pranav@chatwoot.com>
2022-11-29 08:18:00 -08:00
Tejaswini Chile
fc9fc5a661
fix: destroy bulk service ( #5921 )
2022-11-25 22:46:50 +05:30
Sojan Jose
8ea0660862
chore: Add reauthorization prompt for Whatsapp Channel ( #5929 )
...
- Add reauthorization prompt for Whatsapp Channel
fixes : #5782
2022-11-24 14:50:32 +03:00
Tejaswini Chile
826a735cdb
fix: Assign agent action changes ( #5827 )
2022-11-15 13:15:27 +05:30
Fayaz Ahmed
9eb861a3b7
feat: Custom attributes in automations and refactor ( #4548 )
...
* Custom attributes
* Custom Attrs Manifest
* Fix dropdown values for custom attributes
* Handle edit mode for custom attributes
* Ported duplicate logic to a mixin
* fix Code climate issue
* Fix Codeclimate complexity warning
* Bug fix - Custom attributes getting duplicated
* Bug fixes and Code Climate issue fix
* Code Climate Issues Breakdown
* Fix test spec
* Add labels for Custom attributes in dropdown
* Refactor
* Refactor Automion mixin
* Refactor Mixin
* Refactor getOperator
* Fix getOperatorType
* File name method refactor
* Refactor appendNewCondition
* spec update
* Refactor methods
* Mixin Spec update
* Automation Mixins Test Specs
* Mixin Spec Rerun
* Automation validations mixin spec
* Automation helper test spec
* Send custom_attr key
* Fix spec fixtures
* fix: Changes for custom attribute type and lower case search
* fix: Specs
* fix: Specs
* fix: Ruby version change
* fix: Ruby version change
* Removes Lowercased values and fix label value in api payload
* Fix specs
* Fixed Query Spec
* Removed disabled labels if no attributes are present
* Code Climate Fixes
* fix: custom attribute with indifferent access
* fix: custom attribute with indifferent access
* Fix specs
* Minor label fix
* REtrigger circle ci build
* Update app/javascript/shared/mixins/specs/automationMixin.spec.js
* Update app/javascript/shared/mixins/specs/automationMixin.spec.js
* fix: Custom attribute case insensitivity search
* Add missing reset action method to input
* Set team_input to single select instead of multiple
* fix: remove value case check for date,boolean and number data type
* fix: cognitive complexity
* fix: cognitive complexity
* fix: Fixed activity message for automation system
* fix: Fixed activity message for automation system
* fix: Fixed activity message for automation system
* fix: codeclimate
* fix: codeclimate
* fix: action cable events for label update
* fix: codeclimate, conversation modela number of methods
* fix: codeclimate, conversation modela number of methods
* fix: codeclimate, conversation modela number of methods
* fix: codeclimate, conversation modela number of methods
* Fix margin bottom for attachment button
* Remove margin bottom to avoid conflict from macros
* Fix automation action query generator using the right key
* fix: not running message created event for activity message
* fix: not running message created event for activity message
* codeclimate fix
* codeclimate fix
* codeclimate fix
* Update app/javascript/dashboard/mixins/automations/methodsMixin.js
Co-authored-by: Sivin Varghese <64252451+iamsivin@users.noreply.github.com>
* Update app/javascript/shared/mixins/specs/automationHelper.spec.js
Co-authored-by: Sivin Varghese <64252451+iamsivin@users.noreply.github.com>
* Update app/javascript/dashboard/helper/automationHelper.js
Co-authored-by: Sivin Varghese <64252451+iamsivin@users.noreply.github.com>
* Update app/javascript/dashboard/mixins/automations/methodsMixin.js
Co-authored-by: Sivin Varghese <64252451+iamsivin@users.noreply.github.com>
Co-authored-by: Pranav Raj S <pranav@chatwoot.com>
Co-authored-by: Tejaswini <tejaswini@chatwoot.com>
Co-authored-by: Sivin Varghese <64252451+iamsivin@users.noreply.github.com>
Co-authored-by: Sojan Jose <sojan@pepalo.com>
Co-authored-by: Muhsin Keloth <muhsinkeramam@gmail.com>
2022-11-10 10:53:29 +05:30
Tejaswini Chile
48373628a1
fix: Macros authorizations ( #5779 )
...
Macros policy update.
ref: #5730
2022-11-07 17:46:00 -08:00
smartdev58
9c0cce0392
chore: Mark conversations as pending instead of reopen when bot is present ( #5751 )
...
With this change, conversations are marked as pending instead of reopening when a bot is connected to that Inbox.
Fixes : #5668
2022-11-02 13:54:56 -07:00
Sojan Jose
6cfd594d85
fix: flaky test whatsapp_cloud_service_spec.rb:17 ( #5786 )
...
Fix flaky test: flaky /spec/services/whatsapp/providers/whatsapp_cloud_service_spec.rb:17
example build: https://app.circleci.com/pipelines/github/chatwoot/chatwoot/48955/workflows/a2959d25-19ea-4812-ba15-5aac69c43265/jobs/49523
Cause: factory bot can create phone numbers of length 15 digits, which is valid e164, while our regex only handled up to 14 digits
2022-11-01 19:51:42 -07:00
Tejaswini Chile
4a299a9441
fix: Add an action cable events for label updates ( #5694 )
...
Co-authored-by: Pranav Raj S <pranav@chatwoot.com>
2022-10-21 16:12:35 -07:00
Tejaswini Chile
782165478b
fix: Update article count in portal admin dashboard ( #5647 )
...
Co-authored-by: Pranav Raj S <pranav@chatwoot.com>
2022-10-21 13:43:15 -07:00
Sojan Jose
2423def8e8
chore: Add attachments key to message_created webhook payload ( #5659 )
...
- Add attachments key to `message_created` webhook payload
2022-10-17 17:36:56 -07:00
Tejaswini Chile
fca629a32a
fix: Update timezone to get wday from working_hours ( #5605 )
...
Co-authored-by: Pranav Raj S <pranav@chatwoot.com>
2022-10-12 14:32:54 -07:00
Pranav Raj S
38776906ab
chore: Generate webhook-verify-token automatically ( #5593 )
...
- Autogenerate webhook verification token in the WhatsAppCloud channel.
Co-authored-by: Sojan <sojan@pepalo.com>
2022-10-11 17:32:31 -07:00
Tejaswini Chile
7b54990ae6
fix: Updated IMAP errors add method ( #5520 )
...
fixes : #5519
2022-09-30 11:33:00 -07:00
Tejaswini Chile
57fcb79d71
fix: Article slug auto saves ( #5524 )
...
- Auto save article slug
2022-09-30 07:25:23 -07:00
OMAR.A
1819041f5a
fix: "wa_source_id" function return value ( #5451 )
...
- Fix contact inbox builder returning invalid WhatsApp source id
- Add specs to cover source id validations
Co-authored-by: Sojan Jose <sojan@pepalo.com>
2022-09-29 10:34:55 -07:00
Tejaswini Chile
c1c57fb2cd
fix: Add slug to articles ( #5500 )
2022-09-27 12:27:18 -07:00
Sojan Jose
913224ad84
chore: Normalize portal slug to nil ( #5487 )
2022-09-22 14:08:48 -07:00
Jordan Brough
59b31615ed
chore: Use "create!" and "save!" bang methods when not checking the result ( #5358 )
...
* Use "create!" when not checking for errors on the result
* Use "save!" when not checking the result
2022-09-13 17:40:06 +05:30
Sojan Jose
2ecb2ca0f0
feat: Enable Capacity Config UI ( #5164 )
...
- Enables Capacity Config in UI
- Rewrite auto assignment Logic to consider only online agents
fixes : #4990
2022-08-16 16:58:23 +05:30
Tejaswini Chile
2397326324
fix: Auto populate team after assigned via API ( #5250 )
2022-08-12 13:40:28 +05:30
Sojan Jose
74fdfffe08
fix: Notification page breakages ( #5236 )
...
- Remove the cascading foreign key indexes
- Add migration to clean up existing objects
fixes : #4285
2022-08-10 13:46:46 +02:00
Tejaswini Chile
596b611fc0
fix: search with status and author ( #5152 )
2022-08-02 15:28:27 +05:30
Tejaswini Chile
41df70fb96
chore: Add articles metadata ( #5125 )
2022-07-28 13:59:16 +05:30
Tejaswini Chile
f6891aebbb
fix: Set account default language in account API ( #5086 )
2022-07-26 22:42:20 +05:30
Tejaswini Chile
6a4c0a1578
feat: Execute macro actions, for the conversation ( #5066 )
2022-07-26 12:41:22 +05:30
Sojan Jose
6a6a37a67b
chore: Ability to Disable Gravatars ( #5027 )
...
fixes : #3853
- Introduced DISABLE_GRAVATAR Global Config, which will stop chatwoot from making API requests to gravatar
- Cleaned up avatar-related logic and centralized it into the avatarable concern
- Added specs for the missing cases
- Added migration for existing installations to move the avatar to attachment, rather than making the API that results in 404.
2022-07-21 19:27:12 +02:00
Tejaswini Chile
0cee42a9f9
feat: Macros CRUD api ( #5047 )
2022-07-19 17:37:00 +05:30
Tejaswini Chile
00dc65ef73
fix: Twilio validation over blank messaging_service_sid ( #5055 )
2022-07-18 20:02:37 +05:30
Sojan Jose
4187428729
chore: Update dependencies to the latest versions ( #5033 )
2022-07-15 09:51:59 +07:00
Tejaswini Chile
23ac1c0334
feat: Added portal logo and the updated the JSON ( #4996 )
2022-07-11 12:43:24 +05:30
Jordan Brough
49d08a6773
feat: Support Twilio Messaging Services ( #4242 )
...
This allows sending and receiving from multiple phone numbers using Twilio messaging services
Fixes : #4204
2022-07-08 18:20:07 +05:30
Tejaswini Chile
fdf449dc87
Feat: Article public apis ( #4955 )
2022-07-08 17:24:38 +05:30
Sojan Jose
e4b159dd54
chore: Fix contact model silently discarding invalid attributes ( #4994 )
...
fixes : #4775
2022-07-08 13:58:09 +05:30
Sojan Jose
a6c609f43d
feat: Support for Whatsapp Cloud API ( #4938 )
...
Ability to configure Whatsapp Cloud API Inboxes
fixes : #4712
2022-07-06 21:45:03 +02:00
Tejaswini Chile
b86638faac
fix: last incoming message sort ( #4972 )
2022-07-06 00:37:43 +05:30
Tejaswini Chile
ae59d0a343
feat: CRUD operation for associated articles to current article ( #4912 )
2022-07-04 20:29:44 +05:30
Tejaswini Chile
ac7ebe516a
fix: Add validation for the inbox name to avoid special characters ( #4920 )
2022-06-30 10:59:37 +05:30
Tejaswini Chile
df1bf112ea
feat: Category API to handle linked categories and parent-sub categories ( #4879 )
2022-06-28 11:23:20 +05:30
Tejaswini Chile
ffd102cdfe
Feat: custom sort ( #4864 )
2022-06-22 11:04:42 +05:30
Pranav Raj S
1bb0371c1d
feat: Add agent_reply_time_window in API channels ( #4857 )
2022-06-14 18:05:37 +05:30
Tejaswini Chile
ae72757d23
feat: APIs for Articles ( #4777 )
...
Fixes : #4802
2022-06-13 15:56:49 +05:30
Tejaswini Chile
772d92a4d3
fix: Facebook reauthorization mailer ( #4695 )
2022-06-07 17:50:51 +05:30
Sojan Jose
ab05dd9b9b
chore: Improve the reauthorization requirement for Email Channel ( #4753 )
2022-05-26 20:23:00 +05:30
Tejaswini Chile
47a6d9681a
feat: send instagram message after 24 hours ( #4698 )
...
Added MESSAGE_TAG: HUMAN_AGENT for Instagram messages if the user wants to send it after the standard message window.
Fixes #4689
2022-05-26 19:05:30 +05:30
Tejaswini Chile
938fb887c4
feat: Portal endpoint ( #4633 )
2022-05-16 13:59:59 +05:30
Sojan Jose
c9a8796a36
chore: Sentry Issue fixes ( #4618 )
...
Address the following sentry issues
fixes : #4616 , #4617
2022-05-05 00:31:11 +05:30
Muhsin Keloth
3a5e34fccb
fix: Check phone_number and email changes are exist before validation ( #4551 )
2022-04-26 15:13:28 +05:30
Sojan Jose
2c73df4292
Chore: Provide fixed attachment URLs for Channels ( #4507 )
...
Prior to this change, The attachment URL sent from Chatwoot to 3rd party integrations like Whatsapp and Facebook
involved a 301 redirect before the original content is served. This causes intermittent breakages for the sent attachments.
fixes : #3632
ref: https://blog.saeloun.com/2021/09/14/rails-7-adds-expiring-urls-to-active-storage.html
2022-04-20 22:42:13 +05:30
Muhsin Keloth
26f23a6e21
feat: Custom fields in pre-chat form ( #4189 )
2022-04-19 12:47:29 +05:30
Tejaswini Chile
1ccd29140d
Feat: send fb message outside of standard messaging window ( #4439 )
2022-04-19 12:21:20 +05:30
Tejaswini Chile
923b4637db
chore: Automation bug fix ( #4442 )
2022-04-12 20:23:34 +05:30
Muhsin Keloth
24b20c10ce
fix: Referer URL validation ( #4309 )
...
Fixes #354
2022-03-30 14:36:22 +05:30
Tejaswini Chile
bfe6324d9a
chore: Webhook event data improvements ( #4317 )
2022-03-30 11:37:36 +05:30
Tejaswini Chile
60a0709de6
Fix: added validation for custom and additional attribute ( #4260 )
2022-03-24 15:38:28 +05:30
Vishnu Narayanan
7577c9c888
fix: drop conv and campaign seq on account delete ( #4256 )
...
Conversation and campaign sequences persist in the database even after the related account is deleted. This PR adds an after_desttory callback on the account model that will delete the associated sequences.
Fixes : #4252
2022-03-24 13:33:15 +05:30
Jordan Brough
c2647a1f27
chore: Use "destroy!" instead of "destroy" when not checking the return value ( #4259 )
2022-03-24 13:28:25 +05:30
Tejaswini Chile
e06a6a7c55
Automation enhancement ( #4087 )
2022-03-21 13:12:27 +05:30
Sojan Jose
4260441f8c
Chore: clean up Reporting Events ( #4044 )
...
Tech debt clean up
Fixes #4057
Co-authored-by: Aswin Dev P S <aswin@chatwoot.com>
2022-02-28 18:16:12 +05:30
Sojan Jose
4ca66c1195
fix: Automation loop on conversation_update ( #4071 )
2022-02-25 18:01:21 +05:30
Aswin Dev P.S
e348db1e37
Fix: add option to choose 24 hour working slot ( #4018 )
...
* Add option to choose 24 hour working slot
* fix spec
* add check to update open hour and close hour for open all day
* update 24 hour working slot change in widget side
* add validation to check open_all_day and closed_all_day true at the same time
2022-02-22 01:28:49 -08:00
Sojan Jose
5ad7e93059
chore: Discard activities from email notifiable messages ( #3989 )
2022-02-15 18:15:45 +05:30
Aswin Dev P.S
464e12ceb7
fix: Update auto reply and hide reply time for email inbox ( #3985 )
...
Co-authored-by: Pranav Raj S <pranav@chatwoot.com>
2022-02-15 17:11:28 +05:30
Muhsin Keloth
a737f89c47
fix: Ongoing campaign URL validation ( #3890 )
2022-02-04 14:38:18 +05:30
Sojan Jose
cf10f3d03b
chore: Provider APIs for SMS Channel - Bandwidth ( #3889 )
...
fixes : #3888
2022-02-03 15:22:13 -08:00
Muhsin Keloth
903072ef14
chore: Add custom attributes in conversation webhook payload ( #3839 )
2022-02-03 10:05:56 +05:30
Sojan Jose
59deffc7e3
feat: Ability to toggle conversation continuity via email ( #3817 )
...
Fixes : #3368
Co-authored-by: Pranav Raj S <pranav@chatwoot.com>
2022-01-26 15:59:48 -08:00
Shivam Chahar
9617137688
chore: Account auto resolution time validation ( #3651 )
2022-01-19 13:16:21 +05:30
Sojan Jose
ebb04487a8
chore: Prevent null in Contact JSONB attributes ( #3730 )
2022-01-11 15:14:55 -08:00
Tejaswini Chile
a0884310f4
feat: Save automation rules ( #3359 )
2022-01-10 12:41:59 +05:30
Sojan Jose
577e9905c6
chore: Fix issue with conversation assignment notifications ( #3661 )
...
- fixes issues with conversation assignment notifications not working in certain cases
2021-12-28 21:53:13 +05:30
Sojan Jose
009abc1948
chore: API improvements ( #3637 )
...
- Unique validations for Inbox members and Team member objects
- Move notification processing to Async
2021-12-21 22:48:01 +05:30
Muhsin Keloth
262474166f
chore: Add display id in all conversation notifications ( #3635 )
...
- Added conversation display id in push payload for the notifications conversation_creation and conversation_assignment
2021-12-21 19:59:22 +05:30
Aswin Dev P.S
5ee209c079
chore: Fix user email re-confirmation flow ( #3581 )
...
Users can change their email from profile settings. They will be logged out immediately. Users can log in again with the updated email without verifying the same. This is a security problem.
So this change enforce the user to reconfirm the email after changing it. Users can log in with the updated email only after the confirmation.
Fixes: https://huntr.dev/bounties/7afd04b4-232e-4907-8a3c-acf8bd4b5b22/
2021-12-16 19:32:49 +05:30
Sojan Jose
b1eea7f7d1
chore: Introduce enterprise edition license ( #3209 )
...
- Initialize an "enterprise" folder that is copyrighted.
- You can remove this folder and the system will continue functioning normally, in case you want a purely MIT licensed product.
- Enable limit on the number of user accounts in enterprise code.
- Use enterprise edition injector methods (inspired from Gitlab).
- SaaS software would run enterprise edition software always.
Co-authored-by: Pranav Raj S <pranav@chatwoot.com>
2021-12-09 12:07:48 +05:30
Shivam Chahar
a4ee8ee239
Chore: Improve conversation auto resolution ( #3405 )
...
Fixes : #1583
2021-11-27 09:26:18 +05:30
Sojan
0033a35ab8
Merge branch 'hotfix/1.22.1' into develop
...
# Conflicts:
# db/schema.rb
2021-11-22 23:35:44 +05:30
Sojan Jose
791d90c6b7
chore: Migrate PubSub Token to contact inbox ( #3434 )
...
At present, the websocket pubsub tokens are present at the contact objects in chatwoot. A better approach would be to have these tokens at the contact_inbox object instead. This helps chatwoot to deliver the websocket events targetted to the specific widget connection, stop contact events from leaking into other chat sessions from the same contact.
Fixes #1682
Fixes #1664
Co-authored-by: Pranav Raj S <pranav@chatwoot.com>
Co-authored-by: Muhsin Keloth <muhsinkeramam@gmail.com>
2021-11-22 23:32:17 +05:30
Akhil G Krishnan
b81a9f2010
Chore: Replaced dependent destroy with dependent destroy_async in all models ( #3249 )
2021-11-18 10:32:29 +05:30
Shivam Chahar
fec4a29081
Feat: Include previous messages in mention/assign notifications email ( #3385 )
2021-11-17 18:05:53 +05:30
Muhsin Keloth
cf5f6d5a74
feat: enable Dialogflow integration all inboxes except email ( #3285 )
...
Fixes #2461
Co-authored-by: Sojan Jose <sojan@pepalo.com>
2021-11-12 17:53:03 +05:30
Sojan Jose
d78cb67a2a
chore: Fix conversation status in webhooks ( #3364 )
...
- fix the wrong conversation status being sent in webhooks
- additional information in websocket events
- refactor activity messaging code
- move activity message generation to background job to stop the callback loop
2021-11-12 16:17:59 +05:30
Sojan Jose
a4c87f2052
chore: Handle attachments in Whatsapp Channel ( #3299 )
...
send and receive attachments in 360Dialog WhatsApp channels
2021-11-11 13:03:48 +05:30
Pranav Raj S
99abbb8158
feat: Display sent status of emails in email channel ( #3125 )
2021-10-14 12:55:46 +05:30
Murtaza Bagwala
f874925f0e
fix: set default content type as text for message ( #3060 )
...
Fixes #2974
2021-10-06 00:10:29 +05:30
Aswin Dev P.S
be9a055a3f
feat: Ability to send attachments to telegram ( #3108 )
...
This feature allows the user to send and delete attachments in the telegram conversation.
Fixes #3037
2021-10-01 01:45:29 +05:30
Pranav Raj S
57abdc4d5f
feat: Display "Snoozed Until" time on conversation header ( #3028 )
2021-09-29 19:33:51 +05:30
Pranav Raj S
b59e73b10b
fix: Update associations when a label is updated ( #3046 )
2021-09-21 10:16:32 +05:30
Aswin Dev P.S
794a56d4cc
Feat: Out of office autoresponder ( #2992 )
...
This change allows the user to enable autoresponder during the out-of-office time.
Fixes : #2035
2021-09-17 22:17:11 +05:30
Brandon Wilson
f94abaef5f
feat: Shows inbox identifier token for API inbox ( #2894 )
...
Fixes : #2605
2021-08-27 19:56:45 +05:30
Sojan Jose
e46aa1aa64
chore: Mark Facebook accounts for reconnection ( #2405 )
...
fixes : #2037
2021-08-01 18:15:39 +05:30
Sojan Jose
2890339734
chore: Limit objects returned by conversation API ( #2721 )
2021-07-31 21:19:42 +05:30
Sojan Jose
d955d8e7dc
feat: Ability to snooze conversations ( #2682 )
...
Co-authored-by: Pranav Raj S <pranav@chatwoot.com>
2021-07-23 15:24:07 +05:30
Sojan Jose
a7ca55c080
chore: Change the conversation bot status to pending ( #2677 )
...
fixes : #2649
2021-07-21 22:02:43 +05:30
Mrunal Selokar
e0535168a0
chore: Removing duplicate callback to create auth token ( #2624 )
...
Removed after create callback in user model to create a new access token. This is already being taken care of by AccessTokenable module.
Fixes #2620
2021-07-15 15:24:38 +05:30
Sojan Jose
dfddf9cacc
chore: one off SMS campaign APIs ( #2589 )
2021-07-14 12:24:09 +05:30
Muhsin Keloth
ba547b3f60
chore: Delete related notifications if a conversation is deleted ( #2592 )
2021-07-12 12:28:16 +05:30
Sojan Jose
dd9d5e410c
feat: Add CSAT response APIs ( #2503 )
...
Co-authored-by: Pranav Raj S <pranav@chatwoot.com>
2021-06-29 20:59:41 +05:30
Muhsin Keloth
8027c69c1c
chore: Change the notification text for mention notification type ( #2534 )
2021-06-29 14:32:57 +05:30
Muhsin Keloth
3d748aa8d4
chore: Add contact note model ( #2462 )
2021-06-21 15:16:26 +05:30
Sojan Jose
d5215fea93
feat: APIs for Integration Hooks ( #2250 )
...
- Introduces JSON Schema validations via JSONSchemer
- Add CRUD APIs for integration hooks
2021-05-17 10:32:59 +05:30
Pranav Raj S
0e6cd699e8
feat: Sort contacts via name, email, phone_number, last_activity_at ( #1870 )
2021-05-13 13:32:19 +05:30
Sojan Jose
b30ecb27a6
feat: Add APIs for Dialogflow integration V1 ( #2155 )
...
Co-authored-by: Muhsin Keloth <muhsinkeramam@gmail.com>
Co-authored-by: Pranav Raj S <pranav@chatwoot.com>
2021-05-05 21:06:11 +05:30
Sojan Jose
b89cc9cf57
feat: Add APIs for Campaigns ( #2175 )
2021-04-29 22:23:32 +05:30
Sojan Jose
4b49d21543
chore: Add event for conversations transferred to Bot ( #2167 )
...
* chore: Event for conversation transferred to Bot
Co-authored-by: Muhsin Keloth <muhsinkeramam@gmail.com>
Co-authored-by: Nithin David <webofnithin@gmail.com>
2021-04-28 20:53:23 +05:30
Sojan Jose
c453455ad1
fix: Handle application errors in Sentry ( #1982 )
...
- Handle notification errors for attachment messages
- Fix empty identifiers being passed
- Fix 404 when invalid source id
- Handle webhook exceptions
2021-03-27 12:27:48 +05:30
Nithin David Thomas
6c87001a0e
Feat: Show working hours on widget ( #1823 )
...
Feat: Display out of office message based on business hours
Co-authored-by: Pranav Raj Sreepuram <pranavrajs@gmail.com>
Co-authored-by: Sojan Jose <sojan@pepalo.com>
2021-03-13 11:44:28 +05:30
Sojan Jose
42e83de5b0
feat: Activity messages for team assignments ( #1893 )
...
- assignment messages when the conversation team is changed
- change assignee based on team
- move round-robin and assignee logic to concerns
2021-03-12 15:13:58 +05:30
Sojan Jose
0e721653e5
feat: Business hour Inbox APIs ( #1821 )
...
* feat: Business hour Inbox APIs
2021-02-23 12:11:15 +05:30
Sojan Jose
1612f515b0
chore: Fix issues with notification actors ( #1807 )
2021-02-19 18:35:21 +05:30
Pranav Raj S
64d7dc5335
fix: Remove teams on account user destroy ( #1766 )
2021-02-15 13:32:52 +05:30
Sojan Jose
8d45849d0c
chore: Update notification Message Copy ( #1685 )
2021-02-12 22:56:12 +05:30
Pranav Raj S
d4c2a78db6
chore: Add Chatwoot SDK to Chatwoot Dashboard ( #1726 )
...
Add Chatwoot SDK to Chatwoot Dashboard
2021-02-08 16:38:35 +05:30
Sojan Jose
f46c4b5130
chore: Minor Changes to Bot Message APIs ( #1739 )
2021-02-08 12:50:11 +05:30
Karthik Sivadas
2012aab1d5
fix: Standardize name validation on agent / profile pages ( #1720 )
2021-02-04 20:08:46 +05:30
Sojan Jose
c61edff189
feat: Add bulk imports API for contacts ( #1724 )
2021-02-03 19:24:51 +05:30
Sojan Jose
a0c33254e7
feat: Team APIs ( #1654 )
...
Co-authored-by: Pranav Raj S <pranav@chatwoot.com>
2021-01-17 23:56:56 +05:30
Sojan Jose
7542330d61
feat: Add Platform APIs ( #1456 )
2021-01-14 20:35:22 +05:30
Saurabh Mehta
627d3a575a
chore: Automate conversation display_id generation with db triggers ( #1412 )
...
Automate conversation display_id generation with db triggers
Co-authored-by: Saurabh Mehta <saurabh1.mehta@airtel.com>
Co-authored-by: Sojan Jose <sojan@pepalo.com>
2021-01-05 20:07:04 +05:30
Sojan Jose
a988724c91
feat: Authenticate by SSO tokens ( #1439 )
...
Co-authored-by: Pranav Raj Sreepuram <pranavrajs@gmail.com>
2020-11-25 13:59:38 +05:30
Akash Srivastava
074084b258
feat: Auto resolve conversations after n days of inactivity ( #1308 )
...
fixes : #418
2020-11-01 12:53:25 +05:30
Adam Zysko
65ed4c78a4
feat: Business hours
...
Data models and APIs for business hours
ref: #234
2020-11-01 00:14:33 +05:30
Yih Yang
12b7358773
feat: Add messages on mute / unmute actions ( #1373 )
2020-10-30 22:27:25 +05:30
Sojan Jose
1d9debaee0
feat: IP lookup ( #1315 )
...
- feature to store contact IP for accounts
- IP lookup through geocoder gem
- ability to do IP lookup through external APIs
- add commit hook to prevent push to develop and master
- migrations to fix default values for jsonb columns
2020-10-28 02:14:36 +05:30
Pranav Raj S
0bea0217b4
chore: Use full name in activity message, fix specs ( #1339 )
2020-10-14 00:16:35 +05:30
Dmitriy Shcherbakan
ecebe163e1
feat: Ability to unmute muted conversations ( #1319 )
2020-10-08 12:02:08 +05:30
Pranav Raj S
399f9e004a
fix: Use last_activity_at instead of updated_at for sorting ( #1281 )
...
Co-authored-by: Akash Srivastava <akash.srivastava.1911@gmail.com>
2020-10-05 22:52:43 +05:30
Abhishek
70f08103aa
feat: Activity message for label addition & deletion ( #1291 )
...
Fixes : #1022
2020-10-02 16:33:59 +05:30
Abhishek
5cd08b3f98
chore: self-assign conversation activity message ( #1293 )
2020-10-02 00:41:23 +05:30
Sojan Jose
b862817b29
feat: Enable reauthorization for Facebook ( #1286 )
2020-09-30 01:12:32 +05:30
Subin T P
701eccb35c
Feature: Knowledge Base APIs ( #1002 )
...
- Introduce models & migrations for portals, categories, folders and articles
- CRUD API for portals
- CRUD API for categories
Addresses: #714
Co-authored-by: Sojan <sojan@pepalo.com>
2020-09-26 02:32:34 +05:30
Pranav Raj S
646746aa10
fix: Check medium to decide 24 hour window ( #1245 )
2020-09-17 23:32:19 +05:30
Sojan Jose
31c07771e8
feat: Notification on new messages in conversation ( #1204 )
...
fixes : #895
fixes : #1118
fixes : #1075
Co-authored-by: Pranav Raj S <pranav@thoughtwoot.com>
2020-09-10 19:19:15 +05:30
Sojan Jose
ac5d755545
chore: Update dependencies ( #1173 )
2020-09-08 11:24:08 +05:30
Pranav Raj S
d18c8fc08a
chore: Add message_echo listener for Facebook ( #1192 )
...
Co-authored-by: Sojan Jose <sojan@pepalo.com>
2020-09-04 19:13:47 +05:30
Pranav Raj S
2b1d445003
feat: Use display_name instead of name of the agent ( #1097 )
...
* feat: Use display_name instead of name of the agent
2020-07-27 22:19:26 +05:30
Pranav Raj S
0f2d3418f9
fix: Add a check for 24 hour window before sending a message ( #1084 )
...
Co-authored-by: Sojan Jose <sojan@pepalo.com>
2020-07-25 22:54:45 +05:30
Sojan Jose
0fc0dc1683
Chore: Refactor round robin logic ( #1015 )
...
Co-authored-by: Pranav Raj S <pranav@thoughtwoot.com>
2020-07-08 00:14:07 +05:30
Pranav Raj S
4612494923
Chore: Fix issues with conversation data models ( #1000 )
...
Co-authored-by: Sojan <sojan@pepalo.com>
2020-07-04 19:46:17 +05:30
Sojan Jose
cc02611007
Chore: Convert Message Sender to polymorphic ( #740 )
...
Fixes #680
2020-06-27 21:34:53 +05:30
Pranav Raj S
97ad39713b
Feature: Improve label experience ( #975 )
...
Co-authored-by: Sojan <sojan@pepalo.com>
2020-06-25 21:04:03 +05:30
Sojan Jose
b0bbd757b5
Chore: FCM Notification Improvements ( #957 )
...
Co-authored-by: Pranav Raj Sreepuram <pranavrajs@gmail.com>
2020-06-15 13:36:56 +05:30
Subin T P
ed1c871633
Feature: Slack integration ( #783 )
...
- Integrations architecture
- Slack integration
2020-06-12 23:12:47 +05:30
Sojan Jose
52d28105e4
Chore: Remove dead code related to billing ( #935 )
...
- remove subscription model
- remove billing-related code
2020-06-07 20:31:48 +05:30
Sojan Jose
3d84568a37
Feature: Label APIs ( #931 )
2020-06-07 11:17:13 +05:30
Sojan Jose
dafabac796
Chore: Minor bugfixes and housekeeping tasks ( #896 )
2020-06-02 23:50:39 +05:30
Sojan Jose
b7a583b2c4
Feature: Ability to switch between multiple accounts ( #881 )
...
* Feature: Ability to switch between multiple accounts
* Fix rubocop
* Fix assigned inboxes
* fix auth json
* Add account switcher in UI
* fix ordering on administrate
* Add switch accounts to sidebar
* add account id
* Fix schema.rb timestamp
* Revert "add account id"
This reverts commit 27570f50ef584cb9a5f69454f43f630b318c8807.
* Add a check for account
Co-authored-by: Pranav Raj Sreepuram <pranavrajs@gmail.com>
2020-05-26 22:38:48 +05:30
Abdulkadir Poyraz
b1aab228ae
Feature: Ability to mute contacts ( #891 )
...
fixes : #867
2020-05-26 17:43:59 +05:30
Sojan Jose
c74b5c21d7
Feature: Introduce Super Admins ( #705 )
...
* Feature: Introduce Super Admins
- added new devise model for super user
- added administrate gem
- sample dashboards for users and accounts
Co-authored-by: Pranav Raj Sreepuram <pranavrajs@gmail.com>
2020-05-11 23:07:22 +05:30
Sony Mathew
905c93b8f8
Feature: Installation global config ( #839 ) ( #840 )
...
* Renamed concern from Feature to Featurable
* Feature: Installation config (#839 )
* Added new model installtion config with corresponding migrations and specs
* Created an installation config yml (key value store model)
* Created a config loader module to load the installaltion configs
* Added this to the config loader seeder
* Changed the account before create hook for default feature enabling to use the feature values from installtion config
* Renamed the feature concern to Featurable to follow the naming pattern for concerns
* Added comments and specs for modules and places that deemed necessary
* Refactored config loader to reduce cognitive complexity (#839 )
2020-05-10 22:40:36 +05:30
Pranav Raj S
e9131ea558
Feature: Add web push notification permission in frontend ( #766 )
...
Add webpush notification permission in frontend
Co-authored-by: Sojan <sojan@pepalo.com>
2020-05-06 00:10:56 +05:30
Sojan Jose
96da27f1f6
Feature: User Notification Objects ( #752 )
...
Co-authored-by: Pranav Raj S <pranavrajs@gmail.com>
2020-05-01 14:53:43 +05:30
Sony Mathew
0b65526b85
Feature: Conversation Continuity with Email ( #770 )
...
* Added POC for mail inbox reply email
* created mailbox and migratuion for the same
* cleaned up sidekiq queues and added the queues for action mailbox and active storage
* created conversation mailbox and functionlaity to create a message on the conversation when it's replied
* Added UUID to conversation to be used in email replies
* added migration to add uuid for conversation
* changed parsing and resource fetching to reflect matching uuid and
loading conversation alone
* cleaned up conversation mailbox.rb
* Added content type & attribute for message
* Added the new reply email to outgoing emails
* Added migration to accounts for adding domain and settings
* Modified seeds to reflect this changes
* Added the flag based column on account for boolean settings
* Added the new reply to email in outgoing conversation emails based on conditions
* Added dynamic email routing in application mailbox
* Added dynamic email routing in application mailbox
* Added a catch all deafult empty mailbox
* Added annotation for account
* Added the complete email details & attachments to the message
* Added the complete email details to the message in content_attributes, like subject, to, cc, bcc etc
* Modified the mail extractor to give a serilaized version of email
* Handled storing attachments of email on the message
* Added incoming email settings, env variables
* [#138 ] Added documentation regarding different email settings and variables
* Fixed the mail attachments blob issue (#138 )
* Decoided attachments were strings and had to construct blobs out fo them to work with active storage
* Fixed the content encoding issue with mail body
* Fixed issue with Proc used in apllication mailbox routing
* Fixed couple of typos and silly mistakes
* Set appropriate from email for conversation reply mails (#138 )
* From email was taken from a env variable, changed it to take from account settings if enabled
* Set the reply to email correctly based on conversation UUID
* Added commented config ind development.rb for mailbox ingress
* Added account settings for domain and support email (#138 )
* Added the new attributes in accounts controller params whitelisting, api responses
* Added options for the the new fields in account settings
* Fixed typos in email continuity docs and warnings
* Added specs for conversation reply mailer changes (#138 )
* Added specs for
* conversation reply mailer
* Accounts controller
* Account and Conversation models
* Added tests for email presenter (#138 )
* Specs for inbound email routing and mailboxes (#138 )
2020-04-30 20:20:26 +05:30
Subin T P
8f6f07177d
Enhancement: Move reporting metrics to postgres ( #606 )
2020-03-18 16:53:35 +05:30
Pranav Raj Sreepuram
1db35caa56
Merge branch 'release/1.2.1' into develop
2020-03-08 22:15:58 +05:30
Sojan Jose
8b4df986bf
Chore: Enable Users to create multiple accounts ( #440 )
...
Addresses: #402
- migrations to split roles and other attributes from users table
- make changes in code to accommodate this change
Co-authored-by: Sojan Jose <sojan@pepalo.com>
Co-authored-by: Pranav Raj Sreepuram <pranavrajs@gmail.com>
2020-03-07 12:18:16 +05:30
Sojan Jose
a8ac048716
Bug: Fix duplicate messages from Twitter DM and tweets ( #599 )
...
* Bug: Fix duplicate messages from Twitter DM and tweets
2020-03-06 01:47:37 +05:30
Pranav Raj S
b2d5cc7b05
Feature: Introduce bots ( #545 )
...
Co-authored-by: Pranav Raj S <pranavrajs@gmail.com>
Co-authored-by: Sojan Jose <sojan@pepalo.com>
2020-03-06 01:43:12 +05:30
Sojan Jose
cda65ea339
Feature: Conversation creation email notifications ( #576 )
...
* Clean up the mailers
* Disable assignment mailer if setting is turned off
* Email notifications on conversation create
* Specs
2020-03-01 19:06:13 +05:30
Sony Mathew
7f26b34b15
Feature: Add new notification settings for user ( #569 )
...
Added new notification settings API for user
Co-authored-by: Sojan Jose <sojan@pepalo.com>
2020-02-29 20:41:09 +05:30
Pranav Raj S
0740d4762f
Enhancement: Paginate conversation calls in tabs ( #560 )
...
* Use conversationPage module for pagination
* Load more conversations
* Reset list if conversation status is changed
* Add specs to conversationPage
* Reset filter when page is re-mounted
* Update text
* Update text
2020-02-26 21:15:01 +05:30
Subin T P
7479b5db43
Feature: Support account/inbox specific webhooks ( #562 )
2020-02-26 09:44:24 +05:30
Tim Lange
30e5edf6dc
Feature: Add ability to disable auto assignment of conversations ( #513 )
2020-02-19 14:40:03 +05:30
Subin T P
919261d843
Feature: Webhooks ( #489 )
2020-02-14 23:19:17 +05:30
Sony Mathew
d4b3ba4baa
[ #139 ] Send conversation emails ( #442 )
...
* [#139 ] Delayed emails for conversations
* Added the setex and get methods to Redis wrapper
* Set the priorities for the sidekiq queues
* Was not able to use mailhog for testing email in local, switched back to letter opener and added comments on using the SMTP settings
* Added after create hood in messages to queue the sending of mail after 2 minutes using sidekiq worker and also set the redis key for the conversation to avoid the email sending for every message
* Added the sidekiq worker to send the email and delete the conversation redis key
* Added the mailer and mail template
* mailer sends the last 10 messages along with the new messages from the time it was queued
* Send email only in development or if smtp config is set
* Send email only in development or if smtp config is set
* Set the SMTP_PORT in production variable
* Adding redis to circle CI
* Specs for the conversation email changes
* Added specs for conversation email sidekiq worker
* Added specs for conversation mailer
* Added specs in message model for the after create hook for notify email
* Send emails only when there is a reply from agent
* set development to use mailhog
* Adding comments for using letter opener
2020-01-23 23:14:07 +05:45
Sojan Jose
722f540b03
[Feature] Email collect message hooks ( #331 )
...
- Add email collect hook on creating conversation
- Merge contact if it already exist
2020-01-09 13:06:40 +05:30
Sojan Jose
f875a09fb7
Chore: Switch from Carrierwave to ActiveStorage ( #393 )
2020-01-07 22:59:17 +05:30
Anto Dominic
4e9290ad76
Send emails via sidekiq ( #380 )
...
* add sidekiq web view if the user is an administrator
* add sidekiq setup configuration and support
* update devise to use delivery_later method and update test
* update conversation to use deliver_later instead of deliver
* Update Routes
* Add Procfile for Heroku One-Click Start
* updating docs
* update concurrency and Procfile for supporting Heroku Free Dyno
* update Procfile.dev
2019-12-25 03:03:02 +05:30
Sojan Jose
7d85f2e046
Feature: Contact Merge Action ( #378 )
2019-12-24 13:27:25 +05:30
Karthik Sivadas
3a1c0aef07
Add specs for model facebook_page ( #346 )
2019-12-05 13:20:04 +05:30
Karthik Sivadas
c758c13ffb
Add Account Model specs ( #341 )
2019-12-03 10:09:45 +05:30
Karthik Sivadas
330e8625d3
Update user model specs ( #334 )
2019-12-01 15:42:15 +05:30
Sony Mathew
70e4cc08b6
[ #260 ] One click deploy to heroku ( #275 )
...
* [#260 ] One click deploy to heroku
* Added app.json file for Heroku deployment
* Made changes in Procfile to accept the PORT as env variable
* Added the one click button in README.md
* Change readme and link
* Alignment of button in Readme
* Changing redis to free plan
* Removed node-js build-pack
* Changed the post-deploy script to be rake db:migrate
* Removed web concurrency variable from app.json for heroku
* Changed the link to chatwoot logo referenced in app.json
* Changed postdeploy hook
* Changed logo to be raw content from github
* Changed the SMTP variables
* Added optional conditional for sending mail
* Changed the naming of SMTP variables
* Having logo as base 64 encoded image for heroku deploy page
* Fixed key not found error for SMTP variables
* Correcting the specs for conversation assignment mailer
* Spec rubocop fixes
* Spec rubocop fixes
* Added the link to master for heroku app.json
2019-11-24 17:19:14 +05:30
Lauren
bfa4121f41
Feature/add inbox specs ( #192 )
...
* Add base Inbox association and validation specs
* `#facebook?``
* `#add_member` and `#remove_member`
* cleanup
* Rubocop
* Rubocop but again
really this time
2019-10-30 10:49:23 +05:30
Sojan Jose
c21c839dca
Contact model changes ( #184 )
...
* move source id from contacts
* Fix contactInbox model name
* rubocop fix
* Fix rspec
2019-10-27 13:14:36 +05:30
Sojan Jose
ba8f055802
Change sender_id to contact_id in conversations ( #167 )
...
* change sender_id to contact_id in conversations
* Fix failing tests
* Fix seeds
* fix specs
* Fix issues in facebook messenger
2019-10-21 00:40:18 +05:30
Sojan Jose
3988777718
Refactoring the code for pub sub ( #155 )
...
- We were using the attribute name 'channel' to store pubsub tokens, which was confusing.
- switched to faker from ffaker
- spec for contact.rb
2019-10-17 03:18:07 +05:30
Lauren
b89353b76c
Feature/update confirmation email information ( #145 )
...
* Add `invited_by` foreign key to User
Allows for a User to be tied to the user who invited them
* Include `current_user` in new agent initialization parameters
* Add `shoulda-matchers` for testing associations
* Add Inviter information and associated account to welcome email
* Only show inviter info if applicable
* Update conversation spec for FFaker compatibility
2019-10-14 14:24:58 +05:30