# Issue Status Updated (Instant) — Linear

> Emit new event when an issue's workflow state changes (e.g., Todo to In Progress). Returns issue with previous and current state info. Can filter by specific target state. Uses OAuth authentication. See Linear docs for additional info here.

- Key: `linear-new-issue-status-updated`
- Type: Trigger (Instant)
- Version: 0.1.21
- App: Linear (`linear`) — https://pipedream.com/apps/linear.md
- This page (HTML): https://pipedream.com/apps/linear/triggers/new-issue-status-updated
- Source: https://github.com/PipedreamHQ/pipedream/blob/master/components/linear/sources/new-issue-status-updated/new-issue-status-updated.mjs

## Description

Emit new event when an issue's workflow state changes (e.g., Todo to In Progress). Returns issue with previous and current state info. Can filter by specific target state. Uses OAuth authentication. See Linear docs for additional info [here](https://linear.app/developers/webhooks).

## Props

| Prop | Type | Required | Description |
|---|---|---|---|
| `teamId` | `string` | Yes | The identifier or key of the team associated with the issue Options are loaded from the connected account. |
| `projectId` | `string` | No | The identifier or key of the project associated with the issue Options are loaded from the connected account. |
| `stateId` | `string` | No | Emit issues that are updated to this state Options are loaded from the connected account. |

## Returns

Events emitted by Linear.

## Run it

**TypeScript**

```ts
import { PipedreamClient } from "@pipedream/sdk"

const pd = new PipedreamClient({
  projectId: process.env.PIPEDREAM_PROJECT_ID!,
  clientId: process.env.PIPEDREAM_CLIENT_ID!,
  clientSecret: process.env.PIPEDREAM_CLIENT_SECRET!,
  projectEnvironment: "production",
})

const deployed = await pd.triggers.deploy({
  id: "linear-new-issue-status-updated",
  externalUserId: "{external_user_id}", // any stable ID for this user in your system
  configuredProps: {
    linear: { authProvisionId: "apn_xxxxxxx" },
    teamId: "Team ID",
    projectId: "Project",
  },
  webhookUrl: "https://example.com/webhooks/linear",
})

console.log(deployed.id)
```

**cURL**

```bash
curl -X POST https://api.pipedream.com/v1/connect/{project_id}/triggers/deploy \
  -H "Content-Type: application/json" \
  -H "X-PD-Environment: production" \
  -H "Authorization: Bearer {access_token}" \
  -d '{
    "external_user_id": "{external_user_id}",
    "id": "linear-new-issue-status-updated",
    "webhook_url": "https://example.com/webhooks/linear",
    "configured_props": {
      "linear": { "authProvisionId": "apn_xxxxxxx" },
      "teamId": "Team ID",
      "projectId": "Project"
    }
  }'
```

**MCP**

MCP servers expose Linear actions as on-demand tools.

Issue Status Updated (Instant) is an event source, so your application deploys it with the Connect SDK or API and then either receives each event at a webhook URL or retrieves events on demand with the trigger events API.

## Event delivery

Every event is sent to the HTTP endpoint you choose when you deploy the source. Or: no webhook required — your app or agent can fetch recent events from the [trigger events API](https://pipedream.com/docs/connect/api-reference/list-trigger-events.md) instead.

---

- App: https://pipedream.com/apps/linear.md · All apps: https://pipedream.com/apps
