Skip to content
Docs menu

Activities

Anything that happened touching a contact or deal — notes, emails, calls, SMS, meetings, tasks, automation runs.

Type is one of NOTE, EMAIL, CALL, SMS, MEETING, TASK, AUTOMATION. Direction (where it applies) is INBOUND, OUTBOUND, or INTERNAL.

POST/api/activitiesBearer token

Log an activity

Record an activity. Most often called when a CRM agent finishes a touch (logged a call, sent an SMS) or when external automation completes.

Required scopes:contacts.write

Request body

NameTypeDescription
typerequiredstringActivity type.
subjectrequiredstringShort label. 1–200 chars.
bodystringLong body / note text. ≤ 8000 chars.
directionstringINBOUND | OUTBOUND | INTERNAL.
contactIdstringLinked contact id.
dealIdstringLinked deal id.

Request body

JSON
{ "type": "NOTE", "subject": "Left voicemail", "contactId": "cln…" }

Responses

  • 201 CreatedCreated.
    example
    {
      "id": "act_7d3kp…",
      "type": "EMAIL",
      "direction": "OUTBOUND",
      "subject": "Follow-up on your visit",
      "body": "Hi Avery — wanted to check in…",
      "contactId": "cln1f8s7p…",
      "dealId": null,
      "createdAt": "2026-05-18T14:00:00Z"
    }

Code samples

Shell
curl -X POST https://app.contactfollowup.com/api/activities \
  -H "Authorization: Bearer $HEARTHNOTE_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "type": "NOTE", "subject": "Left voicemail", "contactId": "cln…" }'
GET/api/activitiesBearer token

List activities

Filtered activity feed. Sorted newest-first.

Required scopes:contacts.read

Query parameters

NameTypeDescription
contactIdstringActivities for one contact.
typestringFilter by activity type.
fromstringEarliest ISO 8601 datetime, inclusive.
tostringLatest ISO 8601 datetime, exclusive.

Responses

  • 200 OKActivities.
    example
    { "activities": [{
      "id": "act_7d3kp…",
      "type": "EMAIL",
      "direction": "OUTBOUND",
      "subject": "Follow-up on your visit",
      "body": "Hi Avery — wanted to check in…",
      "contactId": "cln1f8s7p…",
      "dealId": null,
      "createdAt": "2026-05-18T14:00:00Z"
    }] }
  • 400 Bad RequestBad from or to date.

Code samples

Shell
curl -X GET https://app.contactfollowup.com/api/activities \
  -H "Authorization: Bearer $HEARTHNOTE_TOKEN" \
  -H "Content-Type: application/json"