Automatización de la gestión de solicitudes de ayuda de ONG usando Telegram, GPT-4 y Google Sheets

Intermedio

Este es unTicket Management, AI Chatbotflujo de automatización del dominio deautomatización que contiene 12 nodos.Utiliza principalmente nodos como Set, Switch, Telegram, GoogleSheets, Agent. Automatización de la gestión de solicitudes de ayuda para ONGs con Telegram, GPT-4 y Google Sheets

Requisitos previos
  • Bot Token de Telegram
  • Credenciales de API de Google Sheets
  • Clave de API de OpenAI
Vista previa del flujo de trabajo
Visualización de las conexiones entre nodos, con soporte para zoom y panorámica
Exportar flujo de trabajo
Copie la siguiente configuración JSON en n8n para importar y usar este flujo de trabajo
{
  "id": "PvcEnJDre7QTh3Xy",
  "meta": {
    "instanceId": "9eff06f9794a5c6da9f8bedd7572cd2897d884c2b43f32b8368bd92e03c34228",
    "templateCredsSetupCompleted": true
  },
  "name": "Automate NGO Aid Request Management with Telegram, GPT-4, and Google Sheets",
  "tags": [],
  "nodes": [
    {
      "id": "e93ae817-3f4b-49dc-8fe8-821170633c69",
      "name": "Disparador de Telegram",
      "type": "n8n-nodes-base.telegramTrigger",
      "position": [
        80,
        -80
      ],
      "webhookId": "e344c7c7-dd4b-48e7-86fa-f0e00fd12c96",
      "parameters": {
        "updates": [
          "message"
        ],
        "additionalFields": {}
      },
      "credentials": {
        "telegramApi": {
          "id": "eQGhTntXIBs9WNlc",
          "name": "Telegram DigiSteps1_bot message"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "56283c02-e027-47c0-94ab-02745a082f80",
      "name": "Route Message Type",
      "type": "n8n-nodes-base.switch",
      "position": [
        240,
        -80
      ],
      "parameters": {
        "rules": {
          "values": [
            {
              "outputKey": "Text",
              "conditions": {
                "options": {
                  "version": 2,
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "id": "dc5471a7-7a28-43e7-8666-1842cba51c95",
                    "operator": {
                      "type": "string",
                      "operation": "exists",
                      "singleValue": true
                    },
                    "leftValue": "={{ $json.message.text }}",
                    "rightValue": ""
                  }
                ]
              },
              "renameOutput": true
            },
            {
              "outputKey": "Audio",
              "conditions": {
                "options": {
                  "version": 2,
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "id": "4a94e9ac-99ac-4187-b7d3-6de1a71506dc",
                    "operator": {
                      "type": "string",
                      "operation": "exists",
                      "singleValue": true
                    },
                    "leftValue": "={{ $json.message.voice.file_id }}",
                    "rightValue": ""
                  }
                ]
              },
              "renameOutput": true
            }
          ]
        },
        "options": {}
      },
      "typeVersion": 3.2
    },
    {
      "id": "10c260a8-4987-42ec-bca2-b3192147b702",
      "name": "Fetch Audio File",
      "type": "n8n-nodes-base.telegram",
      "position": [
        380,
        60
      ],
      "webhookId": "51579376-9e38-4c43-b726-59b60458cb4d",
      "parameters": {
        "fileId": "={{ $json.message.voice.file_id }}",
        "resource": "file"
      },
      "credentials": {
        "telegramApi": {
          "id": "eQGhTntXIBs9WNlc",
          "name": "Telegram DigiSteps1_bot message"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "950d8c4e-1f99-40cc-8434-f54693806d0f",
      "name": "Transcribe Voice Message",
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "position": [
        540,
        60
      ],
      "parameters": {
        "options": {},
        "resource": "audio",
        "operation": "transcribe"
      },
      "credentials": {
        "openAiApi": {
          "id": "I2N5Mx7hiecxYcpu",
          "name": "OpenAi account"
        }
      },
      "typeVersion": 1.8
    },
    {
      "id": "38ebb5b9-d13f-4587-8717-42f324ef74e2",
      "name": "Extract Text Message",
      "type": "n8n-nodes-base.set",
      "position": [
        460,
        -180
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "d7c9be19-c1c4-4287-ac0e-7a2be9732a51",
              "name": "text",
              "type": "string",
              "value": "={{ $json.message.text }}"
            }
          ]
        }
      },
      "typeVersion": 3.4,
      "alwaysOutputData": false
    },
    {
      "id": "59a1eb8b-38f3-478f-8a71-3990cf2df204",
      "name": "Agente IA",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        840,
        -100
      ],
      "parameters": {
        "text": "= here is request from beneficiary: {{ $json.text }}",
        "options": {
          "systemMessage": "You are the NGO TPM team leader. The user has requested help. Categorize the request, and please suggest an action for the TPM team to take\nاكتب دائماً باللغة العربية\nThe output should be like\n{\n  \"category\": \"مشكلة في توزيع المساعدات\",\n  \"action\": \"التواصل مع فرق التوزيع للتحقق من سبب عدم وصول المساعدات إلى القرية والتأكد من الإجراءات اللازمة لحل المشكلة.\"\n}\n\n\n"
        },
        "promptType": "define",
        "hasOutputParser": true
      },
      "typeVersion": 1.9
    },
    {
      "id": "3c9aaed8-6956-4bd4-89a0-610e7e4e2982",
      "name": "Modelo de chat OpenAI",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        840,
        120
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4o-mini"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "id": "I2N5Mx7hiecxYcpu",
          "name": "OpenAi account"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "c66af39a-150f-4a37-92dc-601e5b3879a5",
      "name": "Send Confirmation Message",
      "type": "n8n-nodes-base.telegram",
      "position": [
        1640,
        -80
      ],
      "webhookId": "0b6bd34e-c586-4cef-a6b0-da7a55a5b7ca",
      "parameters": {
        "text": "=تم استقبال طلبك انه هنالك {{ $('AI Agent').item.json.output.category }}",
        "chatId": "={{ $('Telegram Trigger').item.json.message.chat.id }}",
        "additionalFields": {
          "appendAttribution": false
        }
      },
      "credentials": {
        "telegramApi": {
          "id": "eQGhTntXIBs9WNlc",
          "name": "Telegram DigiSteps1_bot message"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "625e6f44-7bbe-416b-9912-9b8fc3545f89",
      "name": "Save Audio Request to Sheet",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        1440,
        -200
      ],
      "parameters": {
        "columns": {
          "value": {
            "ID": "={{ $('Telegram Trigger').item.json.message.message_id }}",
            "action": "={{ $json.output.action }}",
            "category": "={{ $json.output.category }}\n",
            "last name": "={{ $('Telegram Trigger').item.json.message.chat.last_name }}",
            "First name": "={{ $('Telegram Trigger').item.json.message.chat.first_name }}",
            "Transcription": "={{ $('Transcribe Voice Message').item.json.text }}",
            "Telegram User Name": "={{ $('Telegram Trigger').item.json.message.chat.username }}"
          },
          "schema": [
            {
              "id": "ID",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "ID",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Text",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "Text",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Transcription",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Transcription",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "category",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "category",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "action",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "action",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "First name",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "First name",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "last name",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "last name",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Telegram User Name",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Telegram User Name",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "ID"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "appendOrUpdate",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1JKCLCjfm3xIFg5YH0EH9qK4W69jjeX673dFxaHfVRzo/edit#gid=0",
          "cachedResultName": "Sheet1"
        },
        "documentId": {
          "__rl": true,
          "mode": "url",
          "value": "https://docs.google.com/spreadsheets/d/1JKCLCjfm3xIFg5YH0EH9qK4W69jjeX673dFxaHfVRzo/edit?usp=sharing"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "KtYF0aYlnYbm8XkV",
          "name": "Google Sheets account"
        }
      },
      "typeVersion": 4.5
    },
    {
      "id": "7d7b8310-c0cf-433c-932f-97219f37bec3",
      "name": "Structured Output Parser",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        1020,
        120
      ],
      "parameters": {
        "jsonSchemaExample": "{\n  \"category\": \"مشكلة في توزيع المساعدات\",\n  \"action\": \"التواصل مع فرق التوزيع للتحقق من سبب عدم وصول المساعدات إلى القرية والتأكد من الإجراءات اللازمة لحل المشكلة.\"\n}\n"
      },
      "typeVersion": 1.2
    },
    {
      "id": "ab338a5f-51ac-4ebc-a668-59ddec459d9b",
      "name": "Route to Appropriate Sheet",
      "type": "n8n-nodes-base.switch",
      "position": [
        1200,
        -100
      ],
      "parameters": {
        "rules": {
          "values": [
            {
              "outputKey": "Audio",
              "conditions": {
                "options": {
                  "version": 2,
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "id": "5b7518a8-578a-4fd6-8240-0b72f073ca76",
                    "operator": {
                      "type": "string",
                      "operation": "exists",
                      "singleValue": true
                    },
                    "leftValue": "={{ $('Telegram Trigger').item.json.message.voice.file_id }}",
                    "rightValue": ""
                  }
                ]
              },
              "renameOutput": true
            },
            {
              "outputKey": "Text",
              "conditions": {
                "options": {
                  "version": 2,
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "id": "def32c5a-8ffc-46a1-9e2f-68d161eb5436",
                    "operator": {
                      "type": "string",
                      "operation": "exists",
                      "singleValue": true
                    },
                    "leftValue": "={{ $('Telegram Trigger').item.json.message.text }}",
                    "rightValue": ""
                  }
                ]
              },
              "renameOutput": true
            }
          ]
        },
        "options": {}
      },
      "typeVersion": 3.2
    },
    {
      "id": "06ef0f7b-63a3-4427-a2a5-1d059a54ebc4",
      "name": "Save Text Request to Sheet",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        1440,
        -20
      ],
      "parameters": {
        "columns": {
          "value": {
            "ID": "={{ $('Telegram Trigger').item.json.message.message_id }}",
            "Text": "={{ $('Telegram Trigger').item.json.message.text }}",
            "action": "={{ $json.output.action }}",
            "category": "={{ $json.output.category }}\n",
            "last name": "={{ $('Telegram Trigger').item.json.message.chat.last_name }}",
            "First name": "={{ $('Telegram Trigger').item.json.message.chat.first_name }}",
            "Telegram User Name": "={{ $('Telegram Trigger').item.json.message.chat.username }}"
          },
          "schema": [
            {
              "id": "ID",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "ID",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Text",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Text",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Transcription",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "Transcription",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "category",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "category",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "action",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "action",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "First name",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "First name",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "last name",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "last name",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Telegram User Name",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Telegram User Name",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "ID"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "appendOrUpdate",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1JKCLCjfm3xIFg5YH0EH9qK4W69jjeX673dFxaHfVRzo/edit#gid=0",
          "cachedResultName": "Sheet1"
        },
        "documentId": {
          "__rl": true,
          "mode": "url",
          "value": "https://docs.google.com/spreadsheets/d/1JKCLCjfm3xIFg5YH0EH9qK4W69jjeX673dFxaHfVRzo/edit?usp=sharing"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "KtYF0aYlnYbm8XkV",
          "name": "Google Sheets account"
        }
      },
      "typeVersion": 4.5
    }
  ],
  "active": true,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "b3d1915c-e70f-491a-b9d9-736820d48adf",
  "connections": {
    "AI Agent": {
      "main": [
        [
          {
            "node": "ab338a5f-51ac-4ebc-a668-59ddec459d9b",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "10c260a8-4987-42ec-bca2-b3192147b702": {
      "main": [
        [
          {
            "node": "950d8c4e-1f99-40cc-8434-f54693806d0f",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Telegram Trigger": {
      "main": [
        [
          {
            "node": "56283c02-e027-47c0-94ab-02745a082f80",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "AI Agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "56283c02-e027-47c0-94ab-02745a082f80": {
      "main": [
        [
          {
            "node": "38ebb5b9-d13f-4587-8717-42f324ef74e2",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "10c260a8-4987-42ec-bca2-b3192147b702",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "38ebb5b9-d13f-4587-8717-42f324ef74e2": {
      "main": [
        [
          {
            "node": "AI Agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "7d7b8310-c0cf-433c-932f-97219f37bec3": {
      "ai_outputParser": [
        [
          {
            "node": "AI Agent",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "950d8c4e-1f99-40cc-8434-f54693806d0f": {
      "main": [
        [
          {
            "node": "AI Agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "ab338a5f-51ac-4ebc-a668-59ddec459d9b": {
      "main": [
        [
          {
            "node": "625e6f44-7bbe-416b-9912-9b8fc3545f89",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "06ef0f7b-63a3-4427-a2a5-1d059a54ebc4",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "06ef0f7b-63a3-4427-a2a5-1d059a54ebc4": {
      "main": [
        [
          {
            "node": "c66af39a-150f-4a37-92dc-601e5b3879a5",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "625e6f44-7bbe-416b-9912-9b8fc3545f89": {
      "main": [
        [
          {
            "node": "c66af39a-150f-4a37-92dc-601e5b3879a5",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
Preguntas frecuentes

¿Cómo usar este flujo de trabajo?

Copie el código de configuración JSON de arriba, cree un nuevo flujo de trabajo en su instancia de n8n y seleccione "Importar desde JSON", pegue la configuración y luego modifique la configuración de credenciales según sea necesario.

¿En qué escenarios es adecuado este flujo de trabajo?

Intermedio - Gestión de tickets, Chatbot de IA

¿Es de pago?

Este flujo de trabajo es completamente gratuito, puede importarlo y usarlo directamente. Sin embargo, tenga en cuenta que los servicios de terceros utilizados en el flujo de trabajo (como la API de OpenAI) pueden requerir un pago por su cuenta.

Información del flujo de trabajo
Nivel de dificultad
Intermedio
Número de nodos12
Categoría2
Tipos de nodos9
Descripción de la dificultad

Adecuado para usuarios con experiencia intermedia, flujos de trabajo de complejidad media con 6-15 nodos

Autor
Abdulrahman Alhalabi

Abdulrahman Alhalabi

@alhalabi

A AI Flowgramer

Enlaces externos
Ver en n8n.io

Compartir este flujo de trabajo

Categorías

Categorías: 34