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.
Open the picker from the keyboard
You can fill a token field without reaching for the mouse. Type / as the first character of an empty field and the same variable list opens under the field, headed Insert variable — keep typing to filter.
- Keep typing to narrow the list. Your text is matched against both the friendly label and the raw token, so
/main eventand/maineventboth reach{mainEventCode}. Entries that start with what you typed are listed first. - Use the up and down arrow keys to move the highlight.
- Press Enter (or Tab) to insert the highlighted variable. The
/and everything you typed after it are replaced by the token, and the cursor lands after it. - Press Escape to dismiss the menu. The literal
/you typed stays in the field, and the step's config panel stays open.
The scoping is deliberate, because / is a real character in these fields — a Folder path uses it to make sub-folders. Only a / at the very head of the field arms the menu. A / typed anywhere else is an ordinary character, and a space or a second / ends the run and closes the menu. A folder path such as {mainEvent}_MainEvent/Panos is never hijacked.
The shortcut is available wherever the { } button is. If the step has no variables available at all, neither the button nor the shortcut appears.
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.
A few of those field names were given clearer spellings: {event} is now {mainEventName}, {mainEvent} is now {mainEventCode}, and {filenameNoExt} is now {sourceFilename}. Both spellings keep resolving, so any {token} already saved in a flow still works and nothing needs re-authoring. The picker offers one entry per field rather than two identically-labelled entries you'd have nothing to choose between — new work gets the canonical name.
Run-time colors on the Photos step
Colors declared as Run-time colors on the Photos step appear in the picker as ordinary variables. A color labelled Team color becomes {teamColor}, and you can use it anywhere a token works — a Create step's Colors section, a text field, a design name, or a folder path. See Flow step reference for how to declare one.
Text step outputs
A Text step transforms an existing variable into a new one — for example, splitting 12U - Blue Angles on the dash and keeping the second part to get just Blue Angles, then naming the output split_teamname. Any Text step that is connected upstream of the current create step adds its Output field name to the picker, and the panel spells the token out for you: Use it downstream as {split_teamname}.
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.
See what a variable will produce
Once a field contains a token, a preview line appears beneath it in the config panel showing what that field resolves to, using a real value taken from the flow's recent deliveries. A Design name reading {Player First} {Player Last} — {Team} previews as Alex Morgan — Diamonds, so you can confirm a token is the one you meant before running anything.
Only tokens the flow has actually seen a value for are filled in; a field whose tokens have never arrived in a delivery shows no preview.
Example values are shown to owners and admins only. Deliveries can carry other people's personal details — a parent's phone number, a player's name — so a Designer sees every field name and label (the picker would be unusable without them) but no sample values, and the preview line simply doesn't appear.
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 notice appears at the top of the Fields from the template section. One blank field is named on its own:
“Player Name” is blank — the template’s own text prints on the design.
Several are counted and then listed:
3 fields are blank — the template’s own text prints on the design for Player name, Team name, Jersey.
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.