Hey folks,
Running into a wall trying to send structured messages (specifically quick replies) via the Open Messaging API. I’m using the Python SDK to push a message to a web chat participant, but every time I try to include actions, the API throws a 400 Bad Request.
The error message is pretty generic:
{"message": "Invalid message format", "code": "bad_request", "status": 400}
Here’s the payload I’m constructing. I’ve double-checked the actions array structure against the docs, and it looks right to me. The text field is under 500 chars, and the action types are valid.
{
"from": {
"id": "system",
"name": "Bot"
},
"to": {
"id": "participant-id-123",
"name": "Guest"
},
"type": "message",
"text": "What would you like to do next?",
"actions": [
{
"type": "quick-reply",
"title": "Check Balance",
"payload": "CHECK_BALANCE"
},
{
"type": "quick-reply",
"title": "Talk to Agent",
"payload": "TRANSFER_AGENT"
}
]
}
If I strip out the actions block, the plain text message goes through fine. So the auth and participant ID are correct. I’m calling POST /api/v2/conversations/messages.
I’ve tried swapping quick-reply for button just in case, but same result. Is there a specific capability flag I need to enable on the web channel settings for this to work? Or am I missing a field in the JSON?
The participant is active in a web chat conversation. I’ve verified this by sending a plain text message first.