Add a contact to a conversation
Adds a contact (customer or lead) as a participant to an existing conversation.
Path Parameters
id- The conversation ID (short ID)
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
participant | object | Yes | The contact to add (see below) |
participant.id | string | No* | The Featurebase ID (24-character ObjectId) - matches customer or lead |
participant.userId | string | No* | External user ID from your system - matches customer only |
participant.email | string | No* | Email address - matches customer only |
actingAdminId | string | No | Admin ID performing the action (for attribution) |
*At least one of id, userId, or email is required in the participant object.
Lookup Priority
- If
idis provided, looks up by Featurebase ID (matches both customer and lead types) - If
userIdis provided, looks up by external user ID (matches customer type only) - If
emailis provided, looks up by email address (matches customer type only)
Response
Returns the updated conversation object.
Example Request (by Featurebase ID)
{
"participant": {
"id": "676f0f6765bdaa7d7d760f88"
},
"actingAdminId": "507f1f77bcf86cd799439011"
}Example Request (by external userId)
{
"participant": {
"userId": "user_123"
}
}Example Request (by email)
{
"participant": {
"email": "john@example.com"
}
}Example Response
{
"object": "conversation",
"id": "12345",
"participants": [
{ "type": "customer", "id": "676f0f6765bdaa7d7d760f88" },
{ "type": "customer", "id": "676f0f6765bdaa7d7d760f89" }
],
...
}Version Availability
This endpoint is only available in API version 2026-01-01.nova and newer.
Body
Response
Success
State of AI agent handling for this conversation
active, handed_off_to_human, resolvedactiveISO timestamp when bot state last changed
2025-01-15T10:30:00.000ZID of the brand associated with this conversation
507f1f77bcf86cd799439011Array of conversation parts (messages). Only included when fetching a single conversation by ID.
Custom conversation attribute values expanded with definition metadata. Returned only when include=customAttributeDefinitions is provided.
Custom conversation attributes keyed by custom attribute ID. Only org-defined, non-archived conversation attributes are returned; internal workflow metadata is omitted.
Whether an admin has manually overridden the language for this conversation. When true, automatic language detection is disabled.
falseObject type identifier
conversationconversationISO timestamp when priority was set
2025-01-15T10:30:00.000ZRead receipts indicating how far each participant has read in the conversation. Each receipt maps a user to their last-read conversation part. The tracked position reflects the system read state and may reference parts the user cannot directly view (e.g., a contact's read position may point to an internal admin note). Use these receipts to render read indicators and typing awareness, not to infer content access.
ISO timestamp until which conversation is snoozed
2025-01-16T09:00:00.000ZCurrent state of the conversation
open, closed, snoozedopenISO timestamp when conversation was last updated
2025-01-15T12:30:00.000Z