WorkestraDocs
PlatformCalendar & Scheduling

SMS Notifications

Send booking reminders, reconfirmation prompts, and follow-ups by text — Twilio-backed, with STOP/START/HELP keyword handling and a per-workspace credit ledger.

Workestra sends SMS reminders, reconfirmations, and follow-ups through Twilio. They're fired from the same Workflows engine as email — the channel is just SMS instead of email.

This page covers the consent model, opt-out keywords, credit limits, and the practical bits you need to set up before SMS reminders start landing.

SMS step in the workflow builder

Screenshot needed — workflow step editor with channel set to SMS

How it works end-to-end

  1. Attendee provides a phone number at booking time — either through a phone pre-meeting form field, or an explicit phone field on the booking page.
  2. Workestra checks consent — if the attendee hasn't opted in for this workspace, no SMS is sent and the step is logged as skipped: opt_in_missing.
  3. First message includes the legal disclaimer — "Reply STOP to opt out. Msg & data rates may apply." Auto-appended.
  4. At send time, the workflow engine pulls the row from scheduling_pending_reminders, renders the body with {{variable}} substitution, chunks it to 158 chars (leaving 2 chars for a continuation marker), and posts to Twilio's Programmable SMS API.
  5. Inbound replies hit /api/sms/inbound — STOP, START, and HELP are intercepted before reaching the workspace; everything else is logged for the host to read.

A row is written to messaging_consent (phone_number, workspace_id, consented) the first time a phone number is captured at booking. Workspaces can configure consent capture two ways:

Consent modeWhat the attendee sees
Implicit"By providing a phone number, you agree to receive booking-related SMS." Booking proceeds normally.
Explicit checkboxA required pre-meeting form checkbox that says the same. Booking is rejected if unchecked.

Switch between them at /calendar/workflowsSMS settings. Most workspaces use implicit; explicit is safer in regulated industries.

A person can be opted in for one workspace and out for another — messaging_consent is workspace-scoped.

STOP, START, HELP

Twilio handles these keywords at the carrier level for free; Workestra mirrors the state into messaging_consent so subsequent steps know to skip.

KeywordEffectReply
STOP (or STOPALL, UNSUBSCRIBE, CANCEL, END, QUIT)messaging_consent.consented = false for that phone + workspace; no further messages until they opt back in"You've been unsubscribed from <workspace> reminders. Reply START to resubscribe."
START (or YES, UNSTOP)messaging_consent.consented = true; future steps resume"You're subscribed to <workspace> reminders. Reply STOP to opt out."
HELP (or INFO)No state change; explains what the workspace is"<workspace> booking reminders. Reply STOP to opt out, START to resume. Questions? Email <host>."

Anything else replied is logged on the booking row's notes timeline — useful for "I'm running 5 min late" replies you want the host to see.

Credit ledger

Every workspace gets 50 SMS sends per month free. Beyond that, Twilio's per-message cost is passed through (typically $0.0075 / segment in the US, more for international). The credit ledger lives at /calendar/workflowsSMS usage.

FieldWhat it shows
This monthSends consumed since the 1st of the month
Free tier remaining50 minus this month's count
Pay-as-you-go segmentsSegments billed beyond the free tier
Estimated chargeRolling estimate based on Twilio's price list

Charges land on your monthly Workestra invoice. Workspaces with no SMS usage see no line item.

Message length

SMS is 160 chars per segment. Workestra reserves 2 chars for a continuation marker (▸2/3) and chunks at 158. A 470-char message goes out as 3 segments, billed as 3.

Variables expand at chunk time, so if {{invitee_name}} is unusually long, the resulting chunks differ. Keep templates short. The workflow editor shows a live char + segment count as you type.

International support

Workestra sends to any country Twilio supports — currently 180+. A few caveats:

  • France, Germany, Switzerland: alphanumeric sender ID is required for non-promotional SMS. Workestra defaults to your workspace name (truncated to 11 chars) — configurable in SMS settings.
  • India: the DLT registration is your responsibility — Workestra cannot register your sender on TRAI's behalf. Without it, deliverability is unpredictable.
  • China: blocked by Twilio. Use email-only workflows for Chinese phone numbers.

What's NOT supported

  • Two-way conversation threads. Replies are logged on the booking row, but there's no inbox view yet.
  • MMS. Image attachments are a future feature.
  • Verified short codes. Workestra uses long codes by default. If your volume requires a short code, contact support.
  • Caller ID lookup. The phone number you collect is the only identity used.

Restricting SMS for compliance

Workspace admins can disable SMS entirely from /settings/securityCommunication restrictionsDisable SMS sends. While disabled, all workflow SMS steps are skipped silently and logged to the audit log. Useful for industries (healthcare, EU public sector) where text messages need separate compliance review.

Twilio account requirement

Workestra ships with a workspace-level Twilio account by default — included in the free tier. To send from your own Twilio account (for branded sender IDs, custom regions, or VAR billing), set TWILIO_ACCOUNT_SID and TWILIO_AUTH_TOKEN in workspace integrations. The credit ledger then bills against your Twilio account directly and the per-segment cost is on your Twilio invoice, not Workestra's.