Skip to content
Splashify Pro
Docs

Send Button Message

Send an interactive message with up to 3 quick-reply buttons to a customer. When the customer taps a button, you receive an inbound webhook carrying the button id and title, so you can route the conversation to the right flow without parsing free text.

Like every free-form message, this requires the customer to be inside the 24-hour customer service window.

Endpoint

POST

https://api.splashifypro.com/api/v1/public/message

Headers

Request body

json
{
  "phoneNumber": "919876543210",
  "callbackData": "feedback_prompt",
  "type": "InteractiveButton",
  "data": {
    "message": {
      "type": "button",
      "body": {
        "text": "Hello, please give your feedback."
      },
      "action": {
        "buttons": [
          { "type": "reply", "reply": { "id": "id1", "title": "Ok"   } },
          { "type": "reply", "reply": { "id": "id2", "title": "Good" } },
          { "type": "reply", "reply": { "id": "id3", "title": "Bad"  } }
        ]
      }
    }
  }
}

WhatsApp also supports an optional header (text/image/video/document) and footer (text). Add them under data.message.header and data.message.footer.text when needed.

Example

bash
curl -X POST https://api.splashifypro.com/api/v1/public/message \
  -H "Authorization: Basic YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "phoneNumber": "919876543210",
    "callbackData": "some_callback_data",
    "type": "InteractiveButton",
    "data": {
      "message": {
        "type": "button",
        "body": { "text": "Hello, please give your feedback." },
        "action": {
          "buttons": [
            { "type": "reply", "reply": { "id": "id1", "title": "Ok"   } },
            { "type": "reply", "reply": { "id": "id2", "title": "Good" } },
            { "type": "reply", "reply": { "id": "id3", "title": "Bad"  } }
          ]
        }
      }
    }
  }'

Successful response — 201 Created

json
{
  "result": true,
  "message": "Message queued for sending via Splashify Pro. Check webhook for delivery status",
  "id": "8a35b1e1-fac5-49b4-84d8-526eaa4c4d77"
}

When the user taps a button

The reply arrives via your inbound message webhook with type: "button" and the matching id and title:

json
{
  "type": "button",
  "from": "919876543210",
  "button_reply": {
    "id": "id2",
    "title": "Good"
  }
}

Use the id for routing — it's stable, while titles can be translated or reworded later.