{
  "name": "LiveConnect 02 \u2014 Bulk WABA Template Sending",
  "nodes": [
    {
      "parameters": {
        "content": "## Bulk template sending (WhatsApp Business API)\n\n1. Replace the **Recipients (demo)** node with your real source: Google Sheets, a database, or the LiveConnect node's own `Contact \u00b7 Get Many`.\n2. In **Send Template** choose the **Channel** and the **Template** from the dropdowns: the template's label shows how many variables it needs and whether it includes an image or video.\n3. For the values that change on each row you have two options:\n   - Fill in the **Variable {{1}}, {{2}}\u2026** fields with expressions (`{{ $json.nombre }}`).\n   - Or send them all together via **Additional Fields \u2192 Body Variables (Comma-Separated)**, which is what this example does and also works when the template is chosen with an expression.\n4. The 2 s **Wait** regulates the sending pace (adjust it to your WABA rate limit).\n\nEach item must include `numero` (destination phone number) and `variables` (CSV in the template's order).",
        "height": 320,
        "width": 440
      },
      "id": "b2000000-0000-4000-8000-000000000001",
      "name": "Instructions",
      "type": "n8n-nodes-base.stickyNote",
      "typeVersion": 1,
      "position": [
        0,
        -140
      ]
    },
    {
      "parameters": {},
      "id": "b2000000-0000-4000-8000-000000000002",
      "name": "Run Manually",
      "type": "n8n-nodes-base.manualTrigger",
      "typeVersion": 1,
      "position": [
        480,
        40
      ]
    },
    {
      "parameters": {
        "jsCode": "// DEMO: replace with Google Sheets, MySQL, or LiveConnect Contact \u00b7 Get Many\nreturn [\n\t{ json: { numero: '573001112233', variables: 'Ana,Pro Plan' } },\n\t{ json: { numero: '573004445566', variables: 'Luis,Basic Plan' } },\n];"
      },
      "id": "b2000000-0000-4000-8000-000000000003",
      "name": "Recipients (demo)",
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [
        700,
        40
      ]
    },
    {
      "parameters": {
        "batchSize": 10,
        "options": {}
      },
      "id": "b2000000-0000-4000-8000-000000000004",
      "name": "In Batches",
      "type": "n8n-nodes-base.splitInBatches",
      "typeVersion": 3,
      "position": [
        920,
        40
      ]
    },
    {
      "parameters": {
        "resource": "waba",
        "operation": "sendTemplate",
        "id_canal": "",
        "numero": "={{ $json.numero }}",
        "id_plantilla": "",
        "additionalFields": {
          "variables_csv": "={{ $json.variables }}"
        }
      },
      "id": "b2000000-0000-4000-8000-000000000005",
      "name": "Send Template",
      "type": "n8n-nodes-liveconnect.liveConnect",
      "typeVersion": 1,
      "position": [
        1140,
        60
      ]
    },
    {
      "parameters": {
        "amount": 2
      },
      "id": "b2000000-0000-4000-8000-000000000006",
      "name": "Rate-Limit Pause",
      "type": "n8n-nodes-base.wait",
      "typeVersion": 1.1,
      "position": [
        1360,
        60
      ]
    },
    {
      "parameters": {},
      "id": "b2000000-0000-4000-8000-000000000007",
      "name": "Done",
      "type": "n8n-nodes-base.noOp",
      "typeVersion": 1,
      "position": [
        1140,
        -120
      ]
    }
  ],
  "connections": {
    "Run Manually": {
      "main": [
        [
          {
            "node": "Recipients (demo)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Recipients (demo)": {
      "main": [
        [
          {
            "node": "In Batches",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "In Batches": {
      "main": [
        [
          {
            "node": "Done",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Send Template",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Send Template": {
      "main": [
        [
          {
            "node": "Rate-Limit Pause",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Rate-Limit Pause": {
      "main": [
        [
          {
            "node": "In Batches",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "settings": {
    "executionOrder": "v1"
  },
  "meta": {
    "templateCredsSetupCompleted": false
  }
}