Template Syntax Reference
The ${string.x} placeholder syntax that turns any text field into a port.
Most text fields across Floah’s nodes , a URL, a GraphQL query, an HTTP header value, a gRPC request body , aren’t plain strings. They’re templates: plain text with typed placeholders embedded in it, and each placeholder automatically becomes an input port on the node.
Declaring a placeholder
Add a port named x by writing ${string.x}, ${number.x}, or ${bool.x} inside any template
field:
I need ${number.x} carrots.
This gives the node one input port, x, typed as a number. Any text around the placeholder is
kept as-is and the resolved value is substituted in at run time , so a URL field like:
https://${string.host}/api
gets one host input port, and resolves to something like https://api.example.com/api once
that port has a value.
A field can contain more than one placeholder , each distinct name becomes its own port. On nodes
with more than one template section (a Form Node with several fields, for instance), port names
are namespaced as <fieldName>.<var> so identically-named placeholders in different fields don’t
collide.
Pulling from environment variables
Source a placeholder from the workspace’s environment variables instead of wiring it to another node:
${env.x}
This reads x from the workspace’s default environment variable set , manage those from the
Explorer’s ⋯ menu → Environment Variables… (see Workspaces & Files).
Optional values
Add =default to a placeholder to make it optional, falling back to that default when nothing
else supplies a value:
${string.x=hello}
This is the exact syntax shown in the app’s own field tooltips , hover any template field for a reminder, with an example specific to that field.
Every node reference page under Node Reference calls out which of its fields are templates versus fixed enums/selects.