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

# Log Record Activity

> Log what you did to a record

Logs one entry, or a batch of up to 1000, to a record's [activity
timeline](/record-activity). Use this to keep your own integrations honest
with the same trail Clustr's own actions and Workflows write to.

## Body

Send either a single item's fields at the top level, or `{ "items": [...] }`
for a batch.

<ParamField body="entity" type="string" required>
  One of `account`, `person`, `path`.
</ParamField>

<ParamField body="recordKey" type="string" required>
  The account's LinkedIn numeric id, or a path's
  `"<clientLinkedInId>|<prospectLinkedInId>"` key.
</ParamField>

<ParamField body="kind" type="string" required>
  One of `tags_set`, `tier_set`, `owner_set`, `list_added`, `list_removed`,
  `dismissed`, `restored`, `pushed_to_crm`, `intro_requested`, `intro_sent`,
  `intro_accepted`, `intro_declined`, `workflow_fired`, `workflow_action`.

  `status_set` is still accepted, for a client written before a status became a
  [tag](/tags). Clustr itself no longer writes it: a status change is a tag
  change, and it logs `tags_set`.
</ParamField>

<ParamField body="actor" type="string">
  An email, `workflow:<id>`, or `system`. Defaults to your API key's identity.
</ParamField>

<ParamField body="detail" type="object">
  Any JSON object. Rendered alongside the kind and actor on the timeline.
</ParamField>

<RequestExample>
  ```bash cURL theme={null}
  curl -X POST "https://api.clustr-ai.com/api/public/records/activity" \
    -H "Authorization: Bearer YOUR_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{
      "entity": "account",
      "recordKey": "1035",
      "kind": "pushed_to_crm",
      "detail": { "provider": "hubspot", "objectId": "5012345" }
    }'
  ```

  ```bash cURL (batch) theme={null}
  curl -X POST "https://api.clustr-ai.com/api/public/records/activity" \
    -H "Authorization: Bearer YOUR_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{
      "items": [
        { "entity": "account", "recordKey": "1035", "kind": "tags_set", "detail": {} },
        { "entity": "account", "recordKey": "1042", "kind": "tags_set", "detail": {} }
      ]
    }'
  ```
</RequestExample>

<ResponseExample>
  ```json 201 theme={null}
  {
    "success": true,
    "data": { "inserted": 1 }
  }
  ```

  ```json 400 theme={null}
  {
    "success": false,
    "error": { "message": "entity must be one of account, person, path", "code": "BAD_REQUEST" }
  }
  ```
</ResponseExample>
