formbasedocs
Go to appApp

Integrations

GitHub Issues

Turn submissions into GitHub issues automatically. Each submission creates one issue in the repository you choose, with a custom title, body, and milestone.


What you get

  • One GitHub issue per submission, attributed to the connecting user
  • Title and body built from a template editor — type @ to insert any form field value

  • Body supports GitHub-flavored markdown (bold, lists, headings, code fences, links)
  • Optional default milestone applied to every issue
  • Test button that creates a real [Test]-prefixed issue so you can verify before going live

Connect GitHub

  1. 1

    Open Form settings → Integrations → GitHub Issues

    Press Connect GitHub account, or pick an account the workspace already connected. A popup walks you through OAuth consent. Scopes requested: repo, read:user, read:org.

  2. 2

    Pick a repository

    The picker lists repos where you have push access. formbase excludes archived and disabled repos.

  3. 3

    Set defaults (optional)

    Pick a default milestone. It applies to every issue and resets when you switch repositories.

  4. 4

    Compose title and body

    Use the template editors. Type @ to insert form field values or submission metadata such as PDF Link. Title renders as plain text (max 256 characters); body renders as GitHub-flavored markdown.

  5. 5

    Abandoned submissions (optional)

    Pick an idle window and write a separate title and body for drafts nobody finished. Leave it Off to skip. Requires Pro or Business.

  6. 6

    Finalize

    Send test creates a real issue with a [Test] prefix in the chosen repository — close or delete it afterwards. Then press Create integration and every submission creates a GitHub issue.

Abandoned response events

When a respondent starts your form but doesn’t finish, formbase can create a separate issue for the partial data. Set Send abandoned event after to 12 hours, 1 day, 3 days, or 1 week, then fill in the abandoned issue title and body — neither can be empty. Abandoned issues get a partial-submission label, created on first use.

An hourly sweep looks for idle drafts, so the issue appears at the first sweep after the window passes. Only drafts from a share link are swept, and Required fields narrows it further: the issue is created only when at least one of the fields you pick was filled in.

Pro feature

Abandoned response delivery requires a Pro or Business plan. The core GitHub Issues integration is available on all plans. See plans & pricing.

Tokens

GitHub OAuth App tokens do not expire — there is no refresh-token rotation. If you revoke the grant from your GitHub account’s authorized OAuth Apps page, the next dispatch fails, formbase marks the credential as expired, and you receive a failure notification email. Reconnect from the workspace Integrations page to restore.

Removing the integration

  • From formbase — Form settings → Integrations → GitHub Issues → Delete. New submissions stop creating issues immediately.

  • From GitHub — Revoke the OAuth grant from your account’s authorized OAuth Apps page. formbase does not automatically revoke the token on its side.

Limits and behavior

  • One issue per submission — no comment-on-existing-issue mode
  • No backfill — only new submissions create issues
  • Title is plain text, truncated with an ellipsis past 256 characters; body is markdown-only
  • An empty title falls back to New submission to <form name>

  • File upload answers render as the file name followed by its download link, so the file is reachable from the issue
  • Respondent answers are inserted into the issue body as-is — if an answer contains @username, GitHub notifies that user, and #123 creates an issue reference

FAQ

Three GitHub scopes: repo (create issues), read:user (identify your account), and read:org (list organization repos). This is a standard OAuth App — no GitHub App installation required.

Yes. GitHub connections are workspace-scoped. Any workspace member can use any connected GitHub account when setting up an integration.

Yes. Open the integration detail sheet and change either field. Switching repositories resets the milestone since milestones are repo-specific.

The next submission fails with a “not found” error and the integration shows an error status. Edit the integration to pick a different repository.

The integration auto-pauses and an email goes to the person who set it up. A revoked token, a lost permission, or a deleted repository does not wait for five failures — it stops the integration immediately. Either way, fix the cause and press Resume.

Next steps