> ## Documentation Index
> Fetch the complete documentation index at: https://docs.rootly.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Workflows

> Automate Linear issue creation, updates, and sub-issues based on incident events in Rootly using workflow actions with team, label, and assignee controls.

Once Linear is connected, you configure workflows that automatically create and update Linear issues as incidents move through their lifecycle. This page covers the three main workflow actions — creating issues, updating them, and creating sub-issues for action items — as well as setting up Triage Responsibility to keep your Linear queue synced with whoever is on call.

## Create a Linear Issue Workflow

This is the core workflow: whenever an incident is declared in Rootly, a corresponding Linear issue is created automatically with incident data populated into the fields you configure.

<Steps>
  <Step title="Open Workflows and create a new workflow">
    Go to **Rootly → Workflows → Create Workflow**.

    <Frame>
      <img alt="Rootly Workflows page" src="https://mintcdn.com/rootly/OenEeqU87ULdARbO/images/integrations/linear/workflows/image-1.png?fit=max&auto=format&n=OenEeqU87ULdARbO&q=85&s=fd571652b39bbc356922ab669e86d8ec" width="186" height="491" data-path="images/integrations/linear/workflows/image-1.png" />
    </Frame>

    <Frame>
      <img alt="Create Workflow button" src="https://mintcdn.com/rootly/OenEeqU87ULdARbO/images/integrations/linear/workflows/image-2.png?fit=max&auto=format&n=OenEeqU87ULdARbO&q=85&s=ff3ca4ecb0e89ad177d35ddbae2d7a5e" width="1165" height="578" data-path="images/integrations/linear/workflows/image-2.png" />
    </Frame>
  </Step>

  <Step title="Choose a workflow type">
    Select the event type that should trigger this workflow — for example, **Incident**, **Retrospective**, or **Pulse**.

    <Frame>
      <img alt="Workflow type selection showing Incident, Retrospective, and Pulse options" src="https://mintcdn.com/rootly/OenEeqU87ULdARbO/images/integrations/linear/workflows/image-3.png?fit=max&auto=format&n=OenEeqU87ULdARbO&q=85&s=66856627743afaf6462232d22412b3cd" width="1365" height="630" data-path="images/integrations/linear/workflows/image-3.png" />
    </Frame>
  </Step>

  <Step title="Configure triggers">
    Triggers define when this workflow fires. Choose the event that should kick off Linear issue creation.

    <Frame>
      <img alt="Workflow trigger configuration options" src="https://mintcdn.com/rootly/OenEeqU87ULdARbO/images/integrations/linear/workflows/image-triggers.png?fit=max&auto=format&n=OenEeqU87ULdARbO&q=85&s=d068ff78ad702841b5f26a43b8b10c82" width="621" height="305" data-path="images/integrations/linear/workflows/image-triggers.png" />
    </Frame>

    | Trigger                         | When It Fires                            |
    | ------------------------------- | ---------------------------------------- |
    | **Incident Created**            | A new incident opens                     |
    | **Incident Updated**            | Severity, status, or other fields change |
    | **Incident Commander Assigned** | Someone takes ownership of the incident  |
    | **Manual Trigger**              | Run on demand from the Rootly UI         |
  </Step>

  <Step title="Add conditions (optional)">
    Conditions let you filter which incidents trigger the workflow — for example, only SEV-1 incidents, only specific teams, or only production environments.

    <Frame>
      <img alt="Workflow conditions panel showing filter options" src="https://mintcdn.com/rootly/OenEeqU87ULdARbO/images/integrations/linear/workflows/image-condition.png?fit=max&auto=format&n=OenEeqU87ULdARbO&q=85&s=fd22712ae704cd8db60c406457c21a00" width="626" height="334" data-path="images/integrations/linear/workflows/image-condition.png" />
    </Frame>
  </Step>

  <Step title="Add a Linear action">
    Click **Add Action**, search for **Linear**, and select **Create Linear Issue**.

    <Frame>
      <img alt="Add Action button with Linear search" src="https://mintcdn.com/rootly/OenEeqU87ULdARbO/images/integrations/linear/workflows/image-4.png?fit=max&auto=format&n=OenEeqU87ULdARbO&q=85&s=ef71434d2e9cd8e24c26da9ab464b77e" width="677" height="221" data-path="images/integrations/linear/workflows/image-4.png" />
    </Frame>

    <Frame>
      <img alt="Linear action picker showing Create Linear Issue option" src="https://mintcdn.com/rootly/OenEeqU87ULdARbO/images/integrations/linear/workflows/image-5.png?fit=max&auto=format&n=OenEeqU87ULdARbO&q=85&s=d2f64b294b2b8b98b3af8c20a04128c9" width="893" height="525" data-path="images/integrations/linear/workflows/image-5.png" />
    </Frame>

    <Frame>
      <img alt="Create Linear Issue action configuration panel" src="https://mintcdn.com/rootly/OenEeqU87ULdARbO/images/integrations/linear/workflows/image-6.png?fit=max&auto=format&n=OenEeqU87ULdARbO&q=85&s=e2dd804a146a554cbbfe22f3767b0e71" width="446" height="536" data-path="images/integrations/linear/workflows/image-6.png" />
    </Frame>
  </Step>

  <Step title="Configure the action fields">
    Fill in the fields to control how the Linear issue is created:

    <ParamField body="Team" type="required">
      The Linear team where the issue will be created.
    </ParamField>

    <ParamField body="State" type="string">
      The initial workflow state for the issue — for example, **Todo** or **In Progress**.
    </ParamField>

    <ParamField body="Project" type="string">
      Optional. Associate the issue with a specific Linear project.
    </ParamField>

    <ParamField body="Labels" type="array">
      Add labels to the issue for filtering and triage.
    </ParamField>

    <ParamField body="Title" type="string">
      The issue title. Supports Liquid — use `{{ incident.title }}` to default to the incident title.
    </ParamField>

    <ParamField body="Description" type="string">
      The issue body. Supports Liquid — use `{{ incident.summary }}` to populate with the incident summary.
    </ParamField>

    <ParamField body="Priority" type="string">
      The issue priority. Select **Auto** to automatically map incident severity to a corresponding Linear priority, or choose **Urgent**, **High**, **Medium**, or **Low** manually.
    </ParamField>

    <ParamField body="Assignee" type="string">
      Email address of the Linear user to assign the issue to.
    </ParamField>
  </Step>

  <Step title="Save the workflow">
    Click **Add**, give your workflow a name, and click **Create Workflow**.
  </Step>
