Workflows & Reminders
Automate what happens around bookings — confirmation emails, day-before SMS reminders, follow-up nudges, webhook deliveries to your CRM.
Quick Start
- Open an event type and click the Workflows tab.
- Click + New workflow.
- Pick a trigger (e.g. Booking created).
- Add an action (e.g. Send email to the attendee).
- Save.
- Publish changes in the toolbar.
Trigger Events
A workflow runs in response to one of these booking events:
| Trigger | Fires when |
|---|---|
| Booking created | A new booking is confirmed. |
| Booking rescheduled | The booker or host moves it to a different time. |
| Booking cancelled | Either side cancels (or it's marked no-show). |
| Reminder | A configurable lead time before the meeting. Defaults are 24h and 1h before; both can be customised per workflow. |
| Booking completed | The meeting end-time has passed. Useful for "thanks" follow-ups. |
| Booking no-show | A host marks the booking as no-show after the meeting. |
Actions
| Action | What it does |
|---|---|
| Send email | Templated email to attendee, host, or a fixed address. Supports merge tags. |
| Send SMS | Templated SMS via Twilio. Requires a phone number on the booking. |
| Webhook | POSTs the full booking JSON to a URL of your choice. Retries on 5xx with backoff. |
| Add tag | Adds a tag to the booking and (if database-backed) the row. |
| Create task | Spawns a follow-up task assigned to the host. (Pro+) |
| Create database row | Writes to a database other than the booking's backing one (e.g. log to an audit DB). (Pro+) |
Email Template Merge Tags
Inside an email body, use these placeholders:
| Tag | Resolves to |
|---|---|
{{attendee.name}} | Booker's name |
{{attendee.email}} | Booker's email |
{{attendee.timezone}} | Booker's IANA timezone |
{{host.name}} | Host's display name |
{{event.title}} | Event-type title |
{{slot.start}} | Meeting start (in attendee's timezone, friendly format) |
{{slot.end}} | Meeting end |
{{slot.duration}} | "30 minutes" / "1 hour" |
{{cancel.url}} | Tokenised cancel link |
{{reschedule.url}} | Tokenised reschedule link |
{{answers.fieldId}} | Custom-question answer by field id (e.g. {{answers.q-budget}}) |
Always include cancel and reschedule URLs
The default templates do this automatically. If you build your own, include them — bookers expect to be able to change without emailing you.
Reminders
The most common workflow. Out of the box, every event type has two default reminders:
- 24 hours before the meeting → email to attendee.
- 1 hour before → email to attendee.
Both are workflows you can edit, disable, or replace. To switch one to SMS:
- Workflows tab → click the 24h reminder.
- Change the action from Send email to Send SMS.
- Save.
The lead time is configurable to any value (15 minutes minimum).
SMS via Twilio
SMS actions need a Twilio account configured at the team level (Settings → Integrations → Twilio). Add the Account SID, Auth Token, and a from-number. Once configured, every event type can send SMS without re-entering credentials.
Per-message cost is charged by Twilio. Ascend doesn't mark up SMS — see Twilio pricing for your country.
Webhook Action
POSTs a JSON payload to your URL on every matching event. Payload shape:
{
"event": "booking.created",
"booking": {
"id": 123,
"status": "confirmed",
"startTime": "2026-05-08T14:30:00Z",
"endTime": "2026-05-08T15:00:00Z",
"attendee": { "name": "...", "email": "...", "timezone": "..." },
"host": { "id": 7, "name": "..." },
"eventType": { "id": 1, "title": "...", "slug": "..." },
"answers": { "q-budget": "$10k", "q-team-size": "12" }
},
"deliveredAt": "2026-05-05T11:42:00Z"
}Retries on 5xx and network errors with exponential backoff (1s → 2s → 4s → … up to ~5 minutes), maximum 8 attempts. Persistent failures are surfaced in the workflow's run log.
To verify a webhook came from Ascend, check the X-Ascend-Signature header — HMAC-SHA256 of the raw body using your webhook signing secret.
Workflow Run Log
Every workflow execution is logged with:
- Trigger event + timestamp
- Action attempted + outcome (success, retrying, failed)
- For webhooks: response status code + first 4KB of response body
- For emails / SMS: provider message id
Inspect from the Workflows tab → click a workflow → Run log sub-tab.
Plan Limits
| Plan | Workflows per event type | Total monthly runs |
|---|---|---|
| Free / Solo | 0 (default reminders only) | n/a |
| Pro | 10 | 5,000 |
| Studio | unlimited | 25,000 |
When you hit the cap, the + New workflow button disables and a banner shows the upgrade link.
Related
- Custom Questions — Available as {{answers.fieldId}} merge tags
- Calendar Integrations — The calendar invite is its own automated message, separate from workflows
- Payments — Refund-on-cancel is a built-in workflow, not user-configurable