{
  "name": "Automate QuickBooks customer & estimate creation from Google Sheets",
  "nodes": [
    {
      "id": "4cf9b22e-5514-4e34-9cb3-ed66411e6de0",
      "name": "Set - normalize fields",
      "type": "n8n-nodes-base.set",
      "position": [
        540,
        980
      ]
    },
    {
      "id": "bd6f49f4-27ec-4a52-afe3-453863d0a785",
      "name": "QuickBooks - Find Customer",
      "type": "n8n-nodes-base.quickbooks",
      "position": [
        1020,
        980
      ]
    },
    {
      "id": "82e53cdc-6e3b-4df0-8f05-8b5802d97d69",
      "name": "IF - Customer exists?",
      "type": "n8n-nodes-base.if",
      "position": [
        1460,
        980
      ]
    },
    {
      "id": "8631ac1c-94a8-47a4-bc7d-601b55c4e388",
      "name": "QuickBooks - Create Customer (NEW)",
      "type": "n8n-nodes-base.quickbooks",
      "position": [
        1960,
        640
      ]
    },
    {
      "id": "52f890dd-8f40-4e8d-abd6-ae844a01f97d",
      "name": "No-op (end)",
      "type": "n8n-nodes-base.noOp",
      "position": [
        3300,
        1000
      ]
    },
    {
      "id": "f98ee27a-73e2-4625-92f0-18fd2969760f",
      "name": "Google Sheets Trigger",
      "type": "n8n-nodes-base.googleSheetsTrigger",
      "position": [
        100,
        980
      ]
    },
    {
      "id": "8addc4c1-0f40-4e07-83fe-f11ae9706069",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -80,
        640
      ],
      "parameters": {
        "width": 440,
        "height": 320,
        "content": "### Step 1: Google Sheet Trigger 📊⚡\n\nThis node listens for new rows appended to a Google Sheet and triggers the workflow each time a new entry is added.\n\nWhy this step is important:\n\n- ⏰ Automatically"
      }
    },
    {
      "id": "9a2cd2c2-2d58-4a82-8187-937d96f7a6bc",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        380,
        1140
      ],
      "parameters": {
        "width": 480,
        "height": 300,
        "content": "### Step 2: Data Formatter (Set Node) 🛠️📋\n\nThis node formats and organizes the raw data from the Google Sheet into clean, usable variables for the workflow.\n\nWhy this step is important:\n\n- 🧹 Cleans an"
      }
    },
    {
      "id": "31fe85c1-e5e0-458c-9493-114ac37eb07f",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        800,
        640
      ],
      "parameters": {
        "width": 560,
        "height": 300,
        "content": "### Step 3: Find Customer in QuickBooks 🔍👤\n\nThis node uses the **Find Customer** operation to check if a customer already exists in QuickBooks based on the name.\n\nWhy this step is important:\n\n- ✅ Avoi"
      }
    },
    {
      "id": "532ad17a-c3a3-411d-94a6-23c68639644d",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1280,
        1140
      ],
      "parameters": {
        "width": 560,
        "height": 360,
        "content": "### Step 4: Customer Existence Check (If Node) ❓✅❌\n\nThis node evaluates whether the customer exists based on the previous **Find Customer** step.\n\n- **True:** Customer does **not** exist in QuickBooks"
      }
    },
    {
      "id": "75bb775b-9f42-4502-b656-f155d4deee91",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1740,
        300
      ],
      "parameters": {
        "width": 540,
        "height": 300,
        "content": "### Step 5: Create New Customer in QuickBooks ➕👤\n\nThis node uses the **Create Customer** operation to add a new customer to QuickBooks when they don’t already exist.\n\nWhy this step is important:\n\n- 🆕 "
      }
    },
    {
      "id": "fb2a8680-92e8-4a86-ba7c-c93a85a0c232",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        3140,
        1180
      ],
      "parameters": {
        "width": 480,
        "height": 280,
        "content": "### Step 7: No-Op Node 🛑✨\n\nThis node acts as a **no operation** step to gracefully conclude the workflow without performing any action.\n\nWhy this step is important:\n\n- 🛡️ Ensures a smooth and clean wo"
      }
    },
    {
      "id": "26f5e203-a313-4bcc-a7db-dcaaf10ce0fa",
      "name": "Sticky Note6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -80,
        300
      ],
      "parameters": {
        "width": 400,
        "height": 220,
        "content": "### Prerequisites ⚙️🔗\n\n- Connect your **Google OAuth2** credentials with both **Google Sheets** and **Google Drive** enabled.\n- Connect your **QuickBooks OAuth2** credentials.\n\nThese connections ensur"
      }
    },
    {
      "id": "242b1395-cbd2-414f-bccf-ab1a8921778b",
      "name": "Create an estimate",
      "type": "n8n-nodes-base.quickbooks",
      "position": [
        2860,
        640
      ]
    },
    {
      "id": "6fe76106-1236-41ec-96c0-f94eec48cce8",
      "name": "Sticky Note7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2580,
        340
      ],
      "parameters": {
        "width": 580,
        "height": 280,
        "content": "### Step 6: Create Estimate in QuickBooks 🧾✨\n\nThis node uses the **Create Estimate** operation to generate an estimate in QuickBooks based on the data from the Google Sheet.\n\nWhy this step is importan"
      }
    },
    {
      "id": "d02e5da2-204e-4461-bec0-815f13ab7b6e",
      "name": "Sticky Note8",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        3820,
        940
      ],
      "parameters": {
        "width": 520,
        "height": 340,
        "content": "### Get in Touch\n\nPlease feel free to reachout to us, if you need any help in settin up this workflow.\n\nWe can also help customize workflow pet the use-case. \n\nReach out us at: getstarted@intuz.com\n\nW"
      }
    }
  ],
  "connections": {
    "Create an estimate": {
      "main": [
        [
          {
            "node": "No-op (end)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Google Sheets Trigger": {
      "main": [
        [
          {
            "node": "Set - normalize fields",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "IF - Customer exists?": {
      "main": [
        [
          {
            "node": "QuickBooks - Create Customer (NEW)",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "No-op (end)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Set - normalize fields": {
      "main": [
        [
          {
            "node": "QuickBooks - Find Customer",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "QuickBooks - Find Customer": {
      "main": [
        [
          {
            "node": "IF - Customer exists?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "QuickBooks - Create Customer (NEW)": {
      "main": [
        [
          {
            "node": "Create an estimate",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}