Integrations
Sync deals and contacts with HubSpot
The HubSpot connection in Naffes CRM is built for teams running both systems side by side for a while: it pushes deals from Naffes to HubSpot automatically on every stage change, and pulls contacts and deals from HubSpot in small batches. Below: the setup, what actually moves in each direction, and the connection's current limits.
Steps
Create a private app in HubSpot
In HubSpot, create a private app; HubSpot now lists these under Development → Legacy apps. Give it contacts and deals scopes (read to pull, write to push), copy the access token from the Auth tab, and note your Portal ID.
Open HubSpot's setup in Naffes
Under Tools → Marketplace, open the HubSpot card and click Configure HubSpot. The Marketplace is included from Starter up.
Save and test
As an admin, paste the token and Portal ID, click Save, then Test connection, which calls HubSpot's contacts API and reports the result and latency.
Pull data
In the Bulk import from HubSpot panel on the same page, click Pull 50 contacts or Pull 50 deals. Existing records are updated by matching HubSpot ID or email; new ones are created.
Push deals
Open a deal, then the deal header menu → Integrations → Push to HubSpot. Once connected, every deal is also pushed automatically whenever its stage changes.
Before pushing a deal, Naffes reads HubSpot pipelines and matches the pipeline and stage labels against the Naffes names, including saved translations. It sends the matched internal IDs and refuses to write the deal when a match is missing or ambiguous. Use matching, unique labels and test one deal first.
What moves in each direction
| Operation | Fields that move | What does not |
|---|---|---|
| Pull contacts | Email and first and last name; job title is updated only on contacts that already exist | Phone number; contacts without an email are skipped |
| Pull deals | Name, amount, close date | HubSpot stage and pipeline; a new deal lands in the first stage the system finds |
| Push a contact (API only) | Name, email, phone, job title | There is no button for it in the screens |
| Push deals | Name, amount and close date, plus the stage and pipeline sent by name (see the warning above) | Activities and notes |
ID mapping prevents duplicates: repeated pulls or pushes update the same record instead of creating a new copy.
When this connection is not enough
- It is not a full migration tool. Each click reads the first 50 records in HubSpot, and clicking again re-reads the same 50.
- Companies, activities, notes and owners are not synced.
- For a full move, export CSV files from HubSpot and bring them in through the Naffes import wizard, which maps columns by keyword and then with AI. See contact management.
To stream every contact, company and deal change to another system, see setting up outgoing webhooks.