The connection to HubSpot sends every new contact from Swopi straight to your HubSpot. A lead from the business card form or a manually added contact is automatically created or updated as a contact (Contact) in HubSpot.
One-click connect. You sign in with your HubSpot account and allow access — no API keys, no pasting tokens. One-way push via the HubSpot CRM API v3; deduplication by email (an existing contact is updated instead of a duplicate).
#Overview
| Target CRM | HubSpot |
| Connection | Sign in with HubSpot (OAuth) — one click |
| What is created | Contact — created or updated |
| Trigger | Automatically on a new contact, or manual export of selected contacts |
| Deduplication | By email |
| Availability | Swopi Teams plan, configured by a team administrator |
#Prerequisites
- the Swopi Teams plan and the administrator role,
- a HubSpot account allowed to authorize an app connection.
#One-click connect (recommended)
Dashboard → Integrations → HubSpot:
- Click Connect HubSpot.
- Sign in with your HubSpot account and click Connect app (allow access).
- Done — you return to Swopi with a green Connected, and contacts start being created in HubSpot.
Then just check Automatic sync (enabled = every new contact goes to HubSpot immediately) and click Create test lead.
#Alternative — connect via a Private App token
If you'd rather not sign in, you can also connect HubSpot manually with a Private App token. On the Integrations → HubSpot page, expand Advanced: connect via Private App token.
-
In HubSpot, click ⚙ Settings in the top right.
-
In the left menu, open Integrations → Private Apps.
-
Click Create a private app and, on the Basic Info tab, name it:
Swopi -
Switch to the Scopes tab, type this in the search:
contactsand check these two scopes:
crm.objects.contacts.readcrm.objects.contacts.write -
Click Create app in the top right and confirm.
-
On the Auth tab, click Show token and copy the Access token (it starts with
pat-…, e.g.pat-eu1-…). -
Paste the token into the Private App token field in Swopi and click Save token and connect.
⚠️ The token is shown only once. After you close the window, HubSpot will not display it again in full — if you lose it, generate a new one (in the app → Auth → Rotate).
The token is stored only on the server.
#Field mapping
| Swopi field | HubSpot |
|---|---|
| Name | firstname / lastname |
email |
|
| Phone | phone |
| Company | company |
| Job title | jobtitle |
| Note | Note linked to the contact |
#How it works
- Swopi looks up the contact by email → if it exists → it updates it; otherwise it creates one.
- The note is saved as a Note linked to the contact; optionally "Source: Swopi".
- Manual export: Contacts → select → Sync to CRM → Send selected to HubSpot.
What syncs automatically (and what doesn't). Auto-sync is event-driven, not a timer — it runs as soon as a lead is created (within a few seconds); it does not run on an interval. Older contacts from before you enabled it are not transferred automatically → send them once manually via Sync to CRM → Send all; from then on, new ones go through on their own. Leads added manually in the dashboard are sent immediately. Leads from a web business card run through a server function, and automatic push runs for them only with an active connecting "hook" (configured by an administrator / IT on Cloud Functions). Without it, send them manually via Sync to CRM.
#Troubleshooting
| Symptom | Solution |
|---|---|
| "Connection refused" | Click Connect HubSpot and sign in again (or verify the Private App token). |
| Contact was not created | Verify that automatic sync is saved and enabled. |
#Disabling the integration
In Integrations → HubSpot, click Disconnect — the connection is removed and new contacts stop being sent; the data in HubSpot remains. Alternatively, just turn off Automatic sync. If you used a Private App token, you can also delete the app in HubSpot (⚙ Settings → Integrations → Private Apps).
Integration contact: support@swopi.co
#Field mapping
Choose which Swopi field goes into which field here in the Field mapping tab (Dashboard → Integrations → this integration). How it works + the defaults: Field mapping.