Schema Builder

The Schema Builder is how you connect your data to your Simon instance. You can connect pre-existing tables directly from your Snowflake account (see below), create new datasets via Simon's self-service SQL interface, and upload CSVs. There are also several different types of data you can connect to Simon: property tables, event tables, or lookup tables.

Customer Property Tables

  1. From the left navigation, click Schema Builder.
  2. Click Add New +.
  3. Choose the source type: Snowflake Table.
  1. Complete the fields described below:
FieldDescription
Table Type Events Table (1:many relationship), Property Table (1:1 relationship), or Lookup Table (non-contact data, e.g. product catalog)
Table LocationDatabase and schema within which the table is located
Table NameName of table within the table location
Choose Your Join Key (For Property & Events Tables Only)Join this table to your identity table by one of the identity columns specified
Choose Your Lookup Key (For Lookup Tables Only)Primary key of the lookup table
  1. Edit Field Mappings by checking the Content box next to fields that you want to be able to use downstream for personalization, and modify the default Content Aliases if desired.
    1. Content Aliases are how customer property fields appear downstream when configuring personalization. The default content alias follows this naming convention: tablename_fieldname. Note that no two fields connected to Simon can have the same content alias.

Best Practices

  • Properties have a 1:1 relationship with customers, like Lifetime Value or First Order Date. If this table contains more than one record per customer, it may lead to issues when creating segments and syncing data downstream.
  • We determine the set of operations you can perform on a field in the segment builder by the field type in Snowflake. This type displays here in the schema builder, but is managed in Snowflake.

Events Tables

Follow the same steps as above but choose Events Table as your table type:

Best Practices

  • Join this table to your identity table by one of the identity columns specified
  • This table can have multiple records for a given row in your identity table (e.g. customer123abc placed 2 orders, so you have one row for each of their orders)
  • It’s best practice for events to have a timestamp associated with each record, but not required. This allows marketers flexibility in the segment builder to look for contacts with events within a certain period of time (e.g. last 7 days) that meet specific criteria.

Lookup Tables

You can either connect lookup tables (aka non-contact data) directly from Snowflake or create lookup tables via Simon's self-service SQL editor. To connect a lookup table, follow the steps above but choose Lookup Table as your table type:

Best Practices

  • Because lookup tables don't contain PII, marketing channel identifiers, or any other data that's directly tied to your customers, you need to configure a Lookup Key rather than a Join Key.