Skip to content

⚡ API Action Node

Preview — not yet executed by the live assistant

API Action can be placed and configured in the designer and passes publish validation, but the live WhatsApp assistant does not execute it yet. A customer reaching an API Action node sees a polite "not yet supported" message instead of the request being made. Keep it out of published flows until this feature goes Live. Its configuration may also change before release.

Purpose

The API Action node makes an HTTP request to an external API when the conversation reaches this point. Use it to integrate your WhatsApp assistant with CRMs, booking systems, payment gateways, or any web service.


Business Scenario

Use the API Action node when you need to:

  • Create a CRM record — push lead data to Salesforce, HubSpot, or Zoho
  • Check availability — query a booking system for open time slots
  • Look up information — fetch order status, account details, or pricing from your backend
  • Submit forms — send collected data to a Google Form, webhook, or custom endpoint
  • Trigger automations — kick off a Zapier/Make workflow

Configuration

Field Description
Title Internal name (e.g., "Create CRM Lead")
URL The full API endpoint URL (must start with https://)
Method GET (fetch data) or POST (send data)
Headers Key-value pairs for HTTP headers (e.g., Authorization: Bearer xxx)
Body Request body for POST requests. Supports {{variable}} placeholders.
Response Variable Optional. Save the API response to a variable for use in later nodes.
Response Scope conversation or contact — how long to keep the response variable

Properties

Property Type Required Default Description
title Text No "" Internal node name
url URL Yes https:// Full API endpoint URL
method Select Yes GET HTTP method
headers Key-value No {} HTTP request headers
body Text Only for POST — Request body (JSON, form data, etc.)
responseVariableName Text No — Variable to store the API response
responseScope Select No conversation Response variable persistence

Inputs

Handle Type Description
Top (↑) Target Receives a connection from any preceding node

Outputs

Handle Type Description
Bottom (↓) Continue Connects to the next node (runs after the API call completes)

Connection Rules

  • ✅ Can receive connections from any node type
  • ✅ Can connect to any node type
  • ✅ Commonly placed after Question nodes (to send captured data) and before Message nodes (to display results)

Example Flow Diagram

CRM Integration

flowchart TD
    A["📥 Capture Name → {{name}}"] --> B["📥 Capture Email → {{email}}"]
    B --> C["⚡ API Action<br/><em>POST to CRM</em><br/><em>Create lead record</em>"]
    C --> D["💬 Confirmation<br/><em>Thanks {{name}}! We've added you to our system.</em>"]
    D --> E["📋 Main Menu"]

    style C fill:#f1f5f9,stroke:#94a3b8,stroke-width:2px

Example POST Request

URL: https://api.yourcrm.com/leads

Headers:

Authorization: Bearer sk_live_abc123
Content-Type: application/json

Body:

{
  "name": "{{name}}",
  "email": "{{email}}",
  "phone": "{{phone}}",
  "source": "whatsapp"
}


Best Practices

  • ✅ Always use HTTPS — never send data over unencrypted HTTP.
  • ✅ Use variables in the body — {{name}}, {{email}} etc. to send captured data.
  • ✅ Set proper headers — most APIs require Content-Type: application/json and an Authorization header.
  • ✅ Save the response if you need to display API data to the customer (e.g., order status, booking confirmation number).
  • ✅ Add a fallback — if the API might fail, follow with a Condition to check the response variable.
  • ✅ Test thoroughly — API integrations are the most common source of issues in live flows.

Common Mistakes

Mistake What Happens Fix
HTTP instead of HTTPS Request may fail or be blocked Always use https:// URLs
Missing auth headers API returns 401 Unauthorized Add the required Authorization header
Wrong Content-Type API doesn't parse the body correctly Set Content-Type: application/json for JSON bodies
Typo in variable names API receives literal {{variable}} text Double-check variable names match Question nodes
No error handling Customer sees nothing if API fails Add a Condition to check response, or a fallback Message