Integration
Linear and Plandeck
Plandeck syncs a Linear project read-only into a schedule. The work lives in Linear; the schedule across it, with dependencies, critical path, workload and the calculation across several teams, lives in Plandeck. Every change in Linear arrives as a proposal the planner applies or dismisses. Plandeck never writes back to Linear.
What you use it for
- Plan a programme or PI across several Linear teams, including the dependencies between the teams.
- Plan Linear work next to non-agile work: deliveries, permits, delivery dates and parties that don't know sprints.
- Let stakeholders follow along and track progress without anyone having to work in Linear.
What you need
- A Plandeck organization in which you are owner or planner. The integration is included in project-day pricing, the per-planner plan and the Organization subscription.
- A Linear workspace with a personal API key with read access.
- Optional: permission to create a webhook in Linear, so changes arrive immediately.
Installation in four steps
- 1
Create an API key in Linear
In Linear, go to Settings → API and create a Personal API key. Read access is enough: Plandeck never writes to Linear. Keep the key at hand; you paste it into Plandeck in the next step.
- 2
Add the source in Plandeck
In Plandeck, open Integrations → Linear (sync) and choose Add source. Give the source a name and paste the API key. Plandeck tests the key first and then stores it encrypted; from then on you only see it masked. Right after saving, Plandeck shows a webhook URL and a secret once.
- 3
Create the webhook in Linear
In Linear, go to Settings → API → Webhooks and create a new webhook with the URL and secret from step 2, for the Issues resource. From then on every status change in Linear arrives in Plandeck as a proposal. The integration also works without a webhook: you then fetch changes manually.
- 4
Link a project
Open the Plandeck project that becomes the schedule across the Linear work and choose Import → Sync with Linear in the toolbar. Pick the source and the Linear project, set the mapping and check the preview: per row you see what is new and which assumptions were made. Nothing is created until you confirm.
For every later sync you choose Sync with Linear again; the preview then shows per row whether it is new, changed, unchanged or no longer in the source.
What gets synced
| Linear | Plandeck | Notes |
|---|---|---|
| Issue | Task | The title becomes the task name, optionally with the identifier in front (PLA-12 · …). |
| Issue with sub-issues | Group | One level deep; the group spans its tasks. |
| Team | Value on the dimension | With the Teams project setting; otherwise a category. Renamable or excludable per team. |
| Cycle | Period on the grid | With a sprint, iteration or cycle grid; the first sync sets the grid to the cycles. |
| Estimate | Duration in workdays | By default one point = one workday, configurable. Without an estimate a default duration applies, flagged in the preview. |
| Due date | End date | The start follows from the duration. Without a date the task sits at the start of its cycle or at the project start. |
| Blocked by | Dependency | Finish-to-start, only between issues in the same project. |
| Project milestone | Milestone | Only milestones with a date. |
| State | Progress | Done becomes 100%, started a configurable percentage. Plandeck never invents a completion moment. |
Changes arrive as proposals
A change in Linear never silently edits your schedule. Through the webhook, or at the next sync, it shows up as an External source item in the project's review, with a link to the issue. The planner sees the effect on end date, cost and progress up front and chooses apply or dismiss.
- State changedproposal to adjust the progress
- Different cycleproposal to move the task to that period
- Different estimateproposal to adjust the duration
- Issue deletedproposal to mark the task as "no longer in source"
On a re-sync, name, group, team, category and dependencies follow the source. Dates follow the source only as long as you haven't moved them in Plandeck yourself. An issue that disappears from Linear isn't deleted but marked; you decide what happens to it.
Security and data
- Read-only: Plandeck makes no writing call to Linear at all.
- The API key is stored encrypted and only shown masked; you can delete it at any time. Tasks then stay, with their reference to the issue.
- Incoming webhooks are verified against Linear's signature; invalid deliveries are rejected and logged. Every delivery is processed at most once.
- Plandeck fetches titles, teams, cycles, estimates, dates, states and blocking relations; descriptions and comments from Linear are not fetched or stored.
- Hosted in the European Union, under Plandeck's privacy statement.
Limitations
- No writing back to Linear; that is a product choice, not a temporary limitation.
- Sign-in with a personal API key; OAuth comes later.
- Sub-issues one level deep; assignees don't become resources in Plandeck.
- New issues arrive at the next sync, not through the webhook.
- A proposal is never applied automatically; the planner decides.
Need help?
The manual in Plandeck has its own chapter on the Linear integration, and the manual assistant answers questions about it. If you get stuck, ask your question through the contact form.