</Steps>

## Update a Linear Issue

Use the **Update Linear Issue** action to keep the Linear issue in sync as the incident progresses — for example, moving it to Done when the incident resolves, or updating priority when severity changes.

<Warning>
  Create a **separate workflow** for updates. Do not add the Update action to your Create workflow — they need to trigger on different events.
</Warning>

Configure the action with:

<ParamField body="Linear Issue ID" type="string">
  Use `{{ incident.linear_issue_id }}` to reference the issue that was created when the incident was declared.
</ParamField>

Common use cases:

* Move to **Done** when the incident is resolved
* Update **priority** when severity escalates
* Change **assignee** as ownership transfers

## Create Linear Sub-Issues

To track action items as Linear sub-issues, create a separate workflow triggered by **Action Item Created** and use the **Create Linear Sub-Issue** action.

<ParamField body="Parent Issue" type="string">
  Use `{{ incident.linear_issue_id }}` to nest the sub-issue under the parent incident issue.
</ParamField>

<ParamField body="Title" type="string">
  Use `{{ action_item.summary }}` to populate the sub-issue title from the action item.
</ParamField>

This keeps all follow-up work organized under the parent incident issue in Linear.

***

## Triage Responsibility

Connect Linear's [Triage Responsibility](https://linear.app/docs/triage#triage-responsibility) feature to your Rootly on-call schedules so new Linear issues are automatically assigned to whoever is currently on call. This keeps your triage queue aligned with your incident response rotation.

