This workflow corresponds to n8n.io template #4357 — we link there as the canonical source.
This workflow follows the Agent → Chainllm 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 →
{
"nodes": [
{
"id": "d3a072cc-9276-4f96-948c-f2c93090dbf2",
"name": "Unipile: Get Post Details",
"type": "n8n-nodes-base.httpRequest",
"position": [
280,
-340
],
"parameters": {},
"typeVersion": 4.2
},
{
"id": "17030513-b4ca-47bc-beea-f7d146de21a5",
"name": "Unipile: Comment on Post",
"type": "n8n-nodes-base.httpRequest",
"position": [
1280,
140
],
"parameters": {},
"typeVersion": 4.2
},
{
"id": "d3f45944-2c38-4555-ae98-5fd69d99f3ba",
"name": "OpenAI: Chat Model (Comment Generation)",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
580,
60
],
"parameters": {},
"typeVersion": 1.2
},
{
"id": "706b9189-45ab-4578-96f4-b2bc5858b58a",
"name": "Trigger: Chat Message Received",
"type": "@n8n/n8n-nodes-langchain.chatTrigger",
"position": [
-780,
-260
],
"parameters": {},
"typeVersion": 1.1
},
{
"id": "a9e5f51e-2cf6-4fdc-81a3-2cef4b5a310c",
"name": "OpenAI: Chat Model (Post ID Extraction)",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
-220,
100
],
"parameters": {},
"typeVersion": 1.2
},
{
"id": "4ff300e4-1a6c-4298-ae43-a5e97a8a9040",
"name": "Unipile: Add Post Reaction",
"type": "n8n-nodes-base.httpRequest",
"position": [
1840,
-60
],
"parameters": {},
"typeVersion": 4.2
},
{
"id": "43a12068-8384-4dbc-b8bd-976ba370547b",
"name": "LLM: Extract Post ID",
"type": "@n8n/n8n-nodes-langchain.chainLlm",
"position": [
-280,
-240
],
"parameters": {},
"typeVersion": 1.6
},
{
"id": "f2930b41-7496-4ed4-89d5-10e700467b72",
"name": "LLM: Generate Comment",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
720,
-340
],
"parameters": {},
"typeVersion": 1.9
},
{
"id": "100e8868-230d-44f6-a863-2462db5a491a",
"name": "Telegram: Send Confirmation",
"type": "n8n-nodes-base.telegram",
"position": [
2360,
-420
],
"parameters": {},
"typeVersion": 1.2
},
{
"id": "ac8aaed5-0093-4eb4-afbe-433346120a49",
"name": "LLM: Refine Comment (Thinking)",
"type": "@n8n/n8n-nodes-langchain.toolThink",
"position": [
920,
40
],
"parameters": {},
"typeVersion": 1
},
{
"id": "858367ae-0b9e-40b7-b666-39d7bc64350e",
"name": "Note: Workflow Description & Setup",
"type": "n8n-nodes-base.stickyNote",
"position": [
-580,
300
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "2daea7d8-188c-4efb-a902-013ab19a1fdf",
"name": "Note: Trigger Setup",
"type": "n8n-nodes-base.stickyNote",
"position": [
-880,
-520
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "4c7bd1be-6f13-411d-b15d-1ca563a056ce",
"name": "Note: Post ID Extraction",
"type": "n8n-nodes-base.stickyNote",
"position": [
-300,
-540
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "9ad2510d-889e-4498-a8d2-c271ebe461d0",
"name": "Note: Get Post Details",
"type": "n8n-nodes-base.stickyNote",
"position": [
160,
-700
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "a6572957-c3d6-4930-9655-541046ab7d92",
"name": "Note: Generate Comment",
"type": "n8n-nodes-base.stickyNote",
"position": [
640,
-720
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "7cde48e8-63b3-4111-8717-d88661b12ef7",
"name": "Note: Comment on Post",
"type": "n8n-nodes-base.stickyNote",
"position": [
1160,
-180
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "c3755ef3-2727-4593-965f-46acc90b179d",
"name": "Note: Add Post Reaction",
"type": "n8n-nodes-base.stickyNote",
"position": [
1720,
-320
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "413f624a-b5c5-4961-a52a-7618d00e1c48",
"name": "Note: Send Confirmation",
"type": "n8n-nodes-base.stickyNote",
"position": [
2240,
-740
],
"parameters": {
"content": ""
},
"typeVersion": 1
}
],
"connections": {
"LLM: Extract Post ID": {
"main": [
[
{
"node": "Unipile: Get Post Details",
"type": "main",
"index": 0
}
]
]
},
"LLM: Generate Comment": {
"main": [
[
{
"node": "Unipile: Comment on Post",
"type": "main",
"index": 0
}
]
]
},
"Unipile: Comment on Post": {
"main": [
[
{
"node": "Unipile: Add Post Reaction",
"type": "main",
"index": 0
}
]
]
},
"Unipile: Get Post Details": {
"main": [
[
{
"node": "LLM: Generate Comment",
"type": "main",
"index": 0
}
]
]
},
"Unipile: Add Post Reaction": {
"main": [
[
{
"node": "Telegram: Send Confirmation",
"type": "main",
"index": 0
}
]
]
},
"LLM: Refine Comment (Thinking)": {
"ai_tool": [
[
{
"node": "LLM: Generate Comment",
"type": "ai_tool",
"index": 0
}
]
]
},
"Trigger: Chat Message Received": {
"main": [
[
{
"node": "LLM: Extract Post ID",
"type": "main",
"index": 0
}
]
]
},
"OpenAI: Chat Model (Comment Generation)": {
"ai_languageModel": [
[
{
"node": "LLM: Generate Comment",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"OpenAI: Chat Model (Post ID Extraction)": {
"ai_languageModel": [
[
{
"node": "LLM: Extract Post ID",
"type": "ai_languageModel",
"index": 0
}
]
]
}
}
}
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
Tutorial Video
Source: https://n8n.io/workflows/4357/ — 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.
The Best Linkedin Posting System. Uses httpRequest, lmChatOpenAi, agent, chatTrigger. Chat trigger; 49 nodes.
This Chatbot automates the process of discovering job openings and generating tailored job application emails.
This project is an automation workflow that generates a personalized resume and cover letter for each job listing. Generates an HTML resume from your data. Hosts it live on GitHub Pages. Converts it t
This template automates stock analysis by combining technical analysis, news sentiment, and real-time market data to generate actionable trading recommendations with confidence scores, risk management
Summarize YouTube Videos & Chat About Content with GPT-4o-mini via Telegram. Uses splitOut, lmChatOpenAi, chainLlm, summarize. Chat trigger; 22 nodes.