SautiDesk
SautiDesk API
Sales

Log an activity on a lead

POST
/v1/desk/leads/{id}/activities

Logs something an agent did on a lead, of one of the workspace's activity types, with an optional outcome and note. The type's stage move and temperature are applied, and next_step_required in the answer is true when the lead is still open, has no follow-up booked and the workspace asks for one. Answers 403 desk.sales_off while Sales is switched off.

Requires: desk.write scope, Converse or Contacts licence, Pro plan.

Authorization

bearerAuth
AuthorizationBearer <token>

A SautiDesk API key. An owner or admin makes it under Settings in SautiDesk for a named person and picks the scopes. The key is shown once. Send it as Authorization: Bearer <key>. It acts as that person and as nobody else.

In: header

Path Parameters

id*string

The lead's id (a UUID).

Request Body

application/json

Response

Created

Example

{  "activity": {    "id": "3f2b8c1e-5a4d-4e7b-9c10-2d6a8e4f1b37",    "lead_id": "15d97be4-3d4f-478d-99c1-f413235780ed",    "ticket_id": "b1e8bf6f-7f06-4c91-96dd-a1eb7abe504b",    "kind": "billing",    "divider_kind": "date",    "channel": "sms",    "direction": "inbound",    "author": "Wanjiku Mwangi",    "body": "Hi Amina, your order has shipped.",    "subject": "Order 1182 has not arrived",    "delivery": "delivered",    "media_id": "8a968a4d-f365-4b10-9954-e3b231fc75f9",    "media_type": "example",    "media_mime_type": "example",    "media_filename": "example",    "occurred_at": "2026-10-14T08:30:00Z",    "activity_type_id": "7dc83545-5e5c-4ee0-9e92-704cc08faaf7",    "activity_type_name": "example",    "outcome_id": "83fecbb0-ec34-4a4f-9047-58b4fe165861",    "outcome_name": "example"  },  "lead": {    "id": "3f2b8c1e-5a4d-4e7b-9c10-2d6a8e4f1b37",    "ref": "TCK-4471",    "status": "open",    "contact_id": "e370603e-5791-443e-9fb1-26dedb014cd9",    "contact_name": "Amina Wanjiru",    "contact_number": "+254712345678",    "stage_id": "bfed4519-9865-4baf-930a-0ac87c16a093",    "stage_name": "example",    "stage_kind": "example",    "owner_id": "1dc86aaf-2f65-4b1b-9ef7-7dabe869da64",    "owner_name": "Wanjiku Mwangi",    "queue_id": "c70c2d37-4d65-4ba4-9843-5e8aaf2dae40",    "queue_name": "Support",    "source_id": "2e953c78-1606-4098-9709-061f8b3d7860",    "source_name": "example",    "temperature": "example",    "value_minor": 1,    "currency": "KES",    "lost_reason_id": "b015e632-7186-485b-90f6-cc9f3b883d90",    "lost_reason": "example",    "lost_note": "example",    "company": "Example Ltd",    "name": "Amina Wanjiru",    "tags": [      {        "id": "3f2b8c1e-5a4d-4e7b-9c10-2d6a8e4f1b37",        "name": "Amina Wanjiru",        "colour": "#1D4ED8"      }    ],    "next_follow_up": {      "task_id": "ad869580-754f-478d-9f53-ece308d91edc",      "due_at": "2026-10-14T08:30:00Z",      "note": "Hi Amina, your order has shipped.",      "activity_type_id": "7dc83545-5e5c-4ee0-9e92-704cc08faaf7",      "activity_type_name": "example",      "assignee_id": "fe310313-9e12-412d-969a-cdb7558caaca",      "overdue": false    },    "opened_at": "2026-10-14T08:30:00Z",    "opened_by": "d30d083f-3105-4b54-925d-0f1bdfa2fb14",    "closed_at": "2026-10-14T08:30:00Z",    "updated_at": "2026-10-14T08:30:00Z"  },  "next_step_required": false}
FieldTypeDescription
activityrequiredobject
idrequiredstring (uuid)
lead_idrequiredstring (uuid)
ticket_idrequiredstring (uuid) | nullThe id of the ticket this is about.
kindrequiredstringWhat kind it is.
divider_kindstring | null
channelstring | nullThe channel to use: sms, whatsapp or email.
directionstring | null
authorrequiredstring
bodyrequiredstringThe message text.
subjectstringThe subject line.
deliverystring
media_idstring
media_typestring
media_mime_typestring
media_filenamestring
occurred_atrequiredstring (date-time)
activity_type_idrequiredstring (uuid) | null
activity_type_namestring
outcome_idrequiredstring (uuid) | nullThe id of the ticket outcome to close the ticket with.
outcome_namestring
leadrequiredobject
idrequiredstring (uuid)
refrequiredstring
statusrequiredstringThe status to set.
contact_idrequiredstring (uuid)The id of the contact the task is about.
contact_namerequiredstring
contact_numberstring
stage_idrequiredstring (uuid)
stage_namerequiredstring
stage_kindrequiredstring
owner_idrequiredstring (uuid) | null
owner_namestring
queue_idrequiredstring (uuid) | nullThe id of the queue that receives what arrives here.
queue_namestring
source_idrequiredstring (uuid)
source_namerequiredstring
temperaturerequiredstring
value_minorrequiredinteger
currencyrequiredstringThe currency code of the money in this report, for example KES. Write money figures with it. Left out when the report has no money.
lost_reason_idrequiredstring (uuid) | null
lost_reasonstring
lost_notestring
companyrequiredstringThe company the contact works for.
namerequiredstringA name for it.
tagsrequiredobject[]
idrequiredstring (uuid)
namerequiredstringA name for it.
colourrequiredstring
next_follow_uprequiredany
task_idrequiredstring (uuid)
due_atrequiredstring (date-time)When it is due, as a date and time with an offset, for example 2026-10-15T09:00:00+03:00.
noterequiredstringA note.
activity_type_idrequiredstring (uuid) | null
activity_type_namerequiredstring
assignee_idrequiredstring (uuid) | nullThe id of the person the task is for.
overduerequiredboolean
opened_atrequiredstring (date-time)
opened_byrequiredstring (uuid) | null
closed_atrequiredstring (date-time) | null
updated_atrequiredstring (date-time)
next_step_requiredrequiredboolean
curl -X POST "https://api.sautidesk.com/v1/desk/leads/string/activities" \  -H "Content-Type: application/json" \  -d '{    "activity_type_id": "7dc83545-5e5c-4ee0-9e92-704cc08faaf7",    "outcome_id": "83fecbb0-ec34-4a4f-9047-58b4fe165861",    "note": "Hi Amina, your order has shipped.",    "occurred_at": "2026-10-14T08:30:00Z"  }'