Workflow: develop a modular n8n workflow that supports Executeworkflow Hackernews Create Triggered
Integrations: code, executeWorkflowTrigger, hackerNews, set, stickyNote

{"meta": {"instanceId": "408f9fb9940c3cb18ffdef0e0150fe342d6e655c3a9fac21f0f644e8bedabcd9", "templateCredsSetupCompleted": true}, "nodes": [{"id": "b6836974-0d4b-482b-8a8a-c00f229f1136", "name": "Sticky Note", "type": "n8n-nodes-base.stickyNote", "position": [100, 500], "parameters": {"color": 7, "width": 150, "height": 293, "content": "### Replace me\nwith any other service, e.g. fetching your own data"}, "typeVersion": 1}, {"id": "c0b8b657-24b8-4c0b-bfe9-d4fe2075dbe5", "name": "Sticky Note1", "type": "n8n-nodes-base.stickyNote", "position": [-180, 420], "parameters": {"color": 7, "width": 927.5, "height": 406.875, "content": "### Sub-workflow: Custom tool\nThis can be called by the agent above. This example fetches the top 50 posts ever on Hacker News"}, "typeVersion": 1}, {"id": "a1dab7b1-b028-44a2-ab55-d8edee62e261", "name": "Sticky Note2", "type": "n8n-nodes-base.stickyNote", "position": [-180, -120], "parameters": {"color": 7, "width": 927.5, "height": 486.5625, "content": "### Main workflow: AI agent using custom tool\nTry it out by clicking 'Chat' and entering 'What is the 5th most popular post ever on Hacker News?'"}, "typeVersion": 1}, {"id": "84d91346-6b1d-4808-a6b3-ce212cd122d0", "name": "Sticky Note3", "type": "n8n-nodes-base.stickyNote", "position": [-340, -20], "parameters": {"width": 185.9375, "height": 218, "content": "## Try me out\n\nClick the 'Chat' button and enter:\n\n_What is the 5th most popular post ever on Hacker News?_"}, "typeVersion": 1}, {"id": "50c7208d-d2dc-4380-9f81-6d7f4dee40b3", "name": "When chat message received", "type": "@n8n/n8n-nodes-langchain.chatTrigger", "position": [-40, 20], "webhookId": "34a31e43-46b8-4c4b-a47e-ef5ad6e66af0", "parameters": {"options": {}}, "typeVersion": 1.1}, {"id": "6170523b-ac2d-4541-9186-0f2932829a36", "name": "Custom tool to call the wf below1", "type": "@n8n/n8n-nodes-langchain.toolWorkflow", "position": [480, 220], "parameters": {"name": "hn_tool", "workflowId": {"__rl": true, "mode": "id", "value": "={{ $workflow.id }}"}, "description": "Returns a list of the most popular posts ever on Hacker News, in json format", "workflowInputs": {"value": {}, "schema": [], "mappingMode": "defineBelow", "matchingColumns": [], "attemptToConvertTypes": false, "convertFieldsToString": false}}, "typeVersion": 2}, {"id": "3f40434e-4055-4d8f-be26-051da2911aa1", "name": "When Executed by Another Workflow", "type": "n8n-nodes-base.executeWorkflowTrigger", "position": [-120, 640], "parameters": {"inputSource": "passthrough"}, "typeVersion": 1.1}, {"id": "4a6cf195-6862-4007-b791-d021583a771e", "name": "Hacker News", "type": "n8n-nodes-base.hackerNews", "position": [120, 640], "parameters": {"limit": 50, "resource": "all", "additionalFields": {}}, "typeVersion": 1}, {"id": "03095e43-0d6e-47c0-8936-dceb2fb0dfb1", "name": "Clean up data", "type": "n8n-nodes-base.set", "position": [340, 640], "parameters": {"options": {}, "assignments": {"assignments": [{"id": "171d5a66-fc72-42ab-9f6c-0c137f6b3415", "name": "title", "type": "string", "value": "={{ $json._highlightResult.title.value }}"}, {"id": "e6662f7e-8e44-43d6-8e8b-6162bfec34bc", "name": "points", "type": "string", "value": "={{ $json.points }}"}, {"id": "7415a9f0-7cd4-4bad-bbcf-1903520af155", "name": "url", "type": "string", "value": "={{ $json.url }}"}, {"id": "8b0c67a6-89b0-40de-85f2-b80c9298d81f", "name": "created_at", "type": "string", "value": "={{ $json.created_at }}"}, {"id": "b7847fbb-4428-4a5b-980e-08e6069b0ac4", "name": "author", "type": "string", "value": "={{ $json.author }}"}]}}, "typeVersion": 3.4}, {"id": "50ee96c0-36d6-4774-b5cf-b653f5b56868", "name": "Stringify", "type": "n8n-nodes-base.code", "position": [560, 640], "parameters": {"jsCode": "return {\n  'response': JSON.stringify($input.all().map(x => x.json))\n}"}, "typeVersion": 2}, {"id": "ba221fc3-5249-4295-b64e-2c7370c6dad4", "name": "AI Agent", "type": "@n8n/n8n-nodes-langchain.agent", "position": [260, 20], "parameters": {"options": {}}, "typeVersion": 1.8}, {"id": "e8c45847-cc26-47b3-898c-8063b9c4b3a9", "name": "OpenAI Chat Model", "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi", "position": [220, 200], "parameters": {"model": {"__rl": true, "mode": "list", "value": "gpt-4o-mini"}, "options": {}}, "credentials": {"openAiApi": {"id": "8gccIjcuf3gvaoEr", "name": "OpenAi account"}}, "typeVersion": 1.2}], "pinData": {}, "connections": {"Hacker News": {"main": [[{"node": "Clean up data", "type": "main", "index": 0}]]}, "Clean up data": {"main": [[{"node": "Stringify", "type": "main", "index": 0}]]}, "OpenAI Chat Model": {"ai_languageModel": [[{"node": "AI Agent", "type": "ai_languageModel", "index": 0}]]}, "When chat message received": {"main": [[{"node": "AI Agent", "type": "main", "index": 0}]]}, "Custom tool to call the wf below1": {"ai_tool": [[{"node": "AI Agent", "type": "ai_tool", "index": 0}]]}, "When Executed by Another Workflow": {"main": [[{"node": "Hacker News", "type": "main", "index": 0}]]}}}