Blog/Automation

WhatsApp API with Airtable: Automate Notifications from Your Database

Connect Airtable with WhatsApp using Rapiwa API and n8n. Send WhatsApp notifications when Airtable records change, are created, or reach specific conditions. No-code and code examples.

by Nihal
WhatsApp API with Airtable: Automate Notifications from Your Database

You can connect Airtable to WhatsApp using Rapiwa API and n8n. When an Airtable record is created, updated, or reaches a condition (like a status change to "Approved"), n8n fires a Rapiwa API call to send a WhatsApp notification. This works for any Airtable base — project management, CRM, HR, inventory, or event management. Rapiwa costs $5/month flat with no per-message fees.

What You Can Build

  • Project management: Notify team members when a task is assigned to them
  • CRM follow-ups: Message leads when their status changes to "Qualified"
  • HR onboarding: WhatsApp welcome message when a new employee record is created
  • Inventory alerts: WhatsApp alert when a product stock level drops below threshold
  • Event management: WhatsApp confirmation when an event registration is approved
  • Client approvals: Message clients when a deliverable is ready for review

Prerequisites

  • Rapiwa account (free 3-day trial at rapiwa.com)
  • Airtable account with a base containing phone numbers
  • n8n (Cloud free tier or self-hosted) — recommended
  • Or: Zapier / Make.com for no-code alternative

Step 1: Prepare Your Airtable Base

Ensure your Airtable table has a Phone field in international format:

NamePhoneStatusEmail
Sarah Johnson8801234567890New Leadsarah@example.com
James Smith447700900123Qualifiedjames@example.com

Important: Store phone numbers in international format without + (e.g., 8801234567890, not +880 1234 567890). Add an Airtable formula to clean the format:

SUBSTITUTE(SUBSTITUTE(SUBSTITUTE({Phone Raw}, "+", ""), " ", ""), "-", "")

Step 2: Set Up n8n with Airtable Trigger

In n8n:

  1. Create a new workflow
  2. Add Airtable Trigger node:
    • Credentials: Create new → enter Airtable API key (from airtable.com/account)
    • Base: select your base
    • Table: select your table
    • Trigger field: choose Modified Time (to detect any record change)
    • Or trigger on record creation only

Alternative triggers available:

  • Polling every X minutes for changed records
  • Webhook-based (requires Airtable Enterprise or Airtable Automations)

Step 3: Add Condition Filtering

Don't send WhatsApp for every Airtable change — add an IF node to filter:

// Filter: only send when Status changed to "Qualified"
{{ $json.Status === 'Qualified' }}

Or use n8n's Filter node with condition:

  • Field: Status
  • Operator: equals
  • Value: Qualified

Step 4: Configure the Rapiwa HTTP Request Node

Add an HTTP Request node after the filter:

  • Method: POST
  • URL: https://app.rapiwa.com/send-message
  • Authorization: Bearer YOUR_API_KEY
  • Body:
{
  "number": "={{ $json.Phone }}",
  "message": "Hi {{ $json.Name }}! 🎉 Great news — you have been approved as a qualified lead. Our team will reach out within 24 hours. In the meantime, explore what we offer at rapiwa.com"
}

Test with cURL:

curl -X POST https://app.rapiwa.com/send-message \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "number": "8801234567890",
    "message": "Hi Sarah! 🎉 Your application has been approved. Welcome aboard! Our team will contact you within 24 hours with next steps."
  }'

Expected response:

{
  "status": "success",
  "messageId": "msg_airtable_abc123",
  "timestamp": "2026-07-03T10:30:00Z"
}

Step 5: Update Airtable After Sending

After the Rapiwa send, update the Airtable record to log the notification:

Add an Airtable node:

  • Operation: Update Record
  • Record ID: {{ $('Airtable Trigger').item.json.id }}
  • Fields to update:
    • WhatsApp Sent: true (checkbox field)
    • Last Notified: {{ $now.toISO() }}

This prevents sending duplicate notifications on subsequent runs.

Common Airtable + WhatsApp Use Cases

Use Case 1: CRM Lead Status Change

Airtable Trigger: Status field changes
IF: new Status = "Qualified"
Set message: "Hi {Name}! You've been added to our priority list..."
HTTP Request (Rapiwa): send message
Airtable: update "WhatsApp Sent" = true

Use Case 2: Project Task Assignment

Airtable Trigger: Assignee field changes
IF: Assignee is not empty AND WhatsApp Sent = false
Set message: "Hi {Assignee Name}! You have been assigned a new task: {Task Name}. Due: {Due Date}"
HTTP Request (Rapiwa): send to Assignee's phone

Use Case 3: Inventory Low Stock Alert

Airtable Trigger: every 30 minutes (schedule-based poll)
Filter: Stock Level < Reorder Point
Set message: "⚠️ Low stock alert: {Product Name} — {Stock} units remaining. Reorder link: {Reorder URL}"
HTTP Request (Rapiwa): send to purchasing team phone

Use Case 4: Event Registration Approved

Airtable Trigger: Status field changes to "Approved"
Set message: "Hi {Name}! Your registration for {Event Name} on {Event Date} is confirmed. See you there! 🎫"
HTTP Request (Rapiwa): send to registrant's phone
Airtable: update "Confirmation Sent" = true

Using Airtable Automations (No n8n)

Airtable's built-in Automations can trigger webhooks directly to Rapiwa:

  1. In your Airtable base → Automations+ New automation
  2. Trigger: When a record is created (or status changes)
  3. Action: Run a script (Airtable Scripting)

Airtable script to call Rapiwa:

// Airtable automation script
const inputConfig = input.config();
const phone = inputConfig.phone;
const name = inputConfig.name;
const apiKey = 'YOUR_RAPIWA_API_KEY';

const message = `Hi ${name}! Your record has been updated. Check the details in our system.`;

const response = await fetch('https://app.rapiwa.com/send-message', {
  method: 'POST',
  headers: {
    'Authorization': `Bearer ${apiKey}`,
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({ number: phone, message })
});

const result = await response.json();
output.set('messageId', result.messageId || 'failed');
output.set('status', result.status);

Configure the script to receive phone and name as input variables from the trigger record.

Common Errors and Fixes

  • Phone number format issues: Airtable stores numbers exactly as entered. Add a formula field to clean the format: SUBSTITUTE(SUBSTITUTE({Phone}, "+", ""), " ", "")
  • Trigger firing for every field change: Use an IF node in n8n to check only the specific field you care about (e.g., Status changed to specific value)
  • Duplicate notifications: Add a WhatsApp Sent checkbox field in Airtable and check it in your IF node before sending
  • 401 from Rapiwa: API key expired — regenerate in Dashboard → API Keys

FAQ

Does Airtable have a native WhatsApp integration? No. Airtable connects to WhatsApp through third-party tools like n8n, Zapier, or Make.com using Rapiwa API as the WhatsApp delivery layer.

Can I use Airtable as a WhatsApp contact list? Yes. Build an Airtable base with columns for name, phone, message, and send status. Use n8n to query the base and send WhatsApp messages to each contact.

Does Rapiwa charge per Airtable-triggered message? No. Rapiwa charges $5/month flat with no per-message fees — send unlimited notifications from Airtable.

What is the best way to handle phone number formatting from Airtable? Create a formula field in Airtable: REGEXREPLACE({Phone Raw}, "[^0-9]", ""). This strips all non-digits and gives you a clean international number for Rapiwa.

Can I receive WhatsApp replies and update Airtable records? Yes. Set up a Rapiwa webhook → n8n → Airtable update workflow. When a customer replies to your WhatsApp message, the incoming text updates a field in the corresponding Airtable record.