10–12 min read
Flows
Updated on: 18/12/2025
Collect answers reliably (and keep routing clean)
Use this checklist to set up a solid Wait for Response step.
- Add a “Wait for Response” step after a question
- Set a response rule (or collect open-ended input)
- Name your result so you can reuse it
- Save the response to the contact record (optional but common)
- Continue when there is no response (timeouts)
- Avoid endless loops (limit retries)
Done—your flow can now pause for input, validate it, and continue safely.
Step-by-Step Process
- In the flow editor, create a Send Message node that asks your question.
- From the exit of that node, add a Wait for Response split action.
- Open the Wait for Response configuration panel.
[CAPTURE: Flow editor showing a Send Message node connected to a Wait for Response node.]
You can validate input by applying response rules to the operand (typically the incoming message @input.text).
- In the Wait for Response node, choose the response rule type you need, for example:
- Has a date (birthdate)
- Has an email
- Has a number between
- Has only the phrase
- Define the accepted values (when required).
- Keep the final category as a catch-all (Other).
[CAPTURE: Wait for Response node setup showing operand, rule type selection, and categories including “Other”.]
If you want to accept any response (name, comment, free text):
- Leave the response rules empty
- The node will collect All Responses
[CAPTURE: Wait for Response node with no rules set, showing an “All Responses” category.]
- In the Wait for Response node, set the Result name (example: birthdate, full_name, email).
- Save the node.
Why it matters:
- If you don’t name the result, it may default to “Result 1”, “Result 2”, etc. (hard to manage).
- Naming the result makes it easier to reference later with a variable like @results.birthdate.
[CAPTURE: Wait for Response node showing a “Result name” field filled with a clear name.]
If you want the value available outside the flow (future flows, exports, segmentation), save it to a contact field.
- After the Wait for Response node, add an Update Contact action.
- Choose the contact field you want to update (example: Name, Birthdate, Email).
- Set the value using the result variable (example: @results.birthdate).
- Save.
[CAPTURE: Update Contact action configured with “Save to field” + “Value = @results.<result_name>”.]
If a contact doesn’t reply, you can decide what should happen after a delay.
- In the Wait for Response node, enable the option to continue when there is no response.
- Set the timeout duration (example: 5 minutes, 1 hour).
- Connect the No response category to one of these options:
- A reminder message, then loop back to the same Wait for Response
- A “you can continue later” message and exit
- A next step (if it makes sense to continue without that data)
[CAPTURE: Wait for Response node showing a timeout duration and a “No response” category connected to a reminder message.]
If you send reminders and loop back, some contacts may never respond. You can limit retry loops using @node.visit_count.
- Add a Split by Expression node before looping.
- Use the expression @node.visit_count.
- Route contacts depending on how many times they’ve returned:
- If visits are below your threshold → send reminder and loop back
- If visits exceed the threshold → exit or escalate (e.g., “Contact support”)
[CAPTURE: Split by Expression node configured with operand = @node.visit_count and categories like “< 3” and “>= 3”.]
Common Issues & Quick Fixes
My contacts keep landing in “Other”
Problem: Valid answers are being treated as invalid.
Fix:
- Add examples in your question message (format, expected values).
- Expand your response rules with synonyms/variants.
- Verify your workspace date format if you’re validating dates.
- Confirm rule order (most specific at top, catch-all last).
I can’t reuse the answer later in the flow
Problem: You collected a response but can’t reference it.
Fix:
- Make sure the result is named (example: email, birthdate).
- Reference it as @results.<result_name>.
- If you need it across multiple flows, save it as a contact field using Update Contact.
My reminders create an infinite loop
Problem: The flow keeps reminding contacts forever.
Fix:
- Use @node.visit_count to cap retries (example: maximum 2 or 3 attempts).
- After the limit, route to:
- an exit message, or
- a human escalation path.
