Loop block iteration failing on JSON array from Data Action in CXone Architect

Is there a specific way to structure the JSON output from a custom Data Action so the Loop block in Architect actually recognizes it as an iterable list? I’m trying to parse a list of customer orders returned from our internal REST API, but the Loop block keeps treating the entire payload as a single object instead of iterating through the items.

We’re running CXone version 24.2.1 and using the standard REST Data Action. The API returns a simple JSON array like this:

[
 {"orderId": "1001", "status": "shipped"},
 {"orderId": "1002", "status": "pending"}
]

I’ve mapped the response body directly to a custom data node called orderList. When I step through the flow in debug mode, the orderList node shows the correct array structure. However, when I connect it to the Loop block’s input, the iteration count is always 1. The loop body executes once, and the loop item contains the entire JSON string rather than a single object from the array.

I tried wrapping the array in an object like "orders": [...] and mapping that specific property, but it didn’t change the behavior. I also checked the raw JSON structure in the Data Action response node, and it’s valid JSON.

Has anyone else hit this issue with the Loop block? I’m wondering if the Data Action needs to return a specific MIME type or if there’s a mapping trick I’m missing. The documentation just says “pass an array to the loop,” but it doesn’t specify how the array should be packaged in the Data Action response.

Here’s the mapping I’m using in the Data Action response node:

{
 "orderList": "{{response.body}}"
}

It feels like the Loop block is expecting a different format, but I can’t find any examples in the docs that show the exact input structure. I’ve restarted the flow and cleared the cache, but no luck. What am I missing here?