Skip to main content
Proactive messages and campaign sends, with the delivery funnel timestamps and the provider error when a send failed.

One row is

one outbound message

Delivery

Rewritten daily

Columns

26

Where it lands

The partition delivered today holds the whole table. Read the latest snapshot_date= partition only, and check for _SUCCESS before you do, as described in bucket layout.

Columns

bigint
Internal warehouse key. Not stable between deliveries — the send is identified by conversation_id.
varchar(36)
Identifier of the workspace the send belongs to.
varchar(256)
Id of the tenant. NULL for rows with no tenant mapping.
varchar(256)
Name of the tenant. NULL for rows with no tenant mapping.
bigint
Internal warehouse key for the contact. Join cloud_chat_contacts through the conversation instead.
bigint
Join key. Conversation the message opened or belongs to. Joins to cloud_chat_conversations.
bigint
Number shown to agents for that conversation.
bigint
Inbox the message was sent from.
varchar(65535)
Name of that inbox.
bigint
Campaign the send belongs to. NULL when outbound_source_type is individual_proactive.
varchar(255)
Name of the campaign.
varchar(65535)
Name of the audience the campaign targeted.
varchar(20)
What produced the send: campaign for a bulk send, individual_proactive for one agent reaching out to one contact.
timestamp
When the send was created in the workspace.
timestamp
When the provider accepted the message. NULL when it never went out.
timestamp
When the message reached the contact’s device.
timestamp
When the contact opened it. Always NULL on channels that do not report read receipts, which is not the same as unread.
timestamp
When the contact replied.
boolean
Whether the message was sent. The funnel starts here.
boolean
Whether it was delivered.
boolean
Whether it was read.
boolean
Whether the contact replied. The four flags give you the delivery funnel without comparing timestamps for NULL.
varchar(6)
Provider error code when the send failed. NULL on successful sends.
varchar(97)
The error code with a plain-language explanation, for example a rate limit, a policy block or an undeliverable number. Other error covers codes without a specific category.
timestamp
When the datamart last wrote this row.
date
Partition column. Date of the delivery that wrote this file, in YYYY-MM-DD.