Action nodes
Use action nodes to update data, start outbound conversations, or control what happens next in a flow.
Available action nodes:
- Email Communication — starts an email communication
- Telegram Communication — starts a Telegram communication
- WhatsApp Communication — starts a WhatsApp communication
- Voice Communication — makes an outbound phone call
- Cancel Communications — cancels all planned communications for the participant
- Update Field — writes values to participant or customer profile attributes
- To Another Flow — transfers the participant to a different flow
- Python Custom Action — runs a custom Python script
Start communications
Agent and channel requirements
Each conversation node needs an agent that has the matching channel configured. The Agent list is filtered by channel or integration, not by whether the agent is inbound or outbound. The Agent Channel list shows the selected agent's channels for that type. Channels that aren't running are shown as inactive and can't be selected.
The Inbound toggle in agent channel settings controls which inbound agent receives new sessions on that channel. It isn't required for outbound campaign messages. Only inbound agents can save a channel with Inbound enabled, and only one agent can have Inbound enabled for the same channel.
The selected agent's configuration controls the conversation behavior. For example, a simple form agent uses its welcome message, primary task, and instructions. Advanced mode uses the settings configured in the agent's advanced form, including its communication channels.
Use a channel-specific node for the channel you want to use:
These nodes create a communication for the participant through the selected agent and channel.
Conversation fields shared across channels
Most conversation nodes share these fields.
Times are interpreted in the tenant timezone by default. If the participant has a timezone value, the participant timezone takes precedence for that participant.
| Field | Required | Description |
|---|---|---|
| Communication Name | ✅ | A unique identifier for the communication. Use uppercase letters, digits, and underscores only, such as QUALIFICATION_CALL. |
| Agent | ✅ | The agent that conducts the conversation. The list shows agents that can use the selected channel. |
| Agent Channel | ✅ | The channel configuration to use for the selected agent. |
| Communication Date and Time | ✅ | The base date and time to schedule the communication. You can use Today, a date or datetime field, or a Python expression. Date-only values are interpreted in the scheduling timezone. |
| From / To | ✅ | The time window, in the scheduling timezone, when the system can start the communication. Communications scheduled outside this window wait until the next allowed time. |
| Best time to contact | ❌ | Lets the system choose the best time within the allowed window. This option disables the manual From / To fields. |
| Communication Duration | ✅ | How long the communication window stays open, in HH:MM format. If the communication doesn't start before the window ends, the system cancels it. |
| Customer Context | ❌ | Participant or customer profile attributes passed to the agent as context for the conversation. |
Email Communication
Starts an email conversation through an agent with an Email channel.
Use Email Template to choose the email template for this communication. Click Set template to choose it, or Edit template to change it. If you leave this field empty, the system sends an email with an empty body and the subject Notification.
Telegram Communication
Starts a Telegram conversation through an agent with a Telegram channel.
Use Start Phrase to set the opening message sent to the participant. If you leave this field empty, the agent uses its configured welcome message.
A participant must start a conversation with the bot before you can message them. Otherwise, their telegram_id is unknown and the communication fails. Telegram campaigns work only for users already in your bot's contact base.
Telegram is a two-way conversation. The agent conducts a full dialog instead of sending a one-time message. Configure the conversation content in the selected agent. Use Start Phrase to personalize the opening line with participant data. Use Customer Context to pass more participant attributes to the agent so it can reference them during the conversation.
To personalize the start phrase, wrap an attribute name in double curly braces. For example: Hello {{ name }}, your bank card {{ order_id }} has been shipped!. The system uses each participant's current data when it sends the message.
WhatsApp Communication
Starts a WhatsApp conversation through an agent with a WhatsApp channel.
Use Template to choose the WhatsApp message template for the communication. The WhatsApp Business API requires a template for outbound conversations started by the bot.
Voice Communication
| Field | Required | Description |
|---|---|---|
| Phone | ✅ | A participant attribute that contains the phone number to call. Use a string or phone attribute. |
| SIP Server | ✅ | The SIP server address used to route the call. |
| SIP Parameters | ❌ | Optional connection parameters in key=value format, separated by semicolons. For example: transport=udp;timeout=30. |
Cancel Communications
Cancels all planned and active communications for the participant and sets their status to Canceled.
No configuration required.
Update Field
Writes one or more values to participant or customer profile attributes.
Each assignment includes these fields:
| Field | Description |
|---|---|
| Attribute | The customer profile or participant attribute to update. |
| Value | The value to write. Can be a constant or a reference to another attribute. |
Click Add assignment to update multiple fields in a single node.
To Another Flow
Transfers the participant to a different flow within the same campaign.
Use Target flow to select the flow to send the participant to. The target flow must have a From Another Flow trigger.
Python Custom Action
Runs a Python script as part of the flow. Use this action for custom logic that built-in nodes don't support, such as calling an external API or calculating a value.
| Field | Required | Description |
|---|---|---|
| Script | ✅ | The Python code to run. The script runs in the campaign execution context and can access participant and communication data. |
| Params | ❌ | A JSON object with key-value pairs passed to the script as input. Use parameters to configure the script without editing the code. |
Related resources
- Flows basics: Understand node types and the flow data model.
- Trigger nodes: Start flows with campaign events.
- Conditions: Route participants based on their data.
- Create a flow: Build and launch a flow-based campaign.
- Communication channels: Set up campaign communication channels.