Automatisation des factures QuickBooks vers Google Sheets

Intermédiaire

Ceci est unInvoice Processing, Multimodal AIworkflow d'automatisation du domainecontenant 10 nœuds.Utilise principalement des nœuds comme Code, Webhook, Quickbooks, GoogleSheets. Automatisation de la synchronisation en temps réel des factures QuickBooks vers Google Sheets

Prérequis
  • Point de terminaison HTTP Webhook (généré automatiquement par n8n)
  • Informations d'identification Google Sheets API
Aperçu du workflow
Visualisation des connexions entre les nœuds, avec support du zoom et du déplacement
Exporter le workflow
Copiez la configuration JSON suivante dans n8n pour importer et utiliser ce workflow
{
  "id": "4gzrrLiXlAZrOodq",
  "meta": {
    "instanceId": "1a54c41d9050a8f1fa6f74ca858828ad9fb97b9fafa3e9760e576171c531a787"
  },
  "name": "Quickbooks Invoice to Google Sheet Automation",
  "tags": [],
  "nodes": [
    {
      "id": "a10919bd-1940-4f81-8c7f-44725a12b7e1",
      "name": "QuickBooks Webhook",
      "type": "n8n-nodes-base.webhook",
      "position": [
        260,
        1100
      ],
      "webhookId": "{YOUR_WEBHOOK_ID}",
      "parameters": {
        "path": "quickbooks-invoice",
        "options": {},
        "httpMethod": "POST"
      },
      "typeVersion": 1
    },
    {
      "id": "73b985b5-5984-4c30-9113-3238e0bca12f",
      "name": "Code",
      "type": "n8n-nodes-base.code",
      "position": [
        1440,
        1100
      ],
      "parameters": {
        "jsCode": "return items.map(item => {\n  return {\n    json: {\n      ID: item.json.Id,\n      Domain: item.json.domain,\n      \"Customer Name\": item.json.CustomerRef?.name || \"\",\n      \"Due Date\": item.json.DueDate || \"\"\n    }\n  };\n});\n"
      },
      "typeVersion": 2
    },
    {
      "id": "621a872a-3622-4bd2-8a92-fc2947132359",
      "name": "Obtenir une facture",
      "type": "n8n-nodes-base.quickbooks",
      "position": [
        880,
        1100
      ],
      "parameters": {
        "resource": "invoice",
        "invoiceId": "={{ $json.body.eventNotifications[0].dataChangeEvent.entities[0].id }}"
      },
      "typeVersion": 1
    },
    {
      "id": "61c0a129-a49e-407d-8d26-57f999333558",
      "name": "Ajouter ou mettre à jour une ligne dans la feuille",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        2100,
        1100
      ],
      "parameters": {
        "columns": {
          "value": {},
          "schema": [
            {
              "id": "ID",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "ID",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Domain",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Domain",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "autoMapInputData",
          "matchingColumns": [
            "ID"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "appendOrUpdate",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "{YOUR_SHEET_ID}",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/{YOUR_GOOGLE_DOCUMENT_ID}/edit#gid=0",
          "cachedResultName": "quickbooks"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "{YOUR_GOOGLE_DOCUMENT_ID}",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/{YOUR_GOOGLE_DOCUMENT_ID}/edit?usp=drivesdk",
          "cachedResultName": "quickbooks"
        }
      },
      "typeVersion": 4.6
    },
    {
      "id": "bd74fe13-f6d2-40e6-a310-f70ba77901cd",
      "name": "Note adhésive",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        0,
        560
      ],
      "parameters": {
        "color": 3,
        "width": 480,
        "height": 500,
        "content": "## 🛠️ Prerequisites\n\nBefore running this workflow, make sure the following are set up:\n\n1. **QuickBooks Webhook Configuration**  \n   - Connect the **production URL** of your webhook to the **Intuit Developer Portal** for your specific company.  \n   - Ensure **Invoice** events are subscribed and activated (e.g., create, update, delete).\n\n2. **Google Account Integration**  \n   - Connect your **Google Client Credentials**.  \n   - Enable the following APIs:  \n     - 📄 Google Sheets \n     - 📂 Google Drive \n\nOnce these are in place, your workflow will seamlessly capture and log every invoice change in real time. 🚀📊\n"
      },
      "typeVersion": 1
    },
    {
      "id": "9cef3279-b6d3-4afc-b87f-c6d5af317ae5",
      "name": "Note adhésive1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        60,
        1240
      ],
      "parameters": {
        "width": 480,
        "height": 340,
        "content": "### Step 1: Webhook Trigger Activated! 🪝📢\n\nThis node is the **starting point** of the workflow.\n\nIt listens for **invoice changes in QuickBooks**\n\nWhat it does:\n\n- 📡 Captures the event in real time from QuickBooks.\n- 📦 Passes the invoice data into the workflow instantly.\n- 🔄 Eliminates the need for manual checks or periodic polling.\n"
      },
      "typeVersion": 1
    },
    {
      "id": "1bf6a99b-e913-462c-8484-a53ec4e60acd",
      "name": "Note adhésive2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        700,
        660
      ],
      "parameters": {
        "color": 5,
        "width": 480,
        "height": 400,
        "content": "### Step 2: Invoice Data Fetcher 📄🔍\n\nThis node uses the **Get an Invoice** operation to pull full details of the invoice from QuickBooks.\n\nWhy this step is important:\n\n- ✅ Retrieves complete and up-to-date invoice information.\n- 📊 Captures fields like invoice number, date, customer.\n- 🧾 Ensures the Google Sheet reflects the exact state of the invoice at the moment of the event.\n\nIt’s the step that turns a simple event notification into a fully detailed record. 📥✨\n"
      },
      "typeVersion": 1
    },
    {
      "id": "e7356f43-b3d8-428f-9113-457e1bd9090c",
      "name": "Note adhésive3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1260,
        1240
      ],
      "parameters": {
        "color": 3,
        "width": 440,
        "height": 380,
        "content": "### Step 3: JSON Formatter 🛠️📦\n\nThis **Code** node takes the raw invoice data from QuickBooks and formats it into a clean, structured JSON object—ready to be appended to Google Sheets.\n\nWhat it does:\n\n- 🧹 Extracts only the necessary fields (e.g., id, domain, Customer Name, Due Date).\n- 🔄 Converts the data into the correct order and structure for the sheet.\n- 📐 Ensures consistent formatting so every row in the sheet stays organized.\n\n"
      },
      "typeVersion": 1
    },
    {
      "id": "c7891c9d-6699-470f-8ef7-f6ce21e01548",
      "name": "Note adhésive4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1900,
        600
      ],
      "parameters": {
        "color": 6,
        "width": 520,
        "height": 460,
        "content": "### Step 4: Google Sheet Append📄➕\n\nThis node appends the **formatted invoice data** into your Google Sheet.\n\nImportant:  \n✅ Ensure your Google Sheet columns are named exactly as follows:  \n- **ID**  \n- **Domain**  \n- **Customer Name**  \n- **Due Date**\n\nWhat this step does:\n\n- 📥 Inserts each invoice as a new row.\n- 📊 Keeps all invoice records neatly organized in one place.\n- 🔄 Works in real time—new or updated invoices appear instantly.\n\n"
      },
      "typeVersion": 1
    },
    {
      "id": "2bbfaf8c-4ce1-40c3-8ed4-b79f77237187",
      "name": "Note adhésive5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2100,
        1340
      ],
      "parameters": {
        "color": 3,
        "width": 440,
        "height": 380,
        "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\nWebsite: https://www.intuz.com/\n\n"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "19e1f8a9-5325-4c3a-91c9-0b3aa765c942",
  "connections": {
    "73b985b5-5984-4c30-9113-3238e0bca12f": {
      "main": [
        [
          {
            "node": "61c0a129-a49e-407d-8d26-57f999333558",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "621a872a-3622-4bd2-8a92-fc2947132359": {
      "main": [
        [
          {
            "node": "73b985b5-5984-4c30-9113-3238e0bca12f",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "a10919bd-1940-4f81-8c7f-44725a12b7e1": {
      "main": [
        [
          {
            "node": "621a872a-3622-4bd2-8a92-fc2947132359",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
Foire aux questions

Comment utiliser ce workflow ?

Copiez le code de configuration JSON ci-dessus, créez un nouveau workflow dans votre instance n8n et sélectionnez "Importer depuis le JSON", collez la configuration et modifiez les paramètres d'authentification selon vos besoins.

Dans quelles scénarios ce workflow est-il adapté ?

Intermédiaire - Traitement des factures, IA Multimodale

Est-ce payant ?

Ce workflow est entièrement gratuit et peut être utilisé directement. Veuillez noter que les services tiers utilisés dans le workflow (comme l'API OpenAI) peuvent nécessiter un paiement de votre part.

Informations sur le workflow
Niveau de difficulté
Intermédiaire
Nombre de nœuds10
Catégorie2
Types de nœuds5
Description de la difficulté

Adapté aux utilisateurs expérimentés, avec des workflows de complexité moyenne contenant 6-15 nœuds

Auteur
Intuz

Intuz

@intuz

Workflow automation can help automate your routine activities and help saves $$$, as well as hours of time. As a boutique tech consulting company, Intuz help businesses with custom AI/ML, AI Workflow Automations, and software development. Automate your business workflow for: Sales Marketing Accounting Finance Operations E-Commerce Customer Support Admin & Backoffice Logistics & Supply Chain

Liens externes
Voir sur n8n.io

Partager ce workflow

Catégories

Catégories: 34