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
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
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
ae4c8d818f
feat: Ability to block contacts permanently ( #8922 )
...
Co-authored-by: Pranav <pranav@chatwoot.com >
2024-02-21 14:18:42 -08:00
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
94892e7168
chore: Fix flaky spec relying on unguaranteed order ( #8956 )
2024-02-16 12:11:39 -08:00
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
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
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
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
Sojan Jose
a861257f73
chore: Fix flaky contacts spec ( #8773 )
...
- The ordering was not guaranteed; hence, the specs were failing randomly. Made changes to the expectations accordingly
2024-01-24 13:58:27 +04:00
Sojan Jose
ce8190dacf
fix: API error when using SuperAdmin token ( #8739 )
...
- Fixes the issue in release 3.5.0, which causes SuperAdmin tokens to throw error during API calls
Fixes : #8719
2024-01-18 18:49:32 +04:00
Shivam Mishra
e39c14460b
fix: validate url for Dashboard Apps [CW-2979] ( #8736 )
2024-01-18 17:48:30 +05:30
Shivam Mishra
56fbbe92b4
feat: trigger handoff when agent bot is the actor ( #8639 )
...
- This PR adds a feature to auto-trigger handoff events when an Agent bot toggles a conversation status from Pending to Open
Co-authored-by: Sojan <sojan@pepalo.com >
2024-01-05 15:26:52 -08:00
Sojan Jose
376de685fb
chore: Adds API for agent bot avatar upload ( #8533 )
...
Adds API for agent bot avatar upload
- accounts/agent_bot
- platform/agent_bot
2023-12-11 19:02:11 -08:00
Sivin Varghese
27239ae14a
feat: Adds API for retry messages in conversation ( #8518 )
2023-12-11 09:33:39 +05:30
Muhsin Keloth
449503bb94
feat: Snooze notification API ( #8439 )
2023-12-04 12:32:35 +05:30
Muhsin Keloth
bc6e3e598f
feat: Delete notification by id API ( #8430 )
2023-11-29 22:45:11 +05:30
Sojan Jose
0e19a4196b
chore: Endpoint to purge portal logo ( #8365 )
2023-11-18 01:13:22 +05:30
Muhsin Keloth
af7631d9f1
chore: Update MarkMessagesAsReadJob to accept delivered status ( #8319 )
2023-11-08 13:44:57 -08:00
Pranav Raj S
d1cbc56d67
chore: Update widget config API to migrate the widget ( #8303 )
...
- Update the keys in the widget config API to support loading the widget separately from the Rails App.
2023-11-06 15:27:29 -08:00
Muhsin Keloth
24fbab94c3
chore: Refactor MarkMessagesAsReadJob based on conversation id and time stamp ( #8217 )
...
- Mark all messages as read by providing the conversation ID and timestamp.
- For Instagram, ensure all previous messages that weren't marked as failed are now marked as read. This is because the read events are only triggered for the most recent message and not for any previous ones.
2023-10-27 15:21:39 -07:00
Pranav Raj S
6c4b92f7f6
fix: Revert the changes for SyncCustomFilterCountJob ( #8238 )
2023-10-27 10:45:48 -07:00
Shivam Mishra
d94108bf3f
feat: show ReplyTo in widget UI ( #8094 )
...
Co-authored-by: Sivin Varghese <64252451+iamsivin@users.noreply.github.com >
Co-authored-by: Muhsin Keloth <muhsinkeramam@gmail.com >
2023-10-27 13:35:02 +05:30
Muhsin Keloth
980013abae
feat: Add delivery reports for live chat ( #8092 )
2023-10-12 20:48:20 +05:30
Vishnu Narayanan
ae52ca87aa
fix: Handle empty status in conversation controller ( #8091 )
...
Fixes CW-2644
2023-10-12 17:11:04 +05:30
Pranav Raj S
12a64f1b10
chore: Add an API to find the contacts using contact inbox sourceId ( #8012 )
...
Fixes: https://linear.app/chatwoot/issue/CW-2578/search-by-facebook-id
2023-09-28 15:26:28 -07:00
Liam
bdeb2f9812
feat: Searching contacts by company name ( #7867 )
...
Implement the functionality of being able to search the contacts page by company name.
Fixes : #7818
Co-authored-by: Sojan Jose <sojan@pepalo.com >
2023-09-21 00:53:12 -07:00
Shivam Mishra
53d530b815
feat: Add upload under account scope ( #7914 )
2023-09-19 09:51:54 +05:30
Vishnu Narayanan
7b6a56714f
fix: double rendor error on message create api for suspended accounts ( #7917 )
2023-09-14 20:06:48 +05:30
Vishnu Narayanan
5e6e234afe
feat (perf): Remove conversation count in contacts list view ( #7915 )
...
Co-authored-by: Pranav Raj S <pranav@chatwoot.com >
2023-09-14 08:49:37 +05:30
Shivam Mishra
9ebabb9832
feat: common attachment endpoint follow-up changes ( #7826 )
2023-09-01 15:18:48 +07:00
Shivam Mishra
deec1d213b
feat: add a common upload endpoint ( #7806 )
...
Co-authored-by: Sivin Varghese <64252451+iamsivin@users.noreply.github.com >
2023-08-31 10:36:02 +07:00
Sojan Jose
6ab964b161
chore: fix flaky spec ( #7686 )
...
- fix flaky reporting specs
- fix flaky export spec
2023-08-25 00:11:41 -07:00
Sojan Jose
e3b8c1fbb5
fix: Include waiting on agent conversations to unattended view ( #7667 )
...
Updating the `unattended` tab to include conversations where the customer responded and is awaiting an agent's response.
Previously it showed only the conversations where the first response was pending.
Co-authored-by: Pranav Raj S <pranav@chatwoot.com >
2023-08-15 15:09:10 -07:00
Pranav Raj S
022f4f899f
Revert "feat: Support Azure single-tenant application using the Graph… ( #7436 )
2023-06-29 16:50:18 -07:00
Tejaswini Chile
d05c953eef
feat: Support Azure single-tenant application using the Graph API ( #6728 ) ( #6878 )
2023-06-28 08:13:08 +05:30
Vishnu Narayanan
f963e00731
fix: capture user and ip details on Inbox delete ( #7395 )
...
Fixes: https://linear.app/chatwoot/issue/CW-1772/ip-address-and-user-details-are-missing-in-some-of-the-logs
Co-authored-by: Sojan <sojan@pepalo.com >
2023-06-27 19:49:24 +05:30
Luis
533f9f7fe4
fix: Email collect overriding existing contact name ( #7355 )
...
Currently, if Enable email collect box is enabled, and the user starting the chat already has an account with the same email, it will override the current account with {name} from the email name@email.com , this fixes it.
Co-authored-by: Sojan <sojan@pepalo.com >
2023-06-22 19:09:12 +05:30
Tejaswini Chile
9d0de04f7c
fix: set custom filter count in redis ( #7164 )
2023-06-19 16:10:03 +05:30
Muhsin Keloth
6eb4fa41ff
feat: Add sender details and message create date in the attachment API ( #7308 )
2023-06-14 17:29:13 +05:30
Shivam Mishra
a86e236d19
feat: update cache headers for cache_keys ( #7283 )
...
Update the cache headers for cache_keys to max-age=10, private, stale-while-revalidate=300
1. The cache will be fresh for 10 seconds (max-age=10). During this time, the browser will use the cached version without checking with the server.
2. After the initial 10 seconds, the browser can continue to serve the stale cache for up to 5 minutes (stale-while-revalidate=300). During this period, it will also try to revalidate and update the cache in the background.
3. After 310 seconds in total (10 seconds fresh, 300 seconds stale), if the browser has not been able to revalidate the cache, it will attempt to fetch the fresh resource directly from the server for subsequent requests, causing potential latency equivalent to a network request.
This means that the data will be directly revalidated only every 5 mins. Other times, it will stay fresh for 10 seconds and revalidate in the background. In most cases, we won't have to rely on a cache validation check because there is a WebSocket event for revalidation, so we know if something changes.
Right now the stale-while-revalidate is 5 minutes, we can then move it to 15 minutes.
> The stale-while-revalidate header is not supported in Safari, for Safari the cache keys will only stay in memory for 10 seconds before being marked stale
2023-06-14 13:21:51 +05:30