Guides/For developers

Customers ask "where is my order?" or "how much do I owe?" — can that be answered automatically from our own system?

The "Call your API" action in the interactive menu: WACO calls your HTTPS endpoint with the customer number (and their answer if you ask first), then replies with the "teks" field of your response. Contract, n8n example, and a test endpoint. 3 min read

"Where is my order", "how much do I owe", "has my ticket been handled" — the answers live in your system, not in a staff member's head. With the Call your API action in the interactive menu, the customer picks a menu row, WACO calls your endpoint, and the answer reaches the customer in seconds — no AI, no staff.

Setting it up

  1. Open Forms → Set up the interactive menu, add an option, pick the action Call your API.
  2. Fill in the API URL (HTTPS required) and, if your endpoint is protected, a Secret key — sent as Authorization: Bearer ….
  3. The text column is optional: if filled, WACO sends it as a question first (e.g. "Type your order number"), and the customer's next reply is sent to the API as jawaban. Leave it empty when the WhatsApp number is enough (e.g. an ISP invoice lookup).
  4. Save, then try it from the Send a test card.
No endpoint yet? Use the sample URL https://waco.id/api/v1/menu/contoh-api — it replies with sample text echoing the number and what you typed, so you can see the flow first.

Contract: what WACO sends

POST {your URL}
Content-Type: application/json
Authorization: Bearer {secret key}   ← only if set

{
  "nomor": "628111222333",
  "nama": "Budi",
  "pilihan": { "id": "m2", "judul": "Order status" },
  "jawaban": "INV-2026-0912",   ← null when the option does not ask first
  "waktu": "2026-09-05T03:20:11.000Z"
}

Contract: what you reply

HTTP 200
Content-Type: application/json

{ "teks": "Order INV-2026-0912: SHIPPED 4 Sep, arriving tomorrow. JNE tracking 123456." }

Example: n8n in 3 nodes

  1. Webhook (POST, Respond: "Using Respond to Webhook node") — its URL is what you paste into WACO.
  2. HTTP Request or Postgres/MySQL: look up the order by {{$json.body.jawaban}} or the invoice by {{$json.body.nomor}}.
  3. Respond to Webhook: JSON {"teks": "Order {{...}}: {{...}}"}.

The same pattern works for Make, Zapier, or one small route in your own application.

Good to know

Still stuck after following this guide? Contact us from the dashboard — attach a screenshot if you have one, it speeds everything up.