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

# talkvalue path person activity

> Page through the activity log for a single person: creates, updates, merges, source connections, and more.

`talkvalue path person activity` lists the change log for one person. Every create, update, delete, merge, restore, and source connect / disconnect shows up here, with the actor who triggered it, the fields that changed, and (for source events) the channel or event the change came from.

Pagination is cursor-based. The CLI prints a `Next page: --cursor <id>` hint on stderr whenever more rows exist.

## Synopsis

```bash theme={null}
talkvalue path person activity <personId> [--cursor <n>] [--page-size <n>]
```

## Arguments

| Argument     | Type    | Description                        |
| ------------ | ------- | ---------------------------------- |
| `<personId>` | integer | Person ID whose activity you want. |

## Options

| Flag              | Type    | Description                                                                                                     |
| ----------------- | ------- | --------------------------------------------------------------------------------------------------------------- |
| `--cursor <n>`    | integer | Cursor returned by the previous page (printed to stderr as `Next page: --cursor <n>`). Omit for the first page. |
| `--page-size <n>` | integer | Page size. Defaults to the server default.                                                                      |

## Examples

### 1. Recent activity in the terminal

```bash theme={null}
talkvalue path person activity 142
```

Prints ID, action, actor, and created-at columns for the most recent page. Read the stderr hint to fetch the next page.

### 2. Walk every page until exhausted

```bash theme={null}
cursor=""
while :; do
  flags=("--json")
  [ -n "$cursor" ] && flags+=("--cursor" "$cursor")
  out=$(talkvalue path person activity 142 "${flags[@]}" 2>/tmp/last.err)
  echo "$out" | jq '.data[]'
  echo "$out" | jq -e '.data | length > 0' >/dev/null || break
  cursor=$(awk '/Next page:/ {print $NF}' /tmp/last.err)
  [ -z "$cursor" ] && break
done
```

The loop reads JSON pages on stdout and parses the `Next page: --cursor <id>` hint from stderr. See [Scripting with jq](/cli/recipes/scripting-with-jq) for more patterns.

### 3. Audit a merge

```bash theme={null}
talkvalue path person activity 142 --json \
  | jq '.data[] | select(.action == "MERGED")'
```

Pulls only the `MERGED` entries. Each one carries `mergedFrom.personId` and `mergedFrom.primaryEmail` so you can trace the source that was absorbed.

## Response

```jsonc theme={null}
{
  "data": [
    {
      "id": 9012,
      "action": "UPDATED",
      "actor": { "id": 3, "name": "Ted Lee", "email": "ted@acme.com" },
      "actorName": "Ted Lee",
      "changes": [
        { "field": "jobTitle", "before": "Growth Lead", "after": "Head of Growth" }
      ],
      "source": null,
      "mergedFrom": null,
      "createdAt": "2026-05-21T17:42:11Z"
    }
  ]
}
```

`action` is one of `CREATED`, `UPDATED`, `DELETED`, `RESTORED`, `MERGED`, `UNMERGED`, `SOURCE_CONNECTED`, or `SOURCE_DISCONNECTED`. The presence of `changes`, `source`, and `mergedFrom` depends on the action. Read [`person update`](/cli/commands/path/person/update) and [`person merge`](/cli/commands/path/person/merge) for the shapes they emit.

When more pages exist, look for `Next page: --cursor <n>` on stderr and replay with that cursor.

## See also

* [`person update`](/cli/commands/path/person/update). Generates `UPDATED` entries.
* [`person merge`](/cli/commands/path/person/merge). Generates `MERGED` entries on the target.
* [`person get`](/cli/commands/path/person/get). Pair with activity for full context.
* [People](/path/manage/people). The dashboard surface with the same timeline.
