Media (images, audio, video)
Analyze Image
Describe an image, list labels and objects, read its text, locate faces, check safety, or answer a question about it — optionally as named fields.
Analyze Image (media_analyze_image) looks at one image and returns what you ask for.
Inputs
AI provider (integration_id): one of the workspace's integrations made from a media-capable connector — see Provider setup. It is chosen in the designer (not an expression). The picker lists only connections that can do the step, and warns when the chosen provider cannot do a feature you picked.
Image (source): A file object (a form's Attachments field such as {{form.recording}}, or a file from another step), a list of files (the first is used), a storage:// reference, an http(s) URL (fetched through the egress guard) or base64 content. Files are read for the run's workspace only — the same rules as the document actions.
Options
| Setting | Key | Default | What it does |
|---|---|---|---|
| Find | features | ["description", "labels", "text"] | Any of description, labels, objects (with boxes), text (OCR), faces (boxes only), safety |
| Question or instruction | prompt | — | Answered in answer |
| Answer fields | fields | — | With a prompt: [{ "name", "type", "description" }] (type: string, number, boolean, array, object); the answer is then an object with these keys |
| Max labels / objects | max_results | 20 | |
| Model | model | the provider's default | |
| Output variable | output_var | image_analysis |
Outputs
| Variable | Contents |
|---|---|
{{image_analysis}} | description, labels and objects (name, confidence, box), text, ocr (lines with box and box_px), faces (box, box_px, confidence), face_count, safety (flagged, categories), answer, width, height, provider, model, cost |
{{image_analysis_description}} | The description |
{{image_analysis_text}} | Text found, lines joined |
{{image_analysis_labels}} | Label names |
{{image_analysis_answer}} | The answer to the prompt |
Boxes are fractions of the image (x, y, width, height from 0 to 1, origin top left); box_px is the same box in pixels.
Example
{
"type": "media_analyze_image",
"label": "Check photo",
"config": {
"integration_id": "<integration-id>",
"source": "{{form.photo}}",
"features": ["description", "text"],
"prompt": "Is there visible damage to the vehicle? Which part?",
"fields": [
{ "name": "damaged", "type": "boolean" },
{ "name": "part", "type": "string", "description": "bumper, door, windscreen…" }
]
}
}Branch on {{image_analysis_answer.damaged}} in a Condition.
Notes
- Not every provider has every feature — see the capability matrix. Faces are located, never identified.
- Images larger than the provider accepts are downsized before they are sent.