
How do I connect Salesforce, HubSpot, and Snowflake to Structify and confirm the data is syncing correctly?
Quick Answer: Connect Salesforce, HubSpot, and Snowflake to Structify from the Connectors screen, authenticate each system with OAuth or direct credentials, and select the objects/tables you want to sync. Once connected, confirm sync health by checking last sync timestamps, record counts, sample data previews, and cross-system joins (e.g., matching accounts and contacts across tools) inside Structify’s workspace.
Most RevOps and data teams don’t struggle to get access to Salesforce, HubSpot, or Snowflake—they struggle to make them agree. If “Acme Corp” looks different in every system, you can’t trust any pipeline, attribution, or ROI view. Structify exists to solve that: connect everything in minutes, let AI normalize and merge entities, and answer revenue questions without babysitting pipelines or writing SQL.
Key Benefits:
- True cross-system revenue views: Connect Salesforce, HubSpot, and Snowflake in one place so you can finally see the full story of what’s driving (or blocking) revenue.
- Fast, no-engineering setup: OAuth-based connections and direct app-to-app sync (no separate warehouse project) mean you’re live in an hour, not weeks.
- Trustworthy, self-serve answers: With clean, merged entities and monitored sync status, operators can ask plain-English questions in Structify (or Slack) without worrying that stale data will mislead leadership.
Core Concepts & Key Points
| Concept | Definition | Why it's important |
|---|---|---|
| Connectors | Native integrations that plug Structify into Salesforce, HubSpot, Snowflake, and 3,000+ other tools with no custom engineering. | They turn scattered tools into one connected data layer so you can ask questions across CRM, marketing, and product data in a single conversation. |
| Sync Configuration | The set of objects/tables, fields, and schedules you define for each connection (e.g., Salesforce Opportunities, HubSpot Deals, Snowflake product_events). | Good configuration keeps Structify lean and fast—only syncing what matters for pipeline, attribution, and ROI. |
| Sync Validation | The checks you run to confirm data is flowing correctly: timestamps, row counts, spot-checks, and cross-tool joins. | Validation is how you avoid “dashboard surprises” in QBRs and build trust that Structify is your true source of revenue answers. |
How It Works (Step-by-Step)
At a high level, you’ll:
- Connect Salesforce, HubSpot, and Snowflake to Structify.
- Configure which entities/tables to sync and how often.
- Validate that data is syncing correctly, then start asking questions and building dashboards.
Below is a more detailed, operator-friendly breakdown.
1. Connect Salesforce to Structify
You’ll start with Salesforce since it’s usually the backbone of GTM reporting.
-
Navigate to Connectors
- In Structify, go to Connectors (often labeled “Connect to Everything” or “Integrations” depending on your workspace).
- Search for Salesforce.
-
Authenticate your Salesforce account
- Click Connect Salesforce.
- You’ll be redirected to the Salesforce login screen.
- Log in with an account that has API access and read permissions on the objects you care about (Leads, Accounts, Contacts, Opportunities, Activities, etc.).
- Approve Structify’s requested scopes/permissions.
-
Choose which Salesforce objects to sync
- In the Salesforce connector configuration screen, select the core objects:
- Accounts
- Contacts
- Leads
- Opportunities
- Tasks/Activities (if you want sales activity analysis)
- Any custom objects critical to your funnel (e.g., Subscription, Quote, Implementation Project).
- Decide whether to:
- Sync all records, or
- Use filters (e.g., only last 2 years, or Opportunities with
Close Date >= last 12 months).
- In the Salesforce connector configuration screen, select the core objects:
-
Set sync frequency
- For active GTM teams, choose:
- Frequent sync (e.g., every 15–60 minutes) for Opportunities, Accounts, Contacts.
- Daily for less critical history tables or rarely changed objects.
- Save the configuration and trigger the initial sync.
- For active GTM teams, choose:
2. Connect HubSpot to Structify
Next, bring in marketing and lifecycle context from HubSpot.
-
Open the HubSpot connector
- In Connectors, search for HubSpot.
- Click Connect HubSpot.
-
Authenticate with HubSpot
- Choose the correct HubSpot portal if you manage multiple.
- Log in and approve Structify’s access (read access to CRM objects, lists, engagement data, and marketing events is typically recommended).
-
Select HubSpot objects and data
- Common objects to sync:
- Contacts (with lifecycle stage, lead source, key form fields)
- Companies
- Deals
- Engagements (emails, calls, meetings)
- Marketing Emails / Campaigns / Workflows (for attribution)
- Optional:
- Custom properties you rely on for scoring, segmentation, or attribution.
- Again, choose whether to sync all records or apply date/segment filters to keep things lean.
- Common objects to sync:
-
Set HubSpot sync cadence
- For deal and lifecycle analytics:
- Frequent sync (e.g., every 30–60 minutes) for Contacts, Companies, Deals.
- Daily or hourly for Campaigns and marketing events, depending on how quickly you optimize spend.
- For deal and lifecycle analytics:
3. Connect Snowflake to Structify
Snowflake often holds product usage, billing, or custom modeling outputs. Connecting it brings the “what users actually do” layer into your revenue views.
-
Open the Snowflake connector
- In Connectors, search for Snowflake.
- Click Connect Snowflake.
-
Provide Snowflake connection details Typical fields you’ll need (coordinate with your data team if needed):
- Account (e.g.,
xy12345.us-east-1) - Warehouse (e.g.,
ANALYTICS_WH) - Database (e.g.,
PROD_ANALYTICS) - Schema (e.g.,
PUBLICorREVENUE) - User and Password or key-based auth.
- Optional: Role to control privileges.
- Account (e.g.,
-
Choose tables and views to sync
- Start with what directly ties to revenue:
- Accounts/Organizations or Workspaces table (with an external ID you can match to Salesforce/HubSpot).
- Users table.
- Product events (logins, feature usage, sessions, etc.).
- Billing/subscriptions tables if they live in Snowflake.
- Any modeled views your data team already maintains (e.g.,
fct_opportunity,dim_account,fct_product_usage).
- Avoid syncing every raw event table; pull the curated tables that answer “who’s active, what they’re using, and what they’re paying.”
- Start with what directly ties to revenue:
-
Configure sync frequency
- For most Snowflake setups:
- Hourly or every few hours is usually enough, unless you need near-real-time dashboards.
- Keep in mind warehouse cost and usage patterns; sync more frequently for smaller, curated tables, less frequently for massive history tables.
- For most Snowflake setups:
How to Confirm Data Is Syncing Correctly
Connecting is easy; trusting the data is the real job. Here’s a practical framework to validate Salesforce, HubSpot, and Snowflake syncs inside Structify so you’re not guessing.
1. Check connector health and last sync status
In Structify:
- Go to Connectors.
- For each of Salesforce, HubSpot, and Snowflake, confirm:
- Status is “Connected” / “Healthy” (not “Error” or “Needs Attention”).
- Last Sync Time is recent (aligned with the schedule you chose).
- Next Scheduled Sync is visible and reasonable.
If a connector shows errors, click into it to view error details (e.g., invalid credentials, revoked permissions, removed fields) and resolve directly in Salesforce/HubSpot/Snowflake as needed, then re-run the sync.
2. Compare record counts to source systems
You don’t need a perfect 1:1 match, but you want directional alignment.
-
Salesforce
- In Salesforce, run quick list views or reports:
- Total Accounts
- Total Contacts
- Total Opportunities (for a defined period, e.g., last 12 months)
- In Structify, open the corresponding tables/datasets and confirm:
- Counts are within a small tolerance (differences often come from filters you set, deleted records, or permissions).
- Spot-check a few records by ID (e.g., Salesforce
AccountId) to verify fields like name, owner, stage, amount, and dates match.
- In Salesforce, run quick list views or reports:
-
HubSpot
- In HubSpot, check:
- Total Contacts and Companies.
- Deal count for a specific pipeline or timeframe.
- In Structify:
- Confirm similar counts in Contacts/Companies/Deals.
- Spot-check by record ID or email: key fields like lifecycle stage, lead source, and deal stage should match.
- In HubSpot, check:
-
Snowflake
- In Snowflake, run a
COUNT(*)on the synced tables/views. - In Structify, check:
- Row counts are in line with those counts.
- Sample a few rows (by ID or email) to confirm key fields (e.g.,
account_id,event_type,timestamp,mrr) are consistent.
- In Snowflake, run a
3. Validate key joins and entity matching
This is where Structify shines: unifying “Acme Corp” across systems. Use this step to confirm cross-system coherence, not just raw counts.
-
Account / Company matching
- In Structify, open a combined view (or ask a plain-English question) like:
“Show me accounts where we have Salesforce Opportunities, HubSpot Company records, and Snowflake product usage.”
- Pick a few strategic customers (e.g., a flagship logo, a recent closed-won, a churned customer) and check:
- Names align (Structify’s AI should be normalizing variations like “Acme Corp” vs. “ACME Corporation”).
- Domain / website matches across Salesforce and HubSpot.
- Account IDs or custom external IDs are preserved correctly.
- Product usage and/or billing from Snowflake align with what you know from the account team.
- In Structify, open a combined view (or ask a plain-English question) like:
-
Contact / user alignment
- Ask Structify:
“Join Salesforce Contacts with HubSpot Contacts and Snowflake Users by email and show me where there are mismatches.”
- Validate:
- The same email appears across tools.
- Lifecycle/owner/stage are sensible given recent activity.
- Gaps (e.g., Snowflake user without a Salesforce contact) are expected and documented.
- Ask Structify:
-
Opportunity / Deal alignment
- Compare pipeline between Salesforce and HubSpot:
“Show me a table of Salesforce Opportunities with any matching HubSpot Deals by company, with stages and amounts side by side.”
- Confirm:
- For integrated setups, key deals appear in both systems with aligned stages and close dates.
- Any structural differences are by design (e.g., you only use HubSpot Deals for certain motion types).
- Compare pipeline between Salesforce and HubSpot:
4. Validate change freshness (are updates flowing?)
After initial validation, confirm that changes actually propagate:
-
Make a test change in Salesforce
- Update a known test Opportunity (e.g., change Stage from
PipelinetoClosed Won, or adjust Amount). - Wait for the next Structify sync cycle (or trigger a manual sync if available).
- In Structify, query:
“Show me the latest version of Opportunity [ID] from Salesforce.”
- Verify the new stage/amount is present.
- Update a known test Opportunity (e.g., change Stage from
-
Make a test change in HubSpot
- Change a Contact’s lifecycle stage or primary owner.
- After the next sync, confirm Structify reflects the update.
-
Make a test change in Snowflake
- Insert a test event or update a test account’s
mrrorstatus. - Confirm Structify picks up the change after sync and that downstream charts or tables update.
- Insert a test event or update a test account’s
If changes aren’t flowing, re-check:
- Sync schedule (is it too infrequent?).
- Filters (are you excluding newly created/updated records?).
- Permissions (did something change in Salesforce/HubSpot/Snowflake roles?).
Common Mistakes to Avoid
-
Connecting everything, syncing nothing that matters:
Don’t blindly sync every object and table “just in case.” Start with the entities that drive pipeline, revenue, and usage—then expand once you’ve validated the core. -
Skipping cross-system validation:
It’s not enough that connectors say “Connected.” If you don’t verify joins (Accounts/Contacts/Deals across tools), you’ll surface mismatched numbers in QBRs and lose trust in Structify. Always pick a handful of key accounts and walk them across systems inside Structify before declaring victory.
Real-World Example
Picture a RevOps lead who’s trying to answer what sounds like a simple question: “Why did enterprise pipeline dip last quarter?” Their reality:
- Salesforce has Opportunities with inconsistent account naming.
- HubSpot has campaign and lead source data—but only for some contacts.
- Snowflake holds product usage and expansion signals controlled by the data team.
Before Structify, answering that question meant exports, vlookups, and late-night Excel hacking every time leadership asked. With Structify:
- They connect Salesforce, HubSpot, and Snowflake using the steps above—no code, no custom ETL.
- Structify’s AI normalizes account names (so “Acme Corp” and “ACME Corporation” are one entity), merges contacts across systems, and exposes product usage from Snowflake alongside pipeline.
- They validate syncs by spot-checking key accounts, confirming record counts, and making test updates in each tool.
- Now they can ask, in Structify or Slack:
“Show me enterprise accounts where pipeline dropped quarter-over-quarter, with marketing touchpoints from HubSpot and product usage from Snowflake.”
Instead of a one-off project, they get a reusable dashboard that keeps itself updated as fields and tools evolve.
Pro Tip: Always build a small “validation dashboard” right after you connect systems—include record counts by source, a few cross-system join checks, and a freshness indicator. Use it as your early-warning system so you spot sync issues before leadership does.
Summary
Connecting Salesforce, HubSpot, and Snowflake to Structify isn’t just a technical checkbox; it’s how you turn scattered GTM and product data into answers about pipeline, ROI, and account health in one place. Use the Connectors screen to authenticate each system, deliberately choose the objects/tables that matter, and then validate syncs by checking health, row counts, sample records, cross-system joins, and update freshness. Once you trust that data is flowing and matching correctly, you can treat Structify as the place to ask revenue questions in plain English—without pulling exports or waiting on the data team.