{"workflow":{"id":14471,"name":"Manage Strapi CMS v5 content types via webhook using HTTP requests","views":19,"recentViews":2,"totalViews":19,"createdAt":"2026-03-30T12:26:09.932Z","description":"# n8n workflow template: Strapi CMS v5 content API\n\nAn importable [n8n](https://n8n.io/) workflow that **creates**, **updates**, and **lists** entries on **Strapi v5** through a single webhook. It talks to Strapi’s REST API with **HTTP Request** nodes and a **Strapi Token API** credential, so it stays compatible with v5 even though n8n’s built-in Strapi node targets older Strapi versions.\n\n## What’s in this repo\n\n| File | Purpose |\n|------|---------|\n| [`strapi-v5-content-n8n-workflow.json`](./strapi-v5-content-n8n-workflow.json) | Workflow export — use for **Import from File** / **Import from URL** in n8n or when submitting to the n8n template gallery |\n\n## Features\n\n- **One webhook, three actions** — `action_type` routes to `create`, `update`, or `get_all`.\n- **Any content type** — pass the plural API ID (`content_type_plural`) per request; no workflow fork per collection.\n- **Strapi v5** — uses `documentId` on update and REST URLs shaped for the v5 API.\n- **List with options** — `get_all` supports `status`, `page_size`, `page_number`, and `populate=*` in the workflow.\n- **Clear failures** — checks Strapi error responses and can mark the execution failed via **Stop and Error**.\n- **Extra documentation** — after import, open the large sticky note on the canvas for full payload examples and security notes.\n\n## Requirements\n\n- n8n (self-hosted or cloud)\n- Strapi **v5** with a valid **API token** (Settings → API Tokens) and permissions for the collections you automate\n\n## Quick start\n\n1. In n8n, choose **Import workflow** → **From File** and select `strapi-v5-content-n8n-workflow.json` (or import from this repo’s raw URL).\n2. Create a **Strapi Token API** credential in n8n and attach it to all **HTTP Request** nodes (**Create**, **Update**, **Get all**).\n3. **Activate** the workflow and copy the webhook’s **Production URL** (default path segment: `strapi-v5-content`). Change the path in the **Webhook** node if it clashes with another active workflow on the same instance.\n4. Send **POST** requests with a JSON **body** as below. Do **not** include a trailing slash on `strapi_base_url`.\n\n### Webhook security (recommended before production)\n\nThe template ships with **no** webhook authentication so you can test quickly. Before exposing the URL publicly, add authentication on the **Webhook** node (for example **Header Auth** with `X-API-Key` and a long random secret) and send that header on every call. The workflow intentionally does not hardcode your Strapi host: callers supply `strapi_base_url` in the body, so only trusted clients should be allowed.\n\n## Request body reference\n\nAll actions expect a JSON object (typically the webhook body). Common fields:\n\n| Field | Required | Description |\n|-------|----------|-------------|\n| `action_type` | Yes | `\"create\"` \\| `\"update\"` \\| `\"get_all\"` |\n| `strapi_base_url` | Yes | Strapi origin, no trailing slash (e.g. `https://your-project.strapiapp.com`) |\n| `content_type_plural` | Yes | Plural API ID from Content-Type Builder (e.g. `articles`) |\n\n### `get_all`\n\nOptional: `status` (`published` / `draft`), `page_size`, `page_number`.\n\n### `create`\n\nRequired: `data` — object of field names and values matching your Strapi schema.\n\n### `update`\n\nRequired: `documentId` (Strapi v5), and `data` with fields to patch.\n\nExample shapes:\n\n```json\n{\n  \"action_type\": \"get_all\",\n  \"strapi_base_url\": \"https://your-strapi.example.com\",\n  \"content_type_plural\": \"articles\",\n  \"status\": \"published\",\n  \"page_size\": 10,\n  \"page_number\": 1\n}\n```\n\n```json\n{\n  \"action_type\": \"create\",\n  \"strapi_base_url\": \"https://your-strapi.example.com\",\n  \"content_type_plural\": \"articles\",\n  \"data\": { \"title\": \"Hello\", \"slug\": \"hello\" }\n}\n```\n\n```json\n{\n  \"action_type\": \"update\",\n  \"strapi_base_url\": \"https://your-strapi.example.com\",\n  \"content_type_plural\": \"articles\",\n  \"documentId\": \"&lt;from get_all or Strapi admin&gt;\",\n  \"data\": { \"title\": \"Updated title\" }\n}\n```\n\nFor full parameter notes, pagination examples, and **MCP / AI agent** usage, see the sticky note inside the imported workflow.\n\n\n## License\n\nThis project is released under the [MIT License](./LICENSE) (Copyright © 2026 IBSolutions.dev).\n","workflow":{"meta":{},"name":"Manage Strapi CMS Content Type Template","tags":[],"nodes":[{"id":"77c01667-c619-46ba-b6d4-f9ac93eecd25","name":"Webhook","type":"n8n-nodes-base.webhook","position":[464,496],"parameters":{"path":"strapi-v5-content","options":{},"httpMethod":"POST","responseMode":"responseNode"},"typeVersion":2.1,"alwaysOutputData":true},{"id":"de76dd1c-bf21-472e-9df1-c1e7207ea504","name":"Respond to Webhook","type":"n8n-nodes-base.respondToWebhook","position":[2384,496],"parameters":{"options":{},"respondWith":"allIncomingItems"},"typeVersion":1.5},{"id":"68a092d9-fe03-4f4a-ac6e-b0e209194ed7","name":"Create a new Insight","type":"n8n-nodes-base.httpRequest","position":[1632,288],"parameters":{"url":"={{ $json.body.strapi_base_url }}/api/{{ $json.body.content_type_plural }}?status={{ $json.body.status }}","method":"POST","options":{"response":{"response":{"neverError":true}}},"jsonBody":"={{ { data: $('Webhook').item.json.body.data } }}","sendBody":true,"sendHeaders":true,"specifyBody":"json","authentication":"predefinedCredentialType","headerParameters":{"parameters":[{"name":"Content-Type","value":"application/json"}]},"nodeCredentialType":"strapiTokenApi"},"credentials":{"strapiTokenApi":{"name":"Strapi API"}},"typeVersion":4.4},{"id":"59bbd187-cb1d-447d-8aa7-3beddd058bc9","name":"Update an insight","type":"n8n-nodes-base.httpRequest","position":[1632,496],"parameters":{"url":"={{ $json.body.strapi_base_url }}/api/{{ $json.body.content_type_plural }}/{{ $json.body.documentId }}?status={{ $json.body.status }}","method":"PUT","options":{"response":{"response":{"neverError":true}}},"jsonBody":"={{ { data: $('Webhook').item.json.body.data } }}","sendBody":true,"sendHeaders":true,"specifyBody":"json","authentication":"predefinedCredentialType","headerParameters":{"parameters":[{"name":"Content-Type","value":"application/json"}]},"nodeCredentialType":"strapiTokenApi"},"credentials":{"strapiTokenApi":{"name":"Strapi API"}},"typeVersion":4.4},{"id":"46ddf2d4-af73-4e3a-a5e8-c5139aba8d08","name":"Check if Error Occurred","type":"n8n-nodes-base.if","position":[2800,496],"parameters":{"options":{},"conditions":{"options":{"leftValue":"","caseSensitive":false,"typeValidation":"loose"},"combinator":"and","conditions":[{"id":"id-1","operator":{"type":"object","operation":"notEmpty"},"leftValue":"={{ $json.error }}"}]}},"typeVersion":2.3},{"id":"02b865a1-a88e-4e7d-820f-09cbc56d4048","name":"Mark Execution as Failed","type":"n8n-nodes-base.stopAndError","position":[3024,496],"parameters":{"errorMessage":"={{ $json.error.message || 'Strapi operation failed' }}"},"typeVersion":1},{"id":"90ff1540-92ce-44a1-a44b-d59c72ee882a","name":"Sticky Note1","type":"n8n-nodes-base.stickyNote","position":[-768,-272],"parameters":{"color":6,"width":960,"height":3568,"content":"# Create, update, and retrieve content entries in Strapi CMS v5\n\nManage your Strapi CMS v5 content entries directly from n8n via webhook or MCP — without touching the Strapi UI. Supports creating, updating, and retrieving entries for any content type.\n\n> **Note:** The official n8n Strapi node only supports Strapi v3 and v4. This workflow uses the Strapi REST API directly via HTTP Request nodes, making it fully compatible with **Strapi v5**.\n\n## Who's it for\n\n## Sharing (n8n.io templates and GitHub)\n\nUse the **same JSON file** for both channels. **n8n.io:** Submit through the template flow; importers get a copy and map the **Strapi API** credential after import. **GitHub:** Commit this `.json` (or link to **Raw**); users use **Import from File** or **Import from URL** in n8n. After any edit, re-import once in a clean n8n project to confirm the workflow loads and the webhook path is free on that instance.\n\nTeams and developers running Strapi CMS v5 who want to automate content operations — publishing blog posts, syncing CMS entries from other tools, or letting AI agents manage content via MCP — without waiting for the official Strapi node to catch up.\n\n## How it works\n\nA single webhook endpoint accepts a JSON payload with an `action_type` parameter that routes the request to one of three branches:\n\n- **`get_all`** — fetches entries for the specified content type, with optional status filtering and pagination\n- **`create`** — creates a new entry with the fields you provide\n- **`update`** — updates an existing entry by its Strapi `documentId`\n\nThe content type is passed dynamically via `content_type_plural`, so the same workflow works across all your Strapi content types without modification. The workflow also supports being called directly by an AI agent via n8n's MCP server.\n\n## How to set up\n\n1. Import the workflow into your n8n instance.\n2. Create a **Strapi API Token** in your Strapi admin panel (Settings → API Tokens).\n3. Add the token as a **Strapi Token API** credential in n8n and assign it to every **HTTP Request** node (Create, Update, Get all).\n4. **Secure the webhook (strongly recommended):** This template’s **Webhook** node has **no authentication** by default so you can test immediately. Before production, open the Webhook node → **Authentication** → add **Header Auth** (or another method your team prefers). Create a credential with header name `X-API-Key` and a long random secret, attach it to the Webhook node, and send that header on every `POST`.\n5. **Activate** the workflow, then copy the **Production URL** from the Webhook node — that is the URL your clients must call.\n\nNo Strapi base URL is stored in the workflow. Pass `strapi_base_url` in each request body as documented below.\n\n## Requirements\n\n- n8n (self-hosted or cloud)\n- Strapi CMS v5 instance (cloud or self-hosted)\n- A Strapi API Token with appropriate read/write permissions (connected to the HTTP Request nodes)\n- **Recommended for production:** authentication on the Webhook node (e.g. **Header Auth** with `X-API-Key`) so only trusted callers can trigger Strapi operations\n\n## Calling the webhook\n\nSend a `POST` to the **Production webhook URL** from the Webhook node after activation. It usually looks like `https://<your-n8n-host>/webhook/<path>`. This template’s default path is `strapi-v5-content` (so the URL ends with `/webhook/strapi-v5-content`). Change it in the Webhook node if that path is already used by another **active** workflow on the same n8n instance (for example, if you imported this template twice). The workflow JSON intentionally **omits** `webhookId` so n8n can register a new webhook for each import instead of reusing the author’s instance id.\n\nIf you configured **Header Auth** on the Webhook node, include your secret on every request:\n\n```\nX-API-Key: your-long-random-secret\n```\n\n> **Security:** Without webhook authentication, anyone who can reach the URL can drive create/update/read operations using your Strapi credential inside n8n. Use authentication and HTTPS before exposing this to the internet. Because `strapi_base_url` comes from the request body, only allow trusted callers or consider fixing the base URL inside the workflow if you need stricter control.\n\n### Get all entries\n\n```json\n{\n  \"action_type\": \"get_all\",\n  \"strapi_base_url\": \"https://your-strapi-app.strapiapp.com\",\n  \"content_type_plural\": \"articles\"\n}\n```\n\n**`action_type`** _(string, required)_ — must be `\"get_all\"`\n\n**`strapi_base_url`** _(string, required)_ — the base URL of your Strapi instance, without a trailing slash (e.g. `https://your-strapi-app.strapiapp.com`).\n\n**`content_type_plural`** _(string, required)_ — the plural API ID of your Strapi content type (e.g. `articles`, `products`). Found in Strapi under Content-Type Builder → your type → API ID.\n\n**`status`** _(string, optional)_ — filter entries by publish state. Pass `\"published\"` to return only live entries, or `\"draft\"` to return only unpublished entries. Omit to return all entries regardless of status.\n\n**`page_size`** _(number, optional)_ — number of entries to return per page. Uses Strapi's default pagination limit when omitted.\n\n**`page_number`** _(number, optional)_ — page to retrieve. Defaults to `1`. Use together with `page_size` to paginate through large result sets.\n\n**Examples:**\n\nFetch only draft entries:\n```json\n{\n  \"action_type\": \"get_all\",\n  \"strapi_base_url\": \"https://your-strapi-app.strapiapp.com\",\n  \"content_type_plural\": \"articles\",\n  \"status\": \"draft\"\n}\n```\n\nFetch published entries, paginated:\n```json\n{\n  \"action_type\": \"get_all\",\n  \"strapi_base_url\": \"https://your-strapi-app.strapiapp.com\",\n  \"content_type_plural\": \"articles\",\n  \"status\": \"published\",\n  \"page_size\": 10,\n  \"page_number\": 2\n}\n```\n\n### Create a new entry\n\n```json\n{\n  \"action_type\": \"create\",\n  \"strapi_base_url\": \"https://your-strapi-app.strapiapp.com\",\n  \"content_type_plural\": \"articles\",\n  \"data\": {\n    \"title\": \"My new article\",\n    \"body\": \"Content goes here\"\n  }\n}\n```\n\n**`action_type`** _(string, required)_ — must be `\"create\"`\n\n**`strapi_base_url`** _(string, required)_ — the base URL of your Strapi instance, without a trailing slash.\n\n**`content_type_plural`** _(string, required)_ — the plural API ID of your Strapi content type.\n\n**`data`** _(object, required)_ — entry fields to write. Field names must match your Strapi content type schema.\n\n### Update an existing entry\n\n```json\n{\n  \"action_type\": \"update\",\n  \"strapi_base_url\": \"https://your-strapi-app.strapiapp.com\",\n  \"content_type_plural\": \"articles\",\n  \"documentId\": \"<strapi-document-id>\",\n  \"data\": {\n    \"title\": \"Updated title\"\n  }\n}\n```\n\n**`action_type`** _(string, required)_ — must be `\"update\"`\n\n**`strapi_base_url`** _(string, required)_ — the base URL of your Strapi instance, without a trailing slash.\n\n**`content_type_plural`** _(string, required)_ — the plural API ID of your Strapi content type.\n\n**`documentId`** _(string, required)_ — the Strapi `documentId` of the entry to update. Returned by `get_all`.\n\n**`data`** _(object, required)_ — fields to update. Only include the fields you want to change.\n\n## Using with MCP (AI agents)\n\nTo call this workflow from an AI agent via n8n’s MCP integration, turn on **Available in MCP** (or equivalent) in the workflow settings so the workflow is exposed to your MCP server. Agents then use the same `action_type`, `strapi_base_url`, and payload fields as the webhook examples — no separate webhook URL on the agent side. If you *also* use the public HTTP webhook, still apply **Header Auth** (or another gate) on the Webhook node as described above.\n\n## How to customize\n\n- **Point to a different Strapi instance:** Pass a different `strapi_base_url` per request — no workflow edits needed.\n- **Change the content type:** Pass a different `content_type_plural` value per request — no workflow edits needed.\n- **Filter by status:** Use `status: \"draft\"` or `status: \"published\"` in `get_all` to scope results — useful when AI agents need to find unpublished entries to review or update.\n- **Paginate large result sets:** Use `page_size` and `page_number` together to walk through content types with many entries.\n- **Add more actions:** Duplicate a branch in the Switch node and add a `delete` or `get_one` action following the same pattern.\n"},"typeVersion":1},{"id":"b2067421-1fbb-493c-a3d7-a636e29cc185","name":"Sticky Note","type":"n8n-nodes-base.stickyNote","position":[704,368],"parameters":{"color":6,"width":384,"height":336,"content":"## Determines which type of action (get, create or update) to take"},"typeVersion":1},{"id":"940fb6f8-ce35-487d-842b-e5bec0a0861b","name":"Action detection","type":"n8n-nodes-base.switch","position":[848,480],"parameters":{"rules":{"values":[{"conditions":{"options":{"version":3,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"7153d2e4-2013-4469-9906-afcc969c3c85","operator":{"type":"string","operation":"equals"},"leftValue":"={{ $json.body.action_type }}","rightValue":"create"}]}},{"conditions":{"options":{"version":3,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"104bd158-fc00-4a5e-81fa-fb28acc7fe34","operator":{"name":"filter.operator.equals","type":"string","operation":"equals"},"leftValue":"={{ $json.body.action_type }}","rightValue":"update"}]}},{"conditions":{"options":{"version":3,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"378997a0-7acc-47a3-b65d-46e61305eee0","operator":{"name":"filter.operator.equals","type":"string","operation":"equals"},"leftValue":"={{ $json.body.action_type }}","rightValue":"get_all"}]}}]},"options":{}},"typeVersion":3.4},{"id":"4a2ad70c-78a9-4885-93e9-93c5b70432cd","name":"Sticky Note2","type":"n8n-nodes-base.stickyNote","position":[1456,192],"parameters":{"color":6,"width":432,"height":704,"content":"## Creates a request to Strapi CMS API\n"},"typeVersion":1},{"id":"90c0692f-7c99-47f8-a313-ab33af746c4c","name":"Sticky Note3","type":"n8n-nodes-base.stickyNote","position":[2240,384],"parameters":{"color":6,"width":384,"height":336,"content":"## Responds back to webhook with Strapi CMS API output"},"typeVersion":1},{"id":"b47f0afe-e60a-475e-b316-267dfac82093","name":"Sticky Note4","type":"n8n-nodes-base.stickyNote","position":[2688,384],"parameters":{"color":6,"width":528,"height":336,"content":"## Determines if Strapi CMS responded with error to label workflow's execution as failed"},"typeVersion":1},{"id":"bfda25fb-ca91-4767-bb0e-e57807121ca2","name":"Get all Insights","type":"n8n-nodes-base.httpRequest","position":[1632,704],"parameters":{"url":"={{ $json.body.strapi_base_url }}/api/{{ $json.body.content_type_plural }}?status={{ $json.body.status }}&populate=*&pagination[pageSize]={{ $json.body.page_size }}&pagination[page]={{ $json.body.page_number }}","options":{"response":{"response":{"neverError":true}}},"sendHeaders":true,"authentication":"predefinedCredentialType","headerParameters":{"parameters":[{"name":"Content-Type","value":"application/json"}]},"nodeCredentialType":"strapiTokenApi"},"credentials":{"strapiTokenApi":{"name":"Strapi API"}},"typeVersion":4.4}],"active":false,"pinData":{},"settings":{"binaryMode":"separate","callerPolicy":"workflowsFromSameOwner","timeSavedMode":"fixed","availableInMCP":false,"executionOrder":"v1","executionTimeout":-1},"connections":{"Webhook":{"main":[[{"node":"Action detection","type":"main","index":0}]]},"Action detection":{"main":[[{"node":"Create a new Insight","type":"main","index":0}],[{"node":"Update an insight","type":"main","index":0}],[{"node":"Get all Insights","type":"main","index":0}]]},"Get all Insights":{"main":[[{"node":"Respond to Webhook","type":"main","index":0}]]},"Update an insight":{"main":[[{"node":"Respond to Webhook","type":"main","index":0}]]},"Respond to Webhook":{"main":[[{"node":"Check if Error Occurred","type":"main","index":0}]]},"Create a new Insight":{"main":[[{"node":"Respond to Webhook","type":"main","index":0}]]},"Check if Error Occurred":{"main":[[{"node":"Mark Execution as Failed","type":"main","index":0}]]}}},"lastUpdatedBy":1,"workflowInfo":{"nodeCount":13,"nodeTypes":{"n8n-nodes-base.if":{"count":1},"n8n-nodes-base.switch":{"count":1},"n8n-nodes-base.webhook":{"count":1},"n8n-nodes-base.stickyNote":{"count":5},"n8n-nodes-base.httpRequest":{"count":3},"n8n-nodes-base.stopAndError":{"count":1},"n8n-nodes-base.respondToWebhook":{"count":1}}},"status":"published","readyToDemo":null,"user":{"name":"Ivars Bariss","username":"ivarsbariss","bio":"I build web systems that turn disconnected marketing, sales, and ops tools into something AI can actually use // Founder & Web Systems Developer @ IB Solutions","verified":false,"links":["https://ibsolutions.dev/"],"avatar":"https://gravatar.com/avatar/17a967a4ef3f46ce80be1d5e430cb1b38c6fb738d65118324224ba9e5b15c783?r=pg&d=retro&size=200"},"nodes":[{"id":19,"icon":"file:httprequest.svg","name":"n8n-nodes-base.httpRequest","codex":{"data":{"alias":["API","Request","URL","Build","cURL"],"resources":{"generic":[{"url":"https://n8n.io/blog/2021-the-year-to-automate-the-new-you-with-n8n/","icon":"☀️","label":"2021: The Year to Automate the New You with n8n"},{"url":"https://n8n.io/blog/why-business-process-automation-with-n8n-can-change-your-daily-life/","icon":"🧬","label":"Why business process automation with n8n can change your daily life"},{"url":"https://n8n.io/blog/automatically-pulling-and-visualizing-data-with-n8n/","icon":"📈","label":"Automatically pulling and visualizing data with n8n"},{"url":"https://n8n.io/blog/learn-how-to-automatically-cross-post-your-content-with-n8n/","icon":"✍️","label":"Learn how to automatically cross-post your content with n8n"},{"url":"https://n8n.io/blog/automatically-adding-expense-receipts-to-google-sheets-with-telegram-mindee-twilio-and-n8n/","icon":"🧾","label":"Automatically Adding Expense Receipts to Google Sheets with Telegram, Mindee, Twilio, and n8n"},{"url":"https://n8n.io/blog/running-n8n-on-ships-an-interview-with-maranics/","icon":"🛳","label":"Running n8n on ships: An interview with Maranics"},{"url":"https://n8n.io/blog/what-are-apis-how-to-use-them-with-no-code/","icon":" 🪢","label":"What are APIs and how to use them with no code"},{"url":"https://n8n.io/blog/5-tasks-you-can-automate-with-notion-api/","icon":"⚡️","label":"5 tasks you can automate with the new Notion API "},{"url":"https://n8n.io/blog/world-poetry-day-workflow/","icon":"📜","label":"Celebrating World Poetry Day with a daily poem in Telegram"},{"url":"https://n8n.io/blog/automate-google-apps-for-productivity/","icon":"💡","label":"15 Google apps you can combine and automate to increase productivity"},{"url":"https://n8n.io/blog/automate-designs-with-bannerbear-and-n8n/","icon":"🎨","label":"Automate Designs with Bannerbear and n8n"},{"url":"https://n8n.io/blog/how-uproc-scraped-a-multi-page-website-with-a-low-code-workflow/","icon":" 🕸️","label":"How uProc scraped a multi-page website with a low-code workflow"},{"url":"https://n8n.io/blog/building-an-expense-tracking-app-in-10-minutes/","icon":"📱","label":"Building an expense tracking app in 10 minutes"},{"url":"https://n8n.io/blog/5-workflow-automations-for-mattermost-that-we-love-at-n8n/","icon":"🤖","label":"5 workflow automations for Mattermost that we love at n8n"},{"url":"https://n8n.io/blog/how-to-use-the-http-request-node-the-swiss-army-knife-for-workflow-automation/","icon":"🧰","label":"How to use the HTTP Request Node - The Swiss Army Knife for Workflow Automation"},{"url":"https://n8n.io/blog/learn-how-to-use-webhooks-with-mattermost-slash-commands/","icon":"🦄","label":"Learn how to use webhooks with Mattermost slash commands"},{"url":"https://n8n.io/blog/how-a-membership-development-manager-automates-his-work-and-investments/","icon":"📈","label":"How a Membership Development Manager automates his work and investments"},{"url":"https://n8n.io/blog/a-low-code-bitcoin-ticker-built-with-questdb-and-n8n-io/","icon":"📈","label":"A low-code bitcoin ticker built with QuestDB and n8n.io"},{"url":"https://n8n.io/blog/how-to-set-up-a-ci-cd-pipeline-with-no-code/","icon":"🎡","label":"How to set up a no-code CI/CD pipeline with GitHub and TravisCI"},{"url":"https://n8n.io/blog/automations-for-activists/","icon":"✨","label":"How Common Knowledge use workflow automation for activism"},{"url":"https://n8n.io/blog/creating-scheduled-text-affirmations-with-n8n/","icon":"🤟","label":"Creating scheduled text affirmations with n8n"},{"url":"https://n8n.io/blog/how-goomer-automated-their-operations-with-over-200-n8n-workflows/","icon":"🛵","label":"How Goomer automated their operations with over 200 n8n workflows"},{"url":"https://n8n.io/blog/aws-workflow-automation/","label":"7 no-code workflow automations for Amazon Web Services"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.httprequest/"}]},"categories":["Development","Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Helpers"]}}},"group":"[\"output\"]","defaults":{"name":"HTTP Request","color":"#0004F5"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHZpZXdCb3g9IjAgMCA0MCA0MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik00MCAyMEM0MCA4Ljk1MzE0IDMxLjA0NjkgMCAyMCAwQzguOTUzMTQgMCAwIDguOTUzMTQgMCAyMEMwIDMxLjA0NjkgOC45NTMxNCA0MCAyMCA0MEMzMS4wNDY5IDQwIDQwIDMxLjA0NjkgNDAgMjBaTTIwIDM2Ljk0NThDMTguODg1MiAzNi45NDU4IDE3LjEzNzggMzUuOTY3IDE1LjQ5OTggMzIuNjk4NUMxNC43OTY0IDMxLjI5MTggMTQuMTk2MSAyOS41NDMxIDEzLjc1MjYgMjcuNjg0N0gyNi4xODk4QzI1LjgwNDUgMjkuNTQwMyAyNS4yMDQ0IDMxLjI5MDEgMjQuNTAwMiAzMi42OTg1QzIyLjg2MjIgMzUuOTY3IDIxLjExNDggMzYuOTQ1OCAyMCAzNi45NDU4Wk0xMi45MDY0IDIwQzEyLjkwNjQgMjEuNjA5NyAxMy4wMDg3IDIzLjE2NCAxMy4yMDAzIDI0LjYzMDVIMjYuNzk5N0MyNi45OTEzIDIzLjE2NCAyNy4wOTM2IDIxLjYwOTcgMjcuMDkzNiAyMEMyNy4wOTM2IDE4LjM5MDMgMjYuOTkxMyAxNi44MzYgMjYuNzk5NyAxNS4zNjk1SDEzLjIwMDNDMTMuMDA4NyAxNi44MzYgMTIuOTA2NCAxOC4zOTAzIDEyLjkwNjQgMjBaTTIwIDMuMDU0MTlDMjEuMTE0OSAzLjA1NDE5IDIyLjg2MjIgNC4wMzA3OCAyNC41MDAxIDcuMzAwMzlDMjUuMjA2NiA4LjcxNDA4IDI1LjgwNzIgMTAuNDA2NyAyNi4xOTIgMTIuMzE1M0gxMy43NTAxQzE0LjE5MzMgMTAuNDA0NyAxNC43OTQyIDguNzEyNTQgMTUuNDk5OCA3LjMwMDY0QzE3LjEzNzcgNC4wMzA4MyAxOC44ODUxIDMuMDU0MTkgMjAgMy4wNTQxOVpNMzAuMTQ3OCAyMEMzMC4xNDc4IDE4LjQwOTkgMzAuMDU0MyAxNi44NjE3IDI5LjgyMjcgMTUuMzY5NUgzNi4zMDQyQzM2LjcyNTIgMTYuODQyIDM2Ljk0NTggMTguMzk2NCAzNi45NDU4IDIwQzM2Ljk0NTggMjEuNjAzNiAzNi43MjUyIDIzLjE1OCAzNi4zMDQyIDI0LjYzMDVIMjkuODIyN0MzMC4wNTQzIDIzLjEzODMgMzAuMTQ3OCAyMS41OTAxIDMwLjE0NzggMjBaTTI2LjI3NjcgNC4yNTUxMkMyNy42MzY1IDYuMzYwMTkgMjguNzExIDkuMTMyIDI5LjM3NzQgMTIuMzE1M0gzNS4xMDQ2QzMzLjI1MTEgOC42NjggMzAuMTA3IDUuNzgzNDYgMjYuMjc2NyA0LjI1NTEyWk0xMC42MjI2IDEyLjMxNTNINC44OTI5M0M2Ljc1MTQ3IDguNjY3ODQgOS44OTM1MSA1Ljc4MzQxIDEzLjcyMzIgNC4yNTUxM0MxMi4zNjM1IDYuMzYwMjEgMTEuMjg5IDkuMTMyMDEgMTAuNjIyNiAxMi4zMTUzWk0zLjA1NDE5IDIwQzMuMDU0MTkgMjEuNjAzIDMuMjc3NDMgMjMuMTU3NSAzLjY5NDg0IDI0LjYzMDVIMTAuMTIxN0M5Ljk0NjE5IDIzLjE0MiA5Ljg1MjIyIDIxLjU5NDMgOS44NTIyMiAyMEM5Ljg1MjIyIDE4LjQwNTcgOS45NDYxOSAxNi44NTggMTAuMTIxNyAxNS4zNjk1SDMuNjk0ODRDMy4yNzc0MyAxNi44NDI1IDMuMDU0MTkgMTguMzk3IDMuMDU0MTkgMjBaTTI2LjI3NjYgMzUuNzQyN0MyNy42MzY1IDMzLjYzOTMgMjguNzExIDMwLjg2OCAyOS4zNzc0IDI3LjY4NDdIMzUuMTA0NkMzMy4yNTEgMzEuMzMyMiAzMC4xMDY4IDM0LjIxNzkgMjYuMjc2NiAzNS43NDI3Wk0xMy43MjM0IDM1Ljc0MjdDOS44OTM2OSAzNC4yMTc5IDYuNzUxNTUgMzEuMzMyNCA0Ljg5MjkzIDI3LjY4NDdIMTAuNjIyNkMxMS4yODkgMzAuODY4IDEyLjM2MzUgMzMuNjM5MyAxMy43MjM0IDM1Ljc0MjdaIiBmaWxsPSIjM0E0MkU5Ii8+Cjwvc3ZnPgo="},"displayName":"HTTP Request","typeVersion":4,"nodeCategories":[{"id":5,"name":"Development"},{"id":9,"name":"Core Nodes"}]},{"id":20,"icon":"fa:map-signs","name":"n8n-nodes-base.if","codex":{"data":{"alias":["Router","Filter","Condition","Logic","Boolean","Branch"],"details":"The IF node can be used to implement binary conditional logic in your workflow. You can set up one-to-many conditions to evaluate each item of data being inputted into the node. That data will either evaluate to TRUE or FALSE and route out of the node accordingly.\n\nThis node has multiple types of conditions: Bool, String, Number, and Date & Time.","resources":{"generic":[{"url":"https://n8n.io/blog/learn-to-automate-your-factorys-incident-reporting-a-step-by-step-guide/","icon":"🏭","label":"Learn to Automate Your Factory's Incident Reporting: A Step by Step Guide"},{"url":"https://n8n.io/blog/2021-the-year-to-automate-the-new-you-with-n8n/","icon":"☀️","label":"2021: The Year to Automate the New You with n8n"},{"url":"https://n8n.io/blog/why-business-process-automation-with-n8n-can-change-your-daily-life/","icon":"🧬","label":"Why business process automation with n8n can change your daily life"},{"url":"https://n8n.io/blog/create-a-toxic-language-detector-for-telegram/","icon":"🤬","label":"Create a toxic language detector for Telegram in 4 step"},{"url":"https://n8n.io/blog/no-code-ecommerce-workflow-automations/","icon":"store","label":"6 e-commerce workflows to power up your Shopify s"},{"url":"https://n8n.io/blog/how-to-build-a-low-code-self-hosted-url-shortener/","icon":"🔗","label":"How to build a low-code, self-hosted URL shortener in 3 steps"},{"url":"https://n8n.io/blog/automate-your-data-processing-pipeline-in-9-steps-with-n8n/","icon":"⚙️","label":"Automate your data processing pipeline in 9 steps"},{"url":"https://n8n.io/blog/how-to-get-started-with-crm-automation-and-no-code-workflow-ideas/","icon":"👥","label":"How to get started with CRM automation (with 3 no-code workflow ideas"},{"url":"https://n8n.io/blog/5-tasks-you-can-automate-with-notion-api/","icon":"⚡️","label":"5 tasks you can automate with the new Notion API "},{"url":"https://n8n.io/blog/automate-google-apps-for-productivity/","icon":"💡","label":"15 Google apps you can combine and automate to increase productivity"},{"url":"https://n8n.io/blog/automation-for-maintainers-of-open-source-projects/","icon":"🏷️","label":"How to automatically manage contributions to open-source projects"},{"url":"https://n8n.io/blog/how-uproc-scraped-a-multi-page-website-with-a-low-code-workflow/","icon":" 🕸️","label":"How uProc scraped a multi-page website with a low-code workflow"},{"url":"https://n8n.io/blog/5-workflow-automations-for-mattermost-that-we-love-at-n8n/","icon":"🤖","label":"5 workflow automations for Mattermost that we love at n8n"},{"url":"https://n8n.io/blog/why-this-product-manager-loves-workflow-automation-with-n8n/","icon":"🧠","label":"Why this Product Manager loves workflow automation with n8n"},{"url":"https://n8n.io/blog/sending-automated-congratulations-with-google-sheets-twilio-and-n8n/","icon":"🙌","label":"Sending Automated Congratulations with Google Sheets, Twilio, and n8n "},{"url":"https://n8n.io/blog/how-to-set-up-a-ci-cd-pipeline-with-no-code/","icon":"🎡","label":"How to set up a no-code CI/CD pipeline with GitHub and TravisCI"},{"url":"https://n8n.io/blog/benefits-of-automation-and-n8n-an-interview-with-hubspots-hugh-durkin/","icon":"🎖","label":"Benefits of automation and n8n: An interview with HubSpot's Hugh Durkin"},{"url":"https://n8n.io/blog/aws-workflow-automation/","label":"7 no-code workflow automations for Amazon Web Services"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.if/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Flow"]}}},"group":"[\"transform\"]","defaults":{"name":"If","color":"#408000"},"iconData":{"icon":"map-signs","type":"icon"},"displayName":"If","typeVersion":2,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":47,"icon":"file:webhook.svg","name":"n8n-nodes-base.webhook","codex":{"data":{"alias":["HTTP","API","Build","WH"],"resources":{"generic":[{"url":"https://n8n.io/blog/learn-how-to-automatically-cross-post-your-content-with-n8n/","icon":"✍️","label":"Learn how to automatically cross-post your content with n8n"},{"url":"https://n8n.io/blog/running-n8n-on-ships-an-interview-with-maranics/","icon":"🛳","label":"Running n8n on ships: An interview with Maranics"},{"url":"https://n8n.io/blog/how-to-build-a-low-code-self-hosted-url-shortener/","icon":"🔗","label":"How to build a low-code, self-hosted URL shortener in 3 steps"},{"url":"https://n8n.io/blog/what-are-apis-how-to-use-them-with-no-code/","icon":" 🪢","label":"What are APIs and how to use them with no code"},{"url":"https://n8n.io/blog/5-tasks-you-can-automate-with-notion-api/","icon":"⚡️","label":"5 tasks you can automate with the new Notion API "},{"url":"https://n8n.io/blog/how-a-digital-strategist-uses-n8n-for-online-marketing/","icon":"💻","label":"How a digital strategist uses n8n for online marketing"},{"url":"https://n8n.io/blog/the-ultimate-guide-to-automate-your-video-collaboration-with-whereby-mattermost-and-n8n/","icon":"📹","label":"The ultimate guide to automate your video collaboration with Whereby, Mattermost, and n8n"},{"url":"https://n8n.io/blog/how-to-automatically-give-kudos-to-contributors-with-github-slack-and-n8n/","icon":"👏","label":"How to automatically give kudos to contributors with GitHub, Slack, and n8n"},{"url":"https://n8n.io/blog/5-workflow-automations-for-mattermost-that-we-love-at-n8n/","icon":"🤖","label":"5 workflow automations for Mattermost that we love at n8n"},{"url":"https://n8n.io/blog/why-this-product-manager-loves-workflow-automation-with-n8n/","icon":"🧠","label":"Why this Product Manager loves workflow automation with n8n"},{"url":"https://n8n.io/blog/creating-custom-incident-response-workflows-with-n8n/","label":"How to automate every step of an incident response workflow"},{"url":"https://n8n.io/blog/learn-to-build-powerful-api-endpoints-using-webhooks/","icon":"🧰","label":"Learn to Build Powerful API Endpoints Using Webhooks"},{"url":"https://n8n.io/blog/learn-how-to-use-webhooks-with-mattermost-slash-commands/","icon":"🦄","label":"Learn how to use webhooks with Mattermost slash commands"},{"url":"https://n8n.io/blog/how-goomer-automated-their-operations-with-over-200-n8n-workflows/","icon":"🛵","label":"How Goomer automated their operations with over 200 n8n workflows"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.webhook/"}]},"categories":["Development","Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Helpers"]}}},"group":"[\"trigger\"]","defaults":{"name":"Webhook"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0OCIgaGVpZ2h0PSI0OCI+PHBhdGggZmlsbD0iIzM3NDc0ZiIgZD0iTTM1IDM3Yy0yLjIgMC00LTEuOC00LTRzMS44LTQgNC00IDQgMS44IDQgNC0xLjggNC00IDQiLz48cGF0aCBmaWxsPSIjMzc0NzRmIiBkPSJNMzUgNDNjLTMgMC01LjktMS40LTcuOC0zLjdsMy4xLTIuNWMxLjEgMS40IDIuOSAyLjMgNC43IDIuMyAzLjMgMCA2LTIuNyA2LTZzLTIuNy02LTYtNmMtMSAwLTIgLjMtMi45LjdsLTEuNyAxTDIzLjMgMTZsMy41LTEuOSA1LjMgOS40YzEtLjMgMi0uNSAzLS41IDUuNSAwIDEwIDQuNSAxMCAxMFM0MC41IDQzIDM1IDQzIi8+PHBhdGggZmlsbD0iIzM3NDc0ZiIgZD0iTTE0IDQzQzguNSA0MyA0IDM4LjUgNCAzM2MwLTQuNiAzLjEtOC41IDcuNS05LjdsMSAzLjlDOS45IDI3LjkgOCAzMC4zIDggMzNjMCAzLjMgMi43IDYgNiA2czYtMi43IDYtNnYtMmgxNXY0SDIzLjhjLS45IDQuNi01IDgtOS44IDgiLz48cGF0aCBmaWxsPSIjZTkxZTYzIiBkPSJNMTQgMzdjLTIuMiAwLTQtMS44LTQtNHMxLjgtNCA0LTQgNCAxLjggNCA0LTEuOCA0LTQgNCIvPjxwYXRoIGZpbGw9IiMzNzQ3NGYiIGQ9Ik0yNSAxOWMtMi4yIDAtNC0xLjgtNC00czEuOC00IDQtNCA0IDEuOCA0IDQtMS44IDQtNCA0Ii8+PHBhdGggZmlsbD0iI2U5MWU2MyIgZD0ibTE1LjcgMzQtMy40LTIgNS45LTkuN2MtMi0xLjktMy4yLTQuNS0zLjItNy4zIDAtNS41IDQuNS0xMCAxMC0xMHMxMCA0LjUgMTAgMTBjMCAuOS0uMSAxLjctLjMgMi41bC0zLjktMWMuMS0uNS4yLTEgLjItMS41IDAtMy4zLTIuNy02LTYtNnMtNiAyLjctNiA2YzAgMi4xIDEuMSA0IDIuOSA1LjFsMS43IDF6Ii8+PC9zdmc+"},"displayName":"Webhook","typeVersion":2,"nodeCategories":[{"id":5,"name":"Development"},{"id":9,"name":"Core Nodes"}]},{"id":112,"icon":"fa:map-signs","name":"n8n-nodes-base.switch","codex":{"data":{"alias":["Router","If","Path","Filter","Condition","Logic","Branch","Case"],"resources":{"generic":[{"url":"https://n8n.io/blog/2021-the-year-to-automate-the-new-you-with-n8n/","icon":"☀️","label":"2021: The Year to Automate the New You with n8n"},{"url":"https://n8n.io/blog/how-to-get-started-with-crm-automation-and-no-code-workflow-ideas/","icon":"👥","label":"How to get started with CRM automation (with 3 no-code workflow ideas"},{"url":"https://n8n.io/blog/build-your-own-virtual-assistant-with-n8n-a-step-by-step-guide/","icon":"👦","label":"Build your own virtual assistant with n8n: A step by step guide"},{"url":"https://n8n.io/blog/automation-for-maintainers-of-open-source-projects/","icon":"🏷️","label":"How to automatically manage contributions to open-source projects"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.switch/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Flow"]}}},"group":"[\"transform\"]","defaults":{"name":"Switch","color":"#506000"},"iconData":{"icon":"map-signs","type":"icon"},"displayName":"Switch","typeVersion":3,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":528,"icon":"fa:exclamation-triangle","name":"n8n-nodes-base.stopAndError","codex":{"data":{"alias":["Throw error","Error","Exception"],"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.stopanderror/"}]},"categories":["Core Nodes","Utility"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Flow"]}}},"group":"[\"input\"]","defaults":{"name":"Stop and Error","color":"#ff0000"},"iconData":{"icon":"exclamation-triangle","type":"icon"},"displayName":"Stop and Error","typeVersion":1,"nodeCategories":[{"id":7,"name":"Utility"},{"id":9,"name":"Core Nodes"}]},{"id":535,"icon":"file:webhook.svg","name":"n8n-nodes-base.respondToWebhook","codex":{"data":{"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.respondtowebhook/"}]},"categories":["Core Nodes","Utility"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Helpers"]}}},"group":"[\"transform\"]","defaults":{"name":"Respond to Webhook"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0OCIgaGVpZ2h0PSI0OCI+PHBhdGggZmlsbD0iIzM3NDc0ZiIgZD0iTTM1IDM3Yy0yLjIgMC00LTEuOC00LTRzMS44LTQgNC00IDQgMS44IDQgNC0xLjggNC00IDQiLz48cGF0aCBmaWxsPSIjMzc0NzRmIiBkPSJNMzUgNDNjLTMgMC01LjktMS40LTcuOC0zLjdsMy4xLTIuNWMxLjEgMS40IDIuOSAyLjMgNC43IDIuMyAzLjMgMCA2LTIuNyA2LTZzLTIuNy02LTYtNmMtMSAwLTIgLjMtMi45LjdsLTEuNyAxTDIzLjMgMTZsMy41LTEuOSA1LjMgOS40YzEtLjMgMi0uNSAzLS41IDUuNSAwIDEwIDQuNSAxMCAxMFM0MC41IDQzIDM1IDQzIi8+PHBhdGggZmlsbD0iIzM3NDc0ZiIgZD0iTTE0IDQzQzguNSA0MyA0IDM4LjUgNCAzM2MwLTQuNiAzLjEtOC41IDcuNS05LjdsMSAzLjlDOS45IDI3LjkgOCAzMC4zIDggMzNjMCAzLjMgMi43IDYgNiA2czYtMi43IDYtNnYtMmgxNXY0SDIzLjhjLS45IDQuNi01IDgtOS44IDgiLz48cGF0aCBmaWxsPSIjZTkxZTYzIiBkPSJNMTQgMzdjLTIuMiAwLTQtMS44LTQtNHMxLjgtNCA0LTQgNCAxLjggNCA0LTEuOCA0LTQgNCIvPjxwYXRoIGZpbGw9IiMzNzQ3NGYiIGQ9Ik0yNSAxOWMtMi4yIDAtNC0xLjgtNC00czEuOC00IDQtNCA0IDEuOCA0IDQtMS44IDQtNCA0Ii8+PHBhdGggZmlsbD0iI2U5MWU2MyIgZD0ibTE1LjcgMzQtMy40LTIgNS45LTkuN2MtMi0xLjktMy4yLTQuNS0zLjItNy4zIDAtNS41IDQuNS0xMCAxMC0xMHMxMCA0LjUgMTAgMTBjMCAuOS0uMSAxLjctLjMgMi41bC0zLjktMWMuMS0uNS4yLTEgLjItMS41IDAtMy4zLTIuNy02LTYtNnMtNiAyLjctNiA2YzAgMi4xIDEuMSA0IDIuOSA1LjFsMS43IDF6Ii8+PC9zdmc+"},"displayName":"Respond to Webhook","typeVersion":2,"nodeCategories":[{"id":7,"name":"Utility"},{"id":9,"name":"Core Nodes"}]},{"id":565,"icon":"fa:sticky-note","name":"n8n-nodes-base.stickyNote","codex":{"data":{"alias":["Comments","Notes","Sticky"],"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Helpers"]}}},"group":"[\"input\"]","defaults":{"name":"Sticky Note","color":"#FFD233"},"iconData":{"icon":"sticky-note","type":"icon"},"displayName":"Sticky Note","typeVersion":1,"nodeCategories":[{"id":9,"name":"Core Nodes"}]}],"categories":[{"id":35,"name":"Document Extraction"}],"image":[]}}