Automatisation de l'agrégation de contenu des médias sociaux vers un canal Telegram
Ceci est unContent Creation, Multimodal AIworkflow d'automatisation du domainecontenant 30 nœuds.Utilise principalement des nœuds comme If, Code, Wait, Telegram, HttpRequest. Agrégation du contenu Twitter/X vers un canal Telegram avec Google Gemini AI
- •Token Bot Telegram
- •Peut nécessiter les informations d'identification d'authentification de l'API cible
- •Clé API Google Gemini
Nœuds utilisés (30)
Catégorie
{
"id": "Qsx3VDr6JAHBYiU1",
"meta": {
"instanceId": "e2a1d0ec98fd0994972a016020dcf90b56d31fa85f2abd02801701fb8fc45e3d",
"templateCredsSetupCompleted": true
},
"name": "Automate social media content aggregation to a Telegram channel",
"tags": [],
"nodes": [
{
"id": "51ad1db1-1268-43f2-af87-49784184b19e",
"name": "Requête HTTP",
"type": "n8n-nodes-base.httpRequest",
"onError": "continueRegularOutput",
"position": [
-1056,
80
],
"parameters": {
"url": "https://api.browseract.com/v2/workflow/run-task",
"method": "POST",
"options": {},
"sendBody": true,
"authentication": "genericCredentialType",
"bodyParameters": {
"parameters": [
{
"name": "workflow_id",
"value": "52606771064261730"
}
]
},
"genericAuthType": "httpBearerAuth"
},
"credentials": {
"httpBearerAuth": {
"id": "x2SDklVkEIBFM56U",
"name": "BrowserACtaPi"
}
},
"retryOnFail": true,
"typeVersion": 4.2,
"alwaysOutputData": true
},
{
"id": "eb445058-6561-4cdd-aeb6-86b1cea7caac",
"name": "Requête HTTP1",
"type": "n8n-nodes-base.httpRequest",
"position": [
-576,
64
],
"parameters": {
"url": "https://api.browseract.com/v2/workflow/get-task",
"options": {},
"sendQuery": true,
"authentication": "genericCredentialType",
"genericAuthType": "httpBearerAuth",
"queryParameters": {
"parameters": [
{
"name": "=task_id",
"value": "={{ $json.id }}"
}
]
}
},
"credentials": {
"httpBearerAuth": {
"id": "x2SDklVkEIBFM56U",
"name": "BrowserACtaPi"
}
},
"typeVersion": 4.2
},
{
"id": "e3a8baef-33a5-4b36-a0ac-f393077dfba9",
"name": "Attendre",
"type": "n8n-nodes-base.wait",
"position": [
-320,
336
],
"webhookId": "ef2a567b-c3a0-4e8f-a90a-011906991d48",
"parameters": {
"unit": "minutes",
"amount": 1
},
"typeVersion": 1.1
},
{
"id": "d7afdc55-375d-42f6-aec1-d5ed4073fd86",
"name": "Attendre1",
"type": "n8n-nodes-base.wait",
"position": [
-864,
336
],
"webhookId": "a2237c54-9346-40e7-b622-0c50db1b379c",
"parameters": {
"amount": 20
},
"typeVersion": 1.1
},
{
"id": "4f1ec379-162b-4d77-bdb5-e4bcdca86935",
"name": "If",
"type": "n8n-nodes-base.if",
"position": [
-864,
80
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "d48ae258-78a0-4b26-923d-2643b6b774c6",
"operator": {
"type": "object",
"operation": "notExists",
"singleValue": true
},
"leftValue": "={{ $json.error }}",
"rightValue": ""
},
{
"id": "3967a169-8432-45bd-8f89-08795fd12679",
"operator": {
"type": "string",
"operation": "notEquals"
},
"leftValue": "={{ $json.id }}",
"rightValue": "null"
}
]
}
},
"retryOnFail": false,
"typeVersion": 2.2
},
{
"id": "a50bbd98-fbb7-4bab-bd52-b03c9c12c7b5",
"name": "If1",
"type": "n8n-nodes-base.if",
"position": [
-304,
64
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "0347a2a2-eb32-414d-9494-4e648078cf40",
"operator": {
"type": "object",
"operation": "notExists",
"singleValue": true
},
"leftValue": "={{ $json.error }}",
"rightValue": ""
},
{
"id": "99f31959-6f27-40dd-97c3-6ff611da1e0b",
"operator": {
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.status }}",
"rightValue": "finished"
}
]
}
},
"typeVersion": 2.2
},
{
"id": "641e6deb-f68f-48ad-99e5-382d0b36df95",
"name": "Send a text message",
"type": "n8n-nodes-base.telegram",
"position": [
464,
112
],
"webhookId": "c9d760eb-3c1a-4fc6-8ee7-da0e26ac27fe",
"parameters": {
"text": "={{ $json.Title }}\n{{ $json.Summary }}\n\nBY: {{ $json.PublishedBy }}\n{{ $json.Url }}",
"chatId": "@Test",
"additionalFields": {}
},
"credentials": {
"telegramApi": {
"id": "34LCOs7mfDx5vkSV",
"name": "Telegram account"
}
},
"typeVersion": 1.2
},
{
"id": "a53dc2cd-7ed0-478a-a610-bca789143af5",
"name": "Code in JavaScript",
"type": "n8n-nodes-base.code",
"position": [
-64,
400
],
"parameters": {
"jsCode": "// This function will iterate through your data and reformat it\n// into a list of single-item lists.\nconst refinedOutput = $input.first().json.output.refined_output\nconst processedItems = [];\n\nfor (const item of refinedOutput) {\n // Create a new item object with a 'json' key\n // that holds the object directly.\n const newItem = {\n json: item,\n };\n processedItems.push(newItem);\n}\n\n// Return the new list of items\nreturn processedItems;"
},
"typeVersion": 2
},
{
"id": "61a053ae-cd55-43b2-9b08-53171f39c37c",
"name": "Agent IA",
"type": "@n8n/n8n-nodes-langchain.agent",
"maxTries": 2,
"position": [
-64,
48
],
"parameters": {
"text": "=in the\n\n{{ $json.output.string }}\n\nlist of maps available like the example below\n\n\n[\n { \n \"Title\": \".............\", \n \"PublishedBy\": \"............\", \n \"Summary\": \".............\", \n \"Url\": \".............\",\n\"Pic\" : \".............\"\n}\n] \n\nRefine the output for each items in the list, Summarize the 'Summary' if needed and remove all duplicated data.\n\n\"refined_output\" : \n {\n \"Title\": <String>,\n \"PublishedBy\": <String>,\n \"Summary\": <String>,\n \"Url\" : <String>,\n \"Pic\" : <String>\n }\n\nadd each one separately as an item \n",
"options": {},
"promptType": "define",
"hasOutputParser": true
},
"retryOnFail": true,
"typeVersion": 2.2,
"waitBetweenTries": 1500
},
{
"id": "ce1fbc09-7156-4a7d-b88c-1c1bb881d12a",
"name": "Structured Output Parser",
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"position": [
96,
256
],
"parameters": {
"jsonSchemaExample": "{\n \"refined_output\": \n [\n {\n \"Title\": \"<String>\",\n \"PublishedBy\": \"<String>\",\n \"Summary\": \"<String>\",\n \"Url\": \"<String>\",\n \"Pic\": \"<String>\"\n }\n ]\n}"
},
"typeVersion": 1.3
},
{
"id": "55d8a924-c02d-4d5e-893f-094587a8b1a7",
"name": "Modèle de chat Google Gemini",
"type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
"position": [
-64,
256
],
"parameters": {
"options": {}
},
"credentials": {
"googlePalmApi": {
"id": "G8YK0DTLFGi5n0WD",
"name": "Google Gemini(PaLM) Api account"
}
},
"typeVersion": 1
},
{
"id": "c582cfc7-66c7-46da-918f-6758014b8587",
"name": "If2",
"type": "n8n-nodes-base.if",
"position": [
128,
400
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "df1ae316-b51d-4f5a-959a-bea374087a9b",
"operator": {
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.Pic }}",
"rightValue": "=no picture"
}
]
}
},
"typeVersion": 2.2
},
{
"id": "e63901a7-2e00-4467-8191-a6e529d9ef90",
"name": "Send a photo message",
"type": "n8n-nodes-base.telegram",
"position": [
464,
336
],
"webhookId": "5cd5b005-17d2-4fd1-a61c-3f90c54cf2d7",
"parameters": {
"file": "={{ $json.Pic }}",
"chatId": "@Test",
"operation": "sendPhoto",
"additionalFields": {
"caption": "={{ $json.Title }} \n\n{{ $json.Summary }} \n\nBY: {{ $json.PublishedBy }}\n\n{{ $json.Url }}"
}
},
"credentials": {
"telegramApi": {
"id": "34LCOs7mfDx5vkSV",
"name": "Telegram account"
}
},
"typeVersion": 1.2
},
{
"id": "85e66f7d-b04c-494a-a80c-3d54522b8aaa",
"name": "Déclencheur planifié",
"type": "n8n-nodes-base.scheduleTrigger",
"position": [
-1312,
80
],
"parameters": {
"rule": {
"interval": [
{
"field": "hours",
"hoursInterval": 12
}
]
}
},
"typeVersion": 1.2
},
{
"id": "2170f06f-24de-455c-8f2a-bbd3310a72d0",
"name": "Note adhésive-Intro",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1936,
-128
],
"parameters": {
"width": 592,
"height": 408,
"content": "## Try It Out!\n### This n8n template automatically scrapes and refines content from the X homepage and sends curated posts to your Telegram channel.\n\n### How it works\n* The workflow is triggered automatically on a schedule to scrape the latest posts from X.\n* A series of **If** and **Wait** nodes monitor the scraping job until the full data is ready.\n* An **AI Agent**, powered by **Google Gemini**, refines the scraped content by summarizing posts and removing duplicates.\n* An **If** node checks for an image in the post to decide if a photo or a text message should be sent.\n* Finally, the curated posts are sent to your Telegram channel as rich media messages.\n\n### Requirements\n* **BrowserAct** API account\n* **BrowserAct** **“Twitter/X Content Aggregation”** Template\n* **Gemini** account\n* **Telegram** credentials\n\n### Need Help?\nJoin the [Discord](https://discord.com/invite/UpnCKd7GaU) or Visit Our [Blog](https://www.browseract.com/blog)!\n"
},
"typeVersion": 1
},
{
"id": "80c1e1b8-cb9b-42c4-8509-81106db60295",
"name": "Note adhésive-Scraping",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1152,
-128
],
"parameters": {
"color": 5,
"width": 480,
"height": 164,
"content": "## 1. Trigger the Job Scraper\n\nThis workflow uses an HTTP Request to start a job scraping task via the BrowserAct API. This allows you to collect up-to-date job market data.\n\n### Don't forget to add your BrowserAct Workflow ID. "
},
"typeVersion": 1
},
{
"id": "341dd9f1-bde8-4fc8-9fd9-39dc60107eef",
"name": "Sticky Note-Attendre",
"type": "n8n-nodes-base.stickyNote",
"position": [
-656,
-128
],
"parameters": {
"color": 5,
"width": 512,
"height": 164,
"content": "## 2. Wait for Scraping to Finish\n\nThese nodes check the status of the scraping task. The `If` node determines if the task is complete. If it's still running, the `Wait` node pauses the workflow for a set period before retrying to check the status."
},
"typeVersion": 1
},
{
"id": "81b9fbd7-33fc-4563-8a1f-e3a4fc939cb2",
"name": "Note adhésive-AI",
"type": "n8n-nodes-base.stickyNote",
"position": [
-128,
-128
],
"parameters": {
"color": 4,
"width": 448,
"content": "## 3. Refine Content with AI\n\nThis **AI Agent** node, powered by **Google Gemini**, processes the scraped data. Its job is to summarize the posts and remove any duplicate information, ensuring the final output is clean and valuable.\n\n\n### Don't forget to Connect your Gemini "
},
"typeVersion": 1
},
{
"id": "f861965c-7e8c-4008-b6ea-6aa310d0b813",
"name": "Note adhésive-Conditional Send",
"type": "n8n-nodes-base.stickyNote",
"position": [
336,
-128
],
"parameters": {
"color": 3,
"width": 352,
"height": 196,
"content": "## 4. Send to Telegram\n\nAn **If** node checks if the post includes an image. It then routes the data to either a 'send photo' or 'send text message' Telegram node, ensuring the content is sent in the best possible format.\n\n### Don't forget to Connect your Telegram and add your Channel ID. "
},
"typeVersion": 1
},
{
"id": "1f370ea2-d0fd-4442-baa8-ae101cd9e5f7",
"name": "Note adhésive-How to Use",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1936,
288
],
"parameters": {
"width": 592,
"height": 168,
"content": "## How to use\n\n1. **Set up Credentials:** Add your credentials for **BrowserAct**, **Google Gemini**, and **Telegram** to the workflow. They will be used by the relevant nodes.\n2. **Set up BrowserAct:** In your **BrowserAct** account, set up the **X Home Page Scrapper** template.\n3. **Add WorkFlow ID:** Change the `workflow_id` value inside the **HTTP Request** node to match the one from your BrowserAct workflow.\n4. **Activate Workflow:** To enable the automated schedule, simply activate the workflow."
},
"typeVersion": 1
},
{
"id": "323127a9-6e88-41a6-8529-b43cc44b009a",
"name": "Note adhésive-Help",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1936,
464
],
"parameters": {
"width": 592,
"height": 96,
"content": "## Need Help ?\n* [How to Find Your BrowserAct API Key & Workflow ID](https://www.youtube.com/watch?v=pDjoZWEsZlE)\n* [How to Connect n8n to Browseract](https://www.youtube.com/watch?v=RoYMdJaRdcQ)\n* [How to Use & Customize BrowserAct Templates](https://www.youtube.com/watch?v=CPZHFUASncY)"
},
"typeVersion": 1
},
{
"id": "b78bcd09-88bc-4dd9-8ef1-32d3e247a6e1",
"name": "Note adhésive-Video",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1936,
576
],
"parameters": {
"width": 592,
"height": 80,
"content": "## Watch Workflow Guidance and Showcase\n* #### [Automate Your Social Media: Get All X/Twitter Updates Directly in Telegram!](https://youtu.be/6CXe6k9vihk)"
},
"typeVersion": 1
},
{
"id": "f59c80ea-db18-4f18-b623-f4f0fe156c69",
"name": "Note adhésive",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1152,
48
],
"parameters": {
"color": 5,
"width": 480,
"height": 480,
"content": ""
},
"typeVersion": 1
},
{
"id": "c8d84675-275a-4838-961c-9701f8a3a7cb",
"name": "Note adhésive1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-656,
48
],
"parameters": {
"color": 5,
"width": 512,
"height": 480,
"content": ""
},
"typeVersion": 1
},
{
"id": "807e290e-0b2e-4e75-b91d-e4b7ab77cb9e",
"name": "Note adhésive2",
"type": "n8n-nodes-base.stickyNote",
"position": [
-128,
48
],
"parameters": {
"color": 4,
"width": 448,
"height": 480,
"content": ""
},
"typeVersion": 1
},
{
"id": "a821fb85-990c-4a4c-9329-808dff71b184",
"name": "Note adhésive3",
"type": "n8n-nodes-base.stickyNote",
"position": [
336,
80
],
"parameters": {
"color": 3,
"width": 352,
"height": 448,
"content": ""
},
"typeVersion": 1
},
{
"id": "94468263-32d0-49c2-b805-61f8a0c1b7cb",
"name": "Note adhésive4",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1008,
-240
],
"parameters": {
"color": 5,
"width": 182,
"height": 80,
"content": "## \n# Run Node"
},
"typeVersion": 1
},
{
"id": "3116f3bc-dd38-4a46-b62e-713150332933",
"name": "Note adhésive5",
"type": "n8n-nodes-base.stickyNote",
"position": [
-496,
-240
],
"parameters": {
"color": 5,
"width": 182,
"height": 80,
"content": "## \n# Get Node"
},
"typeVersion": 1
},
{
"id": "0c84785c-6e66-47d1-b307-9198ccbc85a4",
"name": "Note adhésive6",
"type": "n8n-nodes-base.stickyNote",
"position": [
-32,
-240
],
"parameters": {
"color": 4,
"width": 230,
"height": 80,
"content": "## \n# Agent Node"
},
"typeVersion": 1
},
{
"id": "ec102a87-733d-4e22-8a08-154d53552139",
"name": "Note adhésive7",
"type": "n8n-nodes-base.stickyNote",
"position": [
400,
-240
],
"parameters": {
"color": 3,
"width": 214,
"height": 80,
"content": "## \n# Send Node"
},
"typeVersion": 1
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "63f14756-172c-40d7-9efc-8ef6737214ca",
"connections": {
"4f1ec379-162b-4d77-bdb5-e4bcdca86935": {
"main": [
[
{
"node": "HTTP Request1",
"type": "main",
"index": 0
}
],
[
{
"node": "Wait1",
"type": "main",
"index": 0
}
]
]
},
"a50bbd98-fbb7-4bab-bd52-b03c9c12c7b5": {
"main": [
[
{
"node": "AI Agent",
"type": "main",
"index": 0
}
],
[
{
"node": "Wait",
"type": "main",
"index": 0
}
]
]
},
"c582cfc7-66c7-46da-918f-6758014b8587": {
"main": [
[
{
"node": "641e6deb-f68f-48ad-99e5-382d0b36df95",
"type": "main",
"index": 0
}
],
[
{
"node": "e63901a7-2e00-4467-8191-a6e529d9ef90",
"type": "main",
"index": 0
}
]
]
},
"Wait": {
"main": [
[
{
"node": "HTTP Request1",
"type": "main",
"index": 0
}
]
]
},
"Wait1": {
"main": [
[
{
"node": "HTTP Request",
"type": "main",
"index": 0
}
]
]
},
"AI Agent": {
"main": [
[
{
"node": "a53dc2cd-7ed0-478a-a610-bca789143af5",
"type": "main",
"index": 0
}
]
]
},
"HTTP Request": {
"main": [
[
{
"node": "4f1ec379-162b-4d77-bdb5-e4bcdca86935",
"type": "main",
"index": 0
}
]
]
},
"HTTP Request1": {
"main": [
[
{
"node": "a50bbd98-fbb7-4bab-bd52-b03c9c12c7b5",
"type": "main",
"index": 0
}
]
]
},
"Schedule Trigger": {
"main": [
[
{
"node": "HTTP Request",
"type": "main",
"index": 0
}
]
]
},
"a53dc2cd-7ed0-478a-a610-bca789143af5": {
"main": [
[
{
"node": "c582cfc7-66c7-46da-918f-6758014b8587",
"type": "main",
"index": 0
}
]
]
},
"Google Gemini Chat Model": {
"ai_languageModel": [
[
{
"node": "AI Agent",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"ce1fbc09-7156-4a7d-b88c-1c1bb881d12a": {
"ai_outputParser": [
[
{
"node": "AI Agent",
"type": "ai_outputParser",
"index": 0
}
]
]
}
}
}Comment utiliser ce workflow ?
Copiez le code de configuration JSON ci-dessus, créez un nouveau workflow dans votre instance n8n et sélectionnez "Importer depuis le JSON", collez la configuration et modifiez les paramètres d'authentification selon vos besoins.
Dans quelles scénarios ce workflow est-il adapté ?
Avancé - Création de contenu, IA Multimodale
Est-ce payant ?
Ce workflow est entièrement gratuit et peut être utilisé directement. Veuillez noter que les services tiers utilisés dans le workflow (comme l'API OpenAI) peuvent nécessiter un paiement de votre part.
Workflows recommandés
Madame AI Team | Kai
@madame-aiI’m a PhD in Physics turned AI enthusiast, passionate about uncovering how AI is transforming content creation, business, and daily life.
Partager ce workflow