Whaapy icon

Whaapy

WhatsApp Business API with AI - Send messages, manage conversations, and automate with AI agents

Message → Send

AI-generated

Summary

Sends a WhatsApp message through the Whaapy API (POST /messages/v1) to a phone number. It supports text, media, template, interactive, location, contacts, sticker and reaction messages, plus optional AI-pause and reply controls.

Inputs

  • To (required) — Recipient phone number with country code, e.g. +5215512345678.
  • Message Type (required) — One of text, image, video, audio, document, template, interactive, location, contacts, sticker, reaction. It determines which of the fields below are used.
  • Message Text (required) — Text body. Text type only.
  • Media URL (required) — Link to the media file for image, video, audio, document or sticker. It is sent as link. The description also mentions a Media ID, but the code always sends it as a link.
  • Caption — Caption for image, video or document. Sent only if non-empty.
  • Template Name (required) — Exact name of the approved WhatsApp template. Template type only.
  • Language — Template locale, default es_MX. Choose Custom to enter a code in Custom Language Code. The node errors if the resolved language is empty.
  • Template Options — Collection with these fields: Body Parameters (comma-separated or JSON array, filling {{1}}, {{2}}…); header media type, source, URL or ID (give a URL or an ID, not both, or the node errors); URL Button Parameters (JSON); Allow Button Payload Override with Quick Reply Payload Overrides (JSON); and raw Template Components (JSON). Raw components are merged last and override generated ones with the same key.
  • Interactive Type (required) — button (up to 3 reply buttons), list (menu with sections and rows) or cta_url (a single link button).
  • Interactive fields — Body Text is required. Optional header (text, image, video or document), footer, and the type-specific fields: Buttons, List Button Text with Sections and Rows, or CTA Button Text and URL. Missing IDs are auto-slugified from titles. Button and CTA titles are truncated to 20 characters, and row titles to 24. Row descriptions are truncated to 72.
  • Latitude / Longitude / Location Name / Address — Location message. Latitude and longitude are required. Name and address are optional.
  • Contacts (required) — JSON array of contact cards. Each needs name.formatted_name and phones[].phone. Emails, org and addresses are optional.
  • Message ID to React / Emoji (required) — Target message ID and the emoji to react with. Reaction type only.
  • Additional Fields — Pause AI and Pause Duration (minutes), Disable AI, Reply To Message ID (sent as context.message_id), Create Conversation (default true), and Metadata (JSON).

Output shape

One output item per input item, containing the JSON response from the Whaapy messages API for the sent message.

With Continue On Fail enabled, a failed item returns {error: message} instead of stopping the workflow. Invalid JSON in Contacts or Metadata throws an error. Authentication uses the whaapyApi credential's baseUrl and apiKey as a Bearer token. Pause Duration is only sent if Pause AI, Disable AI or a non-zero duration is set. A non-zero Pause Duration is sent even if Pause AI is off.

Examples

Example 1: Send an order confirmation template with variables

Message Type=Template, To=customer phone, Template Name=orden_confirmada, Language=es_MX, Template Options > Body Parameters='Juan, #ORD-123, $1500'.

Example 2: Offer reply buttons to a customer

Message Type=Interactive, Interactive Type=Buttons, Body Text='How can we help?', Buttons: 'Menu' and 'Agent'.

Example 3: Send a PDF with a caption and pause the AI for 30 minutes

Message Type=Document, Media URL=https://example.com/invoice.pdf, Caption='Your invoice', Additional Fields > Pause AI=true, Pause Duration=30.

Links

Discussion