HubSpot + ServiceNow integration

ServiceNow keeps the case, the account and the service contract. How its Table API feeds HubSpot companies and tickets, and what a keyed sync takes.

Connects by API , iPaaS

Scope this integration Book a scoping call Estimate the cost

Is there an official ServiceNow + HubSpot integration?

No. ServiceNow has no app in the HubSpot App Marketplace as of September 2026, and ServiceNow's Integration Hub lists no HubSpot spoke. The route that works is a custom API integration that reads the Table API on a sys_updated_on watermark and keys accounts, contacts, cases and contracts on their sys_id, at 70 to 150 build hours. A push the moment a case changes needs a business rule inside ServiceNow, owned by your platform team.

Recommended route
Custom API integration
Build effort
70 to 150 hours
In the HubSpot App Marketplace?
No listed app
Typical elapsed time
4 to 8 weeks

Marketplace checked September 2026.

Why teams connect ServiceNow to HubSpot

ServiceNow usually arrives through IT and then spreads. A company that runs its internal service desk on it often adds Customer Service Management, and from then on every customer case, entitlement and service contract lives on the same platform as the laptop requests. The sales and marketing teams work in HubSpot and see none of it.

The gap shows up at renewal and at escalation. An account manager books a renewal call without knowing the customer has three priority cases open. Marketing asks a customer for a case study the week an outage is escalated. Service leaders cannot see which accounts the pipeline depends on, so the customer behind the largest deal in flight waits in the same queue as everyone else.

ServiceNow is usually the most tightly governed system in the building. A platform team controls the instance, changes move on a release calendar, and nothing is installed casually. That shapes this integration more than the API does. The design reads what it needs from outside, asks for as little as possible inside the instance, and turns the one write back into ServiceNow into something the platform team can review before it lands. It also means the first scoping call includes the platform owner, not only the sales team.

What syncs

Four tables carry the value. The Account table, customer_account, becomes the HubSpot company; ServiceNow describes it as the store for customer account and partner records, and it extends the core Company table. Contacts come from customer_contact, which extends the User table. Cases from sn_customerservice_case become HubSpot tickets in a pipeline of their own, and service contracts from ast_contract land on a custom object that a renewal pipeline can read. Teams that support customers through IT service management rather than Customer Service Management swap cases for the incident table, and the design stays the same.

Every row keys on the sys_id, the unique 32 character identifier ServiceNow gives each record, held in a custom HubSpot property. Case numbers are what people quote on the phone, so they travel as a readable property, but the key stays the sys_id. Contacts match on email first, with the sys_id breaking ties when two records share an address.

Direction follows ownership. ServiceNow owns the case and the contract, so both move one way. HubSpot owns the pursuit, so the only write back is a closed won deal creating the account, and it waits in a review queue until someone on the service side approves it.

Objects that sync between ServiceNow and HubSpot
Source object HubSpot object Direction Match key Notes
Account [customer_account] Company Two way ServiceNow sys_id held in a custom HubSpot property A closed won deal can create the account, and ServiceNow owns it from then on.
Contact [customer_contact] Contact Into HubSpot Email, with the contact's sys_id as the tie breaker
Case [sn_customerservice_case] Ticket Into HubSpot Case sys_id, with the case number carried as a readable property Cases land in a ticket pipeline of their own, read only in HubSpot.
Contract [ast_contract] Custom object Into HubSpot Contract sys_id, associated to the account Contract end dates are what a renewal pipeline in HubSpot is built from.

Architecture

This is a polling watermark sync, because ServiceNow documents no event subscription that an outside service can register. The service holds an OAuth client registered in the instance, using the client credentials grant ServiceNow documents for back-end integrations, and runs as a dedicated integration user.

On each run it asks the Table API for rows whose sys_updated_on falls after the stored watermark, ordered by that field, with sysparm_fields trimmed to the mapped columns. It follows the Link header from page to page, upserts into HubSpot as batches keyed on the sys_id, and then runs a separate association pass: contact to company, ticket to company and contact, contract to company. Each table’s watermark moves only after its batch commits, so a restart resumes rather than reloads.

