HTTP module response not passing to Google Sheets inside Router route — always writes empty/0

:bullseye: What is your goal?

I want to write Threads post insights (views, likes, replies, reposts) returned by an HTTP module into Google Sheets. The HTTP module returns correct values but the Sheets cells are always written empty/0.

:thinking: What is the problem & what have you tried?

I have a scenario that fetches Threads post insights and writes them to Google Sheets. Structure:
Iterator → [Search Rows Advanced] → Router
Route 1 (post doesn’t exist): HTTP module → Add a Row
Route 2 (post exists): HTTP module → Search Rows → Update a Row
The HTTP module calls an insights endpoint and returns this JSON (confirmed in the execution logs):
json{
“data”: {
“data”: [
{ “name”: “views”, “values”: [ { “value”: 7 } ] },
{ “name”: “likes”, “values”: [ { “value”: 1 } ] },
{ “name”: “replies”, “values”: [ { “value”: 0 } ] },
{ “name”: “reposts”, “values”: [ { “value”: 0 } ] }
]
}
}
In the Add a Row / Update a Row modules I map the value like this:
{{30.data.data[0].values[0].value}}
The problem: the HTTP module’s output bundle clearly shows value: 7 in the execution log, but the Google Sheets cell is always written as empty (or 0 when I wrap it in ifempty(…; 0)). Every metric column ends up at 0 even though the HTTP module returned real values.
What I’ve already tried:

Confirmed the HTTP module returns correct values in its output bundle (status 200, real numbers)
Placed the HTTP module inside each route, immediately before the Sheets module, so it runs in the same bundle
Verified the module execution order is correct (HTTP runs before Sheets)
Tried {{30.data.data[0].values[0].value}} and {{30.data.data.values.value}} (empty brackets) — both write empty
Tried with and without ifempty()
A followers mapping from a different HTTP module using {{19.data.data.total_value.value}} works fine in the same scenario

Question: Why does the mapped HTTP value resolve to empty when written to Sheets, even though the HTTP module’s output bundle contains the value? Is there something about referencing an HTTP module’s parsed array response from inside a Router route that I’m missing?

:camera_with_flash: Screenshots (scenario flow, module settings, errors)

Hey Beni,

I don’t know why, but:

{{1.data.data[1].values[1].value}}

returns the first item from the arrays instead of 0.

{{1.data.data[].values[].value}}

Also returns the first item.

I will test some more tomorrow morning and see what is going on and why: {{1.data.data[0].values[0].value}} doesnt work.

I would debug this from the exact output bundle that reaches the Sheets module, not only from the HTTP module preview.

Things I would check:

1. Open the HTTP module inside the same router route and copy the exact mapped path from the output picker.

2. Confirm whether the returned body is parsed JSON or still a text string.

3. Avoid hard-coding the first array index until you confirm the order. For metrics, map by the metric name, then return the matching value.

4. Check that the module number in the expression is the HTTP module that runs in that route.

5. Add one temporary debug column in Sheets that writes the raw small JSON fragment for the metric.

This can be handled asynchronously with screenshots or redacted bundle output. No account access should be needed.