我的工作流23

高级

这是一个Invoice Processing、Multimodal AI领域的自动化工作流,包含 46 个节点。主要使用 If、Code、Merge、Stripe、Airtable 等节点。 全周期发票自动化:Airtable、QuickBooks和Stripe

前置要求
  • Stripe API Key
  • Airtable API Key
  • 可能需要目标 API 的认证凭证
工作流预览
可视化展示节点连接关系,支持缩放和平移
导出工作流
复制以下 JSON 配置到 n8n 导入,即可使用此工作流
{
  "id": "wnHdgRqker2FalaJ",
  "meta": {
    "instanceId": "1a54c41d9050a8f1fa6f74ca858828ad9fb97b9fafa3e9760e576171c531a787"
  },
  "name": "我的工作流 23",
  "tags": [],
  "nodes": [
    {
      "id": "989dcbdc-5d15-45df-bb0e-db6049c537e2",
      "name": "Airtable 触发器",
      "type": "n8n-nodes-base.airtableTrigger",
      "position": [
        60,
        1780
      ],
      "parameters": {
        "baseId": {
          "__rl": true,
          "mode": "id",
          "value": "{YOUR_AIRTABLE_BASE_ID}"
        },
        "tableId": {
          "__rl": true,
          "mode": "id",
          "value": "{YOUR_AIRTABLE_TABLE_ID}"
        },
        "pollTimes": {
          "item": [
            {
              "mode": "everyMinute"
            }
          ]
        },
        "triggerField": "Created",
        "authentication": "airtableTokenApi",
        "additionalFields": {}
      },
      "typeVersion": 1
    },
    {
      "id": "45863a72-e832-448e-88e6-edb6ee1c8908",
      "name": "IF - 状态检查",
      "type": "n8n-nodes-base.if",
      "position": [
        1580,
        1580
      ],
      "parameters": {
        "conditions": {
          "string": [
            {
              "value1": "={{ $json.Status }}",
              "value2": "Approved for Invoicing"
            }
          ]
        }
      },
      "typeVersion": 1
    },
    {
      "id": "43c615f1-777f-43da-8274-2b9ecce18aa0",
      "name": "IF - 客户是否存在?",
      "type": "n8n-nodes-base.if",
      "position": [
        3020,
        1340
      ],
      "parameters": {
        "conditions": {
          "number": [
            {
              "value1": "={{ $json.Id ?? \"\" }}",
              "operation": "isEmpty"
            }
          ]
        }
      },
      "typeVersion": 1,
      "alwaysOutputData": false
    },
    {
      "id": "2cb49f5e-08f7-46ea-afab-217e98908a14",
      "mode": "append",
      "name": "合并 QBO 客户",
      "type": "n8n-nodes-base.merge",
      "position": [
        4320,
        1540
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "60920472-77b6-4243-89b0-f162f6e900d9",
      "name": "Stripe - 查找客户",
      "type": "n8n-nodes-base.stripe",
      "position": [
        5800,
        1020
      ],
      "parameters": {
        "resource": "customer",
        "customerId": "={{ $('Search records').item.json['Stripe Customer ID'] || \"\"}}"
      },
      "typeVersion": 1
    },
    {
      "id": "bd0adf89-499a-40ee-9e37-648ae0aad30d",
      "name": "IF - Stripe 客户是否存在?",
      "type": "n8n-nodes-base.if",
      "position": [
        7220,
        1160
      ],
      "parameters": {
        "conditions": {
          "string": [
            {
              "value1": "={{ $json.DisplayName }}",
              "operation": "isNotEmpty"
            }
          ]
        }
      },
      "typeVersion": 1
    },
    {
      "id": "ea27b7d1-4e6e-4620-b402-b0b8e0db436d",
      "name": "Stripe - 创建客户",
      "type": "n8n-nodes-base.stripe",
      "position": [
        7960,
        980
      ],
      "parameters": {
        "name": "={{ $json.DisplayName }}",
        "resource": "customer",
        "operation": "create",
        "additionalFields": {
          "email": "={{ $json.PrimaryEmailAddr.Address }}"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "901e1828-f5e5-4801-83a0-53fce11f4ea0",
      "mode": "append",
      "name": "合并 Stripe 客户",
      "type": "n8n-nodes-base.merge",
      "position": [
        8520,
        1380
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "4c99441c-1f72-49d6-b421-62e3c2c72b28",
      "name": "QuickBooks - 查找客户",
      "type": "n8n-nodes-base.quickbooks",
      "position": [
        2360,
        1160
      ],
      "parameters": {
        "limit": 500,
        "filters": {
          "query": "=WHERE DisplayName = '{{ $json['Client Name'] }}'\n\n"
        },
        "operation": "getAll"
      },
      "typeVersion": 1,
      "alwaysOutputData": false
    },
    {
      "id": "497c8d82-1916-4ac6-acd2-7fdc561d3919",
      "name": "创建发票",
      "type": "n8n-nodes-base.quickbooks",
      "position": [
        13120,
        1420
      ],
      "parameters": {
        "Line": [
          {
            "Qty": "={{ $('Update Quickbooks and Stripe Customer Ids').item.json.fields.Quantity }}",
            "Amount": "={{ $json.Amount }}",
            "itemId": "={{ $json.Id }}",
            "DetailType": "SalesItemLineDetail",
            "Description": "={{ $json.Description }}"
          }
        ],
        "resource": "invoice",
        "operation": "create",
        "CustomerRef": "={{ $('Update Quickbooks and Stripe Customer Ids').item.json.fields['QuickBooks Customer ID'] }}",
        "additionalFields": {}
      },
      "typeVersion": 1
    },
    {
      "id": "b1330d78-6e36-4296-98b0-0312804e955d",
      "name": "创建客户",
      "type": "n8n-nodes-base.quickbooks",
      "position": [
        3680,
        1100
      ],
      "parameters": {
        "operation": "create",
        "displayName": "={{ $('IF - Status Check').item.json['Client Name'] }}",
        "additionalFields": {
          "PrimaryEmailAddr": "={{ $('IF - Status Check').item.json['Client Email'] }}"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "8b371200-572e-4995-b7d7-d496751342f4",
      "name": "搜索记录",
      "type": "n8n-nodes-base.airtable",
      "position": [
        800,
        1360
      ],
      "parameters": {
        "base": {
          "__rl": true,
          "mode": "list",
          "value": "{YOUR_AIRTABLE_BASE_ID}",
          "cachedResultUrl": "https://airtable.com/{YOUR_AIRTABLE_BASE_ID}",
          "cachedResultName": "{YOUR_AIRTABLE_BASE_NAME}"
        },
        "table": {
          "__rl": true,
          "mode": "list",
          "value": "{YOUR_AIRTABLE_TABLE_ID}",
          "cachedResultUrl": "https://airtable.com/{YOUR_AIRTABLE_BASE_ID}/{YOUR_AIRTABLE_TABLE_ID}",
          "cachedResultName": "{YOUR_AIRTABLE_TABLE_NAME}"
        },
        "options": {},
        "operation": "search"
      },
      "typeVersion": 2.1
    },
    {
      "id": "d56e433c-447b-406f-8467-a8c5de082d5b",
      "name": "便签",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -100,
        1920
      ],
      "parameters": {
        "color": 3,
        "width": 500,
        "height": 300,
        "content": "### 步骤 1:Airtable 触发器 🚦📋"
      },
      "typeVersion": 1
    },
    {
      "id": "44f16735-21cb-4a35-bb97-45bf8ec79469",
      "name": "便签1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        620,
        1040
      ],
      "parameters": {
        "width": 460,
        "height": 300,
        "content": "### 步骤 2:Airtable 搜索记录 🔍📋"
      },
      "typeVersion": 1
    },
    {
      "id": "430acba9-f9ad-424f-888e-a239968e9bbf",
      "name": "便签2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1360,
        1220
      ],
      "parameters": {
        "color": 5,
        "width": 500,
        "height": 300,
        "content": "### 步骤 3:状态检查(If 节点)✅❌"
      },
      "typeVersion": 1
    },
    {
      "id": "5d2740d4-c4fc-4290-914c-bcbff9202b1c",
      "name": "便签3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2200,
        2080
      ],
      "parameters": {
        "color": 3,
        "width": 520,
        "height": 300,
        "content": "### 优雅退出(No-Op 节点)🛑✨"
      },
      "typeVersion": 1
    },
    {
      "id": "12d6c762-e245-4203-b91d-a03ad0c39c5a",
      "name": "退出工作流",
      "type": "n8n-nodes-base.noOp",
      "position": [
        2400,
        1920
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "d3de759a-8382-4127-867f-84afbc9fb1b6",
      "name": "便签4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2180,
        800
      ],
      "parameters": {
        "color": 4,
        "width": 460,
        "height": 320,
        "content": "### 步骤 4:在 QuickBooks 中查找客户 🔍👤"
      },
      "typeVersion": 1
    },
    {
      "id": "2aa200ff-342e-4a9b-b46d-956dc31ea3e1",
      "name": "便签5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2820,
        1480
      ],
      "parameters": {
        "color": 6,
        "width": 580,
        "height": 340,
        "content": "### 步骤 5:客户存在性检查(If 节点)❓✅❌"
      },
      "typeVersion": 1
    },
    {
      "id": "054ac6a9-7198-49d3-8005-8291e2b99de1",
      "name": "便签 6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        3480,
        780
      ],
      "parameters": {
        "color": 4,
        "width": 480,
        "height": 300,
        "content": "在 QuickBooks 中创建客户 ➕👤"
      },
      "typeVersion": 1
    },
    {
      "id": "e656e242-fcd7-4f4b-b8c7-1093e6873c9d",
      "name": "便签7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        4160,
        1180
      ],
      "parameters": {
        "width": 500,
        "height": 300,
        "content": "### 步骤 6:合并客户数据节点 🔗📊"
      },
      "typeVersion": 1
    },
    {
      "id": "43640cbe-d8c0-4d46-a8be-71ed26deaf88",
      "name": "If - Stripe 客户 ID",
      "type": "n8n-nodes-base.if",
      "position": [
        5100,
        1180
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "0e0b7c72-589a-4d76-9201-cbc4cfdc9c70",
              "operator": {
                "type": "string",
                "operation": "notEmpty",
                "singleValue": true
              },
              "leftValue": "={{ $('Search records').item.json['Stripe Customer ID'] }}",
              "rightValue": ""
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "e7fd405d-2dca-453d-ad16-086d855393e0",
      "name": "便签8",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        4840,
        800
      ],
      "parameters": {
        "color": 3,
        "width": 600,
        "height": 340,
        "content": "### 步骤 7:Stripe 客户 ID 检查(If 节点)🔍💳"
      },
      "typeVersion": 1
    },
    {
      "id": "d8810872-3110-450d-a87e-a68c6acec976",
      "name": "便签 9",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        5540,
        680
      ],
      "parameters": {
        "color": 5,
        "width": 580,
        "height": 300,
        "content": "在 Stripe 中查找客户 🔍💳"
      },
      "typeVersion": 1
    },
    {
      "id": "0af13885-0000-48a4-9a1a-5ca0695d4329",
      "name": "合并 - Stripe 客户",
      "type": "n8n-nodes-base.merge",
      "position": [
        6320,
        1460
      ],
      "parameters": {},
      "typeVersion": 3.2
    },
    {
      "id": "66ce007d-361a-44d1-b397-c8bf354bc62a",
      "name": "便利贴 10",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        6180,
        1620
      ],
      "parameters": {
        "color": 6,
        "width": 480,
        "height": 300,
        "content": "### 步骤 8:合并 Stripe 客户数据节点 🔗💳"
      },
      "typeVersion": 1
    },
    {
      "id": "642cf14a-238f-4525-bc6c-a4d88ad2ff25",
      "name": "便利贴 11",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        7020,
        780
      ],
      "parameters": {
        "color": 3,
        "width": 540,
        "height": 340,
        "content": "### 步骤 9:Stripe 客户存在性检查(If 节点)🔍✅❌"
      },
      "typeVersion": 1
    },
    {
      "id": "fe468b60-5f78-4a61-9262-a0c24e2054e8",
      "name": "便签 12",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        7740,
        640
      ],
      "parameters": {
        "width": 500,
        "height": 320,
        "content": "在 Stripe 中创建客户 ➕💳"
      },
      "typeVersion": 1
    },
    {
      "id": "84f2c126-13e0-4999-95ed-c62155473934",
      "name": "便签 13",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        8320,
        1540
      ],
      "parameters": {
        "color": 5,
        "width": 520,
        "height": 300,
        "content": "### 步骤 10:合并新 Stripe 客户数据节点 🔗💳"
      },
      "typeVersion": 1
    },
    {
      "id": "d72208de-119a-4cc7-8f41-c04e8534fdf5",
      "name": "按电子邮件搜索记录",
      "type": "n8n-nodes-base.airtable",
      "position": [
        9260,
        1080
      ],
      "parameters": {
        "base": {
          "__rl": true,
          "mode": "list",
          "value": "{YOUR_AIRTABLE_BASE_ID}",
          "cachedResultUrl": "https://airtable.com/{YOUR_AIRTABLE_BASE_ID}",
          "cachedResultName": "{YOUR_AIRTABLE_BASE_NAME}"
        },
        "table": {
          "__rl": true,
          "mode": "list",
          "value": "{YOUR_AIRTABLE_TABLE_ID}",
          "cachedResultUrl": "https://airtable.com/{YOUR_AIRTABLE_BASE_ID}/{YOUR_AIRTABLE_TABLE_ID}",
          "cachedResultName": "{YOUR_AIRTABLE_TABLE_NAME}"
        },
        "options": {},
        "operation": "search",
        "filterByFormula": "={Client Email} = \"{{ $json.email }}\""
      },
      "typeVersion": 2.1,
      "alwaysOutputData": true
    },
    {
      "id": "0dc8e7c1-e027-4641-9618-357f72d67039",
      "name": "便签14",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        9060,
        760
      ],
      "parameters": {
        "color": 6,
        "width": 480,
        "height": 300,
        "content": "### 步骤 11:在 Airtable 中搜索记录 🔍📋"
      },
      "typeVersion": 1
    },
    {
      "id": "62d46511-8cf8-4160-a242-bea2e4e81086",
      "name": "更新 Quickbooks 和 Stripe 客户 ID",
      "type": "n8n-nodes-base.airtable",
      "position": [
        9980,
        1400
      ],
      "parameters": {
        "base": {
          "__rl": true,
          "mode": "list",
          "value": "{YOUR_AIRTABLE_BASE_ID}",
          "cachedResultUrl": "https://airtable.com/{YOUR_AIRTABLE_BASE_ID}",
          "cachedResultName": "{YOUR_AIRTABLE_BASE_NAME}"
        },
        "table": {
          "__rl": true,
          "mode": "list",
          "value": "{YOUR_AIRTABLE_TABLE_ID}",
          "cachedResultUrl": "https://airtable.com/{YOUR_AIRTABLE_BASE_ID}/{YOUR_AIRTABLE_TABLE_ID}",
          "cachedResultName": "{YOUR_AIRTABLE_TABLE_NAME}"
        },
        "columns": {
          "value": {
            "id": "={{ $json.id }}",
            "Stripe Customer ID": "={{ $('Merge Stripe Customer').item.json.id }}",
            "QuickBooks Customer ID": "={{ $('Merge QBO Customer').item.json.Id }}"
          },
          "schema": [
            {
              "id": "id",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": true,
              "required": false,
              "displayName": "id",
              "defaultMatch": true
            },
            {
              "id": "Deal Name",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Deal Name",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Client Name",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Client Name",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Client Email",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Client Email",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Status",
              "type": "options",
              "display": true,
              "options": [
                {
                  "name": "Approved for Invoicing",
                  "value": "Approved for Invoicing"
                },
                {
                  "name": "Draft",
                  "value": "Draft"
                },
                {
                  "name": "Invoiced",
                  "value": "Invoiced"
                }
              ],
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Status",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Line Items JSON",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Line Items JSON",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "QuickBooks Customer ID",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "QuickBooks Customer ID",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Stripe Customer ID",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Stripe Customer ID",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Stripe Payment Link",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Stripe Payment Link",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "QuickBooks Invoice #",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "QuickBooks Invoice #",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "id"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "update"
      },
      "typeVersion": 2.1
    },
    {
      "id": "5cbaa7bd-1ef6-49d8-8b61-fef3f2d3090c",
      "name": "便签15",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        9780,
        1580
      ],
      "parameters": {
        "width": 520,
        "height": 300,
        "content": "### 步骤 12:在 Airtable 中更新记录 ✏️🔄"
      },
      "typeVersion": 1
    },
    {
      "id": "cdd5c85d-1168-4b4e-ab95-b17132f0bd10",
      "name": "生成支付链接",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        10700,
        1080
      ],
      "parameters": {
        "url": "https://api.stripe.com/v1/payment_links",
        "method": "POST",
        "options": {},
        "sendBody": true,
        "contentType": "form-urlencoded",
        "authentication": "predefinedCredentialType",
        "bodyParameters": {
          "parameters": [
            {
              "name": "line_items[0][price]",
              "value": "={{ $json.fields['Stripe Price Id'] }}"
            },
            {
              "name": "line_items[0][quantity]",
              "value": "={{ $json.fields.Quantity }}"
            }
          ]
        },
        "nodeCredentialType": "stripeApi"
      },
      "typeVersion": 4.2
    },
    {
      "id": "86d2ad6f-2501-4885-9f61-40563bcd132a",
      "name": "便签 16",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        10500,
        760
      ],
      "parameters": {
        "color": 3,
        "width": 520,
        "height": 300,
        "content": "### 步骤 13:生成 Stripe 支付链接(HTTP 请求)🔗💳"
      },
      "typeVersion": 1
    },
    {
      "id": "cce1f3fd-3731-41ea-8b6c-b1b6872f571c",
      "name": "获取所有 Quickbook 产品",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        11440,
        1400
      ],
      "parameters": {
        "url": "https://quickbooks.api.intuit.com/v3/company/{YOUR_QUICKBOOKS_COMPANY_ID}/query?query=SELECT%20*%20FROM%20Item",
        "options": {},
        "authentication": "predefinedCredentialType",
        "nodeCredentialType": "quickBooksOAuth2Api"
      },
      "typeVersion": 4.2
    },
    {
      "id": "e4819fee-6591-45cf-b9e7-000ec6ba07e4",
      "name": "便签17",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        11240,
        1580
      ],
      "parameters": {
        "width": 540,
        "height": 280,
        "content": "### 步骤 14:从 QuickBooks 获取所有产品(HTTP 请求)📦🔍"
      },
      "typeVersion": 1
    },
    {
      "id": "29e7df5d-6b99-44a4-8493-d3c2aec66353",
      "name": "便签18",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        12060,
        760
      ],
      "parameters": {
        "color": 6,
        "width": 540,
        "height": 300,
        "content": "### 步骤 15:按 Airtable 数据过滤产品(代码节点)⚙️🔍"
      },
      "typeVersion": 1
    },
    {
      "id": "b6e2c9d4-502b-44e6-b907-8eab05c7561e",
      "name": "过滤并返回产品详细信息",
      "type": "n8n-nodes-base.code",
      "position": [
        12260,
        1100
      ],
      "parameters": {
        "mode": "runOnceForEachItem",
        "jsCode": "const airtableProductName = $('Update Quickbooks and Stripe Customer Ids').item.json.fields['Quickbooks Product Name'];\nconst quantity = $('Update Quickbooks and Stripe Customer Ids').item.json.fields.Quantity;\n\nconst quickBooksProducts = $json.QueryResponse.Item;\n\nconst matchingProduct = quickBooksProducts.find(product => product.Name === airtableProductName);\n\nif (matchingProduct) {\n  const unitPrice = matchingProduct.UnitPrice || 0;\n  const amount = unitPrice * (quantity || 0);\n\n  return {\n    json: {\n      Id: matchingProduct.Id,\n      Description: matchingProduct.Description,\n      Amount: amount,\n    }\n  };\n} else {\n  return {\n    json: {\n      Id: null,\n      Description: null,\n      Amount: 0,\n    }\n  };\n}\n"
      },
      "typeVersion": 2
    },
    {
      "id": "4e309a57-bebd-4a0e-871f-1f66e7119099",
      "name": "便签19",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        12960,
        1620
      ],
      "parameters": {
        "color": 4,
        "width": 480,
        "height": 300,
        "content": "### 步骤 16:在 QuickBooks 中创建发票 🧾✨"
      },
      "typeVersion": 1
    },
    {
      "id": "52c262a3-df12-47a4-bc8a-73eaaea82ec8",
      "name": "更新 Stripe 支付链接和 Quickbooks 发票编号",
      "type": "n8n-nodes-base.airtable",
      "position": [
        13840,
        1100
      ],
      "parameters": {
        "base": {
          "__rl": true,
          "mode": "list",
          "value": "{YOUR_AIRTABLE_BASE_ID}",
          "cachedResultUrl": "https://airtable.com/{YOUR_AIRTABLE_BASE_ID}",
          "cachedResultName": "{YOUR_AIRTABLE_BASE_NAME}"
        },
        "table": {
          "__rl": true,
          "mode": "list",
          "value": "{YOUR_AIRTABLE_TABLE_ID}",
          "cachedResultUrl": "https://airtable.com/{YOUR_AIRTABLE_BASE_ID}/{YOUR_AIRTABLE_TABLE_ID}",
          "cachedResultName": "{YOUR_AIRTABLE_TABLE_NAME}"
        },
        "columns": {
          "value": {
            "id": "={{ $('Update Quickbooks and Stripe Customer Ids').item.json.id }}",
            "Status": "Invoiced",
            "Stripe Payment Link": "={{ $('Generate Payment Links').item.json.url }}",
            "QuickBooks Invoice #": "=INV-{{ $json.DocNumber }}"
          },
          "schema": [
            {
              "id": "id",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": true,
              "required": false,
              "displayName": "id",
              "defaultMatch": true
            },
            {
              "id": "Deal Name",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Deal Name",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Client Name",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Client Name",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Client Email",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Client Email",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Status",
              "type": "options",
              "display": true,
              "options": [
                {
                  "name": "Approved for Invoicing",
                  "value": "Approved for Invoicing"
                },
                {
                  "name": "Draft",
                  "value": "Draft"
                },
                {
                  "name": "Invoiced",
                  "value": "Invoiced"
                }
              ],
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Status",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Line Items JSON",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Line Items JSON",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "QuickBooks Customer ID",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "QuickBooks Customer ID",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Stripe Customer ID",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Stripe Customer ID",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Stripe Payment Link",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Stripe Payment Link",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "QuickBooks Invoice #",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "QuickBooks Invoice #",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Stripe Price Id",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Stripe Price Id",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Quantity",
              "type": "number",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Quantity",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Quickbooks Product Name",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Quickbooks Product Name",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "id"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "update"
      },
      "typeVersion": 2.1
    },
    {
      "id": "cba338d9-dbad-4cf8-becc-609892ba96dc",
      "name": "便签20",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        13640,
        740
      ],
      "parameters": {
        "color": 5,
        "width": 480,
        "height": 320,
        "content": "### 步骤 17:更新 Airtable 记录 ✏️🔄"
      },
      "typeVersion": 1
    },
    {
      "id": "e8125d20-5e72-443c-82ca-9f444ff91e1d",
      "name": "工作流完成",
      "type": "n8n-nodes-base.noOp",
      "position": [
        14660,
        1420
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "b3e74b53-f2e4-4c37-adb0-008766c0c21e",
      "name": "便签21",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        14500,
        1560
      ],
      "parameters": {
        "color": 4,
        "width": 500,
        "height": 300,
        "content": "### 步骤 18:工作流完成(No-Op 节点)✅🎉"
      },
      "typeVersion": 1
    },
    {
      "id": "75b2998f-2369-425a-b88b-f8e7383861f1",
      "name": "便签22",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -60,
        40
      ],
      "parameters": {
        "color": 3,
        "width": 620,
        "height": 680,
        "content": "### 先决条件 ⚙️🔗"
      },
      "typeVersion": 1
    },
    {
      "id": "d88adcf9-9557-4759-9638-bfdd2f6e00b8",
      "name": "便签 23",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        14500,
        900
      ],
      "parameters": {
        "width": 360,
        "height": 300,
        "content": "### 联系我们"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "e10a1c5b-b5c4-4861-a1b7-8cf52907b464",
  "connections": {
    "Search records": {
      "main": [
        [
          {
            "node": "IF - Status Check",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Airtable Trigger": {
      "main": [
        [
          {
            "node": "Search records",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create a customer": {
      "main": [
        [
          {
            "node": "Merge QBO Customer",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create an invoice": {
      "main": [
        [
          {
            "node": "Update Stripe Payment Link and Quickbooks Invoice #",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "IF - Status Check": {
      "main": [
        [
          {
            "node": "QuickBooks - Find Customer",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Exit from workflow",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Merge QBO Customer": {
      "main": [
        [
          {
            "node": "If - Stripe Customer Id",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "IF - Customer Exists?": {
      "main": [
        [
          {
            "node": "Create a customer",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Merge QBO Customer",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "Merge Stripe Customer": {
      "main": [
        [
          {
            "node": "Search records by email",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Generate Payment Links": {
      "main": [
        [
          {
            "node": "Get all Quickbook products",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Stripe - Find Customer": {
      "main": [
        [
          {
            "node": "Merge - Stripe Customers",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "If - Stripe Customer Id": {
      "main": [
        [
          {
            "node": "Stripe - Find Customer",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Merge - Stripe Customers",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Search records by email": {
      "main": [
        [
          {
            "node": "Update Quickbooks and Stripe Customer Ids",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Merge - Stripe Customers": {
      "main": [
        [
          {
            "node": "IF - Stripe Customer Exists?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Stripe - Create Customer": {
      "main": [
        [
          {
            "node": "Merge Stripe Customer",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get all Quickbook products": {
      "main": [
        [
          {
            "node": "Filter and Return product details",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "QuickBooks - Find Customer": {
      "main": [
        [
          {
            "node": "IF - Customer Exists?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "IF - Stripe Customer Exists?": {
      "main": [
        [
          {
            "node": "Stripe - Create Customer",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Merge Stripe Customer",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "Filter and Return product details": {
      "main": [
        [
          {
            "node": "Create an invoice",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Update Quickbooks and Stripe Customer Ids": {
      "main": [
        [
          {
            "node": "Generate Payment Links",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Update Stripe Payment Link and Quickbooks Invoice #": {
      "main": [
        [
          {
            "node": "Workflow Completed",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
常见问题

如何使用这个工作流?

复制上方的 JSON 配置代码,在您的 n8n 实例中创建新工作流并选择「从 JSON 导入」,粘贴配置后根据需要修改凭证设置即可。

这个工作流适合什么场景?

这是一个高级难度的工作流,适用于Invoice Processing、Multimodal AI等场景。适合高级用户,包含 16+ 个节点的复杂工作流

需要付费吗?

本工作流完全免费,您可以直接导入使用。但请注意,工作流中使用的第三方服务(如 OpenAI API)可能需要您自行付费。

工作流信息
难度等级
高级
节点数量46
分类2
节点类型10
难度说明

适合高级用户,包含 16+ 个节点的复杂工作流

作者
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

外部链接
在 n8n.io 上查看 →

分享此工作流