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.

1. Start Manual Trigger

Run the recipe by hand while testing.

2. Input Sample Support Email

Add sample customer and email fields in an Edit Fields node.

3. Draft Sample AI Draft

Add sample AI output and receipt fields in a second Edit Fields node.

4. Receipt HTTP Request

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.

FieldExample value
customer_nameJamie Example
customer_emailjamie@example.test
email_subjectQuestion about a duplicate charge
email_summaryCustomer says they were charged twice and asks how to get the duplicate charge reviewed.
support_prioritymedium

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.

FieldExample valueNotes
automation_nameSupport Reply DrafterName shown in Automation Receipts.
source_typen8nIdentifies the workflow source.
trigger_typesupport_email_receivedMatches the tested recipe.
statusneeds_reviewThe draft is waiting for a review outcome.
risk_levelmediumSupport replies affect customers.
model_usedsample-ai-draftUse a sample label until you add a live AI node.
ai_reply_summaryAI drafted a polite reply explaining that the team can review duplicate charges and asking for account confirmation.Summary only, not a full email.
final_actionDraft created but not sent.Be clear that no customer message was sent.
run_uidn8n-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_... and Content-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: true and approval_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

ProblemWhat it usually meansFix
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.

Related docs