This workflow follows the HTTP Request → Supabase recipe pattern — see all workflows that pair these two integrations.
The workflow JSON
Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →
{
"updatedAt": "2025-06-15T14:48:29.804Z",
"createdAt": "2025-06-15T14:48:29.804Z",
"id": "AXSCtLdl0v11I3A2",
"name": "WhatsApp Ninja | Disparo em Massa",
"active": false,
"isArchived": false,
"nodes": [
{
"parameters": {
"method": "POST",
"url": "={{ $('Map').item.json.instance.server_url }}/message/sendText/{{ $('Map').item.json.instance.name }}",
"sendHeaders": true,
"headerParameters": {
"parameters": [
{
"name": "apikey",
"value": "=97FEAC55E9F6-4724-9AFB-6918B3860205"
}
]
},
"sendBody": true,
"specifyBody": "json",
"jsonBody": "={\n\"number\": \"{{ $json.phone }}\",\n\"linkPreview\": false,\n\"text\": \"Fala, {{ $('Loop Over Items').item.json.name.split(' ')[0] }}!\\n\\nVi que voc\u00ea quase entrou pro time\u2026 ent\u00e3o liberei um cupom exclusivo pra voc\u00ea usar nas pr\u00f3ximas horas:\\n\\nCUPOM: NINJA10\\n\\n10% OFF no Automa\u00e7\u00e3o na Pr\u00e1tica ou no Ninja Academy \ud83d\udc47\\n\\nAutoma\u00e7\u00e3o Na Pr\u00e1tica:\\nhttps://pay.kiwify.com.br/biqZ72y?coupon=NINJA10\\n\\nNinja Academy:\\nhttps://pay.kiwify.com.br/bFzjvtu?coupon=NINJA10\\n\\nQuando o tempo acabar, o cupom expira. Se quiser ativar, s\u00f3 me responder aqui!\"\n}",
"options": {}
},
"id": "77331325-5c12-42df-8cff-327ab34daa0b",
"name": "Send Message",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.1,
"position": [
-580,
220
],
"continueOnFail": true,
"onError": "continueErrorOutput"
},
{
"parameters": {
"amount": "={{ Math.floor(Math.random() * (60 - 5 + 1)) + 10 }}"
},
"id": "1fb74110-3cbc-42b0-9baf-c20146e9e444",
"name": "Wait",
"type": "n8n-nodes-base.wait",
"typeVersion": 1.1,
"position": [
0,
0
]
},
{
"parameters": {
"operation": "getAll",
"tableId": "leads",
"limit": 200,
"filters": {
"conditions": [
{
"keyName": "status",
"condition": "eq",
"keyValue": "checkout_abandonment"
},
{
"keyName": "status",
"condition": "eq",
"keyValue": "pix_created"
},
{
"keyName": "status",
"condition": "eq",
"keyValue": "boleto_gerado"
},
{
"keyName": "status",
"condition": "eq",
"keyValue": "refund"
}
]
}
},
"type": "n8n-nodes-base.supabase",
"typeVersion": 1,
"position": [
-2000,
40
],
"id": "c0cbc71d-6bc9-4f5c-8af5-b8752683a4e1",
"name": "Supabase"
},
{
"parameters": {
"compare": "selectedFields",
"fieldsToCompare": "phone",
"options": {}
},
"type": "n8n-nodes-base.removeDuplicates",
"typeVersion": 2,
"position": [
-1740,
40
],
"id": "42221c7e-9e35-4a09-8511-37e99bad6e5a",
"name": "Remove Duplicates"
},
{
"parameters": {
"options": {}
},
"type": "n8n-nodes-base.splitInBatches",
"typeVersion": 3,
"position": [
-1400,
40
],
"id": "f631414f-8d5e-4089-afa0-8870320e23eb",
"name": "Loop Over Items"
},
{
"parameters": {
"assignments": {
"assignments": [
{
"id": "b2f1f6b5-292f-4695-9e41-be200c6d7053",
"name": "instance.name",
"value": "=Ninja",
"type": "string"
},
{
"id": "572fcce5-8a26-4e8f-a48a-ef0bee569dcd",
"name": "instance.apikey",
"value": "=4B7813F2E9A1-4A19-8F24-F1ECC0D12018",
"type": "string"
},
{
"id": "e90043db-657b-461c-b040-2d6089abfbdb",
"name": "instance.server_url",
"value": "=https://api.ninjadasautomacoes.com",
"type": "string"
}
]
},
"options": {}
},
"id": "f12dcabc-518f-4c76-8724-3a0e2f8d9195",
"name": "Map",
"type": "n8n-nodes-base.set",
"typeVersion": 3.4,
"position": [
-2200,
40
]
},
{
"parameters": {
"assignments": {
"assignments": [
{
"id": "8d6866cf-e013-403e-b8a7-cb8ae08394b0",
"name": "phone",
"value": "={{ (() => {\n const raw = $json.phone?.toString().replace(/\\D/g, '');\n if (!raw) return null;\n\n // Se j\u00e1 come\u00e7a com 55 e tem 13 d\u00edgitos (55 + DDD + 9 d\u00edgitos)\n if (raw.startsWith('55') && raw.length === 13) return `+${raw}`;\n\n // Se j\u00e1 come\u00e7a com 55 e tem s\u00f3 12 d\u00edgitos (DDD + 8 d\u00edgitos), assume que falta o 9\n if (raw.startsWith('55') && raw.length === 12) {\n return `+55${raw.slice(2, 4)}9${raw.slice(4)}`;\n }\n\n // Se tem 11 d\u00edgitos (DDD + 9 d\u00edgitos), adiciona +55\n if (raw.length === 11) return `+55${raw}`;\n\n // Se tem 10 d\u00edgitos (DDD + 8 d\u00edgitos), adiciona o 9 no in\u00edcio do n\u00famero e +55\n if (raw.length === 10) {\n return `+55${raw.slice(0, 2)}9${raw.slice(2)}`;\n }\n\n return null;\n})() }}",
"type": "string"
},
{
"id": "a2d19e59-d92d-4390-a78d-53aab3a9934d",
"name": "status",
"value": "={{ $json.status }}",
"type": "string"
}
]
},
"options": {}
},
"type": "n8n-nodes-base.set",
"typeVersion": 3.4,
"position": [
-1120,
20
],
"id": "cb8cb79f-3f7c-42c5-824c-7728063abb19",
"name": "Lead Data"
},
{
"parameters": {
"operation": "update",
"tableId": "leads",
"filters": {
"conditions": [
{
"keyName": "id",
"condition": "eq",
"keyValue": "={{ $('Supabase').item.json.id }}"
}
]
},
"fieldsUi": {
"fieldValues": [
{
"fieldId": "status",
"fieldValue": "=coupon_sent_{{ $('Remove Duplicates').item.json.status }}"
}
]
}
},
"type": "n8n-nodes-base.supabase",
"typeVersion": 1,
"position": [
360,
0
],
"id": "d8d71e1f-858b-4244-824c-09c40f3726bc",
"name": "Update Coupon Sent"
},
{
"parameters": {
"operation": "update",
"tableId": "leads",
"filters": {
"conditions": [
{
"keyName": "id",
"condition": "eq",
"keyValue": "={{ $('Supabase').item.json.id }}"
}
]
},
"fieldsUi": {
"fieldValues": [
{
"fieldId": "status",
"fieldValue": "=coupon_error_{{ $('Remove Duplicates').item.json.status }}"
}
]
}
},
"type": "n8n-nodes-base.supabase",
"typeVersion": 1,
"position": [
360,
260
],
"id": "54eca53d-770e-41eb-a898-062332740da9",
"name": "Update Coupon Error"
},
{
"parameters": {
"rule": {
"interval": [
{
"daysInterval": 3,
"triggerAtHour": 20
}
]
}
},
"type": "n8n-nodes-base.scheduleTrigger",
"typeVersion": 1.2,
"position": [
-2380,
40
],
"id": "0781b881-4a44-46c2-9177-0d83890e8156",
"name": "Schedule Trigger"
},
{
"parameters": {
"conditions": {
"options": {
"caseSensitive": true,
"leftValue": "",
"typeValidation": "strict",
"version": 2
},
"conditions": [
{
"id": "9e1b7e21-2c83-4ef5-af8b-616821ea8429",
"leftValue": "={{ $json.status }}",
"rightValue": "refund",
"operator": {
"type": "string",
"operation": "equals",
"name": "filter.operator.equals"
}
}
],
"combinator": "and"
},
"options": {}
},
"type": "n8n-nodes-base.if",
"typeVersion": 2.2,
"position": [
-900,
20
],
"id": "231ee40c-a5c0-4f10-a235-23dc047c839a",
"name": "If"
},
{
"parameters": {
"method": "POST",
"url": "={{ $('Map').item.json.instance.server_url }}/message/sendText/{{ $('Map').item.json.instance.name }}",
"sendHeaders": true,
"headerParameters": {
"parameters": [
{
"name": "apikey",
"value": "=97FEAC55E9F6-4724-9AFB-6918B3860205"
}
]
},
"sendBody": true,
"specifyBody": "json",
"jsonBody": "={\n \"number\": \"{{ $json.phone }}\",\n \"linkPreview\": false,\n \"text\": \"Fala, {{ $('Loop Over Items').item.json.name.split(' ')[0] }}!\\n\\nVi que voc\u00ea acabou pedindo reembolso, e t\u00e1 tudo certo com isso \u2014 \u00e0s vezes \u00e9 s\u00f3 uma quest\u00e3o de momento.\\n\\nMas se quiser retomar quando estiver pronto, liberei um **cupom exclusivo** pra voc\u00ea usar nas pr\u00f3ximas horas:\\n\\nCUPOM: NINJA10\\n\\n10% OFF no Automa\u00e7\u00e3o na Pr\u00e1tica ou no Ninja Academy \ud83d\udc47\\n\\nAutoma\u00e7\u00e3o Na Pr\u00e1tica:\\nhttps://pay.kiwify.com.br/biqZ72y?coupon=NINJA10\\n\\nNinja Academy:\\nhttps://pay.kiwify.com.br/bFzjvtu?coupon=NINJA10\\n\\nO cupom expira em breve, mas se quiser aproveitar \u00e9 s\u00f3 me responder aqui. Tamo junto!\"\n}\n",
"options": {}
},
"id": "f447b05d-ea09-402c-b4e3-933d567e28e6",
"name": "Send Message Refund",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.1,
"position": [
-580,
20
],
"continueOnFail": true,
"onError": "continueErrorOutput"
}
],
"connections": {
"Wait": {
"main": [
[
{
"node": "Update Coupon Sent",
"type": "main",
"index": 0
}
]
]
},
"Supabase": {
"main": [
[
{
"node": "Remove Duplicates",
"type": "main",
"index": 0
}
]
]
},
"Remove Duplicates": {
"main": [
[
{
"node": "Loop Over Items",
"type": "main",
"index": 0
}
]
]
},
"Loop Over Items": {
"main": [
[],
[
{
"node": "Lead Data",
"type": "main",
"index": 0
}
]
]
},
"Map": {
"main": [
[
{
"node": "Supabase",
"type": "main",
"index": 0
}
]
]
},
"Send Message": {
"main": [
[
{
"node": "Wait",
"type": "main",
"index": 0
}
],
[
{
"node": "Update Coupon Error",
"type": "main",
"index": 0
}
]
]
},
"Lead Data": {
"main": [
[
{
"node": "If",
"type": "main",
"index": 0
}
]
]
},
"Update Coupon Sent": {
"main": [
[
{
"node": "Loop Over Items",
"type": "main",
"index": 0
}
]
]
},
"Update Coupon Error": {
"main": [
[
{
"node": "Loop Over Items",
"type": "main",
"index": 0
}
]
]
},
"Schedule Trigger": {
"main": [
[
{
"node": "Map",
"type": "main",
"index": 0
}
]
]
},
"If": {
"main": [
[
{
"node": "Send Message Refund",
"type": "main",
"index": 0
}
],
[
{
"node": "Send Message",
"type": "main",
"index": 0
}
]
]
},
"Send Message Refund": {
"main": [
[
{
"node": "Wait",
"type": "main",
"index": 0
}
],
[
{
"node": "Update Coupon Error",
"type": "main",
"index": 0
}
]
]
}
},
"settings": {
"executionOrder": "v1"
},
"staticData": null,
"meta": null,
"versionId": "94a8550d-363b-43de-89cb-f86d40ae03b3",
"activeVersionId": null,
"triggerCount": 0,
"shared": [
{
"updatedAt": "2025-06-15T14:48:29.804Z",
"createdAt": "2025-06-15T14:48:29.804Z",
"role": "workflow:owner",
"workflowId": "AXSCtLdl0v11I3A2",
"projectId": "o60HadikmqrvYZ9Z"
}
],
"activeVersion": null,
"tags": [
{
"updatedAt": "2025-06-14T14:35:30.743Z",
"createdAt": "2025-06-14T14:35:30.743Z",
"id": "f7Ttu7FQN3EvRKX9",
"name": "\ud83e\udd77\ud83c\udffc Ninja Automa\u00e7\u00f5es"
}
]
}
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
WhatsApp Ninja | Disparo em Massa. Uses httpRequest, supabase. Scheduled trigger; 12 nodes.
Source: https://github.com/diegohugo570/backup-n8n/blob/4b35f5dcf0af947eeb77275d3dcc3f4ff1d296b7/workflows/WhatsApp_Ninja___Disparo_em_Massa.json — original creator credit. Request a take-down →
Related workflows
Workflows that share integrations, category, or trigger type with this one. All free to copy and import.
Sistema de Notificaciones WhatsApp con Baileys. Uses supabase, httpRequest. Scheduled trigger; 17 nodes.
This n8n workflow monitors Donald Trump’s Truth Social posts and sends alerts to Telegram & Discord on auto-pilot. Stay instantly updated with every new post, repost, or reply without delays.
Imperium - Daily Newsletter (11 AM). Uses supabase, httpRequest, telegram. Scheduled trigger; 8 nodes.
Imperium - Daily Newsletter. Uses supabase, httpRequest, telegram. Scheduled trigger; 8 nodes.
Imperium - Daily Newsletter. Uses supabase, httpRequest, telegram. Scheduled trigger; 8 nodes.