communication_planning
Content: Planned communications
Planning of future Omnichannel Communications
Overview
In this Data Type, you can define all the data about the planned communications.
This table is not an output table of your system, but a table you can use to query information to your system. It is therefore not necessary that you use (learn about) all the fields and you can first start with the simple use-case section to know how to use it.
If you want to send omnichannel communications in a specific sending system (for example a newsletter system) then you should regularly (typically every day) retrieve the information of what e-mail should be sent to whom and when from this table.
Calling the Communication Planning Feed
We describe here the format and content of the data but read Calling the Communication Planning Feed to learn how to operate the feed.
Field groups
This table is constituted of the following field groups:
Communication
Fields: communication_id, datetime, sending_sys_cd, message_id
These fields give information about what the communication is (identifiers and datetime of sending and for which sending system).
Thread
Fields: thread_id, thread_type, thread_name, thread_conditions, thread_conditions_or
These fields give information about the thread. This can be purely informative (to know what thread id to indicate in the communicate_history table) but if thread_conditions are defined, it means that the communication should be sent only if these conditions are fullfiled.
Quite often, you want to retrieve only communications which have the condition:
array_length(thread_conditions) = 0
This way you only get communications which can be sent at the indicated date time and without any additional check required (this is the case for most newsletter systems)
Campaign and Channel
Fields: name, channel_ids, channel_names, campaign_id, campaign_name
These fields give information about the campaign and the channel
Typically, you want to select only the communications to be sent by your sending system, which will work with a condition like:
‘MY CHANNEL ID’ in unnest(channel_names)
and ( array_length(sending_sys_cd) = 0 or ‘MY SENDING CODE’ in unnest(sending_sys_cd))
Receivers
Fields: receivers, receiver_visitor_ids
Indicates which person should receive the message
Contents
Fields: information about the contents to be sent out.
Requests
Fields: requests
Information about what requests should be sent to Boxalino Narrative API to retrieve the content of the communication through API
Attributes
Fields: string_attributes, localized_string_attributes, numeric_attributes, localized_numeric_attributes, datetime_attributes, localized_datetime_attributes
Additional attributes about the communication to be sent out.
Example
In this example, we provide a simple SQL example of how to retrieve data from this table (typically, such sql can be saved into a BigQuery view and then you can simply retrieve the data from a data-feed URL).
Properties
Field name | Type | Mode | Description |
---|---|---|---|
communication_id | STRING | REQUIRED | a unique generated communication UUID (PK) |
datetime | TIMESTAMP | NULLABLE | the timestamp at which the communication should be sent |
sending_sys_cd | STRING | REPEATED | the systems code which sent the message (e.g.: 'NEWSLETTER', 'E-SHOP', ...) |
message_id | STRING | REQUIRED | a unique generated communication UUID (PK) which could be the same for different receipients |
thread_id | STRING | NULLABLE | the id of the communication thread (should refer to a prior communication_id or message_id which is the root of the thread) |
thread_type | STRING | NULLABLE | the type of the communication thread (typically 'message' of 'communication', by default is is considered as a 'communication' thread) |
thread_name | STRING | NULLABLE | the name of the communication thread |
thread_conditions | REPEATED | the conditions for the thread to be true | |
thread_conditions_or | BOOLEAN | NULLABLE | are the conditions and or or to be true |
name | STRING | NULLABLE | the name of the campaign or communication |
channel_ids | STRING | REPEATED | the ids of the communication channels (optional) |
channel_names | STRING | REPEATED | the channels (name) of the communication: 'email', ... |
campaign_id | STRING | NULLABLE | the id of the campaign or communication group |
campaign_name | STRING | NULLABLE | the name of the campaign or communication group |
receivers | REPEATED | typically not use in case the receive is only 1 persona defined by its persona_id, but available for other cases | |
receiver_visitor_ids | STRING | REPEATED | the visitor cookie ids from Boxalino of Google Analygtics (can be empty) |
senders | REPEATED | information about the communication senders | |
subject | STRING | NULLABLE | the subject of the communication |
contents | REPEATED | information about the content of the communication, typically only provided for the 'sent' event, as the other events should refer to the same message_id and persona_id / email so no need to indicate the content every time, only for sent | |
requests | REPEATED | requests to be sent to the Boxalino Narrative API | |
string_attributes | REPEATED | additional string (not localized) attributes of the content | |
localized_string_attributes | REPEATED | additional localized string attributes of the content | |
numeric_attributes | REPEATED | additional numeric (not localized) attributes of the content | |
localized_numeric_attributes | REPEATED | additional localized numeric attributes of the content | |
datetime_attributes | REPEATED | additional datetime (not localized) attributes of the content | |
localized_datetime_attributes | REPEATED | additional localized datetime attributes of the content |
Resources
BigQuery JSON Schema
https://github.com/boxalino/data-integration-doc-schema/blob/master/doc/communication_planning.json
BigQuery DDL
https://github.com/boxalino/data-integration-doc-schema/blob/master/ddl/communication_planning.sql