Skip to main content
Last updated on October 28th, 2025

Basic fields

main_timestamp
timestamp
required
The date and time that the email was sent or received.Example: 2018-07-06 13:55:00 UTC
unix_main_timestamp
integer
required
The date and time that the email was sent or received, but in UNIX timestamp format. Useful for certain operations.Example: 1530885300
rfc2822_message_id
string
The message ID for the email, as present in the header, according to RFC2822 standards. More information about RFC2822: https://tools.ietf.org/html/rfc2822Example: <CAEdo3OgGCK5eY33+LWPmjts8AP22fHNr2rWv0avZ2y+Gw5joXA@mail.gmail.com>
in_reply_to_message_id
string
The message ID for the email that this email is replying to, as present in the header, according to RFC2822 standards. Useful for response analytics.Example: <CAGyM1L+oHxX0EEEFsqZJTprGsEGT3zn8iheXtVWs_3y2K4qReA@mail.gmail.com>
gmail_primary_address
string
required
The primary email address for the tracked mailbox that sent or received the email.Example: name@address.com
gmail_user_id
string
required
The Gmail User ID for the tracked mailbox. It should be used as the key component of any ‘user’ filter since User ID is unique and unchangeable.Example: 102114834148206491213
gmail_message_id
string
required
The internal Gmail API message ID. Not to be confused with rfc2822_message_id. All messages in Gmail must have one. This is only guaranteed to be unique for each gmail_user_id. This means two different gmail_user_id’s may have the same gmail_message_id for two different emails.Example: 1646fdffe8e69086
gmail_thread_id
string
The internal Gmail API thread ID for the thread that this email belongs to. A thread refers to a series of replied emails.Example: 164126138bf4bfe1
subject
string
The email subject line as seen in the email header.Example: Re: about that email
from_address
string
The visible address of the sender, matching the one you would see in your email client.Example: name@address.com
from_domain
string
The domain of the sender’s email address.Example: address.com
from_original_address
string
The original address of the sender. This can be used to track or display real senders vs. aliases, and also to track different services able to impersonate addresses when sending emails. Possible values:
  • If from is an alias: this address will be different than from_address
  • If from is not an alias: this address will be the same as from_address
Example: truename@trueaddress.com
recipients
record
Array of all recipients for that message. It’s a repeated record that can contain several sub-rows.Example: [{address: 'name1@test.com', name: 'name1', domain: 'test.com', type: 'to'}, {address: 'name2@test.com', name: 'name2', domain: 'test.com', type: 'cc'} ]
recipients.address
string
The email address for each of the recipients for that message.Example: name1@test.com
recipients.domain
string
The domain for each of the recipients for that message.Example: test.com
recipients.type
string
A string indicating the type of the recipient. Possible values:
  • to
  • cc
  • bcc
Example: to
recipients_to
string
All the destination addresses in the ‘to’ field, separated by commas.Example: name1@test.com, name2@test.com
recipients_cc
string
All the destination addresses in the ‘cc’ field, separated by commas.Example: name1@test.com, name2@test.com
recipients_bcc
string
All the destination addresses in the ‘bcc’ field, separated by commas.Example: name1@test.com, name2@test.com
addresses
record
Array of all addresses for that message. It’s a repeated record that can contain several sub-rows.Example: [{address: 'name1@test.com', domain: 'test.com', direction: 'sender', type: 'from'}, {address: 'name2@test.com', domain: 'test.com', direction: 'recipient', type: 'cc'}]
addresses.address
string
The email address for each of the addresses for that message.Example: name1@test.com
addresses.domain
string
The domain for each of the addresses for that message.Example: test.com
addresses.direction
string
The direction of the address for that message. Possible values:
  • sender
  • recipient
Example: recipient
addresses.type
string
A string indicating the type of the recipient. Possible values:
  • from
  • to
  • cc
  • bcc
Example: to
is_direct_message
boolean
Whether this message is a direct message for the recipient’s (tracked) mailbox. Possible values:
  • True
  • False
Example: True
is_reply
boolean
Whether this message is a reply to another email or not. Possible values:
  • True
  • False
Example: True
is_forwarded
boolean
Whether this message is a forwarded email. This is determined based on the subject line starting with ’Fwd:’. Possible values:
  • True
  • False
Example: True
is_replied
boolean
Whether this message has been replied to. Possible values:
  • True
  • False
Example: False
is_first_reply
boolean
Whether this message is the first reply in the email conversation. Possible values:
  • True
  • False
Example: True
reply_data
record
Several metrics about the replies to an email. This will be NULL if the message has not been replied to.Example:
reply_data": [
      {
        “replied_by”: name1@test.com
        “replied_by_delegate”: name2@test.com,
        “reply_time”: 45376,
        “cwt_time”: 49000,
        “reply_time_bucket”: “<24h”,
        “reply_time_bucket_order”: 2,
        “reply_sla_bucket”: “<48 hours”,
        “reply_sla_order”: 0,
        “reply_time_index”: 1
      }
    ]
reply_data.replied_by
string
The email address of the person who replied to the email. This will be NULL if the message has not been replied to.Example: name1@test.com
reply_data.replied_by_delegate
string
Delegate account of who replied to the email. This will be NULL if the message has not been replied or if it was replied without a delegate account.Example: delegate1@test.com
reply_data.reply_time
integer
The difference between the time the email was originally received and the time of the reply in seconds. This will be NULL if the message has not been replied to.If you have business hours set up, this response time will only count the response time for your working hours period.Example: 56234
reply_data.cwt_time
integer
The difference between the time the email was originally received and the time of the reply in seconds. This will be NULL if the message has not been replied to. This field reflects the total time the customer is waiting for the answer.Example: 56234
reply_data.reply_time_bucket
string
The response time bucket (based on reply_data.reply_time). This will be NULL if the message has not been replied to. Possible values:
  • <24h
  • 24-48h
  • 48-72h
  • <72h
