What API Tokens Do You Need Before Starting?

Before opening FlowSquad's integration settings, generate the following tokens in their respective tools. Having all 3 ready before starting will get you through the setup in a single session.

Required API tokens โ€” generate these first

GitHub
Personal Access Token (Classic) with scopes: repo (full), read:org
Navigate to: GitHub Settings โ†’ Developer settings โ†’ Personal access tokens โ†’ Tokens (classic) โ†’ Generate new token
Token format: ghp_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx (40 chars)
Jira
Atlassian API Token (your Atlassian account, not Jira-specific)
Navigate to: id.atlassian.com โ†’ Security โ†’ API tokens โ†’ Create API token
Used with your Atlassian account email as the username
Token format: ATATxxxxxxxxxxxxxxxxxxxxxxxx (Base64, ~24 chars)
Confluence
Same Atlassian API Token as Jira (one token covers both products)
You only need one Atlassian API token for both Jira and Confluence integrations
Security note
FlowSquad stores all API tokens using field-level encryption (Fernet/AES-128). Tokens are never stored in plaintext and are never logged. You can rotate tokens at any time from FlowSquad's Integrations settings page without disrupting active projects.

How Do You Connect GitHub (or GitLab/Bitbucket/Azure DevOps)?

FlowSquad's GitHub integration supports GitHub.com and GitHub Enterprise. It also supports GitLab (cloud and self-hosted), Bitbucket Cloud, Bitbucket Data Center, and Azure DevOps Repos.

GitHub connection steps

  1. Open FlowSquad โ†’ Settings โ†’ Integrations โ†’ Source Control
  2. Click Add GitHub Connection. Select Personal Access Token (for individual repos) or GitHub App (for org-wide access โ€” recommended for teams).
  3. Paste your PAT in the Token field. Enter your GitHub username in the Username field.
  4. Enter the repository URL. Format: https://github.com/{owner}/{repo} or for Enterprise: https://github.yourdomain.com/{owner}/{repo}
  5. Click Test Connection. You should see: "Connection successful โ€” 1 repository accessible."
  6. Click Save. The repository now appears in your FlowSquad project's source control list.
# FlowSquad integration config (shown for reference โ€” set via UI) integrations: github: enabled: true type: pat # or: github_app base_url: https://api.github.com # for GHE: https://github.yourdomain.com/api/v3 username: your-github-username token: ${GITHUB_PAT} # stored encrypted in FlowSquad DB repositories: - owner: spring-projects name: spring-petclinic default_branch: main webhook: enabled: true # enables PR-triggered quality scans events: [push, pull_request]

