workflows

$npx mdskill add BuilderIO/agent-native/workflows

Automate booking lifecycle tasks with trigger-based workflows.

  • Executes reminders, follow-ups, and webhooks across the booking lifecycle.
  • Integrates with email, SMS, and HTTP POST services for notifications.
  • Selects actions based on booking events like creation, cancellation, or rescheduling.
  • Delivers results via personalized emails, SMS messages, or external webhooks.
SKILL.md
.github/skills/workflowsView on GitHub ↗
---
name: workflows
description: Trigger-based automations — reminders, follow-ups, webhooks — across the booking lifecycle.
---

# Workflows

## Triggers

- `new-booking` — fires when a booking is created
- `before-event` — offset minutes BEFORE `startTime`
- `after-event` — offset minutes AFTER `endTime`
- `reschedule` — booking rescheduled
- `cancellation` — booking cancelled
- `no-show` — a host marked an attendee as no-show

## Steps

| Action | Sends |
|---|---|
| `email-host` | Email to the organizer |
| `email-attendee` | Email to the attendee |
| `email-address` | Email to a fixed address (e.g. ops@example.com) |
| `sms-attendee` | SMS to the attendee's phone (requires attendee `phone` custom field) |
| `sms-host` | SMS to the host |
| `sms-number` | SMS to a fixed number |
| `webhook` | HTTP POST to a URL |

Step `offsetMinutes` is relative to the trigger time. For `before-event`
use positive values (we apply them with a minus sign internally).

## Template variables

In email subjects / bodies and SMS bodies:
- `{eventName}` — event type title
- `{attendeeName}`, `{attendeeEmail}` — first attendee
- `{hostName}`, `{hostEmail}` — organizer
- `{startTime}`, `{endTime}` — formatted in host's timezone
- `{location}` — meeting URL or address
- `{cancelUrl}`, `{rescheduleUrl}` — public magic links

## Firing

When a booking fires a trigger, the hook dispatcher materializes rows in
`scheduled_reminders`. A recurring job processes due rows and fires the
actual emails/SMS/webhooks. Framework-side recurring jobs handle the
polling.

## Common tasks

| User | Action |
|---|---|
| "Email attendees 24h before the meeting" | `create-workflow --trigger before-event --steps '[{action: email-attendee, offsetMinutes: 1440}]'` |
| "Text me when someone books" | `create-workflow --trigger new-booking --steps '[{action: sms-host, ...}]'` |
| "Stop all reminders on an event type" | `toggle-workflow` to disable |
More from BuilderIO/agent-native