Skip to main content
POST
Create thread

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Body

application/json
text
string
required

Thread body (HTML).

Minimum string length: 1
pain_level
enum<string>
required
Available options:
UNKNOWN,
LOW,
MEDIUM,
HIGH
external_ids
string[]

Caller-owned identifiers. Replaces the full set.

title
string
Maximum string length: 512
status
enum<string>

Initial status. Defaults to open.

Available options:
open,
snoozed,
done
origin
enum<string>

Defaults to api. Use custom with custom_channel for a channel you connect yourself, such as WhatsApp or SMS.

Available options:
in_app,
portal,
support_portal,
email,
slack,
slack_connect,
intercom,
intercom_attachment,
zendesk,
zendesk_attachment,
front_attachment,
zapier,
hubspot,
plain,
api,
live_chat,
ai_chat,
calendar,
widget,
teams,
linear,
upvote,
custom
custom_channel
string

Required when origin is custom: a lowercase name such as whatsapp or sms (1 to 32 characters, a-z, 0-9, _, -). The inbox shows it as the thread source.

contact_email
string<email>

Email of the contact. The contact is upserted by email within the workspace. Send this or contact_external_id.

contact_external_id
string

Your id for a contact without an email, such as whatsapp:+61400111222. The contact is upserted by it and never receives email. Send this or contact_email.

Required string length: 1 - 128
contact_name
string

Applied only when the contact is newly created.

assignee_id
string

Workspace user id (not a Linear user id).

company_id
string
project_id
string
issue_id
string
created_at
string<date-time>
updated_at
string<date-time>
notify
object

Side-channel notifications to fire alongside the write (Slack and/or email).

Response

Successful response

id
string
required
created_at
string
required
updated_at
string
required
title
string | null
required
text
string
required
pain_level
enum<string>
required
Available options:
UNKNOWN,
LOW,
MEDIUM,
HIGH
origin
string
required
custom_channel
string | null
required

Channel name when origin is custom, such as whatsapp.

status
enum<string>
required
Available options:
open,
snoozed,
done
tab
enum<string>
required
Available options:
open,
new,
needs-response,
my,
snoozed,
done
snoozed_until
string | null
required
last_inbound_message_at
string | null
required
last_outbound_message_at
string | null
required
last_state_change_at
string | null
required
is_read
boolean
required
contact
object | null
required
company
object | null
required
assignee
object | null
required
reporter
object | null
required
tags
object[]
required
customer_needs
object[]
required
external_ids
string[]
required

Caller-owned cross-system identifiers (CRM ids, etc.). Replaced wholesale on create/update.

integration_ids
object
required
ai_draft_html
string | null
required
ai_draft_sources
array | null
required
ai_draft_generated_at
string | null
required
ai_draft_started_at
string | null
required
ai_draft_error_at
string | null
required