We’ve been migrating our outbound dialer flows to pure Architect and hit a wall with a Data Action calling an external CRM API. The endpoint is a simple POST that updates contact notes, but our legacy system is a bit sluggish. It consistently takes around 4.5 to 5.2 seconds to return a 200 OK.
The problem is Architect’s default timeout seems hard-capped at 3 seconds for standard Data Actions. The flow fails with a generic timeout error, and we can’t seem to find a property in the JSON schema to bump this limit. I checked the Genesys Cloud documentation, and it mentions timeouts but doesn’t give a clear example of how to configure it for external HTTP requests within the Data Action definition itself.
Here’s the JSON payload I’m using for the Data Action configuration:
{
"name": "UpdateCRMNotes",
"type": "HTTP",
"properties": {
"url": "https://api.crm-provider.com/v1/contacts/{{contact.id}}/notes",
"method": "POST",
"headers": {
"Authorization": "Bearer {{oauth_token}}",
"Content-Type": "application/json"
},
"body": {
"note": "{{transcript_summary}}",
"timestamp": "{{current_timestamp}}"
}
}
}
I’ve tried a few things:
- Setting a custom header
X-Timeout: 5000in the request, but the external API ignores it and Genesys still cuts the connection at 3s. - Wrapping the call in a retry loop with a short delay, but the first attempt still times out immediately.
- Checking if there’s a
timeoutfield in thepropertiesobject, but the schema validation rejects it.
Is there a way to increase this timeout? We’re using the CX-as-Code Terraform provider to manage these flows, so ideally, I’d want to set this in the Terraform config or the JSON definition. If it’s not possible in Architect, do we need to route this through a middleware service to handle the delay? That feels like a hack, but I’m running out of options. The Terraform resource genesyscloud_flow doesn’t seem to expose a timeout setting for individual actions either.
Here’s the relevant Terraform snippet:
resource "genesyscloud_flow" "outbound_flow" {
name = "Outbound CRM Update"
type = "OUTBOUND"
actions {
action_id = "update_crm"
action_type = "DATA_ACTION"
data_action_id = genesyscloud_data_action.update_crm.id
}
}
resource "genesyscloud_data_action" "update_crm" {
name = "Update CRM Notes"
type = "HTTP"
# No timeout property found in docs
}
Any ideas on how to push this past the 3-second limit? We’ve