Hey everyone,
I’ve been wrestling with the Open Messaging API for a few days now. We’re trying to send structured messages (specifically quick replies) to guests using the /api/v2/conversations/messaging/messages endpoint. It works perfectly fine on Android and desktop web clients, but on iOS, the quick replies just vanish after a second. The guest sees the text content, but the buttons are gone.
Here’s the JSON payload I’m posting:
{
"to": {
"id": "some-external-conversation-id",
"externalId": "guest-id-123"
},
"text": "Choose an option:",
"actionItems": [
{
"type": "quickReply",
"label": "Sales",
"value": "sales_option"
},
{
"type": "quickReply",
"label": "Support",
"value": "support_option"
}
]
}
The API returns a 201 Created with no errors. I checked the conversation history via /api/v2/conversations/messaging/conversations/{id}/messages, and the actionItems array is definitely there in the response. So the data is stored correctly on the backend.
It’s just the client rendering that’s flaky on iOS. I’ve tried adding a contentType of application/vnd.genesis.v2.quickreply but that didn’t change anything. I’ve also verified that the guest’s client is updated to the latest version.
Is there a specific header or parameter I’m missing for iOS compatibility? Or is this a known limitation with how the iOS SDK handles incoming structured messages via the API? I’m starting to think it might be a race condition where the message updates before the UI can render the buttons, but that’s just a guess.
Any pointers would be appreciated. I’m out of ideas on what to tweak in the payload.