Email & campaigns

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.

6 min readLast updated Sep 30, 2026

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:

GroupTriggerFires when
Sales & checkoutNew purchaseA customer completes a purchase, paid or free. Renewals have their own triggers.
Free signup completedSomeone signs up for free (lead magnet, free offer). Paid purchases do not trigger it.
Form submittedSomeone 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 abandonedA visitor enters their email at checkout and leaves. Detected after a few minutes, at most once per day per person and checkout.
Subscriptions & accessSubscription renewalA subscription renewal payment succeeds.
End of subscriptionA client's subscription ends and their access is revoked.
Renewal of the access periodA customer pays to extend time-limited access. New purchase does not cover renewals.
End of access periodA client's time-limited access expires.
14 / 7 / 3 / 1 days until the end of the access periodThe given number of days before access ends. The 14-day trigger applies to access lasting at least 3 months.
CustomersSubscribed to the newsletterA 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 customerOne of your tags is added manually, by an automation or by a signup form. Not fired by bulk imports.
Subscriber went quietOnce 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 importedYou add a client to a product manually, by import or by an automation.
Milestones & referralsCourse completedA 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

CategoryStepWhat it does
MessagingSend emailSends an email from your template library to the customer. See Emails sent by workflows.
Send SMSTexts the customer from your own SMS account (SMSAPI or Twilio). Only customers with a phone number and SMS consent get it.
Email meEmails you, the account owner, for example when a subscription renews. Variables work here too.
Request a testimonialEmails the customer a link to leave a testimonial, with a form chosen per product.
Create a community postPosts to a feed channel of a community as the workspace owner.
CustomersAdd or remove tagsTags or untags the customer for segments and filters.
Set email subscriptionUnsubscribes or subscribes the customer. Unsubscribed customers are kept, never deleted.
AccessGrant product accessAdds the customer to one or more products.
Revoke product accessRemoves the customer from one or more products.
Community actionAdds or deactivates community members.
LogicConditionSplits the flow on rules into a yes and a no branch.
DelayPauses before the next step.
Email marketingEmail marketing actionAdds or removes lists, tags or groups in a connected mailing tool.
Social mediaPublish a social postPublishes a text post on connected social accounts, or saves it as a draft for review.
Other appsWebhookCalls an external URL with data from the run.
Discord, Circle, GitHub actionsManage 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.

FieldChecks
Order total amountA number comparison: equals, at least, at most, greater than, less than.
Price, CheckoutWhich price or checkout the order came through (is one of, is none of).
Client emailThe customer's address.
Client has product accessHas access or Does not have access to a chosen product.
Customer has tagHas the tag or Does not have the tag.
Customer engaged with emailsClicked or opened within the last N days. Only emails sent with measurement on count.
Customer has a phone number, Customer consented to SMSUseful before a Send SMS step.
Checkout funnel stage, Checkout had failed payment, Visitor completed the purchaseAvailable 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

ModeBehavior
Wait forA number of minutes, hours, days or weeks, up to one year.
Until a weekdayWaits until the chosen day of the week and time.
Until a dateWaits 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.

VariableValue
{{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?

Related articles

Spotted something off? Tell us at support@zanfia.com.