Skip to main content
POST
Send message

Authorizations

Authorization
string
header
required

Access token issued by gs.service.id. Its access_identity claim carries team_sid, actor_sid and actor_type, and that team scope is authoritative.

Team-SID
string
header
required

Team scope for tokens that do not carry one. Ignored when the token already names a team.

Body

application/json

Request body of send_message.

channel
enum<string>
required

linkedin | email. It must be connected on the thread's sender profile, else 422 channel_not_connected.

Available options:
linkedin,
email
kind
enum<string>
required

Must belong to channel: linkedin takes linkedin_message | linkedin_inmail | linkedin_connection_note, email takes email. A mismatch is 422.

Available options:
linkedin_message,
linkedin_connection_note,
linkedin_inmail,
email
body
string
required

The message text, min 1 char, plain text (email HTML composition is v1.5). NOTE the key: body here, body_text on update_message.

Minimum string length: 1
conversation_sid
string | null

Reply into this existing thread. Exactly one of conversation_sid | new_thread, else 422 invalid_input.

Required string length: 18
Pattern: ^ub_cv_
new_thread
object | null

Start a thread instead: the sender profile plus the counterpart. The conversation is created with origin=native and comes back in result.conversation.

reply_to_message_sid
string | null

Quote this message of the thread under the reply (ub_ms_...); a reply into conversation_sid only, never with new_thread.

Required string length: 18
Pattern: ^ub_ms_
subject
string | null

Email only, max 998. REQUIRED on an email new_thread (a reply inherits the thread subject); ignored on LinkedIn.

Maximum string length: 998
scheduled_at
string | null

ISO 8601 UTC. Holds the row in the queue until then; null = as soon as the per-sender-profile queue allows. The final gate still runs at that moment.

agent_run_sid
string | null

Provenance for an AGENT turn: the run that produced this text. Silently dropped for any non-agent actor. The dispatch gate and the dialog exchange meter key off it.

Required string length: 18
Pattern: ^ub_rn_
attach_answer_sids
string[] | null

An AGENT turn only: the answers the run carried whose file goes out on request and the lead asked for (ub_an_ sids); the file goes with the message. A file that goes out every time needs no name. Ignored for other actors and answers the run did not carry.

Maximum array length: 5
Required string length: 18
Pattern: ^ub_an_

Response

action success envelope.

success
enum<boolean>
required
Available options:
true
operation
enum<string>
required
Available options:
action
action
string
required

kebab-case verb; matches the route segment.

item
object | null
required
result
object
required
meta
object
required