Sight Intake lets workflows start from everyday media — delivery photos, invoices, receipts, screenshots, and voice notes — then extract structured fields, optionally pause for a human when unsure, and leave a proof package on the execution.
The loop: See → Do → Prove
- See — A photo or voice note arrives from Telegram, WhatsApp, chat, or another trigger as
inputs.imageUrl/inputs.audioUrl(dynamic at run time, not a file the workflow author uploads). - Do — An AI node reads the media (vision and/or transcription), fills structured fields, and the rest of the canvas stores or acts on that data (Sheets, databases, HTTP, messaging — wherever you choose).
- Prove — The finished run stores a proof package on the execution (what was seen, extracted, and done), visible in Execution History. Team+ workspaces can create a shareable proof link.
Media on the AI node
Open the AI node → Media:
| Control | What it does |
|---|---|
| Voice / audio | Transcribes {{inputs.audioUrl}} and exposes {{transcription}} in the prompt |
| Image / photo | Downloads {{inputs.imageUrl}} and sends it to vision-capable providers (OpenAI, Anthropic, Gemini) |
| Pause when review needed | If structured output sets needsHumanReview, the run pauses for approval |
| Keep media longer | Keeps original media for audits; by default large media is not retained forever |
Use a vision-capable model. Groq and Perplexity cannot read images.
Dynamic extraction presets
On the AI node’s Structured output attachment, apply a Sight preset:
- Invoice — vendor, totals, dates, line items + confidence
- Receipt — merchant, total, items + confidence
- Delivery photo — order ref, signature visible, notes + confidence
Presets are field checklists and prompt hints for whatever image arrives. They are not fixed sample uploads. Store extracted values with normal Action nodes wherever you want.
Every preset includes:
confidence(0–1)needsHumanReview(boolean)reviewReason(optional string)
Channels
| Channel | Image | Voice |
|---|---|---|
| Telegram | inputs.imageUrl when bot token is set | inputs.audioUrl |
| WhatsApp Business | inputs.imageUrl when access token is set | inputs.audioUrl |
| Website chat / Chat trigger | Pass optional imageUrl / audioUrl in the POST body | Same |
| Generic webhook | Put a URL (or data URL) in the payload and map it in Media | Same |
Proof packages and share links
Successful runs attach output.proof with a short summary of what was seen and extracted.
- In-app: open the run in Execution History
- Share link (Team / Business and above):
POST /api/v1/workflows/{workflowId}/executions/{executionId}/proof-share, then openGET /api/v1/proof/{token}
Free and Pro keep proof inside the app only. Media retention stays short unless Keep media longer is on.
Suggested canvas
Start (Telegram / WhatsApp photo)
→ AI (Media: photo + Invoice/Receipt/Delivery structured output)
→ Condition (needsHumanReview)
→ Approval (optional) / or rely on AI “Pause when review needed”
→ Action (Sheets, DB, Slack, …)
Related
- AI Agent Node — providers, prompts, agent mode
- Execution — history, replay, debugging
- Approval — human-in-the-loop pauses