Conversation Model

Example Conversation Object

{
  "type": "conversation",
  "id": "147",
  "created_at": 1400850973,
  "updated_at": 1400857494,
  "waiting_since": 1400857494,
  "snoozed_until": null,
  "conversation_message": {
    "type": "conversation_message",
    "subject": "",
    "body": "<p>Hi Alice,</p>\n\n<p> We noticed you using our Product,  do you have any questions?</p> \n<p>- Jane</p>",
    "author": {
      "type": "admin",
      "id": "25"
    },
    "attachments": [
      {
        "name": "signature",
        "url": "http://example.org/signature.jpg"
      }
    ]
  },
  "user": {
    "type": "user",
    "id": "536e564f316c83104c000020"
  },
  "customers": [
    {
      "type": "user",
      "id": "58ff3f670f14ab4f1aa83750"
    }
  ],
  "assignee": {
    "type": "admin",
    "id": "25"
  },
  "open": true,
  "state": "open",
  "read": true,
  "conversation_parts": {
    "type": "conversation_part.list",
    "conversation_parts": [
      //... List of conversation parts
    ],
    "total_count":1
  },
  "conversation_rating": {
    "rating": null,
    "remark": null,
    "created_at": null,
    "customer": {
        "type": null,
        "id": null
    },
    "teammate": {
        "type": null,
        "id": null
    }
  }
  "tags": { "type": 'tag.list', "tags": [] } 
}

A conversation lets you track and describe communications with your users. Each conversation contains the message that initiated the conversation, the user involved, the admin assigned to the conversation and a list of parts describing the conversation thread. The open or closed status of the conversation is also provided.

Conversation Object

AttributeTypeDescription
typestringvalue is 'conversation'
idstringThe id representing the conversation
created_attimestampThe time the conversation was created
updated_attimestampThe last time the conversation was updated. Updates to conversation part won't affect this value.
waiting_sincetimestampThe last time a customer responded to an admin.
In other words, the time a customer started waiting for a response.
snoozed_untiltimestampIf set this is the time in the future when this conversation will be marked as open.
i.e. it will be in a snoozed state until this time
conversation_messageMessageThe message that started the conversation rendered for presentation.
userUserThe user the conversation concerns
customersListThe list of customers (users or leads) involved in this conversation.
This will only contain one customer unless more were added via the group conversation feature
assigneeAdminThe admin the conversation is currently assigned to.
Note nobody_admin indicates the conversation is assigned to Nobody.
conversation_partsObjectA conversation part object with a list of conversation parts
openBooleanIndicates whether a conversation is open (true) or closed (false)
stateStringCan be set to "open", "closed" or "snoozed".
readBooleanIndicates whether a conversation has been read
tagsListA list of tags associated with the conversation.
total_countIntegerThe number of conversation parts in this conversation.
conversation_ratingobjectA conversation rating object which contains information on the rating and/or remark added by a customer and the admin assigned to the conversation

📘

waiting_since 2000 years in the future?

Waiting since lets you identify how long a customer has been waiting for a response. This time, however, is not always relevant. For example, when the last person to respond was an admin, or the conversation was closed after a user response (e.g. "thanks, bye"). In these cases we will set the date to 2000 years in the future.

Message Object

AttributeTypeDescription
typestringvalue is 'conversation_message'
idstringThe id representing the message
subjectstringOptional. The message subject
bodystringThe message body, which may contain HTML
authorAdminThe Admin that created the message
attachmentsListA list of attachments for the part
urlstringThe URL the User started a conversation on