How to use JSON Variable Mapping to extract array and use it in LOOP

Hi,

I have this settup:
Trigger: Schedule event
Node 1: HTTP request
Node 2: JSON variable mapping
Node 3: LOOP
Node 3.1 (inside LOOP): Create record

Node 1 result

{
“status”: 200,
“statusText”: “OK”,
“headers”: {
“date”: “Mon, 05 Jan 2026 07:40:16 GMT”,
“content-type”: “application/json”,
“access-control-allow-headers”: “origin, content-type, accept, authorization”,
“access-control-allow-credentials”: “true”,
“access-control-allow-methods”: “GET, POST, PUT, DELETE, OPTIONS”,
“access-control-allow-origin”: “*”,
“content-length”: “997”,
“server”: “Jetty”
},
“config”: {
“timeout”: 5000,
“headers”: {
“Accept”: “application/json”,
“Content-Type”: “application/json”,
“Authorization”: “REDACTED”,
“User-Agent”: “axios”
},
“url”: “http://example-host:8082/api/reports/trips”,
“method”: “get”,
“params”: {
“deviceId”: “13”,
“from”: “2025-12-10T09:26:00Z”,
“to”: “2026-01-03T00:00:00Z”
}
},
“data”: [
{
“deviceId”: 13,
“deviceName”: “Vehicle A”,
“distance”: 0,
“averageSpeed”: 0,
“maxSpeed”: 0,
“spentFuel”: 0,
“startOdometer”: 1447434,
“endOdometer”: 1447434,
“startTime”: “2025-12-17T09:03:12.000+00:00”,
“endTime”: “2025-12-17T09:22:42.000+00:00”,
“startPositionId”: 111111,
“endPositionId”: 111222,
“startLat”: 59.27,
“startLon”: 10.42,
“endLat”: 59.27,
“endLon”: 10.42,
“startAddress”: “Example street, City”,
“endAddress”: “Example street, City”,
“duration”: 1170000,
“driverUniqueId”: null,
“driverName”: null
},
{
“deviceId”: 13,
“deviceName”: “Vehicle A”,
“distance”: 0,
“averageSpeed”: 0,
“maxSpeed”: 0,
“spentFuel”: 0,
“startOdometer”: 1447434,
“endOdometer”: 1447434,
“startTime”: “2025-12-17T09:27:42.000+00:00”,
“endTime”: “2025-12-17T10:02:55.000+00:00”,
“startPositionId”: 111333,
“endPositionId”: 111444,
“startLat”: 59.27,
“startLon”: 10.42,
“endLat”: 59.27,
“endLon”: 10.42,
“startAddress”: null,
“endAddress”: null,
“duration”: 2113000,
“driverUniqueId”: null,
“driverName”: null
}
]
}

In Node 2 i have this settup:

This is the result of node 2:

{
“jjg3t065yvf”: [
{
“deviceId”: 13,
“deviceName”: “Tønsberg 56”,
“distance”: 0,
“averageSpeed”: 0,
“maxSpeed”: 0,
“spentFuel”: 0,
“startOdometer”: 1447434,
“endOdometer”: 1447434,
“startTime”: “2025-12-17T09:03:12.000+00:00”,
“endTime”: “2025-12-17T09:22:42.000+00:00”,
“startPositionId”: 2401350,
“endPositionId”: 2401601,
“startLat”: 59.2723666,
“startLon”: 10.4263933,
“endLat”: 59.2723666,
“endLon”: 10.4263933,
“startAddress”: “Hedrumgaten 4, Tønsberg”,
“endAddress”: “Hedrumgaten 4, Tønsberg”,
“duration”: 1170000,
“driverUniqueId”: null,
“driverName”: null
},
{
“deviceId”: 13,
“deviceName”: “Tønsberg 56”,
“distance”: 0,
“averageSpeed”: 0,
“maxSpeed”: 0,
“spentFuel”: 0,
“startOdometer”: 1447434,
“endOdometer”: 1447434,
“startTime”: “2025-12-17T09:27:42.000+00:00”,
“endTime”: “2025-12-17T10:02:55.000+00:00”,
“startPositionId”: 2401649,
“endPositionId”: 2402100,
“startLat”: 59.2723666,
“startLon”: 10.4263933,
“endLat”: 59.2723666,
“endLon”: 10.4263933,
“startAddress”: null,
“endAddress”: null,
“duration”: 2113000,
“driverUniqueId”: null,
“driverName”: null
}
]
}

In node 3, it regonise this at one input, not two

{
“looped”: 1,
“done”: 1
}

What am I doing wrong?

Hello, could you please explain how the third node is configured, with a screenshot?

Node 3 setup:

Node 3 result:

{
“looped”: 1,
“done”: 1
}

Node 3.1 (inside loop) setup:

Node 3.1 result:

{
“createdAt”: “2026-01-05T17:39:19.049Z”,
“updatedAt”: “2026-01-05T17:39:19.049Z”,
“start_time”: null,
“id”: 95
}

Why is the data returned by node 1 different from the example data in node 2?

Is the same, i just used AI to remove sensetive data before posting it here.
If you look at the startTime, you will see its the same.

The hierarchical structure of JSON content is different.

Are you thinkning about:

I copy only the “data” from the HTTP repons form Node 1 into Input example. Is that wrong?

Hello, please provide a reproduction of the issue in the demo environment.

https://a_8hwne7u84ho.v13.demo.nocobase.com/admin/
(NocoBase default username and password)