docs
Integrations

Integrations

Every tool nima connects to, what each brings in or writes out, its status, and how connecting and disconnecting work.

nima integrations are the connections between your workspace and the tools your team already uses. Most integrations are signal sources: messages, issues, errors and calls arrive as evidence, each piece linked back to where it came from. GitHub also carries specs through to pull requests, and Jira syncs with your nima board.

On for every workspace. Integrations are connected from the Integrations page in the nima web app, which is the home screen. Only workspace owners and admins can connect, disconnect or switch an integration. Everything the integrations produce (signals, beacons, specs) is worked in Slack, over MCP and over the REST API.

Integrations by category

The tables list every integration nima offers, its status in the Integrations page, and what it does. Status is the value nima reports for each integration (stable, beta or coming_soon, returned by GET /v1/integrations); the Integrations page marks Beta integrations with a Beta tag and groups Coming soon ones last.

Development integrations

IntegrationWhat it doesStatus
GitHubTracks pull requests and review comments against your specs, indexes your code, and posts a drift-check comment on pull requestsStable
PostHogTurns production error-tracking issues into signalsBeta
SentryTurns unresolved Sentry issues into signals, each linked back to the issueBeta

Project management integrations

IntegrationWhat it doesStatus
LinearLinear issues, comments and customer requests become signalsBeta
JiraJira issues become cards on your nima board, and card status changes can be written back to JiraBeta
ClickUpTasks and comments from the ClickUp lists you pick become signalsBeta
NotionConnect-only today: nima stores the connection, and reads nothing from Notion. Approval-gated writes are built but not reachable yetStable

Documentation integrations

IntegrationWhat it doesStatus
Google DriveReads Docs, Slides, Sheets, text and Markdown files in shared drives and files shared company-wide. A Workspace super admin sets it upBeta
ConfluenceReads pages, blog posts and their footer comments, skipping restricted pagesBeta

CRM integrations

IntegrationWhat it doesStatus
HubSpotConnecting and scanning work; importing customer voice (tickets, surveys, deal reasons, and meeting, call, email and note text) as customer signals is rolling out, so ask the nima teamBeta

Communication integrations

IntegrationWhat it doesStatus
SlackTurns messages in the channels nima watches into signals, and is where people talk to nimaBeta
GranolaTurns Granola meeting summaries into signalsBeta

Sending signals from other tools with a webhook

Tools without a native integration can post signals to nima with a generic webhook. See Webhooks.

Figma is coming soon and cannot be connected yet.

Connecting an integration

Connecting an integration takes a workspace owner or admin on the Integrations page. Open the card for the tool, click Connect, authorize nima with the provider, and land back on the Integrations page with the card connected.

  • OAuth integrations. GitHub, Slack, Linear, Jira, ClickUp, Notion, HubSpot, PostHog and Sentry authorize through the provider. The provider may ask for its own admin approval, depending on your settings there.
  • Granola uses an API key. Granola has no OAuth. You paste one Granola API key, and nima checks the key with Granola before it saves it.
  • One connection per workspace. A connection belongs to the nima workspace, not to the person who set it up. Connecting again replaces the existing connection.

Members cannot connect integrations. The management routes behind the Integrations page require a signed-in owner or admin session.

Disconnecting an integration

Disconnecting an integration removes it from your workspace. Click Disconnect on the integration's card and confirm, or send DELETE /v1/integrations/:slug from a signed-in owner or admin session. nima runs the provider's disconnect step, then deletes the connection record. Signals already created from the integration stay.

What disconnecting revokes at the source differs:

IntegrationWhat nima does at the providerWhat you should also do
LinearRevokes the access and refresh tokens at Linear (best effort)Nothing
PostHogRevokes the tokens at PostHogNothing
HubSpotRevokes the refresh token at HubSpot and purges the account data nima indexedNothing
JiraDeletes nima's webhooks at Jira (best effort); does not revoke the Atlassian grant. Cards already on the board stayRemove the app authorization in Atlassian
ClickUpDeletes nima's rows only; per-list webhooks at ClickUp are not deleted and ClickUp has no revoke endpointRemove the app in ClickUp
NotionDeletes nima's rows only; does not revoke at NotionRemove the connection inside Notion
Google DriveRemoves the indexed copies and what nima learned from themRemove the client ID in the Google Admin console (Change or remove)
ConfluenceRemoves the indexed copies and what nima learned from themRemove the app in Atlassian (Disconnect)
SentryDeletes nima's rows only; Sentry has no revoke endpointRemove the app from Sentry's authorized applications
GitHubDeletes nima's rows only; the GitHub App stays installed on your GitHub accountUninstall the app from your GitHub organization or account settings
SlackRemoves nima's installation and user mappings; the app stays installed in SlackUninstall the app in Slack (Disconnect Slack)
GranolaStops polling and marks the stored key deletedDelete the key in Granola (Disconnect Granola)

The integration On/Paused switch does not stop syncing

The On/Paused switch on a connected integration's card is a label only. It changes the state shown in the panel and stops nothing: signals, webhooks and syncs keep running while an integration reads Paused. To stop an integration, disconnect it.

Which integrations nima can write to

nima writes to a few integrations. Some writes are part of the pipeline and run whenever the integration is connected: Slack answers and shipped notices, Jira status write-back, and the GitHub drift-check comment. Messages that nima starts on its own are outbound actions: Slack DMs (workspace-rule reminders to ticket assignees, approval cards, notices and questions to a teammate) and Jira comments are live today, and Linear, Notion and GitHub comments are built but nothing proposes them yet. Outbound actions go through the approval and policy model in Outbound actions and need the workspace's dispatchEnabled setting on (see Availability).

IntegrationWhat nima writesState
SlackThreaded replies, answers to mentions and DMs, and shipped notices in the channels and threads signals came from; DMs sent as outbound actions (workspace-rule reminders to ticket assignees, approval cards, notices, questions to a teammate)Replies and notices live; outbound DMs live once dispatchEnabled is on
JiraStatus changes on cards that came from Jira, written back as transitions, and comments through outbound dispatchLive; status write-back only when Jira offers a matching transition; comments need a Jira writer connected (see Jira)
LinearComments on issues, posted as the person who connected LinearBuilt; nothing is proposed to Linear yet
GitHubA drift-check comment on pull requests (when the app has pull-request write access); branches and pull requests from agent operations through the optional writer appDrift comment live; writer app is opt-in and publishing is off until an admin enables it; outbound comments on pull requests are built but nothing proposes them yet (plain issues are refused)
NotionPage comments and appended blocks, always approved by a personBuilt, not reachable yet

One-time reminders you schedule for yourself are not outbound actions; they work in every workspace with Slack linked.

nima never creates issues in Linear or Jira, and changes a Jira issue only by moving its status through a transition.

Managing integrations over the API

The routes behind the Integrations page (GET /v1/integrations, GET /v1/integrations/:slug, and POST .../connect, .../enable, .../disable, DELETE /v1/integrations/:slug) require a signed-in owner or admin session and reject API keys and OAuth access tokens. Connecting, disconnecting and pausing are therefore not available to keys.

Two groups of integration tools do accept a key. The first is get_signal_source (GET /v1/signals/:id/source), which returns the original document behind a signal, such as the Slack thread or the Granola note. It needs the sources:read scope, which only owners and admins can grant; see Pipeline tools and Signals. The second is the writer and publishing settings: connect_jira_writer, connect_linear_writer, the GitHub writer tools and the action-policy tools. These need the integrations:write scope, which an owner or admin gets only from Slack with /nima mcp-key integrations; see Outbound tools, Operation tools and Writers.

On this page