🔓 Unlock all 10,000+ workflows & prompts free Join Newsletter →
✅ Full access unlocked — explore all 10,000 AI workflow and prompt templates Browse Templates →
Home n8n Workflow
January 21, 2026

Jotform to GitHub, fewer duplicate bug reports

Lisa Granqvist Partner Workflow Automation Expert

Your bug report form is working. The problem is what happens after. Tickets get copied into GitHub by hand, duplicates slip through, and “did anyone triage this?” becomes a daily Slack (or email) ritual.

Product managers end up babysitting triage. Support leads get stuck forwarding the same issue twice. And agency owners feel it when clients think nothing’s happening. This GitHub issue automation cleans incoming Jotform submissions, checks for duplicates, then creates (or doesn’t create) an issue with a clear status you can trust.

Below, you’ll see exactly how the workflow moves from form submission to GitHub + Google Sheets + a Telegram alert, plus the practical results you can expect once it’s running.

How This Automation Works

See how this solves the problem:

n8n Workflow Template: Jotform to GitHub, fewer duplicate bug reports

The Challenge: Duplicate Bug Reports That Kill Triage

Bug reports come in messy. One user writes three paragraphs, another writes “it’s broken,” and someone else submits the exact same thing that was reported last week. Then your team has to interpret it, search GitHub manually, decide whether it’s new, create an issue, and tell the right people. On a busy day, that’s not “just a few minutes.” It’s constant context switching, plus the risk of missing the one report that actually matters.

The friction compounds. Here’s where it breaks down in real life.

  • Someone creates a brand-new GitHub issue even though a matching one already exists, so the team wastes time debating which one to close.
  • Triage becomes a memory game because the original report is buried in inboxes and chat threads instead of being logged consistently.
  • Form submissions don’t translate cleanly into actionable GitHub titles, labels, or summaries, which means more back-and-forth and slower fixes.
  • Notifications are noisy, so people start ignoring them, and then the important reports get missed.

The Fix: Jotform → AI Triage → GitHub + Sheets + Telegram

This workflow turns every Jotform bug report into a consistent, triage-ready outcome. It starts the moment a user submits your bug form with their name, email, and the bug description. An AI triage assistant reviews that text and checks your GitHub repository for similar issues. If it finds a match, it flags the submission as a duplicate and avoids creating yet another issue. If it’s new, it opens a fresh GitHub issue automatically, then returns a structured summary of what happened. Finally, everything gets logged to Google Sheets and a Telegram message goes out so the right people know whether action is needed.

The workflow starts with a Jotform submission. From there, the AI agent uses your GitHub issues as its reference point, then decides “duplicate” vs “new issue.” Google Sheets becomes the running ledger, and Telegram becomes the clean alert channel that tells you what to do next.

What Changes: Before vs. After

Real-World Impact

Say you get 10 bug reports a week. Manually, you might spend about 10 minutes searching GitHub, 10 minutes creating or formatting the issue, and another 5 minutes notifying the team, which is roughly 4 hours weekly. With this workflow, submitting is still instant for the user, and your team mostly just reads the Telegram alert and clicks through when it’s truly new. That’s usually closer to 30 minutes of attention per week, not an afternoon.

Requirements

  • n8n instance (try n8n Cloud free)
  • Self-hosting option if you prefer (Hostinger works well)
  • Jotform to collect incoming bug reports
  • GitHub to search and create issues
  • Google Sheets for a submission and status log
  • Telegram to notify the team instantly
  • Google Gemini API access (get it from Google AI Studio / your Google Cloud project)

Skill level: Intermediate. You’ll connect accounts, set permissions, and paste a few IDs like repo name and sheet.

Need help implementing this? Talk to an automation expert (free 15-minute consultation).

The Workflow Flow

A Jotform submission comes in. The JotForm Submission Hook captures the reporter’s contact details and the raw bug description the moment they hit submit.