A replay endpoint re-reads any table for a time window. A reconciliation endpoint compares the X-Total-Count header ServiceNow returns with the records in the portal and lists the difference. Where the platform team agrees, a business rule posts the sys_id of a changed case to our endpoint, which only tells the service to read sooner.

The service reads the source on a schedule using a changed-since watermark, upserts each record keyed on its source identifier, then runs a separate associations pass.

What the API allows

API style
REST
Authentication
OAuth 2.0
Webhooks
No
Changed-since filter
Yes
Sandbox
Yes
Rate limit
Hourly rate limit rules that each instance's admins set for users, roles or everyone, answered with a 429 and a Retry-After header

Developer documentation servicenow.com

Three ways to connect

With nothing packaged on either side, the choice here is where the logic lives and who operates it. ServiceNow teams often prefer integrations built inside the instance, and Integration Hub is ServiceNow’s tool for that. It lists no HubSpot spoke, though, and which spokes a customer gets depends on its Integration Hub subscription, so building there means ServiceNow developers writing and owning calls to HubSpot’s API.

A custom API integration keeps the logic outside the instance. It asks the platform team for an integration user, an OAuth client and read access to four tables, and nothing more. An iPaaS with connectors for both systems sits in between: quick to start and fine for copying new cases, but harder to make replay a missed window or hold a separate watermark for each table.

  • iPaaS

    Possible

    An iPaaS with connectors for both systems can copy new cases into HubSpot tickets and is a fair way to prove the value first. Every case update becomes a billable task, and replaying a missed hour is left to you.

  • Marketplace app

    Avoid

    There is no ServiceNow app in the HubSpot App Marketplace and no HubSpot spoke in ServiceNow's Integration Hub, so nothing packaged exists to install on either side.

What breaks and how we prevent it

Pages shortened by access controls

The Table API applies sysparm_limit before it evaluates access controls, so a page can come back with fewer rows than requested when the integration user cannot read some of them. A loop that stops at the first short page ends early and misses the rest, quietly. We page on the Link header rather than on row counts, and we compare X-Total-Count with what arrived.

Rate limit rules written for others

Admins set hourly rate limit rules for users, roles or everyone, and a rule written for a noisy script can land on our integration user. Counts commit every 30 seconds, so a new rule can arrive mid run. We run as a dedicated user, honour Retry-After on every 429, and agree the limit with the platform team before cutover.

Choice labels that change

The sysparm_display_value parameter decides whether a field comes back as its stored value or its label. A mapping built on labels breaks the day an admin renames a case state. We read stored values, keep the choice map in the service, and request labels only where sellers need readable text.

A clone pointing test at production

Instance clone copies data and metadata from production into the target, and the default data preservers keep only a short list of target records, such as instance-specific authentication settings. A business rule that posts to our production endpoint arrives in test with the clone. Our endpoint accepts calls only from an allowlist of instance names, so a cloned rule fails closed.

Our approach

  1. Scope. We confirm whether customers live in Customer Service Management or IT service management, which tables matter, and who approves users, roles and rules on the platform team.
  2. Architect. We fix the sys_id keys, a watermark per table, the case state to ticket status map and the association order, and route the one write back through a review queue.
  3. Build. The service is written against a non-production instance cloned from production and a HubSpot sandbox, with instance and portal allowlists that fail closed.
  4. Validate. We backfill every table, compare counts with X-Total-Count, and walk the differences with the ServiceNow owner.
  5. Operate. Cutover is a credential swap. We watch 429s and run history, keep replay available, and re-test after each ServiceNow upgrade.

Common questions

Is there a ServiceNow app in the HubSpot App Marketplace?

No. A marketplace search for ServiceNow returns hundreds of results and none of them is named for it. ServiceNow's own Integration Hub lists spokes for Salesforce, Zendesk and Microsoft Dynamics 365, but none for HubSpot. So a ServiceNow connection is always built, either as a service against the Table API or as flows on an iPaaS, and the object model is yours to design.

