Conversation data model

Updated:

View field support, webhooks, and list parameters for each integration on the Supported Integrations page.

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

TypeScript

TypeScript
export type PropertyConversation = {
	id?: string; // unique identifier for the conversation
	created_at?: string-time; // when the conversation was created (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
	updated_at?: string-time; // when the conversation was last updated (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
	listing_id?: string; // pointer to the Property Listing this conversation is about
	reservation_id?: string; // pointer to the Property Reservation this conversation is about
	guest_id?: string; // pointer to the Property Guest in this conversation
	guest_name?: string; // the guest full name
	guest_email?: string; // the guest email address
	guest_phone?: string; // the guest telephone number
	source?: string; // the channel the conversation happens on, eg. Airbnb, email or SMS
	is_unread?: boolean; // whether the conversation has unread messages
	messages?: []; // the messages in this conversation, oldest first
	metadata?: []; // custom field values
	raw?: any; // raw data from the integration
} 

Zod

Zod
import { z } from 'zod';

export const ZodPropertyConversation = z.object({
	id: z.string().optional().describe("unique identifier for the conversation"),
	created_at: z.string-time().optional().describe("when the conversation was created (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)"),
	updated_at: z.string-time().optional().describe("when the conversation was last updated (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)"),
	listing_id: z.string().optional().describe("pointer to the Property Listing this conversation is about"),
	reservation_id: z.string().optional().describe("pointer to the Property Reservation this conversation is about"),
	guest_id: z.string().optional().describe("pointer to the Property Guest in this conversation"),
	guest_name: z.string().optional().describe("the guest full name"),
	guest_email: z.string().optional().describe("the guest email address"),
	guest_phone: z.string().optional().describe("the guest telephone number"),
	source: z.string().optional().describe("the channel the conversation happens on, eg. Airbnb, email or SMS"),
	is_unread: z.boolean().optional().describe("whether the conversation has unread messages"),
	messages: z.array().optional().describe("the messages in this conversation, oldest first"),
	metadata: z.array().optional().describe("custom field values"),

});

Python

Python
import dataclasses

@dataclasses.dataclass
class PropertyConversation:
	"""unique identifier for the conversation"""
	id: Optional[str]
	"""when the conversation was created (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)"""
	created_at: Optional[str]
	"""when the conversation was last updated (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)"""
	updated_at: Optional[str]
	"""pointer to the Property Listing this conversation is about"""
	listing_id: Optional[str]
	"""pointer to the Property Reservation this conversation is about"""
	reservation_id: Optional[str]
	"""pointer to the Property Guest in this conversation"""
	guest_id: Optional[str]
	"""the guest full name"""
	guest_name: Optional[str]
	"""the guest email address"""
	guest_email: Optional[str]
	"""the guest telephone number"""
	guest_phone: Optional[str]
	"""the channel the conversation happens on, eg. Airbnb, email or SMS"""
	source: Optional[str]
	"""whether the conversation has unread messages"""
	is_unread: Optional[bool]
	"""the messages in this conversation, oldest first"""
	messages: Optional[PropertyPropertyConversationMessages]
	"""custom field values"""
	metadata: Optional[PropertyPropertyConversationMetadata]
Are we missing anything? Let us know
Was this page helpful?