Muhsin Keloth
a55fffab3a
chore: Linear integration fixes ( #9538 )
2024-05-29 11:28:13 +05:30
Sivin Varghese
7c5e67bf28
feat: Adds backend support for rendering tables in articles ( #9526 )
2024-05-24 08:44:01 +05:30
Shivam Mishra
eafd3ae44d
feat: new re-authorization flow for Microsoft ( #9510 )
...
This PR adds a cleaner re-authorization flow to Microsoft. This PR has
the following changes
1. Use `reauthorization_required` value for Microsoft Channel
2. Refactor `InboxReconnectionRequired` to reuse the `banner` component
3. Refactor `microsoft/Reauthorize.vue` to reuse
`InboxReconnectionRequired` component
4. Update `reauthorizable.rb` to update cache keys if the model has an
inbox
5. Update `microsoft/callbacks_controller.rb` to handle the
reauthorization case with a redirect to the inbox settings page if the
inbox already exists at the time of authorization.
## How Has This Been Tested?
- [x] Local Instance
- [ ] Staging Instance
- [x] Unit tests
## Pending Tasks
- [ ] ~Success Toast~ will do this in a follow-up PR with the screen
## Demo
The following video shows the whole process of creation and
re-authorization of the Microsoft channel
https://www.loom.com/share/e5cd9bd4439c4741b0dcfe66d67f88b3?sid=100f3642-43e4-46b3-8123-88a5dd9d8509
---------
Co-authored-by: Muhsin Keloth <muhsinkeramam@gmail.com>
2024-05-23 16:03:40 +05:30
Pranav
87d92f73d4
feat: Improve Report API performance ( #9476 )
...
- Re-write the methods for clarity
- Remove the dependency on the ReportHelper class.
- Remove n+1 queries in the average metric time series data.
2024-05-22 17:34:24 -07:00
Muhsin Keloth
023b3ad507
feat: Add APIs for linear integration ( #9346 )
2024-05-22 13:37:58 +05:30
Sojan Jose
a2d0e60a88
fix: Get online status from db when not present in cache [CW-3233] ( #9477 )
...
Previously, we returned the static value 'online' when the status was
not present in the Redis cache. This PR changes it to fall back to the
DB value and updates the cache in such cases.
fixes:
https://linear.app/chatwoot/issue/CW-3233/write-a-back-up-for-online-status-in-case-if-redis-keys-are-not
2024-05-15 21:23:19 -07:00
Sojan Jose
d54492f7b5
chore: Add debug statement in spec ( #9466 )
...
- Add a debug statement to check the failed specs
2024-05-14 14:19:02 -07:00
Sojan Jose
9a8442fe0e
chore: Handle conversation participation creation race condition error ( #9449 )
...
We observed some race condition errors in the conversation participation listener while trying to create a conversation participation assignment. This PR handles this error and also adds additional debug information for future.
fixes: https://linear.app/chatwoot/issue/CW-3296/activerecordrecordnotunique-pguniqueviolation-error-duplicate-key
## Changelog
- handles `ActiveRecord::RecordNotUnique, ActiveRecord::RecordInvald` errors so that they won't pollute sentry
- Adds a debug statement to log the cases
- Add previous_changes into the dispatcher so that we know the exact attribute changes which trigger `assignee_changed, team_changed` events ( would be handy in future )
2024-05-10 12:21:23 -07:00
Sojan Jose
4284c123a6
chore: Handle invalid email address in IMAP channel ( #9450 )
2024-05-10 08:55:26 +05:30
Shivam Mishra
eff24c0d71
feat: allow feature plan map in super admin ( #9318 )
...
- Add subscribed_features method in models/enterprise/account and include it in the JSON response
2024-05-08 22:58:46 -07:00
Sojan Jose
3a1299520c
chore: Enable plan reconcile in self hosted ( #9357 )
...
This PR will revert the premium config in self hosted instances to its original state if any unauthorised modifications are made.
2024-05-08 14:26:00 -07:00
Muhsin Keloth
d649bd2dfd
feat: Add support for bulk snooze until ( #9360 )
2024-05-08 08:55:31 +05:30
Shivam Mishra
2ef767d60f
feat: exporting contacts takes the filters into account ( #9347 )
...
- This PR allows contacts to be exported using the current filter in CRM view
Co-authored-by: Sojan Jose <sojan@pepalo.com>
2024-05-07 20:18:36 -07:00
Pranav
de044e29f0
chore: Rescue Oauth2::Error and mark the channel as inactive ( #9358 )
...
Co-authored-by: Sojan <sojan@pepalo.com>
2024-05-07 12:03:38 -07:00
Sojan Jose
f6d7f3b665
fix: assignee_changed callback not getting triggered during conversation creation ( #9334 )
...
The reload method in our callback was refreshing the object and hence the saved_change_to_assignee_id? Method wasn't working in the following callbacks.
This impacted the listeners subscribing to the event `ASSIGNEE_CHANGE`, `TEAM_CHANGE` etc
2024-05-06 11:48:17 -07:00
jderecho
0d7773d88f
feat: Draft through API for Cross-Device Support ( #8018 )
...
- Add APIs for cross-device message drafts
ref: #6890
2024-05-02 18:42:18 -07:00
Sojan Jose
ac93af6028
feat: Support document file uploads on telegram channel ( #9266 )
2024-05-02 14:05:14 -07:00
Pranav
2c3e7d6554
chore: Temporarily disable the disconnect logic for inboxes ( #9321 )
...
* chore: Temporarily disable the disconnect logic for inboxes
* Remove unused spec
2024-04-30 07:49:37 -07:00
Shivam Mishra
78f94511ff
feat: add sitemap for help center ( #9280 )
...
* feat: start sitemap
* feat: add base url and last mod to sitemap
* fix: typo
* test: sitemap generation
* test: add draft articles
* fix: escape dots in regex matching
* feat: perpend protocol to the url
* feat: use ChatwootApp.help_center_root
* feat: don't parse the URL
* fix: function declaration
2024-04-26 21:36:39 +05:30
Pranav
ffd47081bd
chore(cleanup): Delete sentiment feature ( #9304 )
...
- The feature is unused, removing it for now, will bring it back with better models later.
2024-04-25 22:49:10 -07:00
Pranav
77db0d0701
feat: Add configurable interval for IMAP sync ( #9302 )
2024-04-25 18:58:20 -07:00
Muhsin Keloth
1bf3ad9a08
fix: Remove unnecessary attributes from notification deleted action cable event payload ( #9295 )
...
fix: simplify notification deleted payload event
2024-04-25 11:25:19 +05:30
Muhsin Keloth
d7e928df26
feat: Add loom video embed support for help center articles ( #9288 )
...
* feat: Add loom support for helpcenter articles
* fix: responsiveness
* fix: style issues
* fix: review comments
* Update custom_markdown_renderer.rb
2024-04-24 11:44:10 +05:30
Sojan Jose
15638e9b8b
chore: Add validation to prevent message flooding ( #9254 )
...
- Add a validation to limit messages created per minute to avoid message flooding cases.
2024-04-18 00:14:59 -07:00
Sojan Jose
42a457ff5d
feat: Use embeddings in help center search ( #9227 )
2024-04-15 16:35:23 -07:00
Shivam Mishra
bce2a07d03
feat: do not send contact details to the widget ( #9223 )
...
* refactor: use has_email instead of email
* feat: remove usage of details directly in forms
* test: update payload
* test: fix transcript test
* refactor: use computed hasEmail
---------
Co-authored-by: Muhsin Keloth <muhsinkeramam@gmail.com>
2024-04-12 15:30:07 +05:30
Sivin Varghese
3b6ae772bf
feat: SLA report filter ( #9218 )
...
Co-authored-by: Shivam Mishra <scm.mymail@gmail.com>
Co-authored-by: Muhsin Keloth <muhsinkeramam@gmail.com>
2024-04-12 11:03:18 +05:30
Pranav
e8fe3c7c05
fix: Terminate IMAP connection after the job is complete ( #9225 )
2024-04-11 15:47:43 -07:00
Red
9013450e00
fix: Fixes 9012 Cancelling Google OAuth signup redirects user to /auth/sign_in ( #9022 )
...
Overriding new_user_session action to avoid rendering error directly in webpage
2024-04-10 12:12:48 +05:30
Muhsin Keloth
1038d1500e
feat: SLA reports view ( #9189 )
...
* feat: SLA report table
* feat: Add SLA popover card
* feat: Update popover position
* feat: Add loader
* Update SLACardLabel.vue
* feat: Update column order
* chore: fix conditions
* Update SLATable.vue
* chore: enable reports in ui
* chore: Revamp report SLA apis
* chore: revert download method
* chore: improve the code
* Update enterprise/app/views/api/v1/accounts/applied_slas/download.csv.erb
Co-authored-by: Vishnu Narayanan <iamwishnu@gmail.com>
* chore: style fixes
* chore: fix specs
* feat: Add number of conversations
* chore: review comments
* fix: translation
* Update app/javascript/dashboard/i18n/locale/en/report.json
Co-authored-by: Vishnu Narayanan <iamwishnu@gmail.com>
* Update app/javascript/dashboard/i18n/locale/en/report.json
Co-authored-by: Vishnu Narayanan <iamwishnu@gmail.com>
* Update app/javascript/dashboard/i18n/locale/en/report.json
Co-authored-by: Vishnu Narayanan <iamwishnu@gmail.com>
* Update SLAReportItem.vue
* Update report.json
* Update package.json
* chore: review comments
* chore: remove unused translation
* feat: Add TableHeaderCell component
* chore: more review fixes
* Update app/javascript/dashboard/components/widgets/TableHeaderCell.vue
Co-authored-by: Shivam Mishra <scm.mymail@gmail.com>
* Update TableHeaderCell.vue
---------
Co-authored-by: Sivin Varghese <64252451+iamsivin@users.noreply.github.com>
Co-authored-by: Vishnu Narayanan <iamwishnu@gmail.com>
Co-authored-by: Shivam Mishra <scm.mymail@gmail.com>
2024-04-09 10:14:36 +10:00
Shivam Mishra
2397f817fb
fix: add priority in filter keys [CW-3177] ( #9179 )
...
* fix: ConditionValidationService fails on conversation priority
* fix: custom attribute clash in spec
2024-04-05 10:03:48 +05:30
Sojan Jose
18bfda35b3
chore: Fix agent API returning 500 error ( #9193 )
...
- We were using the @user object in the view, which wasn't available when using api_access_token.
- Also replaced the object to @agent and added additional specs to confirm the right object
fixes: https://linear.app/chatwoot/issue/CW-3185/agent-create-api-throwing-500-response
ref: https://discord.com/channels/647412545203994635/1219928138163949568/1219928138163949568
2024-04-04 19:44:47 +05:30
Sojan Jose
5c9acfb4e9
chore: Handle duplicate Webhooks from slack ( #9187 )
...
* chore: Handle duplicate Webhooks from slack
* chore: fixes
---------
Co-authored-by: Muhsin Keloth <muhsinkeramam@gmail.com>
2024-04-04 17:00:45 +05:30
Jaideep Guntupalli
e21d7552d3
feat: extending lock to single conversation to meta inbox ( #9104 )
...
This change introduces the ability to lock conversations to a single thread for Instagram and facebook messages within the Meta inbox, mirroring existing functionality in WhatsApp and SMS inboxes.
Co-authored-by: Shivam Mishra <scm.mymail@gmail.com>
2024-04-03 21:33:23 +05:30
Sojan Jose
4e28481f27
feat: Conversation API to return applied_sla and sla_events ( #9174 )
...
* chore: Add sla_events to push_event_data
* chore: Return SLA details in the API
* chore: feature lock sla push event data
* Update _conversation.json.jbuilder
* chore: rubocop fixes
2024-04-01 23:30:07 +05:30
Vishnu Narayanan
16282f6a66
feat: Add push/email notification support for SLA ( #9140 )
...
* feat: update SLA evaluation logic
* Update enterprise/app/services/sla/evaluate_applied_sla_service.rb
Co-authored-by: Muhsin Keloth <muhsinkeramam@gmail.com>
* chore: refactor spec to bring down expecations in a single block
* chore: fix process_account_applied_sla spec
* chore: add spec to test multiple nrt misses
* feat: persist sla notifications
* feat: revert persist sla notifications
* feat: add SLA push/email notification support
* chore: refactor sla_status to include active_with_misses
* chore: add support for sla push/email notifications
* chore: refactor
* chore: add liquid templates
* chore: add spec for liquid templates
* chore: add spec for sla email notifications
* chore: add spec for SlaPolicyDrop
* chore: refactor to ee namespace
* chore: set enterprise test type to mailer
* feat: enable sla notification settings only if SLA enabled
* chore: refactor
* chore: fix spec
---------
Co-authored-by: Muhsin Keloth <muhsinkeramam@gmail.com>
2024-03-29 20:27:21 +11:00
Vishnu Narayanan
6956436a76
feat: refactor SLA evaluation logic ( #9133 )
...
* feat: update SLA evaluation logic
* chore: handle nrt
* chore: handle applied_sla status
* chore: refactor spec to bring down expecations in a single block
* chore: fix process_account_applied_sla spec
* chore: add spec to test multiple nrt misses
* feat: persist sla notifications
* feat: revert persist sla notifications
* chore: refactor sla_status to include active_with_misses
* chore: refactor spec
* Update evaluate_applied_sla_service.rb
* minor refactors
* clean up
* move notification related spec
* chore: refactor notifications spec to sla_event model
---------
Co-authored-by: Muhsin Keloth <muhsinkeramam@gmail.com>
Co-authored-by: Sojan Jose <sojan@pepalo.com>
2024-03-29 02:01:43 +11:00
Shivam Mishra
9a1c54a82d
feat: disable automation rules if condition fails multiple times ( #9017 )
...
* feat: add email for disabling automation rule
* feat: disable automation rules and notify admin
* feat: reset error count after update
* feat: trigger invalid_condition_error if rule is invalid
* feat: setup error trackable concern
* refactor: use ErrorTrackable in Reauthorizable
* fix: optional argument
* feat: separate reauthorization_required_key
* test: update case to use ERROR_TRACKABLE_COUNT
* Revert "test: update case to use ERROR_TRACKABLE_COUNT"
This reverts commit f439847147556a02759a7597a7fcf1d66091cafc.
* Revert "feat: separate reauthorization_required_key"
This reverts commit f4514fce217b0a2f2c2bf701a15de0a8b47acbc4.
* Revert "fix: optional argument"
This reverts commit 93b4194ec3f10f67e2402388c966c071c4d3b4fd.
* Revert "refactor: use ErrorTrackable in Reauthorizable"
This reverts commit 513c2a522bc782e73ea4b0f5ae34ce01e70e042c.
* Revert "feat: setup error trackable concern"
This reverts commit 278683060cf422f60af5d5c77100aa5272141141.
* feat: use reauthorizable for automation rule
* feat: remove redis key
* test: fix method names
* chore: refactor
---------
Co-authored-by: Vishnu Narayanan <iamwishnu@gmail.com>
Co-authored-by: Sojan <sojan@pepalo.com>
2024-03-28 13:14:16 +05:30
Shivam Kumar
1253264382
fix: Avoid duplicate invitation emails when adding an agent ( #9131 )
...
Co-authored-by: Sojan <sojan@pepalo.com>
Co-authored-by: Shivam Mishra <scm.mymail@gmail.com>
Co-authored-by: Pranav <pranav@chatwoot.com>
2024-03-26 18:58:45 -07:00
Shivam Mishra
d1dd319091
feat: API to download breached conversations ( #9150 )
...
* feat: add download conversations endpoint
* feat: template for conversation list download
* feat: setup download API and tests
* chore: revert formatting change
* feat: rename download method
* feat: rename template
* feat: include sla_policy table in download query
* refactor: add nil safety to assignee
* chore: Update en.yml
* fix: remove applied_sla relation
2024-03-26 09:22:49 +05:30
Muhsin Keloth
48452a42f4
feat: Add SLA metrics API ( #9132 )
2024-03-25 12:24:43 +05:30
Sojan Jose
1303469087
feat: Ability filter blocked contacts ( #9048 )
...
- This PR introduces the ability to filter blocked contacts from the contacts filter UI
2024-03-20 18:11:50 +05:30
Pranav
f78f278e2f
fix: Update validations for filter service ( #8239 )
...
- Refactor filter service for better readability and maintenance
- Add validations for the following:
- If an invalid attribute is passed, a custom exception InvalidAttribute will be thrown.
- If an invalid operator is passed, a custom exception InvalidOperator will be thrown.
- If an invalid value (currently checking only null check), a custom exception InvalidValue will be thrown.
Fixes: https://linear.app/chatwoot/issue/CW-2702/activerecordstatementinvalid-pginvalidtextrepresentation-error-invalid
Fixes: https://linear.app/chatwoot/issue/CW-2703/activerecordstatementinvalid-pginvaliddatetimeformat-error-invalid
Fixes: https://linear.app/chatwoot/issue/CW-2700/activerecordstatementinvalid-pgsyntaxerror-error-syntax-error-at-or
Co-authored-by: Sojan <sojan@pepalo.com>
2024-03-20 16:29:36 +05:30
Vishnu Narayanan
b017d05ed9
feat: add sla events table ( #9126 )
...
* feat: add sla events table
* chore: refactor to EE namespace
* chore: refactor
* chore: fix spec
* chore: add references to account,inbox,sla_policy
* chore: update specs
* chore: update spec to check backfilling id's
* Update spec/enterprise/models/sla_event_spec.rb
2024-03-20 11:59:37 +05:30
Sivin Varghese
476077ab84
fix: Update location component to avoid overflow, handle location title from Telegram payload ( #9113 )
...
Co-authored-by: Pranav <pranav@chatwoot.com>
2024-03-14 22:53:43 -07:00
Muhsin Keloth
586552013e
feat: Update the contact_type when creating or updating the contact ( #9107 )
...
* feat: Update location and country code when the contact create/update
* feat: Update the location and country_code when creating or updating the contact.
* chore: improve comments
* feat: Update the contact_type when the contact created/updated
* chore: add more specs
* chore: code cleanups
* chore: code cleanups
* Update contact_spec.rb
* Update inbox.rb
* Update sync_attributes_spec.rb
* chore: build fixes
* chore: check visitor type before update
* chore: review fixes
2024-03-15 10:55:40 +05:30
Sojan Jose
3dae3ff3ad
feat: Conversation update API for sla_policy_id ( #8973 )
...
- Add an endpoint for updating conversation attributes (priority / sla_policy_id )
- Swagger spec
- minor chores around the conversation API/spec
Fixes: https://linear.app/chatwoot/issue/CW-2100/feat-backend-api-to-update-the-sla-of-a-conversation
2024-03-14 17:22:32 +05:30
Vishnu Narayanan
7f4b2d66d4
feat: add activity message for SLA ( #9100 )
...
* feat: add activity message for SLA
* chore: refactor to reduce method complexity
* chore: refactor
* feat: add spec for SLAactivity message
* chore: move SLA spec to enterprise folder
* chore: move team activity methods to a separate module
* chore: fix typo
* chore: move sla activity message spec to conversation model
2024-03-13 20:05:34 +05:30
Muhsin Keloth
804a42c271
feat: Update the location and country_code when creating or updating the contact ( #9106 )
...
* feat: Update the location and country_code when creating or updating the contact.
* chore: improve comments
2024-03-13 16:40:21 +05:30
Vishnu Narayanan
aaf70cf1cf
feat: add push notification when SLA missed ( #9078 )
...
* feat: add push notification when SLA missed
* chore: sent notification only for inbox members
* feat: add conv particpants+admins to SLA notification list
* chore: add spec to ensure notification is created
* chore: refactor to multiple alerts for SLA conditions
* chore: add sla_policy as secondary_actor in notification
2024-03-11 21:49:41 +05:30
Muhsin Keloth
216de4d123
fix: Conversation assignment notification title ( #9071 )
2024-03-06 23:05:13 +05:30
Muhsin Keloth
ef90b7a3d8
feat: Revamp the notification title and content ( #8988 )
2024-03-06 20:51:56 +05:30
Muhsin Keloth
58dd2633ba
feat: Add contact helper ( #8989 )
2024-03-06 17:39:39 +05:30
Shivam Mishra
c62c512ec4
fix: inline attachments not handled if tag was missing ( #9068 )
2024-03-06 17:15:29 +05:30
Sojan Jose
881d4bf644
feat: Add backend APIs for the bot metrics ( #9031 )
...
Co-authored-by: Pranav <pranav@chatwoot.com>
2024-03-01 08:20:20 -08:00
Sojan Jose
41e269e873
feat(ee): Add reporting events for bots ( #9027 )
...
Added a new event conversation_bot_resolved and added a job to auto resolve the bot conversations if there was no activity for the last 1 hour.
2024-02-27 14:53:28 -08:00
Sojan Jose
ae4c8d818f
feat: Ability to block contacts permanently ( #8922 )
...
Co-authored-by: Pranav <pranav@chatwoot.com>
2024-02-21 14:18:42 -08:00
Shivam Mishra
c031cb19d2
fix: downcase email before finding ( #8921 )
...
* fix: downcase email when finding
* feat: add `from_email` class
* refactor: use `from_email`
* feat: add rule to disallow find_by email directly
* chore: remove redundant test
Since the previous imlpmentation didn't do a case-insentive search, a new user would be created, and the error would be raised at the DB layer. With the new changes, this test case is redundant
* refactor: use from_email
2024-02-21 18:51:00 +05:30
CristianDuta
ebae547a60
feat: Add ability to resolve API channel conversations ( #8348 )
...
- Create a new endpoint to fetch a single conversation in client apis
- Create a new endpoint to resolve a single conversation in client apis
- Update swagger API definition to include missing endpoints
Fixes : #6329
Co-authored-by: Cristian Duta <Cristian.Duta@ti8m.ch>
2024-02-21 17:41:20 +05:30
Vishnu Narayanan
d53097f77d
fix: Raise error if email to_header is invalid ( #8688 )
2024-02-20 17:03:39 -08:00
Vishnu Narayanan
23230e0143
feat: sla-7 ensure applied_sla uniqueness ( #8938 )
...
* feat: refactor fetching sla in action service
* chore: modify spec
* chore: ensure applied_sla uniqueness
* chore: review fixes
* feat: add unique index on applied_sla
* chore: fix spec
* chore: add new specs to improve coverage
* chore: improve spec
* Update spec/enterprise/services/enterprise/action_service_spec.rb
---------
Co-authored-by: Sojan Jose <sojan@pepalo.com>
2024-02-20 21:59:49 +05:30
Vishnu Narayanan
f92cea144c
feat(perf): sla-9 improve perf of TriggerSlasForAccountsJob ( #8953 )
...
* feat: improve perf of TriggerSlasForAccountsJob
2024-02-20 21:54:37 +05:30
Muhsin Keloth
e6cf8c39b7
feat: Update last_snoozed_at after the un-snooze notification ( #8943 )
2024-02-20 18:55:39 +05:30
Muhsin Keloth
c5c0845151
feat: Add labels, status and priority in notification push_event_data ( #8972 )
2024-02-20 17:17:25 +05:30
Liam
5d9fb55370
feat: Export contact improvements ( #8895 )
...
This pull request enhances the export contacts feature by adding a confirmation step before exporting. Previously, clicking the export button would trigger the export action without confirmation.
Additionally, it ensures that only the intended recipient receives the export email, addressing the previous behaviour where all administrators received it.
Fixes : #8504
Co-authored-by: Sojan Jose <sojan@pepalo.com>
2024-02-20 17:11:03 +05:30
Nithin David Thomas
721a2f5052
feat: API changes to support multi step user signup ( #8933 )
...
-API Changes to support the new onboarding flow
Co-authored-by: Sojan <sojan@pepalo.com>
2024-02-20 16:48:51 +05:30
Sojan Jose
978a8a4cb2
fix: support_email and inbound_email_domain returning empty string ( #8963 )
...
chore: Fix for inbound email domain being nil
2024-02-19 15:43:35 +05:30
Muhsin Keloth
cd06b2b337
fix: Inbox view Read/Snoozed display filters ( #8907 )
...
* fix: Notification filters
* Update notification_finder.rb
* Update notification_finder.rb
* Update notification_finder.rb
* fix: spec
* fix: specs
* Update notification_finder.rb
* fix: add more fixes
* Update notification_finder.rb
* fix: specs
* chore: better comments
* chore: removed filtering
* chore: refactoring
* fix: review fixes
* fix: API call
* chore: Minor fix
* Rename spec
* Fix params getting undefined
* Fix finder
---------
Co-authored-by: Sivin Varghese <64252451+iamsivin@users.noreply.github.com>
Co-authored-by: iamsivin <iamsivin@gmail.com>
Co-authored-by: Pranav <pranav@chatwoot.com>
2024-02-17 13:59:25 +05:30
Sojan Jose
94892e7168
chore: Fix flaky spec relying on unguaranteed order ( #8956 )
2024-02-16 12:11:39 -08:00
Muhsin Keloth
fe744abe26
fix: Mark notification as unread after the un-snooze ( #8917 )
2024-02-16 17:30:54 +05:30
Sojan Jose
9c07b6dd46
chore: Support for updated_within in ConverationFinder ( #8947 )
...
- `updated_within' accepts value in seconds and returns all conversations updated in the given period with out pagination. This API will assist in our refetch logic on socket disconnect
ref: #8888
2024-02-16 16:44:55 +05:30
Pranav Raj S
1ce5cbe275
feat: Add endpoints to retrieve summary of team/agents over a period of time ( #8916 )
...
- Internal APIs to prototype reporting improvements.
2024-02-13 15:44:40 +05:30
Pranav Raj S
c607f09be0
feat: Improve the rendering of CSV exports ( #8914 )
...
Improve the rendering of the datestamp
2024-02-12 20:01:58 -08:00
Shivam Mishra
e662336eaf
feat: handle already invited user ( #8912 )
2024-02-13 08:51:42 +05:30
Shivam Mishra
657843960c
feat: account onboarding with clearbit ( #8857 )
...
* feat: add clearbit lookup
* chore: fix typo in .env.example
* refactor: split lookup to reduce cognitive complexity
* feat: add more fields to lookup
* feat: extend accounts controller
* feat: save extra data to custom_attributes
* feat: allow v2 update with custom_attributes
* feat: add update route
* refactor: reduce complexity
* feat: move update to v1 controller
* test: add locale test
* feat: remove update from routes
* test: update API for custom attributes
* test: all custom attributes
* fix: v2 tests
* test: enterprise accounts controller
* fix: clearbit payload
* fix: with modified env
* feat: allow custom attributes updates to profile
* refactor: reduce complexity
* feat: allow clearbit api key in installation config
* refactor: move clearbit to internal
* feat: allow clearbit
* chore: add display_title for June
* feat: allow more internal options
* refactor: use globalconfig to fetch clearbit token
* test: move response body to a factory
* refactor: update ops
* chore: remove clearbit from .env.example
* chore: apply suggestions from code review
Co-authored-by: sojan-official <sojan@chatwoot.com>
---------
Co-authored-by: sojan-official <sojan@chatwoot.com>
2024-02-12 23:21:42 +05:30
giquieu
227d99934e
feat: Agent bot cant assign conversations to teams ( #8015 )
...
Implemented so that the API can process priority and agent/team changes per Agent Bot.
Fixes: #7474
Co-authored-by: Sojan Jose <sojan@pepalo.com>
2024-02-12 15:51:22 +05:30
Vishnu Narayanan
5036b28e45
chore: fix git_sha in instance health ( #8893 )
...
- Fix git-hash in super admin instance health page for Heroku installations
- Fix git boundary not set error for docker/heroku deployments which remove .git directory
2024-02-12 14:33:15 +05:30
Pranav Raj S
eb379e1849
fix(refactor): Cleanup the specs and the logic for FetchIMAP job ( #8766 )
2024-02-10 14:03:50 -08:00
Vishnu Narayanan
c1d07a5471
feat: Add sidekiq jobs to monitor applied SLAs ( #8828 )
...
Fixes: https://linear.app/chatwoot/issue/CW-2983/sidekiq-jobservice-to-monitor-sla-breach
Co-authored-by: Sojan <sojan@pepalo.com>
2024-02-07 21:44:56 +04:00
Jatin
98eddd0532
fix: Send push notification on bot_handoff ( #7636 )
...
Send a 'Conversation Created' push notification when the bot does a hand_off.
fixes : #7587
Co-authored-by: Muhsin Keloth <muhsinkeramam@gmail.com>
2024-02-07 17:45:08 +04:00
Muhsin Keloth
1b21e0d429
feat: Add notification.updated event ( #8871 )
2024-02-07 18:15:51 +05:30
Sojan Jose
7776b74126
chore: Apply fixes for items in rubocop_todo [CW-1806] ( #8864 )
...
This PR addresses several items listed in our rubocop_todo by implementing the necessary corrections and enhancements. As a result, we are now able to remove the rubocop_todo file entirely, streamlining our codebase and ensuring adherence to our coding standards.
fixes: https://linear.app/chatwoot/issue/CW-1806/chore-rubocop-audit
2024-02-07 13:36:04 +04:00
Shivam Mishra
a9ec3ae098
test: ensure that timestamp is in correct range ( #8868 )
...
Co-authored-by: Muhsin Keloth <muhsinkeramam@gmail.com>
2024-02-07 13:35:31 +05:30
Muhsin Keloth
d67b91d2b0
feat: Sort Notification API changes ( #8865 )
...
* feat: Inbox sort API changes
* Update notification_finder.rb
* Update notification_finder.rb
* Update notification_finder.rb
2024-02-06 21:03:22 +05:30
Shivam Mishra
8acc818f68
feat: allow bulk invite create via email ( #8853 )
...
* feat: add agent builder
* feat: use new agent builder
* refactor: validate limit
* test: agent limits
* feat: allow bulk create
* feat: allow bulk create
* refactor: rename current_user to inviter in AgentBuilder
* refactor: move limits tests to enterprise
* test: send correct params
* refactor: account builder returns both user and account_user
* chore: Revert "refactor: account builder returns both user and account_user"
This reverts commit 1419789871e8a3b8ff57af27fe53925b1486a839.
* feat: return user as is
* Update agent_builder.rb
- minor update
---------
Co-authored-by: Sojan Jose <sojan@pepalo.com>
2024-02-06 09:04:04 +05:30
Sojan Jose
1b753720c1
chore: Move Enterprise pricing validation to on create ( #8856 )
...
* chore: Move Pricing validation to on create
The previous validation was getting triggered on all transactions,
this would prevent login to existing users and session data need to be updated.
Opting for a less intrusive approach.
* chore: minore change
2024-02-05 19:18:29 +05:30
Muhsin Keloth
39e27d2a23
feat: Delete all/read notifications ( #8844 )
2024-02-05 13:33:05 +05:30
Shivam Mishra
0c35a77d4b
feat: Show a confirmation banner if the email is not verified ( #8808 )
...
Co-authored-by: Pranav Raj S <pranav@chatwoot.com>
2024-02-02 12:31:29 -08:00
Shivam Mishra
07ea9694a3
feat: new accounts controller for signup+onboarding ( #8804 )
...
* feat: add v2 accounts controller
* feat: allow empty account and user name
* feat: ensure and is present for v1 signup
* test: remove validation checks
* chore: apply suggestions
* chore: revert en.yml formatting
* chore: line at EOF
* fix: routes
---------
Co-authored-by: Muhsin Keloth <muhsinkeramam@gmail.com>
2024-02-02 16:10:45 +05:30
Muhsin Keloth
d3c1fce761
feat: Inbox item actions ( #8838 )
...
* feat: Inbox item actions
* feat: add inbox id in push event data
* Update InboxList.vue
* feat: complete actions
* Update InboxList.vue
* Update InboxView.vue
* chore: code cleanup
* chore: fix specs
---------
Co-authored-by: Sivin Varghese <64252451+iamsivin@users.noreply.github.com>
2024-02-02 11:58:47 +05:30
Pranav Raj S
33e98bf61a
fix: Use BODY.PEEK[HEADER] to avoid parsing issues with mail providers ( #8833 )
...
Co-authored-by: Sojan <sojan@pepalo.com>
2024-02-01 17:24:59 -08:00
Vishnu Narayanan
b8047f0912
feat: sla-2 add automation backend support for SLA ( #8775 )
...
* feat: add automation support for SLA
* feat: add sla action in automtion UI
* chore: revert frontend changes
* chore: refactor to ee namespace
* chore: refactor automation rule to ee namespace
* feat: create applied_sla table entry
* chore: add applied_sla spec
* chore: rubocop fixes
---------
Co-authored-by: Sojan <sojan@pepalo.com>
2024-02-01 15:42:12 +05:30
Sojan Jose
d10525a714
fix: Template sync issue for older Whatsapp channels ( #8830 )
...
- This PR introduces a modification to the channel fetching logic, ensuring that channels with older message_template_last_updated timestamps are prioritized during synchronization.
2024-01-31 18:38:01 +04:00
Sojan Jose
390cd756e8
chore: Reorganize the installation config settings ( #8794 )
...
- Reorganizing installation config settings to move more configurations into UI from environment variables
- Changes to installation config to support premium plans in the enterprise edition
- Fixes the broken premium indicator in account/show and accounts/edit page
2024-01-31 16:48:42 +04:00
Pranav Raj S
ee3f734b7b
chore: Refactor RefreshOauthTokenService to improve readability ( #8820 )
...
- Added a trait called microsoft_email for the Channel::Email factory.
- Rewrote the logic to make it simple to understand
- Rewrote the specs for readability
2024-01-31 12:24:12 +04:00
Pranav Raj S
905ca94f71
chore: Remove unused attribute imap_inbox_synced_at ( #8822 )
...
- imap_inbox_synced_at is no longer used; this PR removes all the references to the same.
2024-01-31 11:48:46 +04:00
Sojan Jose
0805f362d3
chore: Validation for purchased pricing_plan_quantity ( #8809 )
...
- Add validations based on purchased pricing_plan_quantity
- Modify the Dashboard to support the new error message
2024-01-30 11:26:07 +04:00
Sojan Jose
648c4caca1
chore: Move EE OpenAI spec to correct folder ( #8805 )
...
- We previously had this spec inside the enterprise folder which wouldn't be picked up by our build process, so moving to the correct folder instead.
Co-authored-by: Shivam Mishra <scm.mymail@gmail.com>
2024-01-29 20:09:17 +04:00
Muhsin Keloth
ef50edb9e2
feat: Standardise the external channel user id and user name ( #8802 )
...
* feat: Standardize the external channel id and user name
* chore: add specs
* chore: add name space `social`
2024-01-29 16:57:10 +05:30
Shivam Mishra
3ed80fa867
feat: expiry for cache keys [CW-3038] ( #8793 )
...
* feat: set cache keys for 3 days only
* feat: invalidate should set the latest timestamp
* refactor: cache_keys concern
* remove invalidate_cache method
* refactor reset to set to new value instead of delete
* ensure only one event is dispatched
* feat: set expiry to 24 hours
* chore: make expiry 48 hours
* feat: include destroy event
* feat: set expiry to 72 days
* fix: typo
* test: cache update after `touch`
* test: update cache keys
* refactor: remove after_touch, it's already handled in commit
2024-01-29 15:27:26 +05:30