# Issue Status Updated (Instant) — Linear (API key)

> 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. See Linear docs for additional info See the documentation.

- Key: `linear_app-new-issue-status-updated`
- Type: Trigger (Instant)
- Version: 0.1.24
- App: Linear (API key) (`linear_app`) — https://pipedream.com/apps/linear-app.md
- This page (HTML): https://pipedream.com/apps/linear-app/triggers/new-issue-status-updated
- Source: https://github.com/PipedreamHQ/pipedream/blob/master/components/linear_app/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. See Linear docs for additional info [See the documentation](https://linear.app/developers/webhooks).

## Props

| Prop | Type | Required | Description |
|---|---|---|---|
| `teamId` | `string` | Yes | The team's id as returned by the Linear API — a UUID such as 9d1c3f7e-2b48-4c6a-9f1e-5a7b8c9d0e1f. The short team key shown in issue identifiers such as ENG-123 is rejected. Use Get Teams to discover valid team IDs. |
| `projectId` | `string` | No | The UUID of the project (e.g. a1b2c3d4-0000-0000-0000-000000000001). Use List Projects to find valid project IDs. |
| `stateId` | `string` | No | Emit issues that are updated to this state |

## Returns

Events emitted by Linear (API key).

## 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_app-new-issue-status-updated",
  externalUserId: "{external_user_id}", // any stable ID for this user in your system
  configuredProps: {
    linear_app: { authProvisionId: "apn_xxxxxxx" },
    teamId: "Team ID",
    projectId: "Project",
  },
  webhookUrl: "https://example.com/webhooks/linear-app",
})

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_app-new-issue-status-updated",
    "webhook_url": "https://example.com/webhooks/linear-app",
    "configured_props": {
      "linear_app": { "authProvisionId": "apn_xxxxxxx" },
      "teamId": "Team ID",
      "projectId": "Project"
    }
  }'
```

**MCP**

MCP servers expose Linear (API key) 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-app.md · All apps: https://pipedream.com/apps
