Skip to main content

Reference

Payload fields

Use these fields to create readable receipts for workflow runs, scripts, cron jobs, internal tools, and AI-assisted automations.

JSON reference

Write for the person reading the receipt

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

Quick example

This is a compact create-run payload for POST https://automationreceipts.com/api/v1/runs. For a full request example, start with the quickstart.

Create-run payload

{
  "automation_name": "Support Reply Drafter",
  "run_uid": "support-demo-20260517-1042",
  "source_type": "n8n",
  "status": "needs_review",
  "risk_level": "medium",
  "input_summary": "Customer asked about refund options.",
  "output_summary": "Workflow drafted a reply for review.",
  "approval_required": true,
  "approval_status": "pending",
  "callback_url": "https://example.com/review-result",
  "final_action": "Draft created but not sent."
}

Required fields

Field Type Description Example
automation_name string Name of the workflow, job, or script. If it does not exist yet, the app creates it. Support Reply Drafter
run_uid string 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 string Send at least one summary so the receipt has something useful to explain. Customer asked about refund options.

Optional run fields

Optional fields make the receipt easier to scan, filter, and review. Omit fields that do not apply to your workflow.

Field Type Description
source_typestringWhere the run came from. Defaults to custom.
trigger_typestringA short label for what started the run, such as new_support_email or scheduled_cron.
statusstringCurrent run state. Defaults to completed.
risk_levelstringHow risky the automation output is. Defaults to medium.
model_usedstringModel name, if useful for the receipt or debugging.
tools_usedstringTools, APIs, models, or data sources used during the run.
approval_requiredbooleanUse true when the output should wait for a recorded review outcome.
approval_statusstringRecorded review state. Defaults to pending when review is requested, otherwise not_required.
approved_by_namestringName of the reviewer, if it was already reviewed before logging.
callback_urlstringOptional URL that accepts a POST request after a human records a review action in Automation Receipts.
final_actionstringWhat happened next, such as draft held, email sent, ticket updated, or no action taken.
error_summarystringShort explanation when the run failed.
started_atdatetimeWhen the run started. Any parseable date-time string is accepted.
completed_atdatetimeWhen the run completed. Any parseable date-time string is accepted.
eventsarrayUp to 50 timeline entries to show what happened during the run. Extra items in the create-run events array are ignored.

Send booleans as real JSON booleans

Send false as false, not "false". The string "false" may be treated as truthy by the API and can make approval look required.

Review result callbacks

Add callback_url only when the workflow that created the receipt should receive a review result later. When a person records a review action in Automation Receipts, the review is saved first. Automation Receipts then POSTs a small review result payload to the callback URL.

Callback payload

{
  "source": "automation_receipts",
  "run_uid": "support-demo-20260517-1042",
  "automation_name": "Support Reply Drafter",
  "review_status": "approved",
  "review_note": "Looks good.",
  "reviewed_at": "2026-05-27T10:30:00+12:00",
  "receipt_url": "https://automationreceipts.com/runs/123"
}

Callbacks are optional

The callback payload does not include input summaries, output summaries, API keys, user email, or the full receipt by default. If callback delivery fails, the saved review is not undone; the receipt records the callback status for follow-up.

Events

Events build the receipt timeline. Send them in the events array when creating a run, or append one later to /api/v1/runs/{run_uid}/events. The append-event URL uses run_uid, not numeric run_id.

Event payload

{
  "event_type": "action_taken",
  "event_label": "Reply sent",
  "event_summary": "The approved reply was sent to the customer.",
  "occurred_at": "2026-05-17T10:45:00+12:00"
}
Field Type Description
event_typestringTimeline category. Defaults to note. Unknown values are recorded as note.
event_labelstringShort human-readable label. If omitted, the app derives one from event_type.
event_summarystringOne or two sentences about what happened.
event_payload_jsonobjectOptional structured details. Keep this small and avoid private payloads.
occurred_atdatetimeWhen the event happened. Any parseable date-time string is accepted.

Common values

Run 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, ifttt, stackai, zapier, custom_script, manual, other, custom

Field guidance

Unique run IDs

Use a workflow execution ID, timestamp, UUID, or another dynamic value for run_uid. Reusing a run_uid in the same workspace returns a duplicate response.

Approval is optional

Automation Receipts can record a review outcome, but approval may happen in the app, your workflow tool, chat, email, or not be required at all.

Readable summaries

Use input_summary, output_summary, and final_action to explain what happened without dumping unnecessary private data.

Event types

Use documented event types for clearer timelines. Missing labels can be generated, and unknown event types are recorded as note.

Allowed event types

trigger_received model_called tool_called data_accessed output_generated approval_requested approved rejected action_taken callback_delivered callback_failed failed note

Request limits and responses

Request bodies over 131072 bytes are rejected. When creating a run, the events array is capped to 50 items.

Status Meaning What to check
400Valid JSON object required.Send a JSON object body with valid syntax.
401Missing, invalid, or revoked bearer token.Use Authorization: Bearer aar_live_... with the full active API key.
404Run not found when appending events.Use the original run_uid, not numeric run_id.
409Duplicate run_uid.Generate a new unique run_uid for each run in the workspace.
413Payload too large.Keep the JSON request body at or below 131072 bytes.
422Validation error or missing fields.Check required fields and allowed values.

Next steps