Core data concepts
In order for Knock to generate messages for your end users we need to have knowledge about a few key pieces of data from your system. This guide will give you an overview to the different types of data we need in order to power Knock.
A user in Knock represents someone who should receive a message. A user's profile information contains important attributes about the user that will be used in messages (name, email). The user object can contain other key-value pairs that can be used to further personalize your messages.
A preference indicates a user's willingness to receive a particular type of notification. Preferences always belong to a user and can be paired with an identifier that represents the account or tenant that the user belongs to (for multi-tenant applications).
Knock uses a set of logically separated environments that map to your environments. This ensures that you can protect sensitive production data and easily build and test workflows before enabling them for your end users.