Denly

Connect Linear to coding agents

Want a coding agent to build your Linear issues? Denly does that: label an issue and an agent plans, builds, and opens a pull request, commenting back and moving the issue through your workflow.

Linear

Import Linear issues and comments for a team with signed webhooks, workflow updates, and assignment routing.

1. Create a Linear API key

In Linear:

  1. Open Settings → API.
  2. Create a personal API key for an account that can read and update the target team.
  3. Name it Denly and copy it immediately.

Keep this API key for Denly's API key field. Do not put it in Linear's webhook form. Read Linear webhooks.

2. Create the Denly connection

Create the connection before creating the Linear webhook, because Denly generates the callback URL.

Open Workspace → Integrations → Connect → Linear and use:

  • External workspace or repository: the Linear team ID.
  • API base URL: https://api.linear.app/graphql.
  • API key: paste the Linear API key.
  • Trigger tag: denly.
  • Trigger on create: leave disabled for the first test.
  • Initial Denly stage: Plan first.

Routing is optional. Leave Default Denly assignee blank for unassigned tasks, or choose one workspace member to own everything from this connection.

For per-person routing use Route by external assignee: each row pairs one person in the provider (left) with a workspace member (right), and + adds another row. Routing follows the item's assignee in the provider, not whoever created it, and a matching row beats the default above.

The left-hand value must be the identifier the provider actually sends, which the field's placeholder names for you. Matching ignores surrounding spaces and letter case, but nothing else: a near-miss routes nothing and looks the same as a broken integration.

Create the connection and copy the generated Webhook URL. The initial Denly secret is only a placeholder for this Linear flow; Linear generates the signing secret in the next step. Linear connections comment back and move workflow states; they do not log time, so no worklog setting is offered.

3. Create the Linear webhook

In Linear:

  1. Open Settings → API → Webhooks.
  2. Select New webhook.
  3. For URL, paste the Webhook URL copied from Denly. It looks like https://your-public-host/integrations/linear/webhook/YOUR_CONNECTION_ID.
  4. Select the same target team.
  5. Subscribe to Issue and Comment resources.
  6. Create/save the webhook.
  7. Open the webhook details and copy Linear's generated signing secret.

Do not paste the signing secret back into Linear. Linear already stores it; Denly needs a copy to verify the Linear-Signature header.

4. Put Linear's signing secret in Denly

Return to Workspace → Integrations, open the Linear connection menu, and choose Edit. Find Linear webhook signing secret, paste the signing secret copied from Linear, and select Save changes.

This replaces Denly's initial placeholder secret with the secret Linear actually uses to sign deliveries. The value belongs in Denly, not in the Linear URL field.

5. Test and troubleshoot

  1. Create or update a Linear issue in the connected team.
  2. Add the denly label.
  3. Open Workspace → Integrations → Linear → Recent events.

Processed creates a task; Skipped means the team, label, assignee or create rule declined it. An empty list means the Linear signing secret stored in Denly does not match the webhook's current one, so nothing is reaching the queue – if you regenerated or replaced the Linear webhook, paste the new secret into Denly again. Map exact Linear workflow-state names.

See also

All integrations and providers → · Connect GitHub Issues to coding agents · Connect GitLab Issues to coding agents · Full documentation