Conversation Model

What are Conversations?

Conversations are the core objects in Drift. They represent a series of messages exchanged between a single contact and a group of users. Users are the employees of the organization or a bot. Each conversation has a time-ordered set of messages representing chat messages, internal notes, and metadata events within that communication

Messages make up the meat of a conversation. They will contain information regarding the text sent and metadata on the sender.

While this endpoint may seem like a one-stop shop for information on conversations, in reality the model itself is far better for getting human-legible details about the conversations rather than metrics.

All conversation and message interactions are based at and have the following response conventions:


  "id": long,
  "participants": [long],
  "status": string, // one of {open, closed, pending, bulk_sent}
  "contactId": long,
  "inboxId": int,
  "createdAt": timestamp,
  "updatedAt": timestamp,
  "relatedPlaybookId": int (optional),
  "conversationTags": [
      color: string (hex value),
      name: string

Field Explanation

Field NameDescription
idConversations are uniquely identified by an id, which can be used to check its current state and its messages.
participantsEach conversation has a set of participants; Drift Users who are taking part in, or responsible for communication with the Contact. This field is a set of ids that uniquely identify each User.
statusConversations in Drift are organized by their status: open Conversations are active and should be responded to, pending ones are waiting on follow up, closed are handled and not actively being communicated with. and bulk_sent are playbook messages that have reached an end user but not been interacted with. Conversations may move in between any of these statuses as users change them or new events cause them (e.g. if a contact sends a new message in a closed conversation, its status will be changed to open).
contactIdThe id of the contact that's being communicated with in this conversation as a long value (int64).
createdAtA Unix timestamp representing the moment that the conversation was created.
updatedAtA Unix timestamp representing the moment that the conversation was updated. For example, updated due to a status change or new message post.
orgIdThe Drift organization this conversation belongs to.
inboxIdThe inbox this conversation belongs to, can reconstruct drift conversation links via:{inboxId}/conversations/{conversationId}
conversationTagsAny tags applied to the conversation, include their color appearance in the conversation view within drift.
relatedPlaybookIdThis is the ID of the playbook that initiated the conversation. Conversations started from the default welcome message will not include a relatedPlaybookId in the conversation payload. This will be included in the response of the GET conversation endpoint if present.