CXone Guest API: Sending proactive notification to inactive web chat session

Trying to push a proactive message to a web messaging guest who has been idle for 5 minutes. The session is still active in the CXone console, but the Guest API seems to reject the notification payload.

We’re using the REST Proxy in a to hit the endpoint. The flow is:

  1. Detect idle timeout in the script.
  2. Get the conversationId and participantId (the guest side).
  3. Call the API to inject a message.

Here is the JSON payload we’re sending via the REST Proxy ASSIGN action:

{
 "text": "Is there anything else I can help with?",
 "type": "proactive"
}

The endpoint is /api/v2/conversations/{conversationId}/participants/{participantId}/messages.

We get a 400 Bad Request with the error: Invalid participant state for message injection. The guest status shows as active in the debug logs, not closed or pending.

Is there a specific header required for proactive pushes? Or do we need to change the guest state to waiting first before injecting? The standard documentation just shows how to send messages during an active exchange, not how to trigger a bot-like nudge via the API while the agent is still connected but idle.