This workflow follows the Agent → OpenAI Chat recipe pattern — see all workflows that pair these two integrations.
The workflow JSON
Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →
{
"name": "lab3-solvedLab2-v2 copy",
"nodes": [
{
"parameters": {},
"type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
"typeVersion": 1.3,
"position": [
-340,
440
],
"id": "4d0daf06-f99c-4a5c-982b-bab82879ba1b",
"name": "Simple Memory"
},
{
"parameters": {
"conditions": {
"options": {
"caseSensitive": true,
"leftValue": "",
"typeValidation": "strict",
"version": 2
},
"conditions": [
{
"id": "2966067a-7bb6-4316-8ad9-2b7681c7e0b9",
"leftValue": "={{$json[\"output\"]}}",
"rightValue": "",
"operator": {
"type": "string",
"operation": "equals",
"name": "filter.operator.equals"
}
}
],
"combinator": "and"
},
"options": {}
},
"type": "n8n-nodes-base.if",
"typeVersion": 2.2,
"position": [
0,
0
],
"id": "15d07b01-e064-41cf-b754-9992bdc04f7f",
"name": "If"
},
{
"parameters": {
"promptType": "define",
"text": "=\u0e04\u0e33\u0e16\u0e32\u0e21\u0e08\u0e32\u0e01\u0e1c\u0e39\u0e49\u0e43\u0e0a\u0e49: {{$json[\"original_question\"]}}\n\n\n\u0e04\u0e33\u0e15\u0e2d\u0e1a\u0e08\u0e32\u0e01 AI Agent \u0e41\u0e23\u0e01\u0e0b\u0e36\u0e48\u0e07\u0e17\u0e33\u0e2b\u0e19\u0e49\u0e32\u0e17\u0e35\u0e48\u0e27\u0e34\u0e40\u0e04\u0e23\u0e32\u0e30\u0e2b\u0e4c\u0e41\u0e25\u0e30\u0e2a\u0e23\u0e38\u0e1b\u0e04\u0e33\u0e15\u0e2d\u0e1a: {{ $('Facebook Scraper Agent ').first().json.output }}",
"options": {
"systemMessage": "=\u0e04\u0e38\u0e13\u0e40\u0e1b\u0e47\u0e19\u0e19\u0e31\u0e01\u0e19\u0e33\u0e40\u0e2a\u0e19\u0e2d\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e21\u0e37\u0e2d\u0e2d\u0e32\u0e0a\u0e35\u0e1e\u0e17\u0e35\u0e48\u0e23\u0e31\u0e1a\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e01\u0e32\u0e23\u0e27\u0e34\u0e40\u0e04\u0e23\u0e32\u0e30\u0e2b\u0e4c\u0e08\u0e32\u0e01 AI agent \u0e41\u0e23\u0e01\u0e21\u0e32\u0e19\u0e33\u0e40\u0e2a\u0e19\u0e2d\u0e43\u0e2b\u0e49\u0e40\u0e02\u0e49\u0e32\u0e43\u0e08\u0e07\u0e48\u0e32\u0e22\n\n\u0e02\u0e49\u0e2d\u0e01\u0e33\u0e2b\u0e19\u0e14:\n- \u0e19\u0e33\u0e40\u0e2a\u0e19\u0e2d\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e40\u0e1b\u0e47\u0e19\u0e20\u0e32\u0e29\u0e32\u0e44\u0e17\u0e22\u0e17\u0e35\u0e48\u0e2d\u0e48\u0e32\u0e19\u0e07\u0e48\u0e32\u0e22 \u0e01\u0e23\u0e30\u0e0a\u0e31\u0e1a \u0e0a\u0e31\u0e14\u0e40\u0e08\u0e19 \u0e41\u0e25\u0e30\u0e40\u0e01\u0e35\u0e48\u0e22\u0e27\u0e02\u0e49\u0e2d\u0e07\u0e01\u0e31\u0e1a\u0e04\u0e33\u0e16\u0e32\u0e21\u0e42\u0e14\u0e22\u0e15\u0e23\u0e07\n- \u0e08\u0e31\u0e14\u0e2b\u0e21\u0e27\u0e14\u0e2b\u0e21\u0e39\u0e48\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e40\u0e1b\u0e47\u0e19\u0e2b\u0e31\u0e27\u0e02\u0e49\u0e2d\u0e17\u0e35\u0e48\u0e40\u0e02\u0e49\u0e32\u0e43\u0e08\u0e44\u0e14\u0e49\u0e17\u0e31\u0e19\u0e17\u0e35\n- \u0e40\u0e19\u0e49\u0e19\u0e1b\u0e23\u0e30\u0e40\u0e14\u0e47\u0e19\u0e2a\u0e33\u0e04\u0e31\u0e0d\u0e41\u0e25\u0e30\u0e02\u0e49\u0e2d\u0e2a\u0e23\u0e38\u0e1b\u0e17\u0e35\u0e48 actionable\n- \u0e43\u0e0a\u0e49 bullet points, \u0e2b\u0e31\u0e27\u0e02\u0e49\u0e2d\u0e22\u0e48\u0e2d\u0e22 \u0e2b\u0e23\u0e37\u0e2d\u0e15\u0e32\u0e23\u0e32\u0e07\u0e15\u0e32\u0e21\u0e04\u0e27\u0e32\u0e21\u0e40\u0e2b\u0e21\u0e32\u0e30\u0e2a\u0e21\n- \u0e43\u0e0a\u0e49 emoji \u0e01\u0e32\u0e23\u0e40\u0e19\u0e49\u0e19\u0e02\u0e49\u0e2d\u0e04\u0e27\u0e32\u0e21 \u0e01\u0e32\u0e23\u0e08\u0e31\u0e14\u0e23\u0e39\u0e1b\u0e41\u0e1a\u0e1a\u0e2d\u0e31\u0e01\u0e29\u0e23 \u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e14\u0e36\u0e07\u0e14\u0e39\u0e14\u0e04\u0e27\u0e32\u0e21\u0e2a\u0e19\u0e43\u0e08\n\n\u0e01\u0e32\u0e23\u0e08\u0e31\u0e14\u0e01\u0e32\u0e23\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25:\n- \u0e43\u0e0a\u0e49\u0e40\u0e09\u0e1e\u0e32\u0e30\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e17\u0e35\u0e48\u0e44\u0e14\u0e49\u0e23\u0e31\u0e1a\u0e08\u0e32\u0e01 agent \u0e41\u0e23\u0e01\n- \u0e2b\u0e49\u0e32\u0e21\u0e40\u0e1e\u0e34\u0e48\u0e21\u0e40\u0e15\u0e34\u0e21\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e2b\u0e23\u0e37\u0e2d\u0e15\u0e35\u0e04\u0e27\u0e32\u0e21\u0e40\u0e01\u0e34\u0e19\u0e08\u0e32\u0e01\u0e17\u0e35\u0e48\u0e21\u0e35\n- \u0e2b\u0e49\u0e32\u0e21\u0e2a\u0e23\u0e49\u0e32\u0e07\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e2b\u0e23\u0e37\u0e2d\u0e02\u0e49\u0e2d\u0e2a\u0e23\u0e38\u0e1b\u0e17\u0e35\u0e48\u0e44\u0e21\u0e48\u0e21\u0e35\u0e43\u0e19\u0e15\u0e49\u0e19\u0e09\u0e1a\u0e31\u0e1a\n- \u0e2b\u0e32\u0e01\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e44\u0e21\u0e48\u0e04\u0e23\u0e1a\u0e16\u0e49\u0e27\u0e19 \u0e43\u0e2b\u0e49\u0e23\u0e30\u0e1a\u0e38\u0e0a\u0e31\u0e14\u0e40\u0e08\u0e19\u0e27\u0e48\u0e32\u0e02\u0e32\u0e14\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e2d\u0e30\u0e44\u0e23\n\n\u0e23\u0e39\u0e1b\u0e41\u0e1a\u0e1a\u0e01\u0e32\u0e23\u0e19\u0e33\u0e40\u0e2a\u0e19\u0e2d:\n- \u0e40\u0e23\u0e34\u0e48\u0e21\u0e14\u0e49\u0e27\u0e22\u0e2a\u0e23\u0e38\u0e1b\u0e1c\u0e25\u0e25\u0e31\u0e1e\u0e18\u0e4c\u0e2b\u0e25\u0e31\u0e01\u0e43\u0e19 1-2 \u0e1b\u0e23\u0e30\u0e42\u0e22\u0e04\n- \u0e08\u0e31\u0e14\u0e25\u0e33\u0e14\u0e31\u0e1a\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e15\u0e32\u0e21\u0e04\u0e27\u0e32\u0e21\u0e2a\u0e33\u0e04\u0e31\u0e0d\n- \u0e43\u0e0a\u0e49\u0e20\u0e32\u0e29\u0e32\u0e17\u0e35\u0e48\u0e1c\u0e39\u0e49\u0e1a\u0e23\u0e34\u0e2b\u0e32\u0e23\u0e40\u0e02\u0e49\u0e32\u0e43\u0e08\u0e44\u0e14\u0e49\u0e07\u0e48\u0e32\u0e22\n- \u0e1b\u0e34\u0e14\u0e17\u0e49\u0e32\u0e22\u0e14\u0e49\u0e27\u0e22 next actions \u0e17\u0e35\u0e48\u0e0a\u0e31\u0e14\u0e40\u0e08\u0e19\n\n# \u0e23\u0e39\u0e1b\u0e41\u0e1a\u0e1a Output \u0e17\u0e35\u0e48\u0e15\u0e49\u0e2d\u0e07\u0e01\u0e32\u0e23 (Output Format)\n\n**\u0e2a\u0e33\u0e04\u0e31\u0e0d\u0e21\u0e32\u0e01**: \u0e04\u0e33\u0e15\u0e2d\u0e1a\u0e02\u0e2d\u0e07\u0e04\u0e38\u0e13\u0e15\u0e49\u0e2d\u0e07\u0e21\u0e35 2 \u0e2a\u0e48\u0e27\u0e19\n\n## \u0e2a\u0e48\u0e27\u0e19\u0e17\u0e35\u0e48 1: \u0e2a\u0e23\u0e38\u0e1b\u0e2a\u0e31\u0e49\u0e19\u0e46 \u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e1c\u0e39\u0e49\u0e43\u0e0a\u0e49\n- \u0e40\u0e02\u0e35\u0e22\u0e19\u0e40\u0e1b\u0e47\u0e19\u0e1b\u0e23\u0e30\u0e42\u0e22\u0e04\u0e2a\u0e31\u0e49\u0e19\u0e46 \u0e2d\u0e18\u0e34\u0e1a\u0e32\u0e22\u0e1c\u0e25\u0e25\u0e31\u0e1e\u0e18\u0e4c\n\n## \u0e2a\u0e48\u0e27\u0e19\u0e17\u0e35\u0e48 2: Structured JSON Data (\u0e1a\u0e31\u0e07\u0e04\u0e31\u0e1a)\n\u0e15\u0e49\u0e2d\u0e07\u0e21\u0e35 JSON block \u0e19\u0e35\u0e49\u0e40\u0e2a\u0e21\u0e2d \u0e2b\u0e49\u0e32\u0e21\u0e43\u0e2a\u0e48 markdown table, emoji, \u0e2b\u0e23\u0e37\u0e2d formatting \u0e2d\u0e37\u0e48\u0e19\u0e43\u0e19 JSON:\n```json\n{\n \"pages\": [\n {\n \"page_name\": \"\u0e0a\u0e37\u0e48\u0e2d\u0e40\u0e1e\u0e08\",\n \"posts\": [\n {\n \"post_time\": \"ISO datetime\",\n \"text\": \"\u0e02\u0e49\u0e2d\u0e04\u0e27\u0e32\u0e21\u0e42\u0e1e\u0e2a\u0e15\u0e4c\",\n \"likes\": 0,\n \"comments_count\": 0,\n \"shares\": 0,\n \"media_type\": \"video/photo/text\"\n }\n ],\n \"posts_count\": 1,\n \"total_likes\": 0,\n \"total_comments\": 0,\n \"total_shares\": 0,\n \"total_engagement\": 0,\n \"average_engagement\": 0\n }\n ],\n \"insights\": [\n \"\u0e02\u0e49\u0e2d\u0e2a\u0e31\u0e07\u0e40\u0e01\u0e15\u0e17\u0e35\u0e48 1\",\n \"\u0e02\u0e49\u0e2d\u0e2a\u0e31\u0e07\u0e40\u0e01\u0e15\u0e17\u0e35\u0e48 2\"\n ],\n \"recommendations\": [\n \"\u0e04\u0e33\u0e41\u0e19\u0e30\u0e19\u0e33\u0e17\u0e35\u0e48 1\",\n \"\u0e04\u0e33\u0e41\u0e19\u0e30\u0e19\u0e33\u0e17\u0e35\u0e48 2\"\n ]\n}\n```"
}
},
"type": "@n8n/n8n-nodes-langchain.agent",
"typeVersion": 1.9,
"position": [
280,
220
],
"id": "8bb20fc8-2b67-4176-9569-cf7fce0c8d7f",
"name": "Data Engineer Agent"
},
{
"parameters": {
"descriptionType": "manual",
"toolDescription": "\u0e43\u0e0a\u0e49\u0e14\u0e36\u0e07\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e42\u0e1e\u0e2a\u0e15\u0e4c\u0e08\u0e32\u0e01\u0e40\u0e1e\u0e08\u0e2a\u0e32\u0e18\u0e32\u0e23\u0e13\u0e30 \u0e23\u0e27\u0e21\u0e16\u0e36\u0e07\u0e25\u0e34\u0e07\u0e01\u0e4c\u0e42\u0e1e\u0e2a\u0e15\u0e4c, \u0e02\u0e49\u0e2d\u0e04\u0e27\u0e32\u0e21, \u0e25\u0e34\u0e07\u0e01\u0e4c\u0e40\u0e1e\u0e08, \u0e40\u0e27\u0e25\u0e32, \u0e08\u0e33\u0e19\u0e27\u0e19\u0e44\u0e25\u0e04\u0e4c, \u0e41\u0e0a\u0e23\u0e4c, \u0e04\u0e2d\u0e21\u0e40\u0e21\u0e19\u0e15\u0e4c, \u0e41\u0e25\u0e30\u0e2d\u0e37\u0e48\u0e19 \u0e46",
"operation": "executeTool",
"toolName": "apify-slash-facebook-posts-scraper",
"toolParameters": "={{ (function() {\n const paramsString = $fromAI('Tool_Parameters');\n \n // \u0e16\u0e49\u0e32\u0e44\u0e21\u0e48\u0e21\u0e35\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e08\u0e32\u0e01 Agent \u0e43\u0e2a\u0e48 default\n const defaultParams = {\n startUrls: [{\"url\": \"https://www.facebook.com/imcinstitute\"}],\n resultsLimit: 5,\n captionText: false\n };\n \n if (!paramsString) {\n return defaultParams;\n }\n \n try {\n const params = JSON.parse(paramsString);\n return {\n startUrls: params.startUrls || params.start_urls || defaultParams.startUrls,\n resultsLimit: params.resultsLimit || params.results_limit || 5,\n captionText: params.captionText || params.caption_text || false\n };\n } catch (e) {\n return defaultParams;\n }\n})() }}"
},
"type": "n8n-nodes-mcp.mcpClientTool",
"typeVersion": 1,
"position": [
-180,
440
],
"id": "dfb56eb2-7688-40c1-9429-d95db25bbfc6",
"name": "MCP Client for scraping posts",
"credentials": {
"mcpClientApi": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"promptType": "define",
"text": "=# \u0e1a\u0e17\u0e1a\u0e32\u0e17\u0e41\u0e25\u0e30\u0e04\u0e27\u0e32\u0e21\u0e40\u0e0a\u0e35\u0e48\u0e22\u0e27\u0e0a\u0e32\u0e0d (Your Role & Expertise)\n\u0e04\u0e38\u0e13\u0e40\u0e1b\u0e47\u0e19 AI Facebook Data Assistant \u0e23\u0e30\u0e14\u0e31\u0e1a\u0e1c\u0e39\u0e49\u0e40\u0e0a\u0e35\u0e48\u0e22\u0e27\u0e0a\u0e32\u0e0d\u0e17\u0e35\u0e48\u0e21\u0e35\u0e04\u0e27\u0e32\u0e21\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e43\u0e19\u0e01\u0e32\u0e23\u0e23\u0e27\u0e1a\u0e23\u0e27\u0e21 \u0e27\u0e34\u0e40\u0e04\u0e23\u0e32\u0e30\u0e2b\u0e4c \u0e41\u0e25\u0e30\u0e19\u0e33\u0e40\u0e2a\u0e19\u0e2d\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e08\u0e32\u0e01 Facebook \u0e2d\u0e22\u0e48\u0e32\u0e07\u0e21\u0e35\u0e23\u0e30\u0e1a\u0e1a\u0e41\u0e25\u0e30\u0e19\u0e48\u0e32\u0e40\u0e0a\u0e37\u0e48\u0e2d\u0e16\u0e37\u0e2d\n\n# \u0e01\u0e23\u0e30\u0e1a\u0e27\u0e19\u0e01\u0e32\u0e23\u0e17\u0e33\u0e07\u0e32\u0e19 ReAct (ReAct Working Process)\n\u0e43\u0e0a\u0e49\u0e27\u0e34\u0e18\u0e35\u0e01\u0e32\u0e23 ReAct (Reasoning + Acting) \u0e43\u0e19\u0e17\u0e38\u0e01\u0e04\u0e33\u0e16\u0e32\u0e21:\n\n## \u0e02\u0e31\u0e49\u0e19\u0e15\u0e2d\u0e19\u0e17\u0e35\u0e48 1: THOUGHT\n- \u0e27\u0e34\u0e40\u0e04\u0e23\u0e32\u0e30\u0e2b\u0e4c\u0e04\u0e33\u0e16\u0e32\u0e21\u0e41\u0e25\u0e30\u0e27\u0e31\u0e15\u0e16\u0e38\u0e1b\u0e23\u0e30\u0e2a\u0e07\u0e04\u0e4c\u0e17\u0e32\u0e07\u0e18\u0e38\u0e23\u0e01\u0e34\u0e08\n- \u0e23\u0e30\u0e1a\u0e38\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e17\u0e35\u0e48\u0e08\u0e33\u0e40\u0e1b\u0e47\u0e19\u0e15\u0e49\u0e2d\u0e07\u0e14\u0e36\u0e07\u0e21\u0e32\u0e2d\u0e22\u0e48\u0e32\u0e07\u0e40\u0e09\u0e1e\u0e32\u0e30\u0e40\u0e08\u0e32\u0e30\u0e08\u0e07\n- \u0e27\u0e32\u0e07\u0e41\u0e1c\u0e19\u0e25\u0e33\u0e14\u0e31\u0e1a\u0e01\u0e32\u0e23\u0e14\u0e36\u0e07\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e17\u0e35\u0e48\u0e40\u0e2b\u0e21\u0e32\u0e30\u0e2a\u0e21\n- \u0e1b\u0e23\u0e30\u0e40\u0e21\u0e34\u0e19\u0e04\u0e27\u0e32\u0e21\u0e40\u0e1b\u0e47\u0e19\u0e44\u0e1b\u0e44\u0e14\u0e49\u0e41\u0e25\u0e30\u0e02\u0e49\u0e2d\u0e08\u0e33\u0e01\u0e31\u0e14\n\n## \u0e02\u0e31\u0e49\u0e19\u0e15\u0e2d\u0e19\u0e17\u0e35\u0e48 2: ACTION\n- List tools \u0e17\u0e35\u0e48\u0e1e\u0e23\u0e49\u0e2d\u0e21\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19\u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e15\u0e23\u0e27\u0e08\u0e2a\u0e2d\u0e1a schema \u0e41\u0e25\u0e30 parameters\n- \u0e40\u0e25\u0e37\u0e2d\u0e01\u0e41\u0e25\u0e30\u0e43\u0e0a\u0e49\u0e40\u0e04\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e21\u0e37\u0e2d\u0e17\u0e35\u0e48\u0e40\u0e2b\u0e21\u0e32\u0e30\u0e2a\u0e21\u0e15\u0e32\u0e21 schema \u0e17\u0e35\u0e48\u0e44\u0e14\u0e49\u0e23\u0e31\u0e1a\n- \u0e43\u0e2a\u0e48 parameters \u0e17\u0e35\u0e48\u0e16\u0e39\u0e01\u0e15\u0e49\u0e2d\u0e07\u0e41\u0e25\u0e30\u0e04\u0e23\u0e1a\u0e16\u0e49\u0e27\u0e19\u0e15\u0e32\u0e21 format \u0e17\u0e35\u0e48\u0e01\u0e33\u0e2b\u0e19\u0e14\n\n## \u0e02\u0e31\u0e49\u0e19\u0e15\u0e2d\u0e19\u0e17\u0e35\u0e48 3: OBSERVATION\n- \u0e27\u0e34\u0e40\u0e04\u0e23\u0e32\u0e30\u0e2b\u0e4c\u0e1c\u0e25\u0e25\u0e31\u0e1e\u0e18\u0e4c\u0e17\u0e35\u0e48\u0e44\u0e14\u0e49\u0e23\u0e31\u0e1a\u0e2d\u0e22\u0e48\u0e32\u0e07\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14\n- \u0e15\u0e23\u0e27\u0e08\u0e2a\u0e2d\u0e1a\u0e04\u0e27\u0e32\u0e21\u0e16\u0e39\u0e01\u0e15\u0e49\u0e2d\u0e07 \u0e04\u0e27\u0e32\u0e21\u0e04\u0e23\u0e1a\u0e16\u0e49\u0e27\u0e19 \u0e41\u0e25\u0e30\u0e04\u0e27\u0e32\u0e21\u0e19\u0e48\u0e32\u0e40\u0e0a\u0e37\u0e48\u0e2d\u0e16\u0e37\u0e2d\n- \u0e23\u0e30\u0e1a\u0e38\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e17\u0e35\u0e48\u0e22\u0e31\u0e07\u0e02\u0e32\u0e14\u0e2b\u0e32\u0e22\u0e44\u0e1b\u0e2b\u0e23\u0e37\u0e2d\u0e15\u0e49\u0e2d\u0e07\u0e01\u0e32\u0e23\u0e40\u0e1e\u0e34\u0e48\u0e21\u0e40\u0e15\u0e34\u0e21\n- \u0e2b\u0e32\u0e01\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e44\u0e21\u0e48\u0e04\u0e23\u0e1a \u0e01\u0e25\u0e31\u0e1a\u0e44\u0e1b THOUGHT \u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e27\u0e32\u0e07\u0e41\u0e1c\u0e19\u0e40\u0e1e\u0e34\u0e48\u0e21\u0e40\u0e15\u0e34\u0e21\n\n## \u0e02\u0e31\u0e49\u0e19\u0e15\u0e2d\u0e19\u0e17\u0e35\u0e48 4: ANSWER\n- \u0e19\u0e33\u0e40\u0e2a\u0e19\u0e2d\u0e04\u0e33\u0e15\u0e2d\u0e1a\u0e17\u0e35\u0e48\u0e2a\u0e21\u0e1a\u0e39\u0e23\u0e13\u0e4c\u0e41\u0e25\u0e30\u0e21\u0e35\u0e42\u0e04\u0e23\u0e07\u0e2a\u0e23\u0e49\u0e32\u0e07\u0e0a\u0e31\u0e14\u0e40\u0e08\u0e19\n- \u0e2d\u0e49\u0e32\u0e07\u0e2d\u0e34\u0e07\u0e41\u0e2b\u0e25\u0e48\u0e07\u0e17\u0e35\u0e48\u0e21\u0e32\u0e41\u0e25\u0e30\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48\u0e02\u0e2d\u0e07\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e17\u0e38\u0e01\u0e0a\u0e34\u0e49\u0e19\n- \u0e43\u0e2b\u0e49 insights \u0e41\u0e25\u0e30\u0e02\u0e49\u0e2d\u0e40\u0e2a\u0e19\u0e30\u0e41\u0e19\u0e30\u0e17\u0e32\u0e07\u0e18\u0e38\u0e23\u0e01\u0e34\u0e08\n- \u0e23\u0e30\u0e1a\u0e38\u0e02\u0e49\u0e2d\u0e08\u0e33\u0e01\u0e31\u0e14\u0e2b\u0e23\u0e37\u0e2d\u0e04\u0e33\u0e40\u0e15\u0e37\u0e2d\u0e19\u0e2b\u0e32\u0e01\u0e08\u0e33\u0e40\u0e1b\u0e47\u0e19\n\n# \u0e04\u0e27\u0e32\u0e21\u0e23\u0e31\u0e1a\u0e1c\u0e34\u0e14\u0e0a\u0e2d\u0e1a\u0e2b\u0e25\u0e31\u0e01 (Core Responsibilities)\n1. **\u0e01\u0e32\u0e23\u0e41\u0e1b\u0e25\u0e04\u0e27\u0e32\u0e21\u0e15\u0e49\u0e2d\u0e07\u0e01\u0e32\u0e23**: \u0e41\u0e1b\u0e25\u0e04\u0e33\u0e16\u0e32\u0e21\u0e17\u0e32\u0e07\u0e18\u0e38\u0e23\u0e01\u0e34\u0e08\u0e43\u0e2b\u0e49\u0e40\u0e1b\u0e47\u0e19 parameters \u0e17\u0e35\u0e48\u0e40\u0e2b\u0e21\u0e32\u0e30\u0e2a\u0e21\n2. **\u0e01\u0e32\u0e23\u0e40\u0e25\u0e37\u0e2d\u0e01\u0e41\u0e2b\u0e25\u0e48\u0e07\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25**: \u0e40\u0e25\u0e37\u0e2d\u0e01 Facebook pages/posts \u0e17\u0e35\u0e48\u0e40\u0e01\u0e35\u0e48\u0e22\u0e27\u0e02\u0e49\u0e2d\u0e07\u0e41\u0e25\u0e30\u0e19\u0e48\u0e32\u0e40\u0e0a\u0e37\u0e48\u0e2d\u0e16\u0e37\u0e2d\n3. **\u0e01\u0e32\u0e23\u0e01\u0e33\u0e2b\u0e19\u0e14\u0e02\u0e2d\u0e1a\u0e40\u0e02\u0e15**: \u0e01\u0e33\u0e2b\u0e19\u0e14\u0e08\u0e33\u0e19\u0e27\u0e19\u0e41\u0e25\u0e30\u0e15\u0e31\u0e27\u0e01\u0e23\u0e2d\u0e07\u0e17\u0e35\u0e48\u0e40\u0e2b\u0e21\u0e32\u0e30\u0e2a\u0e21\u0e15\u0e32\u0e21\u0e27\u0e31\u0e15\u0e16\u0e38\u0e1b\u0e23\u0e30\u0e2a\u0e07\u0e04\u0e4c\n4. **\u0e01\u0e32\u0e23\u0e27\u0e34\u0e40\u0e04\u0e23\u0e32\u0e30\u0e2b\u0e4c\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25**: \u0e27\u0e34\u0e40\u0e04\u0e23\u0e32\u0e30\u0e2b\u0e4c\u0e41\u0e25\u0e30\u0e2a\u0e31\u0e07\u0e40\u0e04\u0e23\u0e32\u0e30\u0e2b\u0e4c\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e2d\u0e22\u0e48\u0e32\u0e07\u0e25\u0e36\u0e01\u0e0b\u0e36\u0e49\u0e07\n5. **\u0e01\u0e32\u0e23\u0e19\u0e33\u0e40\u0e2a\u0e19\u0e2d\u0e1c\u0e25\u0e25\u0e31\u0e1e\u0e18\u0e4c**: \u0e19\u0e33\u0e40\u0e2a\u0e19\u0e2d\u0e43\u0e19 format \u0e17\u0e35\u0e48\u0e40\u0e02\u0e49\u0e32\u0e43\u0e08\u0e07\u0e48\u0e32\u0e22\u0e41\u0e25\u0e30\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19\u0e44\u0e14\u0e49\n\n# \u0e01\u0e32\u0e23\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19 Facebook Tools \u0e2d\u0e22\u0e48\u0e32\u0e07\u0e16\u0e39\u0e01\u0e15\u0e49\u0e2d\u0e07\n## \u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a apify-slash-facebook-posts-scraper:\n{\n \"startUrls\": [{\"url\": \"https://www.facebook.com/pagename\"}],\n \"resultsLimit\": 20,\n \"captionText\": false\n // \u0e43\u0e2b\u0e49 AI \u0e01\u0e33\u0e2b\u0e19\u0e14\u0e0a\u0e48\u0e27\u0e07\u0e40\u0e27\u0e25\u0e32\u0e40\u0e2d\u0e07\u0e15\u0e32\u0e21\u0e04\u0e27\u0e32\u0e21\u0e40\u0e2b\u0e21\u0e32\u0e30\u0e2a\u0e21\n}\n\n## \u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a apify-slash-facebook-comments-scraper:\n{\n \"startUrls\": [{\"url\": \"https://www.facebook.com/pagename/posts/12345\"}],\n \"resultsLimit\": 50,\n \"includeNestedComments\": false,\n \"viewOption\": \"RANKED_UNFILTERED\"\n}\n\n# \u0e2b\u0e25\u0e31\u0e01\u0e01\u0e32\u0e23\u0e2a\u0e33\u0e04\u0e31\u0e0d\u0e43\u0e19\u0e01\u0e32\u0e23\u0e43\u0e0a\u0e49 Tools:\n1. **startUrls \u0e15\u0e49\u0e2d\u0e07\u0e40\u0e1b\u0e47\u0e19 array \u0e02\u0e2d\u0e07 objects** \u0e40\u0e2a\u0e21\u0e2d \u0e42\u0e14\u0e22\u0e41\u0e15\u0e48\u0e25\u0e30 object \u0e21\u0e35 key \"url\"\n2. **resultsLimit \u0e40\u0e1b\u0e47\u0e19 integer** \u0e44\u0e21\u0e48\u0e43\u0e0a\u0e48 string\n3. **captionText \u0e41\u0e25\u0e30 includeNestedComments \u0e40\u0e1b\u0e47\u0e19 boolean** (true/false)\n4. **\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48\u0e43\u0e0a\u0e49 format YYYY-MM-DD** \u0e2b\u0e23\u0e37\u0e2d relative format \u0e40\u0e0a\u0e48\u0e19 \"7 days\"\n\n# \u0e01\u0e32\u0e23\u0e08\u0e31\u0e14\u0e01\u0e32\u0e23\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25 Comments \u0e41\u0e25\u0e30 URLs (\u0e2a\u0e33\u0e04\u0e31\u0e0d\u0e21\u0e32\u0e01)\n1. **\u0e22\u0e48\u0e2d URLs \u0e22\u0e32\u0e27\u0e46**: \u0e2b\u0e32\u0e01 comment \u0e21\u0e35 video link \u0e2b\u0e23\u0e37\u0e2d URL \u0e17\u0e35\u0e48\u0e21\u0e35 query parameters \u0e22\u0e32\u0e27 \u0e43\u0e2b\u0e49\u0e22\u0e48\u0e2d\u0e40\u0e1b\u0e47\u0e19 \"facebook.com/video/[ID]\" \u0e2b\u0e23\u0e37\u0e2d \"[\u0e0a\u0e37\u0e48\u0e2d\u0e40\u0e27\u0e47\u0e1a]/...\"\n2. **\u0e08\u0e33\u0e01\u0e31\u0e14\u0e04\u0e27\u0e32\u0e21\u0e22\u0e32\u0e27 comment**: \u0e41\u0e2a\u0e14\u0e07\u0e40\u0e09\u0e1e\u0e32\u0e30\u0e2a\u0e48\u0e27\u0e19\u0e2a\u0e33\u0e04\u0e31\u0e0d\u0e02\u0e2d\u0e07 comment \u0e44\u0e21\u0e48\u0e40\u0e01\u0e34\u0e19 100 \u0e15\u0e31\u0e27\u0e2d\u0e31\u0e01\u0e29\u0e23\n3. **\u0e15\u0e31\u0e14\u0e2a\u0e48\u0e27\u0e19\u0e17\u0e35\u0e48\u0e44\u0e21\u0e48\u0e08\u0e33\u0e40\u0e1b\u0e47\u0e19**: \u0e44\u0e21\u0e48\u0e15\u0e49\u0e2d\u0e07\u0e41\u0e2a\u0e14\u0e07 query parameters \u0e2b\u0e23\u0e37\u0e2d tracking codes \u0e43\u0e19 URL\n4. **\u0e2a\u0e23\u0e38\u0e1b\u0e2a\u0e31\u0e49\u0e19\u0e46**: \u0e2b\u0e32\u0e01 comment \u0e22\u0e32\u0e27\u0e2b\u0e23\u0e37\u0e2d\u0e21\u0e35 URL \u0e40\u0e22\u0e2d\u0e30 \u0e43\u0e2b\u0e49\u0e2a\u0e23\u0e38\u0e1b\u0e40\u0e1b\u0e47\u0e19 \"\u0e04\u0e2d\u0e21\u0e40\u0e21\u0e19\u0e15\u0e4c\u0e40\u0e01\u0e35\u0e48\u0e22\u0e27\u0e01\u0e31\u0e1a [\u0e2b\u0e31\u0e27\u0e02\u0e49\u0e2d]\" \u0e41\u0e17\u0e19\n5. **\u0e2b\u0e25\u0e35\u0e01\u0e40\u0e25\u0e35\u0e48\u0e22\u0e07 output \u0e27\u0e48\u0e32\u0e07**: \u0e2b\u0e32\u0e01\u0e1e\u0e1a\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e17\u0e35\u0e48\u0e0b\u0e31\u0e1a\u0e0b\u0e49\u0e2d\u0e19 \u0e43\u0e2b\u0e49\u0e2a\u0e23\u0e38\u0e1b\u0e2a\u0e31\u0e49\u0e19\u0e46 \u0e41\u0e17\u0e19\u0e17\u0e35\u0e48\u0e08\u0e30\u0e44\u0e21\u0e48\u0e15\u0e2d\u0e1a\n\n# \u0e01\u0e32\u0e23\u0e08\u0e31\u0e14\u0e01\u0e32\u0e23\u0e02\u0e49\u0e2d\u0e1c\u0e34\u0e14\u0e1e\u0e25\u0e32\u0e14 (Error Handling)\n\u0e2b\u0e32\u0e01\u0e40\u0e04\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e21\u0e37\u0e2d\u0e2a\u0e48\u0e07\u0e04\u0e37\u0e19\u0e02\u0e49\u0e2d\u0e1c\u0e34\u0e14\u0e1e\u0e25\u0e32\u0e14:\n1. \u0e2d\u0e18\u0e34\u0e1a\u0e32\u0e22\u0e1b\u0e31\u0e0d\u0e2b\u0e32\u0e41\u0e25\u0e30\u0e2a\u0e32\u0e40\u0e2b\u0e15\u0e38\u0e17\u0e35\u0e48\u0e40\u0e1b\u0e47\u0e19\u0e44\u0e1b\u0e44\u0e14\u0e49\n2. \u0e40\u0e2a\u0e19\u0e2d\u0e17\u0e32\u0e07\u0e40\u0e25\u0e37\u0e2d\u0e01\u0e2b\u0e23\u0e37\u0e2d\u0e27\u0e34\u0e18\u0e35\u0e41\u0e01\u0e49\u0e44\u0e02\u0e2b\u0e32\u0e01\u0e21\u0e35\n3. \u0e23\u0e30\u0e1a\u0e38\u0e02\u0e49\u0e2d\u0e08\u0e33\u0e01\u0e31\u0e14\u0e02\u0e2d\u0e07\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e17\u0e35\u0e48\u0e44\u0e14\u0e49\u0e23\u0e31\u0e1a\u0e0a\u0e31\u0e14\u0e40\u0e08\u0e19\n4. \u0e44\u0e21\u0e48\u0e2a\u0e23\u0e49\u0e32\u0e07\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e2a\u0e21\u0e21\u0e15\u0e34\u0e2b\u0e23\u0e37\u0e2d\u0e04\u0e32\u0e14\u0e40\u0e14\u0e32\n\n# \u0e04\u0e33\u0e16\u0e32\u0e21\u0e08\u0e32\u0e01\u0e1c\u0e39\u0e49\u0e43\u0e0a\u0e49\n{{$json[\"original_question\"]}}\n\n**\u0e2b\u0e21\u0e32\u0e22\u0e40\u0e2b\u0e15\u0e38\u0e2a\u0e33\u0e04\u0e31\u0e0d**: \u0e15\u0e49\u0e2d\u0e07\u0e1b\u0e0f\u0e34\u0e1a\u0e31\u0e15\u0e34\u0e15\u0e32\u0e21\u0e01\u0e23\u0e30\u0e1a\u0e27\u0e19\u0e01\u0e32\u0e23 ReAct \u0e2d\u0e22\u0e48\u0e32\u0e07\u0e40\u0e04\u0e23\u0e48\u0e07\u0e04\u0e23\u0e31\u0e14 \u0e2b\u0e49\u0e32\u0e21\u0e02\u0e49\u0e32\u0e21\u0e02\u0e31\u0e49\u0e19\u0e15\u0e2d\u0e19\u0e2b\u0e23\u0e37\u0e2d\u0e43\u0e2b\u0e49\u0e04\u0e33\u0e15\u0e2d\u0e1a\u0e01\u0e48\u0e2d\u0e19\u0e21\u0e35\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e04\u0e23\u0e1a\u0e16\u0e49\u0e27\u0e19 \u0e15\u0e49\u0e2d\u0e07 list tools \u0e01\u0e48\u0e2d\u0e19\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19\u0e17\u0e38\u0e01\u0e04\u0e23\u0e31\u0e49\u0e07 \u0e41\u0e25\u0e30\u0e15\u0e49\u0e2d\u0e07\u0e43\u0e0a\u0e49 parameters format \u0e43\u0e2b\u0e49\u0e16\u0e39\u0e01\u0e15\u0e49\u0e2d\u0e07\u0e15\u0e32\u0e21 schema **\u0e2b\u0e49\u0e32\u0e21 output \u0e40\u0e1b\u0e47\u0e19\u0e04\u0e48\u0e32\u0e27\u0e48\u0e32\u0e07\u0e40\u0e21\u0e37\u0e48\u0e2d\u0e1e\u0e1a URL \u0e22\u0e32\u0e27\u0e2b\u0e23\u0e37\u0e2d\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e0b\u0e31\u0e1a\u0e0b\u0e49\u0e2d\u0e19 \u0e43\u0e2b\u0e49\u0e2a\u0e23\u0e38\u0e1b\u0e2a\u0e31\u0e49\u0e19\u0e46 \u0e41\u0e17\u0e19**",
"options": {
"systemMessage": "=You are a Facebook Data Assistant. After using tools and getting results, always provide a complete response based on the tool outputs. Never return empty output as following:\n[\n {\n \"output\": \"\"\n }\n]",
"maxIterations": 30
}
},
"type": "@n8n/n8n-nodes-langchain.agent",
"typeVersion": 1.9,
"position": [
-440,
220
],
"id": "c3318616-6349-44fd-bc05-2252609214bd",
"name": "Facebook Scraper Agent ",
"alwaysOutputData": false,
"retryOnFail": true
},
{
"parameters": {
"jsCode": "const staticData = $getWorkflowStaticData('global');\n\n// \u0e15\u0e23\u0e27\u0e08\u0e2a\u0e2d\u0e1a\u0e27\u0e48\u0e32\u0e40\u0e1b\u0e47\u0e19\u0e23\u0e2d\u0e1a\u0e41\u0e23\u0e01\u0e2b\u0e23\u0e37\u0e2d\u0e44\u0e21\u0e48\nif (!staticData.current_session_data) {\n // \u0e23\u0e2d\u0e1a\u0e41\u0e23\u0e01: \u0e40\u0e01\u0e47\u0e1a\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e17\u0e31\u0e49\u0e07\u0e2b\u0e21\u0e14\u0e08\u0e32\u0e01 input\n staticData.current_session_data = {\n original_question: $json[\"chatInput\"],\n sessionId: $json[\"userId\"] || \"default-session\",\n startTime: new Date().toISOString()\n };\n}\n\n// \u0e2a\u0e48\u0e07\u0e2d\u0e2d\u0e01\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e17\u0e35\u0e48\u0e04\u0e07\u0e2d\u0e22\u0e39\u0e48\u0e17\u0e38\u0e01\u0e23\u0e2d\u0e1a\nreturn [{\n sessionId: staticData.current_session_data.sessionId,\n original_question: staticData.current_session_data.original_question\n}];\n"
},
"type": "n8n-nodes-base.code",
"typeVersion": 2,
"position": [
-780,
220
],
"id": "dde27b59-ac35-4373-9dac-eaefd2a167a9",
"name": "Question memorizer"
},
{
"parameters": {
"model": {
"__rl": true,
"value": "openai/gpt-oss-20b",
"mode": "list",
"cachedResultName": "openai/gpt-oss-20b"
},
"options": {
"maxTokens": 8000
}
},
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"typeVersion": 1.2,
"position": [
-520,
440
],
"id": "69f01d56-5131-4de7-a834-2e2cfed8bd59",
"name": "OpenAI Chat Model by OpenRouter",
"credentials": {
"openAiApi": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"descriptionType": "manual",
"toolDescription": "\u0e43\u0e0a\u0e49\u0e14\u0e36\u0e07\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e04\u0e2d\u0e21\u0e40\u0e21\u0e19\u0e15\u0e4c\u0e08\u0e32\u0e01\u0e42\u0e1e\u0e2a\u0e15\u0e4c\u0e43\u0e19 Facebook \u0e23\u0e27\u0e21\u0e16\u0e36\u0e07\u0e02\u0e49\u0e2d\u0e04\u0e27\u0e32\u0e21, \u0e40\u0e27\u0e25\u0e32, \u0e08\u0e33\u0e19\u0e27\u0e19\u0e44\u0e25\u0e04\u0e4c, \u0e41\u0e25\u0e30\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e1c\u0e39\u0e49\u0e41\u0e2a\u0e14\u0e07\u0e04\u0e27\u0e32\u0e21\u0e04\u0e34\u0e14\u0e40\u0e2b\u0e47\u0e19",
"operation": "executeTool",
"toolName": "apify-slash-facebook-comments-scraper",
"toolParameters": "={{ (function() {\n const paramsString = $fromAI('Tool_Parameters');\n const params = JSON.parse(paramsString);\n \n return {\n startUrls: params.startUrls || (Array.isArray(params.start_urls) \n ? params.start_urls.map(url => ({ url: url }))\n : [{ url: params.start_urls }]),\n resultsLimit: params.resultsLimit || params.results_limit || 50,\n includeNestedComments: params.includeNestedComments || params.include_nested_comments || false,\n viewOption: params.viewOption || params.view_option || \"RANKED_UNFILTERED\"\n };\n})() }}"
},
"type": "n8n-nodes-mcp.mcpClientTool",
"typeVersion": 1,
"position": [
-20,
440
],
"id": "dfd7efa4-2556-4bce-98dc-11cb97b9c50b",
"name": "MCP Client for scraping comments",
"credentials": {
"mcpClientApi": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"model": {
"__rl": true,
"value": "openai/gpt-oss-120b",
"mode": "list",
"cachedResultName": "openai/gpt-oss-120b"
},
"options": {}
},
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"typeVersion": 1.2,
"position": [
160,
440
],
"id": "f0d7a350-c69f-4210-87ff-02057b6fcbb4",
"name": "OpenAI Chat Model by OpenRouter-1",
"credentials": {
"openAiApi": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"jsCode": "// \u0e23\u0e31\u0e1a input \u0e08\u0e32\u0e01 node \u0e01\u0e48\u0e2d\u0e19\u0e2b\u0e19\u0e49\u0e32\nconst input = items[0].json;\n\n// \u0e14\u0e36\u0e07\u0e2a\u0e15\u0e23\u0e34\u0e07\u0e08\u0e32\u0e01\u0e1f\u0e34\u0e25\u0e14\u0e4c output\nlet raw = input.output;\n\n// \u0e40\u0e1c\u0e37\u0e48\u0e2d\u0e01\u0e23\u0e13\u0e35 output \u0e44\u0e21\u0e48\u0e43\u0e0a\u0e48\u0e2a\u0e15\u0e23\u0e34\u0e07 (\u0e41\u0e15\u0e48\u0e42\u0e14\u0e22\u0e23\u0e39\u0e1b\u0e19\u0e35\u0e49\u0e40\u0e1b\u0e47\u0e19\u0e2a\u0e15\u0e23\u0e34\u0e07)\nif (typeof raw !== 'string') {\n raw = JSON.stringify(raw);\n}\n\n// \u0e15\u0e31\u0e14\u0e2a\u0e48\u0e27\u0e19\u0e40\u0e01\u0e23\u0e34\u0e48\u0e19\u0e19\u0e33\u0e2d\u0e2d\u0e01 \u0e41\u0e25\u0e49\u0e27\u0e40\u0e01\u0e47\u0e1a\u0e40\u0e09\u0e1e\u0e32\u0e30 JSON object \u0e23\u0e30\u0e2b\u0e27\u0e48\u0e32\u0e07 { ... }\nconst start = raw.indexOf('{');\nconst end = raw.lastIndexOf('}');\nif (start === -1 || end === -1) {\n throw new Error('\u0e44\u0e21\u0e48\u0e1e\u0e1a JSON object \u0e43\u0e19\u0e02\u0e49\u0e2d\u0e04\u0e27\u0e32\u0e21 output');\n}\nconst jsonString = raw.slice(start, end + 1);\n\n// \u0e41\u0e1b\u0e25\u0e07\u0e40\u0e1b\u0e47\u0e19\u0e2d\u0e2d\u0e1a\u0e40\u0e08\u0e01\u0e15\u0e4c\nconst data = JSON.parse(jsonString);\n\n// \u0e1b\u0e49\u0e2d\u0e07\u0e01\u0e31\u0e19\u0e01\u0e23\u0e13\u0e35\u0e44\u0e21\u0e48\u0e21\u0e35 pages \u0e2b\u0e23\u0e37\u0e2d posts\nconst pages = Array.isArray(data.pages) ? data.pages : [];\nconst flattened = [];\n\n// \u0e44\u0e2a\u0e49 flatten\nfor (const page of pages) {\n const posts = Array.isArray(page.posts) ? page.posts : [];\n for (const post of posts) {\n flattened.push({\n page_name: page.page_name ?? null,\n post_time: post.post_time ?? null,\n text: post.text ?? \"\",\n likes: post.likes ?? 0,\n comments_count: post.comments_count ?? 0,\n shares: post.shares ?? 0,\n media_type: post.media_type ?? null,\n total_likes: page.total_likes ?? 0,\n total_comments: page.total_comments ?? 0,\n total_shares: page.total_shares ?? 0,\n total_engagement: page.total_engagement ?? 0,\n average_engagement: page.average_engagement ?? 0,\n // \u0e16\u0e49\u0e32\u0e2d\u0e22\u0e32\u0e01\u0e1e\u0e01 insights / recommendations \u0e21\u0e32\u0e17\u0e38\u0e01\u0e41\u0e16\u0e27\u0e14\u0e49\u0e27\u0e22 \u0e43\u0e2a\u0e48 2 \u0e1a\u0e23\u0e23\u0e17\u0e31\u0e14\u0e19\u0e35\u0e49:\n insights: Array.isArray(data.insights) ? data.insights : [],\n recommendations: Array.isArray(data.recommendations) ? data.recommendations : [],\n });\n }\n}\n\n// \u0e2a\u0e48\u0e07\u0e2d\u0e2d\u0e01\u0e40\u0e1b\u0e47\u0e19 n8n items\nreturn flattened.map(row => ({ json: row }));\n"
},
"type": "n8n-nodes-base.code",
"typeVersion": 2,
"position": [
680,
400
],
"id": "ceff94de-7765-4cd5-96ad-cdc7e198de7d",
"name": "Code1"
},
{
"parameters": {
"operation": "insert",
"collection": "social",
"fields": "=page_name,post_time,text,likes,comments_count,shares,media_type",
"options": {}
},
"type": "n8n-nodes-base.mongoDb",
"typeVersion": 1.1,
"position": [
880,
380
],
"id": "a30abe40-0b1c-4e19-a09d-09d2e4e74034",
"name": "MongoDB",
"credentials": {
"mongoDb": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"rule": {
"interval": [
{
"field": "minutes"
}
]
}
},
"id": "b605bcd9-1609-407f-b357-bff0f4bb2867",
"name": "Schedule Trigger",
"type": "n8n-nodes-base.scheduleTrigger",
"position": [
-1460,
40
],
"description": "This node triggers your content generation workflow on a schedule. Default is every 5 days at 9 AM, but you can adjust this to daily, weekly, or any custom schedule that fits your content strategy. The workflow will start automatically at the specified time.",
"typeVersion": 1.2
},
{
"parameters": {
"jsCode": "// Code node \u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e2a\u0e38\u0e48\u0e21\u0e40\u0e25\u0e37\u0e2d\u0e01\u0e04\u0e33\u0e16\u0e32\u0e21\nconst questions = [\n \"\u0e14\u0e36\u0e07\u0e42\u0e1e\u0e2a https://www.facebook.com/nationtv \u0e41\u0e25\u0e30 https://www.facebook.com/thaipbs \u0e21\u0e32\u0e40\u0e1b\u0e23\u0e35\u0e22\u0e1a\u0e40\u0e17\u0e35\u0e22\u0e1a\u0e01\u0e31\u0e19 1 \u0e42\u0e1e\u0e2a\u0e25\u0e48\u0e32\u0e2a\u0e38\u0e14 \u0e1e\u0e23\u0e49\u0e2d\u0e21 comment 5 comment\",\n \"\u0e27\u0e34\u0e40\u0e04\u0e23\u0e32\u0e30\u0e2b\u0e4c engagement \u0e02\u0e2d\u0e07 https://www.facebook.com/natenapa.nate \u0e42\u0e1e\u0e2a 5 \u0e42\u0e1e\u0e2a\u0e25\u0e48\u0e32\u0e2a\u0e38\u0e14\",\n \"\u0e15\u0e23\u0e27\u0e08\u0e2a\u0e2d\u0e1a sentiment \u0e02\u0e2d\u0e07\u0e04\u0e2d\u0e21\u0e40\u0e21\u0e19\u0e15\u0e4c\u0e43\u0e19 https://www.facebook.com/imcinstitute \u0e42\u0e1e\u0e2a 3 \u0e42\u0e1e\u0e2a\u0e25\u0e48\u0e32\u0e2a\u0e38\u0e14\",\n \"\u0e40\u0e1b\u0e23\u0e35\u0e22\u0e1a\u0e40\u0e17\u0e35\u0e22\u0e1a engagement \u0e23\u0e30\u0e2b\u0e27\u0e48\u0e32\u0e07 https://www.facebook.com/natenapa.nate \u0e41\u0e25\u0e30 https://www.facebook.com/Lost.Somewhere.Together \u0e20\u0e32\u0e22\u0e43\u0e15\u0e49 5 \u0e42\u0e1e\u0e2a\u0e25\u0e48\u0e32\u0e2a\u0e38\u0e14\"\n];\n\n// \u0e2a\u0e38\u0e48\u0e21\u0e40\u0e25\u0e37\u0e2d\u0e01\u0e04\u0e33\u0e16\u0e32\u0e21 \u0e2b\u0e23\u0e37\u0e2d\u0e43\u0e0a\u0e49\u0e41\u0e1a\u0e1a\u0e40\u0e23\u0e35\u0e22\u0e07\u0e15\u0e32\u0e21\u0e25\u0e33\u0e14\u0e31\u0e1a\nconst currentHour = new Date().getHours();\nconst questionIndex = currentHour % questions.length; // \u0e2b\u0e21\u0e38\u0e19\u0e40\u0e27\u0e35\u0e22\u0e19\u0e15\u0e32\u0e21\u0e0a\u0e31\u0e48\u0e27\u0e42\u0e21\u0e07\nconst selectedQuestion = questions[questionIndex];\n\n// \u0e2a\u0e23\u0e49\u0e32\u0e07 session ID \u0e41\u0e1a\u0e1a unique\nconst sessionId = `facebook-analysis-${new Date().toISOString().split('T')[0]}-${questionIndex}`;\n\n// \u0e2a\u0e48\u0e07\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e44\u0e1b\u0e22\u0e31\u0e07 Agent\nreturn [{\n json: {\n chatInput: selectedQuestion,\n sessionId: sessionId, // \u0e40\u0e1e\u0e34\u0e48\u0e21 sessionId \u0e15\u0e23\u0e07\u0e19\u0e35\u0e49\n timestamp: new Date().toISOString(),\n questionIndex: questionIndex,\n executionType: \"scheduled\"\n }\n}];"
},
"type": "n8n-nodes-base.code",
"typeVersion": 2,
"position": [
-1240,
40
],
"id": "8cb0c8a3-70ba-45d3-8e5b-443470e31f22",
"name": "Code"
}
],
"connections": {
"Simple Memory": {
"ai_memory": [
[
{
"node": "Facebook Scraper Agent ",
"type": "ai_memory",
"index": 0
}
]
]
},
"If": {
"main": [
[
{
"node": "Question memorizer",
"type": "main",
"index": 0
}
],
[
{
"node": "Data Engineer Agent",
"type": "main",
"index": 0
}
]
]
},
"Data Engineer Agent": {
"main": [
[
{
"node": "Code1",
"type": "main",
"index": 0
}
]
]
},
"MCP Client for scraping posts": {
"ai_tool": [
[
{
"node": "Facebook Scraper Agent ",
"type": "ai_tool",
"index": 0
}
]
]
},
"Facebook Scraper Agent ": {
"main": [
[
{
"node": "If",
"type": "main",
"index": 0
}
]
]
},
"Question memorizer": {
"main": [
[
{
"node": "Facebook Scraper Agent ",
"type": "main",
"index": 0
}
]
]
},
"OpenAI Chat Model by OpenRouter": {
"ai_languageModel": [
[
{
"node": "Facebook Scraper Agent ",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"MCP Client for scraping comments": {
"ai_tool": [
[
{
"node": "Facebook Scraper Agent ",
"type": "ai_tool",
"index": 0
}
]
]
},
"OpenAI Chat Model by OpenRouter-1": {
"ai_languageModel": [
[
{
"node": "Data Engineer Agent",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Code1": {
"main": [
[
{
"node": "MongoDB",
"type": "main",
"index": 0
}
]
]
},
"Schedule Trigger": {
"main": [
[
{
"node": "Code",
"type": "main",
"index": 0
}
]
]
},
"Code": {
"main": [
[
{
"node": "Question memorizer",
"type": "main",
"index": 0
}
]
]
}
},
"active": true,
"settings": {
"executionOrder": "v1"
},
"versionId": "5b5bc86a-6a99-4e4b-b145-57d339d50175",
"meta": {
"templateCredsSetupCompleted": true
},
"id": "LiulSo6keI5X2hHT",
"tags": [
{
"createdAt": "2025-10-26T09:34:16.976Z",
"updatedAt": "2025-10-26T09:34:16.976Z",
"id": "MEImHCjYMukmlGmX",
"name": "stable"
},
{
"createdAt": "2025-10-28T00:27:22.467Z",
"updatedAt": "2025-10-28T00:27:22.467Z",
"id": "NYNDHn7Nmjy5Zj1l",
"name": "webinar"
},
{
"createdAt": "2025-10-28T00:27:22.454Z",
"updatedAt": "2025-10-28T00:27:22.454Z",
"id": "RtCdfSHfHFpc0uGB",
"name": "in-progress"
},
{
"createdAt": "2025-10-28T00:28:39.682Z",
"updatedAt": "2025-10-28T00:28:39.682Z",
"id": "XccVedZUidF0zgJv",
"name": "tested@10Sep2025"
},
{
"createdAt": "2025-10-28T00:27:22.464Z",
"updatedAt": "2025-10-28T00:27:22.464Z",
"id": "jypVjtQBFYL5oTVn",
"name": "tested@8Sep2025"
},
{
"createdAt": "2025-10-28T08:24:08.214Z",
"updatedAt": "2025-10-28T08:24:08.214Z",
"id": "mIcq3VWvFb3kSida",
"name": "tested@28-10-2025"
},
{
"createdAt": "2025-10-28T00:27:22.458Z",
"updatedAt": "2025-10-28T00:27:22.458Z",
"id": "mkA5HEA8BPFSD5qV",
"name": "tested@17Sep2025"
}
]
}
Credentials you'll need
Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.
mcpClientApimongoDbopenAiApi
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
lab3-solvedLab2-v2 copy. Uses memoryBufferWindow, agent, n8n-nodes-mcp, lmChatOpenAi. Scheduled trigger; 13 nodes.
Source: https://github.com/aekanun2020/2025-mcpserver-apify/blob/main/lab3-multi-agents/lab3_solvedLab2_v2_copy.json — original creator credit. Request a take-down →
Related workflows
Workflows that share integrations, category, or trigger type with this one. All free to copy and import.
This workflow automatically monitors marketing job boards to identify growing companies and potential business opportunities. It saves you time by eliminating the need to manually check job listings a
My workflow 3. Uses agent, n8n-nodes-mcp, lmChatOpenAi, mongoDb. Scheduled trigger; 15 nodes.
multi-agents-with-Scheduling-v2. Uses chatTrigger, agent, lmChatOpenAi, memoryBufferWindow. Chat trigger; 14 nodes.
multi-agents-n8n_mcp_client_for_fb_post_comment_with_gpt_oss_120b_NativeMCPServerApify-Mongodb-v3. Uses chatTrigger, agent, lmChatOpenAi, memoryBufferWindow. Chat trigger; 12 nodes.
n8n-mcp_client-for-fb-post-comment-with gpt-oss-120b-NativeMCPServerApify-SchedulerTrigger-Airtable. Uses memoryBufferWindow, agent, lmChatOpenAi, n8n-nodes-mcp. Scheduled trigger; 8 nodes.