Skip to content

Activities

Activities are a universal event log — calls, emails, notes, meetings, transcripts, lead submissions, status changes. Every significant action on a contact or company should generate an activity.

Routes

GET /api/activities

List activities for a contact or company.

Auth: Required
Query params:

ParamTypeDescription
contact_idstringFilter by contact
company_idstringFilter by company
typestringFilter by activity_type
limitnumberMax results. Default: 50

Response:

json
{
  "ok": true,
  "data": [
    {
      "id": "act_a1b2c3d4",
      "contact_id": "ct_...",
      "contact_name": "Jane Smith",
      "company_id": "co_...",
      "company_name": "Acme Corp",
      "activity_type": "call",
      "title": "Discovery call",
      "description": "...",
      "source": "manual",
      "metadata": {},
      "created_at": "2026-05-13T10:00:00Z"
    }
  ]
}

Activity types: call, email, meeting, note, transcript, lead_submitted, status_change, invoice_paid, support_request, portal_login, deal_created, engagement_started, hiring_intake, ai_summary


POST /api/activities

Log a new activity.

Auth: Required
Request body:

FieldTypeRequiredDescription
activity_typestringyesType of activity
contact_idstringnoLink to contact
company_idstringnoLink to company
titlestringnoShort title
descriptionstringnoFull description or body
sourcestringnoSource system (e.g. gmail, manual, meetily)
source_idstringnoExternal ID in source system
agent_idstringnoAgent or user who performed action
metadataobjectnoArbitrary JSON metadata

Response: 201 Created

json
{ "ok": true, "data": { "id": "act_a1b2c3d4" } }

POST /api/activities/transcript

Log a meeting transcript from Meetily. Extracts speakers, generates AI summary, links to contacts.

Auth: Required
Request body:

FieldTypeRequiredDescription
transcriptstringyesFull transcript text
contact_idsarraynoCRM contact IDs of participants
company_idstringnoAssociated company
meeting_titlestringnoMeeting title
meeting_datestringnoISO date
speakersobjectnoMap of speaker labels to contact IDs

Response: 201 Created

json
{
  "ok": true,
  "data": {
    "id": "act_a1b2c3d4",
    "summary": "AI-generated meeting summary...",
    "action_items": ["Follow up on proposal", "..."]
  }
}

Sprint Mode LLC — Internal Platform Documentation