Commit graph

113 commits

Author SHA1 Message Date
Sojan Jose
2ebd38c3b7
Chore: API Improvements ()
- API to fetch info of a single inbox
- Document passing custom_attributes in the API
- Ability to filter contacts with contact identifier in search API
2021-09-04 17:56:46 +05:30
Pranav Raj S
7664006625
chore: Improve search, list performance of contact/conversation APIs () 2021-07-23 18:39:24 +05:30
Pranav Raj S
6e1493501a
feat: Add APIs for custom attribute definitions () 2021-07-23 17:04:33 +05:30
Sojan Jose
217dd8a6f0
chore: Add assigned_count to conversation APIs () 2021-07-19 19:10:58 +05:30
Pranav Raj S
cb44eb2964
feat: Add CSAT reports () 2021-07-14 10:20:06 +05:30
Sojan Jose
dd9d5e410c
feat: Add CSAT response APIs ()
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 () 2021-06-29 19:29:57 +05:30
Sojan Jose
22965be6dc
feat: Add AgentBot APIs () 2021-06-01 22:34:25 +05:30
Sojan Jose
d5215fea93
feat: APIs for Integration Hooks ()
- Introduces JSON Schema validations via JSONSchemer
- Add CRUD APIs for integration hooks
2021-05-17 10:32:59 +05:30
Sojan Jose
b89cc9cf57
feat: Add APIs for Campaigns () 2021-04-29 22:23:32 +05:30
Sojan Jose
4635e5bb44
feat: Assignable agents API ()
`inboxes/id/assignable_agents` returns all users that have permission to a conversation happening in that inbox.
2021-04-20 13:46:20 +05:30
Sojan Jose
45e43b0b89
feat: Contactable Inboxes API ()
- 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  ( issue saving additional attributes for conversation )
2021-04-15 15:13:01 +05:30
Sivin Varghese
36f086c5cb
feat: Redesigned search UI () 2021-03-15 18:38:05 +05:30
Sojan Jose
1612f515b0
chore: Fix issues with notification actors () 2021-02-19 18:35:21 +05:30
Sojan Jose
f9c3b7f2f1
feat: Bulk add team members in Team APIs () 2021-01-29 12:34:52 +05:30
Pranav Raj S
b93388b330
feat: Tag agents in a private note ()
Co-authored-by: Sojan <sojan@pepalo.com>
2021-01-27 00:04:11 +05:30
Pranav Raj S
ba06fe1cb2
feat: Update notification in account settings () 2021-01-17 23:59:09 +05:30
Sojan Jose
a0c33254e7
feat: Team APIs ()
Co-authored-by: Pranav Raj S <pranav@chatwoot.com>
2021-01-17 23:56:56 +05:30
Muhsin Keloth
2d5aa9d3bd
chore: Add count and current page in notification meta details () 2021-01-13 17:04:27 +05:30
Pranav Raj S
a2d6fa0f74
feat: API to add label to contacts () 2021-01-03 20:07:57 +05:30
Pranav Raj S
811657c9e7
feat: API to allow agents to delete a message () 2020-12-28 23:36:50 +05:30
Nithin David Thomas
7c62d3629c
feat: Add pending message on dashboard () 2020-12-25 13:15:01 +05:30
Nithin David Thomas
f214c9c47c
feat: Add Contacts page ()
Co-authored-by: Sojan <sojan@pepalo.com>
Co-authored-by: Pranav Raj Sreepuram <pranavrajs@gmail.com>
2020-11-10 15:25:26 +05:30
Pranav Raj S
7718cf7d2c
feat: Add global message search ()
* feat: Search messages by content

* Fix search UI

* Add specs

* chore: Filter search results

* Update highlight logic

* Rename query to searchTerm

Co-authored-by: Sojan <sojan@pepalo.com>
2020-11-08 01:46:45 +05:30
Akash Srivastava
074084b258
feat: Auto resolve conversations after n days of inactivity ()
fixes: 
2020-11-01 12:53:25 +05:30
Sojan Jose
88b2469dc8
feat: Add API to get the active contacts () 2020-10-05 23:30:27 +05:30
Pranav Raj S
399f9e004a
fix: Use last_activity_at instead of updated_at for sorting ()
Co-authored-by: Akash Srivastava <akash.srivastava.1911@gmail.com>
2020-10-05 22:52:43 +05:30
Sojan Jose
b862817b29
feat: Enable reauthorization for Facebook () 2020-09-30 01:12:32 +05:30
Subin T P
701eccb35c
Feature: Knowledge Base APIs ()
- Introduce models & migrations for portals, categories, folders and articles
- CRUD API for portals
- CRUD API for categories

Addresses: 

