Egress from Simon Data


Simon’s composable application operates on a database within your Snowflake instance. Our application creates various schemas within this database to organize the objects it produces. The schemas that are created and the data within them will vary depending on the parts of the application you use.


When you sync a flow, we automatically save a view in your Snowflake instance that combines segment membership with personalization fields (aka Content). There is one view per flow, and it follows this naming convention: SD_FLOW_<FLOW_ID>_<FLOW_NAME>


The data routing product is used to route event data from Simon into your Snowflake instance. There is one “pipe” per data source (i.e. Simon Signal and Data Feeds).

During general Simon onboarding, we create one file format: NLJSON (new line delimited JSON).

When onboarding each data source, we create the following:

  • One table per source: _DATA_ROUTING_<INTEGRATION>_EVENTS

For each event type in the data that gets routed to Snowflake, we create one view that’s filtered to the specific event type: _DATA_ROUTING_VIEW_<INTEGRATION>_<EVENT_TYPE>_EVENTS


Your Identity Model is the foundation of your Simon instance. You may have one live identity model and one draft identity model at a time, but you will be able to see historical versions both in the Simon platform and in your Snowflake under the SD_IDENTITY schema.

For each draft identity model, we create one view: SD_IDENTITY_MODEL_<DRAFT_ID>_<DRAFT_NAME>

For each promoted identity model, we create one view: SD_IDENTITY_MODEL_<MODEL_ID>_<MODEL_VERSION>_<MODEL_NAME>


Some things to keep in mind:

  • The version that’s live in your account will be named default.
  • If the name of your identity table exceeds 255 characters, it will be truncated.

In order to add SIMON_ID to each of your contacts, we create a view on top of your live identity model called CONTACT_TABLE_IDENTIFIED. This view is what is connected to the Simon platform in the Schema Builder.

SD_IDENTITY_NATIVE_KEYS_VIEW is the object representation of your live identity model, which is used to power your flows.


When you save a segment, we automatically create one view per segment in your Snowflake instance with the logic defined by that segment. Find this view at SD_SEGMENT_<SEGMENT_ID>_<SEGMENT_NAME>

  • Because the segment is stored as a view, it recalculates whenever you query it. There's no need to refresh the data manually when you query the view because it will contain the most current data.
  • The view has one column that contains all of the SIMON_IDs for the contacts that fall into that segment.