The report gets triaged into something consistent. The AI Triage Assistant (running on Gemini) interprets the text and searches your GitHub repository’s issues to find potential duplicates, so you’re not relying on someone’s memory.

GitHub is updated only when it should be. If the bug looks new, the workflow opens a GitHub issue automatically. If it’s already reported, it records that outcome instead of creating more clutter.

Sheets and Telegram keep everyone aligned. A row is written to Google Sheets with the submission, the AI’s decision, and issue details. Then a small script composes a clear Telegram message like “duplicate, no action” or “new issue created,” and sends it to your chosen chat.

You can easily modify the Telegram wording to match your team’s tone, or swap the Google Sheets log for another destination if that’s how you track triage. See the full implementation guide below for customization options.

Step-by-Step Implementation Guide

Step 1: Configure the JotForm Trigger

Set up the workflow to start when a new JotForm submission is received.

  1. Add the JotForm Submission Hook node as your trigger.
  2. Set Form to [YOUR_ID].
  3. Set Only Answers to false.
  4. Credential Required: Connect your jotFormApi credentials.

If your form fields differ from the workflow’s expected names (like Bug Description or Your Email Address), update the expressions later in Update Sheet Row to match your exact JotForm field labels.

Step 2: Connect Google Sheets

Store the triaged bug details into a Google Sheet for tracking.

  1. Add the Update Sheet Row node and connect it after AI Triage Assistant.
  2. Set Operation to appendOrUpdate.
  3. Set Document to [YOUR_ID] (cached name: Github user submitted BUGS log).
  4. Set Sheet Name to [YOUR_ID] (cached name: Sheet1).
  5. Map the columns with these expressions:
  6. id{{ $('JotForm Submission Hook').item.json.submissionID }}
  7. email{{ $('JotForm Submission Hook').item.json.rawRequest['Your Email Address'] }}
  8. issue{{ $json.output.issue_description }}
  9. Full name{{ $('JotForm Submission Hook').item.json.rawRequest['Your Name'].first }} {{ $('JotForm Submission Hook').item.json.rawRequest['Your Name'].last }}
  10. present_in_github?{{ $json.output.present_in_github }}
  11. Credential Required: Connect your googleSheetsOAuth2Api credentials.

⚠️ Common Pitfall: The Update Sheet Row node uses id as the matching column. Ensure your sheet has an id column or the append/update behavior may fail.

Step 3: Set Up AI Triage Assistant

Configure the AI agent to read the bug description, check GitHub issues, and optionally create a new issue.

  1. Add the AI Triage Assistant node after JotForm Submission Hook.
  2. Set Text to the provided multi-step prompt, including the expression {{ $json.rawRequest['Bug Description'] }}.
  3. Ensure Prompt Type is set to define and Has Output Parser is enabled.
  4. Connect Gemini Chat Engine as the language model for AI Triage Assistant.
    Credential Required: Connect your googlePalmApi credentials on Gemini Chat Engine.
  5. Connect Retrieve GitHub Issues and Open GitHub Issue as tools for AI Triage Assistant.
    Credential Required: Connect your githubApi credentials on both Retrieve GitHub Issues and Open GitHub Issue.
  6. Connect Parse Structured Output as the output parser for AI Triage Assistant. Ensure the JSON schema example matches your desired output.

For AI tool/sub-node credentials, add them on the parent connections: Retrieve GitHub Issues and Open GitHub Issue are tools for AI Triage Assistant, and Parse Structured Output is the output parser linked to AI Triage Assistant.

Step 4: Configure Output and Alerts

Format the alert message and send it to Telegram once the sheet has been updated.

  1. Add Compose Alert Script after Update Sheet Row to build the alert message.
  2. Keep the JavaScript Code as provided to set item.json.message based on present_in_github?.
  3. Add Dispatch Telegram Alert after Compose Alert Script.
  4. Set Text to {{ $json.message }}.
  5. Set Chat ID to [YOUR_ID].
  6. Credential Required: Connect your telegramApi credentials.

