ResytechResytech Docs
Marketing & Automation

Workflow Automation

Trigger automated actions based on booking events.

Workflows let you automate actions that happen in response to booking events — no manual intervention needed.

How Workflows Work

A workflow consists of:

  1. Trigger — the event that starts the workflow (e.g., "Booking Created")
  2. Actions — what happens when the trigger fires (e.g., "Send confirmation email")

Workflows are stored as a visual graph of connected nodes. Each workflow belongs to a specific location and can be enabled or disabled at any time.

Workflow Settings

SettingDescription
NameA descriptive name for the workflow
DescriptionOptional notes about the workflow's purpose
EnabledToggle the workflow on or off without deleting it
GraphThe node-based workflow definition (managed through the visual editor)

Available Triggers

Booking Events

TriggerEvent Data
Booking CreatedBooking ID, customer, activity, total amount, start/end time, status
Booking Status ChangedBooking ID, old status, new status, changed by, reason
Booking CancelledBooking ID, customer, cancelled by, reason, cancellation timestamp
Booking RescheduledBooking ID, customer, old start/end time, new start/end time, rescheduled by
Reminder SentBooking ID, customer, reminder rule ID, sent timestamp
Survey SentBooking ID, customer, survey ID, sent timestamp
Survey SubmittedBooking ID, customer, survey ID, submission ID, overall rating, submitted timestamp
Tag AddedBooking ID, location, tag name, added by
Tag RemovedBooking ID, location, tag name, removed by
Guest AddedBooking ID, customer, guest name, guest email, guest count. Fires for each guest that is newly added or has their name/email updated. Does not fire during initial booking creation.

Other Events

TriggerEvent Data
Customer Message ReceivedBooking ID, thread ID, customer name, message preview, confirmation code. Only fires for messages sent by the customer (not operator replies).

Tag events are only published when tags are changed from the dashboard. Tags added or removed by workflow actions do not fire tag events, preventing infinite loops.

Available Actions

Send Template (send_template)

Send an email or SMS using a pre-built communication template. The action automatically loads booking, customer, activity, and location data to fill in template variables.

Configuration:

OptionDescription
TemplateSelect from your active templates
Recipient Typecustomer, facilitator, admin, or custom
Custom RecipientAn email address or phone number (supports template variables)

When using an SMS template, messages are only sent if the customer opted in to receive text messages during checkout.

Send Email (send_email)

Send a custom email directly without using a pre-built template.

Configuration:

OptionDescription
Recipient Typecustomer, facilitator, admin, or custom
Custom EmailAn email address (when recipient type is custom)
SubjectEmail subject line
Email TemplateEmail body content

Send SMS (send_sms)

Send a custom SMS message.

Configuration:

OptionDescription
Recipient Typecustomer or facilitator
MessageSMS message content (max 160 characters)

SMS messages are only sent if the customer opted in to receive text messages during checkout.

Send Waiver Sign Request (send_waiver_invitation)

Send a waiver signing request email to the customer, guests, or a custom email address. The email includes a branded "Sign Waiver" button linking directly to the signing page. When triggered from a booking workflow, the signing link automatically includes the booking reference so the signed waiver is linked to the booking.

Configuration:

OptionDescription
WaiverSelect which waiver to send
Send ToCustomer, Guests Only, Customer & Guests, or Custom Email
Custom EmailAn email address (when send to is Custom Email)

The "Customer & Guests" option deduplicates recipients, so if a guest's email matches the booking customer's email, they only receive one email.

Send Survey Email (send_survey_email)

Send a post-experience survey email with a unique, tokenized survey link. See Post-Booking Surveys for details.

Wait / Delay (wait)

Pause the workflow for a specified duration before continuing to the next action. Supports two modes:

Fixed Duration — wait for an exact amount of time:

OptionDescription
DurationThe numeric amount to wait
UnitMinutes, Hours, or Days

Relative to Booking — schedule the next action relative to a booking time:

OptionDescription
Reference PointBooking Start Time, Booking End Time, or Booking Created Time
Offset ValueThe numeric offset amount
Offset UnitMinutes, Hours, or Days
DirectionBefore or After the reference point
At Time(Optional, days only) Deliver at a specific time of day in the location's timezone. For example, "1 day before booking start at 09:00" sends the next action at 9 AM local time the day before the booking.

When a booking is rescheduled, any pending relative delays are automatically recalculated to match the new booking time.

Update Booking (update_booking)

Change a booking's status automatically. For example, auto-confirm bookings or mark them as complete.

Configuration:

OptionDescription
FieldThe booking field to update (currently supports status)
ValueThe new value

Add Booking Note (add_booking_note)

Automatically add a note to the booking record. Notes are prefixed with [Workflow] to distinguish them from manual notes. Supports template variables in the note text.

Configuration:

OptionDescription
NoteThe note text (supports {{variable}} syntax)

Add Tag / Remove Tag (add_tag / remove_tag)

Add or remove a tag on the booking. Useful for categorizing bookings based on workflow outcomes.

Configuration:

OptionDescription
TagSelect from the list of system tags and custom tags

Tags added or removed by workflow actions do not fire tag events, preventing infinite loops when combining tag triggers with tag actions.

Assign Facilitator (assign_facilitator)

Automatically assign a facilitator to the booking.

Webhook (webhook)

Send an HTTP request to an external URL when the trigger fires. Useful for integrating with third-party systems.

Configuration:

OptionDescription
URLThe endpoint URL (supports {{variable}} replacement)
MethodPOST, PUT, or PATCH
HeadersCustom HTTP headers (values support variable replacement)
BodyJSON body template (supports {{variable}} and {{eventData}} for the full event payload)

