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 →
{
"name": "ControlTSR - OTP WhatsApp (Producci\u00f3n)",
"nodes": [
{
"parameters": {
"httpMethod": "POST",
"path": "control-tsr-otp",
"responseMode": "responseNode",
"options": {}
},
"type": "n8n-nodes-base.webhook",
"typeVersion": 2.1,
"position": [
0,
0
],
"id": "d3000000-0000-4000-8000-000000000001",
"name": "Recibir OTP"
},
{
"parameters": {
"method": "POST",
"url": "=https://graph.facebook.com/v21.0/{{ $env.WHATSAPP_PHONE_NUMBER_ID }}/messages",
"sendHeaders": true,
"headerParameters": {
"parameters": [
{
"name": "Authorization",
"value": "=Bearer {{ $env.WHATSAPP_TOKEN }}"
},
{
"name": "Content-Type",
"value": "application/json"
}
]
},
"sendBody": true,
"specifyBody": "json",
"jsonBody": "={\n \"messaging_product\": \"whatsapp\",\n \"to\": \"{{ $json.body.telefono.replace('+','') }}\",\n \"type\": \"template\",\n \"template\": {\n \"name\": \"{{ $env.WHATSAPP_TEMPLATE_NAME }}\",\n \"language\": { \"code\": \"{{ $env.WHATSAPP_TEMPLATE_LANG }}\" },\n \"components\": [\n { \"type\": \"body\", \"parameters\": [ { \"type\": \"text\", \"text\": \"{{ $json.body.codigo }}\" } ] },\n { \"type\": \"button\", \"sub_type\": \"url\", \"index\": 0, \"parameters\": [ { \"type\": \"text\", \"text\": \"{{ $json.body.codigo }}\" } ] }\n ]\n }\n}",
"options": {}
},
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.4,
"position": [
220,
0
],
"id": "d3000000-0000-4000-8000-000000000002",
"name": "Enviar OTP (plantilla)"
},
{
"parameters": {
"respondWith": "json",
"responseBody": "={ \"ok\": true }",
"options": {}
},
"type": "n8n-nodes-base.respondToWebhook",
"typeVersion": 1.1,
"position": [
440,
0
],
"id": "d3000000-0000-4000-8000-000000000003",
"name": "Responder OK"
}
],
"connections": {
"Recibir OTP": {
"main": [
[
{
"node": "Enviar OTP (plantilla)",
"type": "main",
"index": 0
}
]
]
},
"Enviar OTP (plantilla)": {
"main": [
[
{
"node": "Responder OK",
"type": "main",
"index": 0
}
]
]
}
},
"active": false,
"settings": {
"executionOrder": "v1"
},
"id": "CtsrOtpWhats0002",
"versionId": "d3000000-0000-4000-8000-000000000099",
"tags": []
}
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
ControlTSR - OTP WhatsApp (Producción). Uses httpRequest. Webhook trigger; 3 nodes.
Source: https://github.com/cesarmedranoy/ControlTSR/blob/f6e016faaf8bc05b2bc7761dec5aee7ac8104aab/n8n/workflow_otp_whatsapp_prod.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.
77STF — Slack to CRM (calendar hint). Uses httpRequest. Webhook trigger; 6 nodes.
This workflow integrates with your Baserow 'Messages' table, triggering on 'Sent' status. Messages fire via WasenderAPI, rigorously logged as 'Outbound' in Baserow. Gain total control; drive results.
Saathi WhatsApp Message. Uses httpRequest. Webhook trigger; 5 nodes.
OarOre - Payment Chat Start -> WhatsApp. Uses httpRequest. Webhook trigger; 5 nodes.