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
| Integration | What it does | Status |
|---|---|---|
| GitHub | Tracks pull requests and review comments against your specs, indexes your code, and posts a drift-check comment on pull requests | Stable |
| PostHog | Turns production error-tracking issues into signals | Beta |
| Sentry | Turns unresolved Sentry issues into signals, each linked back to the issue | Beta |
Project management integrations
| Integration | What it does | Status |
|---|---|---|
| Linear | Linear issues, comments and customer requests become signals | Beta |
| Jira | Jira issues become cards on your nima board, and card status changes can be written back to Jira | Beta |
| ClickUp | Tasks and comments from the ClickUp lists you pick become signals | Beta |
| Notion | Connect-only today: nima stores the connection, and reads nothing from Notion. Approval-gated writes are built but not reachable yet | Stable |
Documentation integrations
| Integration | What it does | Status |
|---|---|---|
| Google Drive | Reads Docs, Slides, Sheets, text and Markdown files in shared drives and files shared company-wide. A Workspace super admin sets it up | Beta |
| Confluence | Reads pages, blog posts and their footer comments, skipping restricted pages | Beta |
CRM integrations
| Integration | What it does | Status |
|---|---|---|
| HubSpot | Connecting 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 team | Beta |
Communication integrations
| Integration | What it does | Status |
|---|---|---|
| Slack | Turns messages in the channels nima watches into signals, and is where people talk to nima | Beta |
| Granola | Turns Granola meeting summaries into signals | Beta |
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:
| Integration | What nima does at the provider | What you should also do |
|---|---|---|
| Linear | Revokes the access and refresh tokens at Linear (best effort) | Nothing |
| PostHog | Revokes the tokens at PostHog | Nothing |
| HubSpot | Revokes the refresh token at HubSpot and purges the account data nima indexed | Nothing |
| Jira | Deletes nima's webhooks at Jira (best effort); does not revoke the Atlassian grant. Cards already on the board stay | Remove the app authorization in Atlassian |
| ClickUp | Deletes nima's rows only; per-list webhooks at ClickUp are not deleted and ClickUp has no revoke endpoint | Remove the app in ClickUp |
| Notion | Deletes nima's rows only; does not revoke at Notion | Remove the connection inside Notion |
| Google Drive | Removes the indexed copies and what nima learned from them | Remove the client ID in the Google Admin console (Change or remove) |
| Confluence | Removes the indexed copies and what nima learned from them | Remove the app in Atlassian (Disconnect) |
| Sentry | Deletes nima's rows only; Sentry has no revoke endpoint | Remove the app from Sentry's authorized applications |
| GitHub | Deletes nima's rows only; the GitHub App stays installed on your GitHub account | Uninstall the app from your GitHub organization or account settings |
| Slack | Removes nima's installation and user mappings; the app stays installed in Slack | Uninstall the app in Slack (Disconnect Slack) |
| Granola | Stops polling and marks the stored key deleted | Delete 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).
| Integration | What nima writes | State |
|---|---|---|
| Slack | Threaded 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 |
| Jira | Status changes on cards that came from Jira, written back as transitions, and comments through outbound dispatch | Live; status write-back only when Jira offers a matching transition; comments need a Jira writer connected (see Jira) |
| Linear | Comments on issues, posted as the person who connected Linear | Built; nothing is proposed to Linear yet |
| GitHub | A 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 app | Drift 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) |
| Notion | Page comments and appended blocks, always approved by a person | Built, 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.
Outbound, approval and identity MCP tools
Reference for the MCP tools that approve or discard nima's drafted messages, set action policies, connect Jira and Linear writers, and link people's accounts.
Slack
Install nima in Slack: scopes, which messages become signals, per-channel settings, emoji, clarifying questions, ship notices and disconnecting.