Communications
Workspace templates and event policy for customer messages. Transport (SMTP, Twilio, WhatsApp) is configured separately. Enabling a type is not the same as “the queue worker is running,” and queued is not delivered/read.
Settings → Communications · /app/w/{workspace}/settings/communications · capability customer_communications · communications.view / communications.settings.manage
SMS and WhatsApp are separate plan features (customer_sms / customer_whatsapp).
Transport vs policy
Section titled “Transport vs policy”| Channel | Platform transport | Workspace | Provider |
|---|---|---|---|
| Platform Admin → Settings → Mail / SMTP | Communications → Email | Your SMTP | |
| SMS | Platform Communications SMS and/or tenant Twilio BYOC | Communications → SMS | Twilio |
| Admin WhatsApp is not a funded customer channel | Communications → WhatsApp | Tenant BYOC only | |
| Field Push | Platform → Field Push (Firebase) | Not a customer template | Native Field |
SMTP configured ≠ every event enabled. Email working does not turn SMS on. Inbound provider callbacks are /webhooks/fsm-communications/…, not Settings → Webhooks.
Staff alerts (estimate accepted, online invoice paid, portal submissions) are the office bell + Profile → Notifications. Those mails use the staff user’s language.
Enable a type
Section titled “Enable a type”- Settings → Communications → Email / SMS / WhatsApp.
- Turn on the event (default off for types such as Appointment confirmed). Enabling never backfills old appointments.
- Edit subject/body. Variables use
{{name}}only (snake_case). Nested{{a.b}}is rejected. - Confirm Platform Mail (or SMS/WhatsApp provider), plus a queue worker, plus cron
communications:dispatch-dueevery minute.
History: sidebar Communication history — statuses queued, sent_to_provider, failed, suppressed. No “read” or WhatsApp blue ticks claimed in V1.
Event catalog
Section titled “Event catalog”| EN type | When | Notes |
|---|---|---|
| Request received | Service request created | — |
| Appointment confirmed | Visit first scheduled | Also public booking |
| Appointment rescheduled | Visit rescheduled | — |
| Appointment reminder | Reminder schedule | Needs dispatch-due cron |
| Technician on the way | Travel started | — |
| Appointment completed | Appointment Closeout | Not office WO Complete |
| Estimate sent / Invoice sent | Manual send button | No auto-send on create |
| Payment confirmed | Payment recorded | — |
| Service report available | Generated report | Email-oriented |
There is no dedicated “public booking” mailer. If Appointment confirmed is off, the guest still sees the booking success page — they simply get no email.
Recipients resolve: appointment contacts → site primary → customer primary → customer email fallback. Missing email/phone → intent suppressed/failed rather than inventing a recipient.
What-if
Section titled “What-if”If the action succeeded with no mail: type is off, or queue/SMTP down.
If SMS is unavailable: plan customer_sms / provider missing. Email working does not enable SMS.
Related: Mail, Queue, Public booking.