Appearance
Omnichannel Messaging
v0.1.0 Edulab| Module name | omnichannel |
| Version | 0.1.0 |
| Needs | core only |
| Entities | 13 (list) |
| Roles | omnichannel:admin, omnichannel:editor, omnichannel:viewer |
Email, WhatsApp and SMS sending for the university: templates, bulk email campaigns, delivery tracking and an unsubscribe list, in one place for every module.
Who uses it
| Role | Can do |
|---|---|
omnichannel:admin | Turn channels on, set up sending providers and portals, manage templates, campaigns, unsubscribe groups and the suppression list |
omnichannel:editor | Write and publish templates, run email campaigns, add suppressions, read message logs |
omnichannel:viewer | Read templates, message logs, delivery events, campaign results and daily usage |
What it does
- Channels and providers: switch Email, WhatsApp, SMS, Slack and Voice on or off; pick the sending provider and sender identity (from-domain, WhatsApp number, SMS sender id) for each.
- Portals: separate the traffic of each calling product (Admission, Exam, Fees…) with its own allowed channels, WhatsApp number and delivery-receipt webhooks.
- Templates: versioned email/WhatsApp/SMS templates with variables, logo and auto-attached files; full version history; WhatsApp approval status from the provider.
- Message log: every message sent or received, with status from queued to delivered, read, opened, clicked, bounced or failed.
- Email campaigns: upload an audience file, pick a template, schedule, send in batches, pause or cancel, track opens and clicks.
- Unsubscribes and suppressions: one-click unsubscribe, bounces and spam reports are never mailed again; resubscribe with a record of who did it.
- Daily usage: messages per channel per day for reports.
Needs
- Core: 1.x
- Modules: none. Other modules send through it with
ctx.notify().
Setup after install
- Superadmin sets the provider secrets for this university (
email.sendgrid_api_key,whatsapp.access_token,sms.api_key…). - In Channels, switch on the channels the university uses and choose each one's default Sending Provider.
- Add a Portal for each product that sends messages, with its allowed channels.
- Set Default sender email address and Default reply-to email address in Settings.
- Keep Test mode on with your own address in Test mode recipients until templates are checked, then switch it off.
Settings
| Setting | Default | Meaning |
|---|---|---|
| Test mode: send only to the test recipients below | Yes | Every message goes to the test recipients instead of the real ones |
| Test mode recipients | (empty) | Comma-separated emails or numbers that receive messages in test mode |
| Default sender email address | (empty) | From address when a send names none |
| Default reply-to email address | (empty) | Reply-to when a send names none |
| Track email opens by default | Yes | New campaigns track opens |
| Track link clicks by default | Yes | New campaigns track clicks |
| Add an unsubscribe footer to campaign emails | Yes | Footer with a one-click unsubscribe link |
| Campaign emails sent per batch | 100 | Batch size for campaign sending |
| Keep retrying a deferred send for (hours) | 24 | After this a deferred message is marked failed |
Events
| Emits | When |
|---|---|
omnichannel.message.delivered | The provider confirms delivery of a message |
omnichannel.message.failed | A message bounces or fails for good |
omnichannel.campaign.completed | A campaign has sent to its whole audience |
omnichannel.suppression.created | An address unsubscribes, bounces or reports spam |
| Listens to | Does |
|---|---|
| (none) | Other modules call ctx.notify(); nothing is listened to |
Personal data
Fields marked pii: recipient, cc, bcc, body and variables (message); recipient and IP (delivery event); address (suppression).
Support
Publisher: Edulab. Report problems through the Edulab support desk or an issue in this repo.