9–12 min read
Flows
Updated on: 18/12/2025
Validate multiple values from one message
If you just need the essentials, follow this quick path:
- Define the format (keyword + delimiter) and show an example
- Collect the raw message into a result
- Remove the keyword and isolate the delimited string
- Validate each field using Split by Flow Result
- Confirm back the extracted values
- Scale up using FIELD() when you need more fields
You’ll end up with clean, validated results (gender/name/birth year, etc.) you can store, report on, or send to a webhook.
Step-by-Step Process
- Start by choosing a format and delimiter that contacts can follow consistently.
-
Example format:
birth [gender]+[child_name]+[mother_birth_year]- Example submission:
birth f+Noel+1985
-
In this pattern:
- The first word (
birth) acts as the keyword that starts the flow. - The remaining values are separated by
+.
- The first word (
[CAPTURE: Example message format displayed in a Send Message node: “Reply: birth m+John+1990”.]
- Add a Wait for Response node.
- Use an open-ended rule that allows messages that contain your keyword (so you don’t reject valid submissions).
- Save the result with a clear name (example: message).
[CAPTURE: Wait for Response node saving the contact reply as result “message”.]
- Because the first word is the keyword (
birth), strip it out before parsing. - Add a Split by Expression node (or an expression step depending on your UI).
-
Use an expression that removes the first word from the incoming message:
@(REMOVE_FIRST_WORD(input.text))
- Save the output as a result variable (example: fields).
- This should leave only:
f+Noel+1985
[CAPTURE: Split by Expression node showing the expression @(REMOVE_FIRST_WORD(input.text)) and saving the result as “fields”.]
- Add a Split by Flow Result node.
- Select the flow result you want to evaluate: @results.fields.
- In the Advanced section, enable Delimit Result and set the delimiter to
+. - Set the index to evaluate the first field (Gender).
-
Add response rules to map short values to meaningful categories:
m→ “Male”f→ “Female”
- Save the evaluated value into a new result variable (example: gender).
- If Gender is invalid, route to a Send Message node that explains the expected format and asks the contact to resubmit.
[CAPTURE: Split by Flow Result node showing delimiter “+”, field index = 1, rules for “m” and “f”, and saving as “gender”.]
- Add another Split by Flow Result node.
- Evaluate @results.fields.
- Enable Delimit Result with delimiter
+. - Set the index to the second field (Name).
- Add a rule like is not empty (or your equivalent validation rule, depending on your UI).
- Save the value as a result variable (example: name).
- If Name is missing, send an error message and ask for resubmission.
[CAPTURE: Split by Flow Result node for Name, delimiter “+”, index = 2, rule “is not empty”, save as “name”.]
- Add a third Split by Flow Result node.
- Evaluate @results.fields.
- Enable Delimit Result with delimiter
+. - Set the index to the third field (Birth Year).
- Use a numeric validation rule such as has a number between (example range: 1900 to current year).
- Save the value as a result variable (example: birth_year).
- If Birth Year is invalid, send an error message and request resubmission.
[CAPTURE: Split by Flow Result node for Birth Year with rule “has a number between”, and save as “birth_year”.]
- Finish with a confirmation message that references the saved results:
-
Example confirmation content:
- Gender:
@results.gender - Name:
@results.name - Mother birth year:
@results.birth_year
- Gender:
[CAPTURE: Final Send Message node confirming the structured submission using @results variables.]
- If you outgrow the split-by-result approach (for example, more than a few fields), use delimiter parsing via expression.
-
Function pattern:
FIELD(text, index, delimiter)
-
Example:
@(FIELD(results.fields, 1, "+"))
[CAPTURE: Split by Expression node using FIELD() to extract a specific index from a delimited string.]
Common Issues & Quick Fixes
Contacts keep submitting the wrong format
Problem: You receive messages like birth Noel 1985 instead of birth f+Noel+1985.
Fix:
- Show the exact format in the prompt and include one example.
- In your error message, repeat what they sent (
@results.fields) and show the correct sample. - Use quick replies only when the channel supports it; for SMS, keep examples simple.
My Split by Flow Result node can’t find the value I want
Problem: The split always routes to “Other” even with valid input.
Fix:
- Confirm you saved the input as a flow result (
@results.fields). - Confirm Delimit Result is enabled and the delimiter matches (
+, space, or.). - Confirm you’re evaluating the correct index (first vs second vs third).
Valid values appear shifted (wrong field in the wrong place)
Problem: Name ends up being treated as Gender, etc.
Fix:
- Make sure you removed the keyword first (
REMOVE_FIRST_WORD). - Confirm contacts aren’t adding extra spaces or missing delimiters.
- Add an early “format check” step that verifies the number of expected delimiters.
