Skip to main content
When a workflow runs, contextual data about what triggered it is available through the trigger object. This page documents every trigger type and the fields available for each.

Using Trigger Context

Access trigger data in any workflow node that supports Liquid:
The trigger.type field identifies what triggered the workflow, allowing you to create conditional content that adapts to different trigger sources.

Trigger Types


Form Submissions

Triggered when a contact submits a form.

Available Fields

The referrer and UTM values describe the visit the submission belongs to, not the form’s page. They are taken from the first page visit in the same session, so a visitor who arrives on a UTM-tagged link and then navigates to your form still resolves the UTMs of the link that brought them in. A session that starts as a direct or organic visit resolves to empty UTM values, since there was no campaign to attribute it to.When the session has no tracked page visits at all (a visitor who declined cookies, or a form on a page without the tracking pixel), the referrer falls back to the one captured with the submission, and the UTM values fall back to the UTM parameters parsed from the URL the form was submitted on.

Submitted Field Values

Access any field from the form submission through the .fields namespace:
Field values are nested under .fields to avoid conflicts between submission data and form metadata. For example, if a form has a field named “form_name”, it’s accessible at trigger.form_submission.fields.form_name without overwriting the actual form name.
If a form field name contains spaces (e.g., “Country Of Origin”), you can’t use dot notation. Use bracket syntax instead:

Example


Page Visits

Triggered when a contact visits a tracked page.

Available Fields

Example


Email Events

All email event triggers share common email metadata through trigger.email. Each event type also has event-specific fields.

Common Email Fields

These fields are available for all email triggers:

Email Sent

Triggered when an email is sent to a contact.

Email Delivered

Triggered when an email is successfully delivered.

Email Opened

Triggered when a contact opens an email.

Email Bounced

Triggered when an email bounces. Triggered when a contact clicks a link in an email.

Example


Contact Created

Triggered when a new contact is created in Conversion.

Available Fields

The contact_created trigger has no trigger-specific fields — reference the new contact’s data directly through the contact object.

Example


Contact Updated

Triggered when a contact field value changes.

Available Fields

Example


Company Updated

Triggered when a company field value changes.

Available Fields

Example


Audience Changes

Triggered when a contact is added to or removed from an audience.

Added to Audience

Removed from Audience

Available Fields

Example


Opportunity Events

Triggered when opportunities are created or updated.

Opportunity Created

Triggered when a new opportunity is created.

Opportunity Updated

Triggered when an opportunity field value changes.

Available Fields

For all opportunity triggers: For opportunity_updated, access changed field information:

Example


Opportunity Role Events

Triggered when a contact’s relationship to an opportunity changes.

Opportunity Role Added

Triggered when a contact is added to an opportunity (given an Opportunity Contact Role).

Opportunity Role Changed

Triggered when a contact’s role on an opportunity changes.

Available Fields

For opportunity_role_changed, access changed field information:

Example


Custom Object Events

Triggered when a custom object record’s field value changes (custom_object_updated).
Beyond trigger.type, the custom object trigger does not currently expose the changed record’s fields to Liquid. To reference custom object data in your content, read it through the relationship field that connects the record to the contact or its company, which resolves at render time.

Subscription Changes

Triggered when a contact’s subscription status changes (subscription_change).

Available Fields


Workflow-Triggered Workflows

When a workflow is started by another workflow (automation), the parent run’s trigger context is available through trigger.parent_trigger, which has the same structure as trigger itself — including its own parent_trigger, so chains resolve all the way up.

Custom Events

Triggered when a custom event is tracked for a contact.

Available Fields

Custom Properties

Access any custom property sent with the event through the .data namespace:
Custom properties are nested under .data to avoid conflicts between event data and event metadata.

Example


API Triggers

Triggered when a workflow is started via the API.

Available Fields

The API trigger exposes a single field: the request payload, under trigger.api.data.

Request Payload

Access any custom field sent in the API request through the .data namespace:
Request payload fields are nested under .data to avoid conflicts with request metadata, following the same pattern as form submissions and custom events.

Example


Handling Multiple Trigger Types

Use trigger.type with case statements to handle multiple trigger types in a single workflow:

Frequently Asked Questions

If your Liquid syntax is valid but references a trigger field that doesn’t apply to the current trigger type (e.g., using trigger.form_submission.form_name when the workflow was triggered by a page visit), the expression evaluates to an empty string. Use trigger.type checks to ensure you’re accessing the right fields.
These namespaces prevent conflicts between user-provided data and system metadata. For example, if a form has a field named “form_name”, it won’t overwrite trigger.form_submission.form_name—it’s safely accessible at trigger.form_submission.fields.form_name.
Use the _changed namespace. For example, trigger.contact._changed.job_title returns true if the job title field changed. You can then access the previous value with trigger.contact._previous.job_title.
All timestamps are returned in UTC in ISO 8601 format. Use the date filter to format them for display.