{
  "name": "AI Draft Review Queue (never auto-sends)",
  "nodes": [
    {
      "parameters": {
        "content": "## Setup\n1. Paste your OpenAI API key into the \"Draft Email with AI\" node.\n2. Paste a Slack incoming webhook URL into the \"Send to Review Queue\" node.\n3. POST {\"name\", \"company\", \"notes\"} (your research notes) to the Webhook URL.\n\nFrom Chapter 9: this workflow deliberately stops at Slack, not an email send. A human reads the draft, fact-checks it against the real notes, and sends it manually. Never wire the last node to an email-send API - that's the one habit the chapter says prevents almost every AI failure mode.",
        "height": 320,
        "width": 400
      },
      "id": "7c1d9e3b-2b22-4f3b-8d4b-000000000001",
      "name": "Setup Notes",
      "type": "n8n-nodes-base.stickyNote",
      "typeVersion": 1,
      "position": [-200, 60]
    },
    {
      "parameters": {
        "httpMethod": "POST",
        "path": "ai-draft-review-queue",
        "responseMode": "onReceived",
        "options": {}
      },
      "id": "7c1d9e3b-2b22-4f3b-8d4b-000000000002",
      "name": "Draft Request Webhook",
      "type": "n8n-nodes-base.webhook",
      "typeVersion": 2,
      "position": [-200, 400]
    },
    {
      "parameters": {
        "method": "POST",
        "url": "https://api.openai.com/v1/chat/completions",
        "sendHeaders": true,
        "headerParameters": {
          "parameters": [
            { "name": "Content-Type", "value": "application/json" },
            { "name": "Authorization", "value": "Bearer YOUR_OPENAI_API_KEY" }
          ]
        },
        "sendBody": true,
        "specifyBody": "json",
        "jsonBody": "={\n  \"model\": \"gpt-4o-mini\",\n  \"messages\": [\n    { \"role\": \"system\", \"content\": \"You draft short, honest four-part cold emails: a checkable observation, a problem hypothesis stated as a guess, a credible proof point, and one easy-exit question. No inflated claims. Under 120 words.\" },\n    { \"role\": \"user\", \"content\": \"Prospect: {{ $json.name }} at {{ $json.company }}. Research notes: {{ $json.notes }}\" }\n  ]\n}",
        "options": {}
      },
      "id": "7c1d9e3b-2b22-4f3b-8d4b-000000000003",
      "name": "Draft Email with AI",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [40, 400]
    },
    {
      "parameters": {
        "assignments": {
          "assignments": [
            { "name": "draft", "value": "={{ $json.choices[0].message.content }}", "type": "string" },
            { "name": "prospect", "value": "={{ $('Draft Request Webhook').item.json.name }} at {{ $('Draft Request Webhook').item.json.company }}", "type": "string" }
          ]
        },
        "options": {}
      },
      "id": "7c1d9e3b-2b22-4f3b-8d4b-000000000004",
      "name": "Extract Draft",
      "type": "n8n-nodes-base.set",
      "typeVersion": 3.4,
      "position": [280, 400]
    },
    {
      "parameters": {
        "method": "POST",
        "url": "YOUR_SLACK_INCOMING_WEBHOOK_URL",
        "sendBody": true,
        "bodyParameters": {
          "parameters": [
            { "name": "text", "value": "=New AI draft for review, {{ $json.prospect }}:\n\n{{ $json.draft }}\n\nRead it, fact-check it against the real notes, then send it yourself. Do not forward this unread." }
          ]
        },
        "options": {}
      },
      "id": "7c1d9e3b-2b22-4f3b-8d4b-000000000005",
      "name": "Send to Review Queue",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [520, 400]
    }
  ],
  "connections": {
    "Draft Request Webhook": { "main": [[{ "node": "Draft Email with AI", "type": "main", "index": 0 }]] },
    "Draft Email with AI": { "main": [[{ "node": "Extract Draft", "type": "main", "index": 0 }]] },
    "Extract Draft": { "main": [[{ "node": "Send to Review Queue", "type": "main", "index": 0 }]] }
  },
  "active": false,
  "settings": { "executionOrder": "v1" },
  "pinData": {}
}
