AutomationFlowsSlack & Telegram › Whatsapp Outbound Messaging with Baserow & Wasenderapi

Whatsapp Outbound Messaging with Baserow & Wasenderapi

ByStephan Koning @reklaim on n8n.io

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. Monitors Baserow 'Messages' table for 'Sent' status. Sends messages via…

Webhook trigger★★☆☆☆ complexity6 nodesHTTP RequestBaserow
Slack & Telegram Trigger: Webhook Nodes: 6 Complexity: ★★☆☆☆ Added:

This workflow corresponds to n8n.io template #6596 — we link there as the canonical source.

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 →

Download .json
{
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "nodes": [
    {
      "id": "7edf6b1a-ff2f-44c3-95d7-efc72e675630",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -660,
        -260
      ],
      "parameters": {
        "width": 400,
        "height": 1040,
        "content": "## Master Your Outbound WhatsApp: Baserow & n8n Automation\n\nCommand your outbound WhatsApp. 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 proven results.\n\n**Who's it for**\nFor teams aiming to dominate outbound WhatsApp and centralize Baserow logging. Serious about communication efficiency? This is your solution.\n\n**Setup Steps**\nRapid implementation. Your action plan:\n1.  Activate all critical workflow nodes (`Sent_whatsapp`, `Switch`, `send_message`, `Update_imsg`, `fallback`).\n2.  Copy `Sent_whatsapp` webhook URL. Configure Baserow automation to trigger webhook on 'Sent' status update.\n3.  Ensure Baserow 'Messages' table has 'Status' ('Sent' option), linked 'WhatsApp Number' (from 'Contacts'), and 'Message Content' fields. (Optional: Use [Baserow Message Form](https://baserow.io/form/B2TUPV0S_Fx3PKyNiKOQR4YAdo77RnvAxZyMw8jN7Uc) for input).\n4.  Embed WasenderAPI and Baserow API tokens in n8n Credentials. No compromise on security.\n\n**Requirements**\n* Active n8n instance (self-hosted/cloud).\n* WasenderAPI.com trial/subscription.\n* Baserow account with pre-configured 'Contacts' ([link](https://baserow.io/public/grid/a5iWkAQpu8QljUlgwgm_pour_Au5BKd3mtkfu-B6N7Y)) and 'Messages' ([link](https://baserow.io/public/grid/0H22XZitFDWnrVNnKwBfiI7M6XX5CugHrXHEzdCY4xY)) tables.\n\n**How to customize the workflow**\nCustomize operations: Verify `send_message` and `Update_imsg` node field mappings with Baserow table IDs/names. Precision drives performance.\n\n**Note:** Crucial: Maintain the exact flow layout. This guarantees optimal performance and correct order of operations."
      },
      "typeVersion": 1
    },
    {
      "id": "d3510dc5-4126-4c08-92f0-0c63deaa85e6",
      "name": "fallback",
      "type": "n8n-nodes-base.noOp",
      "position": [
        780,
        320
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "c1912c6e-07d6-4101-8eba-e8709507b71c",
      "name": "Webhook: Baserow Outbound Trigger",
      "type": "n8n-nodes-base.webhook",
      "position": [
        -20,
        180
      ],
      "parameters": {
        "path": "anything you like",
        "options": {},
        "httpMethod": "POST",
        "authentication": "headerAuth"
      },
      "credentials": {
        "httpHeaderAuth": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2
    },
    {
      "id": "b97c5c82-b2cc-4694-b8ee-4640bf838ae4",
      "name": "WasenderAPI: Send Outbound Message",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        780,
        80
      ],
      "parameters": {
        "url": "https://wasenderapi.com/api/send-message",
        "method": "POST",
        "options": {},
        "sendBody": true,
        "sendHeaders": true,
        "bodyParameters": {
          "parameters": [
            {
              "name": "to",
              "value": "={{ $json.body.items[0]['WhatsApp Number (Linked Contact)'][0].value }}"
            },
            {
              "name": "text",
              "value": "={{ $json.body.items[0]['Message Content'] }}"
            }
          ]
        },
        "headerParameters": {
          "parameters": [
            {
              "name": "Authorization",
              "value": "Bearer <Your Token>"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "e41a8798-1709-4fac-a645-0e9017562d60",
      "name": "Filter: Message Status 'Sent'",
      "type": "n8n-nodes-base.switch",
      "position": [
        240,
        180
      ],
      "parameters": {
        "rules": {
          "values": [
            {
              "outputKey": "SENT",
              "conditions": {
                "options": {
                  "version": 2,
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "loose"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "id": "69bf58bd-3365-4260-97c4-be4bed1cb35b",
                    "operator": {
                      "type": "string",
                      "operation": "equals"
                    },
                    "leftValue": "={{ $json.body.items[0].Status.value }}",
                    "rightValue": "Sent"
                  }
                ]
              },
              "renameOutput": true
            }
          ]
        },
        "options": {
          "fallbackOutput": "extra"
        },
        "looseTypeValidation": true
      },
      "typeVersion": 3.2
    },
    {
      "id": "ee16b330-b65d-4103-bfd6-bba1254e180a",
      "name": "Baserow: Confirm Outbound Log",
      "type": "n8n-nodes-base.baserow",
      "position": [
        1020,
        80
      ],
      "parameters": {
        "rowId": "={{ $('Webhook: Baserow Outbound Trigger').item.json.body.items[0].id }}",
        "tableId": 622533,
        "fieldsUi": {
          "fieldValues": [
            {
              "fieldId": 5064441,
              "fieldValue": "Outbound"
            },
            {
              "fieldId": 5064443,
              "fieldValue": "={{$now.setLocale(nl-NL).toLocal()}}"
            },
            {
              "fieldId": 5064439,
              "fieldValue": "={{ $json.data.msgId }}"
            }
          ]
        },
        "operation": "update",
        "databaseId": 264981
      },
      "credentials": {
        "baserowApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    }
  ],
  "connections": {
    "Filter: Message Status 'Sent'": {
      "main": [
        [
          {
            "node": "WasenderAPI: Send Outbound Message",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "fallback",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Webhook: Baserow Outbound Trigger": {
      "main": [
        [
          {
            "node": "Filter: Message Status 'Sent'",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "WasenderAPI: Send Outbound Message": {
      "main": [
        [
          {
            "node": "Baserow: Confirm Outbound Log",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}

Credentials you'll need

Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.

Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

About this workflow

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. Monitors Baserow 'Messages' table for 'Sent' status. Sends messages via…

Source: https://n8n.io/workflows/6596/ — original creator credit. Request a take-down →

More Slack & Telegram workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

Slack & Telegram

Struggling to manage WhatsApp client communications? This n8n workflow isn't just automation; it's your centralized CRM solution for small businesses and freelancers.

HTTP Request, Baserow
Slack & Telegram

Add A Bug To Linear Via Slack Command. Uses httpRequest, stickyNote. Webhook trigger; 10 nodes.

HTTP Request
Slack & Telegram

When building a product it's important to discover and eliminate bugs as quickly as possible. Since we're using our product at n8n a lot, we wanted to make it as easy as possible for everyone to add b

HTTP Request
Slack & Telegram

Proxmox VM Lifecycle Automation. Uses telegram, httpRequest. Webhook trigger; 9 nodes.

Telegram, HTTP Request
Slack & Telegram

Add Product Ideas To Notion Via A Slack Command. Uses stickyNote, notion, httpRequest. Webhook trigger; 8 nodes.

Notion, HTTP Request