Campaign flows: basics
A flow defines how a campaign interacts with participants over time. You build flows by connecting nodes on a canvas. Each node starts the flow, checks data, or performs an action. A campaign can include multiple flows. Each flow runs independently. A flow can also pass participants to another flow in the same campaign.
Use this article to understand the flow data model and node types. To build and launch a campaign, see Create flow. To see the concept in one complete scenario, start with Example flow: Payment reminder.
Data model
Flows use data from three sources. Choose the source based on how long the data should exist and where you need to reuse it.
-
Customer profile: The main contact record. It exists outside campaigns and stays the same across all campaigns that include the contact. Use customer profile fields for shared data, such as name, email address, phone number, and custom attributes. You can view and edit customer profiles in Campaigns > Customers or in 360 View.
-
Participant: A campaign-specific contact record. The system creates a participant when a contact joins a campaign. Participant fields apply only to that campaign and don't update the contact record in other campaigns. Use participant fields to track campaign progress, status, or results. You can view participants on the Participants tab for a campaign in Campaigns > Flows.
-
Communication: A conversation between a participant and an agent on a channel, such as Telegram, WhatsApp, email, or voice. Communication action nodes create communications. A communication ends when the session closes. After that, the agent's recorded outputs appear as communication results on the Communications tab in the contact's 360 View. You can use Field Check nodes to evaluate communication results or write them to other fields.
Node types
Flows include three node types:
Triggers
A trigger starts a flow when a specific event occurs for a participant. Every flow must include at least one trigger. Trigger nodes are green.
Use these trigger nodes:
- Participant Created: Starts the flow when a participant is added to the campaign, such as when you upload a contact list
- Participant Updated: Starts the flow when any participant field changes
- Communication Ended: Starts the flow when a communication session with a participant ends
- Communication Updated: Starts the flow when the status or data of a communication changes
- Incoming Session: Starts the flow when an inbound message or session arrives from a participant
- From Another Flow: Starts the flow when another flow in the same campaign sends a participant through a To Another Flow action
Learn more about trigger nodes
Conditions
Use the Field Check node to compare data with a value and choose the next path. A Field Check node can evaluate fields from the customer profile, participant record, or communication results. Field Check nodes are yellow.
Field Check always has two output ports:
- Match: The condition is true
- Else: The condition is false
Actions
Action nodes update data, schedule communications, or control what happens next in the flow. Action nodes are light blue.
Use these action nodes:
- Email Communication, Telegram Communication, Voice Communication, or WhatsApp Communication: Creates a communication for the participant through the selected agent and channel. You can also configure timing.
- Cancel Communications: Cancels all planned and active communications for the participant and sets their status to Canceled.
- Update Field: Writes values to participant fields or customer profile fields.
- To Another Flow: Sends the participant to another flow in the same campaign.
- Python Custom Action: Runs a Python script for custom logic that built-in nodes don't support.
How flows work
A flow starts when a trigger event occurs. For example, Participant Created starts a flow when a participant is added to a campaign.
After the trigger, the flow moves through connected nodes one by one. At a Field Check node, it evaluates the condition and follows the Match or Else path. At an action node, it performs the action and moves to the next node. The flow stops when there are no connected nodes left.
Each flow run is independent. When you reupload a participant, it triggers the flow again, which can cause duplicate communications. To prevent this, add a Field Check right after the trigger — check whether the participant was already contacted, and only continue if they weren't.
The articles in the Configuring flows section below describe each node and explain how to build a flow.
Related resources
- Create a flow: Build and launch a campaign with an example flow.
- Trigger nodes: Configure trigger nodes.
- Conditions: Configure Field Check operators.
- Action nodes: Configure action nodes.
- Communication channels: Choose channels for communication action nodes.