Steve Docs

JA

How-To Guides

How Deals and Companies Sync

When the HubSpot sync runs, what it imports, how incremental sync works, and how to trigger it manually

Steve Documentation Team
hubspotsyncdealscompaniesimportincremental-syncpmm

Overview

Steve keeps its copy of your HubSpot deals and companies up to date in the background. This page explains when that happens, what each run does, and how to force one.

Who it's for: 📣 PMM / admin, and 🎯 any rep wondering why a deal hasn't shown up yet.

When the sync runs

TriggerWhat it syncs
You connect HubSpotDeals and companies — the first, full import
You save field mappingDeals and companies, with your new property selection
Daily, automaticallyDeals and companies, at 00:00 UTC
You click Sync HubSpot Data in the deals tableDeals only

The daily run covers every organization with a live HubSpot connection. You don't need to schedule anything.

What a run does

  1. Refreshes the access token. HubSpot access tokens live for 30 minutes, so every run exchanges the stored refresh token for a fresh one.
  2. Works out the window. Steve looks up the most recent hs_lastmodifieddate it has already imported for your organization.
    • No previous sync → a full sync, walking every deal in the portal.
    • Previous sync found → an incremental sync, fetching only deals modified since that timestamp.
  3. Builds the property list. The core deal properties, plus your six mapped properties, plus everything you selected on the Field Mapping page — de-duplicated.
  4. Pages through HubSpot 100 deals at a time, transforming each into Steve's format.
  5. Upserts. New deals are inserted; deals Steve already has are updated in place. A deal is matched on its HubSpot deal ID, so re-running a sync never creates duplicates.
  6. Queues analysis for new deals only. Every newly inserted deal is sent for AI analysis, which produces a deal suggestion. Re-synced deals are not re-analyzed.
  7. Checks win/loss triggers. After the deal sync, Steve looks for deals that just moved to closed-won or closed-lost and schedules any configured win/loss surveys.

Companies follow the same shape, using each company's last-synced timestamp as the incremental cursor.

What comes across on a deal

Steve fieldHubSpot property
Deal namedealname
Stagedealstage
Typedealtype
Descriptiondescription
Amountamount
Currencydeal_currency_code
Close dateclosedate
Pipelinepipeline
Created / updatedcreatedate or hs_createdate, hs_lastmodifieddate or modifieddate
Steve Channels, Steve Usage, Loss Reason, Win ReasonWhatever you mapped
CompetitorsYour mapped competitor property, parsed from a JSON array, an array of objects with a name, or a plain string
ProjectYour mapped Steve Project property, validated against your real projects
Connected callssteve_connected_calls
Everything else you selectedStored on the deal and available as a table column

The complete raw HubSpot payload is kept alongside the parsed fields, which is what powers the Expand deal details dialog and the extra columns.

What comes across on a company

Name, domain, industry, description, phone, city, state, country, zip, website, number of employees, annual revenue, lifecycle stage, and HubSpot owner ID — plus created and updated timestamps and the raw payload.

Project auto-assignment

  • One project in your organization → every imported deal is assigned to it automatically.
  • Two or more projects → the deal is assigned from your mapped Steve Project property if that property holds a valid project ID. If the value doesn't match a project in your organization, Steve logs a warning and leaves the deal unassigned rather than failing the import.
  • Neither applies → the deal arrives unassigned, and you assign it in the deals table or via Deal Suggestions.

Syncing on demand

In the Deals table header there are two icon buttons:

ButtonWhat it does
Sync HubSpot Data (cloud-download icon)Triggers a real HubSpot sync in the background — deals only. Toast: "HubSpot deal sync started. Data will update shortly."
Refetch (circular-arrow icon)Re-reads Steve's own database. Fast, but it does not talk to HubSpot.

Use Sync HubSpot Data when something changed in HubSpot. Use Refetch when you've just made an edit in Steve and want the table to catch up.

The sync is asynchronous — the toast confirms it started, not that it finished. Give a large portal a few minutes, then hit Refetch.

Why a deal might be missing

SymptomLikely cause
A brand-new deal isn't thereThe next scheduled run hasn't happened. Click Sync HubSpot Data.
An old deal never appearedIt hasn't been modified since your first sync, and that sync didn't reach it. Touch the deal in HubSpot to bump hs_lastmodifieddate, then sync.
A property is blank in Steve but filled in HubSpotIt isn't in your selected properties. Add it in Field Mapping and save.
Nothing at all importedThe connection may have been made against the wrong HubSpot portal. Check Troubleshooting.

Next Steps