How Automation Workflows Really Work: JSON and Nodes in n8n, Claude Skills & Connectors, and Apify Web Data
Behind every “no-code” automation there is one simple idea: small programs passing JSON to each other. This guide explains how n8n workflows move data between nodes, why Claude's skills and connectors do the same job in a different way, how Apify turns almost any website into JSON, and what to do when a tool has no API at all.
Short answer
An n8n workflow is a chain of nodes: a trigger starts it, and each node receives a list of JSON items, does one job (call an API, filter, transform, send), and passes new JSON items to the next node. Claude's connectors (built on the Model Context Protocol) and skills do the same job, but an AI model decides which tool to call instead of following fixed arrows. Apify fills the gap when a website has no API: you send it a JSON input, its scraper reads the site, and you get clean JSON back. When a tool has no API, use the next-best channel in this order: webhooks, RSS, email, scraping, browser automation, then RPA or AI computer use.
1JSON: the language every automation speaks
JSON (JavaScript Object Notation) is a lightweight, text-based and language-independent format for exchanging data. It is defined by two matching standards: IETF RFC 8259 and ECMA-404.[1][2] JSON has only two ways to structure data: objects (named fields in curly braces) and arrays (ordered lists in square brackets). Inside them you find four basic value types: strings, numbers, true/false and null.[1]
{
"name": "Sami Ben Ali",
"email": "sami@example.com",
"city": "Sousse",
"newsletter": true,
"orders": [ { "id": 1042, "total": 89.5 } ]
}
Why does this matter? Most web APIs exchange JSON over HTTP. HTTP is the protocol your browser uses; it defines methods such as GET (read) and POST (send) and how requests and responses are structured.[3] The REST style that most of these APIs follow was described by Roy Fielding in his doctoral thesis.[4] So when an automation tool “connects” to Gmail, a CRM or Google Sheets, it really sends an HTTP request and gets JSON back. Once you can read JSON, you can read every automation.
2How an n8n workflow works: triggers, nodes, connections and items
n8n defines a workflow as a collection of nodes connected together to automate a process.[5] Four building blocks explain everything that happens on the canvas.
Nodes: one job each
A node is an entry point for retrieving data, a function to process data, or an exit for sending data.[6] n8n distinguishes two families:[6]
- Trigger nodes start a workflow when something happens: a time of day (Schedule Trigger),[7] an incoming HTTP call from another app (Webhook),[8] a new email (Email Trigger IMAP)[9] or a new article in an RSS feed.[10]
- Action nodes do a task: read or write data in an app, transform data, or call any API through the generic HTTP Request node.[11]
Connections: the arrows
A connection links two nodes and routes data through the workflow: the output of one node becomes the input of the next.[12] The arrows you draw are the order of execution.
Items: the JSON that travels along the arrows
This is the part most tutorials skip. In n8n, all data passed between nodes is an array of objects. Each object is an item, and its regular data sits under a json key; files such as PDFs or images sit under a binary key.[13]
[
{ "json": { "name": "Sami", "email": "sami@example.com" } },
{ "json": { "name": "Ines", "email": "ines@example.com" } }
]
When a node receives several items, it runs its operation once per item automatically.[13] That's why you don't need loops for most tasks: send 50 leads into a “Send email” node and it sends 50 emails.
Expressions: reading data from earlier nodes
To use a value inside a node's settings, n8n uses expressions written between double curly braces, such as {{ $json.email }}, which reads the email field of the current item.[14] Expressions are small pieces of JavaScript, so you can also format dates or do simple maths in place.[14]
The workflow itself is JSON too
n8n saves every workflow in JSON format, and you can export it or import it as a file.[15] Open an exported file and you find two main parts: a nodes list (what each node is and how it's configured) and a connections object (which node feeds which).
{
"name": "Daily price check",
"nodes": [
{ "name": "Every morning", "type": "n8n-nodes-base.scheduleTrigger",
"parameters": { "rule": { "interval": [ { "triggerAtHour": 8 } ] } } },
{ "name": "Get prices", "type": "n8n-nodes-base.httpRequest",
"parameters": { "method": "GET", "url": "https://api.example.com/prices" } }
],
"connections": {
"Every morning": { "main": [ [ { "node": "Get prices", "type": "main", "index": 0 } ] ] }
}
}
Exported workflow JSON includes credential names and IDs, and HTTP Request nodes imported from cURL can contain authentication headers. n8n recommends removing or anonymising this information before sharing.[15]
3A real example, step by step
Here is a workflow we often build for small businesses: “When someone fills in the contact form on the website, save the lead, check its company website and alert the sales team.”
- Webhook (trigger): the website form sends a
POSTrequest with the visitor's data. n8n turns it into one item:{"json": {"name": "...", "email": "...", "website": "..."}}.[8] - HTTP Request: fetches the lead's website using
{{ $json.website }}as the URL.[11][14] - HTML node: pulls out the page title and description with CSS selectors and adds them to the item.[16]
- Google Sheets / CRM node: appends a row with the enriched lead.
- Slack or email node: sends the sales team a message built from the same JSON fields.
Each step only reads JSON in and writes JSON out. That's the whole secret: if you know the shape of the JSON at each arrow, you can debug any workflow by clicking a node and reading its input and output panels.
4Claude skills and connectors: the same job, decided by AI
AI assistants such as Claude automate tasks with the same raw materials (HTTP, APIs and JSON), but the order of steps is decided by the model instead of being drawn on a canvas.
Tools: a node described in JSON Schema
With tool use (also called function calling), a developer describes each tool with a name, a plain-language description and an input_schema, which is a JSON Schema listing the fields the tool needs.[17][18] When Claude decides a tool is needed, it doesn't run anything itself: it returns a tool_use block containing the tool name and a JSON input, the application executes it, and sends the result back as a tool_result.[17]
{
"type": "tool_use",
"name": "get_weather",
"input": { "location": "Sousse, Tunisia" }
}
Compare that with an n8n item: it's the same idea, a JSON object handed to a piece of code that does one job.
Connectors: the Model Context Protocol (MCP)
Writing a custom integration for every app and every AI assistant doesn't scale. Anthropic introduced the Model Context Protocol (MCP) in November 2024 as an open standard for connecting AI assistants to the systems where data lives, replacing those fragmented one-off integrations.[19] The MCP documentation compares it to a USB-C port for AI applications: one standard plug for many tools.[20]
Technically, MCP messages are JSON-RPC 2.0 messages, which means plain JSON again. The protocol has three roles: the host (the AI app, such as Claude), the client (the connector inside it) and the server (the service that offers capabilities). A server can expose tools (functions the model can run), resources (data) and prompts (templates).[21] When you enable a “connector” for Gmail, Google Drive or a CRM in Claude, you are connecting it to an MCP server for that service. Access to user accounts is usually granted with OAuth, the standard that lets an app act for you without seeing your password.[22]
Skills: the instructions that tie tools together
A connector gives Claude abilities; a skill gives it know-how. Anthropic defines an Agent Skill as a folder containing a SKILL.md file with instructions, plus optional scripts and resources. The file starts with a short name and description, so Claude only loads the full instructions when a task needs them (“progressive disclosure”).[23][24] Skills can also bundle scripts that Claude runs for deterministic steps, which is more reliable than generating the same logic each time.[23] In practice, a skill plays the role of the workflow diagram: “first fetch the invoices, then fill in the sheet, then email the summary”.
n8n vs Claude: side by side
| Concept | n8n workflow | Claude with skills & connectors |
|---|---|---|
| What starts it | A trigger node (schedule, webhook, email…)[6] | A request in plain language from a person |
| Unit of work | A node[6] | A tool, often exposed by an MCP server[21] |
| Data passed | Array of JSON items[13] | JSON tool inputs and results; JSON-RPC messages[17][21] |
| Order of steps | Fixed by the arrows you draw[12] | Chosen by the model, guided by the skill's instructions[23] |
| Best for | Repeated, predictable, high-volume tasks | Varied tasks that need judgement, reading or writing |
n8n's MCP Server Trigger node exposes your n8n workflows as tools that MCP clients such as Claude can call,[25] and its MCP Client Tool node lets an AI agent inside n8n use tools from any external MCP server.[26] A common pattern: let Claude decide what to do, and let a tested n8n workflow do the repetitive part reliably.
5How Apify turns any website into JSON
Many websites you'd like to automate (competitors' prices, directories, job boards, Google Maps listings, news sites) have no public API. Apify is a platform for exactly this gap.
Actors: JSON in, JSON out
Apify's programs are called Actors: serverless cloud programs that take a structured JSON input, perform a task such as web scraping or browser automation, and produce structured output.[27] The results of a run are stored in a dataset, a table-like storage where each scraped page or product is one record that you can export as JSON, CSV, Excel and other formats.[28]
For example, the Website Content Crawler Actor crawls a site and returns the text of each page as clean text or Markdown, which is ideal for feeding AI chatbots and RAG systems. It can use a headless browser for JavaScript-heavy sites or plain HTTP for speed.[29] Its input is a small JSON object:
{
"startUrls": [ { "url": "https://www.example.com/blog" } ],
"maxCrawlPages": 20,
"respectRobotsTxtFile": true
}
And the output is a list of JSON records, one per page, with fields such as the page URL, its text or Markdown and its metadata.[29]
Calling Apify from n8n: two ways
- The Apify node (Apify's own community node,
@apify/n8n-nodes-apify) can run an Actor, fetch dataset items, and trigger a workflow when an Actor run finishes. It connects with an API token or, on n8n Cloud, with OAuth2.[30] - A single HTTP Request node. Apify's API has an endpoint that runs an Actor and returns its dataset items in the same response:
POST https://api.apify.com/v2/actors/<actorId>/run-sync-get-dataset-items. The JSON body you send becomes the Actor's input, and the response is the scraped data. The synchronous call waits up to 300 seconds; longer jobs should run asynchronously.[31]
Apify accepts the API token as a URL parameter, but recommends sending it in an Authorization: Bearer header, because URLs end up in browser history and server logs.[32] In n8n, store it once as a Header Auth credential on the HTTP Request node.[11]
Apify also runs an MCP server, so Claude and other AI assistants can search for and run Apify Actors directly as tools.[33] Again, the same plumbing: JSON input, JSON output, a tool in the middle.
Scrape responsibly
Being technically able to read a page doesn't mean every use is allowed. Respect the site's robots.txt rules, the standard way sites tell automated clients which paths they may access,[34] read the site's terms of use, and limit how fast you crawl. If you collect information about people, such as names, emails or profiles, data-protection laws like the EU's GDPR apply, including the need for a lawful basis for processing.[35]
6When a tool has no API: the alternatives
An API (application programming interface) is the official door a software product opens for other programs. Automation is easiest and most reliable through it: n8n's HTTP Request node can call any REST API, even when there is no ready-made node for that service.[11] But many tools, especially older, local or niche software, don't offer one. Here are the alternatives, from the most reliable to the most fragile.
1. Webhooks and push notifications
Some tools have no full API but can still send a notification to a URL when something happens. n8n's Webhook node gives you that URL.[8] The W3C's WebSub standard describes this publish-and-subscribe pattern for the web.[36]
2. RSS feeds
Blogs, news sites, job boards and many platforms still publish RSS, a standard XML feed of their latest items.[37] n8n's RSS Feed Trigger starts a workflow whenever a new item appears.[10]
3. Email as the integration
Almost every tool can send emails: order confirmations, reports, alerts and CSV exports. n8n's Email Trigger (IMAP) watches a mailbox and starts a workflow for each new message,[9] and attachments arrive as binary data you can process in the next nodes.[13] A dedicated inbox per automation keeps this clean.
4. Fetching and parsing the HTML
If the information is visible on a simple web page, an HTTP Request node can download the page and the HTML node can extract parts of it with CSS selectors.[11][16] This works for static pages but breaks when the content is built by JavaScript.
5. Scraping platforms (Apify)
For JavaScript-heavy sites, many pages, pagination, or sites that change often, use a managed scraper. Apify Actors handle browsers, retries and storage for you, and return a JSON dataset (see section 5).[27][29]
6. Browser automation
When you need to act on a website (log in to your own account, fill in forms, download a report) you can script a real browser. Microsoft's open-source Playwright drives the three main browser engines, Chromium, Firefox and WebKit, with or without a visible window.[38] The script follows the same clicks a person would do.
7. RPA: robots that use the screen
Robotic Process Automation (RPA) automates desktop software through its user interface, the way an employee would. Researchers describe it as an “outside-in” approach: the existing system stays unchanged, and software robots work on top of it, which suits repetitive, rule-based tasks in legacy systems that have no API.[39]
8. AI computer use
The newest option is to let an AI model operate a computer. Claude's computer use tool lets the model take screenshots and control the mouse and keyboard to complete tasks in a desktop environment.[40] Unlike classic RPA, it can adapt when a button moves. Anthropic's documentation insists on safeguards: run it in a dedicated virtual machine or container, don't give it sensitive data, limit internet access, and require human confirmation for consequential actions, because content on a screen can try to hijack the model's instructions (prompt injection).[40]
| Method | Use it when | Reliability |
|---|---|---|
| Official API | The tool offers one (always check first) | Highest |
| Webhooks / RSS | You only need to react to new events | High |
| Email parsing | The tool sends notifications or exports by email | High, if the email format is stable |
| HTTP + HTML node | Simple, static public pages | Medium: breaks when the page layout changes |
| Apify Actors | Many pages, JavaScript sites, recurring data collection | Medium to high (maintained scrapers) |
| Browser automation | You need to log in, click or fill forms on the web | Medium |
| RPA / AI computer use | Desktop or legacy software with no other door | Lowest; needs supervision |
Methods 4 to 8 depend on what a screen or page looks like, so a redesign can break them overnight. Add error alerts to every such workflow, and ask the software vendor whether an API, export or webhook exists before building on the interface.
7How to choose the right method
- Write the task as data: what JSON comes in, and what JSON should come out? If you can't describe it, it isn't ready to automate.
- Look for the official door: a native n8n node, a public API callable with the HTTP Request node,[11] or an MCP server for Claude.[20]
- No API? Go down the list above: webhook, RSS, email, then scraping or browser automation.
- Fixed steps or judgement? Repeated, predictable steps belong in an n8n workflow; tasks that need reading, writing or decisions suit Claude with skills and connectors. Many businesses use both.
- Protect the data: keep tokens in credentials, never in URLs,[32] and respect privacy law when you handle personal data.[35]
Automation also helps your visibility work. Our guide The SEO & GEO audit prompt shows how an AI assistant can audit a site, and From Keywords to Vectors explains how AI search engines retrieve content, often from the same kind of crawled JSON described above.
Frequently asked questions
What is a node in n8n?
A node is one step of a workflow: an entry point that retrieves data, a function that processes it, or an exit that sends it somewhere. Trigger nodes start a workflow; action nodes perform tasks.[6] Nodes pass data to each other as an array of JSON items.[13]
Do I need to know how to code to use JSON in n8n?
No. You mostly need to read JSON: objects in curly braces, lists in square brackets.[1] n8n shows each node's input and output, and you reference fields with expressions such as $json.email.[14] Code is only needed for unusual transformations.
Is Claude with MCP connectors a replacement for n8n?
Not exactly. Both use tools that exchange JSON, but n8n follows fixed connections you design,[12] while Claude chooses which tool to call based on the request.[17] They also work together: n8n's MCP Server Trigger can expose workflows as tools for Claude.[25]
Can Apify scrape any website?
Apify Actors can read most public websites, including JavaScript-heavy ones, and return the data as JSON.[27][29] Whether you should is a separate question: follow robots.txt,[34] the site's terms, and data-protection law such as the GDPR when personal data is involved.[35]
How do I automate software that has no API?
Try, in order: webhooks, RSS feeds, email notifications or exports, HTML parsing, a scraping platform such as Apify, browser automation with Playwright, and finally RPA or AI computer use for desktop software.[36][38][39][40] The further down the list, the more supervision the automation needs.
Sources
Every explanation in this article is based on the technical standards, official documentation and peer-reviewed research below. Numbers in the text, such as [1], link to the matching source and open this list. All links were checked on October 16, 2026.
Show all 40 sourcesHide sources
- Bray, T. (Ed.) (2017). RFC 8259: The JavaScript Object Notation (JSON) Data Interchange Format. Internet Engineering Task Force (IETF), STD 90. www.rfc-editor.org/rfc/rfc8259
- Ecma International (2017). ECMA-404: The JSON Data Interchange Syntax, 2nd edition. ecma-international.org/publications-and-standards/standards/ecma-404/
- Fielding, R., Nottingham, M. & Reschke, J. (Eds.) (2022). RFC 9110: HTTP Semantics. Internet Engineering Task Force (IETF), STD 97. www.rfc-editor.org/rfc/rfc9110
- Fielding, R. T. (2000). Architectural Styles and the Design of Network-based Software Architectures (Doctoral dissertation). University of California, Irvine. Chapter 5 defines REST. ics.uci.edu/~fielding/pubs/dissertation/top.htm
- n8n Docs. Workflows. n8n official documentation. docs.n8n.io/workflows/
- n8n Docs. Nodes. n8n official documentation. docs.n8n.io/workflows/components/nodes/
- n8n Docs. Schedule Trigger node. n8n official documentation. docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.scheduletrigger/
- n8n Docs. Webhook node. n8n official documentation. docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.webhook/
- n8n Docs. Email Trigger (IMAP) node. n8n official documentation. docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.emailimap/
- n8n Docs. RSS Feed Trigger node. n8n official documentation. docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.rssfeedreadtrigger/
- n8n Docs. HTTP Request node. n8n official documentation. docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.httprequest/
- n8n Docs. Connections. n8n official documentation. docs.n8n.io/workflows/components/connections/
- n8n Docs. Data structure. n8n official documentation. docs.n8n.io/data/data-structure/
- n8n Docs. Expressions. n8n official documentation. docs.n8n.io/code/expressions/
- n8n Docs. Export and import workflows. n8n official documentation. docs.n8n.io/workflows/export-import/
- n8n Docs. HTML node. n8n official documentation. docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.html/
- Anthropic. Tool use with Claude. Claude Developer Platform documentation. platform.claude.com/docs/en/agents-and-tools/tool-use/overview
- JSON Schema: specification and documentation (json-schema.org). json-schema.org/
- Anthropic (2024, November 25). Introducing the Model Context Protocol. www.anthropic.com/news/model-context-protocol
- Model Context Protocol. What is the Model Context Protocol (MCP)? Getting-started documentation. modelcontextprotocol.io/docs/getting-started/intro
- Model Context Protocol. Specification, version 2025-06-18. modelcontextprotocol.io/specification/2025-06-18
- Hardt, D. (Ed.) (2012). RFC 6749: The OAuth 2.0 Authorization Framework. Internet Engineering Task Force (IETF). www.rfc-editor.org/rfc/rfc6749
- Anthropic Engineering (2025, October 16; updated 2025, December 18). Equipping agents for the real world with Agent Skills. www.anthropic.com/engineering/equipping-agents-for-the-real-world-with-agent-skills
- Anthropic. Agent Skills: overview. Claude documentation. docs.claude.com/en/docs/agents-and-tools/agent-skills/overview
- n8n Docs. MCP Server Trigger node. n8n official documentation. docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-langchain.mcptrigger/
- n8n Docs. MCP Client Tool node. n8n official documentation. docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.toolmcp/
- Apify Docs. Actors. Apify platform documentation. docs.apify.com/platform/actors
- Apify Docs. Dataset. Apify platform storage documentation. docs.apify.com/platform/storage/dataset
- Apify. Website Content Crawler (Actor page and input schema). apify.com/apify/website-content-crawler
- Apify Docs. n8n integration. Apify platform documentation. docs.apify.com/platform/integrations/n8n
- Apify API v2 reference. Run Actor synchronously and get dataset items. docs.apify.com/api/v2/act-run-sync-get-dataset-items-post
- Apify API v2 reference. Introduction and authentication. docs.apify.com/api/v2
- Apify Docs. Apify MCP server. Apify platform documentation. docs.apify.com/platform/integrations/mcp
- Koster, M., Illyes, G., Zeller, H. & Sassman, L. (2022). RFC 9309: Robots Exclusion Protocol. Internet Engineering Task Force (IETF). www.rfc-editor.org/rfc/rfc9309
- European Union (2016). Regulation (EU) 2016/679 (General Data Protection Regulation). Official Journal of the European Union, L 119. eur-lex.europa.eu/eli/reg/2016/679/oj
- W3C (2018). WebSub. W3C Recommendation. www.w3.org/TR/websub/
- RSS Advisory Board. RSS 2.0 Specification. www.rssboard.org/rss-specification
- Microsoft. Playwright: Installation and introduction. Playwright documentation. playwright.dev/docs/intro
- van der Aalst, W. M. P., Bichler, M. & Heinzl, A. (2018). Robotic Process Automation. Business & Information Systems Engineering, 60(4), 269–272. doi:10.1007/s12599-018-0542-4. doi.org/10.1007/s12599-018-0542-4
- Anthropic. Computer use tool. Claude Developer Platform documentation. platform.claude.com/docs/en/agents-and-tools/tool-use/computer-use-tool