Workflow triggers, steps and variables
Reference for the workflow builder: the events that can start a workflow, the steps it can run, the rules a condition can check, the ways a delay can wait, and the variables available in messages.
This page lists the building blocks of a workflow as they are named in the builder at /workflows/<id>. For the procedure, see Build a workflow.
Triggers
A trigger is the event that starts a run for one person. The trigger picker groups them into four sections. The most used ones:
| Group | Trigger | Fires when |
|---|---|---|
| Sales & checkout | New purchase | A customer completes a purchase, paid or free. Renewals have their own triggers. |
| Free signup completed | Someone signs up for free (lead magnet, free offer). Paid purchases do not trigger it. | |
| Form submitted | Someone submits one of your signup forms. It has no product scope; you choose forms instead. | |
| Order created (incl. failed payment) | An order is created at checkout, even if the payment fails or is never completed. | |
| Checkout abandoned | A visitor enters their email at checkout and leaves. Detected after a few minutes, at most once per day per person and checkout. | |
| Subscriptions & access | Subscription renewal | A subscription renewal payment succeeds. |
| End of subscription | A client's subscription ends and their access is revoked. | |
| Renewal of the access period | A customer pays to extend time-limited access. New purchase does not cover renewals. | |
| End of access period | A client's time-limited access expires. | |
| 14 / 7 / 3 / 1 days until the end of the access period | The given number of days before access ends. The 14-day trigger applies to access lasting at least 3 months. | |
| Customers | Subscribed to the newsletter | A customer becomes a subscriber through a confirmed double opt-in, a single opt-in form or a checkout consent. Not fired by imports. |
| Tag added to a customer | One of your tags is added manually, by an automation or by a signup form. Not fired by bulk imports. | |
| Subscriber went quiet | Once a day for subscribers with no tracked click or open for the number of days you set. Repeats at most every 30 days per person. | |
| The client has been imported | You add a client to a product manually, by import or by an automation. | |
| Milestones & referrals | Course completed | A client completes the last lesson of a course. |
Product-based triggers can be limited with the Products field on the trigger card. The builder shows a description under every trigger when you pick it.
Steps
| Category | Step | What it does |
|---|---|---|
| Messaging | Send email | Sends an email from your template library to the customer. See Emails sent by workflows. |
| Send SMS | Texts the customer from your own SMS account (SMSAPI or Twilio). Only customers with a phone number and SMS consent get it. | |
| Email me | Emails you, the account owner, for example when a subscription renews. Variables work here too. | |
| Request a testimonial | Emails the customer a link to leave a testimonial, with a form chosen per product. | |
| Create a community post | Posts to a feed channel of a community as the workspace owner. | |
| Customers | Add or remove tags | Tags or untags the customer for segments and filters. |
| Set email subscription | Unsubscribes or subscribes the customer. Unsubscribed customers are kept, never deleted. | |
| Access | Grant product access | Adds the customer to one or more products. |
| Revoke product access | Removes the customer from one or more products. | |
| Community action | Adds or deactivates community members. | |
| Logic | Condition | Splits the flow on rules into a yes and a no branch. |
| Delay | Pauses before the next step. | |
| Email marketing | Email marketing action | Adds or removes lists, tags or groups in a connected mailing tool. |
| Social media | Publish a social post | Publishes a text post on connected social accounts, or saves it as a draft for review. |
| Other apps | Webhook | Calls an external URL with data from the run. |
| Discord, Circle, GitHub actions | Manage access in those apps. |
Steps that need an integration are listed as unavailable, with a hint such as "Connect an email marketing tool in Integrations to use this action", until the integration is connected.
Condition rules
All rules of one condition must match for the yes branch.
| Field | Checks |
|---|---|
| Order total amount | A number comparison: equals, at least, at most, greater than, less than. |
| Price, Checkout | Which price or checkout the order came through (is one of, is none of). |
| Client email | The customer's address. |
| Client has product access | Has access or Does not have access to a chosen product. |
| Customer has tag | Has the tag or Does not have the tag. |
| Customer engaged with emails | Clicked or opened within the last N days. Only emails sent with measurement on count. |
| Customer has a phone number, Customer consented to SMS | Useful before a Send SMS step. |
| Checkout funnel stage, Checkout had failed payment, Visitor completed the purchase | Available after a Checkout abandoned trigger. The last one is checked live when the step runs, so put it after a delay to avoid emailing people who already bought. |
Delay modes
| Mode | Behavior |
|---|---|
| Wait for | A number of minutes, hours, days or weeks, up to one year. |
| Until a weekday | Waits until the chosen day of the week and time. |
| Until a date | Waits until a fixed date and time. If the date has already passed when the run gets there, it continues at once. |
Times use the workspace time zone.
Variables
Variables are written in double curly braces and replaced with the run's data in email subjects and bodies, SMS texts and notification emails.
| Variable | Value |
|---|---|
{{firstName}}, {{lastName}}, {{fullName}}, {{email}} | The customer's name and address. |
{{productName}}, {{productId}} | The product the event concerns. |
{{price}}, {{priceId}}, {{orderId}} | Paid amount with currency, and the price and order identifiers. |
{{currentAccessPeriodEndDate}} | End of the current access or paid period; it can change after a renewal. |
{{utmSource}}, {{utmMedium}}, {{utmCampaign}}, {{utmTerm}}, {{utmContent}} | Campaign tracking values. |
{{checkoutUrl}} | Link back to the abandoned checkout. Only after Checkout abandoned. |
{{formName}} | Name of the submitted form. Only after Form submitted. |
{{certificateUrl}} | Public certificate verification link. Only after Course completed. |
The builder refuses to publish a step that uses an unknown variable or one that is out of scope for its trigger.
Good to know
The trigger picker contains more events than the table above; each one shows its own description when selected. An SMS step is limited to 10 SMS segments per message.
Was this article helpful?

