What it does
Data Collection - v0.2 is the standard way to collect and verify one field from a caller by voice — a name, a phone number, or an alphanumeric code such as a policy or booking reference. You place one tool step in your flow; on the call it runs a complete collection exchange:- the first ask (with an optional custom opening line),
- confirmation read-back of what was heard,
- optional spelling and spell-back verification,
- correction loops with attempt limits, so a mis-heard value gets fixed rather than saved,
- a quick confirm of a pre-existing value instead of asking fresh, and
- skipping entirely when the value is already known.
Collection types
The Type input selects one of three collection behaviours. Choose the type that matches the data, not just the prompt wording — each type verifies differently.User name
For names and other short spoken words. The assistant asks for the value, reads it back for confirmation (when Confirm is on), and can ask the caller to spell it and spell it back for final verification (when Spell is on). A pre-populated Existing Value is tidied up and quick-confirmed rather than asked fresh. Use it for first names, last names, and similar single-word or short answers where the caller says the value rather than dictating characters.Phone number
For phone numbers. Verification works digit-by-digit rather than by a separate confirmation question: the assistant reads the number back in short spoken groups of digits and the caller corrects any digit by its position, with the country prefix kept intact. If the caller already volunteered their number in the last few turns of conversation before this step, the tool picks it up and goes straight to the read-back instead of asking again. An Existing Value is sanity-checked (it must look like a complete number) before being quick-confirmed.Alphanumeric
For codes that mix letters, digits and symbols — reference numbers, booking codes, registration plates. Values of up to 10 characters are accepted. The read-back spells the value unambiguously: letters use phonetic words (A for Alpha), digits are read as digit names, and symbols are named (dot, dash), in short groups so the caller can follow along. Case is preserved exactly as collected, corrections are made character-by-character, and — like phone numbers — a code the caller already mentioned in recent turns is picked up without re-asking.Inputs
Confirm and Spell shape the user-name exchange; for phone numbers and alphanumeric codes the grouped read-back described above is itself the verification, so those types always read the value back regardless of the toggles.
How a collection runs
Every use of the tool enters through the same gate, in this order:- Skip If Set — if the referenced variable already holds a real value, the step ends immediately with a true result. Nothing is spoken.
- Existing Value — if a pre-populated value is present (and isn’t a placeholder), the assistant quick-confirms it: “I have your first name as Jane — is that right?” A yes keeps it; a no drops into the normal collection exchange.
- Recent turns — for phone numbers and alphanumeric codes, the tool checks whether the caller already volunteered the value in the last few turns; if so it goes straight to the read-back.
- Fresh ask — otherwise the assistant asks for the value, using First Message if you set one.
Outputs
Variables this tool writes
The
data_collection namespace also holds temp_* working fields — private to the tool. A later Data Collection step overwrites the whole namespace, so always map Collected Value to a durable variable rather than reading {{data_collection.output_result}} in later steps.
Routing and wiring tips
- true — value collected (or skipped because it was already set). Otherwise — collection failed (attempt limits reached or the caller refused).
- For an optional field, point true and otherwise at the same next step so a failed collection never blocks the call.
- Use the standard contact fields for standard data: wire Existing Value and Skip If Set to the
{{contact.*}}field being collected, and map Collected Value back to that same field. Don’t invent custom variables for names, phones or emails. - If the contact record already holds the value and you skip the Existing Value input, the caller gets asked from scratch instead of a quick confirm.
- Point Skip If Set at the same variable the output writes to, so repeat visits to the step skip cleanly instead of re-collecting.
- To collect an email address, use SMS | Get Valid Email instead — emails are far more reliable over an SMS round-trip than spelled aloud.
Next Steps
- Composite Tools — how composite steps run, and how inputs, results and outputs connect to your call.
- SMS | Get Valid Email — collect a validated email address by SMS round-trip.
- Tool Steps — configuring inputs, conditions and output mapping on a step.
- Variables — the full reference of variables tools read and write.

