Create a conversation

Updated:

POST/property/{connection_id}/conversation

Creates a PropertyConversation. Provide the unified PropertyConversation fields in the request body; they are mapped to the provider's API. Returns the created PropertyConversation.

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

Payload

idstring
unique identifier for the conversation
created_atdate-time
when the conversation was created (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
updated_atdate-time
when the conversation was last updated (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
listing_idstring
pointer to the Property Listing this conversation is about
reservation_idstring
pointer to the Property Reservation this conversation is about
guest_idstring
pointer to the Property Guest in this conversation
guest_namestring
the guest full name
guest_emailstring
the guest email address
guest_phonestring
the guest telephone number
sourcestring
the channel the conversation happens on, eg. Airbnb, email or SMS
is_unreadboolean
whether the conversation has unread messages
messages array
the messages in this conversation, oldest first
metadata array
custom field values

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: 'POST',
  url: 'https://api.unified.to/property/5de520f96e439b002043d8dc/conversation',
  headers: {
    authorization: 'bearer .....'
  },
  data: undefined,
  params: {
    fields: '',
    raw: '',
  }
};

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