SpedySpedy Docs

Integrations

Connect Spedy to GitHub, Bitbucket, Jira, YouTrack, and MOCO to streamline your workflow.

Spedy connects with the tools your team already uses, so you can keep your code, project management, and time tracking in sync without switching between apps.

Supported Integrations

ServiceWhat you can do
GitHubLink commits and branches to tickets, receive updates when code is pushed, sync GitHub Issues bidirectionally with board tickets
GitLabLink commits and branches to tickets, receive updates when code is pushed, import GitLab projects with issues, comments, and assignments
BitbucketLink commits and branches to tickets, receive updates when code is pushed
JiraImport existing Jira projects into Spedy with all tickets, statuses, and assignments
YouTrackImport existing YouTrack projects with tickets, custom fields, and assignments
AsanaOne-shot import of Asana projects with tasks, statuses, and assignments
TrelloOne-shot import of Trello boards with cards, lists, and members
Monday.comOne-shot import of Monday boards with items, statuses, and assignments
ClickUpOne-shot import of ClickUp spaces/lists with tasks, statuses, and assignments
CSVImport projects from any tool via CSV file with automatic column detection
MOCOSync time entries between Spedy and MOCO for billing and invoicing

Connecting a Git Provider

Link your GitHub, GitLab, or Bitbucket account to Spedy so that code activity shows up on your tickets automatically.

GitHub

  1. Go to Settings and open the Integrations page
  2. Click Add Integration and choose GitHub
  3. Authorize Spedy to access your repositories through the secure login flow
  4. Once connected, your integration is active and ready to use

To see CI/CD status in the Pipelines view, the GitHub App also needs the right webhook event subscriptions (Check run, Check suite, Workflow run, …). The exact list and the "Checks: Read permission first" gotcha are documented under Pipelines → Setting up CI events.

GitLab

