Automatisation Telegram avec n8n : création de fichiers Excel
- Ce workflow n8n a pour objectif d'automatiser la création de fichiers Excel à partir des messages reçus sur Telegram. Dans un contexte où la gestion des données est cruciale, notamment pour les équipes marketing ou de gestion de projet, ce processus permet de transformer des informations textuelles en un format structuré et facilement exploitable. Par exemple, une équipe peut recevoir des retours clients ou des suggestions via Telegram et les convertir automatiquement en un tableau Excel pour une analyse ultérieure.
- Le workflow commence par un déclencheur Telegram qui capte les messages entrants. Ensuite, il vérifie le contenu du message pour s'assurer qu'il répond à des critères spécifiques. Si le message est valide, il extrait les informations pertinentes et les divise en segments exploitables. Ces données sont ensuite envoyées à l'API Graph de Facebook pour une intégration supplémentaire, avant d'être formatées dans un tableau Excel. Une fois le fichier créé, il est envoyé directement au chat Telegram de l'utilisateur.
- Les bénéfices de cette automatisation n8n sont multiples : réduction du temps de traitement des données, minimisation des erreurs humaines lors de la saisie, et amélioration de la réactivité des équipes face aux retours clients. En intégrant ce type de workflow, les entreprises peuvent optimiser leur gestion de l'information et se concentrer sur des tâches à plus forte valeur ajoutée.
Workflow n8n Telegram, Google Sheets, gestion des données : vue d'ensemble
Schéma des nœuds et connexions de ce workflow n8n, généré à partir du JSON n8n.
Workflow n8n Telegram, Google Sheets, gestion des données : détail des nœuds
Inscris-toi pour voir l'intégralité du workflow
Inscription gratuite
S'inscrire gratuitementBesoin d'aide ?{
"meta": {
"instanceId": "ac9d33c4ed758aeca18fdf8990bc14f18826f99beb38fb06a023fa013ee39a0b"
},
"nodes": [
{
"id": "9cfeb58b-140f-4941-8442-4e33c671e325",
"name": "No Operation, do nothing",
"type": "n8n-nodes-base.noOp",
"position": [
440,
840
],
"parameters": {},
"typeVersion": 1
},
{
"id": "c4e7c596-4f2a-48e0-a932-ad40157c6282",
"name": "Get interest name",
"type": "n8n-nodes-base.telegramTrigger",
"position": [
100,
660
],
"webhookId": "3c85f114-6321-4e6d-9b5e-726e1493ee4e",
"parameters": {
"updates": [
"message"
],
"additionalFields": {}
},
"credentials": {
"telegramApi": {
"id": "JR5rQqmm6CGac5CF",
"name": "Sender Token"
}
},
"typeVersion": 1
},
{
"id": "69d432d1-4ab1-4059-af5c-ba589dfe16bc",
"name": "Check message contents",
"type": "n8n-nodes-base.if",
"position": [
280,
660
],
"parameters": {
"conditions": {
"number": [
{
"value1": "={{ $json.message.chat.id }}",
"value2": -1001805495093,
"operation": "equal"
}
],
"string": [
{
"value1": "={{ $json.message.text }}",
"value2": "#interest",
"operation": "startsWith"
}
]
}
},
"typeVersion": 1
},
{
"id": "345274b6-2d56-4d54-937a-dd9153fd1fdc",
"name": "Extract message",
"type": "n8n-nodes-base.code",
"position": [
460,
460
],
"parameters": {
"jsCode": "let inputData = items[0].json; // get the input data\nlet message = inputData.message; // replace 'message' with the correct field name\n\nlet messageContent = '';\n\nif (message && message.text) {\n messageContent = message.text;\n}\n\nreturn [\n {\n json: {\n messageContent: messageContent\n }\n }\n];\n"
},
"typeVersion": 2
},
{
"id": "cd808029-1a46-4fad-9065-c726960fb427",
"name": "Split Message",
"type": "n8n-nodes-base.code",
"position": [
660,
460
],
"parameters": {
"jsCode": "let inputData = items[0].json; // get the input data\nlet variableContent = String(inputData.messageContent || ''); // replace 'variable' with the correct field name, convert to string and assign empty string if undefined\n\nlet regex = /#(\\w+)\\b(.*)/; // regex to match hashtag word and rest of the content\nlet matches = regex.exec(variableContent);\n\nlet extractedContent = '';\nlet remainingContent = '';\n\nif (matches !== null) {\n extractedContent = matches[1];\n remainingContent = matches[2].trim();\n} else {\n remainingContent = variableContent.trim();\n}\n\nreturn [\n {\n json: {\n extractedContent: extractedContent,\n remainingContent: remainingContent }\n }\n];\n"
},
"typeVersion": 2
},
{
"id": "6f541faf-7756-415e-8391-5470166b8a01",
"name": "Connect to Graph API",
"type": "n8n-nodes-base.facebookGraphApi",
"position": [
840,
460
],
"parameters": {
"edge": "=",
"node": "=search?type=adinterest&q={{ $json.remainingContent }}\n&limit=1000000&locale=en_US ",
"options": {},
"graphApiVersion": "v17.0"
},
"credentials": {
"facebookGraphApi": {
"id": "AEVlPxPoTe92kkJS",
"name": "Facebook Graph account"
}
},
"typeVersion": 1
},
{
"id": "394a34ce-f56d-4a79-8fbb-f37681cbee76",
"name": "Split Interests into a Table",
"type": "n8n-nodes-base.code",
"position": [
1020,
460
],
"parameters": {
"jsCode": "let inputData = items[0].json; // get the input data\nlet outputData = [];\n\nfor(let key in inputData) {\n if(inputData.hasOwnProperty(key)) {\n let itemKey = key;\n let itemValue = inputData[key];\n \n for(let subKey in itemValue) {\n if(itemValue.hasOwnProperty(subKey)) {\n let formattedItem = {\n 'Item': itemKey,\n 'SubItem': subKey,\n 'Value': itemValue[subKey]\n };\n \n outputData.push({json: formattedItem});\n }\n }\n }\n}\n\nreturn outputData;"
},
"typeVersion": 2
},
{
"id": "1d3f66a4-322f-4398-b887-52ccd2f2f5fe",
"name": "Get variables",
"type": "n8n-nodes-base.code",
"position": [
1200,
460
],
"parameters": {
"jsCode": "let outputData = items.map(item => {\n let data = item.json.Value;\n \n return {\n json: {\n 'name': data.name,\n 'audience_size_lower_bound': data.audience_size_lower_bound,\n 'audience_size_upper_bound': data.audience_size_upper_bound,\n 'path': data.path,\n 'description': data.description,\n 'topic': data.topic\n }\n };\n});\n\nreturn outputData;"
},
"typeVersion": 2
},
{
"id": "082ddf0f-29ef-424a-a2a2-4bf9e260657f",
"name": "Create a Spreadsheet",
"type": "n8n-nodes-base.spreadsheetFile",
"position": [
1380,
460
],
"parameters": {
"options": {},
"operation": "toFile",
"fileFormat": "csv"
},
"typeVersion": 2
},
{
"id": "44e4f97a-cd86-4b60-b761-49dc46f7e36b",
"name": "Send the Spreadsheet file",
"type": "n8n-nodes-base.telegram",
"position": [
1560,
460
],
"parameters": {
"chatId": "-1001805495093",
"operation": "sendDocument",
"binaryData": true,
"additionalFields": {
"fileName": "report.csv"
}
},
"credentials": {
"telegramApi": {
"id": "JR5rQqmm6CGac5CF",
"name": "Sender Token"
}
},
"typeVersion": 1
},
{
"id": "22bc6129-7d10-46fd-98e2-0f3fc7a93344",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
800,
340
],
"parameters": {
"width": 948.6687115198118,
"height": 296.5325040542755,
"content": "## Facebook API\n\nTo get the API Key you need to follow these steps:\nhttps://developers.facebook.com/docs/commerce-platform/setup/api-setup/"
},
"typeVersion": 1
}
],
"pinData": {},
"connections": {
"Get variables": {
"main": [
[
{
"node": "Create a Spreadsheet",
"type": "main",
"index": 0
}
]
]
},
"Split Message": {
"main": [
[
{
"node": "Connect to Graph API",
"type": "main",
"index": 0
}
]
]
},
"Extract message": {
"main": [
[
{
"node": "Split Message",
"type": "main",
"index": 0
}
]
]
},
"Get interest name": {
"main": [
[
{
"node": "Check message contents",
"type": "main",
"index": 0
}
]
]
},
"Connect to Graph API": {
"main": [
[
{
"node": "Split Interests into a Table",
"type": "main",
"index": 0
}
]
]
},
"Create a Spreadsheet": {
"main": [
[
{
"node": "Send the Spreadsheet file",
"type": "main",
"index": 0
}
]
]
},
"Check message contents": {
"main": [
[
{
"node": "Extract message",
"type": "main",
"index": 0
}
],
[
{
"node": "No Operation, do nothing",
"type": "main",
"index": 0
}
]
]
},
"Split Interests into a Table": {
"main": [
[
{
"node": "Get variables",
"type": "main",
"index": 0
}
]
]
}
}
}Workflow n8n Telegram, Google Sheets, gestion des données : pour qui est ce workflow ?
Ce workflow s'adresse aux équipes marketing, aux gestionnaires de projet et aux entreprises qui utilisent Telegram pour la communication. Il est idéal pour les organisations de taille petite à moyenne qui cherchent à automatiser la gestion de leurs données sans nécessiter de compétences techniques avancées.
Workflow n8n Telegram, Google Sheets, gestion des données : problème résolu
Ce workflow résout le problème de la gestion manuelle des données reçues via Telegram, qui peut être chronophage et sujet à des erreurs. En automatisant le processus de création de fichiers Excel, il élimine les frustrations liées à la saisie manuelle et réduit le risque de perte d'informations importantes. Les utilisateurs bénéficient ainsi d'une solution rapide et efficace pour transformer des messages en données exploitables.
Workflow n8n Telegram, Google Sheets, gestion des données : étapes du workflow
Étape 1 : Le workflow est déclenché par un message reçu sur Telegram.
- Étape 1 : Le contenu du message est vérifié pour s'assurer qu'il répond aux critères définis.
- Étape 2 : Les informations pertinentes sont extraites et segmentées pour une meilleure organisation.
- Étape 3 : Les données sont envoyées à l'API Graph de Facebook pour une intégration supplémentaire.
- Étape 4 : Un tableau Excel est créé avec les données extraites.
- Étape 5 : Le fichier Excel est envoyé au chat Telegram de l'utilisateur.
Workflow n8n Telegram, Google Sheets, gestion des données : guide de personnalisation
Pour personnaliser ce workflow, vous pouvez modifier le déclencheur Telegram en ajustant les paramètres de réception des messages. Vous pouvez également adapter le code dans les noeuds d'extraction et de segmentation des messages pour répondre à vos besoins spécifiques. Si vous souhaitez intégrer d'autres services, comme Google Sheets, vous pouvez ajouter des noeuds supplémentaires pour effectuer des opérations sur les données. Assurez-vous de sécuriser le flux en configurant correctement les autorisations d'accès aux API utilisées.