8
n8n 中文网amn8n.com

使用Outlook和QuickBooks自动化客户账单详情收集与开票

中级

这是一个Invoice Processing, Multimodal AI领域的自动化工作流,包含 15 个节点。主要使用 Quickbooks, FormTrigger, MicrosoftOutlook 等节点。 使用Outlook和QuickBooks自动化客户账单详情收集与开票

前置要求
  • 无特殊前置要求,导入即可使用
工作流预览
可视化展示节点连接关系,支持缩放和平移
导出工作流
复制以下 JSON 配置到 n8n 导入,即可使用此工作流
{
  "meta": {
    "instanceId": "d6e2f2f655b1125bbcac14a4cac6d2e46c7a150e927f85fc96fdca1a6dc39e0e",
    "templateCredsSetupCompleted": true
  },
  "nodes": [
    {
      "id": "cae8787a-786d-4fc5-bf08-630e5b6ffb83",
      "name": "将客户添加到 QBO",
      "type": "n8n-nodes-base.quickbooks",
      "onError": "continueRegularOutput",
      "position": [
        1280,
        304
      ],
      "parameters": {
        "operation": "create",
        "displayName": "={{ $json.data['Company Name'] ? $json.data['Company Name'] : $json.data['First Name'] + \" \" + $json.data['Last Name'] }}",
        "additionalFields": {
          "BillAddr": {
            "details": {
              "City": "={{ $json.data.City }}",
              "Line1": "={{ $json.data['Street Address'] }}",
              "PostalCode": "={{ $json.data['Zip / Postal Code'] }}",
              "CountrySubDivisionCode": "={{ $json.data['State / Province'] }}"
            }
          },
          "GivenName": "={{ $json.data['First Name'] }}",
          "FamilyName": "={{ $json.data['Last Name'] }}",
          "CompanyName": "={{ $json.data['Company Name'] }}",
          "PrimaryPhone": "={{ $json.data['Phone Number'] }}",
          "PrimaryEmailAddr": "={{ $('Enter Client Details').item.json['What is the client\\'s email?'] }}"
        }
      },
      "credentials": {
        "quickBooksOAuth2Api": {
          "id": "zZyR3nZpTizUyR0u",
          "name": "QuickBooks n8n Sandbox"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "63086803-cda4-4760-a0b2-3255d1e37037",
      "name": "查找现有客户",
      "type": "n8n-nodes-base.quickbooks",
      "position": [
        1552,
        304
      ],
      "parameters": {
        "limit": 1,
        "filters": {
          "query": "=WHERE DisplayName = '{{ $('Ask Client for Billing Info').item.json.data['Company Name'] ? $('Ask Client for Billing Info').item.json.data['Company Name'] : $('Ask Client for Billing Info').item.json.data['First Name'] + \" \" + $('Ask Client for Billing Info').item.json.data['Last Name'] }}'"
        },
        "operation": "getAll"
      },
      "credentials": {
        "quickBooksOAuth2Api": {
          "id": "zZyR3nZpTizUyR0u",
          "name": "QuickBooks n8n Sandbox"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "5dc696bb-11cf-4a79-97b6-80acc6fb6548",
      "name": "便签",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        0,
        0
      ],
      "parameters": {
        "width": 660,
        "height": 1520,
        "content": "## 向客户索取账单详情并自动在 QuickBooks 中生成发票"
      },
      "typeVersion": 1
    },
    {
      "id": "1f003845-a2cb-401a-93aa-ff2aa0cf889e",
      "name": "便签 1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        704,
        128
      ],
      "parameters": {
        "color": 7,
        "height": 360,
        "content": "## 输入客户信息"
      },
      "typeVersion": 1
    },
    {
      "id": "e0d9812c-0327-47f0-a4d2-f08559b2ea66",
      "name": "便签 2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        960,
        128
      ],
      "parameters": {
        "color": 7,
        "height": 360,
        "content": "## 向客户索取信息"
      },
      "typeVersion": 1
    },
    {
      "id": "d9df35de-c805-47a5-b403-ba7a891bd9ce",
      "name": "便签 5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1232,
        128
      ],
      "parameters": {
        "color": 7,
        "height": 360,
        "content": "## 将客户添加到 QBO"
      },
      "typeVersion": 1
    },
    {
      "id": "4fd29b6e-1b35-4a19-8574-7eb72a1f6bbc",
      "name": "便签6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1488,
        128
      ],
      "parameters": {
        "color": 7,
        "height": 360,
        "content": "## 查找现有客户"
      },
      "typeVersion": 1
    },
    {
      "id": "8b5d4376-5b4f-4e46-8dc0-03bacfb1473c",
      "name": "便签7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        960,
        512
      ],
      "parameters": {
        "color": 7,
        "height": 380,
        "content": "## 创建新发票"
      },
      "typeVersion": 1
    },
    {
      "id": "aa570522-1427-4875-a0a5-c776f7a6f4ef",
      "name": "输入客户详情",
      "type": "n8n-nodes-base.formTrigger",
      "position": [
        768,
        304
      ],
      "webhookId": "9f932cb2-8f3c-4e22-b05f-4594c491c30a",
      "parameters": {
        "options": {
          "appendAttribution": true
        },
        "formTitle": "Enter Client Details",
        "formFields": {
          "values": [
            {
              "fieldLabel": "What is the client's first name?",
              "requiredField": true
            },
            {
              "fieldLabel": "What is the client's email?",
              "requiredField": true
            },
            {
              "fieldType": "dropdown",
              "fieldLabel": "Product",
              "fieldOptions": {
                "values": [
                  {
                    "option": "Item A"
                  },
                  {
                    "option": "Misc"
                  }
                ]
              },
              "requiredField": true
            },
            {
              "fieldType": "textarea",
              "fieldLabel": "Description of what is being sold",
              "requiredField": true
            },
            {
              "fieldType": "number",
              "fieldLabel": "Amount (before taxes)",
              "requiredField": true
            },
            {
              "fieldType": "date",
              "fieldLabel": "Invoice Due Date",
              "requiredField": true
            }
          ]
        },
        "formDescription": "Please enter the client's details so we can contact them for their billing info."
      },
      "typeVersion": 2.2
    },
    {
      "id": "c0b85a31-5b18-4f8b-9c31-5c5038fd9e8b",
      "name": "便签8",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1232,
        512
      ],
      "parameters": {
        "color": 7,
        "height": 380,
        "content": "## 向客户发送发票"
      },
      "typeVersion": 1
    },
    {
      "id": "9df68696-127f-455e-b598-35e0b37cc3eb",
      "name": "获取所选产品",
      "type": "n8n-nodes-base.quickbooks",
      "position": [
        752,
        704
      ],
      "parameters": {
        "limit": 1,
        "filters": {
          "query": "=WHERE name = '{{ $('Enter Client Details').item.json.Product }}'"
        },
        "resource": "item",
        "operation": "getAll"
      },
      "credentials": {
        "quickBooksOAuth2Api": {
          "id": "zZyR3nZpTizUyR0u",
          "name": "QuickBooks n8n Sandbox"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "0a83e9e0-e1a4-49c2-ac5e-e7643a932002",
      "name": "便签9",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        704,
        512
      ],
      "parameters": {
        "color": 7,
        "height": 380,
        "content": "## 获取所选产品"
      },
      "typeVersion": 1
    },
    {
      "id": "030571d0-d2ba-4186-97fb-ba7c45f4ec43",
      "name": "创建新发票",
      "type": "n8n-nodes-base.quickbooks",
      "position": [
        1024,
        704
      ],
      "parameters": {
        "Line": [
          {
            "Amount": "={{ $('Enter Client Details').item.json['Amount (before taxes)'] }}",
            "itemId": "={{ $json.Id }}",
            "DetailType": "SalesItemLineDetail",
            "TaxCodeRef": "5",
            "Description": "={{ $('Enter Client Details').item.json['Description of what is being sold'] }}"
          }
        ],
        "resource": "invoice",
        "operation": "create",
        "CustomerRef": "={{ $('Find Existing Customer').item.json.Id ? $('Find Existing Customer').item.json.Id : $('Add Client to QBO').item.json.Id }}",
        "additionalFields": {
          "DueDate": "={{ $('Enter Client Details').item.json['Invoice Due Date'] }}",
          "BillEmail": "={{ $('Enter Client Details').item.json['What is the client\\'s email?'] }}"
        }
      },
      "credentials": {
        "quickBooksOAuth2Api": {
          "id": "zZyR3nZpTizUyR0u",
          "name": "QuickBooks n8n Sandbox"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "a563cc2b-0bf5-4676-a0b2-5ddcfaaa1f75",
      "name": "发送发票",
      "type": "n8n-nodes-base.quickbooks",
      "position": [
        1280,
        704
      ],
      "parameters": {
        "email": "={{ $('Enter Client Details').item.json['What is the client\\'s email?'] }}",
        "resource": "invoice",
        "invoiceId": "={{ $json.Id }}",
        "operation": "send"
      },
      "credentials": {
        "quickBooksOAuth2Api": {
          "id": "zZyR3nZpTizUyR0u",
          "name": "QuickBooks n8n Sandbox"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "0d498c28-de86-407f-85ea-a87f2bc3624e",
      "name": "向客户索取账单信息",
      "type": "n8n-nodes-base.microsoftOutlook",
      "position": [
        1024,
        304
      ],
      "webhookId": "c711ace8-971f-4992-9c3d-f883d0c09387",
      "parameters": {
        "message": "=Hello {{ $json['First Name'] || 'Customer' }},\n\nCompany A is requesting your billing information in order to create an invoice and finalize your order.\n\n**Description:** {{ $json['Description of what is being sold'] }}  \n**Amount (before tax):** ${{ $json['Amount (before taxes)'] }}\n\nPlease fill in the form below so we can complete your invoice.\n\nThanks,  \nCompany A",
        "options": {},
        "subject": "Billing Details Required",
        "operation": "sendAndWait",
        "formFields": {
          "values": [
            {
              "fieldLabel": "First Name",
              "requiredField": true
            },
            {
              "fieldLabel": "Last Name",
              "requiredField": true
            },
            {
              "fieldLabel": "Company Name"
            },
            {
              "fieldLabel": "Street Address",
              "requiredField": true
            },
            {
              "fieldLabel": "City",
              "requiredField": true
            },
            {
              "fieldLabel": "State / Province",
              "requiredField": true
            },
            {
              "fieldLabel": "Zip / Postal Code",
              "requiredField": true
            },
            {
              "fieldLabel": "Phone Number"
            }
          ]
        },
        "responseType": "customForm",
        "toRecipients": "={{ $json['What is the client\\'s email?'] }}"
      },
      "typeVersion": 2
    }
  ],
  "pinData": {},
  "connections": {
    "Add Client to QBO": {
      "main": [
        [
          {
            "node": "Find Existing Customer",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create A New Invoice": {
      "main": [
        [
          {
            "node": "Send the Invoice",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Enter Client Details": {
      "main": [
        [
          {
            "node": "Ask Client for Billing Info",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Find Existing Customer": {
      "main": [
        [
          {
            "node": "Get The Selected Product",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get The Selected Product": {
      "main": [
        [
          {
            "node": "Create A New Invoice",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Ask Client for Billing Info": {
      "main": [
        [
          {
            "node": "Add Client to QBO",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
常见问题

如何使用这个工作流?

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

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

中级 - 发票处理, 多模态 AI

需要付费吗?

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

工作流信息
难度等级
中级
节点数量15
分类2
节点类型4
难度说明

适合有一定经验的用户,包含 6-15 个节点的中等复杂度工作流

外部链接
在 n8n.io 查看

分享此工作流