I’m trying to refactor our inbound call flows by pulling the common authentication and queue logic into a separate Common Module. The idea is clean: one shared flow that handles the heavy lifting, and multiple specific inbound flows that just call it via a Data Action.
The Common Module is published and active. I’ve set up the Data Action in the main flow to trigger it. The JSON payload for the Data Action looks like this:
{
"type": "external",
"url": "https://{{my_org}}.mypurecloud.com/api/v2/architect/flows/common-module-uuid",
"method": "POST",
"headers": {
"Authorization": "Bearer {{auth_token}}"
},
"body": {
"flowData": {
"callerId": "{{contact.contactData.initiator.address}}",
"queueName": "{{contact.queue.name}}"
}
}
}
When the call hits this Data Action, the Genesys Cloud logs show a 404 Not Found error immediately. The URL seems correct based on the API docs for invoking flows. I’ve double-checked the UUID. It matches exactly what’s in the Architect UI.
I’m using the standard bearer token from the contact context. It works for other API calls in the same flow. I’ve tried adding the X-Genesys-Flow-Id header, but that didn’t change anything. The 404 suggests the endpoint doesn’t exist or isn’t accessible, but the Common Module is definitely there and enabled.
Is there a specific permission I’m missing? Or is this approach just not supported via the Data Action external call method? I feel like I’m missing something obvious about how the API handles flow invocation versus standard REST endpoints. The docs are vague on this specific use case. I’ve been staring at this for two hours. No progress.