Retrieve a conversation

Updated:

GET/property/{connection_id}/conversation/{id}

Retrieves a single PropertyConversation by its id. Obtain id values from the corresponding list endpoint. Use fields to return only the fields you need.

Parameters

fieldsstring array
Fields to return
rawstring
Raw parameters to include in the 3rd-party request. Encoded as a URL component. eg. raw parameters: foo=bar&zoo=bar -> raw=foo%3Dbar%26zoo%3Dbar
connection_idstring required
ID of the connection
idstring required
ID of the Conversation

Returns

Response fieldTypeRequiredDescription
idstringNounique identifier for the conversation
created_atstring (date-time)Nowhen the conversation was created (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
updated_atstring (date-time)Nowhen the conversation was last updated (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
listing_idstringNopointer to the Property Listing this conversation is about
reservation_idstringNopointer to the Property Reservation this conversation is about
guest_idstringNopointer to the Property Guest in this conversation
guest_namestringNothe guest full name
guest_emailstringNothe guest email address
guest_phonestringNothe guest telephone number
sourcestringNothe channel the conversation happens on, eg. Airbnb, email or SMS
is_unreadbooleanNowhether the conversation has unread messages
messagesPropertyMessage[]Nothe messages in this conversation, oldest first
messages[].idstringNounique identifier for the message
messages[].created_atstring (date-time)Nowhen the message was sent (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
messages[].updated_atstring (date-time)Nowhen the message was last updated (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
messages[].messagestringNothe message body as plain text
messages[].subjectstringNothe message subject
messages[].sender_typeenumNowhether the guest, host or system sent the message Values: GUEST, HOST, SYSTEM
messages[].sender_namestringNothe name of the sender
messages[].is_automaticbooleanNowhether the message was sent automatically
messages[].is_unreadbooleanNowhether the message has not been read
messages[].attachmentsPropertyAttachment[]Nofiles attached to the message
messages[].attachments[].idstringNounique identifier for the attachment
messages[].attachments[].namestringNothe attachment file name
messages[].attachments[].download_urlstringNoURL to download the attachment
messages[].attachments[].content_typestringNothe attachment MIME type
metadataPropertyMetadata[]Nocustom field values
metadata[].idstringNothe custom field identifier
metadata[].slugstringNothe custom field key
metadata[].valueobjectNothe custom field value
metadata[].namespacestringNothe scope or origin of the custom field
metadata[].formatenumNothe data type of the value Values: TEXT, NUMBER, DATE, BOOLEAN, FILE, TEXTAREA, SINGLE_SELECT, MULTIPLE_SELECT, MEASUREMENT, PRICE, YES_NO, CURRENCY, URL
metadata[].extra_dataobjectNoadditional data about the custom field

Errors

Errors return the HTTP status code and a JSON body with statusCode, error (the short label) and message (a human-readable detail).

{
  "statusCode": 429,
  "error": "Too Many Requests",
  "message": "Too many requests to unified.to API; max requests per minute: N"
}
StatusErrorMeaning
400Bad RequestThe request was malformed or failed validation.
401UnauthorizedThe connection is likely broken; re-authorize it.
403ForbiddenThe connection is missing permissions or scopes.
404Not FoundThe requested resource does not exist.
429Too Many RequestsRate limit exceeded (see the two sources below).
500Internal Server ErrorAn unexpected error occurred.
501Not ImplementedNot supported by this integration.

Errors from the underlying integration pass through: the integration's status comes back as ours (429, 401, 403, 404 or 5xx), usually with its message. When the integration's error body is unclear, Unified extracts what it can and returns a clearer message.

429 Too Many Requests

A 429 has two possible sources:

  • The integration's own rate limit, passed through.
  • Unified's workspace limit: a rolling 60 seconds, set by plan, with the message Too many requests to unified.to API; max requests per minute: N.
const options = {
  method: 'GET',
  url: 'https://api.unified.to/property/5de520f96e439b002043d8dc/conversation/5de520f96e439b002043d8d8',
  headers: {
    authorization: 'bearer .....'
  },
  params: {
    fields: '',
    raw: '',
  }
};

const results = await axios.request(options);
Are we missing anything? Let us know
Was this page helpful?