You were right, the data action wasn't breaking the flow, the logic right after the success was. Adding logic to check if the variable is null in the next step corrected the issue.
Original Message:
Sent: 06-23-2024 17:18
From: Anton Vroon
Subject: Data Action returning null value breaks call
Hi Kenneth,
I'll take a look at why you are not getting the result assigned to your output a little later today, since at first glance it should assign the default value to your variable without issue.
But If it successfully runs, it will be going down the success path in architect flow regardless. Assigning nulls / empty values shouldn't be an issue there. What is an issue though is if you have any logic or conditional statements on that success path, eg if task.dedicatedcss_enum == "xyz" then that will error out when the value is empty. Genesys doesn't natively handle any operands where there is empty/null values and errors out.
Two ways around this, on the data action output assignment, provide a default value for the outputs in architect.

The other is liberal use of IsNotSetOrEmpty(), either in a decision block to handle the cases when it is empty, or in variable assignment, eg If(IsNotSetOrEmpty(task.dedicatedcss_enum), "Default Value", task,dedicatedcss_enum)
------------------------------
Anton Vroon
Original Message:
Sent: 06-21-2024 10:14
From: Kenneth Ely
Subject: Data Action returning null value breaks call
Anton,
If I run data action in test mode with the default response, it runs successfully. If there is something in the field, I get the value. If there isn't anything in the field, the data action still runs successfully, it just doesn't return the field or value.
{
"translationMap": {},
"translationMapDefaults": {},
"successTemplate": "${rawResult}"
}
I have built out a new version of the data action with the below with a success template and default value. I'm not getting error on the template, but I'm still not getting a good result. Testing the new data action the field for dedicatedcss_enum always shows up, but it is blank. If I open the Json, it shows my default value of "DEFAULT_VALUE".

{
"translationMap": {
"dedicatedcss_enum": "$.dedicatedcss_enum"
},
"translationMapDefaults": {
"dedicatedcss_enum":"\"DEFAULT_VALUE\""
},
"successTemplate": "{ \"dedicatedcss_enum\": $dedicatedcss_enum}"
}

Error handling in the flow explains why I got the disconnect. A default transfer to queue is a better option.
------------------------------
Kenneth Ely
Unified Communications Engineer
Original Message:
Sent: 06-20-2024 17:14
From: Anton Vroon
Subject: Data Action returning null value breaks call
Hi Kenneth,
When you run the Data Action in test mode in the Data Action configuration space.
Do you get a successful result, or failed result there?
Have you tried to assign a default value in the DataAction success template?
Does your flow error handling disconnect calls? In error handling I generally prefer to send to a default queue to mitigate customer impact.
------------------------------
Anton Vroon
Original Message:
Sent: 06-20-2024 16:07
From: Kenneth Ely
Subject: Data Action returning null value breaks call
I have a data action in an inbound voice call flow to pass the contact ID and return a custom contact dropdown ID from from a data action.
If an external contact has an option selected in the drop down I get back the key value and it works fine.
However, if nothing is selected the call ends with "Code Sorry an error occurred. please try you call again."
The flow doesn't appear to take the Call Data action Failure or Timeout paths. It just plays the error message and ends the call.
I'm thinking the error is because the system is trying to assign a null value to a string variable.
Even then, I'm not sure why the Call Data Action would not take the failure route.
Has anyone had similar experience? Any ideas how to return a value that is occasionally null?
#ArchitectureandDesign
------------------------------
Kenny
------------------------------