Concepts / In-flow inference
In-flow inference
A flow can stop, compute something about this specific user, and carry on with the answer. The user sees their own result before they see a price — and everything downstream can read it.
A screen is easy to copy. A flow that computessomething is not, and that is the point of this step: a skin analysis from a selfie, a training plan built from a quiz, a level assessment from a recording. It runs on the server, on your own provider key, and its output lands in the flow's ordinary variable map.
It is a behaviour, not a new screen type
Inference attaches to an existing element as a behaviour rather than arriving as a thirteenth node type. That choice has one consequence worth knowing: because the result is written into the normal variable map, everything that already reads variables works with no change at all — {{interpolation}} in copy, visibility conditions, transitions and set: actions. An SDK too old to know about inference ignores the aspect and renders the flow rather than choking on an unknown type.
Capabilities
| image_analysis | A photo becomes structured attributes. |
| image_generation | A generated image, from the user's input. |
| text_generation | Written output — a plan, a summary, a recommendation. |
| text_classification | A label from free text or from earlier answers. |
| audio_analysis | A recording becomes structured attributes. |
What every inference step must declare
- Its outputs, as declared variables. A result cannot be written into a variable the flow did not declare.
- A fallback. Mandatory — a flow with no fallback does not pass validation, because a model that times out must not leave a user staring at a dead screen.
- A timeout and a cost cap. Per step, in micros, so one runaway call cannot become a bill.
- Consent, when the input is a photo or a recording. Required by the schema, not by convention.
Bring your own key
Inference runs on your provider credentials, held in the credential vault and never shown back to the dashboard after they are stored. If you do not supply a key, the capability is simply off and the rest of the product is unaffected — the same is true of App Store Connect and image-generation providers.
Cost per job is recorded, and you can see it in Settings → Inference alongside the jobs themselves.