Log activity
log_activityRecord that someone reached out to a person: an email, a DM, a call. The first contact claims an unowned person for whoever reached out and moves not_contacted to contacted; an existing owner and a later stage are kept (set them with update_person). memberId defaults to the signed-in user; with an API key and no memberId the activity is unattributed and claims nobody. Returns the activity and the person as they now read. With groupId the activity, and the owner and stage it moves, are that keyword group's own.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"channel": "<channel>",
"id": "<id>"
},
"name": "log_activity"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Person id (aut_...), from list_people or a mention's authorId | |
| note | No | What was sent or said, briefly. | |
| channel | Yes | How they were reached: email, x, linkedin, bluesky, reddit, github, call, meeting or other. | |
| groupId | No | Scope to one keyword group (grp_...): only people who mentioned that group's keywords, with that group's own tags, notes, mute, merges, activities and segments. Omit for the whole workspace. | |
| memberId | No | The member who reached out (user id). Defaults to the signed-in member; an API key that omits it logs an unattributed activity. | |
| occurredAt | No | When the contact happened (ISO 8601, or epoch ms). Defaults to now. | |
| idempotencyKey | No | Optional. A unique value (a UUID) for this call: 1 to 255 visible ASCII characters, no spaces. Calling again with the same key and the same input within 24 hours returns the first result instead of doing it twice. |