Can ServiceNow send a webhook to HubSpot when a case changes?

Not as a subscription an outside service registers. The documented route is a business rule, a server-side script that runs when a record is inserted, updated or deleted, calling an outbound REST message through RESTMessageV2. That is a customization inside your instance, so your platform team owns it through its change process. We treat it as a fast path and keep the watermark read behind it.

What are ServiceNow's REST API rate limits?

ServiceNow documents a mechanism rather than a number. Admins create rate limit rules in the sys_rate_limit_rules table that cap inbound REST requests per hour for specific users, users with a role, or everyone. Each node keeps its own count and commits it every 30 seconds, so a new rule can take that long to bite. A denied request returns a 429 with a Retry-After header, which we honour.

How does a ServiceNow sync read only the records that changed?

Through the Table API's sysparm_query parameter, an encoded query on sys_updated_on, the timestamp of each record's most recent update. The service asks for rows after its stored watermark, ordered by that field, and follows the Link header from page to page. Each table keeps its own watermark, so a failed read of cases never holds back accounts or contracts.

Should ServiceNow cases become HubSpot tickets?

Yes, in a pipeline of their own and read only. HubSpot needs a status on every ticket, and a pipeline once there is more than one, both set by internal id, so we map each case state to a status in that pipeline during scoping. Sellers see open cases on the company before a renewal call, and agents keep working them in ServiceNow, the system of record for service.

Can a ServiceNow integration be built without touching production?

Yes, and it should be. Instance clone copies data and metadata from production to a non-production instance, which gives the build realistic records. The free Personal Developer Instance is not the place for it: ServiceNow says it is not intended for business or production purposes, and it is reclaimed after ten days of inactivity. We build against the client's own cloned instance.

How long does a ServiceNow and HubSpot integration take?

Plan on 10 to 20 hours of discovery and 70 to 150 hours of build for accounts, contacts, cases and contracts with watermarks, replay and reconciliation. The calendar usually runs longer than the hours. An integration user, its roles, an OAuth client and any rate limit rules all pass through the ServiceNow team's change process, so we raise those requests in the first week.

Partnerships and accreditations

  • HubSpot Elite Solutions Partner
  • HubSpot Custom Integration Accreditation
  • HubSpot CRM Data Migration Accreditation
  • HubSpot Solutions Architecture Design Accreditation

HubSpot accreditations

  • HubSpot Onboarding Accreditation
  • HubSpot Academy Accreditations

Industry specializations

  • HubSpot Healthcare Industry Specialist
  • HubSpot Financial Services Industry Specialist
  • HubSpot Manufacturing Industry Specialist
  • HubSpot Quote to Cash Capability

Partnerships

  • Anthropic Solutions Partner

Trust and compliance

We design integrations to support the security and privacy rules your business works under, and we build them on independently audited platforms.

How we build

  • Sandbox first. We build and test in a sandbox before anything reaches production.
  • Fail-closed allowlists. An integration runs only against the HubSpot accounts it is approved for.
  • Least-privilege access. Each integration gets only the API scopes it needs.
  • Secrets in a vault. Keys and tokens live in a secrets vault, never in plain text.
  • Sensitive data scoped early. Discovery covers sensitive data, access controls and any BAA or data-processing needs.
  • A compliance package for regulated industries: audit logging, field-level encryption and sensitive-data handling.

Scope a ServiceNow integration

Send the systems, the direction and the record volume. We reply with a scope and an effort band within one business day.

  • ServiceNow

Type any system and its version, such as Sage 300 or Sage 50. Press Enter or a comma after each one.

Add more detail (optional)

Optional. A sentence or two about the workflow is enough.

We use these answers to scope the work and for nothing else. Privacy policy.

Prefer to talk it through first? Book a technical scoping call

Talk to the people who build these

  • Nijat
  • Sean
  • Prash

Book a scoping call