Skip to main content
POST
Create Conversation

Authorizations

Authorization
string
header
required

Basic authentication using base64 encoded API key and secret. Format: Authorization: Basic <base64(api_key:api_secret)>

Body

application/json

Conversation creation details

content
string
required

Initial message content (Accepts HTML as well)

inbox_id
integer
required

ID of an enabled email inbox for the conversation

contact_email
string<email>
required

Contact's email address

first_name
string
required

Contact's first name

initiator
enum<string>
required

Who initiated the conversation. 'contact' means the first message is treated as an incoming message from the contact; 'agent' means the first message is an outgoing reply from the agent. Automation rules are only evaluated for contact-initiated conversations (incoming messages); agent-initiated conversations skip automation rule evaluation.

Available options:
agent,
contact
subject
string

Conversation subject

send_from
string<email>

Agent-initiated only. Address to send the first message from: the inbox address or one of its verified aliases. Defaults to the inbox address.

team_id
integer | null

Team ID to be assigned when conversation is created

agent_id
integer | null

Agent ID to be assigned when conversation is created

cc
string<email>[]

CC recipients of the first message

bcc
string<email>[]

BCC recipients of the first message

last_name
string

Contact's last name

external_user_id
string

External identifier for the contact in your own system

Example:

"crm-9f3a21"

attachments
integer[]

IDs of media uploaded by the caller with POST /api/v1/media. Media uploaded by another user is rejected with 403.

source_id
string

Contact-initiated only. RFC 5322 Message-ID of the original inbound email. It is stored on the first message so replies thread on it.

custom_attributes
object

Custom attributes to set on the conversation. Keys that are not defined conversation custom attributes are ignored.

Example:
reuse_contact
boolean
default:false

When true, a matching existing contact is used as-is. When false and the caller has the contacts:write permission, the matched contact's name and email are updated and its external ID is filled in. Callers without contacts:write always reuse the contact as-is.

Response

Conversation created successfully

status
string
Example:

"success"

data
object