HubSpot API Integration: Contacts and Deal Sync
How a website, app or store syncs contacts and deals with HubSpot: upsert by email, deal associations, rate limits by tier, signed webhooks, and when HubSpot forms are enough.
- Organisation
- WavX Solutions
- Telephone
- +919310079927
Description
Integration HubSpot integration: contacts, deals and two-way sync with your systems
A HubSpot integration keeps contacts and deals in HubSpot matched with what happens in your own systems: an enquiry or sign-up upserts a contact by email and opens a deal, and a deal moving stage in HubSpot updates your app, store or messaging. It runs on HubSpot's CRM API with a private app token or OAuth, inside per-10-second and daily limits. Facts here are from HubSpot's documentation as read on 2 October 2026.
Discuss an integration Last updated 2 October 2026
What the integration connects
HubSpot is the CRM most overseas buyers already run, and Indian companies selling abroad often inherit it. The integration joins it to the systems HubSpot does not see on its own:
Into HubSpot: sign-ups and enquiries from your app, checkout and orders from a store or billing system, conversations from WhatsApp , product usage that should raise a deal's priority.
Out of HubSpot: a deal marked closed-won creates an account or order in your system; a lifecycle change sends a message; a sales owner's assignment appears in your support tool.
Tracking which ad or campaign produced each contact is a separate job, done with Google Analytics 4 and the ad platforms' conversion APIs, then passed into HubSpot as contact properties.
Data flow: a sign-up becomes a contact and a deal
App sign-up / enquiry / order
Your server ── normalise email and phone, add source properties
├─▶ POST /crm/v3/objects/contacts/batch/upsert (idProperty: email)
│ ◀── contact id
├─▶ POST /crm/v3/objects/deals (dealname, dealstage id, pipeline id,
│ associations → contact id)
│ ◀── deal id
Store both HubSpot ids beside your own record
HubSpot ── webhook: deal stage changed (signed, X-HubSpot-Signature-V3)
Your server ── verify signature and timestamp ── fetch deal ── update your system
Field mapping
Your field
HubSpot object and property
Notes
Contact email
Primary unique identifier; used as idProperty for upsert
First and last name
Contact firstname , lastname
At least one of email, first name or last name is required
Mobile
Contact phone or mobilephone
Not unique in HubSpot; normalise to +91 format if you match on it
Company name
Company name , associated to the contact
Or a contact property if you do not use companies
Signup source, UTM values
Custom contact properties
Create them in HubSpot first
Plan or order value
Deal amount
Number, without currency symbols
Enquiry or order reference
Deal dealname , plus a custom property holding your ID
Your ID makes later lookups and de-duplication possible
Stage
Deal dealstage
Must be the stage's internal ID, not its label
Pipeline
Deal pipeline
Internal ID; required when the account has more than one pipeline
Limits HubSpot documents
Rule
As read on 2 October 2026
Private (privately distributed) apps, Free and Starter
100 requests per 10 seconds per app; 2,50,000 per day per account
Professional
190 per 10 seconds per app; 6,25,000 per day per account
Enterprise
190 per 10 seconds per app; 10,00,000 per day per account
With the API limit increase
250 per 10 seconds per app; 10,00,000 per day on top of the base subscription
Public OAuth apps
110 requests per 10 seconds for each installing account
Daily limit
Shared across all apps in the HubSpot account
Batch create, update, upsert
100 records per request
CRM search
5 requests per second per account; 200 results per page; 10,000 results per query; query body up to 3,000 characters
Webhook verification
HMAC SHA-256 over method, URI, body and timestamp; reject anything older than 5 minutes
Gotchas
Search lags behind writes. HubSpot says newly created or updated records may take a few moments to appear in search. An integration that searches for a contact right after creating it will not find it and creates a duplicate. Use upsert by email instead of search-then-create.
Stage labels are not stage IDs. Sending "Qualified" as dealstage fails. The pipeline's internal IDs are read once and mapped.
The 10,000 search cap. Any nightly job that pages through a large search will stop at 10,000 results. Bulk reconciliation must page by date windows.
Shared daily quota. Your marketing tools and this integration draw from the same account-wide daily limit.
Legacy private apps. HubSpot still supports them but recommends its newer developer platform for new apps; on a legacy private app, webhook subscriptions are edited in the app settings, not through the API.
Webhooks need verifying. A receiver that does not check the v3 signature and timestamp will accept forged or replayed events.
What WavX builds
WavX builds the server-side sync between HubSpot and your app, store or back-office system: contact upsert with clean phone and email, deal creation with associations and correct stage IDs, a verified webhook receiver for changes coming back, batching and back-off for the rate limits, a nightly reconciliation by date window, and a log of every exchange. HubSpot connected to WhatsApp conversations is covered on WhatsApp to CRM .
Effort band
HubSpot integration work is quoted after scoping. For planning, the software cost estimator carries third-party integrations as a ₹60,000 line item inside a larger build; the worked range for a standalone integration service is on API and system integration services . HubSpot's own subscription and any API limit increase are paid to HubSpot.
When not to build one
If leads only come from website forms, embed HubSpot's forms and let HubSpot create the contacts. If HubSpot's marketplace already has a maintained app for the tool you want to connect, try it before commissioning custom code. If your team is on HubSpot's free tier and evaluating whether a CRM is worth it at all, a custom integration is premature. When HubSpot itself is the wrong fit, read custom CRM development or compare with Zoho CRM .
Frequently asked questions
Can HubSpot forms do this without a developer?
For website enquiries, often yes. An embedded HubSpot form sends submissions straight to HubSpot, provided the site's domain is added to HubSpot's tracking settings; otherwise submissions are marked as spam. Custom work is for leads that come from an app, a checkout, WhatsApp or a back-office system, and for anything that has to flow back out of HubSpot.
How are duplicates avoided?
HubSpot treats email as the primary unique identifier for contacts, and the batch upsert endpoint can match on email. Phone numbers are not unique in HubSpot, so a contact without an email needs its own matching rule in the integration, usually a normalised phone number stored in a property you search on.
What happens when we hit HubSpot's rate limit?
HubSpot answers with a 429 error for calls over the limit. A sound integration batches writes (up to 100 records per call), spaces its requests, and retries 429s after a pause. The daily limit is shared by every app in the HubSpot account, so a careless integration can stop your other tools too.
Should we use HubSpot or build a custom CRM?
If your sales process fits HubSpot's contacts, companies, deals and pipelines, use HubSpot and integrate it. A custom CRM is worth considering when your process does not fit those objects or when per-seat pricing grows faster than the team's value from it.
Sources
HubSpot developer docs: API usage guidelines and limits · read 2 October 2026
HubSpot developer docs: CRM search API · read 2 October 2026
HubSpot developer docs: Contacts API guide · read 2 October 2026
HubSpot developer docs: Deals API guide · read 2 October 2026
HubSpot developer docs: Validating requests · read 2 October 2026
HubSpot developer docs: Legacy private apps · read 2 October 2026
HubSpot Knowledge Base: Embed HubSpot forms on an external site · read 2 October 2026
Related
WhatsApp to CRM integration
Zoho CRM integration
Google Analytics 4 integration
Custom CRM development
API and system integration services
Build your own software — your way, your pricing.
WavX Solutions is here to create your own software in a fully custom way, built exactly how you work — with a pricing model that fits your business. Connect now and let's build it.
Contact Now helpwavx@gmail.com