We are attempting to automate the injection of a pre-approved canned response into an active chat session using the Conversations API. The intention is to trigger this via a Terraform local-exec provisioner after a specific interaction state is detected, effectively bridging our IaC workflow with real-time agent assistance.
The endpoint in question is /api/v2/conversations/chats/{conversationId}/messages. We are sending a POST request with the following JSON payload:
{
"type": "text",
"text": "Thank you for contacting support."
}
The authorization header is populated with a valid OAuth Bearer token, and the Content-Type is set to application/json. However, the response consistently returns a 400 Bad Request with the message: “Invalid message type or missing required fields.”
I have verified the conversationId is valid and the session is active. The documentation suggests that for chat messages, the type should be text, which is what we are providing. I am wondering if there is an additional schema requirement for canned responses specifically, or if the API expects a different structure when invoked from an external automation script rather than the agent desktop UI.
The Terraform resource block looks like this:
resource "null_resource" "send_canned" {
provisioner "local-exec" {
command = "curl -X POST https://{{env}}.mygenesys.cloud/api/v2/conversations/chats/${var.conv_id}/messages -H 'Authorization: Bearer ${var.token}' -H 'Content-Type: application/json' -d '{\"type\":\"text\",\"text\":\"Thank you\"}'"
}
}
The drift in state is minimal, but the API rejection is immediate. Any insights on the correct payload structure for this endpoint?