GitLab uses a Personal Access Token for authentication. Both gitlab.com and self-hosted GitLab instances are supported.

  1. Go to your GitLab instance and create a Personal Access Token with the api scope
  2. In Spedy, go to Settings → Integrations, click Add Integration, and choose GitLab
  3. Enter your GitLab instance URL (e.g. https://gitlab.com or your self-hosted URL) and paste the token
  4. Spedy validates the credentials and shows the connected user
  5. Once validated, your integration is active

After connecting, you can link GitLab repositories to your boards under Board Settings → Integrations → Add Repository. Spedy automatically creates a webhook on the GitLab repository to receive push, merge request, and pipeline events in real time. You need at least the Maintainer role in the GitLab project for the webhook to be created.

Bitbucket

Bitbucket uses Atlassian API tokens with scopes for authentication (Atlassian has retired the legacy App Passwords).

  1. Go to id.atlassian.com and create an API token with scopes -- make sure you pick the scoped option, not the legacy scopeless format
  2. Select the Bitbucket workspace you want to connect
  3. Grant the following scopes:
    • Read: read:repository:bitbucket, read:webhook:bitbucket, read:user:bitbucket, read:pullrequest:bitbucket, read:workspace:bitbucket
    • Write: write:repository:bitbucket, write:webhook:bitbucket, write:pullrequest:bitbucket
    • Delete: delete:webhook:bitbucket
  4. In Spedy, go to Settings → Integrations, click Add Integration, and choose Bitbucket
  5. Enter your Atlassian account email (not your Bitbucket username) and paste the API token
  6. Once validated, your integration is active

If your token is missing a required scope, Spedy shows which scopes are needed so you can fix it without guessing.

Linking commits to tickets

When a team member includes a ticket ID in their commit message -- for example, fix: resolve login timeout CS-42 -- Spedy automatically detects the reference and links the commit to the ticket. The ticket's assignee receives a notification, and the commit appears in the ticket's activity feed.

This works with any commit message that contains a ticket ID, so your team doesn't need to change how they write commits.

Managing your connection

You can disconnect and reconnect an integration at any time from the settings page. If your credentials expire, Spedy will let you know and guide you through reconnecting without losing your configuration.

Importing from Jira

If you're moving from Jira to Spedy, the built-in migration tool makes it easy to bring your existing projects along.

How to migrate a Jira project

  1. Go to Settings and open the Integrations page
  2. Click Add Integration and choose Jira
  3. Enter your Jira site address and an access token to connect
  4. Select the Jira project you want to import
  5. Spedy automatically maps your Jira statuses, issue types, and priorities to their Spedy equivalents
  6. Start the migration -- your tickets, comments, attachments, and assignments are imported automatically

During the migration

You can monitor the progress of your migration in real time. If something goes wrong (for example, a network interruption), the migration can be paused and resumed from where it left off. A detailed log tracks every imported item, so you can verify that everything transferred correctly.

Importing from YouTrack

If you are moving from YouTrack, Spedy offers a similar migration experience to the Jira import.

How to migrate a YouTrack project

  1. Go to Settings and open the Integrations page
  2. Click Add Integration and choose YouTrack
  3. Enter your YouTrack URL and an access token to connect
  4. Select the project you want to import
  5. Spedy maps your YouTrack fields, statuses, and priorities to their Spedy equivalents
  6. Start the migration -- tickets, comments, and assignments are imported automatically

You can monitor progress and view a detailed log just like with the Jira import.

Importing from GitLab

If you are moving from GitLab to Spedy, the GitLab integration lets you import entire projects with all issues, comments, and assignments.

How to migrate a GitLab project

  1. Go to Settings → Integrations → GitLab
  2. Connect your GitLab instance with a Personal Access Token (see Connecting a Git Provider above)
  3. Click Import Project and select the GitLab project you want to import
  4. Map statuses: GitLab uses "opened" and "closed" as base states. Map each to a Spedy board status. Optionally use labels as additional status hints (e.g. map "opened:doing" to a specific status)
  5. Map users: Spedy auto-suggests matches by email. Adjust any mapping manually -- issues from unmapped users are imported without an assignee
  6. Review the summary and click Start -- Spedy creates a new board and begins importing

What gets imported

  • Issues with title, description, status, and due dates
  • Comments with author and timestamp
  • Assignments according to the configured user mapping
  • External references -- each ticket links back to the original GitLab issue (e.g. GL-42)
  • Priority and story points -- inferred from existing labels where available

During the migration

Progress is shown in real time with counts for imported, pending, and failed issues. If the migration is interrupted (for example by a network issue), it resumes from the last checkpoint. You can pause and resume at any time. A detailed log tracks every imported item.

Migration history

All migrations are listed on the GitLab integration page with source project, timestamp, status, and imported issue count. Click any migration to view its full log.

Importing from Asana, Trello, Monday, ClickUp, or CSV

Spedy supports one-shot imports from Asana, Trello, Monday.com, ClickUp, and CSV files. This lets you bring projects from other tools into Spedy without a permanent sync connection.

How to import a project

  1. Go to Settings and open the Integrations page
  2. Click Imports to see the import history and start a new import
  3. Choose your source: Asana, Trello, Monday, ClickUp, or CSV
  4. Enter your credentials (API key / token) or upload a CSV file
  5. Spedy auto-suggests status and user mappings based on your source data
  6. Review and adjust the mappings, then start the import

CSV import

The CSV importer auto-detects common column headers such as "Title", "Description", "Status", "Assignee", and "Priority". Supported delimiters: comma, semicolon, tab, and pipe.

If your headers don't match the standard names, you can specify the column mapping manually before starting the import.

Import history and logs

All imports are tracked under Settings → Integrations → Imports. Each entry shows the source, status, number of imported items, and a detailed log. Imports are resumable if interrupted.

MOCO Time Tracking Sync

If your team uses MOCO for time tracking, billing, or invoicing, you can connect it to Spedy so that time entries are synced automatically.

Setting up the MOCO connection

  1. Go to Settings and open the Integrations page
  2. Click Add Integration and choose MOCO
  3. Enter your MOCO API key and instance URL
  4. Map your MOCO projects and users to their Spedy equivalents
  5. Once connected, time entries logged in Spedy are synced to MOCO

The sync keeps your billing data in MOCO up to date without manual effort. You can manage the user and board mappings from the integration settings page.

Booking item naming

Spedy auto-creates a MOCO project (booking item) for each ticket when time is synced. The project name is derived from the ticket's external reference — the value in the "External reference" property. If a ticket has no external reference, the internal ticket number (e.g. ACME-42) is used as a fallback.

This means your MOCO booking items can carry customer-facing identifiers like PO numbers or project codes instead of internal ticket IDs.

Keeping the billing status in sync

When a time entry is invoiced in MOCO, Spedy marks it as billed so your boards reflect what has already been billed. Normally this happens instantly via MOCO webhooks -- but a webhook can occasionally be missed (for example during bulk invoicing), which would leave an entry showing as still billable in Spedy.

To cover that, Spedy reconciles the billing status directly from MOCO:

  • Automatically every hour. A background job pulls the authoritative billed status from MOCO and brings Spedy in line -- nothing for you to do.
  • On demand. Under Settings → Integrations → MOCO, click Reconcile billed status to run it immediately. Spedy then shows how many entries were marked billed and how many were reverted.

The MOCO sync overview also shows a count of billed time entries alongside the synced and pending counts. Entries marked not billable are never changed by the reconcile.

GitHub Issues Sync

If you manage issues on GitHub and want to work on them inside Spedy, the GitHub Issues sync creates a live, bidirectional connection between a GitHub repository and a Spedy board. Issues become tickets, status changes flow in both directions, and comments stay in sync.

Sync modes

ModeBehavior
Live Sync (default)Continuous two-way sync via webhooks and polling. New issues appear as tickets, status changes propagate both ways, and comments are mirrored.
Import OnceOne-time import of all matching issues into Spedy. No ongoing sync -- useful for migrating a backlog without keeping GitHub as the source of truth.

Setting up GitHub Issues sync

  1. Make sure you already have a GitHub integration connected (see Connecting a Git Provider above)
  2. Go to Settings → Integrations → GitHub Issues
  3. Select a board and click Configure Sync
  4. Choose the repository you want to sync
  5. Configure the status mapping:
    • Inbound (GitHub → Spedy): Map GitHub issue states (open, closed) and optionally labels to Spedy board statuses
    • Outbound (Spedy → GitHub): Map Spedy board statuses back to GitHub states (open or closed)
  6. Optionally configure:
    • Label mapping: Map GitHub labels to Spedy priorities (e.g., bug → High, enhancement → Medium)
    • Filter labels: Only sync issues that have specific labels (leave empty to sync all)
    • Comment sync: Enable or disable bidirectional comment mirroring
    • Polling interval: How often Spedy checks GitHub for changes (5--60 minutes, default 5)
  7. Save the configuration -- Spedy immediately polls GitHub and imports matching issues

How the sync works

Inbound (GitHub → Spedy):

  • When a new issue is opened on GitHub, Spedy creates a ticket on the connected board with the mapped status and priority
  • When an issue is closed or reopened, the ticket status updates accordingly
  • When someone comments on a GitHub issue, the comment appears on the Spedy ticket (attributed to the GitHub author)

Outbound (Spedy → GitHub):

  • When a ticket's status changes in Spedy to a column mapped to closed, the linked GitHub issue is closed automatically
  • When a ticket moves back to an open-mapped status, the GitHub issue is reopened
  • Comments added in Spedy are posted to the GitHub issue

Loop prevention: Spedy ignores inbound updates that were triggered by its own outbound sync, so changes don't echo back and forth.

Monitoring the sync

On the sync configuration page you can see:

  • Synced tickets count: How many issues are linked between GitHub and Spedy
  • Sync status: Whether each ticket is synced, pending, or has errors
  • Audit log: A detailed history of every sync event -- useful for debugging if something doesn't sync as expected

You can also trigger a manual refresh at any time to re-poll GitHub for new or changed issues.

Removing the sync

Deleting the sync configuration disconnects all linked tickets. The tickets remain in Spedy but are no longer updated when the GitHub issue changes. You can always set up the sync again later.

Webhooks

Spedy supports outgoing webhooks so you can notify external systems when events happen in your organization. Configure webhook endpoints to receive HTTP callbacks for events such as ticket creation, updates, status changes, and more.

Setting up a webhook

  1. Go to Settings and open the Webhooks page
  2. Click Create Webhook Endpoint
  3. Enter a name, the destination URL, and select which events to subscribe to
  4. Copy the signing secret -- Spedy signs every delivery with HMAC-SHA256 so you can verify authenticity

Each delivery is logged and you can inspect the payload and response status for troubleshooting.

Integration Permissions

Setting up and managing integrations requires the integrations:configure permission (included in the Administrators group by default). Once an integration is active, all team members on the connected boards benefit from it automatically -- no individual setup needed.