8
n8n 한국어amn8n.com

Gemini AI를 사용한 버그 리포트 자동화: Jotform에서 GitHub 및 Telegram 알림 발송

중급

이것은자동화 워크플로우로, 10개의 노드를 포함합니다.주로 Code, Telegram, GithubTool, GoogleSheets, JotFormTrigger 등의 노드를 사용하며. Gemini AI를 사용한 버그 리포트 자동화: Jotform에서 GitHub로, Telegram 알림 전송

사전 요구사항
  • Telegram Bot Token
  • GitHub Personal Access Token
  • Google Sheets API 인증 정보
  • Google Gemini API Key

카테고리

-
워크플로우 미리보기
노드 연결 관계를 시각적으로 표시하며, 확대/축소 및 이동을 지원합니다
워크플로우 내보내기
다음 JSON 구성을 복사하여 n8n에 가져오면 이 워크플로우를 사용할 수 있습니다
{
  "meta": {
    "instanceId": "93f396852104089b8670e7494b0f3668b420464668ae4a8c1d6b4b5799f8e3ef"
  },
  "nodes": [
    {
      "id": "50464290-3352-49d8-a055-af7d43754ef7",
      "name": "텍스트 메시지 보내기",
      "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": "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": "AI 에이전트",
      "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": "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 채팅 모델",
      "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": "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": "구조화된 출력 파서",
      "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": "시트에 행 추가 또는 업데이트",
      "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": "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": "스티커 노트",
      "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
          }
        ]
      ]
    }
  }
}
자주 묻는 질문

이 워크플로우를 어떻게 사용하나요?

위의 JSON 구성 코드를 복사하여 n8n 인스턴스에서 새 워크플로우를 생성하고 "JSON에서 가져오기"를 선택한 후, 구성을 붙여넣고 필요에 따라 인증 설정을 수정하세요.

이 워크플로우는 어떤 시나리오에 적합한가요?

중급

유료인가요?

이 워크플로우는 완전히 무료이며 직접 가져와 사용할 수 있습니다. 다만, 워크플로우에서 사용하는 타사 서비스(예: OpenAI API)는 사용자 직접 비용을 지불해야 할 수 있습니다.

워크플로우 정보
난이도
중급
노드 수10
카테고리-
노드 유형9
난이도 설명

일정 경험을 가진 사용자를 위한 6-15개 노드의 중간 복잡도 워크플로우

외부 링크
n8n.io에서 보기

이 워크플로우 공유

카테고리

카테고리: 34