hey all,
so we’ve got this routing.call.answered webhook firing into a deno deploy edge function - it’s supposed to kick off some analytics queries, fairly standard stuff. it’s failing validation though, and it’s driving me up the wall.
the edge function is running deno deploy version v1.45.0, and it’s hitting the analytics api (https://api.genesyscloud.com/v3/analytics/conversations/queries) with a payload that should be kosher. we’re on genesys cloud, obviously.
the error is a 400 bad request, and the response body is just this:
{
"message": "invalid filter expression",
"code": "invalid.filter.expression",
"status": 400
}
not super helpful, right?
i’ve triple checked the interaction id - it’s coming directly from the webhook payload, like this:
{
"eventTypeId": "routing.call.answered",
"payload": {
"conversationId": "694a35b0-4e1a-4d8b-b2f2-44c48f217b0b",
"interactionId": "f879e2b0-2e3a-4a5d-8a9b-9f5b6e3c5a9b",
// ... other stuff
}
}
the filter being sent is interactionId='f879e2b0-2e3a-4a5d-8a9b-9f5b6e3c5a9b', which looks… fine? it’s a string, it’s quoted, what am i missing? i’ve tried escaping the quotes, even though it shouldn’t be necessary.
it’s only happening for calls that originate from this one architect flow. the flow itself is pretty basic - just a simple IVR with a transfer. no custom data actions or anything. the architect flow version is v12.3.0.
i’m thinking maybe there’s something funky going on with the data types in the payload, like maybe the interactionId is being sent as a number somehow? but it looks like a string in the logs. i’ve checked the schema validation in the edge function, and it’s definitely expecting a string. it’s also passing all other validations, so this is where i’m stuck.
thanks, everyone.