Articles on: Flows

Routing Contacts with Splits

Split Actions are the pivot points in a flow, "splitting" it into new branches. They're conditional statements that enable you to direct your contacts after evaluating:


  • an incoming message or recording

  • a request to a webhook

  • the contact's activity in a subflow

Anatomy of a Wait for Response Split Action



Split Actions are comprised of inputs that allow you to construct a powerful conditional statement:

Wait for Response waits for an incoming message, then evaluates it against response rules. Optionally, you may choose to add a timer to the Wait for Response action to send a reminder message to a flow participant after a period of inactivity or exit them from the flow.

A & B - The response rules that evaluate the response. Response rules are executed from left to right. The first rule that matches takes effect and no other rules are evaluated after there is a match. You can add as many rules, of different types as you wish to a 'Wait for response'.



The value(s) your response rules will attempt to match against the response. In the example above, we've created a Split Action that attempts to match responses with the Wait for Response action type selected and the has any of these words response rule selected. Incoming responses will be placed in a category called "Male" or "Female" if they match any of the words we've listed. This allows us to place the response "girl" in the "Female" category because the word "girl" matches. Note that a flow will always match at least one response rule in a Split Action as the last response rules must always be a catch-all (placing contacts in the "Other") category.


C - As you you create more rules there will be catch all/Other category to catch all responses that did not match any of the rules that you have set.


The category in which contacts are placed if the the response matches the corresponding response rule. Categories are pathways from which connections can be drawn to new nodes, thus directing the contact onward. A contact's passage through a category is represented in the analytics tab as a response.


D - The name given to the flow variable created and populated by the Wait for Response action. In the example above, the sample action will save the result of the evaluation to the flow variable @results.gender.


E - The option to set an amount of time after which a contact will be routed if they don't respond. If the contact hasn't responded in the amount of time you've chosen, they'll be routed through a No response category. You can connect this category to a Send a Message action that encourages them to continue, or leave it unconnected to prompt an exit. See more info on timeouts here.


F -For category translation and referencing those values, use the localization options.


G - click the X at the end of the rule to remove it.


Other split actions




  • Split by contact field runs response rules against a value stored in a contact field (Name, Registration Date, etc.), referenced using the variable @contact.[variable-name], e.g. @contact.state. Check out this guide for more.


  • Split by expression runs response rules against the result of an expression, such as @(REMOVE_FIRST_WORD(input.text)), which includes a function that removes the first word from the message last received, represented by the @input.text variable. Expressions can include a single variable, a single function, or a combination of variables and functions.


  • Split by result runs response rules against a value separated by a delimiter (a space, plus sign, or period), e.g. 1+2+3+4+5 (+ is the delimiter, while 1 is the first value, 2 is the second value, 3 is the third value, etc.). See this guide for more information. 


  • Random split enables you to create as many evenly-distributed buckets as you'd like for the purpose of randomly branching a contact for an A/B test or the like. See this guide for more information on A/B testing.


  • Split by Group membership you can use this action to verify whether the contact belongs to a given group(s). See an example here.


  • Split by URN type - A URN represents the type of channel (SMS, WbatsApp, Telegram) the contact is using to send you messages. Since different channels have different rules around chatbots, you can build one flow/chatbot for all channels and use this split to send them different messages or actions.




Updated on: 29/04/2026

Was this article helpful?

Share your feedback

Cancel

Thank you!