Data Action mapping to session variable - unexpected type coercion

Hey everyone,

Something odd is happening with a Data Action I’ve got in a flow, and I’m hoping someone’s run into this before. We’re mapping a value from a Data Table lookup to a session variable - pretty standard stuff, right? Except the type isn’t sticking.

The Data Table - dt_campaign_settings - has a column called campaign_timeout_seconds which is defined as an Integer. I’ve verified this in the admin UI, and it’s definitely an integer column. The Architect flow pulls a value based on a campaignID parameter passed into the flow.

The Data Action itself is simple. It’s a “Set Variable” action. The target is a session variable called v_campaign_timeout. The expression to map the value looks like this: {{dt_campaign_settings.campaign_timeout_seconds}}.

Here’s where it gets weird. When I inspect the session variables in the Interaction Transcript, v_campaign_timeout shows up as a string. Not a string representation of an integer, just… a string. So, “300” instead of 300. It’s causing issues downstream with a conditional split - the comparison is failing because it’s comparing a string to an integer.

I’ve tried casting the value in the expression using {{strToInt(dt_campaign_settings.campaign_timeout_seconds)}}, but that doesn’t seem to have any effect - it still shows up as a string. I’m running v2.0 of the Data Action module. We’re on Genesys Cloud, region us-east-1. I’ve also checked that the parameter campaignID is being passed correctly and that the Data Table lookup is actually returning a value, which it is.

Is anyone else seeing this behavior? I’m wondering if there’s a quirk with how the Data Action handles integer values. Is there something I’m missing in the expression syntax? It feels like the system is coercing the integer to a string somewhere along the line.

It’s possible I’m overthinking it, but I’m trying to avoid adding a JavaScript block just to cast the variable. It feels… inelegant. Any thoughts?