Skip to main content
WhatsApp logo

Overview

Add WhatsApp to any ModuleX agent or workflow. Send WhatsApp messages through the WhatsApp Cloud API (Meta Graph API, graph.facebook.com). Deliver plain-text messages with optional link previews directly to recipients on WhatsApp.
Categories: Communication · Messaging · Automation · Auth: API Key · Actions: 1

Authentication

API Key Authentication

Authenticate using your WhatsApp Business API access token (used as the bearer token on every request)
1

Step 1

Go to https://developers.facebook.com and open your Meta app
2

Step 2

Add the WhatsApp product and configure a Business Phone Number
3

Step 3

Copy the WhatsApp Business API access token (a temporary token is available in the dashboard; generate a permanent System User token for production)
4

Step 4

Note your WhatsApp Business Phone Number ID for each send call
5

Step 5

Paste the access token below

Required Credentials

FieldDescriptionRequiredFormat
WhatsApp Access TokenWhatsApp Business API access token from the Meta Developer PortalYes-

Available Actions

Parameters

phone_number
string
required
Recipient phone number with country code (e.g., +14155552671)
message
string
required
Plain text message content to send
phone_number_id
string
required
WhatsApp Business Phone Number ID (from Meta Business Suite)
preview_url
boolean
Whether WhatsApp should try to render a link preview for the first URL in the message

Response

{
  "$defs": {
    "MessageContact": {
      "additionalProperties": false,
      "description": "A single recipient contact record returned by the send API.",
      "properties": {
        "input": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Input"
        },
        "wa_id": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Wa Id"
        }
      },
      "title": "MessageContact",
      "type": "object"
    }
  },
  "additionalProperties": false,
  "properties": {
    "success": {
      "title": "Success",
      "type": "boolean"
    },
    "error": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Error"
    },
    "message_id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Message Id"
    },
    "message_status": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Message Status"
    },
    "messaging_product": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Messaging Product"
    },
    "input_phone_number": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Input Phone Number"
    },
    "whatsapp_user_id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Whatsapp User Id"
    },
    "contacts": {
      "items": {
        "$ref": "#/$defs/MessageContact"
      },
      "title": "Contacts",
      "type": "array"
    }
  },
  "required": [
    "success"
  ],
  "title": "SendMessageOutput",
  "type": "object"
}

Limits & Quotas

  • Messaging tiers: WhatsApp enforces per-business-phone-number conversation/message throughput tiers (1K, 10K, 100K, unlimited business-initiated conversations per 24h), scaling with quality rating.
  • 24-hour window: free-form text messages can only be sent inside an open 24-hour customer service window; outside it, an approved message template is required (template sending is not exposed by this tool).
  • Error model: non-2xx responses and timeouts are caught and returned as success=False + error rather than raising. A successful send that lacks a message ID is also reported as success=False. Plan for retries on the agent side based on the error string.

Telegram Bot

AgentMail

Slack