{
 "id": "quoterequesttopd",
 "name": "AutomateRecipes \u2013 quote-request-to-pdf",
 "nodes": [
  {
   "parameters": {},
   "name": "Manual Trigger",
   "type": "n8n-nodes-base.manualTrigger",
   "typeVersion": 1,
   "position": [
    0,
    0
   ],
   "id": "5ebbd175-92af-419f-ad89-b47bccb130b1"
  },
  {
   "parameters": {
    "jsCode": "return [{json:{name:'Khalid',service:'AC repair',rooms:3}}];"
   },
   "type": "n8n-nodes-base.code",
   "typeVersion": 2,
   "name": "S1",
   "position": [
    220,
    0
   ],
   "id": "a200769c-b460-4d97-9216-43d95844520c"
  },
  {
   "parameters": {
    "jsCode": "const q=$input.first().json;const doc=`Quote for ${q.name}: ${q.service}, ${q.rooms} rooms, est. ${q.rooms*150} SAR`;return [{json:{service:'docs/fromTemplate',payload:{text:doc}}}];"
   },
   "type": "n8n-nodes-base.code",
   "typeVersion": 2,
   "name": "S2",
   "position": [
    440,
    0
   ],
   "id": "c42a2d07-e275-4c18-b1f9-25a5fee07871"
  },
  {
   "parameters": {
    "method": "POST",
    "url": "=http://127.0.0.1:9000/{{ $json.service }}",
    "sendBody": true,
    "specifyBody": "json",
    "jsonBody": "={{ JSON.stringify($json.payload) }}",
    "options": {}
   },
   "type": "n8n-nodes-base.httpRequest",
   "typeVersion": 4.2,
   "name": "S3 POST mock (send)",
   "position": [
    660,
    0
   ],
   "id": "b228eb0f-730f-474d-a86a-d37a9b0859eb"
  },
  {
   "parameters": {
    "jsCode": "return [{json:{service:'gmail/drafts',payload:{to:'owner@biz.test',subject:'Draft quote - check before sending',pdf:'mock-id'}}}];"
   },
   "type": "n8n-nodes-base.code",
   "typeVersion": 2,
   "name": "S4",
   "position": [
    880,
    0
   ],
   "id": "3ca1aca5-b3e6-415b-bd72-d1e15337a2e3"
  },
  {
   "parameters": {
    "method": "POST",
    "url": "=http://127.0.0.1:9000/{{ $json.service }}",
    "sendBody": true,
    "specifyBody": "json",
    "jsonBody": "={{ JSON.stringify($json.payload) }}",
    "options": {}
   },
   "type": "n8n-nodes-base.httpRequest",
   "typeVersion": 4.2,
   "name": "S5 POST mock (send)",
   "position": [
    1100,
    0
   ],
   "id": "cb4430dc-fba1-46d4-926a-8c4bfb5caba4"
  }
 ],
 "connections": {
  "Manual Trigger": {
   "main": [
    [
     {
      "node": "S1",
      "type": "main",
      "index": 0
     }
    ]
   ]
  },
  "S1": {
   "main": [
    [
     {
      "node": "S2",
      "type": "main",
      "index": 0
     }
    ]
   ]
  },
  "S2": {
   "main": [
    [
     {
      "node": "S3 POST mock (send)",
      "type": "main",
      "index": 0
     }
    ]
   ]
  },
  "S3 POST mock (send)": {
   "main": [
    [
     {
      "node": "S4",
      "type": "main",
      "index": 0
     }
    ]
   ]
  },
  "S4": {
   "main": [
    [
     {
      "node": "S5 POST mock (send)",
      "type": "main",
      "index": 0
     }
    ]
   ]
  }
 },
 "settings": {},
 "active": false,
 "pinData": {},
 "meta": {
  "note": "Tested on n8n 1.70.3 with local mocks for: Typeform response, Google Docs template, Drive PDF export, Gmail draft to owner. Replace 'POST mock'/'GET mock' HTTP nodes with the real app nodes + credentials before production."
 }
}