Introduction: Sometimes you don’t want to start one specific contact—you want to start everyone who matches a search. With Start Somebody Else in a Flow → Select recipients from a query, you can trigger a child flow for contacts returned by a query, using values collected earlier in the parent flow.
7–10 min read
Flows
Updated on: 18/12/2025
Start contacts from a query (and pass data into the child flow)
If you just need the essentials, follow this quick path:
- Collect the value you’ll use in the query (save it as a named result)
- Optional: collect a message you want to forward (save it as another result)
- Add Start Somebody Else in a Flow and choose Select recipients from a query
- Write a strict query using
@results.*values (prefer exact match) - Select the destination flow and start matched recipients
- In the child flow, use
@parent.results.*to reuse forwarded content
This pattern is perfect for starting “everyone in a cohort” or “all contacts with a matching ID” without manually selecting recipients.
Step-by-Step Process
- In your parent flow, send a message that explains what input you need (example: a student group ID prefix).
- Add Wait for Response to collect the value.
- Name the result clearly (example: school_id) so you can reference it later as
@results.school_id.
[CAPTURE: Wait for Response node showing a named result like “school_id”.]
- Add another Send Message asking the user for the content you want to forward.
- Add a second Wait for Response.
- Name the result (example: alert) so you can reference it later as
@results.alert.
[CAPTURE: Second Wait for Response node with result name “alert”.]
- Create a new node and select Start Somebody Else in a Flow.
- In the recipient selection options, choose Select recipients from a query.
[CAPTURE: Start Somebody Else in a Flow configuration showing “Select recipients from a query”.]
In the query field, write a search that targets the contacts you want to start. Use the value collected in Step 1 inside the query.
Example pattern:
school_id = @results.school_id
[CAPTURE: Query input showing an example like “school_id = @results.school_id”.]
school_id) rather than spaces.
- Select the child flow you want to run for the matched contacts (example: Register SID).
- Save the action.
Result: When the parent flow reaches this node, every contact that matches the query will be started in the selected child flow.
[CAPTURE: Flow picker showing the destination child flow selected.]
- In the child flow, add a Send Message action (or any action that needs the forwarded value).
- Reference content collected in the parent flow using
@parent.results.<result_name>.
Example: @parent.results.alert
[CAPTURE: Child flow Send Message node referencing @parent.results.alert.]
@parent gives you access to results collected earlier in the parent flow session.
Common Issues & Quick Fixes
No contacts are started from the query
Problem: The action runs, but no recipients match.
Fix:
- Confirm the contact field name in the query is correct (example:
school_id). - Ensure the value exists and is saved in the parent flow (
@results.school_idis not empty). - Test your query on a small set of contacts first.
The query matches too many contacts
Problem: You start unintended contacts.
Fix:
- Tighten your query (prefer exact matches).
- Validate the input format in the parent flow (use response rules when possible).
The child flow can’t access the forwarded message
Problem: The child flow doesn’t show the parent-collected content.
Fix:
- Make sure the parent flow result name matches exactly (example:
alert). - Use
@parent.results.alert(not@results.alert) inside the child flow.
