8
n8n 한국어amn8n.com

Rapiwa API를 사용하여 WhatsApp에서 WooCommerce 인보이스 자동 발송

중급

이것은CRM분야의자동화 워크플로우로, 15개의 노드를 포함합니다.주로 If, Code, Wait, HttpRequest, GoogleSheets 등의 노드를 사용하며. Rapiwa API를 사용하여 WhatsApp으로 WooCommerce 인voice 자동 발송

사전 요구사항
  • 대상 API의 인증 정보가 필요할 수 있음
  • Google Sheets API 인증 정보

카테고리

워크플로우 미리보기
노드 연결 관계를 시각적으로 표시하며, 확대/축소 및 이동을 지원합니다
워크플로우 내보내기
다음 JSON 구성을 복사하여 n8n에 가져오면 이 워크플로우를 사용할 수 있습니다
{
  "id": "ze5g8DGP9lpajRcO",
  "meta": {
    "instanceId": "cb9a1e5321767b6316634728341237e564b2587ab15b74ca0a89eb02a53484d6"
  },
  "name": "Send WooCommerce Invoices on WhatsApp Automatically Using Rapiwa API",
  "tags": [],
  "nodes": [
    {
      "id": "5f97a4ae-506f-4eeb-b65b-7387d6db9d37",
      "name": "조건문",
      "type": "n8n-nodes-base.if",
      "position": [
        1600,
        784
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "3ab8725a-9268-45fd-b91c-0e055fe6fa7c",
              "operator": {
                "type": "boolean",
                "operation": "true",
                "singleValue": true
              },
              "leftValue": "={{ $json.data.exists }}",
              "rightValue": "=\"true\""
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "54f3f8ff-50f7-455d-8cbc-ba13df739240",
      "name": "대기",
      "type": "n8n-nodes-base.wait",
      "position": [
        2096,
        864
      ],
      "webhookId": "6c474e54-eb3c-4fcd-b455-948322cd0121",
      "parameters": {},
      "typeVersion": 1.1
    },
    {
      "id": "61f4a6bc-43fd-44f9-a1bf-09ad7fb8cc78",
      "name": "항목 반복",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        624,
        768
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 3
    },
    {
      "id": "bff871ca-9ae6-4988-ada1-6d5f5ea9f959",
      "name": "웹훅 응답 데이터 정리",
      "type": "n8n-nodes-base.code",
      "position": [
        192,
        768
      ],
      "parameters": {
        "jsCode": "return $input.all().map(item => {\n  const body = item.json;\n\n  const customer = {\n    first_name: body.billing.first_name,\n    last_name: body.billing.last_name,\n    name: body.billing.first_name + ' ' + body.billing.last_name,\n    email: body.billing.email,\n    phone: body.billing.phone,\n    address: {\n      address_1: body.billing.address_1,\n      address_2: body.billing.address_2,\n      city: body.billing.city,\n      state: body.billing.state,\n      postcode: body.billing.postcode,\n      country: body.billing.country\n    }\n  };\n\n  const products = body.line_items.map(product => ({\n    name: product.name,\n    product_id: product.product_id,\n    variation_id: product.variation_id,\n    quantity: product.quantity,\n    total: `${body.currency} ${product.total}`, // for currency here\n    price: product.price,\n    currency: body.currency,\n    image: product.image?.src || null,\n    size: product.meta_data?.find(meta => meta.key === \"size\")?.value || null\n  }));\n\n  return {\n    json: {\n      data: {\n        customer,\n        products,\n        invoice_link: body.payment_url\n      }\n    }\n  };\n});\n"
      },
      "typeVersion": 2
    },
    {
      "id": "bde660f4-cf63-4d5e-bff2-65f8c77f3342",
      "name": "WhatsApp 번호 정리",
      "type": "n8n-nodes-base.code",
      "position": [
        1024,
        784
      ],
      "parameters": {
        "jsCode": "const items = $input.all();\n\nconst updatedItems = items.map((item) => {\n  const waNo = item?.json?.[\"number\"];\n  const waNoStr = typeof waNo === 'string'\n    ? waNo\n    : (waNo !== undefined && waNo !== null ? String(waNo) : \"\");\n\n  const cleanedNumber = waNoStr.replace(/\\D/g, \"\"); // Remove non-digit characters\n\n  item.json[\"number\"] = cleanedNumber;\n\n  return item;\n});\n\nreturn updatedItems;\n"
      },
      "typeVersion": 2
    },
    {
      "id": "bbda923c-2c75-4f33-9b78-d0b895f91ac7",
      "name": "Rapiwa를 사용하여 유효한 WhatsApp 번호 확인",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1264,
        784
      ],
      "parameters": {
        "url": "=https://app.rapiwa.com/api/verify-whatsapp",
        "method": "POST",
        "options": {},
        "sendBody": true,
        "authentication": "genericCredentialType",
        "bodyParameters": {
          "parameters": [
            {
              "name": "number",
              "value": "={{ $json.data.customer.phone }}"
            }
          ]
        },
        "genericAuthType": "httpBearerAuth"
      },
      "credentials": {
        "httpBearerAuth": {
          "id": "jnaHCyYia9OAFozh",
          "name": "Rapiwa Bearer YOUR_TOKEN_HERE"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "688ab63d-8a18-4596-8354-9faaec7ac854",
      "name": "Rapiwa를 사용하여 메시지 발송",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1856,
        672
      ],
      "parameters": {
        "url": "=https://app.rapiwa.com/api/send-message",
        "method": "POST",
        "options": {},
        "sendBody": true,
        "authentication": "genericCredentialType",
        "bodyParameters": {
          "parameters": [
            {
              "name": "number",
              "value": "={{ $json.data.number }}"
            },
            {
              "name": "message_type",
              "value": "text"
            },
            {
              "name": "message",
              "value": "=Hey *{{ $('Clean WhatsApp Number').item.json.data.customer.name }}*,\n\nThank you for your recent order from *SpaGreen Creative*!\nWe truly appreciate your support.\n\n🛍️ *Order Summary:*\n• *Product:* {{ $('Clean WhatsApp Number').item.json.data.products[0].name }}\n• *Size:* {{ $('Clean WhatsApp Number').item.json.data.products[0].size }}\n• *Quantity:* {{ $('Clean WhatsApp Number').item.json.data.products[0].quantity }}\n• *Product ID:* {{ $('Clean WhatsApp Number').item.json.data.products[0].product_id }}\n• *Price per item:* {{ $('Clean WhatsApp Number').item.json.data.products[0].price }}\n• *Total Price:* {{ $('Clean WhatsApp Number').item.json.data.products[0].total }} \n\n📦 *Shipping Address:* {{ $('Clean WhatsApp Number').item.json.data.customer.address.address_1 }}\n\n🖼️ *Product Preview:* {{ $('Clean WhatsApp Number').item.json.data.products[0].image }}\n\n🧾 *Invoice:* {{ $('Clean WhatsApp Number').item.json.data.invoice_link }}\n\nIf you have any questions or need help, feel free to reach out.\n\n– Team *SpaGreen Creative*\n"
            }
          ]
        },
        "genericAuthType": "httpBearerAuth"
      },
      "credentials": {
        "httpBearerAuth": {
          "id": "jnaHCyYia9OAFozh",
          "name": "Rapiwa Bearer YOUR_TOKEN_HERE"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "77e7e43e-79ca-48bd-a85d-7be61344a3bd",
      "name": "확인 및 발송된 시트에 행 추가",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        2080,
        672
      ],
      "parameters": {
        "columns": {
          "value": {
            "name": "={{ $('Clean WhatsApp Number').item.json.data.customer.name }}",
            "size": "={{ $('Clean WhatsApp Number').item.json.data.products[0].size }}",
            "email": "={{ $('Clean WhatsApp Number').item.json.data.customer.email }}",
            "number": "={{ $json.to }}",
            "status": "sent",
            "address1": "={{ $('Clean WhatsApp Number').item.json.data.customer.address.address_1 }}",
            "quantity": "={{ $('Clean WhatsApp Number').item.json.data.products[0].quantity }}",
            "validity": "verified",
            "productId": "={{ $('Clean WhatsApp Number').item.json.data.products[0].product_id }}",
            "totalPrice": "={{ $('Clean WhatsApp Number').item.json.data.products[0].total }}",
            "invoiceLink": "={{ $('Clean WhatsApp Number').item.json.data.invoice_link }}",
            "productImage": "={{ $('Clean WhatsApp Number').item.json.data.products[0].image }}",
            "productTitle": "={{ $('Clean WhatsApp Number').item.json.data.products[0].name }}"
          },
          "schema": [
            {
              "id": "name",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "name",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "number",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "number",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "email",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "email",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "address1",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "address1",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "productTitle",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "productTitle",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "productId",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "productId",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "size",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "size",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "quantity",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "quantity",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "totalPrice",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "totalPrice",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "productImage",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "productImage",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "invoiceLink",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "invoiceLink",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "status",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "status",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "validity",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "validity",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "append",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1NVYsvOg3mzsAGlzJiL7-2mtkN-5gsmqd3fG8hboE3vk/edit#gid=0",
          "cachedResultName": "Sheet1"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1NVYsvOg3mzsAGlzJiL7-2mtkN-5gsmqd3fG8hboE3vk",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1NVYsvOg3mzsAGlzJiL7-2mtkN-5gsmqd3fG8hboE3vk/edit?usp=drivesdk",
          "cachedResultName": "WooCommerce - Send WhatsApp invoice link"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "gFH3Wjq6yYqSEAei",
          "name": "Google Sheets"
        }
      },
      "typeVersion": 4.6
    },
    {
      "id": "ffac664e-9c0c-48e8-aa24-2256cfbbaca2",
      "name": "WooCommerce 트리거",
      "type": "n8n-nodes-base.wooCommerceTrigger",
      "position": [
        -64,
        768
      ],
      "webhookId": "3aa9eb89-094d-49ba-904a-5c2d43015db8",
      "parameters": {
        "event": "order.updated"
      },
      "credentials": {
        "wooCommerceApi": {
          "id": "BZ5Lp9IB4Phney4R",
          "name": "WooCommerce (get customer)"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "9ed7e611-af93-4329-a39c-992cbdc51b33",
      "name": "미확인 및 미발송 시트에 행 추가",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        1872,
        864
      ],
      "parameters": {
        "columns": {
          "value": {
            "name": "={{ $('Clean WhatsApp Number').item.json.data.customer.name }}",
            "size": "={{ $('Clean WhatsApp Number').item.json.data.products[0].size }}",
            "email": "={{ $('Clean WhatsApp Number').item.json.data.customer.email }}",
            "number": "={{ $json.data.number }}",
            "status": "not sent",
            "address1": "={{ $('Clean WhatsApp Number').item.json.data.customer.address.address_1 }}",
            "quantity": "={{ $('Clean WhatsApp Number').item.json.data.products[0].quantity }}",
            "validity": "unverified",
            "productId": "={{ $('Clean WhatsApp Number').item.json.data.products[0].product_id }}",
            "totalPrice": "={{ $('Clean WhatsApp Number').item.json.data.products[0].total }}",
            "invoiceLink": "={{ $('Clean WhatsApp Number').item.json.data.invoice_link }}",
            "productImage": "={{ $('Clean WhatsApp Number').item.json.data.products[0].image }}",
            "productTitle": "={{ $('Clean WhatsApp Number').item.json.data.products[0].name }}"
          },
          "schema": [
            {
              "id": "name",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "name",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "number",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "number",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "email",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "email",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "address1",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "address1",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "productTitle",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "productTitle",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "productId",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "productId",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "size",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "size",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "quantity",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "quantity",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "totalPrice",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "totalPrice",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "productImage",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "productImage",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "invoiceLink",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "invoiceLink",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "status",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "status",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "validity",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "validity",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "append",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1NVYsvOg3mzsAGlzJiL7-2mtkN-5gsmqd3fG8hboE3vk/edit#gid=0",
          "cachedResultName": "Sheet1"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1NVYsvOg3mzsAGlzJiL7-2mtkN-5gsmqd3fG8hboE3vk",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1NVYsvOg3mzsAGlzJiL7-2mtkN-5gsmqd3fG8hboE3vk/edit?usp=drivesdk",
          "cachedResultName": "WooCommerce - Send WhatsApp invoice link"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "gFH3Wjq6yYqSEAei",
          "name": "Google Sheets"
        }
      },
      "typeVersion": 4.6
    },
    {
      "id": "7f93c1a4-5703-4edd-976f-fecf168023e4",
      "name": "메모지",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1392,
        480
      ],
      "parameters": {
        "width": 1216,
        "height": 1072,
        "content": "# Send WooCommerce Invoices on WhatsApp Automatically Using Rapiwa API\n\n## Overview\nThis workflow listens for new or updated WooCommerce orders, cleans and structures the order data, processes orders in batches, and standardizes WhatsApp phone numbers. It verifies phone numbers via the Rapiwa API, sends invoice links or messages to verified numbers, and logs results into separate Google Sheets tabs for verified and unverified numbers. Throttling and looping are managed using batch processing and wait delays.\n\n\n## Features\n- Extracts customer, address, product, and invoice_link from order payloads.\n- Batch processing for controlled throughput.\n- WhatsApp verification step prior to sending messages.\n- Conditional branching based on verification result (`$json.data.exists == \"true\"`).\n- Personalized message templates using product and customer fields.\n- Logging to Google Sheets with distinct columns for verified and unverified flows.\n\n\n## Google Sheet Required Columns\n**A Google Sheet** formatted like this ➤ [Sample](https://docs.google.com/spreadsheets/d/1NVYsvOg3mzsAGlzJiL7-2mtkN-5gsmqd3fG8hboE3vk/edit?usp=sharing)\n\n\n## How to Use This Workflow\n1. Configure credentials:\n   - Add Rapiwa Bearer YOUR_TOKEN_HERE to the `Rapiwa Bearer YOUR_TOKEN_HERE` credential.\n   - Add Google Sheets OAuth2 credential and ensure the spreadsheet ID is accessible.\n   - Configure WooCommerce credentials for the trigger (or replace the trigger with a Shopify webhook and set Shopify credentials).\n2. Verify the Google Sheet has the required columns listed above.\n4. Watch the execution path: webhook → mapping → batch loop → number cleaning → verify → IF → send or log → append sheet → wait → continue.\n\n## Customization Ideas\n- Replace WooCommerce trigger with a Shopify webhook trigger and adapt the mapping code.\n- Change the message template to include different product or customer fields.\n- Add filters in the mapping code to target customers (e.g., `total_spent > 5000`, order count, or tags).\n- Add fallback channels (SMS or email) for unverified numbers before marking as 'not sent'.\n- Send an admin summary (Slack or email) after each run.\n- Enrich customer data with external lookups (CRM/loyalty service) before sending.\n\n## Useful Links\n- **Dashboard:** [https://app.rapiwa.com](https://app.rapiwa.com/login)\n- **Official Website:** [https://rapiwa.com](https://rapiwa.com/)\n- **Documentation:** [https://docs.rapiwa.com](https://docs.rapiwa.com/)\n"
      },
      "typeVersion": 1
    },
    {
      "id": "ffb8f162-d281-4700-a655-9c67cd3db51d",
      "name": "메모지4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1504,
        176
      ],
      "parameters": {
        "width": 848,
        "height": 912,
        "content": "## If (Condition)\n- Purpose: Branch the workflow based on Rapiwa verification response.\n- It's route to `Send Message Using Rapiwa` or `Unverified & Not sent`.\n\n\n## Send Message Using Rapiwa\n- Purpose: Send a personalized WhatsApp message (text) via Rapiwa to the verified number.\n- URL: `https://app.rapiwa.com/api/send-message`\n- Credentials: `httpBearerAuth` (Rapiwa Bearer YOUR_TOKEN_HERE)\n\n\n## Append Rows in Sheet Verified & Sent\n- Purpose: Append a row for each successful send with `status: sent` and `validity: verified`.\n\n\n## Append Rows in Sheet Unverified & Not sent\n- Purpose: Append a row for unverified numbers with `validity: unverified` and `status: not sent`.\n\n## Wait\n- Purpose: Delay between processing cycles and re-enter the `Loop Over Items` chain."
      },
      "typeVersion": 1
    },
    {
      "id": "da93b6ea-eabe-49f2-82e1-74bfc22921cc",
      "name": "메모지3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        832,
        416
      ],
      "parameters": {
        "width": 656,
        "height": 672,
        "content": "## 1. Clean WhatsApp Number\n- Purpose: Ensure the `number` field is a string and remove non-digit characters.\n- Why it matters: Ensures Rapiwa receives a consistent numeric-only phone number.\n\n\n## 2. Check valid whatsapp number Using Rapiwa\n- Purpose: Verify whether the cleaned number is registered on WhatsApp via Rapiwa.\n- HTTP method: POST\n- URL: `https://app.rapiwa.com/api/verify-whatsapp` (set in the node as an expression)"
      },
      "typeVersion": 1
    },
    {
      "id": "3b65cf78-cfc1-417b-8a45-3719a25efbf0",
      "name": "메모지1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -160,
        480
      ],
      "parameters": {
        "width": 624,
        "height": 608,
        "content": "## 1. WooCommerce Trigger\n- Trigger event: `order. complete`\n- Purpose: Entry point for the workflow. Receives order complete from WooCommerce.\n- Credentials: `wooCommerceApi` (example name: \"WooCommerce (get customer)\").\n\n## 2. Clean Webhooks Response Data\n- Purpose: Transform the incoming order payload into a compact structure \n- Why it matters: Normalizes different incoming payload shapes into a single downstream contract.\n"
      },
      "typeVersion": 1
    },
    {
      "id": "8e38d72a-772a-4203-8d71-4953684bcc8e",
      "name": "메모지2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -160,
        1104
      ],
      "parameters": {
        "color": 7,
        "width": 2512,
        "height": 448,
        "content": "## How to Use — Step-by-step Setup\n1) Configure credentials in n8n\n   - Rapiwa: add your Bearer YOUR_TOKEN_HERE to an HTTP Bearer YOUR_TOKEN_HERE (`Rapiwa Bearer YOUR_TOKEN_HERE`).\n   - Google Sheets: connect OAuth2 credentials (`Google Sheets`).\n   - WooCommerce: add WooCommerce API credentials for the trigger (`WooCommerce (get customer)`), or configure Shopify credentials if adapting.\n\n3) Configure nodes\n   - Trigger: `WooCommerce Trigger` (event: `order.updated`) or a Shopify webhook.\n   - Code: `Clean Webhooks Response Data` — map incoming order into `{ data: { customer, products, invoice_link } }`.\n   - Code: `Clean WhatsApp Number` — remove non-digit characters and normalize numbers.\n   - HTTP Request: `Check valid whatsapp number Using Rapiwa` — POST `https://app.rapiwa.com/api/verify-whatsapp` with `{ number }`.\n   - HTTP Request: `Send Message Using Rapiwa` — POST `https://app.rapiwa.com/api/send-message` with `{ number, message_type, message }`.\n"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "bbe634d2-4b6c-45a8-b76d-78e29d6e7ebd",
  "connections": {
    "5f97a4ae-506f-4eeb-b65b-7387d6db9d37": {
      "main": [
        [
          {
            "node": "688ab63d-8a18-4596-8354-9faaec7ac854",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "9ed7e611-af93-4329-a39c-992cbdc51b33",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "54f3f8ff-50f7-455d-8cbc-ba13df739240": {
      "main": [
        [
          {
            "node": "61f4a6bc-43fd-44f9-a1bf-09ad7fb8cc78",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "61f4a6bc-43fd-44f9-a1bf-09ad7fb8cc78": {
      "main": [
        [],
        [
          {
            "node": "bde660f4-cf63-4d5e-bff2-65f8c77f3342",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "ffac664e-9c0c-48e8-aa24-2256cfbbaca2": {
      "main": [
        [
          {
            "node": "bff871ca-9ae6-4988-ada1-6d5f5ea9f959",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "bde660f4-cf63-4d5e-bff2-65f8c77f3342": {
      "main": [
        [
          {
            "node": "bbda923c-2c75-4f33-9b78-d0b895f91ac7",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "688ab63d-8a18-4596-8354-9faaec7ac854": {
      "main": [
        [
          {
            "node": "77e7e43e-79ca-48bd-a85d-7be61344a3bd",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "bff871ca-9ae6-4988-ada1-6d5f5ea9f959": {
      "main": [
        [
          {
            "node": "61f4a6bc-43fd-44f9-a1bf-09ad7fb8cc78",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "77e7e43e-79ca-48bd-a85d-7be61344a3bd": {
      "main": [
        [
          {
            "node": "54f3f8ff-50f7-455d-8cbc-ba13df739240",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "bbda923c-2c75-4f33-9b78-d0b895f91ac7": {
      "main": [
        [
          {
            "node": "5f97a4ae-506f-4eeb-b65b-7387d6db9d37",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "9ed7e611-af93-4329-a39c-992cbdc51b33": {
      "main": [
        [
          {
            "node": "54f3f8ff-50f7-455d-8cbc-ba13df739240",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
자주 묻는 질문

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

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

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

중급 - 고객관계관리

유료인가요?

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

워크플로우 정보
난이도
중급
노드 수15
카테고리1
노드 유형8
난이도 설명

일정 경험을 가진 사용자를 위한 6-15개 노드의 중간 복잡도 워크플로우

외부 링크
n8n.io에서 보기

이 워크플로우 공유

카테고리

카테고리: 34