8
n8n 한국어amn8n.com

Stripe 결제 및 고객 생성에서 QuickBooks 판매 영수증 자동 생성

고급

이것은Miscellaneous, Multimodal AI분야의자동화 워크플로우로, 17개의 노드를 포함합니다.주로 If, Code, Merge, Stripe, Webhook 등의 노드를 사용하며. Stripe 결제에서 QuickBooks 판매 영수증 및 고객 생성 자동화

사전 요구사항
  • Stripe API Key
  • HTTP Webhook 엔드포인트(n8n이 자동으로 생성)
워크플로우 미리보기
노드 연결 관계를 시각적으로 표시하며, 확대/축소 및 이동을 지원합니다
워크플로우 내보내기
다음 JSON 구성을 복사하여 n8n에 가져오면 이 워크플로우를 사용할 수 있습니다
{
  "id": "mbJzXoWPLzePg3yv",
  "meta": {
    "instanceId": "1a54c41d9050a8f1fa6f74ca858828ad9fb97b9fafa3e9760e576171c531a787"
  },
  "name": "Automate QuickBooks Sales Receipts from Stripe Payments & Customer Creation",
  "tags": [],
  "nodes": [
    {
      "id": "fb397649-1ad0-4463-9fb8-49e108d8bc79",
      "name": "QuickBooks - 고객 찾기",
      "type": "n8n-nodes-base.quickbooks",
      "position": [
        2720,
        1040
      ],
      "parameters": {
        "limit": 500,
        "filters": {
          "query": "=WHERE DisplayName = '{{ $json.name }}'\n\n"
        },
        "operation": "getAll"
      },
      "typeVersion": 1,
      "alwaysOutputData": false
    },
    {
      "id": "73f28e8b-93b2-4558-9ec7-230da270ec68",
      "name": "IF - 고객이 존재합니까?",
      "type": "n8n-nodes-base.if",
      "position": [
        3712,
        1472
      ],
      "parameters": {
        "conditions": {
          "number": [
            {
              "value1": "={{ $json.Id ?? \"\" }}",
              "operation": "isEmpty"
            }
          ]
        }
      },
      "typeVersion": 1,
      "alwaysOutputData": false
    },
    {
      "id": "25aec5a5-126e-4742-ab8a-011c18b26db7",
      "name": "고객 생성",
      "type": "n8n-nodes-base.quickbooks",
      "position": [
        4800,
        992
      ],
      "parameters": {
        "operation": "create",
        "displayName": "={{ $('Get a customer').item.json.name }}",
        "additionalFields": {
          "PrimaryEmailAddr": "={{ $('Get a customer').item.json.email }}"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "6bca213b-7091-4665-bc11-5c903acb155f",
      "name": "결제 생성",
      "type": "n8n-nodes-base.quickbooks",
      "position": [
        6880,
        992
      ],
      "parameters": {
        "TotalAmt": "={{ $('Convert payment Amount').item.json.convertedAmount }}",
        "resource": "payment",
        "operation": "create",
        "CustomerRef": "={{ $json.Id }}",
        "additionalFields": {}
      },
      "typeVersion": 1
    },
    {
      "id": "7bf091c8-9387-4934-bec7-7d2ef106c5ea",
      "name": "고객 정보 가져오기",
      "type": "n8n-nodes-base.stripe",
      "position": [
        1744,
        1520
      ],
      "parameters": {
        "resource": "customer",
        "customerId": "={{ $json.body.data.object.customer }}"
      },
      "typeVersion": 1
    },
    {
      "id": "5e2a9bfc-45f4-407a-b40e-6244123003eb",
      "name": "병합",
      "type": "n8n-nodes-base.merge",
      "position": [
        5856,
        1472
      ],
      "parameters": {},
      "typeVersion": 3.2
    },
    {
      "id": "4cc8fdbd-19b2-40d3-8925-1516b66ef8d0",
      "name": "결제 캡처",
      "type": "n8n-nodes-base.webhook",
      "position": [
        64,
        1488
      ],
      "webhookId": "3a5c2d05-9c40-43f0-898e-90a5fde7280b",
      "parameters": {
        "path": "3a5c2d05-9c40-43f0-898e-90a5fde7280b",
        "options": {},
        "httpMethod": "POST"
      },
      "typeVersion": 2.1
    },
    {
      "id": "77fcc804-50f2-4e82-8a9d-100be12a0fef",
      "name": "메모",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -96,
        1120
      ],
      "parameters": {
        "color": 3,
        "width": 480,
        "height": 512,
        "content": "### **Step 1 – Webhook (Capture Payment)**\n\n- This node acts as the **entry point** of the workflow.  \n- It listens for the **successful payment intent event** coming from **Stripe**.  \n- When a payment is successfully processed on Stripe, the webhook immediately captures the event payload and triggers the workflow execution.  \n- The captured data includes essential payment details such as:\n  - Customer ID  \n  - Payment ID  \n  - Amount paid  \n  - Payment status  \n- This ensures the workflow only runs when a payment has been **successfully completed**.  \n"
      },
      "typeVersion": 1
    },
    {
      "id": "194c40c9-e398-4b78-a537-1c999570304d",
      "name": "결제 금액 변환",
      "type": "n8n-nodes-base.code",
      "position": [
        928,
        1072
      ],
      "parameters": {
        "jsCode": "// n8n Code Node (JavaScript)\n\nreturn items.map(item => {\n  const amount = $input.first().json.body.data.object.amount;\n  \n  // Convert from cents to dollars\n  const convertedAmount = amount / 100;\n\n  // Add the new value to the output JSON\n  item.json.convertedAmount = convertedAmount;\n\n  return item;\n});\n"
      },
      "typeVersion": 2
    },
    {
      "id": "29c99c71-3c5d-4255-bd7a-522874ef43e5",
      "name": "메모1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        736,
        752
      ],
      "parameters": {
        "width": 480,
        "height": 512,
        "content": "### **Step 2 – Code (Parse Payment Amount)**\n\n- This node processes the raw payment data received from **Stripe** via the webhook.  \n- Specifically, it **parses the payment amount** (usually provided in cents by Stripe) into a **readable currency format**.  \n- Example transformation:  \n  - Stripe raw value: `7101`  \n  - Parsed output: `$71.01`  \n- This ensures that the amount is standardized and properly formatted before passing it on to **QuickBooks** for further operations.  \n"
      },
      "typeVersion": 1
    },
    {
      "id": "45b854bb-cd87-4cf6-a67d-bc6a21a2e080",
      "name": "메모2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1536,
        1280
      ],
      "parameters": {
        "color": 4,
        "width": 496,
        "height": 432,
        "content": "### **Step 3 – Get Customer (Stripe)**\n\n- This node retrieves **customer details directly from Stripe** using the customer ID obtained from the payment event.  \n- Ensures all relevant information such as **customer name, email, and billing details** are available for downstream processing.  \n- The fetched data is later used to check if the customer already exists in **QuickBooks** or needs to be created.  \n"
      },
      "typeVersion": 1
    },
    {
      "id": "ae0e4c66-fac8-4514-b816-8de9ed4e4961",
      "name": "메모3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2576,
        768
      ],
      "parameters": {
        "color": 5,
        "width": 400,
        "height": 448,
        "content": "### **Step 4 – Find Customer (QuickBooks)**\n\n- This node checks in **QuickBooks** whether the customer retrieved from Stripe already exists.  \n- The lookup is generally performed using the **email address** or other unique identifiers.  \n- If the customer **exists**, the workflow proceeds with the existing record.  \n- If the customer **does not exist**, the workflow routes to create a new customer in QuickBooks.  \n"
      },
      "typeVersion": 1
    },
    {
      "id": "cfdca3ee-8198-46e5-9729-9c9bcd7f3112",
      "name": "메모4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        3552,
        1232
      ],
      "parameters": {
        "color": 3,
        "width": 432,
        "height": 384,
        "content": "### **Step 5 – IF Node: Customer Exists?**\n\n- This conditional node evaluates whether the customer retrieved from QuickBooks already exists.  \n- **True Branch:** If the customer **does not exist**, the workflow proceeds to the **Create Customer** node to register a new customer in QuickBooks.  \n- **False Branch:** If the customer **already exists**, the workflow skips creation and continues with the existing customer record.  \n"
      },
      "typeVersion": 1
    },
    {
      "id": "e4d83682-634b-43f7-8a10-108f922edb0c",
      "name": "메모5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        4624,
        784
      ],
      "parameters": {
        "width": 448,
        "height": 368,
        "content": "### **Step 6 – Create Customer in QuickBooks**\n\n- This node creates a **new customer record** in QuickBooks using details fetched from Stripe.  \n- It ensures that customers who are not already present in QuickBooks are properly registered.  \n- Key customer information such as **Name, Email, and Billing Details** is mapped from Stripe to QuickBooks fields for consistency.  \n"
      },
      "typeVersion": 1
    },
    {
      "id": "89751237-b9f3-4ace-adcb-4720aa04d5c6",
      "name": "메모6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        5680,
        1232
      ],
      "parameters": {
        "color": 6,
        "width": 448,
        "height": 416,
        "content": "### **Step 7 – Merge Customer Data**\n\n- This is a **Merge node** that combines data streams from the **Create Customer** node and the **If** node.  \n- Ensures both scenarios (newly created customer or already existing customer) flow into a **single unified output**.  \n- Consolidated data is then passed forward for creating the corresponding **Sales Receipt** in QuickBooks.  \n"
      },
      "typeVersion": 1
    },
    {
      "id": "674159c2-9903-4fb3-a36e-a25d4ea847d0",
      "name": "메모7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        6720,
        768
      ],
      "parameters": {
        "color": 4,
        "width": 416,
        "height": 384,
        "content": "### **Step 8 – Create Sales Receipt in QuickBooks**\n\n- This is a **Create Sales Receipt** node in QuickBooks.  \n- Uses the **customer details** (merged in Step 7) and the **payment information** parsed from Stripe.  \n- Automatically generates a **sales receipt** in QuickBooks for the successful payment.  \n- Ensures accurate and real-time recording of customer transactions in QuickBooks.  \n"
      },
      "typeVersion": 1
    },
    {
      "id": "2bc405e8-a7de-4e4b-afe4-58a064311f91",
      "name": "메모8",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -96,
        592
      ],
      "parameters": {
        "color": 4,
        "width": 560,
        "height": 432,
        "content": "### **Prerequisites**\n\nBefore running this workflow, ensure the following setup is complete:\n\n- **Stripe Setup:**\n  - Add a webhook in your Stripe account with the `payment_intent.succeeded` event enabled.  \n  - This allows the workflow to automatically trigger when a payment is successfully completed.  \n\n- **QuickBooks Setup:**\n  - Connect your QuickBooks account in n8n using OAuth2 credentials.  \n  - Ensure access to customer and sales receipt operations is enabled.  \n\n- **n8n Configuration:**\n  - Connect your Stripe credentials to the Webhook and Get Customer nodes.  \n  - Connect your QuickBooks credentials to the Find Customer, Create Customer, and Create Sales Receipt nodes.  \n"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "9d1ff60d-2326-486a-968c-b0fee80f6efc",
  "connections": {
    "5e2a9bfc-45f4-407a-b40e-6244123003eb": {
      "main": [
        [
          {
            "node": "6bca213b-7091-4665-bc11-5c903acb155f",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "7bf091c8-9387-4934-bec7-7d2ef106c5ea": {
      "main": [
        [
          {
            "node": "fb397649-1ad0-4463-9fb8-49e108d8bc79",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "4cc8fdbd-19b2-40d3-8925-1516b66ef8d0": {
      "main": [
        [
          {
            "node": "194c40c9-e398-4b78-a537-1c999570304d",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "25aec5a5-126e-4742-ab8a-011c18b26db7": {
      "main": [
        [
          {
            "node": "5e2a9bfc-45f4-407a-b40e-6244123003eb",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "73f28e8b-93b2-4558-9ec7-230da270ec68": {
      "main": [
        [
          {
            "node": "25aec5a5-126e-4742-ab8a-011c18b26db7",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "5e2a9bfc-45f4-407a-b40e-6244123003eb",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "194c40c9-e398-4b78-a537-1c999570304d": {
      "main": [
        [
          {
            "node": "7bf091c8-9387-4934-bec7-7d2ef106c5ea",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "fb397649-1ad0-4463-9fb8-49e108d8bc79": {
      "main": [
        [
          {
            "node": "73f28e8b-93b2-4558-9ec7-230da270ec68",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
자주 묻는 질문

이 워크플로우를 어떻게 사용하나요?

위의 JSON 구성 코드를 복사하여 n8n 인스턴스에서 새 워크플로우를 생성하고 "JSON에서 가져오기"를 선택한 후, 구성을 붙여넣고 필요에 따라 인증 설정을 수정하세요.

이 워크플로우는 어떤 시나리오에 적합한가요?

고급 - 기타, 멀티모달 AI

유료인가요?

이 워크플로우는 완전히 무료이며 직접 가져와 사용할 수 있습니다. 다만, 워크플로우에서 사용하는 타사 서비스(예: OpenAI API)는 사용자 직접 비용을 지불해야 할 수 있습니다.

워크플로우 정보
난이도
고급
노드 수17
카테고리2
노드 유형7
난이도 설명

고급 사용자를 위한 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에서 보기

이 워크플로우 공유

카테고리

카테고리: 34