Webhooks have a 30-second timeout and include SSRF protection that blocks requests to localhost and private networks.

Create Task (create_task)

Create an internal task for follow-up.

Configuration:

OptionDescription
TitleTask title (supports variables)
DescriptionTask description (supports variables)
Due In HoursHours until the task is due (default: 24)
Prioritylow, normal, or high

Available Conditions

Condition nodes let you branch a workflow based on booking, customer, activity, or time data. Each condition evaluates to true or false, producing two output paths.

Booking Conditions

ConditionDescription
Booking StatusThe current status (Pending, Confirmed, Canceled, Completed, No Show)
Booking ValueThe grand total amount
Booking DateThe date of the booking
Booking Start TimeThe start time
Booking End TimeThe end time
Equipment CountNumber of equipment items on the booking
Has Add-OnsWhether the booking has any equipment add-ons (yes/no)
Has TagWhether the booking has a specific tag applied. Select from system and custom tags.
Does Not Have TagWhether the booking does not have a specific tag applied.

Customer Conditions

ConditionDescription
Customer NameThe customer's full name
Customer EmailThe customer's email address
Customer PhoneThe customer's phone number
Is New CustomerWhether the customer was created within the last 7 days (yes/no)
Guest CountThe number of guests on the booking

Activity Conditions

ConditionDescription
Activity NameThe name of the booked activity
Activity TypeThe activity type (Equipment Rental, Tour, Dynamic Duration Rental)
Is Equipment RentalWhether the activity is an equipment rental type (yes/no)

Equipment Conditions

ConditionDescription
Equipment TypeComma-separated list of equipment names on the booking

Location & Time Conditions

ConditionDescription
Location NameThe name of the booking location
Location TimezoneThe IANA timezone of the location
Time of DayThe current hour (0-23) in the location's timezone
Day of WeekThe current day of the week
Is WeekendWhether today is Saturday or Sunday (yes/no)

Survey Conditions

ConditionDescription
Survey RatingThe overall star rating from a submitted survey (1-5). Use with the Survey Submitted trigger.

Operators

Most conditions support the following operators: Equals, Does Not Equal, Greater Than, Less Than, Contains, Does Not Contain, Starts With, Ends With, Is Empty, Is Not Empty.

Yes/no conditions (Has Add-Ons, Is New Customer, etc.) only support Equals and Does Not Equal.

Tag conditions (Has Tag, Does Not Have Tag) do not use an operator — you simply select the tag to check.

Creating a Workflow

  1. Navigate to Dashboard > Marketing > Workflows
  2. Click Add Workflow
  3. In the visual editor, add a trigger event node
  4. Optionally add condition nodes to branch the flow based on booking status, value, date, etc.
  5. Add one or more action nodes (send email, wait/delay, webhook, etc.)
  6. Connect the nodes to define the execution flow
  7. Configure each node's settings in the property panel on the right
  8. Save and activate the workflow

Visual Workflow Editor

Resytech includes a visual node-based editor for building complex workflows. The editor supports three node types:

  • Event nodes (blue) — the trigger that starts the workflow
  • Condition nodes (amber) — branch the flow with true/false paths based on booking data, customer data, time of day, and more
  • Action nodes (green) — perform an action such as sending a message, waiting, updating a booking, or calling a webhook

Drag and connect nodes to define the flow. The graph is saved as a JSON structure so you can duplicate or export workflows. The editor includes validation to ensure all nodes are connected and reachable before saving.

Execution Tracking

Every workflow run is tracked with detailed execution data:

FieldDescription
Trigger Event TypeThe event that started the execution
Trigger Event DataThe full event payload (JSON)
StatusCurrent execution status (e.g., running, completed, failed)
Started AtWhen the execution began
Completed AtWhen the execution finished (if applicable)
Error MessageDetails if the execution failed

Each action within an execution is tracked as a step:

FieldDescription
Node IDThe node in the workflow graph
Node TypeThe action type (e.g., send_template, webhook)
StatusStep status
Input DataThe configuration passed to the action
Output DataThe action's result
Error MessageDetails if the step failed

View execution history from Dashboard > Marketing > Workflows by selecting a workflow and opening its Executions tab.

Examples

Booking Confirmation

  • Trigger: Booking Created
  • Action: Send confirmation email with booking details

Pre-Visit Reminder

  • Trigger: Booking Reminder (24 hours before)
  • Action: Send SMS with date, time, and location directions

Morning-Of Reminder

  • Trigger: Booking Created
  • Action 1: Wait — 0 days before booking start, at 09:00 (location timezone)
  • Action 2: Send SMS reminder with booking details and directions

Night-Before Reminder

  • Trigger: Booking Created
  • Action 1: Wait — 1 day before booking start, at 20:00 (location timezone)
  • Action 2: Send email with preparation instructions

Waiver Signing Request on Confirmation

  • Trigger: Booking Confirmed
  • Action: Send Waiver Sign Request to Customer & Guests

Post-Experience Follow-Up

  • Trigger: Booking Completed
  • Action 1: Wait — 2 hours (fixed delay)
  • Action 2: Send survey email

Cancellation Notification with Webhook

  • Trigger: Booking Cancelled
  • Action 1: Send cancellation email to customer
  • Action 2: Fire webhook to external CRM with cancellation data

Auto-Add Note on Reschedule

  • Trigger: Booking Rescheduled
  • Action: Add booking note with old and new times for audit purposes

On this page