Commit Graph

426 Commits

Author SHA1 Message Date
Shivam Mishra
6b2736aa63
fix: inconsistency in report and summary for metric counts (#6817)
* feat: include timezone offset in summary calculation

* fix: exlcude end in date range

* test: explicit end of day

* fix: test for report builder

* fix: reports.spec.js

---------

Co-authored-by: Tejaswini Chile <tejaswini@chatwoot.com>
2023-04-20 12:55:04 +05:30
Shivam Mishra
1886d4ce08
fix: response body in twitter callback (#6907)
* fix: response body

* fix: tests
2023-04-14 16:48:28 +05:30
Tejaswini Chile
44837aa657
Fix: save twitter profile for inbox (#6667)
Fixes: #737
2023-04-12 14:16:24 +05:30
Tejaswini Chile
d45512df72
feat: Account deletion with deleteObjectJob (#6885)
Fixes: https://linear.app/chatwoot/issue/CW-1365/allow-super-admin-to-delete-an-account

Co-authored-by: Sojan Jose <sojan@pepalo.com>
2023-04-12 13:54:01 +05:30
Tejaswini Chile
e69e0bc984
Add status reopen activity message for api channel (#6839) 2023-04-10 19:12:20 +05:30
Shivam Mishra
a040aee96b
feat: allow adding custom attributes to conversations from the SDK (#6782)
* feat: add conversation attributes method to sdk and widget app

* feat: add endpoints to update custom attributes

* refactor: update SDK api

* feat: add api and actions for conversation updates

* fix: error message

* test: custom attributes on conversations controller

---------

Co-authored-by: Muhsin Keloth <muhsinkeramam@gmail.com>
2023-04-04 08:57:55 +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
00ee0478eb
feat: IndexedDB based caching for labels, inboxes and teams [CW-50] (#6710)
* feat: allow caching of labels in the account scope

* feat: send cache keys in account json response

* feat: kickstart web worker

* feat: setup basic architecture for workers

* feat: install idb

* feat: add datamanger

* fix: typos

* refactor: rename method

* feat: make init db a manual step

* refactor: separate accountIdFromRoute

* feat: cache enabled API client

* feat: enable caching for inboxes and labels

* feat: enable cache for team

* feat: manage exceptions for team

* feat: add team to data manager

* feat: add a generic listener

* refactor: send only cache keys

* refactor: separate validate method

* feat: add listeners

* feat: add event for revalidate

* feat: add cache keys endpoint

* refactor: fetch cache keys instead of full account data

* fix: key pattern

* feat: don't fetch account for cache_keys

* fix: cache key base class

* refactor: cache keys helper

* feat: add helper

* fix: cache-key update logic

* feat: delete indexeddb on logout

* feat: remove worker.js

* refactor: move data-manager

* refactor: name of file

* feat: add test for DataManager

* refactor: add fake idb to jest setup

* test: cache keys helper

* test: cache keys helper

* test: cache_keys in accounts controller

* refactor: remove cache_keys context

* feat: add policy for cache-keys
2023-03-27 12:16:25 +05:30
Tejaswini Chile
856d9067b0
fix: Super admin redirect issue [CW-1370] (#6715) 2023-03-23 14:37:21 +05:30
Tejaswini Chile
9c040af028
[CW-1348] fix: Update email regex validation for contact_inbox (#6705) 2023-03-21 10:51:12 +05:30
Shivam Mishra
e5134c9ef5
[CW-53] feat: allow downloading heatmap report (#6683)
* feat: add control header slot

* feat: add download API call

* feat: add conversation traffic template

* feat: allow downloading heatmap content

* feat: wire up download

* fix: grid layout for mobile

* chore: revert formatting

* revert: en.yml file

* feat: add conversation traffic text

* feat: disable rule for map block

* test: conversation traffic

* fix: timezone offset

* feat: download report in UTC

* feat: add UTC warning

* chore: revert formatting

* feat: add traffic text

* chore: fix whitespace change
2023-03-20 15:46:29 +05:30
Tejaswini Chile
4f936aada5
[CW-1342]: Inbox deletion in background job (#6708) 2023-03-20 13:46:07 +05:30
Tarang
0c9f129c74
Fix issues with Microsoft Provider (#6702) 2023-03-20 12:27:43 +05:30
Tejaswini Chile
cf487c76a0
fix: delete user record if belongs to no account (#6664) 2023-03-15 21:49:49 +05:30
Sojan Jose
da76537011
chore: Search optimisations (#6644)
- Strip search term before searching
- order messages by created_at desc
- order contacts by last_activity_at desc
- order conversations by created_at desc
- Search only resolved contacts
- Optimize resolved contacts query

ref: #6583
2023-03-13 19:10:31 +05:30
Tejaswini Chile
8f4d4798c2
feat: Backend changes for article and categories ordering (#6655) 2023-03-13 17:39:07 +05:30
CristianDuta
c20410f3f4
feat: Ability to update CSAT over Client APIs (#6470)
This PR allows updating CSAT over Client APIs.

ref: #6328

Co-authored-by: Cristian Duta <Cristian.Duta@ti8m.ch>
Co-authored-by: Sojan Jose <sojan@pepalo.com>
2023-03-08 18:42:49 +05:30
Tejaswini Chile
ec04ddc725
Fallback name branch (#6591) 2023-03-03 12:26:59 +05:30
Pranav Raj S
9e8eb293e9
fix: Allow integration apps to be listed by an agent (#6587)
* fix: Allow integration apps to be listed by an agent

* Fix rubocop
2023-03-02 13:02:21 +05:30
Sojan Jose
d4e7eaecce
feat: New APIs for search (#6564)
- Adding new API endpoints for search
- Migrations to add appropriate indexes
2023-02-28 22:00:36 +05:30
Pranav Raj S
b141fc1289
fix: Fetch categories by locale (#6557) 2023-02-27 09:12:14 -08:00
Pranav Raj S
c998c84bc0
fix: Name missing when email is collected via email hook (#6530)
- The name is not updated when the email is updated via the email collect message. This PR fixes that.
2023-02-24 15:24:53 +05:30
Vishnu Narayanan
71f2b27728
fix: ActiveRecord::RecordNotFound Couldn't find Channel::WebWidget (#6523)
* fix: resucue ActiveRecord::RecordNotFound for webwidget controller

* chore: add rails.log
2023-02-23 19:16:07 +05:30
Vishnu Narayanan
930863b25b
fix: sentry CHATWOOT-37A ActiveRecord::RecordNotUnique (#6496)
* fix: sentry CHATWOOT-37A #6457

* chore: add spec
---------

Co-authored-by: Sojan Jose <sojan@pepalo.com>
2023-02-21 09:34:51 +05:30
Shivam Mishra
7be2ef3292
feat: Google OAuth for login & signup (#6346)
This PR adds Google OAuth for all existing users, allowing users to log in or sign up via their Google account.

---------

Co-authored-by: Pranav Raj S <pranav@chatwoot.com>
Co-authored-by: Fayaz Ahmed <15716057+fayazara@users.noreply.github.com>
Co-authored-by: Sojan <sojan@pepalo.com>
2023-02-16 11:12:02 +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
Pranav Raj S
98ff185d42
chore: Add formatting for the view count (#6447) 2023-02-13 14:29:14 -08:00
Shubham Kumar
29025759d6
feat: Add webhook events for contact created, updated (#6415)
Co-authored-by: Pranav Raj S <pranav@chatwoot.com>
2023-02-13 13:28:27 -08:00
Tejaswini Chile
c5b245977a
Added one more endpoint to attach tempfile and get logo (#6407) 2023-02-09 14:05:45 +05:30
Shivam Mishra
f8aa544aae
fix: order for canned response (#6400)
* feat: order canned response

Order canned responses by short_code match first and then with content

* Added specs

---------

Co-authored-by: Pranav Raj S <pranav@chatwoot.com>
2023-02-06 12:53:48 -08:00
Tejaswini Chile
2ab0b8552a
fix: Identity JSON response header (#6326) 2023-02-02 11:01:18 +05:30
Vishnu Narayanan
b1af814eab
feat: add chatwoot instance status in superadmin (#6045)
* feat: add chatwoot instance status in superadmin

* feat: add redis metrics to instance health page

* chore: fix rubocop

* chore: rescue redis no connection

* chore: add rspec

* chore: refactor

* feat: add instance health to /api

* chore: rescue postgres

* chore: fix spec
2023-01-30 18:37:51 +05:30
Vishnu Narayanan
b1ec67d110
chore: upgrade ruby to 3.1.3 (#5555)
* chore: update to ruby 3.1.3

* chore: ping docker version to alpine3.16 for nodev16.x

Starting with Node 17, nodejs switched to OpenSSL3. The docker builds
are installing node18.xx with alpine-3.1.3.

From Node.js 17's announcement post:

    If you hit an ERR_OSSL_EVP_UNSUPPORTED error in your application
with Node.js 17, it’s likely that your application or a module you’re
using is attempting to use an algorithm or key size which is no longer
allowed by default with OpenSSL 3.0. A new command-line option,
--openssl-legacy-provider, has been added to revert to the legacy
provider as a temporary workaround for these tightened restrictions.

Looks like a webpack issue. This is fixed in webpacl 5+ and we are on
webpack4 at the moment.
Solutions

    Upgrade webpack.
    Pin nodejs version to be 16.x.x
    Use  --openssl-legacy-provider as a workaround.

Pin docker version to alpine3.16 branch to have node16.x by default

ref:
https://github.com/chatwoot/chatwoot/pull/5555#issuecomment-1379778532

* chore: update webmock

* chore: fix ruby gem path in dockerfile

* chore: switch to node16 in circleci

* chore: update ruby version in linux installer script

* chore: update ruby version in linux installer script

* chore: fix circleci

* chore: fix circleci

* feat: upgrade node version to 16.x in linux installer

* chore: update systemd files

Co-authored-by: Sojan Jose <sojan@chatwoot.com>
2023-01-24 23:55:07 +05:30
Tejaswini Chile
83ea2a87e2
Microsoft Re-authorization flow (#6268) 2023-01-19 01:06:01 +05:30
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
Pranav Raj S
ffb4bd0109
feat: Add the support for video calls with Dyte in the live-chat widget (#6208)
Co-authored-by: Nithin David Thomas <1277421+nithindavid@users.noreply.github.com>
Co-authored-by: iamsivin <iamsivin@gmail.com>
2023-01-09 11:52:31 -08:00
Pranav Raj S
cbfbe6dbad
feat: Add backend APIs for Dyte integration (#6197)
- The backend changes required for Dyte Integration.
2023-01-09 12:37:18 +05:30
Pranav Raj S
aaacf9d4d2
feat: Allow users to disable marking offline automatically (#6079)
Co-authored-by: Nithin David <1277421+nithindavid@users.noreply.github.com>
2022-12-16 11:59:27 -08:00
smartdev58
9292653bf9
fix: Update enabled_features logic to fix superadmin edit action (#5959)
Co-authored-by: Pranav Raj S <pranav@chatwoot.com>
2022-12-14 18:24:02 -08:00
smartdev58
2a1a38f986
chore: Add feature flags for campaigns and website channel (#5778)
Co-authored-by: Tejaswini Chile <tejaswini@chatwoot.com>
Co-authored-by: Pranav Raj S <pranav@chatwoot.com>
2022-12-14 16:06:26 -08:00
Tejaswini Chile
0b5c82ad5f
fix: Save hostname for the custom domain in the portal (#5984)
* fix: Save hostname for the custom domain in the portal
2022-12-03 20:37:56 +05:30
Tejaswini Chile
3083f74d45
fix: Update inbox json, removing password (#5981)
- Filter restricted inbox attributes in APIs for agents 

Fixes chatwoot/product#668

Co-authored-by: Sojan Jose <sojan@pepalo.com>
2022-11-30 13:04:46 +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
a397f01692
fix: unassign team activity message (#5969) 2022-11-29 13:35:08 +05:30
Sojan Jose
b05d06a28a
feat: Ability to lock to single conversation (#5881)
Adds the ability to lock conversation to a single thread for Whatsapp and Sms Inboxes when using outbound messages.

demo: https://www.loom.com/share/c9e1e563c8914837a4139dfdd2503fef

fixes: #4975

Co-authored-by: Nithin David <1277421+nithindavid@users.noreply.github.com>
2022-11-25 13:01:04 +03:00
Sojan Jose
606fc9046a
feat: Allow users to mark a conversation as unread (#5924)
Allow users to mark conversations as unread.
Loom video: https://www.loom.com/share/ab70552d3c9c48b685da7dfa64be8bb3

fixes: #5552

Co-authored-by: Pranav Raj S <pranav@chatwoot.com>
2022-11-24 10:55:45 +03:00
Tejaswini Chile
9bfbd528ef
feat: Assign team with teams none option (#5871) 2022-11-17 14:15:16 +05:30
Tejaswini Chile
e85f998a08
feat: Remove labels in macro (#5875) 2022-11-17 12:30:47 +05:30
Tejaswini Chile
826a735cdb
fix: Assign agent action changes (#5827) 2022-11-15 13:15:27 +05:30
Muhsin Keloth
b5f7be0cd2
fix: Full name update when creating a conversation without an email id (#5832)
Co-authored-by: Sivin Varghese <64252451+iamsivin@users.noreply.github.com>
Co-authored-by: Pranav Raj S <pranav@chatwoot.com>
2022-11-14 19:39:46 -08:00
smartdev58
b50890d1b5
chore: Update data format for platform API feature management (#5718)
Updated JSON data format for Platform API for account creation update API endpoints features flags to accept false values on each feature. 

fixes: #5717
2022-11-07 17:49:45 -08:00
Tejaswini Chile
48373628a1
fix: Macros authorizations (#5779)
Macros policy update.

ref: #5730
2022-11-07 17:46:00 -08:00
CristianDuta
479d88a480
fix: Identifier not persisted on customer created via Inbox API Channel (#5804)
- Fixes the identifier not being used to identify the contact, this results in having a new contact created every time the email or phone is not supplied.

Fixes: #5704
2022-11-07 16:02:45 -08:00
Tejaswini Chile
a23974d8b9
Feat/5733 Add private note action in macros (#5805) 2022-11-07 22:12:10 +05:30
CristianDuta
4c43330b15
feat: Add inbox details endpoint (#5549)
This change targets the public API and is related to the Inbox with channel type API.
Exposes public inbox details under /public/api/v1/inboxes/{inbox_identifier}. This allows access to feature flags and business hours configured for the inbox.

ref: #5514
2022-11-02 19:05:03 -07:00
Sojan Jose
8b659de73d
chore: Use connection_pool for redis (#5790)
fixes: #3199
2022-11-02 17:31:20 -07:00
Tejaswini Chile
a0606d36f6
fix: Set message sender to macros excution (#5769) 2022-10-31 19:33:12 +05:30
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
Pranav Raj S
95cc55d043
fix: Update pagination logic in the help center (#5693) 2022-10-20 20:05:17 -07:00
Tejaswini Chile
a274a1702a
chore: Macros enhancement (#5609)
- Fixed send_attachment and send_email_transcript
- Fixed duplicate activity messages
- Fixed Order of execution

Fixes: #5584
2022-10-20 19:41:48 -07:00
smartdev58
fa73b5290c
chore: Allow feature flag parameters in platform API for account creation (#5589)
Co-authored-by: Pranav Raj S <pranav@chatwoot.com>
2022-10-19 21:16:36 -07:00
Muhsin Keloth
2e7ab484bd
fix: Discard invalid contact attributes in widget conversation end point (#5664)
Fixes: chatwoot/product#601
2022-10-18 13:16:29 -07:00
Tejaswini Chile
7419e413f4
fix: Added "None" option in bulk actions assignment menu (#5585)
Co-authored-by: Sivin Varghese <64252451+iamsivin@users.noreply.github.com>
Co-authored-by: Pranav Raj S <pranav@chatwoot.com>
2022-10-11 13:44:35 -07:00
Muhsin Keloth
b668723313
chore: Ability to change default account (#5393)
Co-authored-by: Sivin Varghese <64252451+iamsivin@users.noreply.github.com>
Co-authored-by: Tejaswini Chile <tejaswini@chatwoot.com>
2022-10-05 17:31:12 -07:00
Jordan Brough
4f0360c7a2
chore: Allow setting "users.display_name" in Platform API (#5532) 2022-09-30 11:28:18 -07:00
Tejaswini Chile
336c09e072
fix: Add all articles count to article API (#5497) 2022-09-27 12:35:53 -07:00
Tejaswini Chile
c1c57fb2cd
fix: Add slug to articles (#5500) 2022-09-27 12:27:18 -07:00
Tejaswini Chile
111016fe4c
fix: Add not found status if macro not found (#5473) 2022-09-21 14:10:35 +05:30
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
Nithin David Thomas
1ea289e8b7
feat: Sets up portal public views with rails ERB and tailwind (#5309)
* feat: Sets up portal public views with rails ERB and tailwind

* linter fixes

* Remove duplicate style file

* Shows articles and categories

* Specify layout for articles page

* Updates public portal styles

* Fixes blog content styles

* Portal style updates for article page

* Review fixes

* Adds breadcrumbs

* fix: rspec

* fix: public portal spec

* Code climate fixes

* Adds test cases for missing files

* Show only published articles

* Updates help center routes

* Review fixes

* Render markdown content for aticle body

* Update app/views/public/api/v1/portals/articles/index.html.erb

Co-authored-by: Sivin Varghese <64252451+iamsivin@users.noreply.github.com>

Co-authored-by: Sojan <sojan@pepalo.com>
Co-authored-by: Muhsin Keloth <muhsinkeramam@gmail.com>
Co-authored-by: Sivin Varghese <64252451+iamsivin@users.noreply.github.com>
Co-authored-by: tejaswini chile <tejaswini@chatwoot.com>
2022-09-12 23:36:24 +05:30
Tejaswini Chile
db73d033b7
feat: Fetching the portal data related to a specific custom domain (#5249) 2022-09-07 12:22:24 +05:30
Tejaswini Chile
329e8c37c8
fix: Validations for updating team members (#5384)
fixes: chatwoot/product#539

Co-authored-by: Sojan Jose <sojan@pepalo.com>
2022-09-02 23:09:29 +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
Pranav Raj S
e0cebfaa1a
chore: Allow super admin to suspend an account (#5174) 2022-08-03 11:40:03 +05:30
Tejaswini Chile
4152883f38
chore: Add missing locale info in portal API (#5177) 2022-08-03 10:33:48 +05:30
Muhsin Keloth
5735a8e377
feat: Articles store integration (#5133) 2022-08-02 17:14:10 +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
giquieu
827f977a37
feat: Update API for contact avatar (#4719)
Added the ability to update the contact's avatar via API and Dashboard.

- Contact create and update APIs can now accept avatar attachment parameters [form data].
- Contact create and update endpoints can now accept the avatar_url parameter.[json]
- API endpoint to remove a contact avatar.
- Updated Contact create/edit UI components with avatar support

Fixes: #3428
2022-07-12 10:03:16 +02: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
f014d9d13b
chore: Ability to Disable Sentry Transactions (#4989)
fixes: #4866
2022-07-07 20:37:05 +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
029209a634
feat: Portal and Category public APIs (#4946) 2022-07-05 17:15:38 +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
df1bf112ea
feat: Category API to handle linked categories and parent-sub categories (#4879) 2022-06-28 11:23:20 +05:30
Sojan Jose
f71980bd95
chore: Enhance contact merge action for identified users (#4886)
- Discard conflicting keys 
- Do not merge if there is already an identified contact

Co-authored-by: Pranav Raj S <pranav@chatwoot.com>
2022-06-23 15:48:56 +05:30
Tejaswini Chile
ae72757d23
feat: APIs for Articles (#4777)
Fixes: #4802
2022-06-13 15:56:49 +05:30
Tejaswini Chile
aa903a5da9
Fix: backend changes for custom attribute (#4830) 2022-06-13 11:58:54 +05:30
Pranav Raj S
b9aa4444b3
feat: Allow users to create dashboard apps to give agents more context (#4761) 2022-06-01 11:13:10 +05:30
Pranav Raj S
7434b60f71
fix: Revert changes to fix name updation from pre-chat form (#4741) 2022-05-25 12:38:23 +05:30
Pranav Raj S
56cd9bc0b8
chore: Add Assignable Agents API (#4722) 2022-05-23 19:24:07 +05:30
Aswin Dev P.S
59969cc553
chore: Update conversations API to include unattended conversations. (#4708)
* Update conversations API to include unattended conversations.
2022-05-22 00:38:41 -07:00