How to Automate Creating GitHub Issues from Product Forms with n8n

admin1234 Avatar

## Introduction

In many product teams, collecting and managing feedback or bug reports can become chaotic without a structured process. Product managers, engineers, and QA teams often rely on users or internal teams submitting product feedback through forms (such as Google Forms or Typeform). However, manually transferring these form submissions into GitHub issues for tracking and resolution is inefficient and prone to error.

This article provides a comprehensive, step-by-step tutorial on how to automate the creation of GitHub issues from product feedback forms using n8n, an open-source workflow automation tool. This workflow benefits product and engineering teams by accelerating feedback processing, improving issue traceability, and minimizing manual overhead.

## What Problem Does This Automation Solve?

– Manual copying of form feedback into GitHub issues is time-consuming and error-prone.
– Feedback may get delayed or lost if not promptly addressed.
– Product teams need a streamlined, automated way to funnel user input directly into their issue tracking system.

**Who Benefits?**
– Product Managers who want timely visibility on issues or requested features.
– Engineering teams who get structured, consistent GitHub issues without manual errors.
– QA and Support who submit bug reports via forms and want them tracked.

## Tools and Services Integrated

– **n8n:** Open-source workflow automation platform.
– **Google Forms (or Typeform):** Product feedback or bug report collection form.
– **Google Sheets:** Often used as the backend storage for form responses.
– **GitHub:** Issue tracking repository where issues will be created.

You can swap Google Forms with any other form tool that outputs data in an accessible format (such as Typeform or Jotform).

## How the Workflow Works

1. **Trigger:** A new product feedback submission is received via Google Forms, which populates a Google Sheet.
2. **Polling:** n8n periodically checks the Google Sheet for new rows.
3. **Data Processing:** n8n extracts relevant data fields (title, description, priority, etc.) from the new form entry.
4. **Issue Creation:** n8n uses the GitHub API to create a new issue in the specified GitHub repository with the extracted data.
5. **Optional Notification:** Notify Slack or email that a new issue has been created for instant team awareness.

This automation turns raw product inputs into actionable GitHub issues with zero manual effort.

## Technical Tutorial

### Prerequisites

– n8n instance running (cloud-hosted or self-hosted).
– Access to Google Account with Google Sheets integration (where form responses are collected).
– GitHub personal access token with repo permissions.
– Product feedback form already live and linked to a Google Sheet.

### Step 1: Setting Up the Trigger (Google Sheets Node)

1. In n8n, create a new workflow.
2. Add the **Google Sheets** node.
3. Authenticate it with OAuth2 using your Google account.
4. Configure it to read from the Google Sheet tied to your product form responses.
5. Set the operation to **Read Rows**.
6. Configure it to only read rows added after the last run (use the “Since Last Run” option or keep track of processed rows).

*Tip:* Use filters to only fetch rows that have not been processed yet, for example, by adding a “processed” column in the sheet.

### Step 2: Extract Data Fields

1. Use the **Set** or **Function** node to map the raw row data into structured fields:
– Issue Title (e.g., “Bug Report: {short description}”)
– Issue Body (e.g., User description, steps to reproduce, environment)
– Labels or assignees if applicable

2. In the Function node, write JavaScript to construct the issue body text clearly and consistently.

Example:
“`js
return [{
title: `Bug Report: ${items[0].json[‘Summary’]}`,
body: `**Description:** ${items[0].json[‘Description’]}
**Steps to Reproduce:** ${items[0].json[‘Steps’]}
**Reported By:** ${items[0].json[‘User Email’]}
**Priority:** ${items[0].json[‘Priority’]}`
}];
“`

### Step 3: Creating the GitHub Issue

1. Add the **GitHub** node.
2. Authenticate with your GitHub personal access token.
3. Choose the **Create Issue** operation.
4. Map the ‘title’ and ‘body’ fields from the previous node to the GitHub issue fields.
5. Select the target repository.

*Optional:* Add labels or milestones by passing those in the node configuration.

### Step 4: Mark Entries as Processed (to avoid duplication)

1. After successfully creating an issue, update the corresponding Google Sheet row.
2. Use another **Google Sheets** node to update the “processed” column to **true** or add the GitHub issue URL.

This ensures the next workflow run does not re-process the same entries.

### Step 5: Optional Notification via Slack or Email

1. Add a **Slack** node or **Email** node.
2. After issue creation, send a message to a Slack channel or email list confirming a new issue was created.

Example Slack message:

> New GitHub issue created: #123 – Bug Report: Login fails on Safari

## Common Errors and Troubleshooting Tips

– **Authentication errors:** Ensure API keys and OAuth tokens have proper permissions.
– **Rate limits:** GitHub API has rate limits; for high frequency, consider caching or throttling.
– **Duplicate issues:** Always mark processed rows to avoid re-creating issues.
– **Data mapping errors:** Verify your form fields match Google Sheets columns.
– **Unclear issue content:** Standardize data formatting in the Function node for clarity.

To make the workflow more robust:
– Add error handling nodes to catch and log errors.
– Implement retries on transient failures.
– Validate incoming data before attempting issue creation.

## How to Adapt or Scale the Workflow

– **Support Multiple Forms or Projects:** Route inputs to different GitHub repos based on form type or metadata.
– **Two-way Sync:** Update Google Sheets or form with GitHub issue status.
– **Advanced Parsing:** Use NLP or regular expressions to classify issues.
– **Integrate More Tools:** Connect with Jira, Asana, or Slack for richer workflows.
– **Increase Trigger Frequency:** Switch from polling to webhooks if your form tool supports it (e.g., Typeform webhooks).

By modularizing your workflow, you can expand its capabilities as your product team grows.

## Summary / Bonus Tip

Automating GitHub issue creation from product feedback forms with n8n reduces manual overhead, accelerates issue triage, and improves data consistency. This structured approach makes your engineering and product teams more agile.

**Bonus Tip:** Use n8n’s built-in scheduling and credential management to run this workflow periodically without manual intervention. To enhance visibility, augment the workflow with Slack notifications or dashboard updates.

By implementing this workflow, your startup can streamline product feedback handling and ensure no user report slips through the cracks.