If you want PR-triggered quality scans, enable the webhook. FlowSquad generates a webhook URL (format: https://app.flowsquad.ai/api/webhooks/github/{project-id}) that you add to your GitHub repository's Webhook settings with a shared secret.

How Do You Connect Jira?

FlowSquad's Jira integration supports Jira Cloud and Jira Data Center (version 8.x and above).

  1. Open FlowSquad โ†’ Settings โ†’ Integrations โ†’ Jira
  2. Enter your Jira Base URL. For Jira Cloud: https://your-org.atlassian.net. For Jira Data Center: https://jira.yourdomain.com
  3. Enter your Atlassian Account Email (the email you use to log in to Atlassian)
  4. Paste your Atlassian API Token in the Token field
  5. Enter your Jira Project Key. This is the 2โ€“6 character prefix of your issue numbers. Example: if your issues are PET-123, your project key is PET
  6. Click Test Connection. FlowSquad calls GET /rest/api/3/myself to verify authentication, then GET /rest/api/3/project/{key} to verify project access.
  7. Configure Issue Type Mappings: map FlowSquad's Epic โ†’ Jira Epic, Story โ†’ Story, Task โ†’ Sub-task (or Task โ€” your preference)
  8. Click Save Integration
# Jira integration config reference integrations: jira: enabled: true base_url: https://your-org.atlassian.net # no trailing slash email: you@yourcompany.com api_token: ${JIRA_API_TOKEN} # stored encrypted project_key: PET # uppercase, 2-6 chars issue_type_mappings: epic: Epic story: Story task: Sub-task default_assignee: null # or a Jira accountId story_points_field: story_points # or: customfield_10016 for older Jira

How Do You Connect Confluence?

FlowSquad's Confluence integration exports generated HLD and LLD documents as Confluence pages. Supported: Confluence Cloud and Confluence Data Center (7.x+).

  1. Open FlowSquad โ†’ Settings โ†’ Integrations โ†’ Confluence
  2. Enter your Confluence Base URL. For Confluence Cloud: https://your-org.atlassian.net/wiki. For Data Center: https://confluence.yourdomain.com
  3. Enter the same Atlassian Account Email and API Token as Jira (same credential)
  4. Enter the Space Key where FlowSquad should create pages. Navigate to your Confluence space and find it in the URL: https://your-org.atlassian.net/wiki/spaces/{SPACEKEY}/
  5. Set the Parent Page (optional). If you want FlowSquad pages to be nested under a specific page (e.g., "Technical Design Docs"), enter its page ID. Find the page ID by clicking ยทยทยท menu โ†’ Page Information โ†’ the ID is in the URL.
  6. Click Test Connection. FlowSquad verifies space access and write permissions.
  7. Click Save Integration
# Confluence integration config reference integrations: confluence: enabled: true base_url: https://your-org.atlassian.net/wiki # include /wiki for Cloud email: you@yourcompany.com api_token: ${CONFLUENCE_API_TOKEN} # same as Jira token space_key: TECH # uppercase, your space key parent_page_id: "123456789" # optional: page ID for nesting page_title_prefix: "[FlowSquad]" # optional: prefix all generated pages

How Do You Test That Auto-Export Works?

With all 3 integrations connected, run this end-to-end test to confirm everything works:

  1. Open any FlowSquad project with a connected repository
  2. Click Generate Work Breakdown and enter: "Add user password reset via email"
  3. Wait for generation to complete (~60โ€“90 seconds)
  4. Click Export to Jira โ†’ Select your project key โ†’ Click Create Issues
  5. Open your Jira project โ€” you should see new epics and stories created with the prefix [FlowSquad] in the summary
  6. Click Export Design to Confluence โ†’ Select your space โ†’ Click Publish Page
  7. Open your Confluence space โ€” the new page should appear under your parent page with the HLD content
โœ“ Integration verified โ€” if you see the Jira issues and the Confluence page, your full integration stack is working. Average time from clicking "Generate" to having a populated Jira sprint: under 3 minutes.

Troubleshooting: 3 Common Errors and Their Fixes

Error 1

Jira Test Connection fails with 401 Unauthorized
Message: {"errorMessages":["You do not have permission to access this resource"]}

Fix

This is almost always a wrong email/token combination. Confirm you are using your Atlassian account email (the one at id.atlassian.com), not a display name or username. Regenerate the API token if it was created more than 12 months ago (Atlassian tokens do not expire but can be revoked). Also check that you have the Browse Projects and Create Issues permissions in the target Jira project โ€” these are required by FlowSquad.

Error 2

GitHub webhook test returns 403 Forbidden
Message in FlowSquad logs: Webhook delivery failed: 403 โ€” signature mismatch

Fix

The webhook shared secret in GitHub does not match the one generated by FlowSquad. In GitHub โ†’ Repository Settings โ†’ Webhooks โ†’ your FlowSquad webhook โ†’ Edit: update the Secret field with the exact secret string shown in FlowSquad's integration settings (copy it using the copy button โ€” avoid manual retyping which introduces whitespace). If the secret was auto-generated, you can regenerate it in FlowSquad and re-paste to GitHub.

Error 3

Confluence export fails with "Page already exists"
Message: {"message":"title already exists in space"}

Fix

FlowSquad tried to create a page with a title that already exists in your Confluence space. Two options: (1) Enable Update on conflict in FlowSquad's Confluence settings โ€” this will update the existing page instead of failing. (2) Enable the Timestamp in title option to append a date suffix to all generated page titles, ensuring uniqueness. Both options are in FlowSquad โ†’ Settings โ†’ Integrations โ†’ Confluence โ†’ Advanced Settings.

Frequently Asked Questions

Does FlowSquad support GitLab self-hosted instances?
Yes. In the GitHub integration settings, select GitLab (Self-Hosted) as the provider and enter your GitLab instance URL as the base URL (e.g., https://gitlab.yourdomain.com). Use a GitLab Personal Access Token with read_repository and write_repository scopes. The analysis engine and webhook events work identically to GitLab Cloud.
Can we configure multiple Jira projects for one FlowSquad instance?
Yes. FlowSquad supports multiple Jira project connections. Each FlowSquad project can be mapped to a different Jira project key. You add additional Jira connections in Settings โ†’ Integrations โ†’ Jira โ†’ Add Connection. On export, you select which Jira project to target from a dropdown populated from all configured connections.
What Jira issue types does FlowSquad support beyond Epic/Story/Task?
FlowSquad's issue type mapping is fully configurable. In addition to Epic/Story/Task, you can map FlowSquad's quality scan findings to Bug and Technical Debt issue types, and you can add custom issue types defined in your Jira project (e.g., Spike, Feature, Initiative). The mapping is configured per FlowSquad project under Settings โ†’ Integrations โ†’ Jira โ†’ Issue Type Mapping.
Does FlowSquad support Jira Server (end-of-life), or only Cloud and Data Center?
FlowSquad supports Jira Cloud and Jira Data Center (8.x+). Jira Server reached end-of-life in February 2024. If you are still running Jira Server, FlowSquad may work with your instance using the Data Center configuration, but it is not officially supported. Atlassian recommends migrating to Data Center or Cloud.
How do I revoke FlowSquad's access to GitHub or Jira without disrupting existing projects?
Revoke the API token in the source system (GitHub/Atlassian), then update the token in FlowSquad's integration settings with a new one. Existing projects and their generated artifacts are not affected โ€” FlowSquad only needs the token when performing live operations (analysis, export). You can also temporarily disable an integration in FlowSquad settings without revoking the token, which pauses all automated operations while preserving the configuration.