Livraison automatisée de quiz et suivi des statuts depuis Google Sheets vers Telegram
Intermédiaire
Ceci est unSocial Media, Multimodal AIworkflow d'automatisation du domainecontenant 13 nœuds.Utilise principalement des nœuds comme If, Set, Code, Telegram, HttpRequest. de Google Sheets à Telegram deautomatisation测验交付与状态跟踪
Prérequis
- •Token Bot Telegram
- •Peut nécessiter les informations d'identification d'authentification de l'API cible
- •Informations d'identification Google Sheets API
Nœuds utilisés (13)
Catégorie
Aperçu du workflow
Visualisation des connexions entre les nœuds, avec support du zoom et du déplacement
Exporter le workflow
Copiez la configuration JSON suivante dans n8n pour importer et utiliser ce workflow
{
"meta": {
"instanceId": "c5e931c455fcffaf668d434579b8144a682ba36c13be12948f5ddd388753d54c"
},
"nodes": [
{
"id": "56689bfc-a856-463e-bf85-53dde3ddd928",
"name": "Lire les données du quiz",
"type": "n8n-nodes-base.googleSheets",
"notes": "Read all quiz rows from Google Sheets",
"position": [
-768,
240
],
"parameters": {
"options": {},
"sheetName": "Sheet1",
"documentId": "<<<YOUR_SHEET_ID>>>"
},
"typeVersion": 4
},
{
"id": "dec9e4a5-2815-4a95-a148-94d22f00cfea",
"name": "Filtrer les quiz en attente",
"type": "n8n-nodes-base.code",
"notes": "Keep only the earliest pending quiz (🟨). If none, pass a marker item.",
"position": [
-448,
240
],
"parameters": {
"jsCode": "// Filter for pending quizzes (🟨) and pick the lowest quiz_number\nconst items = $input.all();\nconst pending = items.filter(i => i.json.status && i.json.status === '🟨');\nif (pending.length) {\n pending.sort((a,b) => parseInt(a.json.quiz_number) - parseInt(b.json.quiz_number));\n return [pending[0]];\n}\nreturn [{ json: { message: 'not exist' } }];\n"
},
"typeVersion": 2
},
{
"id": "807289e3-a0e7-4750-b3f2-9d39fe20fee3",
"name": "Vérifier l'existence du quiz",
"type": "n8n-nodes-base.if",
"notes": "If status exists (i.e., a real quiz row), send the poll; else send a refill notice.",
"position": [
-192,
240
],
"parameters": {
"options": {},
"conditions": {
"options": {
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "dfdcc097-994d-4e6d-ac8b-9ef226a37ee1",
"operator": {
"type": "string",
"operation": "exists",
"singleValue": true
},
"leftValue": "={{ $json.status }}"
}
]
}
},
"typeVersion": 2
},
{
"id": "3eadd4a7-7658-4f4e-89dc-3722d2e37c5d",
"name": "Envoyer le sondage Telegram",
"type": "n8n-nodes-base.httpRequest",
"notes": "Calls Telegram sendPoll. Set TELEGRAM_BOT_TOKEN and TELEGRAM_CHAT_ID as env vars.",
"position": [
112,
112
],
"parameters": {
"url": "https://api.telegram.org/bot{{ $env.TELEGRAM_BOT_TOKEN }}/sendPoll",
"method": "POST",
"options": {},
"sendQuery": true,
"queryParameters": {
"parameters": [
{
"name": "chat_id",
"value": "={{ $env.TELEGRAM_CHAT_ID }}"
},
{
"name": "question",
"value": "={{ $json.question }}"
},
{
"name": "options",
"value": "=[\"{{ $json.option_a }}\", \"{{ $json.option_b }}\", \"{{ $json.option_c }}\", \"{{ $json.option_d }}\"]"
}
]
}
},
"typeVersion": 4.1
},
{
"id": "c48ba649-d2ea-41ff-8574-4d02039f21f7",
"name": "Préparer la mise à jour du statut",
"type": "n8n-nodes-base.set",
"notes": "Set the new status and include the quiz_number for matching.",
"position": [
352,
0
],
"parameters": {
"fields": {
"values": [
{
"name": "status",
"stringValue": "✅"
},
{
"name": "quiz_number",
"stringValue": "={{ $('Read Quiz Data').item.json.quiz_number }}"
}
]
},
"include": "selected",
"options": {}
},
"typeVersion": 3.2
},
{
"id": "ce67a494-ff14-4b9c-9f9f-8b047d58c8ee",
"name": "Notifier l'absence de quiz (Telegram)",
"type": "n8n-nodes-base.telegram",
"notes": "Sends a message if no pending quiz exists. Provide TELEGRAM_NOTIFY_CHAT_ID.",
"position": [
352,
320
],
"webhookId": "1b8bcd70-16eb-4e81-a0dd-aee8f847bd9e",
"parameters": {
"text": "⚠️ No pending quiz found in Google Sheet. Please refill.",
"chatId": "={{ $env.TELEGRAM_NOTIFY_CHAT_ID }}",
"additionalFields": {
"appendAttribution": false
}
},
"typeVersion": 1.1
},
{
"id": "f949b91d-aa8b-4453-bc49-5cb21befc1b3",
"name": "Mettre à jour le statut du quiz",
"type": "n8n-nodes-base.googleSheets",
"notes": "Update the row that matches quiz_number, setting status to ✅.",
"position": [
560,
64
],
"parameters": {
"columns": {
"mappingMode": "autoMapInputData",
"matchingColumns": [
"quiz_number"
]
},
"options": {},
"operation": "update",
"sheetName": "Sheet1",
"documentId": "<<<YOUR_SHEET_ID>>>"
},
"typeVersion": 4
},
{
"id": "7175b83d-7483-484e-8ddd-6e6d63b409f5",
"name": "Note adhésive 1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-912,
48
],
"parameters": {
"color": 7,
"width": 368,
"height": 432,
"content": "## Note\n**Create the sheet with this headers**. \nquiz_number,\tquestion,\toption_a,\toption_b,\toption_c,\toption_d,\nstatus,"
},
"typeVersion": 1
},
{
"id": "19b16b1c-1bdd-495d-acfa-fbb25fcd025f",
"name": "Note adhésive",
"type": "n8n-nodes-base.stickyNote",
"position": [
-528,
48
],
"parameters": {
"color": 2,
"width": 288,
"height": 432,
"content": "Filters rows marked 🟨 and selects the earliest quiz by number."
},
"typeVersion": 1
},
{
"id": "6efd2557-da1d-4b98-a15e-111fb61a6561",
"name": "Note adhésive 2",
"type": "n8n-nodes-base.stickyNote",
"position": [
-224,
48
],
"parameters": {
"color": 4,
"width": 288,
"height": 432,
"content": "Branches depending on whether a pending quiz was found."
},
"typeVersion": 1
},
{
"id": "26069e47-cfb6-4947-878e-2f6a0a927ec0",
"name": "Note adhésive 3",
"type": "n8n-nodes-base.stickyNote",
"position": [
80,
-16
],
"parameters": {
"color": 5,
"width": 192,
"height": 496,
"content": "Sends the quiz as a poll to the group via Telegram Bot API."
},
"typeVersion": 1
},
{
"id": "8b424c6d-6733-467f-93f5-f6380381dce8",
"name": "Note adhésive 4",
"type": "n8n-nodes-base.stickyNote",
"position": [
528,
-16
],
"parameters": {
"color": 7,
"width": 192,
"height": 496,
"content": "Marks the quiz row as ✅ to prevent re-sending."
},
"typeVersion": 1
},
{
"id": "c1057db4-4926-41b7-a0e0-d36aaf3cbc61",
"name": "Note adhésive 5",
"type": "n8n-nodes-base.stickyNote",
"position": [
304,
176
],
"parameters": {
"color": 5,
"width": 192,
"height": 304,
"content": "Alerts admins if no pending quiz is available."
},
"typeVersion": 1
}
],
"pinData": {},
"connections": {
"56689bfc-a856-463e-bf85-53dde3ddd928": {
"main": [
[
{
"node": "dec9e4a5-2815-4a95-a148-94d22f00cfea",
"type": "main",
"index": 0
}
]
]
},
"807289e3-a0e7-4750-b3f2-9d39fe20fee3": {
"main": [
[
{
"node": "3eadd4a7-7658-4f4e-89dc-3722d2e37c5d",
"type": "main",
"index": 0
}
],
[
{
"node": "ce67a494-ff14-4b9c-9f9f-8b047d58c8ee",
"type": "main",
"index": 0
}
]
]
},
"3eadd4a7-7658-4f4e-89dc-3722d2e37c5d": {
"main": [
[
{
"node": "c48ba649-d2ea-41ff-8574-4d02039f21f7",
"type": "main",
"index": 0
}
]
]
},
"dec9e4a5-2815-4a95-a148-94d22f00cfea": {
"main": [
[
{
"node": "807289e3-a0e7-4750-b3f2-9d39fe20fee3",
"type": "main",
"index": 0
}
]
]
},
"c48ba649-d2ea-41ff-8574-4d02039f21f7": {
"main": [
[
{
"node": "f949b91d-aa8b-4453-bc49-5cb21befc1b3",
"type": "main",
"index": 0
}
]
]
}
}
}Foire aux questions
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é ?
Intermédiaire - Réseaux sociaux, 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
Éditeur de publications X (Twitter) et Meta Threads
Publication automatique de contenu optimisé pour la plateforme sur X et Threads avec Late API et Google Sheets
If
Set
Code
+
If
Set
Code
20 NœudsFariez
Réseaux sociaux
Réplicateur automatique Telegram
Copie et traduction automatiques du contenu des chaînes Telegram basées sur GPT-4o-mini
If
Set
Code
+
If
Set
Code
19 NœudsShohani
Réseaux sociaux
Notificateur de mises à jour de menu alimentaire via WhatsApp, e-mail et Twilio SMS
Notificateur de mise à jour de menus alimentaires
If
Set
Code
+
If
Set
Code
22 NœudsOneclick AI Squad
Réseaux sociaux
✨🩷 Usine automatisée de publication de contenu pour les médias sociaux + combinaison de invites système
Utiliser GPT-4o pour générer du contenu optimisé pour les plateformes pour 6 plateformes
If
Set
Code
+
If
Set
Code
100 NœudsLuan Correia
Réseaux sociaux
Usine de contenu LinkedIn (avec recherche OpenAI et génération d'images de marque)
Usine de contenu LinkedIn, intégrant la recherche OpenAI et la génération d'images de marque Replicate
If
Set
Code
+
If
Set
Code
23 NœudsOnur
Réseaux sociaux
Création et téléchargement de vidéos AI vers Instagram, TikTok et YouTube
Création de vidéos pilotée par l'IA depuis Google Drive, téléchargement sur Instagram, TikTok et YouTube
If
Set
Code
+
If
Set
Code
53 NœudsDevCode Journey
Création de contenu
Informations sur le workflow
Niveau de difficulté
Intermédiaire
Nombre de nœuds13
Catégorie2
Types de nœuds7
Description de la difficulté
Auteur
Ninja
@abbas-ghaziLiens externes
Voir sur n8n.io →
Partager ce workflow