This article explains how the {variable} picker works in Flow — where it appears, what it discovers, and how to spot and fix fields that will render blank at run time.
What the picker does
Every text field inside a Create Image, Create Editable Image, or Create Team Photo step accepts a mix of plain text and variables — placeholders in curly braces, such as {Player First} or {Session}. At run time, the flow replaces each placeholder with that photo's data before producing the image.
The {variable} picker is the button at the right edge of each text field (a braces icon — { }). It opens a small menu listing every variable that is available to the current step, sorted alphabetically. Each entry shows a friendly, human-readable label — for example, Team Name or Jersey Number — with the raw token (such as {teamName}) beside it. Selecting a variable inserts the raw token at the cursor position, so what lands in the field always matches the incoming data and you never have to type braces by hand. The same friendly labels appear in field dropdowns elsewhere in Flow, such as a Text step's input field.
Where the picker appears
The picker appears on every text field in a create step's config panel, including:
- Each dynamic text field on the selected template (for example, Player Name, Jersey Number, Team)
- Design name — the name given to each new Studio design (Create Editable Image and Create Team Photo steps only)
- Folder — the Studio folder path where new designs are placed
The picker is hidden only when no variables are available to the step at all. If your organization has a connection set up, that rarely happens — fields are preloaded before the flow has ever run (see Preloaded fields from a connection below). Without a connection, the picker stays hidden until you add a CSV or define webhook fields on the start step.
Where variables come from
The picker discovers variables automatically from sources upstream of the current step:
CSV columns on the Photos step
When you upload a CSV on the Photos step, each column heading (other than filename) becomes a variable. For example, a CSV with columns filename, Player First, Player Last, and Team makes three variables available: {Player First}, {Player Last}, and {Team}. The CSV is matched to each photo by its filename, so every photo in the run gets its own row's values.
A sample CSV is available from the Photos step — click Download sample CSV to get a starter file with the expected format.
Webhook fields on the Photos step
When the flow uses a Webhook trigger instead of manual upload, the field names you declare on the start step (for example, Player First, Jersey) become the same variables. The external system that calls the webhook sends those values alongside the photo.
Preloaded fields from a connection
If your organization receives photos through a connection, the picker is stocked before the flow has ever run, so you can wire up every text field before the first photo arrives:
- Fields seen in recent deliveries routed to this flow appear automatically — including deliveries that failed to launch, so a flow you are still building already knows its incoming fields.
- When the connected system is GFITpro, its standard fields — Team Name, Jersey Number, First Name, and the rest — are preloaded before anything has been sent at all.
Text step outputs
A Text step transforms an existing variable into a new one — for example, splitting a long event string on a delimiter to extract just the session label, then naming the output Session. Any Text step that is connected upstream of the current create step adds its Output field name to the picker. For example, if a Text step has its output field set to Session, downstream steps see {Session} in the picker.
Variables are order-aware: the picker only shows what is reachable along the path from the start step to the current step. A Text step that branches off a different path is not listed.
Auto-mapping
When you first choose a template on a create step, the flow checks whether any of the template's text fields share a name with an upstream variable (case-insensitive). If a match is found, that field is seeded automatically — for example, a template field named Player First is pre-filled with {Player First} if the CSV has a column by that name. You can change or clear any auto-mapped value.
Warnings
Two kinds of warnings appear in the config panel to alert you before you run the flow:
Unknown variable
If a field contains a {token} that does not match any column in the CSV or any upstream Text step output, a warning appears beneath that field:
{Session} isn't in your CSV — it will be blank.
This means the variable will resolve to an empty string at run time, and the template's placeholder text will show instead. To fix it, either add the missing column to your CSV, define a Text step that produces that variable, or replace the token with a fixed value.
Unfilled field
If a create step has a text field with no value at all — no literal text and no variable — an amber warning appears at the top of the Text fields section:
"Player Name" has no value — set text or a variable, or the template's placeholder shows in the output.
Fields that are intentionally left blank (for example, an optional subtitle) do not need a value. If a field should always be filled, either type a fixed value or insert a variable from the picker.
Combining literal text and variables
You can mix free text and variables in the same field. For example, a Design name field might contain:
{Player First} {Player Last} — {Team}
This produces a name like Alex Morgan — Diamonds for each photo. Any text outside the braces is used as-is.
Comments
0 comments
Article is closed for comments.