Automatización de informes de defectos con Gemini AI: Jotform a GitHub y alertas por Telegram
Este es unautomatización que contiene 10 nodos.Utiliza principalmente nodos como Code, Telegram, GithubTool, GoogleSheets, JotFormTrigger. Automatización de informes de defectos con Gemini AI: Jotform a GitHub y envío de recordatorios por Telegram
- •Bot Token de Telegram
- •Personal Access Token de GitHub
- •Credenciales de API de Google Sheets
- •Clave de API de Google Gemini
Nodos utilizados (10)
Categoría
{
"meta": {
"instanceId": "93f396852104089b8670e7494b0f3668b420464668ae4a8c1d6b4b5799f8e3ef"
},
"nodes": [
{
"id": "50464290-3352-49d8-a055-af7d43754ef7",
"name": "Enviar un mensaje de texto",
"type": "n8n-nodes-base.telegram",
"position": [
832,
560
],
"webhookId": "7add611a-f26c-46ad-8a55-6ffe044d10cd",
"parameters": {
"text": "={{ $json.message }}",
"chatId": "enter-your-chat-id",
"additionalFields": {
"appendAttribution": false
}
},
"credentials": {
"telegramApi": {
"id": "SswL7VO9b2dPGZ8r",
"name": "jobaibot"
}
},
"typeVersion": 1.2
},
{
"id": "0a0a55fe-d075-482a-baca-cd64cc8c207e",
"name": "Activador de JotForm",
"type": "n8n-nodes-base.jotFormTrigger",
"position": [
-240,
560
],
"webhookId": "9a85ab7e-20a4-47f2-ac30-119563a0b22c",
"parameters": {
"form": "252865896233066",
"onlyAnswers": false
},
"credentials": {
"jotFormApi": {
"id": "4612J1BsqtC505ac",
"name": "secondary"
}
},
"typeVersion": 1
},
{
"id": "66f6ed0c-2263-4e75-8265-c8ee563e2205",
"name": "Agente de IA",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
16,
560
],
"parameters": {
"text": "=1. Firstly read the user submitted bug description from the below content:\n\n{{ $json.rawRequest['Bug Description'] }}\n\n2. Then secondly check whether the bug is already created in github repo or not for that use the tool named \"Get issues of a repository in GitHub\" and just check whethere the bug is already listed or not based on the context.\n\n3. If that particular issue is not there in github repo then simply create a new issue with appropiate names and for that just use the tool named \"Create an issue in GitHub\".\n\n4. And then only after following these above 3 steps above and then give output only in JSON with appropiate details:\n\nexample output:\n{\n \"issue_name\": \"UI Freeze on Back Navigation from Settings to Home\",\n \"issue_description\": \"A critical navigation bug occurs when a user attempts to return to the Home screen from the Settings screen. Upon initiating the back navigation action, the application's view transitions to the Home screen, but the user interface becomes completely unresponsive. All interactive elements fail to register any input, effectively trapping the user on a frozen Home screen and necessitating a full application restart to restore functionality.\",\n \"present_in_github\": false\n}",
"options": {},
"promptType": "define",
"hasOutputParser": true
},
"typeVersion": 2.2
},
{
"id": "663dd67a-bfff-4d6b-8792-c285a65f4747",
"name": "Obtener incidencias de un repositorio en GitHub",
"type": "n8n-nodes-base.githubTool",
"position": [
0,
816
],
"webhookId": "94b33202-124c-418c-a040-f86b7ba04075",
"parameters": {
"owner": {
"__rl": true,
"mode": "url",
"value": "="
},
"resource": "repository",
"repository": {
"__rl": true,
"mode": "url",
"value": "="
},
"getRepositoryIssuesFilters": {}
},
"credentials": {
"githubApi": {
"id": "pCtsjSJXJxiMp1uG",
"name": "GitHub account"
}
},
"typeVersion": 1.1
},
{
"id": "de299064-b480-4b29-9f33-68a002531bad",
"name": "Google Gemini Modelo de Chat",
"type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
"position": [
-176,
832
],
"parameters": {
"options": {}
},
"credentials": {
"googlePalmApi": {
"id": "qsaK3VMNWQDWLweQ",
"name": "Google Gemini(PaLM) Api account"
}
},
"typeVersion": 1
},
{
"id": "e2d56ba4-fd1b-4510-95da-20e2535fb766",
"name": "Crear una incidencia en GitHub",
"type": "n8n-nodes-base.githubTool",
"position": [
176,
816
],
"webhookId": "71e184d6-29ff-4088-a6ca-bc068c48c912",
"parameters": {
"body": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Body', ``, 'string') }}",
"owner": {
"__rl": true,
"mode": "url",
"value": "="
},
"title": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Title', ``, 'string') }}",
"labels": [],
"assignees": [],
"repository": {
"__rl": true,
"mode": "url",
"value": "="
}
},
"credentials": {
"githubApi": {
"id": "pCtsjSJXJxiMp1uG",
"name": "GitHub account"
}
},
"typeVersion": 1.1
},
{
"id": "bf1272a6-7ba4-4939-b984-4d328420eb94",
"name": "Analizador de Salida Estructurada",
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"position": [
336,
832
],
"parameters": {
"jsonSchemaExample": "{\n \"issue_name\": \"UI Freeze on Back Navigation from Settings to Home\",\n \"issue_description\": \"A critical navigation bug occurs when a user attempts to return to the Home screen from the Settings screen. Upon initiating the back navigation action, the application's view transitions to the Home screen, but the user interface becomes completely unresponsive. All interactive elements fail to register any input, effectively trapping the user on a frozen Home screen and necessitating a full application restart to restore functionality.\",\n \"present_in_github\": false\n}"
},
"typeVersion": 1.3
},
{
"id": "3b1f6ac3-c695-48cf-aef9-90f00224bec4",
"name": "Añadir o actualizar fila en hoja",
"type": "n8n-nodes-base.googleSheets",
"position": [
400,
560
],
"parameters": {
"columns": {
"value": {
"id": "={{ $('JotForm Trigger').item.json.submissionID }}",
"email": "={{ $('JotForm Trigger').item.json.rawRequest['Your Email Address'] }}",
"issue": "={{ $json.output.issue_description }}",
"Full name": "={{ $('JotForm Trigger').item.json.rawRequest['Your Name'].first }} {{ $('JotForm Trigger').item.json.rawRequest['Your Name'].last }}",
"present_in_github?": "={{ $json.output.present_in_github }}"
},
"schema": [
{
"id": "id",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "id",
"defaultMatch": true,
"canBeUsedToMatch": true
},
{
"id": "Full name",
"type": "string",
"display": true,
"required": false,
"displayName": "Full name",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "email",
"type": "string",
"display": true,
"required": false,
"displayName": "email",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "issue",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "issue",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "present_in_github?",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "present_in_github?",
"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/1WhQv-pyvnN4-j2hvH7DgYXSS3BZKrCLZlzV2a3eVJAw/edit#gid=0",
"cachedResultName": "Sheet1"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1WhQv-pyvnN4-j2hvH7DgYXSS3BZKrCLZlzV2a3eVJAw",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1WhQv-pyvnN4-j2hvH7DgYXSS3BZKrCLZlzV2a3eVJAw/edit?usp=drivesdk",
"cachedResultName": "Github user submitted BUGS log"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "vemTjHgIvPJgj9C5",
"name": "Google Sheets account"
}
},
"typeVersion": 4.7
},
{
"id": "6f5df4f5-563c-4d8b-ae1f-fede2b464754",
"name": "Código en JavaScript",
"type": "n8n-nodes-base.code",
"position": [
608,
560
],
"parameters": {
"jsCode": "const item = items[0];\n\nconst issueDetails = item.json.issue;\nconst isPresentOnGithub = item.json['present_in_github?'];\n\nlet message = `An user submitted an issue....\\n\\n**Issue:** \"${issueDetails}\"\\n\\n`;\n\nif (isPresentOnGithub) {\n message += \"✅ You don't need to do anything regarding this, as the issue is already reported on GitHub.\";\n} else {\n message += \"❗ Please look into this. The issue has just been created in our GitHub repo, so take your time to review and fix it.\";\n}\n\nitem.json.message = message;\n\nreturn item;"
},
"typeVersion": 2
},
{
"id": "aaafdc7e-0b25-471b-8ae5-eaca969d9994",
"name": "Nota Adhesiva",
"type": "n8n-nodes-base.stickyNote",
"position": [
-320,
224
],
"parameters": {
"width": 1360,
"height": 768,
"content": "This workflow automates the process of handling bug reports submitted through a form, from checking for duplicates on GitHub to logging the report and sending a notification.\n\n---\nA bug report is submitted via a JotForm, initiating the workflow.\n\nAn AI agent checks for duplicates on GitHub, creating a new issue if the bug is unique.\n\nThe form submission and the AI's analysis are logged in a Google Sheet for record-keeping.\n\nA dynamic notification is sent to a Telegram chat, alerting the team to the new or existing issue."
},
"typeVersion": 1
}
],
"pinData": {},
"connections": {
"66f6ed0c-2263-4e75-8265-c8ee563e2205": {
"main": [
[
{
"node": "3b1f6ac3-c695-48cf-aef9-90f00224bec4",
"type": "main",
"index": 0
}
]
]
},
"0a0a55fe-d075-482a-baca-cd64cc8c207e": {
"main": [
[
{
"node": "66f6ed0c-2263-4e75-8265-c8ee563e2205",
"type": "main",
"index": 0
}
]
]
},
"6f5df4f5-563c-4d8b-ae1f-fede2b464754": {
"main": [
[
{
"node": "50464290-3352-49d8-a055-af7d43754ef7",
"type": "main",
"index": 0
}
]
]
},
"de299064-b480-4b29-9f33-68a002531bad": {
"ai_languageModel": [
[
{
"node": "66f6ed0c-2263-4e75-8265-c8ee563e2205",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"bf1272a6-7ba4-4939-b984-4d328420eb94": {
"ai_outputParser": [
[
{
"node": "66f6ed0c-2263-4e75-8265-c8ee563e2205",
"type": "ai_outputParser",
"index": 0
}
]
]
},
"e2d56ba4-fd1b-4510-95da-20e2535fb766": {
"ai_tool": [
[
{
"node": "66f6ed0c-2263-4e75-8265-c8ee563e2205",
"type": "ai_tool",
"index": 0
}
]
]
},
"3b1f6ac3-c695-48cf-aef9-90f00224bec4": {
"main": [
[
{
"node": "6f5df4f5-563c-4d8b-ae1f-fede2b464754",
"type": "main",
"index": 0
}
]
]
},
"663dd67a-bfff-4d6b-8792-c285a65f4747": {
"ai_tool": [
[
{
"node": "66f6ed0c-2263-4e75-8265-c8ee563e2205",
"type": "ai_tool",
"index": 0
}
]
]
}
}
}¿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
¿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.
Flujos de trabajo relacionados recomendados
iamvaar
@iamvaarCompartir este flujo de trabajo