Reference

Payload fields

Every field the run API accepts, in plain language.

Privacy first

Send summaries by default. A good receipt explains what happened without storing full customer messages, private files, secrets, API keys, or raw model payloads.

Start with sample data before connecting real customer data. Do not paste API keys into screenshots, chat, public docs, or shared examples.

Required fields

FieldPlain meaningExample
automation_name Name of the automation that ran. If it does not exist yet, the app creates it. Support Reply Drafter
run_uid Your unique ID for this run. The same workspace cannot reuse it, so use a dynamic workflow value. n8n-{{$execution.id}}
input_summary or output_summary Send at least one summary so the receipt has something useful to explain. Customer asked about refund options.

Run fields

FieldRequiredPlain meaning
automation_nameYesName of the workflow, job, or script.
run_uidYesA unique ID from your platform or script.
source_typeNoWhere the run came from. Defaults to custom.
trigger_typeNoA short label for what started the run, such as new_support_email or scheduled_cron.
statusNoCurrent run state. Defaults to completed.
risk_levelNoHow risky the automation output is. Defaults to medium.
input_summaryOne summary requiredShort summary of the trigger or input.
output_summaryOne summary requiredShort summary of what the AI produced.
model_usedNoModel name, if useful for audit or debugging.
tools_usedNoTools, APIs, or data sources the AI used.
approval_requiredNoBoolean. Use true when the output should wait for a recorded review outcome. Send a real JSON boolean, not the string "true" or "false".
approval_statusNoRecorded review state. Defaults to pending when review is requested, otherwise not_required.
approved_by_nameNoName of the reviewer, if it was already reviewed before logging.
final_actionNoWhat happened next, such as draft held, email sent, ticket updated, or no action taken.
error_summaryNoShort explanation when the run failed.
started_atNoWhen the run started. Any parseable date-time string is accepted.
completed_atNoWhen the run completed. Any parseable date-time string is accepted.
eventsNoUp to 50 timeline entries to show what happened during the run.

Allowed run values

status
pending, needs_review, approved, rejected, completed, failed, cancelled
risk_level
low, medium, high, unknown
approval_status
not_required, pending, approved, rejected, needs_changes
source_type
n8n, make, zapier, custom_script, manual, other, custom

Common choices

Use needs_review with approval_required: true and approval_status: pending when AI drafts something that should wait for review.

Use completed with approval_required: false and approval_status: not_required for runs that do not need a recorded review outcome.

Automation Receipts can record the review outcome, but approval can happen in Automation Receipts, your workflow tool, chat, email, or somewhere else.

Use failed and include error_summary when the automation could not finish.

Event fields

Events build the receipt timeline. You can send them in the events array when creating a run, or append one later to /api/v1/runs/{run_uid}/events.

FieldRequiredPlain meaning
event_typeNoTimeline category. Defaults to note.
event_labelNoShort human-readable label. If omitted, the app derives one from event_type.
event_summaryNoOne or two sentences about what happened.
event_payload_jsonNoOptional structured details. Keep this small and avoid private payloads.
occurred_atNoWhen the event happened. Any parseable date-time string is accepted.

Allowed event_type values

trigger_received, model_called, tool_called, data_accessed, output_generated, approval_requested, approved, rejected, action_taken, failed, note

Related docs