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

# Export tasks

> Export your tasks as Markdown, JSON, or CSV, with optional filters. Your data stays yours, in an open format you can read anywhere.

Cogno lets you take your tasks out at any time. From **Settings → General → Export
tasks**, open the **Export** modal, choose a format (Markdown, JSON, or CSV) and
optional filters, then download. This is the counterpart to
[task import](/docs/task-import) — and the CSV form can be imported.

## What's included

* The full portable state of each task, oldest first: title, status, description,
  project (by name), parent (by title), assignee and collaborators (by name),
  tags, due/start dates, board position, recurrence, and source/metadata.
* Internal identifiers you can't act on are resolved to portable values (the
  project is its **name**, the parent is the parent task's **title**, people are
  **names**), so the export means something in another tool.

### Filtering

The modal filters by **status**, **project**, **assignee**, and a **date range**
(matched against each task's start–due window). By default it exports the live
statuses — **archived and rejected are off**; tick their chips to include them.
Selecting every status (and leaving the other filters empty) exports every task.

<Note>
  A task's collaborative-edit history is not exported — the current description
  text is what's included.
</Note>

## Formats

<CardGroup cols={3}>
  <Card title="Markdown" icon="markdown">
    One readable `.md` document — a heading per task with its status, project,
    assignees, tags, due date, and description. Best for reading or sharing.
  </Card>

  <Card title="JSON" icon="brackets-curly">
    Structured `.json` — the **complete** state of every task. Best for scripts,
    backups, and tooling.
  </Card>

  <Card title="CSV" icon="file-csv">
    A spreadsheet-friendly `.csv` table with importer-compatible columns. Opens
    in Excel or Sheets, and can be **imported to bulk-create tasks** (best
    effort — see the CSV notes).
  </Card>
</CardGroup>

The downloaded file is named `cogno-<workspace>-tasks.<ext>`.

## JSON — complete task state

JSON is the fullest form. Each task carries every portable field:

```json theme={"system"}
{
  "workspace_id": 39,
  "workspace_title": "Acme",
  "exported_at": "2026-07-19T09:12:00+00:00",
  "task_count": 128,
  "tasks": [
    {
      "id": 12,
      "title": "Ship the export button",
      "status": "active",
      "description": "Add Markdown/JSON/CSV export.",
      "project": "Platform",
      "parent_id": null,
      "parent_title": null,
      "assignee": { "name": "Ada Lovelace", "workspace_member_id": 41 },
      "collaborators": [{ "name": "Grace Hopper", "workspace_member_id": 42 }],
      "tags": [{ "name": "backend", "color": "#4285F4" }],
      "due_date": "2026-07-25",
      "start_date": "2026-07-20",
      "position": 1,
      "recurrence": { "frequency": "weekly", "interval": 1, "ends_on": null },
      "source_type": "slack_channel",
      "source_id": null,
      "source_url": "https://acme.slack.com/archives/C1/p1",
      "metadata": {},
      "intents": null,
      "created_at": "2026-07-10T04:20:00+00:00",
      "updated_at": "2026-07-18T22:00:00+00:00"
    }
  ]
}
```

**Excluded on purpose:** the collaborative-edit CRDT blob and description
version history (the readable text is `description`) and the derived subtask
count. Everything else — including assignee vs. collaborator roles and board
`position` — is preserved.

## CSV — spreadsheet and re-import

The CSV has columns that match what [task import](/docs/task-import) expects, with
**names and references instead of internal ids**, so an export can be edited in
a spreadsheet and imported to create tasks:

| Column                    | Details                                                        |
| ------------------------- | -------------------------------------------------------------- |
| `Title`                   | Task title (required on import).                               |
| `Description`             | Task description.                                              |
| `Status`                  | Workflow status.                                               |
| `Assignee`                | Primary assignee **name**.                                     |
| `Collaborators`           | Collaborator **names** (kept separate from the assignee).      |
| `Due date` / `Start date` | `YYYY-MM-DD`.                                                  |
| `Project`                 | Project **name** (import looks it up or creates it).           |
| `Parent`                  | Parent task's **title** (import links one level of hierarchy). |
| `Source`                  | Canonical source URL, if any.                                  |
| `Tags`                    | Comma-separated tag names.                                     |

<Warning>
  CSV import is **best-effort, not a lossless backup**. When you re-import a CSV:

  * **Tags** are stored as metadata, not re-created as real task tags.
  * **Description formatting** (line breaks, blank lines) is normalized by the
    importer.
  * **Parent** links resolve by title, so they need the parent's title to be
    unique in the file.
  * **Assignee / collaborators** re-link only if the target workspace has a
    member with a matching name or email.

  For a faithful copy, use **JSON**.
</Warning>

Cells beginning with `=`, `+`, `-`, or `@` are prefixed with `'` so a task title
or description can't execute as a formula when the CSV is opened in a spreadsheet.

## Related docs

* [Import tasks from CSV](/docs/task-import) — the import counterpart.
* [Tasks](/docs/tasks) — what a task is and how it flows through Cogno.
