Commit graph

447 commits

Author SHA1 Message Date
Sojan Jose
ebb04487a8
chore: Prevent null in Contact JSONB attributes (#3730) 2022-01-11 15:14:55 -08:00
Aswin Dev P.S
7ee7062843
feat: Toggle to disallow users to send messages after a conversation is resolved (#3605) 2022-01-11 00:32:03 -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
Sojan Jose
6fe5484119
chore: Allow more filetypes in uploads (#3557)
- Allowing the ability to upload more common file types like zip, Docx etc
- Fallback for image bubble when the image URL isn't available

fixes: #3270

Co-authored-by: Muhsin Keloth <muhsinkeramam@gmail.com>
Co-authored-by: Nithin David <1277421+nithindavid@users.noreply.github.com>
2021-12-20 23:50:37 +05:30
Sojan Jose
8d65608666
chore: Clean up migrations (#3613)
Fixes: #3530
2021-12-19 09:47:07 +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
Tejaswini Chile
9984edd3ef
Feat: Manage conversation for tweets based on the tweet flag (#3353)
Add tweet conversation only if tweets are enabled.

Fixes #1961
2021-12-16 00:24:50 +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
Pranav Raj S
2be71e73dc
feat: Add a view for mentions (#3505)
- Added a new table mentions for saving user mentions
- Added a filter conversation_type in the API
- Added a view to see the mentions
2021-12-09 11:20:14 +05:30
Muhsin Keloth
3ee6b7d6e9
chore: Add the ability to use same key for conversation and contact (#3526) 2021-12-08 20:15:27 +05:30
Muhsin Keloth
46afcd9348
fix: Index custom attribute uniqueness on account (#3516)
- Move custom attribute uniqueness validation to account
2021-12-07 18:20:47 +05:30
Sojan Jose
d5c30760a7
chore: Whatsapp templates fix for 360 dialog (#3479)
Fixes: #3426
2021-11-30 20:50:35 +05:30
Shivam Chahar
a4ee8ee239
Chore: Improve conversation auto resolution (#3405)
Fixes: #1583
2021-11-27 09:26:18 +05:30
Vishnu Narayanan
3a48e08fe0
feat: migrate facebook env vars to globalConfig (#3369)
Migrate facebook env vars to globalConfig and make it editable from the super admin UI.
2021-11-25 00:55:26 +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
Aswin Dev P.S
24e6a92297
feat: IMAP Email Channel (#3298)
This change allows the user to configure both IMAP and SMTP for an email inbox. IMAP enables the user to see emails in Chatwoot. And user can use SMTP to reply to an email conversation.

Users can use the default settings to send and receive emails for email inboxes if both IMAP and SMTP are disabled.

Fixes #2520
2021-11-19 11:52:27 +05:30
Muhsin Keloth
bf96e8b68d
choore: Change values to attribute_values in custom attributes (#3413) 2021-11-18 18:59:28 +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
9ea42ebff2
chore: Add the support for list and checkbox in custom attribute model (#3400)
ref: #3399
2021-11-16 23:25:19 +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
Muhsin Keloth
76370267f3
feat: Render contact custom attributes in contact/conversation sidebar (#3310) 2021-11-11 15:23:33 +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
Tejaswini Chile
358171062e
Feat: Add Null values at the last while sorting (#3292)
* Add Null values at the last while sorting
* Add contacts at last with special character in it
* Optimize SQL order and direction
2021-11-10 14:11:00 +05:30
Pranav Raj S
8e6ce3a813
feat: Add notes for Contacts (#3273)
Fixes #2275
2021-10-25 18:35:58 +05:30
Sojan Jose
06289b03ea
chore: Add Contact Note APIs (#3266) 2021-10-24 12:40:30 +05:30
Sojan Jose
3b53ca157c
chore: fix the failing user destroy for admin (#3223)
- fix the invitee association on the user
- handle Instagram events with inbox missing
2021-10-16 00:11:53 +05:30
Pranav Raj S
99abbb8158
feat: Display sent status of emails in email channel (#3125) 2021-10-14 12:55:46 +05:30
Muhsin Keloth
6bfa551c85
fix: Trigger campaigns only during business hours (#3085)
Fixes #2433
2021-10-12 17:58:33 +05:30
Fayaz Ahmed
b9e85a628b
Feat : Toggle to enforce user validation in Chatwoots web SDK (#3137)
* If enabled, enforces user validation with identifier_hash

* Fixes the hmac flag payload

* Adds missing i18n label for checkbox

* If enabled, Adds EOF on json file

* If applied, Handles HMAC Disable option

Co-authored-by: Tejaswini Chile <tejaswini776@gmail.com>
Co-authored-by: Sivin Varghese <64252451+iamsivin@users.noreply.github.com>
2021-10-08 12:53:24 +05:30
Sojan Jose
c54aae21ff
chore: Move agent availability to Account level (#3074)
- Move agent availability to the account level
2021-10-07 13:21: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
Sojan Jose
bd7aeba484
chore: Provider API prototype (#3112)
Enabling Support for Whatsapp via 360Dialog as a prototype for the provider APIs. 

Co-authored-by: Pranav Raj S <pranav@chatwoot.com>
2021-10-05 23:35:06 +05:30
Tejaswini Chile
40d0b2faf3
feat: Add Instagram Channel (#2955) 2021-10-05 14:35:32 +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
Aswin Dev P.S
15aaa8883c
feat: API to Filter reports by teams (#3066)
Add API to Filter reports by teams

Fixes: #2916
2021-09-27 21:12:08 +05:30
Tejaswini Chile
54bdb2957f
feat: Add assignee last seen to conversations (#3069)
- Adds assignee last seen attribute to conversations
2021-09-23 20:59:10 +05:30
Aswin Dev P.S
4f51a46c2b
feat: Ability to delete a contact (#2984)
This change allows the administrator user to delete a contact and its related data like conversations, contact inboxes, and reports.

Fixes #1929
2021-09-23 12:52:49 +05:30
Muhsin Keloth
0c24df96a8
chore: Conversation custom attribute APIs (#3024) 2021-09-22 10:46:48 +05:30
Pranav Raj S
b59e73b10b
fix: Update associations when a label is updated (#3046) 2021-09-21 10:16:32 +05:30
Tejaswini Chile
b1b0268705
feat: Support sending and receiving attachments in Slack Integration (#3022)
- Process incoming slack attachments
- Send attachments from chatwoot to slack
2021-09-18 00:49:01 +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
Sojan Jose
0c3e8b6dbd
chore: Return medium in inbox APIs (#3025)
Return medium in inbox APIs
2021-09-16 16:51:06 +05:30
Sojan Jose
2396b59f11
chore: API fixes (#3014)
- Minor API fixes
- Configuration screen for LINE inbox
2021-09-14 22:44:53 +05:30
Sojan Jose
22d1c8baf2
Chore: Inbox Members API improvements (#3008)
- New Inbox Member APIs
- Return JSON errors for Platform APIs
2021-09-14 11:55:02 +05:30
Brandon Wilson
571fefd7cd
fix: Selected agent profile picture in agent multi select (#2949) 2021-09-13 13:43:19 +05:30
Sojan Jose
0a38632f14
feat: Line Channel (#2904)
- Ability to configure line bots as a channel in chatwoot
- Receive a message sent to the line bot in chatwoot
- Ability to reply to line users from chatwoot

fixes: #2738
2021-09-11 01:31:17 +05:30
Sojan Jose
671c5c931f
feat: Telegram Channel (#2901)
- Ability to configure telegram bots as a channel in chatwoot
- Receive a message sent to the telegram bot in chatwoot
- Ability to reply to telegram users from chatwoot
- Receive attachment messages in chatwoot

fixes: #1843
2021-09-10 00:00:52 +05:30
Sojan Jose
9c4ce9af35
chore: Strip unnecessary data from push payload (#2924) 2021-09-09 13:59:42 +05:30
Sojan Jose
8de4ce0037
chore: attachment validation fix (#2976)
- Attachment validation was supposed to affect the web widget channel only. But it was validating for all channels
2021-09-07 22:59:02 +05:30
Sojan Jose
ad83d1bb71
feat: Platform API improvements (#2900)
- Platform APIs to add and update custom attributes to users
- Platform APIs to delete accounts
- Platform APIs to delete users
2021-09-02 18:29:45 +05:30
Sojan Jose
6fdd4a2996
chore: Security Improvements to the API (#2893)
- Devise auth tokens are reset on password update
- Avatar attachment file type is limited to jpeg,gif and png
- Avatar attachment file size is limited to 15 mb
- Widget Message attachments are limited to types ['image/png', 'image/jpeg', 'image/gif', 'image/bmp', 'image/tiff', 'application/pdf', 'audio/mpeg', 'video/mp4', 'audio/ogg', 'text/csv']
- Widget Message attachments are limited to 40Mb size limit.
2021-09-01 15:08:05 +05:30
Sojan Jose
5319af3dfc
chore: Merge contact copy over information (#2812)
fixes: #2767, #2773

Co-authored-by: Nithin David <1277421+nithindavid@users.noreply.github.com>
2021-08-31 15:30:18 +05:30
Sivin Varghese
fdcc322660
feat: Add the ability to create custom attribute (#2903) 2021-08-31 13:54:34 +05:30
Tejaswini Chile
65f3e83afd
feat: APIs to filter reports (#2889)
Fixes #2823
2021-08-27 22:46:32 +05:30
Brandon Wilson
f94abaef5f
feat: Shows inbox identifier token for API inbox (#2894)
Fixes: #2605
2021-08-27 19:56:45 +05:30
Fayaz Ahmed
0a08e1ffc0
feat: Adds async and defer attributes to chatwoot script tag (#2890)
Co-authored-by: Muhsin Keloth <muhsinkeramam@gmail.com>
Co-authored-by: Nithin David Thomas <1277421+nithindavid@users.noreply.github.com>
2021-08-26 19:51:10 +05:30
Muhsin Keloth
1257f86f22
chore: Add description field in custom attribute model (#2872) 2021-08-24 21:17:23 +05:30
Muhsin Keloth
6515b69560
feat: CSAT for all channels (#2749) 2021-08-23 22:00:47 +05:30
Tejaswini Chile
eb80324eaa
feat: Add message content to mention email template (#2838) 2021-08-18 15:28:45 +05:30
Vishal Pandey
21d2b4d918
chore: Consider inbox.timezone in open_at logic (#2183)
Co-authored-by: Sojan Jose <sojan@pepalo.com>
2021-08-12 02:29:15 +05:30
Sojan Jose
ab54d9c629
chore: Upgrade rails and ruby versions (#2400)
ruby version: 3.0.2
rails version: 6.1.4
2021-08-03 20:11:52 +05:30
Sojan Jose
e46aa1aa64
chore: Mark Facebook accounts for reconnection (#2405)
fixes: #2037
2021-08-01 18:15:39 +05:30
Vishnu Narayanan
223385d134
fix: Specify external db with non-standard port (#2711)
POSTGRES_PORT was not taking effect if provided separately
instead of using DATABASE_URL. This adds support for using
databases running on non-standard ports.

#1145
#1147

Co-authored-by: Pranav Raj S <pranav@chatwoot.com>
2021-07-28 19:36:51 +05:30
Pranav Raj S
7664006625
chore: Improve search, list performance of contact/conversation APIs (#2696) 2021-07-23 18:39:24 +05:30
Pranav Raj S
6e1493501a
feat: Add APIs for custom attribute definitions (#2689) 2021-07-23 17:04:33 +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
Sojan Jose
217dd8a6f0
chore: Add assigned_count to conversation APIs (#2665) 2021-07-19 19:10:58 +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
Pranav Raj S
cb44eb2964
feat: Add CSAT reports (#2608) 2021-07-14 10:20:06 +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
e11b3c4f17
chore: Expose contact custom attributes in events (#2562)
Expose contact custom attributes in events so the external system can behave accordingly without triggering an additional API call.
2021-07-05 14:35:53 +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
Pranav Raj S
30832d8a34
feat: Add APIs to create custom views on the dashboard (#2498) 2021-06-29 19:29:57 +05:30
Muhsin Keloth
8027c69c1c
chore: Change the notification text for mention notification type (#2534) 2021-06-29 14:32:57 +05:30
Sojan Jose
cd11efea1d
feat: Add CSAT Message Template Hooks (#2494) 2021-06-23 19:29:27 +05:30
Muhsin Keloth
29b9915d3b
feat: Add customer satisfaction component (#2456) 2021-06-22 13:01:19 +05:30
Muhsin Keloth
3d748aa8d4
chore: Add contact note model (#2462) 2021-06-21 15:16:26 +05:30
Sojan Jose
50e4bb3e63
chore: Add CSAT survey toggle attribute to Inboxes (#2455)
ref: #1890
2021-06-18 15:55:48 +05:30
Sojan Jose
853db60f8e
feat: Add Public APIs for API Channel (#2375) 2021-06-15 20:09:17 +05:30
Sojan Jose
534acfbf96
chore: Ensure privilege validations for API endpoints (#2224)
Co-authored-by: Pranav Raj S <pranav@chatwoot.com>
2021-06-11 11:44:31 +05:30
Muhsin Keloth
b9e40d1452
feat: Add an option to enable/disable email collect box (#2399)
* add email collect enabled migration

* migrations

* expose enable_email_collect field

* add select for email collect

* add enable_email condition on new conversation

* add default value true for enable_email_collect

* add specs for email collect enabled

* rereun migration

* code cleanup

* update token life span to 2 months

* revert uuid column
2021-06-10 02:34:03 -07:00
Sojan Jose
1bf7227843
chore: Fix emails being sent with the wrong translations (#2236)
Co-authored-by: Pranav Raj S <pranav@chatwoot.com>
2021-06-08 22:45:01 +05:30
Sivin Varghese
67ce6f5704
feat: Add regex validation on form message inputs (#2317)
Co-authored-by: Nithin David Thomas <webofnithin@gmail.com>
Co-authored-by: Sojan <sojan@pepalo.com>
2021-06-08 16:32:01 +05:30
Sojan Jose
0a087c95fd
chore: Message API improvements (#2396)
Co-authored-by: Pranav Raj S <pranav@chatwoot.com>
2021-06-08 01:11:06 +05:30
Sojan Jose
467b45b427
feat: Improved password security policy (#2345)
Co-authored-by: Pranav Raj S <pranav@chatwoot.com>
2021-06-07 17:26:08 +05:30
Muhsin Keloth
14b51e108a
feat: Add Integration hooks UI (#2301) 2021-06-06 16:59:05 +05:30
Sojan Jose
22965be6dc
feat: Add AgentBot APIs (#2323) 2021-06-01 22:34:25 +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
836b317b8a
feat: Remove restrictions on API channel webhook_url (#2261) 2021-05-13 15:03:25 +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
a07200bedf
chore: Campaign ID migration for existing accounts (#2189)
* chore: Campaign ID migration for existing accounts

* chore: update factory

* chore: minor fixes

* chore: fixes
2021-04-30 06:15:24 -07:00
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
45e43b0b89
feat: Contactable Inboxes API (#2101)
- Add endpoint which lists inboxes through which a contact can be contacted
- Conversation creation API auto-creates contact_inbox for specific channels [ Twilio, email, api]
- Ability to send the initial message payload along with the conversation creation
- Fixes #1678 ( issue saving additional attributes for conversation )
2021-04-15 15:13:01 +05:30
Sojan Jose
c4ae901591
chore: Fix Twilio file uploads (#2088) 2021-04-13 01:39:51 -07:00
Sojan Jose
c95ad8dd4f
chore: Remove validation on team name (#2014) 2021-03-30 16:02:41 +05:30
Sojan Jose
6bb026621d
fix: Current.user nil issue when using access tokens (#2012) 2021-03-29 23:26:20 +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
1d2e1a2823
Feat: business hours settings page (#1812)
Co-authored-by: Sojan <sojan@pepalo.com>
Co-authored-by: Pranav Raj S <pranav@chatwoot.com>
2021-03-13 11:42:51 +05:30
Sojan Jose
dbf515ab5a
chore: Make SMTP environment variables configurable (#1868)
fixes: #1647
2021-03-12 15:37:06 +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
ca4a766b82
chore: Enable email channel (#1851) 2021-03-04 13:59:59 +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
Sojan Jose
3ade7d4445
chore: Fix push message tag error (#1768) 2021-02-16 00:15:45 +05:30
Pranav Raj S
037ffc7419
feat: Add a pre-chat form on widget (#1769) 2021-02-16 00:14:13 +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
Nithin David Thomas
1484849cc7
chore: Update method for team members (#1734)
Co-authored-by: Sojan Jose <sojan@pepalo.com>
2021-02-09 19:21:31 +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
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
f9c3b7f2f1
feat: Bulk add team members in Team APIs (#1695) 2021-01-29 12:34:52 +05:30
freddii
229fcc18b7
chore: fixed typos in code comments (#1701) 2021-01-28 10:39:37 +05:30
Pranav Raj S
b93388b330
feat: Tag agents in a private note (#1688)
Co-authored-by: Sojan <sojan@pepalo.com>
2021-01-27 00:04:11 +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
b6e8173b24
feat: HMAC verification for web widget (#1643)
* feat: HMAC verification for web widget. Let you verify the authenticated contact via HMAC on the web widget to prevent data tampering.
* Add docs for identity-validation

Co-authored-by: Pranav Raj S <pranav@chatwoot.com>
2021-01-17 22:44:03 +05:30
Pranav Raj S
d758df8807
fix: Add correct thread message_id to the email message (#1659)
Co-authored-by: Sojan <sojan@pepalo.com>
2021-01-17 22:43:32 +05:30
Sony Mathew
18d3c40fb3
feat: installation config in super admin console (#1641)
* feat: installation config in super admin console

* Added the ability for super admins to view, edit and update
installation config values. Also they can add new isntallation config
values. The impact of editing and adding depends on which all
installation config values are being used in the code.
* Known limitation now: Ability to edit hash values (for eg: feature
flags) are disabled. This requires more work and will be taken up in
a secondary set of changes.
* Minor UX improvement. Clicking on the Sidekiq option in the super
admin siebar will now open the sidekiq dashboard in a new tab rather
than in the same tab that you were using super admin.

* fix: method name fix in custom adminsitrate field

* feat: added locked attribute to global config
* Added the locked attribute to instalaltion config table. Added
necessary migrations. Added changes in config loader.
* Added the changes on the installation config yml
* Locked the account feature defaults in code

* feat: show only editable configs in admin console
* Added a new scope in installation config model
* Added scope in adminstrate controller for installation_config

* fix: new installation config create error
* Fixed the error in new installation config create

* fix: specs coverage
* Added specs for installation config super admin controller

* chore: update git ignore with encrypted config ext
2021-01-15 13:21:53 +05:30
Sojan Jose
7542330d61
feat: Add Platform APIs (#1456) 2021-01-14 20:35:22 +05:30
Pranav Raj S
75c2a7cb2f
fix: Resolve name only if assignee exists during unassignment (#1649) 2021-01-14 14:21:41 +05:30
Pranav Raj S
160a6fc6cf
feat: Save UI state in the database (#1635)
feat: Save UI state in the database
2021-01-10 19:25:33 +05:30
Sojan Jose
7884090551
chore: Enable updating conversation additional attributes (#1611)
- Enable updating additional attributes via conversation API
- Handle the case when additional_attributes is nil

Fixes: #1357
2021-01-07 13:47:38 +05:30
Sojan Jose
db189e3c26
chore: Sync the schema and migrations (#1610) 2021-01-06 11:36:45 +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
Pranav Raj S
a2d6fa0f74
feat: API to add label to contacts (#1563) 2021-01-03 20:07:57 +05:30
Pranav Raj S
811657c9e7
feat: API to allow agents to delete a message (#1353) 2020-12-28 23:36:50 +05:30
Pranav Raj S
8e2b4acc43
chore: Remove account.destroy listener (#1530) 2020-12-19 18:11:43 +05:30
Pranav Raj S
edb09d5a9c
chore: Improve location display in sidebar (#1509)
- Log IP Address on widget load
- Save country code to contact
2020-12-13 22:23:56 +05:30
Pranav Raj S
c87cdf25c5
chore: Upgrade highlight.js to 10.4.1 (#1483)
Bumps [highlight.js](https://github.com/highlightjs/highlight.js) from 9.18.5 to 10.4.1.
- [Release notes](https://github.com/highlightjs/highlight.js/releases)
- [Changelog](https://github.com/highlightjs/highlight.js/blob/master/CHANGES.md)
- [Commits](https://github.com/highlightjs/highlight.js/compare/9.18.5...10.4.1)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-12-05 01:22:16 +05:30
Pranav Raj S
64733ca3bc
fix: Move integration text to translation file (#1463)
- Move integration text to translation file
- Split switch_locale
2020-11-30 16:24:54 +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
Sojan Jose
eb2ded6f65
feat: Agent & Inbox Report APIs (#1391) 2020-11-16 19:41:52 +05:30
Sojan Jose
563da0e052
feat: Use gravatar URL for contacts and users if no image available (#1407) 2020-11-13 19:56:30 +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
Abhishek
ff96d43953
feat: notify on slack disconnect (#1323) 2020-10-28 00:22:57 +05:30
Pranav Raj S
85514cae8d
feat: Display reply time in widget (#1349)
Fixes #1132
2020-10-18 23:32:22 +05:30
Pranav Raj S
0bea0217b4
chore: Use full name in activity message, fix specs (#1339) 2020-10-14 00:16:35 +05:30
Pranav Raj Sreepuram
4a2a309d18 Use name instead of display_name in the dashboard 2020-10-13 13:03:55 +05:30
Pranav Raj S
2c324d9421
feat: Allow custom email address for inbox (#1336) 2020-10-11 23:24:11 +05:30
Dmitriy Shcherbakan
ecebe163e1
feat: Ability to unmute muted conversations (#1319) 2020-10-08 12:02:08 +05:30
Pranav Raj S
db1953de24
fix: Add default 404 param on gravatar (#1316) 2020-10-05 23:31:23 +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
Arman
3d379b071d
feat: use gravatar if no avatar image (#1307)
Fixes:  #1240
2020-10-04 16:25:22 +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
Sony Mathew
f9b0427751
feat: email channel backend (#140) (#1255)
* feat: added support mailbox to handle email channel (#140)

Added a new mailbox called 'SupportMailbox' to handle all the
incoming emails other than reply emails.

An email channel will have a support email and forward email
associated with it. So we filter for the right email inbox based on
the support email of that inbox and route this to this mailbox.

This mailbox finds the account, inbox, contact (create a new one
if it does not exist) and creates a conversation and adds the
email content as the first message in the conversation.

Other minor things handled in this commit:

* renamed the procs for routing emails in application mailbox
* renamed ConversationMailbox to ReplyMailbox
* Added a fallback content in MailPresenter
* Added a record saving (bang) versions of enabling and disabling
features in Featurable module
* added new factory for the email channel

refs: #140
2020-09-21 22:44:22 +05:30
Pranav Raj S
646746aa10
fix: Check medium to decide 24 hour window (#1245) 2020-09-17 23:32:19 +05:30
Pranav Raj S
5ae3026125
fix: Add available_name method to agent_bot (#1238) 2020-09-16 11:46:07 +05:30
Sojan
739c062676 chore: Enable an echo id for message create end points 2020-09-13 16:16:52 +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
Sojan Jose
85ae6d92b9
feat: Enable Slack Integration in all channels (#1175) 2020-08-29 01:39:41 +05:30
Sojan Jose
2193de9853
chore: General fixes and clean up (#1169) 2020-08-25 23:04:02 +05:30
Pranav Raj S
8cf05f1d9f
feat: Ability to edit a contact (#1092)
Ability to edit contact information in conversation sidebar

Co-authored-by: Sojan <sojan@pepalo.com>
2020-08-23 00:05:07 +05:30
Pranav Raj S
ec6cd4bbba
feat: Use order_by_name as default sort order for inbox/user (#1160) 2020-08-22 22:20:22 +05:30
Sojan Jose
cdd385b269
feat: Custom Attributes for contacts (#1158)
Co-authored-by: Pranav Raj Sreepuram <pranavrajs@gmail.com>
2020-08-21 19:30:27 +05:30
Sojan Jose
4216d63311
feat: Ability to reply to specific tweets (#1117)
Ability to choose a specific tweet to reply to

Fixes #982
Co-authored-by: Pranav Raj S <pranav@thoughtwoot.com>
2020-08-11 09:57:42 +05:30
Sojan Jose
a04ca24def
feat: Customisable Email Templates (#1095) 2020-08-06 15:21:06 +05:30
Pranav Raj S
db877453a4
feat: Disable attachments and emoji picker in the web widget (#1102)
Signed-off-by: Pranav Raj Sreepuram <pranavrajs@gmail.com>
2020-08-05 17:46:17 +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
Divyesh Kothari
89ed0b425b
feat: Ability for the logged in user to create a new account (#985)
Co-authored-by: Divyesh <dkothari@box8.in>
Co-authored-by: Pranav Raj S <pranav@thoughtwoot.com>
2020-07-26 12:54:50 +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
8079bf50a0
Feature: API Channel (#1052) 2020-07-21 12:15:24 +05:30
Sojan Jose
d800b55ac6
Chore: Add display name to the user (#1067)
* Chore: Adding browser info to web widget triggered event

fixes: #970

* Chore: Rename nickname to display name

references: #972

* Chore: Change nickname in code

* chore: fix errors

* Chore: update nginx config

fixes: #1057

* Chore: Fix specs
2020-07-20 18:28:14 +05:30
Sony Mathew
b803ae3300
Bugfix: Private notes in emails & broken Signup (#1068)
* Bugfix: Private notes in emails

Private notes were sent in the emails as part of
conversation continuity. Fixed this issue.

Also made the changes to not even queue the mails
if message is a private note.

* Bugfix: Change issue with featurable in signup - passing array
* Bugfix: Added specs for checking  private notes being sent in email
2020-07-20 12:47:02 +05:30
Sony Mathew
96efc44b82
Chore: Feature lock email settings in UI (#1065)
* Chore: Feature lock email settings in UI

The email settings under account settings needed to be
feature locked in a way different from teh current way for it
to be enabled for accounts in a self hosted scenario.

Some refactorings were also done along with this change.

1. There was a feature flag defined in code in account model called
domain_emails_enabled was used to check if the inbound emails was
enabled for the account. But there was already a feature flag called
"inbound_emails" defined in features.yml. So changed to use this to
check if inbound emails are enabled for an account.
2. Renamed and re-purposed existing `domain_emails_enabled` to
`custom_email_domain_enabled` to use for feature toggling the UI
for email settings.
3. To enable & disable multiple features using the featurable concern
we were passing an array of values. Changed this to accept a comma
separated set of values.

* Chore: Feature lock email settings in UI

Fixed the specs for accounts controller & removed
unneccessary code from Account seetings component in UI

* Chore: Convert newlines to <br>s

Removed the layout used while sending replies in
conversation continuity.

Converted the newlines in the messages to <br/> tags
for the correct HTML rendering.

* Chore: Bug fix in reply email domain

Renamed the function custom_email_domain_enabled  to
inbound_email_enabled.

Fixed bug on setting reply emails's domain.
2020-07-19 23:08:07 +05:30
Sojan Jose
a18d54b706
Chore: Cleanup attachment handling for Facebook & Whatsapp (#1051)
* Chore: Enable file upload for facebook messenger
* Chore: Fix attachments
* Chore: Fix Specs
* Fix ReplyBox file attachment logic
* Set default value for message

Co-authored-by: Pranav Raj Sreepuram <pranavrajs@gmail.com>
2020-07-17 00:32:32 +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
Sojan Jose
e41bd56f41
Chore: Feature Flags for Channels (#1010) 2020-07-06 11:16:19 +05:30
Sojan Jose
43147b3163
Chore: Fix presence for current user (#1001)
Co-authored-by: Pranav Raj Sreepuram <pranavrajs@gmail.com>
2020-07-04 20:03:16 +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
c98907db49
Feature: Availability Statuses (#874)
Co-authored-by: Pranav Raj S <pranav@thoughtwoot.com>
2020-07-04 11:42:47 +05:30
Sojan Jose
cc02611007
Chore: Convert Message Sender to polymorphic (#740)
Fixes #680
2020-06-27 21:34:53 +05:30
Sojan Jose
4f83d5451e
Chore: Routine Bugfixes and enhancements (#979)
- Fix slack scopes
- Docs for authentication
Fixes: #704 , #973
2020-06-25 23:35:16 +05:30
Pranav Raj S
0aab717bb3
Chore: Add default value for label color (#981) 2020-06-25 21:33:56 +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
1ef8d03e18
Feature: Slack - receive messages, create threads, send replies (#974)
Co-authored-by: Pranav Raj S <pranav@thoughtwoot.com>
2020-06-22 13:19:26 +05:30
Sojan Jose
04f6460afb
Chore: Fix failing sidekiq events for contact create (#966) 2020-06-16 19:39:57 +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
Sojan Jose
f9e8bb8e10
Chore: Send browser language in webwidget events (#952)
Co-authored-by: Pranav Raj Sreepuram <pranavrajs@gmail.com>
2020-06-13 00:19:43 +05:30
Subin T P
ed1c871633
Feature: Slack integration (#783)
- Integrations architecture
- Slack integration
2020-06-12 23:12:47 +05:30
Sojan Jose
432dad203b
Feature: Inbox greeting message (#927)
Co-authored-by: Pranav Raj S <pranav@thoughtwoot.com>
2020-06-09 23:54:35 +05:30
Sojan Jose
8b022311c0
Chore: FCM Push Fixes (#934) 2020-06-09 17:42:18 +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