<Steps>
  <Step title="Create a schedule in Rootly">
    Go to **Schedules** and click **Create Schedule**.

    <Frame>
      <img alt="Rootly Schedules page" src="https://mintcdn.com/rootly/OenEeqU87ULdARbO/images/integrations/linear/workflows/image-7.png?fit=max&auto=format&n=OenEeqU87ULdARbO&q=85&s=840735b3d19ef7c0d410631303a2d552" width="432" height="527" data-path="images/integrations/linear/workflows/image-7.png" />
    </Frame>

    <Frame>
      <img alt="Create Schedule button" src="https://mintcdn.com/rootly/OenEeqU87ULdARbO/images/integrations/linear/workflows/image-8.png?fit=max&auto=format&n=OenEeqU87ULdARbO&q=85&s=5487a813cb5eb7b32191467b1eb812ea" width="1172" height="407" data-path="images/integrations/linear/workflows/image-8.png" />
    </Frame>
  </Step>

  <Step title="Enable Linear sync on the schedule">
    In the **Integrations** tab, toggle on **Sync with Linear**.

    <Frame>
      <img alt="Integrations tab in schedule creation" src="https://mintcdn.com/rootly/OenEeqU87ULdARbO/images/integrations/linear/workflows/image-9.png?fit=max&auto=format&n=OenEeqU87ULdARbO&q=85&s=5c754686d7416cbd47220ec91de23121" width="1174" height="438" data-path="images/integrations/linear/workflows/image-9.png" />
    </Frame>

    <Frame>
      <img alt="Sync with Linear toggle enabled" src="https://mintcdn.com/rootly/OenEeqU87ULdARbO/images/integrations/linear/workflows/image-10.png?fit=max&auto=format&n=OenEeqU87ULdARbO&q=85&s=ddfceafa66c801f0607dfdd37d9f903c" width="420" height="188" data-path="images/integrations/linear/workflows/image-10.png" />
    </Frame>
  </Step>

  <Step title="Configure and save the schedule">
    Give the schedule a name, add members, and click **Save**.

    <Frame>
      <img alt="Schedule name and members configuration" src="https://mintcdn.com/rootly/OenEeqU87ULdARbO/images/integrations/linear/workflows/image-11.png?fit=max&auto=format&n=OenEeqU87ULdARbO&q=85&s=f56632e20c259a90abea913143e3641a" width="311" height="401" data-path="images/integrations/linear/workflows/image-11.png" />
    </Frame>

    <Frame>
      <img alt="Add members to the schedule" src="https://mintcdn.com/rootly/OenEeqU87ULdARbO/images/integrations/linear/workflows/image-12.png?fit=max&auto=format&n=OenEeqU87ULdARbO&q=85&s=f718bd4eeffa9fd3e3124aa34d9e46cb" width="274" height="551" data-path="images/integrations/linear/workflows/image-12.png" />
    </Frame>
  </Step>

  <Step title="Open your team settings in Linear">
    In Linear, navigate to **Settings → Teams** and select the team you want to configure.

    <Frame>
      <img alt="Linear Settings menu" src="https://mintcdn.com/rootly/OenEeqU87ULdARbO/images/integrations/linear/workflows/image-12.1.png?fit=max&auto=format&n=OenEeqU87ULdARbO&q=85&s=01d0c9cb8d8f6e19b754f5ccb8d1b886" width="537" height="257" data-path="images/integrations/linear/workflows/image-12.1.png" />
    </Frame>

    <Frame>
      <img alt="Linear Teams section in administration" src="https://mintcdn.com/rootly/OenEeqU87ULdARbO/images/integrations/linear/workflows/image-13.png?fit=max&auto=format&n=OenEeqU87ULdARbO&q=85&s=c29916165d0c09485045d0ed73518ada" width="236" height="276" data-path="images/integrations/linear/workflows/image-13.png" />
    </Frame>

    <Frame>
      <img alt="Team selection in Linear settings" src="https://mintcdn.com/rootly/OenEeqU87ULdARbO/images/integrations/linear/workflows/image-14.png?fit=max&auto=format&n=OenEeqU87ULdARbO&q=85&s=c5c504b390cacbe50c0b9d73667b72cb" width="1121" height="222" data-path="images/integrations/linear/workflows/image-14.png" />
    </Frame>
  </Step>

  <Step title="Set Triage Responsibility to your Rootly schedule">
    Under **Workflow → Triage**, find **Triage responsibility** and select **Use schedule**. Choose the Rootly schedule you just created.

    <Frame>
      <img alt="Workflow Triage settings in Linear" src="https://mintcdn.com/rootly/OenEeqU87ULdARbO/images/integrations/linear/workflows/image-15.png?fit=max&auto=format&n=OenEeqU87ULdARbO&q=85&s=2584e2a3bab641dc5fecabe065b4fb9c" width="694" height="291" data-path="images/integrations/linear/workflows/image-15.png" />
    </Frame>

    <Frame>
      <img alt="Triage responsibility assignment settings" src="https://mintcdn.com/rootly/OenEeqU87ULdARbO/images/integrations/linear/workflows/image-16.png?fit=max&auto=format&n=OenEeqU87ULdARbO&q=85&s=07265e3a5ca9fbae3a5888b38c9a9b53" width="685" height="193" data-path="images/integrations/linear/workflows/image-16.png" />
    </Frame>

    <Frame>
      <img alt="Rootly schedule selected for triage responsibility" src="https://mintcdn.com/rootly/OenEeqU87ULdARbO/images/integrations/linear/workflows/image-17.png?fit=max&auto=format&n=OenEeqU87ULdARbO&q=85&s=98df7f81c9e7e70ff927d34b5e70f18e" width="669" height="301" data-path="images/integrations/linear/workflows/image-17.png" />
    </Frame>
  </Step>
</Steps>

<Tip>
  New Linear issues in triage will now be automatically assigned to whoever is on call in Rootly — no manual triage queue management needed.
</Tip>
