I’m trying to kick off an Architect flow from a custom external service using the Genesys Cloud REST API. The goal is simple: trigger a specific flow start point and pass some context data along with it. I’ve got the OAuth token sorted, using client credentials with the flow:execute scope, so auth isn’t the issue here.
The endpoint I’m hitting is POST /api/v2/flows/executions. According to the docs, I need to provide the flow ID, the start point ID, and optionally the initial data. Here’s the payload I’m sending:
{
"flowId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"flowStartPointId": "startPoint_123",
"initialData": {
"userId": "user_xyz",
"action": "trigger_test"
}
}
I’m getting a 400 Bad Request back. The error message is pretty generic:
{
"code": "badRequest",
"message": "Invalid flowStartPointId",
"status": 400
}
This is frustrating because I can see the flow and the start point in the Architect UI, and the IDs match exactly what I’m copying from the URL or the flow JSON export. I’ve double-checked the flowId as well. It’s valid.
I’m using Python requests for this. Here’s the relevant snippet:
import requests
headers = {
"Authorization": f"Bearer {access_token}",
"Content-Type": "application/json"
}
payload = {
"flowId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"flowStartPointId": "startPoint_123",
"initialData": {
"userId": "user_xyz",
"action": "trigger_test"
}
}
response = requests.post(
"https://api.mypurecloud.com/api/v2/flows/executions",
headers=headers,
json=payload
)
print(response.status_code, response.text)
I’ve tried omitting the initialData entirely, just in case that’s causing schema issues, but the error remains the same. It seems to be choking on the flowStartPointId. Is there a specific format or naming convention I’m missing for start points when called via API? Or maybe the start point needs to be exposed in a certain way? I’ve checked the flow settings, but nothing jumps out. Any ideas what I’m doing wrong?