Bruce, Interesting. I haven't used JSON inputs this way before.
Did you test only with a flat JSON, or also with larger/nested payloads, like arrays or multiple levels? For a simple one-level object this makes sense. I'm just wondering if it stays reliable with more complex or critical payloads, or if in those cases it's safer to use the string/correlation ID approach.
Original Message:
Sent: 06-19-2026 11:44
From: Bruce Boulding
Subject: JSON Inputs to Common Module or Bot
More digging and the serializing the JSON is not always necessary. Found a solution at least for single level JSON objects.
In calling flow, create a JSON (Update Data -> Added Variable of type JSON, Expression and define it). For example:
myJSON
{
"active" : true,
"someString" : "this is the string",
"cntDays" : 365,
}
In the Bot, create a data element of type JSONcalling flow, create a Resource->Data element of type JSON, for example call it botJSON. Edit that item and set it to Input (and possibly output). It will then be referred to as Flow.botJSON
In the calling flow, call the bot you created, the input field will populate and put in the name of your object, (e.g. myJSON).
When you run this flow, inside the bot you can refer to the elements as Flow.botJSON.active.
Setting the responses back if the JSON is specified as an output variable too, requires an update prior to the exit of the bot.
That update can either be a complete redefine of the object, similar to setting above or you can update a single element in by a Update data with:
SetJsonObjectProperty( Flow.botJSON, someString, "This is the new string" )
More testing needed for more complex JSONs.
------------------------------
Bruce Boulding
------------------------------
Original Message:
Sent: 06-18-2026 21:17
From: Arthur Pereira Reinoldes
Subject: JSON Inputs to Common Module or Bot
I agree with Breno.
Serializing the JSON object into a string can be a good workaround when the object is not being passed as expected between the flow and the Common Module or Bot Flow.
The main point I would reinforce is the string size limit. Architect string variables have a limit of 32,000 characters, so this approach is safer for small or controlled payloads. If the JSON can grow over time, especially with customer data, arrays, history, or nested objects, it is important to validate the payload size before relying on this solution.
For larger payloads, I would avoid passing the full JSON through the flow. In that case, passing only the required fields, or passing a correlation ID and retrieving the full payload from an external system or Data Action, would be a cleaner and safer approach.
So, the string approach can work, but I would treat the 32K limit as an important design constraint.
------------------------------
Arthur Pereira Reinoldes
------------------------------