Skip to main content

Integrations — Connect External Services

Integrations connect FleetQ to external services via OAuth2. Once connected, agents and workflows can interact with these services through their APIs — creating issues, sending messages, querying repositories, and more. Integrations also power inbound Signal connectors for GitHub, Linear, and Jira.

Scenario: An engineering team connects their GitHub and Linear accounts. A workflow agent automatically creates a Linear issue when a GitHub PR is merged without a linked ticket, then posts a Slack summary to the engineering channel.

Available integrations

Integration Capabilities
GitHub Repository management, issue and pull request operations, webhook subscriptions, workflow run status, releases, and branch management.
Linear Issue tracking, project and cycle management, team membership, comment threads, and label operations.
Jira Issue tracking, sprint management, project configuration, comment operations, and transition workflows.
Slack Messaging, channel management, and user lookups via OAuth2 bot scopes.
Activepieces Point FleetQ at a self-hosted Activepieces instance and gain immediate access to 660+ pre-built integrations — Stripe, Slack, GitHub, Google Sheets, HubSpot, Salesforce, Notion, OpenAI, and many more. See the Activepieces section below.
WhatsApp Verified webhook endpoint for WhatsApp Business Cloud API. Ingests inbound messages as Signals and delivers outbound messages via the whatsapp outbound connector. GET challenge + POST delivery receipts supported.
Google Drive / Notion / Confluence Read-only integrations used primarily to power Chatbot and Knowledge Base indexing. Documents are ingested, chunked, and embedded for retrieval by agents.
More coming soon New first-party integrations are added regularly. Check the Integrations page for the latest available providers.

Activepieces — 660+ integrations at once

Activepieces is an open-source automation platform. Each "piece" it ships with is natively exposed as an MCP server endpoint. FleetQ's Activepieces connector lets any team that runs an Activepieces instance auto-import all of them as mcp_http Tool records — zero per-connector maintenance, maximum integration surface.

  • Hourly sync job discovers new pieces and updates existing ones.
  • Piece filter — restrict which pieces are imported (e.g. only stripe, slack, notion).
  • SSRF guard — the Activepieces URL is validated on every sync and API call.
  • Manual trigger — run integration_manage({action: "activepieces_sync"}) to refresh on demand.
Imported pieces show up in the regular Tools list and can be attached to agents like any other MCP HTTP tool. When Activepieces updates a piece, the sync job updates the corresponding Tool record in place — assignments are preserved.

Connecting an integration

All integrations use the standard OAuth2 authorization code flow. Tokens are stored encrypted at rest using your team's per-team key.

  1. 1 Go to Integrations in the sidebar.
  2. 2 Click Connect next to the provider you want to add.
  3. 3 Authorize FleetQ in the provider's OAuth screen and grant the requested scopes.
  4. 4 You are redirected back to FleetQ. The integration status changes to Connected.
OAuth credentials are encrypted at rest using your team's per-team encryption key — the same mechanism used for all sensitive credentials in FleetQ. You can rotate or revoke access at any time from the provider's own OAuth settings page.

Using integrations in agents and workflows

Once connected, an integration exposes a set of named capabilities — discrete actions the connected account can perform. Agents and workflow nodes can invoke these capabilities without handling OAuth tokens directly.

Use the integration_capabilities MCP tool to list all available actions for a connected integration, then use integration_execute to run an action against the live service.

Example: list GitHub capabilities
// integration_capabilities({ integration_id: "..." })
{
  "capabilities": [
    { "action": "create_issue",    "description": "Create a new issue in a repository" },
    { "action": "list_issues",     "description": "List issues with filters" },
    { "action": "create_pr",       "description": "Open a pull request" },
    { "action": "list_repos",      "description": "List accessible repositories" },
    { "action": "merge_pr",        "description": "Merge a pull request" }
  ]
}
Example: execute an action
// integration_execute({ integration_id: "...", action: "create_issue", params: { ... } })
{
  "result": {
    "id": 42,
    "url": "https://github.com/acme/api/issues/42",
    "title": "Automated: missing Linear ticket for PR #118"
  }
}

Integration status and health

Ping an integration at any time to verify that the stored token is still valid and the remote service is reachable. If a token expires or is revoked at the provider, FleetQ marks the integration as disconnected and stops routing agent actions through it.

bash
# Via API
curl -X POST https://your-fleet.example.com/api/v1/integrations/{id}/ping \
  -H "Authorization: Bearer YOUR_TOKEN"
Expiring OAuth tokens trigger an automatic disconnection event. Re-authorize from the Integrations page to restore connectivity. Some providers (e.g. Linear) issue long-lived refresh tokens — FleetQ silently exchanges them before they expire.

Signal connectors

Integrations also power inbound Signal connectors. Once you have connected GitHub, Linear, or Jira, you can create per-repository or per-team subscriptions that automatically ingest events as Signals — issues created, PRs opened, comments added, and more.

Signal connector setup is covered in the Signals documentation. The short version: connect the integration first here, then configure subscriptions under Signal Sources → Subscriptions.

Each subscription gets its own unique webhook URL with an opaque UUIDv7 path segment. This provides security for providers like Jira that do not sign webhook payloads.

MCP tools

The following MCP tools are available for integration management. Use them via the MCP server or the AI Assistant.

Tool Description
integration_list List all integrations for the team with their connection status.
integration_connect Initiate an OAuth2 connection flow and return the authorization URL.
integration_disconnect Revoke stored tokens and disconnect an integration.
integration_ping Verify that a connected integration's token is valid and the service is reachable.
integration_execute Run a named action against a connected integration with the provided parameters.
integration_capabilities List all actions available for a connected integration.

API endpoints

All integration endpoints are under /api/v1/integrations and require a Sanctum bearer token. Full OpenAPI 3.1 docs are available at /docs/api.

Method Path Description
GET /api/v1/integrations List all integrations for the team.
GET /api/v1/integrations/{id} Get a single integration with full status details.
POST /api/v1/integrations/connect Initiate an OAuth2 connection — returns the authorization URL.
POST /api/v1/integrations/{id}/disconnect Disconnect an integration and revoke stored tokens.
POST /api/v1/integrations/{id}/ping Ping the connected service to verify token validity.
POST /api/v1/integrations/{id}/execute Execute a named action against the connected service.
GET /api/v1/integrations/{id}/capabilities List available actions for a connected integration.