Data Firehose event schema
Event envelope
All events include the following properties by default.
| Field | Type |
|---|---|
| eventId | string |
| accountId | integer |
| eventDate | string |
Interaction events
Email
Email double opt-in
| Field | Type |
|---|---|
| eventId | string |
| accountId | integer |
| eventDate | string |
| contactId | int |
| contactEmail | string |
| contactMobileNumber | string |
Email social view
| Field | Type |
|---|---|
| eventId | string |
| accountId | integer |
| eventDate | string |
| contactId | integer |
| contactEmail | string |
| contactMobileNumber | string |
| campaignId | integer |
| campaignName | string |
| bookmarkName | string |
| ipAddress | string |
| type | string |
| campaignType | string |
Email open
| Field | Type |
|---|---|
| eventId | string |
| accountId | integer |
| eventDate | string |
| contactId | integer |
| contactEmail | string |
| contactMobileNumber | string |
| campaignId | integer |
| campaignName | string |
| emailType | string |
| ipAddress | string |
| userAgent | string |
| mailClient | string |
| mailClientVersion | string |
| isBot | bool |
| campaignType | string |
Email click
| Field | Type |
|---|---|
| eventId | string |
| accountId | integer |
| eventDate | string |
| contactId | integer |
| contactEmail | string |
| contactMobileNumber | string |
| campaignId | integer |
| campaignName | string |
| linkId | integer |
| ipAddress | string |
| userAgent | string |
| url | string |
| redirectTo | string |
| emailType | string |
| productRecommendationId | integer |
| campaignType | string |
Email failed
Can be filtered by status: Soft bounce, hard bounce, or mail block.
| Field | Type |
|---|---|
| eventId | string |
| accountId | integer |
| eventDate | string |
| contactId | integer |
| contactEmail | string |
| contactMobileNumber | string |
| campaignId | integer |
| campaignName | string |
| campaignType | string |
| status | string |
| subStatus | string |
Email unsubscribed
| Field | Type |
|---|---|
| eventId | string |
| accountId | integer |
| eventDate | string |
| status | string |
| contactId | integer |
| contactEmail | string |
| contactMobileNumber | string |
| campaignId | integer |
| campaignName | string |
| campaignType | string |
Email ISP complaint
| Field | Type |
|---|---|
| eventId | string |
| accountId | integer |
| eventDate | string |
| contactId | integer |
| contactEmail | string |
| contactMobileNumber | string |
| campaignId | integer |
| campaignName | string |
| campaignType | string |
Email send
| Field | Type |
|---|---|
| eventId | string |
| accountId | integer |
| eventDate | string |
| contactId | integer |
| contactEmail | string |
| contactMobileNumber | string |
| campaignId | integer |
| campaignName | string |
| splitTestVersion | string |
| sendId | integer |
| subject | string |
| sendStatus | string |
| sendStatusReason | string |
| campaignType | string |
Email reply
Access the full content of email replies and attachments through the API.
When email replies contain large amounts of content or attachments, firehose stores this data separately as large objects (LOBs). You can download this content using the Retrieve lob API endpoint.
📘This feature is available to anyone on our CXDP package.
Find the large object ID
The large object ID (lobId) tells the API which content to retrieve.
For email reply content:
- The
lobIdis in theContentReferencefield of the reply event.
For email reply attachments:
- The
lobIdis in theContentReferencefield of the attachment object.
Retrieve the content
Use the retrieve large object endpoint to download the content:
| Field | Type |
|---|---|
| eventId | string |
| accountId | integer |
| eventDate | string |
| contactId | integer |
| contactEmail | string |
| contactMobileNumber | string |
| campaignId | integer |
| campaignName | string |
| isHtml | bool |
| replyType | string |
| fromAddress | string |
| subject | string |
| toAddress | string |
| forwardedAddress | string |
| ccAddresses | string |
| contentReference | string |
| attachmentsCount | integer |
| attachmentsNames | string |
| attachmentsReferences | string |
| customReplyToAddress | string |
| campaignType | string |
Page view
| Field | Type |
|---|---|
| eventId | string |
| accountId | integer |
| eventDate | string |
| contactId | integer |
| contactEmail | string |
| contactMobileNumber | string |
| campaignId | integer |
| campaignName | string |
| productRecommendationId | integer |
| productRecommendationName | string |
| productRecommendationType | string |
| url | string |
| pageTitle | string |
| usedCookie | Boolean |
| roiMarkers | List |
| campaignType | string |
roiMarkers
| Field | Type |
|---|---|
| dataType | string |
| isOverridable | Boolean |
| name | string |
| value | string |
Email campaign send
| Field | Type |
|---|---|
| eventId | string |
| accountId | integer |
| eventDate | string |
| campaignId | integer |
| sendId | integer |
| subject | string |
| fromName | string |
| fromAddress | string |
| tags | list |
| splitTestVariant | string |
| links | list |
| name | string |
| sendDateAndTime | int64 |
| emailFormat | string |
| customReplyAddress | string |
| campaignType | string |
| splitTest | string |
| sendType | Boolean |
| listsSentTo | list |
| segmentsSentTo | list |
| preferencesSentTo | list |
SMS
SMS click
| Field | Type |
|---|---|
| eventId | string |
| accountId | integer |
| eventDate | string |
| contactId | integer |
| contactEmail | string |
| contactMobileNumber | string |
| ipAddress | string |
| userAgent | string |
| fullForwardingLinkUrl | string |
| messageId | string |
| linkType | string |
| campaignId | integer |
| campaignName | string |
| sendType | string |
SMS send
| Field | Type |
|---|---|
| eventId | string |
| accountId | integer |
| eventDate | string |
| contactId | integer |
| contactEmail | string |
| contactMobileNumber | string |
| campaignId | integer |
| campaignName | string |
| splitTestVariant | string |
| sendId | integer |
| sendStatus | string |
| sendStatusReason | string |
| sendType | string |
SMS delivered
| Field | Type |
|---|---|
| eventId | string |
| accountId | integer |
| eventDate | string |
| contactId | integer |
| contactEmail | string |
| contactMobileNumber | string |
| campaignId | integer |
| campaignName | string |
| sendType | string |
SMS failed
Can be filtered by status: failed, expired, deleted, soft bounce, hard bounce, or skipped.
| Field | Type |
|---|---|
| eventId | string |
| accountId | integer |
| eventDate | string |
| contactId | integer |
| contactEmail | string |
| contactMobileNumber | string |
| campaignId | integer |
| campaignName | string |
| status | string |
| subStatus | string |
| sendType | string |
SMS unsubscribed
| Field | Type |
|---|---|
| eventId | string |
| accountId | integer |
| eventDate | string |
| contactId | integer |
| status | string |
| contactEmail | string |
| contactMobileNumber | string |
| smsCampaignId | integer |
| campaignName | string |
| sendType | string |
| listIds | list |
SMS reply
| Field | Type |
|---|---|
| eventId | string |
| accountId | integer |
| eventDate | string |
| receivedOn | string |
| messageId | string |
| sentTo | string |
| message | string |
| keyword | string |
| contactId | integer |
| contactEmail | string |
| contactMobileNumber | string |
| campaignId | string |
| campaignName | string |
| sendType | string |
Push notification
Push notification click
| Field | Type |
|---|---|
| eventId | string |
| accountId | integer |
| eventDate | string |
| messageId | integer |
| programId | integer |
| dateTimeSent | string (ISO 8601) |
| dateTimeClicked | string (ISO 8601) |
| contactId | integer |
| programName | string |
| contactEmail | string |
| contactMobileNumber | string |
Push notification send
| Field | Type |
|---|---|
| eventId | string |
| accountId | integer |
| eventDate | string |
| contactId | integer |
| contactEmail | string |
| contactMobileNumber | string |
| messageId | integer |
| programId | integer |
| dateTimeSent | string (ISO 8601) |
| isFailed | Boolean |
| failReason | string |
Push notification error
| Field | Type |
|---|---|
| eventId | string |
| accountId | integer |
| eventDate | string |
| contactId | integer |
| contactEmail | string |
| contactMobileNumber | string |
| externalMessageId | string |
| system | string |
| message | string |
| deviceId | string |
| errorCode | integer |
| dateTimeErrored | string (ISO 8601) |
Transactional email
Transactional email failed
| Field | Type |
|---|---|
| eventId | string |
| accountId | integer |
| eventDate | string |
| status | string |
| subStatus | string |
| contactId | integer |
| messageGuid | string |
| isComplaint | Boolean |
| metadata | string |
Transactional email ISP complaint
Currently not available - coming soon.
Transactional email click
| Field | Type |
|---|---|
| eventId | string |
| accountId | integer |
| eventDate | string |
| contactId | integer |
| messageGuid | string |
| ipAddress | string |
| userAgent | string |
| url | string |
| metadata | string |
Transactional email open
| Field | Type |
|---|---|
| eventId | string |
| accountId | integer |
| eventDate | string |
| contactId | integer |
| messageGuid | string |
| ipAddress | string |
| userAgent | string |
| metadata | string |
Transactional email campaign send
| Field | Type |
|---|---|
| eventId | string |
| accountId | integer |
| eventDate | string |
| campaignId | integer |
| messageId | string |
| subject | string |
| fromName | string |
| fromAddress | string |
| tags | List<string> |
| links | List<CampaignLink> |
| name | string |
| sendDateAndTime | string |
| emailFormat | string |
| customReplyAddress | string |
| metadata | string |
Landing page
Landing page view
| Field | Type |
|---|---|
| eventId | string |
| accountId | integer |
| eventDate | string |
| contactId | integer |
| contactEmail | string |
| contactMobileNumber | string |
| landingPageName | string |
| ipAddress | string |
| userAgent | string |
Contact events
Contact created
Field | Type |
|---|---|
eventId | string |
accountId | integer |
eventDate | string |
contactId | integer |
contactEmail | string |
contactMobileNumber | string |
customId_customId1Name | string |
customId_customId2Name | string |
email_optInType | string, enum
|
email_status | string, enum:
|
sms_mms_rcs_countryCode | string |
sms_mms_rcs_status | string, enum:
|
whatsApp_status | string, enum:
|
dataFields_firstName | string |
dataFields_lastName | string |
dataFieldsLobid | string |
Contact removed
| Field | Type |
|---|---|
| eventId | string |
| accountId | integer |
| eventDate | string |
| contactId | integer |
| contactEmail | string |
| contactMobileNumber | string |
| customId_customId1Name | string |
| customId_customId2Name | string |
Contact updated
Field | Type |
|---|---|
eventId | string |
accountId | integer |
eventDate | string |
contactId | integer |
contactEmail | string |
contactMobileNumber | string |
customId_customId1Name | string |
customId_customId2Name | string |
email_optInType | string, enum:
|
email_status | string, enum:
|
sms_mms_rcs_countryCode | string (ISO 3166-1 alpha-2) |
sms_mms_rcs_status | string, enum:
|
whatsapp_status | string, enum:
|
dataFields_firstName | string |
dataFields_lastName | string |
dataFieldsLobid | string |
Contact membership updated
Field | Type |
|---|---|
eventId | string |
accountId | integer |
eventDate | string |
contactId | integer |
contactEmail | string |
contactMobileNumber | string |
customId_customId1Name | string |
customId_customId2Name | string |
list_segment_id | integer |
type | string, enum:
|
name | string |
action | string, enum:
|
Contact consent added
| Field | Type |
|---|---|
| eventId | string |
| accountId | integer |
| eventDate | string |
| contactId | integer |
| contactEmail | string |
| contactMobileNumber | string |
| customId_customId1Name | string |
| customId_customId2Name | string |
| record_text | string |
| record_consented | string |
| record_url | string |
| record_ipAddress | string |
| record_userAgent | string |
| record_created | string |
Contact preference updated
| Field | Type |
|---|---|
| eventId | string |
| accountId | integer |
| eventDate | string |
| contactId | integer |
| contactEmail | string |
| contactMobileNumber | string |
| customId_customId1Name | string |
| customId_customId2Name | string |
| preference_id | integer |
| preference_isOptedIn | Boolean |
| preference_publicName | string |
| preference_privateName | string |
Insight data events
Insight data collection created
Field | Type |
|---|---|
eventId | string |
accountId | integer |
eventDate | string |
collectionName | string |
collectionType | string, enum:
|
collectionScope | string, enum:
|
Insight data collection removed
Field | Type |
|---|---|
eventId | string |
accountId | integer |
eventDate | string |
collectionName | string |
collectionType | string, enum:
|
collectionScope | string, enum:
|
Insight data record set
Field | Type |
|---|---|
eventId | string |
accountId | integer |
eventDate | string |
collectionName | string |
collectionType | string, enum:
|
collectionScope | string, enum:
|
contactId | integer |
contactEmail | string |
contactMobileNumber | string |
customId_customId1Name | string |
customId_customId2Name | string |
recordId | string |
json | object |
jsonLobId | string |
Insight data record removed
Field | Type |
|---|---|
eventId | string |
accountId | integer |
eventDate | string |
collectionName | string |
collectionType | string, enum:
|
collectionScope | string, enum:
|
contactId | integer |
contactEmail | string |
contactMobileNumber | string |
customId_customId1Name | string |
customId_customId2Name | string |
recordId | string |
Updated 4 days ago
