Summary
This page explains the Linear integration at a glance and the two integration directions:- Outbound (Nota → Linear): Nota uses a Linear API key to read issues, users, teams, and labels, and to post comments and file issues from workflow runs.
- Inbound (Linear → Nota): Linear sends webhook events (comments, issues created/updated) into Nota to trigger workflows and produce in-thread replies.
➿ Linear (team feature)
Connecting Linear has two directions:- Outbound (Nota → Linear) — Nota reads issues and posts comments / files issues. Needs an API key.
- Inbound (Linear → Nota) —
@notamentions in Linear comments get an in-thread reply, and new / assigned issues can auto-run your workflows. Needs a dedicated Nota account and a webhook.
For the full experience — where replies post as Nota and teammates can
@-mention it — create the dedicated Nota account in the Inbound section first, then use its API key for the outbound field below. Linear attributes every API action to whichever account owns the key.Outbound — let Nota act on your workspace
Step 1 — Create the Linear API key
- Log in to your workspace at linear.app.
- Click your profile name (top-left) → Settings.
- Under Personal → Security & access, find Personal API keys.
- Click New API key, name it, and choose permissions.
- Click Create, then copy and save the key — Linear shows it only once. This is your Linear API Key.
Nota’s read tools (
linearListIssues, linearSearchIssues, linearListTeams, …) work with a read-scoped key. But inbound @mention replies and issue-filing post comments/issues with this same key, so grant write access if you want those. Actions are attributed to the account that owns the key — create it as the dedicated Nota account (Inbound → Step 1) so replies appear under Nota.Step 2 — Find your Team ID (the UUID)
Get the UUID either way:-
From the Linear API (needs only the key from Step 1):
Copy the
id(the UUID) of the team whosekeymatches yours. Linear’sAuthorizationheader takes the raw key — noBearerprefix. - From Nota chat (once the API key is saved in Step 3): ask “list my Linear teams” — Nota returns each team’s UUID, key, and name.
Step 3 — Configure Nota
Go to app.trynota.ai/integrations and click Linear Settings. Fill in:
Click Update Settings — Nota uses it immediately, no redeploy needed. On save Nota also resolves and stores your Linear Organization ID automatically; that’s what routes inbound webhooks to your team later.
You’re done with outbound. In Nota chat, say “list my top 10 Linear issues” — you should see your issues. Then try “file a Linear ticket for the last failing run” — it should create an issue (this is the path that fails with
teamId must be a UUID if Step 2 holds the key instead of the UUID).Inbound — @nota mentions & issue events
For@nota mentions to work, Nota needs a real, mentionable Linear account. Teammates must be able to @-mention it, and Nota must be able to tell its own comments apart from users’ (so it never replies to itself).
Step 1 — Create a dedicated Nota account
- Create (or reuse) an email for the bot, e.g.
nota@<your-domain>. - In Linear → Settings → Members → Invite, invite that email to the workspace.
- Accept the invite from that inbox, set the display name to Nota, and note its username / handle — the exact text after
@when you mention it (if the@-menu shows@nota, the handle isnota).
Step 2 — Note the two Nota identities
Linear uses different identifiers for the two inbound features. Grab whichever you need:
The bot user UUID (for assignment only) — Linear doesn’t show it in the UI:
Mention detection reads the Nota Bot Username (the handle in the comment text), not the UUID. The Nota Bot User ID (UUID) drives assignment detection only. You can set just the username for mentions, just the UUID for assignment, or both.
Step 3 — Create the webhook in Linear
- In Linear → Settings → API → Webhooks, click New webhook.
-
Set the URL to:
-
Under data-change events, enable:
- Create. Linear generates a Signing secret — copy it (you paste it into Nota next).
Unlike GitLab, you don’t invent this secret — Linear generates it on webhook creation, and Nota HMAC-verifies every event against it.
Step 4 — Configure Nota
Back in app.trynota.ai/integrations → Linear Settings, fill in:
Click Update Settings.
Step 5 — Test it
Mention Nota from a different account. As yourself (not the Nota account), open a Linear issue, add a comment, and type the bot’s handle —
@nota what does this issue cover?. Post it — Nota replies in-thread within a few seconds.Plain @nota text is detected; you don’t need the autocomplete chip. The @ must start the comment or follow a space (so an email like x@nota.com or a longer handle like @nota-bot is not treated as a mention).Comment edits are ignored — only newly-created comments trigger a reply (edited / removed comments are dropped before dispatch). Post a fresh comment rather than editing one.
Linear logs every delivery under Settings → API → Webhooks → your webhook → recent deliveries. A
200 {"status":"skipped"} means the event reached Nota but wasn’t a recognised mention (the handle wasn’t in the comment, or it was self-authored); a 202 Accepted means it dispatched.
