# Shortcut

> Keep Shortcut in step with your workflows: create, update, find and delete stories, comment on them, manage their checklists and links, and plan the epics and iterations they belong to.

App · Project Management · 15 actions. Web page: https://docs.lodol.com/docs/integrations/shortcut

## Actions

### Add comment

Comment on a story. Markdown and @mentions work.

**Inputs**

- Story (`story`, text, required): The story. Pick one, paste its link from Shortcut, or use one from an earlier step.
- Comment (`text`, text, required): The comment. Markdown and @mentions work.

**Outputs**

- `app_url` (text): A link to the comment in Shortcut.
- `author_id` (text): The id of the person who wrote it.
- `created_at` (text): When it was created (ISO 8601, UTC).
- `id` (number): The comment's id.
- `story_id` (number): The story it's on.
- `text` (text): What the comment says.
- `updated_at` (text): When it last changed (ISO 8601, UTC).

**Example output**

```json
{
  "app_url": "https://app.shortcut.com/acme/story/123#activity-2001",
  "author_id": "5f4bc6a1-0a1b-4b8e-9c3d-2e6f7a8b9c0d",
  "created_at": "2026-09-27T16:42:49Z",
  "id": 2001,
  "story_id": 123,
  "text": "Confirmed on Safari 18.",
  "updated_at": "2026-09-27T16:42:49Z"
}
```

### Add task

Add an item to a story's checklist.

**Inputs**

- Story (`story`, text, required): The story. Pick one, paste its link from Shortcut, or use one from an earlier step.
- Task (`description`, text, required): What needs doing.
- Owners (`owners`, list): Who's doing it.

**Outputs**

- `complete` (true/false): Whether it's checked off.
- `completed_at` (text): When it was checked off.
- `created_at` (text): When it was created (ISO 8601, UTC).
- `description` (text): What the task says.
- `id` (number): The task's id, which Update task takes.
- `owner_ids` (list): The ids of the people it's assigned to.
- `position` (number): Its place in the story's checklist.
- `story_id` (number): The story it's on.
- `updated_at` (text): When it last changed (ISO 8601, UTC).

**Example output**

```json
{
  "complete": false,
  "completed_at": null,
  "created_at": "2026-09-27T16:42:49Z",
  "description": "Reproduce on Safari 18",
  "id": 1001,
  "owner_ids": [],
  "position": 1,
  "story_id": 123,
  "updated_at": "2026-09-27T16:42:49Z"
}
```

### Create epic

Add an epic: a larger piece of work that groups stories.

**Inputs**

- Name (`name`, text, required): The epic's name.
- Description (`description`, text): What it's about. Markdown works.
- State (`state`, text): To Do, In Progress or Done, as your workspace names them.
- Owners (`owners`, list): The people leading it.
- Teams (`teams`, list): The teams working on it.
- Requester (`requester`, text): Who asked for it. Pick someone, or use an email address from an earlier step.
- Labels (`labels`, list): Labels to put on the epic.
- Planned start date (`planned_start`, date): When work is planned to start.
- Target date (`deadline`, date): When it should be done.

**Outputs**

- `app_url` (text): A link to the epic in Shortcut.
- `completed` (true/false): Whether it's done.
- `created_at` (text): When it was created (ISO 8601, UTC).
- `deadline` (text): Its target date.
- `description` (text): The epic's description (Markdown).
- `epic_state_id` (number): The id of the epic's state.
- `group_ids` (list): The ids of its teams.
- `id` (number): The epic's id.
- `labels` (list): The labels on it.
- `name` (text): The epic's name.
- `owner_ids` (list): The ids of its owners.
- `planned_start_date` (text): When it's planned to start.
- `started` (true/false): Whether work has started on it.
- `state_name` (text): The name of the epic's state, e.g. In Progress.
- `stats` (object): Progress across its stories.
- `updated_at` (text): When it last changed (ISO 8601, UTC).

**Example output**

