Run the recipe by hand while testing.
Recipe
Support Reply Drafter
Build an n8n recipe that logs a support reply draft to Automation Receipts.
Start with sample data
Start with sample data before connecting Gmail, real customer data, or a live AI node. That keeps the first run simple while you confirm the receipt flow works end to end.
Automation Receipts records what happened in the automation. It can record approval or review status, but approval can happen in Automation Receipts, n8n, Slack, email, another tool, or somewhere else.
Add sample customer and email fields in an Edit Fields node.
Add sample AI output and receipt fields in a second Edit Fields node.
POST the JSON body to Automation Receipts and open the created receipt.
Sample Support Email fields
Create an Edit Fields node named Sample Support Email. These values are strings and should be safe sample values.
| Field | Example value |
|---|---|
customer_name | Jamie Example |
customer_email | jamie@example.test |
email_subject | Question about a duplicate charge |
email_summary | Customer says they were charged twice and asks how to get the duplicate charge reviewed. |
support_priority | medium |
Sample AI Draft fields
Add a second Edit Fields node named Sample AI Draft. Most values are strings. Keep approval_required as a real JSON boolean in the final HTTP body.
| Field | Example value | Notes |
|---|---|---|
automation_name | Support Reply Drafter | Name shown in Automation Receipts. |
source_type | n8n | Identifies the workflow source. |
trigger_type | support_email_received | Matches the tested recipe. |
status | needs_review | The draft is waiting for a review outcome. |
risk_level | medium | Support replies affect customers. |
model_used | sample-ai-draft | Use a sample label until you add a live AI node. |
ai_reply_summary | AI drafted a polite reply explaining that the team can review duplicate charges and asking for account confirmation. | Summary only, not a full email. |
final_action | Draft created but not sent. | Be clear that no customer message was sent. |
run_uid | n8n-support-reply-{{$now.toMillis()}} | Use a dynamic value so each test creates a new receipt. |
HTTP Request settings
- Method
POST- URL
https://automationreceipts.com/api/v1/runs- Body type
- JSON
- Headers
Authorization: Bearer aar_live_...andContent-Type: application/json
Do not paste API keys into screenshots, chat, public docs, or shared examples.
n8n save notes
Depending on your n8n version and account, workflows may autosave. Some node panels do not show a separate Save button.
After editing a node, close the node panel and check that the workflow itself is saved or autosaved before running it again.
HTTP Request JSON body
Use this body in the HTTP Request node. Notice that approval_required is true, not "true".
{
"automation_name": "{{$json.automation_name}}",
"run_uid": "{{$json.run_uid}}",
"source_type": "{{$json.source_type}}",
"trigger_type": "{{$json.trigger_type}}",
"status": "{{$json.status}}",
"risk_level": "{{$json.risk_level}}",
"input_summary": "{{$json.email_summary}}",
"output_summary": "{{$json.ai_reply_summary}}",
"model_used": "{{$json.model_used}}",
"approval_required": true,
"approval_status": "pending",
"final_action": "{{$json.final_action}}",
"events": [
{
"event_type": "trigger_received",
"event_label": "Support email received",
"event_summary": "{{$json.customer_name}} sent a support email: {{$json.email_summary}}"
},
{
"event_type": "output_generated",
"event_label": "AI draft prepared",
"event_summary": "{{$json.ai_reply_summary}}"
},
{
"event_type": "approval_requested",
"event_label": "Review requested",
"event_summary": "The draft is waiting for a review outcome. Approval can be recorded in Automation Receipts or handled elsewhere."
}
]
}
What the receipt should show
- Automation
Support Reply Drafter- Source
n8n- Trigger
support_email_received- Status
needs_review- Risk
medium- Review
approval_required: trueandapproval_status: pending- Final action
Draft created but not sent.
Timeline
The receipt timeline should show three plain events:
- Support email received
- AI draft prepared
- Review requested
At this stage, the workflow has logged the draft. It has not sent an email, updated a real ticket, or approved anything by itself.
Troubleshooting
| Problem | What it usually means | Fix |
|---|---|---|
| 401 unauthorized | The Authorization header is missing, wrong, or uses a revoked key. |
Use Authorization: Bearer aar_live_... with the full active API key. Keep the key out of screenshots, chat, public docs, and shared examples. |
| 422 validation error | A required field is missing or a value is not allowed. | Check automation_name, run_uid, and at least one of input_summary or output_summary. Also check values such as source_type, status, and approval_status. |
Duplicate run_uid |
A receipt with that run ID already exists in the workspace. | Use a dynamic value such as n8n-support-reply-{{$now.toMillis()}}. Do not reuse a hardcoded ID. |
| Invalid JSON body | The HTTP Request body is not valid JSON. | Use JSON body mode and check commas, quotes, brackets, and n8n expressions that may output blank text. |
| Boolean values sent as strings | approval_required was sent as "true" instead of true. |
Send "approval_required": true in the final JSON body, without quotes around true. |