Co-authored-by: Sojan <sojan@pepalo.com>
2020-09-26 02:32:34 +05:30
Sojan Jose
532331edb6
feat: Ability to search conversation with message content ()
- API end point which takes message content as search parameter
- end point supports additional filtering with labels and inbox ids
- swagger doc
2020-09-23 15:27:41 +05:30
Sojan Jose
507b40a51d
chore: Control rendering contact inbox () 2020-08-19 23:25:55 +05:30
Sojan Jose
a6a62d92bf
chore: Add Additional Contact APIs ()
Co-authored-by: Pranav Raj Sreepuram <pranavrajs@gmail.com>
2020-08-10 12:15:29 +05:30
Pranav Raj S
3b23aa7913
Bugfix: Use server timestamp to set agent_last_seen_at () 2020-08-03 13:40:20 +05:30
Pranav Raj S
5e5f34bedc
chore: Add an indicator for incoming emails () 2020-08-01 20:56:47 +05:30
Pranav Raj S
2b1d445003
feat: Use display_name instead of name of the agent ()
* 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 ()
Co-authored-by: Divyesh <dkothari@box8.in>
Co-authored-by: Pranav Raj S <pranav@thoughtwoot.com>
2020-07-26 12:54:50 +05:30
Sojan Jose
8079bf50a0
Feature: API Channel () 2020-07-21 12:15:24 +05:30
Sony Mathew
96efc44b82
Chore: Feature lock email settings in UI ()
* 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
e41bd56f41
Chore: Feature Flags for Channels () 2020-07-06 11:16:19 +05:30
Sojan Jose
c98907db49
Feature: Availability Statuses ()
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 ()
Fixes 
2020-06-27 21:34:53 +05:30
Sojan Jose
1ef8d03e18
Feature: Slack - receive messages, create threads, send replies ()
Co-authored-by: Pranav Raj S <pranav@thoughtwoot.com>
2020-06-22 13:19:26 +05:30
Sojan Jose
b0bbd757b5
Chore: FCM Notification Improvements ()
Co-authored-by: Pranav Raj Sreepuram <pranavrajs@gmail.com>
2020-06-15 13:36:56 +05:30
Subin T P
ed1c871633
Feature: Slack integration ()
- Integrations architecture
- Slack integration
2020-06-12 23:12:47 +05:30
Sojan Jose
432dad203b
Feature: Inbox greeting message ()
Co-authored-by: Pranav Raj S <pranav@thoughtwoot.com>
2020-06-09 23:54:35 +05:30
Sojan Jose
8b022311c0
Chore: FCM Push Fixes () 2020-06-09 17:42:18 +05:30
Pranav Raj S
40481f6462
Bugfix: Update conversation counters in realtime ()
* Bug: Update conversation counters in realtime
2020-06-09 16:26:33 +05:30
Sojan Jose
3d84568a37
Feature: Label APIs () 2020-06-07 11:17:13 +05:30
Sojan Jose
8c52a3a953
Chore: Remove duplication of user JBuilder ()
* Chore: Reduce duplication of user JBuilder
2020-05-31 23:10:20 +05:30
Pranav Raj S
e9131ea558
Feature: Add web push notification permission in frontend ()
Add webpush notification permission in frontend

Co-authored-by: Sojan <sojan@pepalo.com>
2020-05-06 00:10:56 +05:30
Sony Mathew
fabc3170b7
Feature: Feature flags on account () ()
* Feature: Feature flags on account ()
* Added the new column on account model for managing feature flags
* Added the inbound email flag
* Locked the settings of this eature in account settings based on this
* Encapsulated the feature flaging as a concern. With this, we can re-use the same concern if we introduce this in other models like user or inbox or so.
* Added the features in the account api

* Changed Rails/FilePath style - rubocop issue

* Revert "Changed Rails/FilePath style - rubocop issue"

This reverts commit 3a42d3b9c9b3a2fde8bc7256fd704b6fcaf54040.

* Disabling rubocop on codeclimate as we already have this in CICD
2020-05-04 23:06:42 +05:30
Sojan Jose
db6e3fb43e
Chore: API to get conversations count ()
Addresses: 
2020-05-03 12:15:10 +05:30
Sojan Jose
d4ff9f5b45
Chore: Add additional information to conversation meta ()
Chore: Add additional information to conversation meta
2020-05-01 16:49:28 +05:30
Sony Mathew
0b65526b85
Feature: Conversation Continuity with Email ()
* Added POC for mail inbox reply email
* created mailbox and migratuion for the same
* cleaned up sidekiq queues and added the queues for action mailbox and active storage
* created conversation mailbox and functionlaity to create a message on the conversation when it's replied

* Added UUID to conversation to be used in email replies