```json
{
  "app_url": "https://app.shortcut.com/acme/epic/45",
  "completed": false,
  "created_at": "2026-09-27T16:42:49Z",
  "deadline": "2026-12-18T12:00:00Z",
  "description": "Fix every checkout bug customers hit this quarter.",
  "epic_state_id": 500000003,
  "group_ids": [
    "61a4f2e0-3b5c-4d7e-8f90-1a2b3c4d5e6f"
  ],
  "id": 45,
  "labels": [],
  "name": "Checkout reliability",
  "owner_ids": [
    "5f4bc6a1-0a1b-4b8e-9c3d-2e6f7a8b9c0d"
  ],
  "planned_start_date": "2026-10-01T12:00:00Z",
  "started": true,
  "state_name": "In Progress",
  "stats": {
    "num_points": 21,
    "num_points_done": 8,
    "num_stories_done": 3,
    "num_stories_started": 2,
    "num_stories_total": 8,
    "num_stories_unstarted": 3
  },
  "updated_at": "2026-09-27T16:42:49Z"
}
```

### Create iteration

Add an iteration (a sprint) with its start and end dates.

**Inputs**

- Name (`name`, text, required): The iteration's name, e.g. Sprint 12.
- Start date (`start_date`, date, required): The first day.
- End date (`end_date`, date, required): The last day.
- Description (`description`, text): Its goal or notes.
- Teams (`teams`, list): The teams working on it.
- Labels (`labels`, list): Labels to put on the iteration.

**Outputs**

- `app_url` (text): A link to the iteration in Shortcut.
- `created_at` (text): When it was created (ISO 8601, UTC).
- `description` (text): The iteration's description.
- `end_date` (text): The day it ends.
- `group_ids` (list): The ids of its teams.
- `id` (number): The iteration's id.
- `labels` (list): The labels on it.
- `name` (text): The iteration's name.
- `start_date` (text): The day it starts.
- `status` (text): unstarted, started or done.
- `updated_at` (text): When it last changed (ISO 8601, UTC).

**Example output**

```json
{
  "app_url": "https://app.shortcut.com/acme/iteration/67",
  "created_at": "2026-09-27T16:42:49Z",
  "description": "Ship the checkout fixes.",
  "end_date": "2026-10-16",
  "group_ids": [],
  "id": 67,
  "labels": [],
  "name": "Sprint 12",
  "start_date": "2026-10-05",
  "status": "unstarted",
  "updated_at": "2026-09-27T16:42:49Z"
}
```

### Create story

Add a feature, bug or chore. Only the name is needed; it lands where Shortcut puts new stories unless you pick a state.

**Inputs**

