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 Oct 9, 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:

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.
Order refundedA full refund of an order for the product is confirmed.
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.
Client archived in the productThe client is archived in the product by hand, by a bulk action, by a refund or by another automation.
Client removed from the productThe client is removed from the product completely.
Milestones & referralsCourse completedA client completes the last lesson of a course.
Validated referralA person referred by your client signs up and is verified as a valid subscriber.
Referral reward earnedA participant of your referral program reaches a reward milestone.

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.

Access that simply runs out does not fire Client archived in the product: expired time-limited access fires End of access period, and a subscription that ends fires End of subscription. Use the archived and removed triggers for your own follow-ups when someone loses access, such as removing a tag or emailing yourself.

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 actionAdd to community, Deactivate in community or Change member role. See the note below the table.
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.

Change member role lists every role of the chosen community, including roles you created yourself. The role is added on top of the basic Member role, which the person keeps. The person must already be a member of that community, and the community owner's role is never changed.

Condition rules

All rules of one condition must match for the yes branch. A Consent answer rule follows the consent itself, so editing the consent text later keeps the rule working; when the run carries no answer to that consent (for example, the person never went through a checkout with it), the rule does not match.

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.
Consent answerHow the customer answered one of your checkout consents: pick it in Consent name, then Answered yes or Answered no. Archived consents are not listed.
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. Visitor completed the purchase is checked when the step runs and counts a purchase of the same product with the same email or browser, also in another checkout session. You do not need it just to stop reminders to buyers: every email and SMS step of an abandoned-checkout workflow skips a buyer and ends the run. Use it for other actions on buyers, for example adding a tag; email and SMS steps in this workflow never reach a buyer.

Delay modes

ModeBehavior
Wait forA number of minutes, hours, days or weeks, up to one year. With days and weeks you can add Then at: "2 days, then at 9:00" continues the day after tomorrow at 9:00, whatever time the client reached the step.
Until a timeWaits until the next occurrence of the chosen time: today if it hasn't passed yet, otherwise the next day. On days limits it to chosen weekdays, e.g. Monday to Friday.
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

Each trigger shows its own description in the picker 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.