Activity Log
The Activity Log module records notes, calls, emails, meetings, and agent actions.
What it does
Activity Log is the timeline for business context. Agents use it to preserve what happened, why a task was created, where a lead came from, and what changed during a workflow.
Activity types:
notecallemailmeetingagent_action
Resource model
The activities resource is tenant-owned and follows the shared app-plane fields:
| Field | Purpose |
|---|---|
id | Activity identifier. |
tenant_id | Workspace isolation boundary. |
type | Activity category such as note, email, or agent_action. |
summary | Short human-readable summary. |
body | Optional longer context. |
related_resource_type | Optional linked resource type: contact, company, deal, task, or support_ticket. |
related_resource_id | Optional linked resource ID. |
occurred_at | When the activity happened. |
source | api, mcp, or admin. |
last_agent_actor_id | Agent actor that last touched the record. |
Permissions
Use activity:write to log activity and activity:read to search activity.
For a first agent workflow, pair Activity Log with CRM and Tasks:
crm:read
crm:write
tasks:write
activity:write
Example workflow
Prompt:
Log that Jane Doe asked for pricing details by email, attach it to her contact record, and create a follow-up task for tomorrow.
Expected operations:
search_contactslog_activitycreate_task
Audit behavior
Every log_activity write creates an audit event with:
tenant_id- actor and source
tool_nameorapi_routeresource_type: activityresource_id- action
- input hash
- status
- request ID
Activity records are business history; audit events are the control trail for how that history changed.
MCP tools
log_activity
Record a workspace activity such as a note, call, email, meeting, or agent action.
- Required scopes
- activity:write
- API equivalent
- POST /v1/activities
Example prompt
Input schema
| Property | Type | Required | Description |
|---|---|---|---|
| type | string · note | call | email | meeting | agent_action | Yes | Activity category used for filtering and audit review. |
| summary | string | Yes | Short human-readable activity summary. |
| body | string | No | Optional detailed note, transcript excerpt, or structured context. |
| related_resource_type | string · contact | company | deal | task | support_ticket | No | Resource type this activity should be attached to. |
| related_resource_id | string | No | Resource ID matching related_resource_type. |
| occurred_at | string · date-time | No | Optional ISO 8601 timestamp when the activity happened. |
| idempotency_key | string | No | Stable client-generated key that makes retries safe for this write. |
Additional properties are rejected.
Example input
{
"type": "email",
"summary": "Jane asked for pricing details",
"related_resource_type": "contact",
"related_resource_id": "con_123"
}Example response
{
"activity": {
"id": "act_123",
"type": "email",
"summary": "Jane asked for pricing details"
},
"request_id": "req_132"
}Common errors
The token does not include the scope required for this operation.
The request payload failed schema validation.
The requested resource does not exist in this workspace.
search_activity
Search activity records by text, type, date, or related resource.
- Required scopes
- activity:read
- API equivalent
- GET /v1/activities
Example prompt
Input schema
| Property | Type | Required | Description |
|---|---|---|---|
| query | string | No | Free-text search across activity summary and body. |
| type | string · note | call | email | meeting | agent_action | No | Restrict results to one activity category. |
| limit | integer · min 1 · max 100 | No | Maximum number of activities to return. |
| cursor | string | No | Opaque cursor from a previous response's next_cursor. |
Additional properties are rejected.
Example input
{
"query": "pricing",
"limit": 10
}Example response
{
"activities": [
{
"id": "act_123",
"summary": "Jane asked for pricing details"
}
],
"request_id": "req_133"
}Common errors
The token does not include the scope required for this operation.
The request payload failed schema validation.
