Campaigns data model
The Campaigns data source provides information about the Email/SMS, Notes, and Opportunity types of campaigns. For each campaign, this data source also provides notification-related details such as targeted guests, eligible guests, and guests to whom the notifications are delivered.
Note
The Campaigns data source currently does not include an identifier to distinguish between scheduled campaigns and always-on campaigns. We will add this information as part of upcoming updates.
Example Use Cases
For each campaign: targeted guests and eligible guests.
For each campaign: delivered %, opened %, and clicked %.
Granularity of the data
At the most basic level, data is organized at a center, campaign, and date-level. For always-on campaigns, which go out on multiple days, there will be multiple rows for each day that the campaign is processed.
The following table shows how data is populated for a scheduled campaign.

The following table shows how data is populated for an always-on campaign.

Group | Description | Field | Definition | Examples/Notes | Data Type |
---|---|---|---|---|---|
Center, Zone, Organization | An organization can be divided into zones, which can be further divided into centers. Here, we refer to the center from where the campaigns are sent. | organization name | Formal name of the organization. | 'Massage Spa Express' is the formal name of an organization. | varchar(512) |
Center, Zone, Organization | An organization can be divided into zones, which can be further divided into centers. Here, we refer to the center from where the campaigns are sent. | organization account name | Domain name of the organization in Zenoti. | If you use the 'https://massagespa.zenoti.com' URL to log in to Zenoti, "massagespa" is your account name. The formal name and domain name may be different. | varchar(256) |
Center, Zone, Organization | An organization can be divided into zones, which can be further divided into centers. Here, we refer to the center from where the campaigns are sent. | center name | Center from where the campaigns are sent. | varchar(128) | |
Center, Zone, Organization | An organization can be divided into zones, which can be further divided into centers. Here, we refer to the center from where the campaigns are sent. | center company name | Name under which the center is registered. | Businesses, especially in a franchisee model, may register each center as a different company - such details are tracked on the Centers > General tab. | varchar(200) |
Center, Zone, Organization | An organization can be divided into zones, which can be further divided into centers. Here, we refer to the center from where the campaigns are sent. | minutes to add | Number of minutes that need to be added to UTC time to calculate the current time at the center. Timestamps that are generated by Tableau (for example, if you use filters such as Today and Tomorrow) are in UTC. As a result, you need this field to find out the current center time. Note: You do not need this field for timestamps that are directly in the data source - these timestamps are already in the center’s time zone. | int4 | |
Center, Zone, Organization | An organization can be divided into zones, which can be further divided into centers. Here, we refer to the center from where the campaigns are sent. | is center franchise | This flag indicates whether the center is a franchisee. - True: Indicates that the center is a franchisee. - False: Indicates that the center is not a franchisee. | boolean | |
Center, Zone, Organization | An organization can be divided into zones, which can be further divided into centers. Here, we refer to the center from where the campaigns are sent. | center cst number | Center's Central Sales Tax (CST) number. | varchar(80) | |
Center, Zone, Organization | An organization can be divided into zones, which can be further divided into centers. Here, we refer to the center from where the campaigns are sent. | center tin number | Center's Taxpayer’s Identification Number (TIN). | varchar(80) | |
Center, Zone, Organization | An organization can be divided into zones, which can be further divided into centers. Here, we refer to the center from where the campaigns are sent. | center tot number | Center's Transient Occupancy Tax (TOT) number. | varchar(80) | |
Center, Zone, Organization | An organization can be divided into zones, which can be further divided into centers. Here, we refer to the center from where the campaigns are sent. | center service tax number | Center's Service Tax number. | varchar(80) | |
Center, Zone, Organization | An organization can be divided into zones, which can be further divided into centers. Here, we refer to the center from where the campaigns are sent. | center vat number | Center's Value-Added Tax (VAT) number. | varchar(80) | |
Center, Zone, Organization | An organization can be divided into zones, which can be further divided into centers. Here, we refer to the center from where the campaigns are sent. | center luxary tax number | Center's Luxury Tax number. | varchar(80) | |
Campaign | These fields detail the attributes of the campaign. | campaign name | Name of the campaign. | varchar(512) | |
Campaign | These fields detail the attributes of the campaign. | campaign description | Description of the campaign. You can leave this field blank. | varchar(4096) | |
Campaign | These fields detail the attributes of the campaign. | campaign type | This flag indicates the type of the campaign. - 1: Email/SMS/Push Notification - 3: Opportunity - 5: Notes campaign | integer | |
Campaign | These fields detail the attributes of the campaign. | campaign start date | Start date that corresponds to the 'Offer is valid for x days' configuration while creating a campaign. | timestamp | |
Campaign | These fields detail the attributes of the campaign. | campaign end date | End date that corresponds to the 'Offer is valid for x days' configuration while creating a campaign. | timestamp | |
Campaign | These fields detail the attributes of the campaign. | campaign expiry date | Applicable only for cashback campaigns. This field stores the date for the 'Cashback is valid until' configuration while creating a campaign. | timestamp | |
Campaign | These fields detail the attributes of the campaign. | campaign validity days | Applicable only for cashback campaigns. This field stores the number of days for the 'Cashback is valid for x days' configuration while creating a campaign. | If you do not specify any value for this field while creating the campaign, -1 is auto-populated in this field. | integer |
Campaign | These fields detail the attributes of the campaign. | campaign sent by | Name of the employee who launched the campaign. | varchar(256) | |
Campaign | These fields detail the attributes of the campaign. | campaign send date | Date and time at which the campaign notification is sent. | timestamp | |
Campaign | These fields detail the attributes of the campaign. | campaign send status | Indicates the status of the campaign. The possible values are as follows: - Cancelled - Sent - Pending | varchar(50) | |
Campaign | These fields detail the attributes of the campaign. | # of guests | Number of guests that meet the criteria specified in the target segment. | Not all guests identified in the target segment are part of this field. | integer |
Campaign | These fields detail the attributes of the campaign. | # of processed | Subset of guests out of the '# of guests' field who are eligible to receive notifications. | Some guests may not have valid email IDs or phone numbers. They may also have opted out of receiving marketing notifications. Such guests are excluded from this field even though they may be part of the target segment. | integer |
Campaign | These fields detail the attributes of the campaign. | # of sent to | Number of notifications that were actually processed on the corresponding date for the corresponding campaign. | # of sent to' = '# of dnd' + '# of mms failed' + '# of undelivered' + '# of queued' + '# of delivered' | integer |
Campaign | These fields detail the attributes of the campaign. | # of dnd | Number of notifications that were not delivered because the guest had registered for Do Not Disturb (DND) mode. | integer | |
Campaign | These fields detail the attributes of the campaign. | # of mms failed | Number of notifications that were not delivered to the guest because of a failure at Zenoti's end. | integer | |
Campaign | These fields detail the attributes of the campaign. | # of undelivered | Number of notifications that were not delivered to the guest because of a failure at the notification engine's end. | integer | |
Campaign | These fields detail the attributes of the campaign. | # of queued | Number of notifications that were successfully processed by the notifications engine, but the guest's carrier did not yet return a status. | integer | |
Campaign | These fields detail the attributes of the campaign. | # of delivered | Number of notifications that were successfully delivered to the guest. | integer | |
Campaign | These fields detail the attributes of the campaign. | # of opened | Number of emails that were opened by guests. This field is applicable only for email notifications. | integer | |
Campaign | These fields detail the attributes of the campaign. | # of clicked | Number of emails in which guests clicked a link. This field is applicable only for email notifications. | integer | |
Campaign | These fields detail the attributes of the campaign. | campaign launch date | DO NOT USE - THIS FIELD IS BEING DEPRECATED. | DO NOT USE - THIS FIELD IS BEING DEPRECATED. | timestamp |