Glossary
Airy Core allows its users to process messaging data from a variety of sources, which are integrated via source providers. Users connect sources via channels. Once the channel is connected, Airy Core ingests source data and transforms them into conversations, contacts, and messages.
This document aims to provide a high-level overview of the Airy Core technical vocabulary. It provides definitions of the most important terms used both in the code and in the rest of the documentation.
Our Avro schemas provide a machine readable up-to-date version of our backend data model. If you are looking for details like null constraints and such, the Avro schemas folder is the right place. Furthermore, it is worth underlining that the Avro data model and glossary do not correspond exactly. The former is the exact machine representation of the data we store and the latter is a conceptual artifact we created to discuss and solve problems.
#
ChannelA channel represents a connection between a source and the Airy Core Platform.
#
ContactA contact represents the source participant. A conversation exists only if it has at least one message from a contact.
note
Not the same as users. Contacts are source participants whereas users are the actual users interacting with the airy platform.
#
ConversationA conversation is the logical aggregation of messages (at least one) from exactly one contact.
#
MessageA message wraps the data that is being transferred from and to the source with metadata. By definition, the data is source dependent. It can be plain text, or rich media like videos or sound, images, or templates.
id
uuid
Unique message id for deduplication.
headers
string mapOptional headers:
postback.payload
string postback payloads used for source automationspostback.referral
string facebook specific referral identifier
fromContact
boolean
Indicates whether the message was sent by a contact or not.
conversationId
uuidchannelId
uuidcontent
string Immutable string version of the ingested content.offset
long sequence number of message within a conversationsource
string source that ingested the messagefacebook
,google
,sms_twilio
etc.deliveryState
stringOne of:
pending
message to be sent outdelivered
message has been sent to source or has arrived at Airyfailed
message sending has terminally failed
sentAt
timestampupdatedAt
timestampnull
for messages that are inserted first time
#
HeadersHeader data contains information that is important for downstream processing and therefore cannot be separated from the message (as opposed to metadat). It also includes the message preview and tags that are useful for use cases like routing and automations.
#
MetadataMetadata is optional data attached to a subject such as a conversation, channel or a message. Have a look at this page for an in-depth explanation.
#
TagA tag is a special use case of metadata, which is used to tag conversations. As the use case of tagging conversations is so common, Airy Core provides specialized endpoints and filters for tagging conversations.
#
SourceA source represents a system that generates messaging data that a user wants to process with Airy Core.
#
ProviderSource providers are API platforms that allow Airy Core to connect to one or more of their sources typically via a webhook. E.g. Twilio is a source provider for the Twilio SMS and WhatsApp sources.
#
UserA user represents one authorized agent in Airy Core, which is different from a Contact
#
TemplatePre-defined messages that can be enhanced with user defined data.