* added migration to add uuid for conversation
* changed parsing and resource fetching to reflect matching uuid and
  loading conversation alone
* cleaned up conversation mailbox.rb

* Added content type & attribute for message

* Added the new reply email to outgoing emails
* Added migration to accounts for adding domain and settings
* Modified seeds to reflect this changes
* Added the flag based column on account for boolean settings
* Added the new reply to email in outgoing conversation emails based on conditions

* Added dynamic email routing in application mailbox
* Added dynamic email routing in application mailbox
* Added a catch all deafult empty mailbox
* Added annotation for account

* Added the complete email details & attachments to the message
* Added the complete email details to the message in content_attributes, like subject, to, cc, bcc etc
* Modified the mail extractor to give a serilaized version of email
* Handled storing attachments of email on the message

* Added incoming email settings, env variables

* [] Added documentation regarding different email settings and variables

* Fixed the mail attachments blob issue ()
* Decoided attachments were strings and had to construct blobs out fo them to work with active storage
* Fixed the content encoding issue with mail body
* Fixed issue with Proc used in apllication mailbox routing
* Fixed couple of typos and silly mistakes

* Set appropriate from email for conversation reply mails ()
* From email was taken from a env variable, changed it to take from account settings if enabled
* Set the reply to email correctly based on conversation UUID
* Added commented config ind development.rb for mailbox ingress

* Added account settings for domain and support email ()
* Added the new attributes in accounts controller params whitelisting, api responses
* Added options for the the new fields in account settings

* Fixed typos in email continuity docs and warnings

* Added specs for conversation reply mailer changes ()
* Added specs for
  * conversation reply mailer
  * Accounts controller
  * Account and Conversation models

* Added tests for email presenter ()

* Specs for inbound email routing and mailboxes ()
2020-04-30 20:20:26 +05:30
Pranav Raj S
06153a96ed
Chore: Update swagger API documentation ()
* Chore: Update swagger documentation
2020-04-20 11:55:06 +05:30
Sojan Jose
941fbb0d72
Chore: Web widget Inbox Tech Debts ()
* Chore: Webwidget Inbox Tech Debts

* Additional customization options creating Web Widget
* Changes to edit Page for Web Widget
* Remove the WebWidget API end points
* Minor chores

Address: , 

Co-authored-by: Pranav Raj Sreepuram <pranavrajs@gmail.com>
2020-04-19 23:40:28 +05:30
Sony Mathew
818c769bb7
Chore: Message to support multiple attachments ()
* Changes for the message to have multiple attachments
* changed the message association to attachments from has_one to has_many
* changed all the references of this association in building and fetching to reflect this change

* Added number of attachments validation to the message model

* Modified the backend responses and endpoints to reflect multiple attachment support ()

* Changing the frontend components for multiple attachments
* changed the request structure to reflect the multiple attachment structures
* changed the message bubbles to support multiple attachments
* bugfix: agent side attachment was not showing because of a missing await
* broken message was shown because of the store filtering
* Added documentation for ImageMagick

* spec fixes

* refactored code to reflect more apt namings

* Added updated message listener for the dashboard ()
* Added the publishing for message updated event
* Implemented the listener for dashboard

Co-authored-by: Pranav Raj Sreepuram <pranavrajs@gmail.com>
2020-04-17 21:15:20 +05:30
Sojan Jose
b0950d6880
Feature: Rich Message Types ()
Co-authored-by: Pranav Raj S <pranavrajs@gmail.com>
Co-authored-by: Nithin David Thomas <webofnithin@gmail.com>
2020-04-10 16:42:37 +05:30
Pranav Raj S
a1a81e3799
Feature: Twilio SMS Channel ()
Twilio SMS Channel
Fixes :  
2020-04-05 22:11:27 +05:30
Sojan Jose
bab9d663d2
Feature: API for updating account settings ()
* Feature: API for updating account settings

- API to update account locale
- API to update account name
- API to show account info
2020-03-29 12:16:31 +05:30
Pranav Raj S
4d0f46176b
Chore: Add web_widget_script in the Inboxes API ()
* Chore: Add web_widget_script in the Inboxes API
2020-03-16 12:32:34 +05:30
Sojan Jose
a5b1e2b650
Feature: Access tokens for API access ()
Co-authored-by: Pranav Raj Sreepuram <pranavrajs@gmail.com>
2020-03-11 00:02:15 +05:30
Sojan Jose
19ab0fe108
Chore: Scope URLs with account_id ()
* Chore: Enable Users to create multiple accounts

Addresses: 
- migrations to split roles and other attributes from users table
- make changes in code to accommodate this change

Co-authored-by: Pranav Raj Sreepuram <pranavrajs@gmail.com>
2020-03-09 23:27:10 +05:30