Naffes
العربيةStart free↗

Integration

HubSpot and Naffes CRM: running both side by side

Naffes CRM connects to HubSpot with a private-app token. It pushes deals on every stage change or on demand, and pulls contacts and deals up to 50 records per click. It is built for running both systems together, not for a full migration.

When this integration helps

Some companies run two CRMs for a while: an Arabic-speaking sales team or a regional branch works in Naffes, while head office stays on HubSpot. What head office needs is the deals, their amounts and expected close dates, without anyone typing them twice.

  • Automatic push. Every deal stage change in Naffes pushes that deal to HubSpot.
  • Push on demand. From the deal header menu: Integrations > Push to HubSpot.
  • Pull per click. The HubSpot settings page pulls up to 50 contacts or 50 deals each time you click.
  • No duplicates. Naffes stores the ID mapping between the two systems, so the next sync updates the same record.

Setup

  1. Create a private app in HubSpot

    HubSpot now lists private apps under Legacy apps in its development tools, and creating one requires super admin access. Grant read and write scopes for contacts and deals.

  2. Copy the token and portal ID

    The access token is on the app's Auth tab. Note your HubSpot portal ID as well.

  3. Enter them in Naffes

    As an admin, open Marketplace > HubSpot > Configure HubSpot, paste the token and portal ID, and click Save.

  4. Test the connection

    Click Test connection. Naffes calls HubSpot's contacts API and shows the result and latency.

  5. Try one deal first

    Open a test deal, choose Push to HubSpot and read the result message before relying on automatic pushes.

Which fields move

OperationDirectionFields
Push a dealNaffes to HubSpotDeal name, amount, expected close date, matched stage ID, matched pipeline ID
Pull contactsHubSpot to NaffesEmail, first name, last name, job title; contacts without email are skipped
Pull dealsHubSpot to NaffesName, amount, close date; new deals land in a default stage

On a pull, records are matched by the stored HubSpot ID first, and contacts also by email. After each click the page shows how many records were created and how many were updated.

Important

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.

Limits

  • Not a migration tool. Each click reads only the first page of HubSpot results, and clicking again reads that same page, so it cannot move a full database.
  • Not transferred: companies, activities, notes, owners and HubSpot stages.
  • Deals only on push. There is no contact push from Naffes to HubSpot in the UI.
  • Pasted token, not OAuth. A workspace admin stores a private-app token, which is never sent back to the browser after saving.

To move everything at once, export from HubSpot and use the Naffes import wizard, which maps columns by keyword and lets AI fill the rest. For system-to-system work, see the REST API.

Questions

Questions 4

Can I migrate from HubSpot with this?

Not a full database. Pulls are limited to the first page of 50 records and skip companies and activities. Export from HubSpot and use the Naffes import wizard instead.

Will pulling twice create duplicates?

No. The ID mapping, plus email matching for contacts, means existing records are updated.

Why did a deal push fail?

Check that pipeline and stage labels match uniquely between the systems, then review token permissions. The manual push reports the cause; Naffes resolves internal IDs before submitting a deal.

Where do pulled deals appear?

In the Naffes deals list, in a default stage, because HubSpot stages are not mapped. Move them to the right stage afterwards.

Sources

  1. HubSpot Developers: Private appsAccessed
  2. HubSpot Developers: Deals APIAccessed

See plans and pricing