Data warehouse sync

Sync notification analytics data from Knock into your own data warehouse

You can bring your notification analytics from Knock into your own data warehouse so that you can analyze it alongside the rest of your data. This is an enterprise-only feature. To set up this sync, please contact our support team.

How it works

Knock leverages Prequel to integrate with your data warehouse. There is no self-service UI to connect your account to start receiving data; instead when you contact us to set up a sync we'll send you a secure link to fill in the information about your data warehouse. Once it's connected, you'll begin receiving a backfill of historial data, and then going forward you will receive the most up to date data on an ongoing basis.

Setup

First, you'll have to give Knock your database type and host destination address for your data warehouse. The databases supported as destinations for Knock are those listed on Prequel.

Next, Knock generates a magic link you'll fill out. See what information you'll need for your particular database here.

Once the information is filled out, you can run a test connection to make sure it's wired up. If it's successful, you can save it and it will proceeed with the backfill transfer.

Available data

Our data warehouse connector syncs data from our messages table. Each message represents a notification that was executed for a single recipient. You can read more about messages as a concept here. Below is a description of the columns included in the table and the data type of each. To see how this data type will map onto the data types of your destination table, check the destination type mapping in the Prequel docs.

Messages table structure

NameTypeDescription
message_idstringThe unique identifier for this message and the primary key for this table
account_idstringThe UUID of the message's account
environment_idstringThe UUID of the message's environment
environment_namestringThe name of the message's environment
environment_slugstringThe slug of the message's environment
channel_idstringThe UUID of the channel the message was sent on
channel_keystringThe unique key of the channel the message was sent on
channel_namestringThe name of the channel the message was sent on
channel_providerstringThe provider for the channel the message was sent on
channel_typestringThe type of channel the message was sent on
workflow_idstringThe UUID of the version of the workflow that the message belongs to
workflow_keystringThe unique key of the workflow the message belongs to
step_refstringThe reference of the step on the workflow that the message belongs to
recipient_idstringThe ID of the recipient for the message
recipient_typestring
The type of recipient for the message, can be a user or an object
tenant_idstringThe tenant associated with this message
exec_modestring
The execution mode of the workflow. Possible values are:
  • trigger - from the API
  • rehearse - test run
  • rehearse_step - test run a single step
  • integration - from an event integration source
  • scheduled - previously scheduled execution
message_statusstring
inserted_attimestampThe timestamp of when the message was created
updated_attimestampThe timestamp of when the message was last updated
archived_attimestampThe timestamp of when the message was archived
seen_attimestampThe timestamp of when the message was seen
read_attimestampThe timestamp of when the message was read
clicked_attimestampThe timestamp of when a link in the message was clicked
interacted_attimestampThe timestamp of when the message was interacted with
has_been_seeninteger (0 = false, 1 = true)Whether the message has been seen
has_been_readinteger (0 = false, 1 = true)Whether the message has been read
has_been_clickedinteger (0 = false, 1 = true)Whether a link in the message has been clicked
has_been_interactedinteger (0 = false, 1 = true)Whether the message has been interacted with
has_been_archivedinteger (0 = false, 1 = true)Whether the message has been archived

See possible engagement statuses for a message.