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:

  • note
  • call
  • email
  • meeting
  • agent_action

Resource model

The activities resource is tenant-owned and follows the shared app-plane fields:

FieldPurpose
idActivity identifier.
tenant_idWorkspace isolation boundary.
typeActivity category such as note, email, or agent_action.
summaryShort human-readable summary.
bodyOptional longer context.
related_resource_typeOptional linked resource type: contact, company, deal, task, or support_ticket.
related_resource_idOptional linked resource ID.
occurred_atWhen the activity happened.
sourceapi, mcp, or admin.
last_agent_actor_idAgent 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:

  1. search_contacts
  2. log_activity
  3. create_task

Audit behavior

Every log_activity write creates an audit event with:

  • tenant_id
  • actor and source
  • tool_name or api_route
  • resource_type: activity
  • resource_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.

MVP
Idempotent writesNo dry runStrict schema
Required scopes
activity:write
API equivalent
POST /v1/activities

Example prompt

Log that Jane asked for pricing details by email.

Input schema

PropertyTypeRequiredDescription
typestring · note | call | email | meeting | agent_actionYesActivity category used for filtering and audit review.
summarystringYesShort human-readable activity summary.
bodystringNoOptional detailed note, transcript excerpt, or structured context.
related_resource_typestring · contact | company | deal | task | support_ticketNoResource type this activity should be attached to.
related_resource_idstringNoResource ID matching related_resource_type.
occurred_atstring · date-timeNoOptional ISO 8601 timestamp when the activity happened.
idempotency_keystringNoStable 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.

MVP
Read operationNo dry runStrict schema
Required scopes
activity:read
API equivalent
GET /v1/activities

Example prompt

Find recent activity about pricing.

Input schema

PropertyTypeRequiredDescription
querystringNoFree-text search across activity summary and body.
typestring · note | call | email | meeting | agent_actionNoRestrict results to one activity category.
limitinteger · min 1 · max 100NoMaximum number of activities to return.
cursorstringNoOpaque 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.

Was this page helpful?