Direct messages, notifications and live events
Send a direct message
Sends a message in a direct-message thread, with optional ticket_id and attachment_ids for files uploaded first. Send a client_id so a retry does not send the message twice.
Requires: desk.write scope.
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 thread's id (a UUID).
Request Body
application/json
Response
OK
Example
{ "message": { "id": "3f2b8c1e-5a4d-4e7b-9c10-2d6a8e4f1b37", "thread_id": "35d0bbe4-0406-4c99-9c19-73bab32a78b7", "sender_user_id": "5452a94c-7311-4fcc-9fa8-ef6527f42b16", "sender_name": "Amina Wanjiru", "sender_former": false, "body": "Hi Amina, your order has shipped.", "ticket_id": "b1e8bf6f-7f06-4c91-96dd-a1eb7abe504b", "ticket": { "ticket_id": "b1e8bf6f-7f06-4c91-96dd-a1eb7abe504b", "ref": "TCK-4471", "title": "Order 1182 has not arrived", "contact_name": "Amina Wanjiru", "transferred_to": "Brian Otieno" }, "client_id": "642d75b7-2106-4687-96a3-70539952a466", "created_at": "2026-10-14T08:30:00Z", "attachments": [ { "id": "3f2b8c1e-5a4d-4e7b-9c10-2d6a8e4f1b37", "filename": "invoice-1182.pdf", "content_type": "application/pdf", "size": 1, "url": "https://example.com/file" } ], "kind": "billing", "call": { "caller_user_id": "320ad1ba-40a4-4403-9f51-d9dbff8d97bc", "callee_user_id": "f1c23795-89a4-4ac5-9719-6c07c8bcf095", "started_at": "2026-10-14T08:30:00Z", "answered_at": "2026-10-14T08:30:00Z", "ended_at": "2026-10-14T08:30:00Z", "outcome": "billing", "seconds": 60 } }}FieldTypeDescription
messagerequiredobjectA short note for the person receiving the ticket.idrequiredstring (uuid)thread_idrequiredstring (uuid)sender_user_idrequiredstring (uuid) | nullsender_namerequiredstringsender_formerrequiredbooleanbodyrequiredstringThe message text.ticket_idrequiredstring (uuid) | nullThe id of the ticket this is about.ticketanyThe ticket the call belongs to, by id or reference such as TCK-4471.ticket_idrequiredstring (uuid)The id of the ticket this is about.refrequiredstringtitlerequiredstringA short title.contact_namerequiredstringtransferred_torequiredstringclient_idstring | nullAn id you make up for this request. Send the same id when you retry and the server will not add it twice.created_atrequiredstring (date-time)attachmentsrequiredobject[]idrequiredstring (uuid)filenamerequiredstringcontent_typerequiredstringsizerequiredintegerurlrequiredstringkindrequiredstringWhat kind it is.callanycaller_user_idrequiredstring (uuid)callee_user_idrequiredstring (uuid)started_atrequiredstring (date-time)answered_atstring (date-time) | nullended_atstring (date-time) | nulloutcomerequiredstringHow it ended: the name or id of one of your outcomes.secondsrequiredintegercurl -X POST "https://api.sautidesk.com/v1/desk/dm/threads/string/messages" \ -H "Content-Type: application/json" \ -d '{ "body": "Hi Amina, your order has shipped.", "ticket_id": "b1e8bf6f-7f06-4c91-96dd-a1eb7abe504b", "client_id": "642d75b7-2106-4687-96a3-70539952a466", "attachment_ids": [ "b168aa81-6f59-4ff2-9d3e-1df4c17cff50" ] }'