Skip to content
Enterpret Help Center home
InboxAsk a human

Snowflake users & accounts: fields, linking, and validation

Updated by Vaishnavi

This reference explains the fields and matching behavior of Snowflake User and Account integrations. For table examples, connection steps, RSA authentication, and permissions, use Snowflake - Users & Accounts.

User/account data and feedback data

A User or Account integration creates or updates customer records and their metadata. It does not turn those rows into feedback records. Tickets, reviews, surveys, and other customer language belong in a feedback integration.

Required field definitions

Required columnDefinitionRecommended SQL type
ERC_IDThe stable source identifier of the user or account represented by this row. It is not a feedback-record ID.VARCHAR
ERC_CREATED_ATWhen that user or account was created in your source system.TIMESTAMP_NTZ
ERC_ROW_CREATED_ATA stored warehouse timestamp used to select rows for ingestion. Set it when a row is loaded and advance it when the exported row changes.TIMESTAMP_NTZ

Supply ERC_ID as a non-empty string and the two time fields as SQL timestamp values; TIMESTAMP_NTZ is the recommended example type. Do not supply numeric Unix seconds or milliseconds in place of timestamp columns. We recommend UTC values and a consistent time-zone convention in your warehouse pipeline.

These are the three required column names for User and Account integrations. Validation checks their presence; it does not enforce SQL types, non-null values, uniqueness, or every column whose name starts with ERC_. The setup examples use non-null fields and the correct types to avoid unusable rows.

Stable identifiers and updates

Keep a stable ERC_ID for each source user/account. Within the same Enterpret workspace and with the same source table, schema, and database, rereading a record with that stable identifier updates its existing identity. Changing the identifier or source table configuration can produce a different identity; coordinate such changes with the Enterpret team.

Maintain one current source row per identifier so duplicate source rows do not describe conflicting versions of the same user/account. Do not rely on the column-presence check to deduplicate your source.

How timestamps affect sync

ERC_CREATED_AT records the user/account's source creation time. It is not the timestamp used to decide which changed rows to read.

ERC_ROW_CREATED_AT is used to select rows within the sync's timestamp window. Store a load/change timestamp and advance it when exported attributes change. A default timestamp is applied on insertion only; your update pipeline must maintain it too. Sync windows can overlap, so a row may be read again.

Views can expose the source columns, including a stored load/change timestamp. A query-time CURRENT_TIMESTAMP() does not describe when a particular row changed and is unsuitable for that purpose.

Optional metadata and feedback linking

Include business attributes you want to analyze or use in source matching, such as plan, ARR, region, email, or account identifiers. Names such as ERC_EMAIL, ERC_ACCOUNT_ID, ERC_UPDATED_AT, and ERC_DELETED_AT do not automatically create links, advance the sync window, or delete records; they are not substitutes for the three required fields.

Feedback-to-user/account links use the matching fields configured for your organization and connected sources. For example, a configured mapping can match a participant email on a Gong record to an email field on a Snowflake user. ERC_ID identifies the source record; it is not necessarily the field selected for a cross-source match.

Confirm which fields and values the mapping uses on both sides. If an expected link is missing, check that the mapped metadata is present and that its values satisfy the configured matching rule. Include the needed matching fields in your export and ask Enterpret Support to confirm the configuration.

Validation checklist

  1. Check the three required names, their SQL types, and missing or blank values.

  2. Check duplicate identifiers and the stored change timestamps.

  3. Have an authorized Snowflake administrator check the configured role's read privileges with secondary roles disabled. Reading as an administrator with broader privileges does not establish that role's access, and a role-only check does not test the service user's RSA authentication.

  4. After sync, spot-check 5–10 known users/accounts and their attributes. If validation succeeds but expected rows do not appear, ask Enterpret Support to check the actual integration-user read.

  5. Inspect expected feedback links using the configured matching fields, rather than assuming an automatic ERC_ID join.

These read-only queries are examples for a Snowflake administrator to review and adapt.

-- Replace these example object names with your configured source. SELECT COLUMN_NAME, DATA_TYPE, IS_NULLABLE FROM ENTERPRET_SHARED_DATA.INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = 'PUBLIC' AND TABLE_NAME = 'USERS' ORDER BY ORDINAL_POSITION; SELECT COUNT(*) AS ROWS_WITH_MISSING_REQUIRED_VALUES FROM ENTERPRET_SHARED_DATA.PUBLIC.USERS WHERE ERC_ID IS NULL OR TRIM(ERC_ID) = '' OR ERC_CREATED_AT IS NULL OR ERC_ROW_CREATED_AT IS NULL; SELECT ERC_ID, COUNT(*) AS ROW_COUNT FROM ENTERPRET_SHARED_DATA.PUBLIC.USERS GROUP BY ERC_ID HAVING COUNT(*) > 1; SELECT ERC_ID, ERC_CREATED_AT, ERC_ROW_CREATED_AT FROM ENTERPRET_SHARED_DATA.PUBLIC.USERS ORDER BY ERC_ROW_CREATED_AT DESC, ERC_ID LIMIT 10; -- Repeat the checks for ACCOUNTS if that source is configured.

Getting help

Share the source table/view name, integration type, 2–3 example source identifiers, the fields used for matching, and an example feedback record whose link or metadata is missing. For connection and permission setup, use the setup guide.