- Name (`name`, text, required): The story's title.
- Description (`description`, text): More detail. Markdown works.
- Type (`story_type`, text): Feature, bug or chore. One of: `feature`, `bug`, `chore`.
- State (`state`, text): The workflow state. Leave empty to put it where Shortcut puts new stories (the team's default workflow, if you pick a team).
- Team (`team`, text): The team it belongs to.
- Owners (`owners`, list): The people working on it.
- Requester (`requester`, text): Who asked for it. Pick someone, or use an email address from an earlier step.
- Labels (`labels`, list): Labels to put on the story.
- Epic (`epic`, text): The epic it belongs to.
- Iteration (`iteration`, text): The iteration (sprint) it's in.
- Estimate (`estimate`, text): Its point estimate, from your workspace's scale.
- Due date (`due_date`, date): When it's due.
- Custom fields (`custom_fields`, object): Your workspace's custom fields, such as Priority or Severity. Type the value as Shortcut shows it, e.g. High. Fields left empty aren't changed.
- Links (`links`, list): Web links to attach, such as a support ticket.

**Outputs**

- `app_url` (text): A link to the story in Shortcut.
- `blocked` (true/false): Whether another story is blocking it.
- `comments` (list): Its comments.
- `completed` (true/false): Whether it's done.
- `completed_at` (text): When it was completed.
- `created_at` (text): When it was created (ISO 8601, UTC).
- `deadline` (text): When it's due (ISO 8601, UTC).
- `description` (text): The story's description (Markdown).
- `epic_id` (number): The epic it belongs to.
- `estimate` (number): Its point estimate, if estimated.
- `external_links` (list): Web links attached to it.
- `group_id` (text): The id of its team.
- `id` (number): The story's number (sc-123 is story 123).
- `iteration_id` (number): The iteration it's in.
- `labels` (list): The labels on it.
- `name` (text): The story's title.
- `owner_ids` (list): The ids of its owners.
- `requested_by_id` (text): The id of the person who requested it.
- `started` (true/false): Whether work has started on it.
- `started_at` (text): When it was started.
- `state_name` (text): The name of the state it's in, e.g. In Development.
- `story_type` (text): feature, bug or chore.
- `tasks` (list): Its checklist tasks.
- `updated_at` (text): When it last changed (ISO 8601, UTC).
- `workflow_state_id` (number): The id of the state it's in.

**Example output**

```json
{
  "app_url": "https://app.shortcut.com/acme/story/123",
  "blocked": false,
  "comments": [],
  "completed": false,
  "created_at": "2026-09-27T16:42:49Z",
  "deadline": "2026-10-15T12:00:00Z",
  "description": "Reported by a customer through the support form.",
  "epic_id": 45,
  "estimate": 2,
  "external_links": [],
  "group_id": "61a4f2e0-3b5c-4d7e-8f90-1a2b3c4d5e6f",
  "id": 123,
  "iteration_id": 67,
  "labels": [
    {
      "id": 88,
      "name": "customer-reported"
    }
  ],
  "name": "Checkout button does nothing on Safari",
  "owner_ids": [
    "5f4bc6a1-0a1b-4b8e-9c3d-2e6f7a8b9c0d"
  ],
  "requested_by_id": "5f4bc6a1-0a1b-4b8e-9c3d-2e6f7a8b9c0d",
  "started": false,
  "state_name": "Ready for Development",
  "story_type": "bug",
  "tasks": [],
  "updated_at": "2026-09-27T16:42:49Z",
  "workflow_state_id": 500000008
}
```

### Delete epic

Permanently delete an epic. Its stories are kept and just leave the epic. Deleting one that's already gone succeeds.

**Inputs**

- Epic (`epic`, text, required): The epic. Pick one, paste its link from Shortcut, or use one from an earlier step.

**Outputs**

- `already_deleted` (true/false): True if the epic had already been deleted.
- `deleted` (true/false): True once the epic is gone.
- `epic_id` (number): The epic that was deleted.

**Example output**

```json
{
  "already_deleted": false,
  "deleted": true,
  "epic_id": 45
}
```

### Delete iteration

Permanently delete an iteration. Its stories are kept and just leave the iteration. Deleting one that's already gone succeeds.

**Inputs**

- Iteration (`iteration`, text, required): The iteration. Pick one, paste its link from Shortcut, or use one from an earlier step.

**Outputs**

- `already_deleted` (true/false): True if the iteration had already been deleted.
- `deleted` (true/false): True once the iteration is gone.
- `iteration_id` (number): The iteration that was deleted.

**Example output**

```json
{
  "already_deleted": false,
  "deleted": true,
  "iteration_id": 67
}
```

### Delete story

Permanently delete a story with its tasks and comments. Deleting one that's already gone succeeds.

**Inputs**

- Story (`story`, text, required): The story. Pick one, paste its link from Shortcut, or use one from an earlier step.

**Outputs**

- `already_deleted` (true/false): True if the story had already been deleted.
- `deleted` (true/false): True once the story is gone.
- `story_id` (number): The story that was deleted.

**Example output**

```json
{
  "already_deleted": false,
  "deleted": true,
  "story_id": 123
}
```

### Find stories

Search stories by text, or list the ones in a state, epic, iteration or team, or owned by someone. Archived stories are left out.

**Inputs**

- Search for (`text`, text): Words to search for, as in Shortcut's search box. Shortcut's search operators work too, e.g. is:blocked.
- State (`state`, text): The workflow state, e.g. In Development.
- Type (`story_type`, text): Feature, bug or chore. One of: `feature`, `bug`, `chore`.
- Owner (`owner`, text): Only stories this person owns.
- Team (`team`, text): The team it belongs to.
- Epic (`epic`, text): Only stories in this epic.
- Iteration (`iteration`, text): Only stories in this iteration.
- Label (`label`, text): Only stories with this label.
- Changed since (`updated_after`, date and time): Only stories changed after this moment.
- Limit (`limit`, number): How many to return, 1 to 250. Default 25. From 1 to 250.

**Outputs**

- `count` (number): How many stories were returned.
- `first` (object): The first story, or null if none matched.
- `stories` (list): The matching stories, most recently changed first (or best match first for a text search).

**Example output**

```json
{
  "count": 1,
  "first": {
    "app_url": "https://app.shortcut.com/acme/story/123",
    "blocked": false,
    "comments": [],
    "completed": false,
    "created_at": "2026-09-27T16:42:49Z",
    "deadline": "2026-10-15T12:00:00Z",
    "description": "Reported by a customer through the support form.",
    "epic_id": 45,
    "estimate": 2,
    "external_links": [],
    "group_id": "61a4f2e0-3b5c-4d7e-8f90-1a2b3c4d5e6f",
    "id": 123,
    "iteration_id": 67,
    "labels": [
      {
        "id": 88,
        "name": "customer-reported"
      }
    ],
    "name": "Checkout button does nothing on Safari",
    "owner_ids": [
      "5f4bc6a1-0a1b-4b8e-9c3d-2e6f7a8b9c0d"
    ],
    "requested_by_id": "5f4bc6a1-0a1b-4b8e-9c3d-2e6f7a8b9c0d",
    "started": false,
    "state_name": "Ready for Development",
    "story_type": "bug",
    "tasks": [],
    "updated_at": "2026-09-27T16:42:49Z",
    "workflow_state_id": 500000008
  },
  "stories": [
    {
      "app_url": "https://app.shortcut.com/acme/story/123",
      "blocked": false,
      "comments": [],
      "completed": false,
      "created_at": "2026-09-27T16:42:49Z",
      "deadline": "2026-10-15T12:00:00Z",
      "description": "Reported by a customer through the support form.",
      "epic_id": 45,
      "estimate": 2,
      "external_links": [],
      "group_id": "61a4f2e0-3b5c-4d7e-8f90-1a2b3c4d5e6f",
      "id": 123,
      "iteration_id": 67,
      "labels": [
        {
          "id": 88,
          "name": "customer-reported"
        }
      ],
      "name": "Checkout button does nothing on Safari",
      "owner_ids": [
        "5f4bc6a1-0a1b-4b8e-9c3d-2e6f7a8b9c0d"
      ],
      "requested_by_id": "5f4bc6a1-0a1b-4b8e-9c3d-2e6f7a8b9c0d",
      "started": false,
      "state_name": "Ready for Development",
      "story_type": "bug",
      "tasks": [],
      "updated_at": "2026-09-27T16:42:49Z",
      "workflow_state_id": 500000008
    }
  ]
}
```

### Get epic

Read an epic with its state and progress: how many of its stories are done, started and not started.

**Inputs**

- Epic (`epic`, text, required): The epic. Pick one, paste its link from Shortcut, or use one from an earlier step.

**Outputs**

- `app_url` (text): A link to the epic in Shortcut.
- `completed` (true/false): Whether it's done.
- `created_at` (text): When it was created (ISO 8601, UTC).
- `deadline` (text): Its target date.
- `description` (text): The epic's description (Markdown).
- `epic_state_id` (number): The id of the epic's state.
- `group_ids` (list): The ids of its teams.
- `id` (number): The epic's id.
- `labels` (list): The labels on it.
- `name` (text): The epic's name.
- `owner_ids` (list): The ids of its owners.
- `planned_start_date` (text): When it's planned to start.
- `started` (true/false): Whether work has started on it.
- `state_name` (text): The name of the epic's state, e.g. In Progress.
- `stats` (object): Progress across its stories.
- `updated_at` (text): When it last changed (ISO 8601, UTC).

**Example output**

```json
{
  "app_url": "https://app.shortcut.com/acme/epic/45",
  "completed": false,
  "created_at": "2026-09-27T16:42:49Z",
  "deadline": "2026-12-18T12:00:00Z",
  "description": "Fix every checkout bug customers hit this quarter.",
  "epic_state_id": 500000003,
  "group_ids": [
    "61a4f2e0-3b5c-4d7e-8f90-1a2b3c4d5e6f"
  ],
  "id": 45,
  "labels": [],
  "name": "Checkout reliability",
  "owner_ids": [
    "5f4bc6a1-0a1b-4b8e-9c3d-2e6f7a8b9c0d"
  ],
  "planned_start_date": "2026-10-01T12:00:00Z",
  "started": true,
  "state_name": "In Progress",
  "stats": {
    "num_points": 21,
    "num_points_done": 8,
    "num_stories_done": 3,
    "num_stories_started": 2,
    "num_stories_total": 8,
    "num_stories_unstarted": 3
  },
  "updated_at": "2026-09-27T16:42:49Z"
}
```

### Get story

Read a story with its state, owners, tasks and comments.

**Inputs**

- Story (`story`, text, required): The story. Pick one, paste its link from Shortcut, or use one from an earlier step.

**Outputs**

- `app_url` (text): A link to the story in Shortcut.
- `blocked` (true/false): Whether another story is blocking it.
- `comments` (list): Its comments.
- `completed` (true/false): Whether it's done.
- `completed_at` (text): When it was completed.
- `created_at` (text): When it was created (ISO 8601, UTC).
- `deadline` (text): When it's due (ISO 8601, UTC).
- `description` (text): The story's description (Markdown).
- `epic_id` (number): The epic it belongs to.
- `estimate` (number): Its point estimate, if estimated.
- `external_links` (list): Web links attached to it.
- `group_id` (text): The id of its team.
- `id` (number): The story's number (sc-123 is story 123).
- `iteration_id` (number): The iteration it's in.
- `labels` (list): The labels on it.
- `name` (text): The story's title.
- `owner_ids` (list): The ids of its owners.
- `requested_by_id` (text): The id of the person who requested it.
- `started` (true/false): Whether work has started on it.
- `started_at` (text): When it was started.
- `state_name` (text): The name of the state it's in, e.g. In Development.
- `story_type` (text): feature, bug or chore.
- `tasks` (list): Its checklist tasks.
- `updated_at` (text): When it last changed (ISO 8601, UTC).
- `workflow_state_id` (number): The id of the state it's in.

**Example output**

```json
{
  "app_url": "https://app.shortcut.com/acme/story/123",
  "blocked": false,
  "comments": [],
  "completed": false,
  "created_at": "2026-09-27T16:42:49Z",
  "deadline": "2026-10-15T12:00:00Z",
  "description": "Reported by a customer through the support form.",
  "epic_id": 45,
  "estimate": 2,
  "external_links": [],
  "group_id": "61a4f2e0-3b5c-4d7e-8f90-1a2b3c4d5e6f",
  "id": 123,
  "iteration_id": 67,
  "labels": [
    {
      "id": 88,
      "name": "customer-reported"
    }
  ],
  "name": "Checkout button does nothing on Safari",
  "owner_ids": [
    "5f4bc6a1-0a1b-4b8e-9c3d-2e6f7a8b9c0d"
  ],
  "requested_by_id": "5f4bc6a1-0a1b-4b8e-9c3d-2e6f7a8b9c0d",
  "started": false,
  "state_name": "Ready for Development",
  "story_type": "bug",
  "tasks": [],
  "updated_at": "2026-09-27T16:42:49Z",
  "workflow_state_id": 500000008
}
```

### Link stories

Record that one story blocks, is blocked by, duplicates or relates to another.

**Inputs**

- Story (`story`, text, required): The story. Pick one, paste its link from Shortcut, or use one from an earlier step.
- Relationship (`relationship`, text, required): Read it as a sentence: this story blocks the other story. One of: `blocks`, `blocked_by` (Is blocked by), `duplicates`, `relates_to` (Relates to).
- Other story (`other_story`, text, required): The other story. Pick one, paste its link, or use one from an earlier step.

**Outputs**

- `created_at` (text): When it was created (ISO 8601, UTC).
- `id` (number): The link's id.
- `object_id` (number): The other story.
- `subject_id` (number): The story that blocks, duplicates or relates to the other.
- `updated_at` (text): When it last changed (ISO 8601, UTC).
- `verb` (text): blocks, duplicates or relates to.

**Example output**

```json
{
  "created_at": "2026-09-27T16:42:49Z",
  "id": 3001,
  "object_id": 124,
  "subject_id": 123,
  "updated_at": "2026-09-27T16:42:49Z",
  "verb": "blocks"
}
```

### Update epic

Move an epic to another state or change its details. Only the fields you fill in change.

**Inputs**

- Epic (`epic`, text, required): The epic. Pick one, paste its link from Shortcut, or use one from an earlier step.
- Name (`name`, text): The epic's name.
- Description (`description`, text): What it's about. Markdown works.
- State (`state`, text): To Do, In Progress or Done, as your workspace names them.
- Owners (`owners`, list): The people leading it. Replaces the epic's current owners.
- Teams (`teams`, list): The teams working on it.
- Requester (`requester`, text): Who asked for it. Pick someone, or use an email address from an earlier step.
- Add labels (`add_labels`, list): Labels to add. The epic's existing labels are kept.
- Planned start date (`planned_start`, date): When work is planned to start.
- Target date (`deadline`, date): When it should be done.

**Outputs**

- `app_url` (text): A link to the epic in Shortcut.
- `completed` (true/false): Whether it's done.
- `created_at` (text): When it was created (ISO 8601, UTC).
- `deadline` (text): Its target date.
- `description` (text): The epic's description (Markdown).
- `epic_state_id` (number): The id of the epic's state.
- `group_ids` (list): The ids of its teams.
- `id` (number): The epic's id.
- `labels` (list): The labels on it.
- `name` (text): The epic's name.
- `owner_ids` (list): The ids of its owners.
- `planned_start_date` (text): When it's planned to start.
- `started` (true/false): Whether work has started on it.
- `state_name` (text): The name of the epic's state, e.g. In Progress.
- `stats` (object): Progress across its stories.
- `updated_at` (text): When it last changed (ISO 8601, UTC).

**Example output**

```json
{
  "app_url": "https://app.shortcut.com/acme/epic/45",
  "completed": false,
  "created_at": "2026-09-27T16:42:49Z",
  "deadline": "2026-12-18T12:00:00Z",
  "description": "Fix every checkout bug customers hit this quarter.",
  "epic_state_id": 500000003,
  "group_ids": [
    "61a4f2e0-3b5c-4d7e-8f90-1a2b3c4d5e6f"
  ],
  "id": 45,
  "labels": [],
  "name": "Checkout reliability",
  "owner_ids": [
    "5f4bc6a1-0a1b-4b8e-9c3d-2e6f7a8b9c0d"
  ],
  "planned_start_date": "2026-10-01T12:00:00Z",
  "started": true,
  "state_name": "In Progress",
  "stats": {
    "num_points": 21,
    "num_points_done": 8,
    "num_stories_done": 3,
    "num_stories_started": 2,
    "num_stories_total": 8,
    "num_stories_unstarted": 3
  },
  "updated_at": "2026-09-27T16:42:49Z"
}
```

### Update story

Move a story to another state, reassign it, or change its details. Only the fields you fill in change.

**Inputs**

- Story (`story`, text, required): The story. Pick one, paste its link from Shortcut, or use one from an earlier step.
- Name (`name`, text): The story's title.
- Description (`description`, text): More detail. Markdown works.
- Type (`story_type`, text): Feature, bug or chore. One of: `feature`, `bug`, `chore`.
- State (`state`, text): The workflow state, e.g. In Development.
- Team (`team`, text): The team it belongs to.
- Owners (`owners`, list): The people working on it. Replaces the story's current owners.
- Requester (`requester`, text): Who asked for it. Pick someone, or use an email address from an earlier step.
- Add labels (`add_labels`, list): Labels to add. The story's existing labels are kept.
- Epic (`epic`, text): The epic it belongs to.
- Iteration (`iteration`, text): The iteration (sprint) it's in.
- Estimate (`estimate`, text): Its point estimate, from your workspace's scale.
- Due date (`due_date`, date): When it's due.
- Custom fields (`custom_fields`, object): Your workspace's custom fields, such as Priority or Severity. Type the value as Shortcut shows it, e.g. High. Fields left empty aren't changed.
- Links (`links`, list): Web links to add. The story's existing links are kept.

**Outputs**

- `app_url` (text): A link to the story in Shortcut.
- `blocked` (true/false): Whether another story is blocking it.
- `comments` (list): Its comments.
- `completed` (true/false): Whether it's done.
- `completed_at` (text): When it was completed.
- `created_at` (text): When it was created (ISO 8601, UTC).
- `deadline` (text): When it's due (ISO 8601, UTC).
- `description` (text): The story's description (Markdown).
- `epic_id` (number): The epic it belongs to.
- `estimate` (number): Its point estimate, if estimated.
- `external_links` (list): Web links attached to it.
- `group_id` (text): The id of its team.
- `id` (number): The story's number (sc-123 is story 123).
- `iteration_id` (number): The iteration it's in.
- `labels` (list): The labels on it.
- `name` (text): The story's title.
- `owner_ids` (list): The ids of its owners.
- `requested_by_id` (text): The id of the person who requested it.
- `started` (true/false): Whether work has started on it.
- `started_at` (text): When it was started.
- `state_name` (text): The name of the state it's in, e.g. In Development.
- `story_type` (text): feature, bug or chore.
- `tasks` (list): Its checklist tasks.
- `updated_at` (text): When it last changed (ISO 8601, UTC).
- `workflow_state_id` (number): The id of the state it's in.

**Example output**

```json
{
  "app_url": "https://app.shortcut.com/acme/story/123",
  "blocked": false,
  "comments": [],
  "completed": false,
  "created_at": "2026-09-27T16:42:49Z",
  "deadline": "2026-10-15T12:00:00Z",
  "description": "Reported by a customer through the support form.",
  "epic_id": 45,
  "estimate": 2,
  "external_links": [],
  "group_id": "61a4f2e0-3b5c-4d7e-8f90-1a2b3c4d5e6f",
  "id": 123,
  "iteration_id": 67,
  "labels": [
    {
      "id": 88,
      "name": "customer-reported"
    }
  ],
  "name": "Checkout button does nothing on Safari",
  "owner_ids": [
    "5f4bc6a1-0a1b-4b8e-9c3d-2e6f7a8b9c0d"
  ],
  "requested_by_id": "5f4bc6a1-0a1b-4b8e-9c3d-2e6f7a8b9c0d",
  "started": false,
  "state_name": "Ready for Development",
  "story_type": "bug",
  "tasks": [],
  "updated_at": "2026-09-27T16:42:49Z",
  "workflow_state_id": 500000008
}
```

### Update task

Check off a task on a story's checklist, or change what it says or who's doing it.

**Inputs**

- Story (`story`, text, required): The story. Pick one, paste its link from Shortcut, or use one from an earlier step.
- Task (`task`, text, required): The task. Pick one, or use a task id from an earlier step.
- Status (`status`, text): Check it off, or uncheck it. One of: `done`, `not_done` (Not done).
- Task text (`description`, text): New wording for the task.
- Owners (`owners`, list): Who's doing it. Replaces the task's current owners.

**Outputs**

- `complete` (true/false): Whether it's checked off.
- `completed_at` (text): When it was checked off.
- `created_at` (text): When it was created (ISO 8601, UTC).
- `description` (text): What the task says.
- `id` (number): The task's id, which Update task takes.
- `owner_ids` (list): The ids of the people it's assigned to.
- `position` (number): Its place in the story's checklist.
- `story_id` (number): The story it's on.
- `updated_at` (text): When it last changed (ISO 8601, UTC).

**Example output**

```json
{
  "complete": true,
  "completed_at": "2026-09-28T09:00:00Z",
  "created_at": "2026-09-27T16:42:49Z",
  "description": "Reproduce on Safari 18",
  "id": 1001,
  "owner_ids": [],
  "position": 1,
  "story_id": 123,
  "updated_at": "2026-09-27T16:42:49Z"
}
```
