ClarifyClarify APIBeta
Guides

Sync from a warehouse

Keep Clarify in sync with your data warehouse using Segment

Use Segment's Reverse ETL to sync data from BigQuery, Snowflake, or Redshift into Clarify on an ongoing basis. This is the recommended approach for teams that use a warehouse as their source of truth.

How it works

  1. Your warehouse contains the canonical customer data
  2. Segment queries your warehouse on a schedule (hourly, daily)
  3. Changed records are pushed to Clarify via the API
  4. Clarify matches on email/domain to update existing records or create new ones

Setup

1. Connect your warehouse to Segment

In Segment, add your warehouse as a Source (Reverse ETL):

  • BigQuery, Snowflake, Redshift, or Databricks
  • Configure a service account with read access to your tables

2. Add Clarify as a destination

In Segment, add Clarify as a Reverse ETL destination:

  • Enter your workspace slug and API key
  • Map your warehouse columns to Clarify fields

3. Define your sync model

Write a SQL query that selects the records you want to sync:

SELECT
  email,
  first_name,
  last_name,
  company_name,
  title,
  lifecycle_stage
FROM analytics.contacts
WHERE updated_at > CURRENT_TIMESTAMP - INTERVAL '24 hours'

4. Map fields

Warehouse columnClarify fieldNotes
emailemail_addressesPrimary match key
first_namefirst_name
last_namelast_name
company_domaindomains (on company)Used for company matching
lifecycle_stageCustom fieldCreate the field first

5. Set a schedule

  • Hourly for fast-moving data (active pipeline)
  • Daily for reference data (company metadata, enrichment)

Matching behavior

Clarify matches incoming records by:

  • People: email address
  • Companies: domain

If a match is found, the record is updated. If not, a new record is created.

Tips

  • Start with a daily sync and move to hourly once you've validated the mapping
  • Use Segment's Debugger to inspect payloads before they hit Clarify
  • Create custom fields in Clarify before mapping warehouse columns to them