Flow Designer Variables and Data Pills: The Complete Reference

Data pills are the visual representation of data flowing between steps in a Flow. They look like draggable tokens but they represent a specific value or object that one step produced and another step consumes. Understanding their behaviour is essential for building flows that work reliably.

What is a data pill?

A data pill is a reference to a value that was produced by a previous step in the flow. Every step that produces output creates data pills — the trigger produces record field pills, action steps produce output pills, Script steps produce variable pills.

Trigger data pills

For a record-based trigger, the trigger produces a data pill for the record itself and one pill per field. These are available throughout the entire flow:

Trigger: Incident record
→ Trigger > Incident Record (full record reference)
→ Trigger > Incident Record > Number
→ Trigger > Incident Record > Assigned To
→ Trigger > Incident Record > Assigned To > Name (dot-walked)

Dot-walking in data pills

Data pills support dot-walking through reference fields. Click the expand arrow on a reference pill to access fields on the referenced record. This is equivalent to current.assigned_to.email in scripting.

Step output pills

Every action step and script step produces output pills you can consume in later steps:

Step: Look Up Record → Incident
→ outputs: Incident Record (the matched record, all fields available)

Flow variables

Flow variables persist across the entire flow execution and can be read and written by any step. Use them to accumulate values across loops or pass data between branches.

Create them: Flow properties → Flow Variables. Set them with the "Set Flow Variable" action.

Common data pill limitations

Limitation 1: Data pills from inside a For Each loop are only available inside that loop iteration — they do not persist after the loop ends. Use Flow Variables to accumulate loop results.

Limitation 2: Data pills are resolved at the time the step runs. If a referenced record was updated between steps, the pill still contains the value from when the record was fetched.

Limitation 3: You cannot use data pills in conditions directly — you need to transform them with Script steps or Action steps first if complex comparison logic is needed.

Script steps and data pills

Script steps can consume data pills as input variables and produce output variables as data pills:

// Script step inputs: record_number (String from data pill)
// Script step outputs: formatted_message (String)
var formatted_message = 'Incident ' + record_number + ' has been processed.';
outputs.formatted_message = formatted_message;

Want the complete reference?

This article is part of the NowSpectrum knowledge library. Browse all products for cheat sheets, interview prep, and deep-dive reference guides.

Browse All Products →