Auto-enrich companies from Snowflake
Build a data warehouse enrichment workflow that monitors Snowflake for new company records, enriches each one with Lusha’s verified firmographic data, and writes the results back into Snowflake—so your analytics, BI dashboards, and data science models always work with complete, current company data.
Why this works
Most data teams face the same problem: company records flow into Snowflake from CRM, product, billing, and other sources, but firmographic fields (industry, size, revenue, location) are missing or outdated.
The typical workaround is painful: export companies to CSV, run enrichment externally, re-import, repeat. That process breaks quickly—it’s manual, slow, and falls behind as new companies arrive daily.
This play makes enrichment part of your data pipeline. New rows trigger enrichment automatically, results write back to Snowflake immediately, and downstream analytics always see complete data—without exports, manual intervention, or data engineering custom code.
What you get
- Automatic Snowflake monitoring that polls for new company records every 15 minutes (configurable)
- Row-by-row enrichment where each new company triggers Lusha enrichment individually
- Complete firmographics including industry, employee count, revenue, HQ, funding stage, and tech stack
- Direct Snowflake writes that update enriched fields in your warehouse tables
- Analytics-ready data so BI tools, models, and reports work with complete company profiles
How to set it up
Use the Pipedream template
Start from the “Enrich Companies with Lusha API on New Row from Snowflake API” template. It includes the Snowflake trigger and Lusha enrichment action.
Connect your Snowflake account
Authenticate Pipedream with Snowflake by providing:
- Account identifier
- Username
- Password or key-pair authentication
- Warehouse name
- Database and schema to monitor
Tip: Create a dedicated Snowflake user for Pipedream with read/write access only to the tables it needs.
Configure the polling trigger
Set up which Snowflake table to monitor:
Required configurations:
- Table to monitor: Select the table with company records (e.g., RAW.COMPANIES)
- Polling interval: Set to 900 seconds (15 minutes) or adjust based on your volume
- Emit mode: Individual events (each new row triggers separately)
Extract company identifier
Map the Snowflake column that contains the company identifier:
- If you have domain → use as primary identifier
- If you have company_name → use as fallback
- If both exist → prefer domain for cleaner matching
Connect Lusha Company API
Add your Lusha API key and configure enrichment:
- Map Snowflake domain or company_name to Lusha input
- Lusha returns: industry, employee count, revenue, location, funding, technologies
Write enriched data back to Snowflake
Configure the UPDATE statement to write Lusha results.
Add error handling
Configure what happens when enrichment fails.
Test with sample data
Insert a test company into Snowflake.
Wait for the next poll cycle (or trigger manually). Confirm:
- Pipedream detects the new row
- Lusha enriches the company
- Snowflake updates with enriched fields
- Status changes to ‘enriched’
What to do next
- Add backfill logic: Process historical companies by updating enrichment_status to ‘pending’ for older records
- Build monitoring dashboards: Track enrichment coverage rate, success/failure rates, and API usage in Snowflake
- Create enriched views: Build analytics views that join enriched company data with revenue, usage, or pipeline tables
- Add data quality checks: Validate enriched data against existing fields (e.g., company size matches billing data)
- Schedule re-enrichment: Update enrichment_status back to ‘pending’ for companies older than 90 days to refresh stale data
- Optimize polling: Adjust frequency based on enrichment queue size and API rate limits
The goal: Your data warehouse doesn’t wait for manual enrichment jobs. Company records get enriched automatically as they arrive, so analytics, reporting, and data science always work with complete, verified firmographics—without exports, roundtrips, or stale data.
No FAQ items available at this time.
Ready to build this?
Get started with Lusha and set up this play in minutes.