SautiDesk
SautiDesk API
Sales

Add a note to a lead

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

Writes a team note on a lead: words only, with no activity type or outcome, so nothing about the lead moves. Anyone who may see the lead may add one, closed or not. The note is the lead's own line, on no ticket, and shows on the lead's timeline with its author and time. Answers 422 lead.invalid when body is empty, 404 when the lead is not one the caller may see, and 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

{  "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"}
FieldTypeDescription
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
curl -X POST "https://api.sautidesk.com/v1/desk/leads/string/notes" \  -H "Content-Type: application/json" \  -d '{    "body": "Hi Amina, your order has shipped."  }'