Hey folks,
Trying to push typing indicators from our custom web widget using the Guest API. I’m sending a POST to /api/v2/conversations/messages/{conversationId}/communications/{communicationId}/typing with {"type": "typing"} but nothing shows up in the agent UI. The API returns 200 OK, so the request isn’t failing, but the agent never sees the dots. Am I missing a header or is there a specific event I need to trigger? Here’s the curl I’m using…
Docs state: “To indicate that a participant is typing, send a POST request to /api/v2/conversations/messages/{conversationId}/communications/{communicationId}/typing.”
The endpoint isn’t wrong, but you’re likely hitting a timing issue or using the wrong identifier. The IDs in the URL must be the correct conversation and communication identifiers from the initial session setup, not just the conversation ID. If you’re using the wrong identifier, the API might accept it silently but fail to route the event correctly to the agent UI.
Also, typing indicators are ephemeral. They only show if the agent is actively viewing that specific conversation and the widget is in a “connected” state. If the session has timed out or the agent has switched tabs, the UI won’t render them. You’ll need to ensure the identifiers are correct.
Here’s the corrected curl command using the proper ID:
curl -X POST "https://api.us.genesyscloud.com/api/v2/conversations/messages/<CONVERSATION_ID>/communications/<COMMUNICATION_ID>/typing" \
-H "Authorization: Bearer <ACCESS_TOKEN>" \
-H "Content-Type: application/json" \
-d '{"type": "typing"}'
Check your initial address response. It returns the necessary IDs. Use them. If you’re still seeing 200 OK but no dots, verify the Authorization header has the messaging:send scope. Without it, the server might accept the request but drop the event.
I’ve seen this happen when developers reuse a token from a different grant type that lacks messaging permissions. The 200 OK is misleading because it confirms the API received the request, not that the event was processed by the UI layer. Double-check your token scopes.
1 Like