Details
Description
We should add a modular messaging system to Blesta to integrate with various services for:
- SMS
- Voice
- Chat API
- Apps?
An initial release could have support for SMS only to start to go to market quicker, then add Voice, Chat, Apps later.
A few examples of this are: Twilio, Clickatell, Nexmo, Slack, Discord, keybase
These messaging apps would be configurable in the core, modular so you can drop them in, and they would register an "action" with the system for the type of messaging they provide (sms/voice/chat/etc). Then, the core and plugins can send notifications that go through this system.
Some examples of this in use would be:
- Support Manager: Text clients and staff regarding new/updated tickets. Slack integration - send tickets into a Slack channel.
- Order System: Text staff regarding new orders. Text clients a validation code in order to check out as part of anti-fraud. Make a voice call to the customer and provide a code they enter during checkout as part of anti-fraud.
Many use cases! More details and sub tasks required.
UI Settings
- Add a new section under Settings > Company, called "Messaging"
- Have a heading for each section (SMS, Voice, Chat, Apps)
- If there are none of the type, show a message that there are none.
- If there are some options, show the options in a drop down with the first option being – Disabled –
- Selecting an option will show the settings for the option, for example: Username, Password, API Key, etc. Will be based on the API requirements
- You can save/update credentials. Switching to another item in the dropdown will let you configure it's details, can save details for multiple but only one will be active at a time for each type (SMS, Voice, Chat, Apps)
Integrations
- The core under "My Info" > Account should request a "Mobile Phone" with a Tooltip "This number will be used for SMS notifications if enabled, be sure to enter the number as required"
- Order Manager Plugin SMS integration only to start, clicking the Cog/Gear icon in the Orders widget under Billing > Overview as staff should have an additional option for SMS "Do not Send", "Only send if manual approval required" and "Always send". Send mobile ticket email text content when sending SMS.
- Support Manager Plugin SMS integration only to start, clicking Support > Staff, edit the staff member and under Settings ad a section for "Receive SMS" with checkboxes for each priority. Send mobile ticket email text content when sending SMS.
For two-way SMS a good use case is order approval. If I get a text that an order came in and is pending review, I could potentially reply to the text to approve the order. The text would be sent to Blesta via an API call from the SMS service, where Blesta could take action.