Skip to content

Omnichannel Messaging ​

v0.1.0 Edulab
Module nameomnichannel
Version0.1.0
Needscore only
Entities13 (list)
Rolesomnichannel: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 ​

RoleCan do
omnichannel:adminTurn channels on, set up sending providers and portals, manage templates, campaigns, unsubscribe groups and the suppression list
omnichannel:editorWrite and publish templates, run email campaigns, add suppressions, read message logs
omnichannel:viewerRead 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 ​

  1. Superadmin sets the provider secrets for this university (email.sendgrid_api_key, whatsapp.access_token, sms.api_key…).
  2. In Channels, switch on the channels the university uses and choose each one's default Sending Provider.
  3. Add a Portal for each product that sends messages, with its allowed channels.
  4. Set Default sender email address and Default reply-to email address in Settings.
  5. Keep Test mode on with your own address in Test mode recipients until templates are checked, then switch it off.

Settings ​

SettingDefaultMeaning
Test mode: send only to the test recipients belowYesEvery 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 defaultYesNew campaigns track opens
Track link clicks by defaultYesNew campaigns track clicks
Add an unsubscribe footer to campaign emailsYesFooter with a one-click unsubscribe link
Campaign emails sent per batch100Batch size for campaign sending
Keep retrying a deferred send for (hours)24After this a deferred message is marked failed

Events ​

EmitsWhen
omnichannel.message.deliveredThe provider confirms delivery of a message
omnichannel.message.failedA message bounces or fails for good
omnichannel.campaign.completedA campaign has sent to its whole audience
omnichannel.suppression.createdAn address unsubscribes, bounces or reports spam
Listens toDoes
(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.

Edulab Bench developer documentation