AutomationFlowsFinance › Automate Real-time Quickbooks Invoice Alerts in Slack

Automate Real-time Quickbooks Invoice Alerts in Slack

ByIntuz @intuz on n8n.io

It actively monitors QuickBooks and, upon detecting a new invoice, immediately sends a detailed alert to your chosen Slack channel.

Webhook trigger★★★★☆ complexity10 nodesQuickBooksSlack
Finance Trigger: Webhook Nodes: 10 Complexity: ★★★★☆ Added:

This workflow corresponds to n8n.io template #7230 — we link there as the canonical source.

The workflow JSON

Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →

Download .json
{
  "id": "HryakGwRjy2LO1wa",
  "name": "Real-Time QuickBooks Invoice Sync to Slack",
  "tags": [],
  "nodes": [
    {
      "id": "4cbf005e-2368-4c6d-b3ab-e3530953ad40",
      "name": "QuickBooks Webhook",
      "type": "n8n-nodes-base.webhook",
      "position": [
        120,
        900
      ],
      "parameters": {
        "path": "quickbooks-invoice",
        "options": {},
        "httpMethod": "POST"
      },
      "typeVersion": 1
    },
    {
      "id": "0537ea5b-7013-4190-97ae-6e54501049bc",
      "name": "Code",
      "type": "n8n-nodes-base.code",
      "position": [
        1300,
        900
      ],
      "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": "edb8d672-8327-4218-810e-17fc6a24d35f",
      "name": "Get an invoice",
      "type": "n8n-nodes-base.quickbooks",
      "position": [
        740,
        900
      ],
      "parameters": {
        "resource": "invoice",
        "invoiceId": "={{ $json.body.eventNotifications[0].dataChangeEvent.entities[0].id }}"
      },
      "typeVersion": 1
    },
    {
      "id": "75b72ba9-98a1-4369-a930-2189e3cead72",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        0,
        -40
      ],
      "parameters": {
        "color": 3,
        "width": 480,
        "height": 360,
        "content": "## \ud83d\udee0\ufe0f 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. **Slack account Integration**  \n   - Connect your **Slack client credentials**.  \n\n\nOnce these are in place, your workflow will seamlessly capture and log every invoice change in real time. \ud83d\ude80\ud83d\udcca\n"
      },
      "typeVersion": 1
    },
    {
      "id": "ca26318b-5b28-4f13-b46e-ec7c6e055579",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -60,
        1040
      ],
      "parameters": {
        "width": 380,
        "height": 360,
        "content": "### Step 1: Webhook Trigger Activated! \ud83e\ude9d\ud83d\udce2\n\nThis node is the **starting point** of the workflow.\n\nIt listens for **invoice changes in QuickBooks**\n\nWhat it does:\n\n- \ud83d\udce1 Captures the event in real time from QuickBooks.\n- \ud83d\udce6 Passes the invoice data into the workflow instantly.\n- \ud83d\udd04 Eliminates the need for manual checks or periodic polling.\n"
      },
      "typeVersion": 1
    },
    {
      "id": "de869e01-8b5d-40f6-a441-367ed61d32cd",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        560,
        480
      ],
      "parameters": {
        "color": 5,
        "width": 460,
        "height": 400,
        "content": "### Step 2: Invoice Data Fetcher \ud83d\udcc4\ud83d\udd0d\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- \u2705 Retrieves complete and up-to-date invoice information.\n- \ud83d\udcca Captures fields like invoice number, date, customer.\n- \ud83e\uddfe Ensures the Google Sheet reflects the exact state of the invoice at the moment of the event.\n\nIt\u2019s the step that turns a simple event notification into a fully detailed record. \ud83d\udce5\u2728\n"
      },
      "typeVersion": 1
    },
    {
      "id": "9e919726-2e33-4d1a-90af-ce811a5435c0",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1140,
        1040
      ],
      "parameters": {
        "color": 3,
        "width": 420,
        "height": 320,
        "content": "### Step 3: JSON Formatter \ud83d\udee0\ufe0f\ud83d\udce6\n\nThis **Code** node takes the raw invoice data from QuickBooks and formats it into a clean, structured JSON object\u2014ready to be sent to Slack channel\n\nWhat it does:\n\n- \ud83e\uddf9 Extracts only the necessary fields (e.g., id, domain, Customer Name, Due Date).\n- \ud83d\udd04 Converts the data into the correct order and structure for the message.\n- \ud83d\udcd0 Ensures consistent formatting so every message in the channel stays organized.\n\n"
      },
      "typeVersion": 1
    },
    {
      "id": "7e01de38-6b16-48fa-b125-dd0da09472de",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1700,
        440
      ],
      "parameters": {
        "color": 6,
        "width": 540,
        "height": 440,
        "content": "### Step 4: Slack Message Generator \ud83d\udcac\u26a1\n\nThis node creates a **custom message** to notify your Slack channel about the new or updated invoice.\n\n**Sample message format**:  \n> Invoice having ID: `160` having the Domain: `QBO` for the customer `Rondonuwu Fruit and Vegi` which is due on `2025-09-07` has been generated successfully.\n\nWhat it does:\n\n- \ud83e\udde0 Dynamically fills in invoice details (ID, Domain, Customer Name, Due Date).\n- \ud83d\udce2 Prepares a human-readable message for instant team updates.\n- \u2705 Keeps everyone in the loop without having to check QuickBooks manually.\n\nClear, concise, and delivered straight to your Slack workspace. \ud83d\udce1\n"
      },
      "typeVersion": 1
    },
    {
      "id": "0bd08387-d175-44f4-8f83-d37792c76de0",
      "name": "Send a message",
      "type": "n8n-nodes-base.slack",
      "position": [
        1960,
        900
      ],
      "parameters": {
        "text": "=Invoice having ID: {{ $json.ID }} having the Domain: {{ $json.Domain }} for the customer {{ $json[\"Customer Name\"] }} which is due on {{ $json[\"Due Date\"] }} has been generated successfully\n",
        "select": "channel",
        "blocksUi": "=[\n  {\n    \"type\": \"section\",\n    \"text\": {\n      \"type\": \"mrkdwn\",\n      \"text\": \"Invoice having ID: {{ $json.ID }} having the Domain: {{ $json.Domain }} for the customer {{ $json['Customer Name'] }} which is due on {{ $json['Due Date'] }} has been generated successfully\"\n    }\n  }\n]\n",
        "channelId": {
          "__rl": true,
          "mode": "list",
          "value": "{YOUR_SLACK_CHANNEL_ID}",
          "cachedResultName": "n8nmessages"
        },
        "messageType": "block",
        "otherOptions": {},
        "authentication": "oAuth2"
      },
      "typeVersion": 2.3
    },
    {
      "id": "33917945-18e9-4a9a-8bf2-9bb131838de5",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1880,
        1120
      ],
      "parameters": {
        "color": 3,
        "width": 420,
        "height": 320,
        "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,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "51ee5907-ffb1-46fe-8ea9-cda24f3190a9",
  "connections": {
    "Code": {
      "main": [
        [
          {
            "node": "Send a message",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get an invoice": {
      "main": [
        [
          {
            "node": "Code",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "QuickBooks Webhook": {
      "main": [
        [
          {
            "node": "Get an invoice",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

About this workflow

It actively monitors QuickBooks and, upon detecting a new invoice, immediately sends a detailed alert to your chosen Slack channel.

Source: https://n8n.io/workflows/7230/ — original creator credit. Request a take-down →

More Finance workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

Finance

This workflow automates the entire process of receiving a product/service order, checking or creating a customer in QuickBooks Online (QBO), generating an invoice, and emailing it — all triggered by a

QuickBooks
Finance

Tired of the standard, boring invoices from QuickBooks Online? This workflow completely automates the process of creating beautiful, custom-branded PDF invoices and emailing them directly to your clie

QuickBooks, HTTP Request, Email Send
Finance

Automated QuickBooks Invoice to Custom PDF & Email

QuickBooks, HTTP Request, Email Send
Finance

It instantly syncs new QuickBooks invoices to Google Sheets, using specific invoice data or keywords as triggers to ensure your financial records are always accurate and up-to-date.

QuickBooks, Google Sheets
Finance

It automatically saves new QuickBooks invoice PDFs directly into Google Drive, creating a reliable backup system. For perfect organization, the workflow uses keywords from the invoice, like the client

QuickBooks, Google Drive, HTTP Request