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
사용된 노드 (10)
카테고리
-
워크플로우 미리보기
노드 연결 관계를 시각적으로 표시하며, 확대/축소 및 이동을 지원합니다
워크플로우 내보내기
다음 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)는 사용자 직접 비용을 지불해야 할 수 있습니다.
관련 워크플로우 추천
Jotform과 Gemini를 사용한 프리랜서 프로젝트 수신 자동화
Jotform과 Gemini를 사용한 프리랜서 프로젝트 수신 및 맞춤 제안 자동화
If
Gmail
Google Sheets
+
If
Gmail
Google Sheets
9 노드iamvaar
Jotform, Gemini AI 및 Google Sheets로 내부 불만 처리 자동화
Jotform, Gemini AI 및 Google Sheets를 통한 내부 불만 처리 자동화
If
Gmail
Google Sheets
+
If
Gmail
Google Sheets
22 노드iamvaar
티켓 관리
Jotform, GDrive, Gemini를 사용한 자동화된 애프터 서비스 제품 배송 및 추천 판매
Jotform, GDrive, Gemini를 사용한 자동화된 애프터세일즈 제품 배송 및 추천 판매
Gmail
Google Drive
Google Sheets
+
Gmail
Google Drive
Google Sheets
8 노드iamvaar
AI 기반 NDA 검토 및 실시간 알림 시스템 - JotForm, Gemini, Telegram
JotForm, Gemini, Telegram을 활용한 AI 기반 NDA 검토 및 실시간 알림 시스템
Telegram
Http Request
Jot Form Trigger
+
Telegram
Http Request
Jot Form Trigger
13 노드iamvaar
AI, JotForm, WhatsApp 및 캘린더 기반 자동화된 로펌 리드 관리 및 스케줄링
AI, JotForm, WhatsApp, 캘린더 기반 자동 로펌 리드 관리 및 스케줄링
If
Whats App
Google Sheets
+
If
Whats App
Google Sheets
16 노드iamvaar
콘텐츠 제작
Supabase, Google 스프레드시트 및 Gmail 기반 자동 사용자 재활성화 시스템
사용Supabase、Google表格및Gmail의자동화用户重新激活系统
Set
Code
Gmail
+
Set
Code
Gmail
14 노드iamvaar
소셜 미디어