Example: <24h
reply_data.reply_time_bucket_order
integer
The “order” of the reply_data.reply_time_buckets. This will be NULL if the message has not been replied. It helps us to order the buckets properly in Looker Studio visualizations.Example: 1
reply_data.reply_sla_bucket
string
The SLA time bucket (based on reply_data.cwt_time). This will be NULL if the message has not been replied to. Values can change depending on the client’s set up. Possible values:
  • <12 hours
  • 12 - 24 hours
  • >24 hours
Example: <24h
reply_data.reply_sla_order
integer
The “order” of the reply_data.reply_sla_buckets. This will be NULL if the message has not been replied. It helps us to order the buckets properly in Google Data Studio visualizations.Example: 1
reply_data.reply_index
integer
An index of the replies to a message. This will be NULL if the message has not been replied. The first reply is ‘1’, second reply ‘2’, and so on.Example: 1
is_first_message
boolean
This field indicates if the email is the first message in the thread based on gmail_message_id and gmail_thread_id fields. Possible values:
  • True: if it is the first message in the conversation.
  • False: if it is a reply to another message.
Example: True
is_spam
boolean
Whether the email was marked as SPAM when Gmail first delivered the message. Possible values:
  • True
  • False
Example: False
is_intradomain
string
Whether or not external domains are involved in the email interaction. Possible values:
  • Internal: if all domains on the email are internal.
  • External: if there is at least one domain that is not internal.
Example: External
action_type
string
The direction of the message for the tracked mailbox. Possible values:
  • Received
  • Sent
Example: Received
from_delegated
string
This field indicates if the email was sent by a delegate through a delegated mailbox. If the field is null it means that the email was sent by the regular email account. Otherwise, it will contain the original address of the account that sent the email.Example: name1@test.com
is_automated_email
string
Whether or not the email was sent from an automated service, based on information contained in the email header.Example: Automated
email_age
integer
This field indicates how many seconds old the message is at the time of the materialized query.Example: 42615
gmail_message_labels
record
Array of all labels applied to that email at the time of the materialized query.Example: ['RECEIVED', 'label_121']
gmail_message_labels.id
string
All the labels present in gmail_message_labels. There can be none, hence the nullability. Remember that custom labels are present in the form of an ID.Example: label_121
gmail_message_labels.name
string
All the labels present in gmail_message_labels. There can be none, hence the nullability. The label name associated with each label ID (not unique).Example: Richard’s Label
gmail_message_labels.type
string
All the labels present in gmail_message_labels. There can be none, hence the nullability. The type defines whether the label is a gmail default label or it was created by the user. Possible values:
  • system: if it’s a Gmail default label.
  • user: if it’s a custom label defined by the user.
Example: system
gmail_message_labels_flattened
string
All of the labels present in gmail_message_labels, separated by commas.Example: INBOX, UNREAD, IMPORTANT, MGMT, TO-DO
is_inside_bhs
boolean
Indicates if the message was sent or received during the business hours.Example: True
is_direct_message_filter
string
The recipient type of the primary address.Example: Direct Messages (To)
thread_length
integer
Indicates the total number of messages on the email’s thread.Example: 5
from_group
string
If the email comes from a Google Group, this field will contain the group address.Example: group@domain.com
is_excluded_message
boolean
If the email is excluded according to the backend filtering settings.Example: True
department
string
This field indicates the department that the mailbox belongs to according to the backend data.Example: Customer Success
client_group_array
record
Array of all client groups for that message. It’s a repeated record that can contain several sub-rows.Example: [{client_group: 'Tier 1', address: 'name1@test.com', domain: 'test.com', type: 'to'}, {client_group: 'Tier 2', address: 'name2@test.com', domain: 'test.com', type: 'from'} ]
client_group_array.client_group
string
The name of the client group for each of the addresses/domains for that message.Example: Tier 1
client_group_array.address
string
The email address for each of the client group for that message.Example: name1@test.com
client_group_array.domain
string
The email domain for each of the client groups for that message.Example: test.com
client_group_array.type
string
The type for each of the addresses for that message.Example: to

Attachment fields

The fields related to attachments aren’t included by default in our schema. If you’re interested in getting information related to attachments, please get in touch with your Business Intelligence Consultant to enable this.
attachments
record
Array of all attachments for that message. It’s a repeated record that can contain several sub-rows. This will be NULL if there are no attachments.Example:
"attachments": [
      {
        "filename": "Q4_Report.pdf",
        "file_type": "application/pdf",
        "file_size_bytes": 2458624,
        "extension": "pdf",
        "is_inline": false
      },
      {
        "filename": "Data.xlsx",
        "file_type": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
        "file_size_bytes": 1048576,
        "extension": "xlsx",
        "is_inline": false
      }
    ]
attachments.filename
string
The filename of each attachment including its extension.Example: Q4_Report.pdf
attachments.file_type
string
The MIME type of each attachment.Example: application/pdf
attachments.file_size_bytes
integer
The size of each attachment in bytes.Example: 2458624
attachments.extension
string
The file extension of each attachment.Example: pdf
attachments.is_inline
boolean
Indicates if the attachment is inline. Possible values:
  • True
  • False
Example: False

Extra fields

If your dashboard has customizations, your data table might have extra fields related to them. If that’s the case, please contact your Business Intelligence Consultant to request your personalized schema.