On n8n Cloud (v1.90.2), my DataForSEO HTTP node works manually but outputs nothing in full runs—how can I ensure it executes once per workflow and returns its JSON?

When I Execute Node on my HTTP Request node (DataForSEO OnPage → v3/on_page/pages), it returns the expected JSON.
But when I run the full workflow, this same node outputs no data to downstream nodes (empty output array). No explicit error is shown.
Context
DataForSEO tested the same payload and confirmed a successful response on their side. I can also reproduce success when I execute the node manually.
I expect the HTTP Request node to run once per workflow and pass the JSON into the next node.
Suspicions
The node may not be receiving any input items during the full run (so it never executes), while manual “Execute Node” bypasses that requirement.
Expressions (e.g., {{$json.something}}) might resolve in manual mode but be undefined during the full run.
Possibly need Always Output Data enabled to ensure a single output item.
What I’d like help with
Confirm execution semantics (does the HTTP node skip execution if upstream returns ?).
Best practice to guarantee the HTTP call runs once per workflow (e.g., a Set node that emits 1 item).
Whether Always Output Data should be ON here, and best way to surface when a node didn’t execute due to zero input items.
What is the error message (if any)?
No error message. In the full workflow run, the downstream node receives (no items). Manual node execution returns the full JSON.
Please share your workflow
I’m including the structure + key configuration below. If you need the full export JSON, I can attach it.
Minimal repro structure
Trigger (Manual/Cron/etc.) →
Set (outputs ping=1 to guarantee 1 input item) →
HTTP Request (DataForSEO) →
Set (or Code) that reads {{$json[“tasks”][0][“result”][0][“items”]}}
HTTP Request node (essentials)
Method: POST
URL: https://api.dataforseo.com/v3/on_page/pages
Authentication: Basic (DataForSEO login/password)
Headers: Content-Type: application/json
Body: JSON array (one task)
[
{
“target”: “https://www.addpeople.co.uk/”,
“max_crawl_pages”: 20,
“limit”: 150
}
]
Response: JSON
Options tested: Always Output Data: ON
What I’ve tried
Added a Set node before the HTTP node to ensure 1 input item.
Turned Always Output Data ON in the HTTP node.
Replaced any expressions in URL/body/headers with constants (to rule out context issues).
Added a Set after the HTTP node to display {{$json[“tasks”][0][“result”][0][“items”]}}.
Verified Basic Auth is set in the node’s Authentication section (not just headers).
Share the output returned by the last node
Manual “Execute Node” (works): returns JSON shaped like:
{
“status_code”: 20000,
“status_message”: “Ok.”,
“path”: “v3/on_page/pages”,
“tasks”: [
{
“result”: [
{
“crawl_progress”: “finished”,
“items_count”: 20,
“items”: [ /* …20 page items incl. url, onpage_score, etc. … */ ]
}
]
}
]
}
Full workflow run: the downstream node receives (no items). No error shown.

Expected output: One item containing the response JSON so I can map from tasks[0].result[0].items[*].
Information on your n8n setup
n8n version: 1.90.2
Database (default: SQLite): Managed by n8n Cloud
n8n EXECUTIONS_PROCESS (default: own, main): Managed by n8n Cloud
Running n8n via (Docker, npm, n8n cloud, desktop app): n8n Cloud
Operating system: N/A (Managed by n8n Cloud)
Additional info
Instance ID: afb990a3fdfa7ed01eea5156bd32a0630c0342706e20f64de9d0b242d66f67b1

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.