Back to Advanced & Developer

How does the HubSpot integration work?

Sync Monta drivers, teams and EV data with your HubSpot portal in both directions — contacts, companies, deals and custom objects. Covers what syncs in which direction, what you need on the HubSpot side, and how to connect and disconnect.

Help Center / Integration guides / Advanced & Developer / How does the HubSpot integration work?

Sync Monta drivers, teams and EV data with your HubSpot portal in both directions — contacts, companies, deals and custom objects. Covers what syncs in which direction, what you need on the HubSpot side, and how to connect and disconnect.

Connect your HubSpot portal to Monta and move records in both directions: push your Monta drivers and teams into HubSpot as contacts and companies, import HubSpot records back into Monta, and enrich HubSpot with EV data — charge points, sites, charging sessions, subscriptions and charging KPIs.

HubSpot is an on-demand integration. Nothing syncs on a timer. You open the HubSpot dashboard inside Monta, select the records you want, and run the action. That keeps you in control of what leaves your portal and what enters it.

What syncs, and in which direction

Monta → HubSpot

What you push Becomes Matched on
Monta user HubSpot contact Email address
Monta team HubSpot company Monta team ID (custom property)
Charge point HubSpot custom object Monta charge point Charge point ID
Site HubSpot custom object Monta site Site ID
Charging session HubSpot custom object Monta charging session Charge ID
Subscription HubSpot deal Monta subscription ID
Charging KPIs Properties on the contact and company records —

Contact fields

Monta HubSpot property
Email email
First name firstname
Last name lastname
Phone number phone
User ID Monta user ID

Company fields

Monta HubSpot property
Name name
City city
Zip zip
VAT number Monta VAT number
Company registration number Monta company registry
Contact email Monta contact email
Finance email Monta finance email
Team ID Monta team ID

You can add your own field mappings on top of these defaults in the integration's settings — route any Monta field onto one of your own HubSpot properties without asking us for a change.

Charging KPIs are written onto the records you already work in.

On the company (your fleet or customer account): charge points, charge points online, offline and in error, sites, sessions in the last 30 days, kWh in the last 30 days, active drivers in the last 30 days, estimated CO₂ saved in the last 30 days, and last charging activity.

On the contact (the driver): first charge, last charge, total sessions, total kWh, total spend, and a lifecycle stage derived from charging behaviour:

  • Registered — signed up, no charge yet
  • Activated — has charged at least once
  • Active — charged in the last 30 days
  • Dormant — no charge for 60 days or more

The lifecycle stage is what most teams automate on: a dormant-driver workflow, an activation nudge, a renewal play on a fleet whose sessions are trending down.

HubSpot → Monta

What you import Updates Matched on
HubSpot contact Monta user Monta user ID, or email address
HubSpot company Monta team Monta team ID only

Import is update-first by design, so a stray HubSpot record cannot create noise in your Monta account:

  • A contact that carries a Monta user ID updates that user. Otherwise Monta looks for a user with the same email. If neither matches, a new Monta user is created only if you have set a default country in the integration settings — HubSpot contacts do not carry one and Monta requires it. Leave that setting empty and import will only ever update people you already have.
  • A company is updated only when it carries a Monta team ID, which a company gets the first time you push it from Monta. A HubSpot company that has never been pushed is skipped, because creating a Monta team needs an owner and a contact email that a HubSpot company record does not hold.

Every push and every import stamps the Monta ID back onto the HubSpot record, so running the same sync twice updates rather than duplicates.

What you need on the HubSpot side

  • A HubSpot account where you can create a private app and copy its access token. The token starts with pat-.
  • The private app needs read and write access to contacts and companies, plus access to deals and custom objects if you intend to sync sessions, charge points, sites or subscriptions.
  • Permission in HubSpot to create properties and custom objects. The first time you run a sync, Monta creates the Monta … properties and the three custom object types listed above if they are not there yet. Nothing already in your portal is renamed or removed.

You do not need to prepare anything else. There is no field setup to do by hand.

Connect

  1. In Monta, go to Applications and open HubSpot.
  2. Select Connect. Monta shows the access it needs — your teams and users (read and write, because import writes back), and read access to charge points, charging sessions and subscriptions. You can limit the connection to specific teams or sub-operators here.
  3. Confirm. The HubSpot dashboard now appears inside Monta.
  4. In that dashboard, paste your HubSpot private app token and save. Monta stores the token encrypted on the server side; it never reaches your browser again and is never shown in the settings form.
  5. Optionally open Configure to set the per-run record limit, the default country for imported users, and any extra field mappings.

Run a sync

Open the HubSpot dashboard in Monta, pick the flow, select the records, and run it. The available actions are:

  • Push contacts / Push companies — Monta users and teams into HubSpot
  • Import contacts / Import companies — HubSpot records back into Monta
  • Sync KPIs — charging KPIs onto contacts and companies
  • Sync charge points, Sync sites, Sync sessions, Sync deals — the EV objects

Each run reports how many records were created, updated and skipped, so you can check the outcome before running a larger selection. Start with a handful of records the first time.

Disconnect

Open Applications → HubSpot → Uninstall. Monta revokes the integration's access to your Monta data, deletes the stored HubSpot token, and stops all syncing.

Records already written stay where they are: contacts and companies remain in HubSpot, and imported users and teams remain in Monta. Uninstalling stops future syncs; it does not roll back past ones. Remove the private app in HubSpot as well if you want to withdraw the access from that side too.

Check that it is working

  • Each action reports its result immediately after the run — created, updated, skipped.
  • Open any synced HubSpot contact or company and look for the Monta … properties. If they are populated, the sync reached that record.
  • A run that reports every record as skipped usually means the match failed: contacts need an email, companies need a Monta team ID from an earlier push.
  • If HubSpot rejects the token — for example after it was rotated or deleted — reconnect by pasting the new token in the dashboard.