⚠️ Common Pitfall: Ensure Compose Alert Script outputs message in the JSON; otherwise Dispatch Telegram Alert will send a blank message.

Step 5: Test and Activate Your Workflow

Verify the end-to-end flow from form submission to GitHub triage, logging, and Telegram alert.

  1. Click Execute Workflow and submit a test entry in your JotForm.
  2. Confirm AI Triage Assistant produces structured output with issue_name, issue_description, and present_in_github.
  3. Check Update Sheet Row to ensure the row was appended or updated using the id column.
  4. Verify Dispatch Telegram Alert sends a message to the configured chat.
  5. Enable the workflow with the Active toggle for production use.
🔒

Unlock Full Step-by-Step Guide

Get the complete implementation guide + downloadable template

Watch Out For

  • GitHub credentials can expire or need specific permissions. If things break, check the GitHub personal access token scopes and the n8n credential settings first.
  • If you’re using Wait nodes or external rendering, processing times vary. Bump up the wait duration if downstream nodes fail on empty responses.
  • Default prompts in AI nodes are generic. Add your brand voice early or you’ll be editing outputs forever.

Common Questions

How quickly can I implement this GitHub issue automation?

About an hour if your Jotform, GitHub, Sheets, and Telegram accounts are ready.

Can non-technical teams implement this GitHub issue automation?

Yes, but someone needs to be comfortable connecting apps and checking permissions. No “real coding,” although the workflow includes a small script you can usually keep as-is.

Is n8n free to use for this GitHub issue automation workflow?

Yes. n8n has a free self-hosted option and a free trial on n8n Cloud. Cloud plans start at $20/month for higher volume. You’ll also need to factor in Gemini API usage costs, which depend on how long your bug descriptions are.

Where can I host n8n to run this automation?

Two options: n8n Cloud (managed, easiest setup) or self-hosting on a VPS. For self-hosting, Hostinger VPS is affordable and handles n8n well. Self-hosting gives you unlimited executions but requires basic server management.

How do I adapt this GitHub issue automation solution to my specific challenges?

You can tweak the AI Triage Assistant instructions so it searches the right repository, uses your labeling rules, and outputs the exact fields you want logged. Common changes include adjusting the duplicate-matching threshold (so it’s stricter or looser), customizing what gets written in the Update Sheet Row step, and rewriting the Compose Alert Script message so Telegram includes an owner, severity, or a direct issue link.

Why is my GitHub connection failing in this workflow?

Usually it’s an expired token or missing scopes for reading issues and creating issues. Update the GitHub credential in n8n, then re-test the “Retrieve GitHub Issues” and “Open GitHub Issue” steps. If it works in small tests but fails in production, rate limits can also be the culprit when you get a burst of submissions.

What’s the capacity of this GitHub issue automation solution?

For most small teams, it’s effectively “as many form submissions as you get.” On n8n Cloud Starter you can run thousands of executions per month, and self-hosting removes execution caps (your server becomes the limit). The practical bottlenecks are usually GitHub rate limits and how long the AI model takes to evaluate each description, not n8n itself.

Is this GitHub issue automation better than using Zapier or Make?

Often, yes. This workflow leans on an AI agent that can search issues, decide “duplicate vs new,” and return structured output, which is easier to express in n8n without piling up paid tasks. n8n also makes it straightforward to keep a Google Sheets log and craft a conditional Telegram message with code when you need it. Zapier or Make can still work if you just want “form submission → create issue” with no duplicate check. If you’re unsure, Talk to an automation expert and we’ll sanity-check your use case.

Once this is live, bug intake stops feeling like whack-a-mole. You get cleaner issues, fewer duplicates, and a log that makes status obvious without a meeting.

Need Help Setting This Up?

Our automation experts can build and customize this workflow for your specific needs. Free 15-minute consultation—no commitment required.

Lisa Granqvist

Workflow Automation Expert

Expert in workflow automation and no-code tools.

×

Use template

Get instant access to this n8n workflow Json file

💬
Launch login modal Launch register modal