timeline_mode is explicit. The changes of a card are ordered by created_at, and changes with the same created_at are one change of the card: a move is alone at its time, and a change of board is a card_leave_board and a card_join_board with the same created_at, the leave coming first. card_add is the first change. card_history keeps a snapshot of the card after every change except the last. A step about people is not a change of the card: it needs no snapshot and makes no new state of the card, and the import shows it in the card history at its created_at, with the state of the card at that time. A person is on the card as a member until removed, and the responsible person stays a member after being relieved, so a person who is no longer on the card is relieved first and then removed. At most one person is responsible at a time, so the previous responsible person is relieved before the next one is assigned. A person is assigned before being relieved or removed. The people who are on the card now are written in card_members. With explicit, the card_add of a card is its creation. With current_state_only leave this resource out; the cards then have no steps.resource_files of the manifest, with "resource": "activities". An entity can have any number of files. See Bundle format.[
{
"resource": "activities",
"path": "resources/activities.json"
}
]| Field | Type | Required | Description |
|---|---|---|---|
external_id | string (ExternalId) | Yes | Your own identifier of the record, for example k-mrr, unique within the resource across all of its files and case sensitive. Other records refer to this one by it.Constraints: 1–512 characters. |
action | enum | Yes | What happened. card_add (the card was created), card_move (moved inside one board), card_leave_board or card_join_board (a change of board is a leave and a join) decide the shape of payload. card_assign_responsible and card_relieve_responsible are about the responsible person of the card, card_assign_member and card_remove_member about a member; they name the person in payload.user_ref. A person who is no longer on the card at all is two steps: card_relieve_responsible, then card_remove_member.Constraints: one of card_add, card_move, card_leave_board, card_join_board, card_assign_responsible, card_relieve_responsible, card_assign_member, card_remove_member. |
card_ref | Ref<cards> refers to Cards | Yes | The card the action happened to, by its external_id (for example k-mrr). |
created_at | Timestamp | Yes | When the action happened, for example 2026-01-12T09:30:00Z.Constraints: RFC 3339 with a time zone. |
payload | object | Yes | Details of the action. card_add and card_join_board: board_ref, column_ref and an optional lane_ref. card_leave_board: board_ref. card_move: from and to with the same fields, both on one board. The four steps about people: user_ref.Constraints: strict shape by action. |
payload.board_ref | Ref<boards> refers to Boards | When action is card_add, card_join_board or card_leave_board | Board the card is created on (card_add) or arrives on (card_join_board). For card_leave_board: the board the card leaves.Constraints: 1–512 characters. |
payload.column_ref | Ref<columns> refers to Columns | When action is card_add or card_join_board | Column of that board the card is put in. Constraints: 1–512 characters. |
payload.from | object | When action is card_move | Place of the card before the move. |
payload.from.board_ref | Ref<boards> refers to Boards | When action is card_move | Board of the card; a move stays on one board. Constraints: 1–512 characters. |
payload.from.column_ref | Ref<columns> refers to Columns | When action is card_move | Column the card leaves. Constraints: 1–512 characters. |
payload.from.lane_ref | Ref<lanes> refers to Lanes | No, only when action is card_move | Lane the card leaves; absent means the first lane. Constraints: 1–512 characters. |
payload.to | object | When action is card_move | Place of the card after the move. It is on the same board as from. |
payload.to.board_ref | Ref<boards> refers to Boards | When action is card_move | Board of the card, the same as from.board_ref.Constraints: 1–512 characters. |
payload.to.column_ref | Ref<columns> refers to Columns | When action is card_move | Column the card moves to. Constraints: 1–512 characters. |
payload.to.lane_ref | Ref<lanes> refers to Lanes | No, only when action is card_move | Lane the card moves to; absent means the first lane. Constraints: 1–512 characters. |
payload.user_ref | Ref<users> refers to Users | When action is card_assign_responsible, card_relieve_responsible, card_assign_member or card_remove_member | The person the step is about, by the external_id of a users record, for example u-liam.Constraints: 1–512 characters. |
payload.lane_ref | Ref<lanes> refers to Lanes | No, only when action is card_add or card_join_board | Lane of that board the card is put in; absent means the first lane. Constraints: 1–512 characters. |
author_ref | Ref<users>? refers to Users | No | The user who did the action, by the external_id of a users record, for example u-ava. Leave it out or use null when the user is unknown or has left. The steps of one change of the card, that is its card_add, card_move, card_leave_board and card_join_board steps with the same created_at, name the same user. |
author_ref → Userscard_ref → Cardspayload.board_ref → Boardspayload.column_ref → Columnspayload.from.board_ref → Boardspayload.from.column_ref → Columnspayload.from.lane_ref → Lanespayload.lane_ref → Lanespayload.to.board_ref → Boardspayload.to.column_ref → Columnspayload.to.lane_ref → Lanespayload.user_ref → Users{
"external_id": "act-k-mrr-1",
"action": "card_add",
"card_ref": "k-mrr",
"author_ref": "u-ava",
"created_at": "2026-01-12T09:30:00Z",
"payload": {
"board_ref": "b-kpi",
"column_ref": "c-backlog",
"lane_ref": "l-core"
}
}