Triggers and Connections
Start funnels, wait for events, create conditions, and connect steps.
Triggers control when a funnel starts and how it moves from one step to another. Blocks perform actions; outgoing triggers decide what happens after those actions finish.
Start Triggers
The start trigger is configured in the funnel settings, before opening the visual builder.
| Trigger | Starts the funnel when |
|---|---|
| Message received | A client message arrives. |
| Client tag changed | The selected client tag changes. |
| Client custom field changed | The selected client field changes. |
| No trigger | No automatic start event is assigned. |
For Message received, select a mode:
| Mode | Behavior |
|---|---|
| Any message | Every eligible incoming client message can start a run. |
| First client message | Starts when the client sends the first message for the conversation. |
Tag and custom-field triggers require a target. Select the exact tag or field that the funnel should watch.
Outgoing Triggers
Add outgoing triggers in a step's inspector. Each trigger creates a connection handle on the step. Drag from that handle to the destination step.
| Trigger | Behavior |
|---|---|
| Go to | Continues immediately after the step's blocks finish. |
| Any message | Waits for the next incoming client message. |
| Button click | Presents a button with the configured text and waits for the client to click it. |
| Delay | Waits for a configured duration. |
| Condition | Evaluates data and follows the first matching branch. |
| Else | Follows the fallback path when no condition branch matches. |
An outgoing trigger without a connection is shown as a checklist warning. Saving is allowed, but that path ends at the current step.
Connect Steps
- Select the source step.
- Add the required outgoing trigger.
- Configure its button text, delay, or condition.
- Drag from the trigger handle to the target step.
- Repeat for every path that should continue.
- Open Checklist to find unconnected paths.
Use descriptive trigger labels such as Customer replied, After 24 hours, or VIP client. Renaming a trigger only improves the canvas label; its behavior remains unchanged.
Go To
Use Go to when the next step should start immediately. It is the normal connection between sequential action steps.
Example:
Send welcome message -> Go to -> Add onboarding tagAny Message
Use Any message when the funnel must pause until the client replies. The next step receives the updated runtime message context, so its message or condition blocks can read sys.message.* values.
Do not use Go to when a reply is required; it continues without waiting.
Button Click
Use Button click for a predefined client choice.
- Add Button click.
- Enter the visible Button text.
- Connect its handle to the step for that answer.
- Add another button trigger for each additional choice.
Keep button labels short and distinct. Each button represents its own outgoing path.
Delay
Use Delay to pause before continuing. Enter a value and select seconds, minutes, hours, or days, then connect the trigger to the next step.
Examples:
- wait 10 minutes before a follow-up;
- wait 24 hours before a reminder;
- wait 3 days before ending an inactive flow.
A delay uses elapsed time. For scheduling at a specific calendar date and time, use a dedicated scheduling feature rather than calculating a long delay.
Conditions and Branch Order
Add Condition when the next step depends on client or runtime data. The builder presents condition triggers in this order:
- the first condition is IF;
- additional conditions are ELSE IF;
- ELSE is the fallback branch.
Conditions are checked from top to bottom. The first matching branch continues. If nothing matches, the ELSE connection is used. When condition branches exist, the builder adds one fallback ELSE branch automatically.
Connect every condition branch that should do work. An unconnected ELSE means unmatched cases end at the current step.
Build a Condition
- Add Condition to the step.
- Open the condition card.
- Choose a source.
- Select an operator available for that source and data type.
- Enter or select the comparison value when required.
- Enable NOT to invert only that rule.
- Use Add AND for another required rule in the same group.
- Use Add OR for an alternative group.
- Add another condition trigger when you need an ELSE IF branch.
- Connect IF, ELSE IF, and ELSE handles to their target steps.
Rules in one group use AND. Every rule in that group must match. Groups use OR, so any complete group can make the branch match.
Example:
(tag contains "vip" AND current time is before 18:00)
OR
(funnel.priority equals "urgent")Condition Sources
| Source | Use it to inspect |
|---|---|
| Client tags | Tags currently attached to the client. |
| Client custom field | The selected text, number, or select field. |
| Current time | Runtime time used by the funnel. |
| Variable | A system, funnel, or environment variable. |
Operators by Data Type
The inspector only offers operators compatible with the selected source.
| Data | Available comparisons |
|---|---|
| Client tags | Contains, Contains key, Filled |
| Text | Filled, Equals, Contains, Starts with, Ends with, Matches regexp, Matches pattern |
| Number | Filled, Equals, Greater than, Greater than or equal, Less than, Less than or equal |
| Select | Filled, Equals |
| Boolean variable | Filled, Equals |
| Current time | Equals, Before, After |
Contains key compares a tag key rather than its display name. Filled only checks whether a value exists and therefore does not need a comparison value.
Use Matches regexp when the value should satisfy a regular expression. Use Matches pattern only when you know the pattern format expected by your workflow. Test both positive and negative examples before activation.
Condition Example
Route a premium client to a manager during working hours:
- Add a condition branch named
Premium during hours. - Set source to Client custom field.
- Select the
tarifffield, choose Equals, and enterpremium. - Click Add AND.
- Set source to Current time, choose Before, and enter the end of the working period.
- Connect the IF branch to Transfer to operator.
- Connect ELSE to the normal support queue step.
Ending a Path
There are two explicit ways to finish:
- leave a trigger unconnected to end only that branch after the step;
- add Stop automation to explicitly complete the current run.
Use Stop automation when the end is intentional and should remain clear to future editors.