CRM migration

Migrate from Zinc to HubSpot

Field-level mapping, validation, and rollback between Zinc and HubSpot. We move data and schema; workflows are rebuilt natively in HubSpot.

Zinc logo

Zinc

Source

HubSpot

Destination

HubSpot logo

Compatibility

91%

10 of 11

objects map 1:1 between Zinc and HubSpot.

Complexity

BStandard

Timeline

48–72 hours

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Teams migrate from Zinc Work to HubSpot when they want candidate reference data living alongside sales and marketing records in a single CRM platform. Zinc Work stores candidate profiles, reference-check request records, and reference-response logs as discrete objects. HubSpot's model uses contacts as the primary person record, deals for pipeline tracking, and custom objects for domain-specific data like background-check results. FlitStack AI extracts every candidate record from Zinc Work via the REST API — including all custom reference-check properties, verification timestamps, and reference-provider details. We map those into HubSpot contacts with a parallel custom object for reference-check records, linked via HubSpot's association model. Reference-response logs migrate as HubSpot engagement records (notes and calls) preserving the original reference name, relationship, and response content. What does not migrate: Zinc Work's automated request-trigger workflows, notification templates, and ATS/HRIS integrations must be rebuilt using HubSpot workflows and the HubSpot Connect integration framework. The migration runs on scoped read access — your recruiting team continues using Zinc Work throughout the cutover window.

Field-level fidelity

Every standard and custom field arrives verified.

Schema-aware mapping

AI proposes the map; you confirm before any record moves.

Relationships preserved

Parent–child, lookups, and ownership stay linked.

Full activity history

Calls, emails, meetings — with original timestamps.

Attachments & notes

Documents, uploads, and inline notes move with the record.

Why teams make this switch

Two sides of the same decision

Leaving

Zinc logo

Zinc

What's pushing teams away

  • Lack of live chat support forces users to rely on a chatbot or email, which some find inadequate for time-sensitive hiring queries.
  • Admin visibility into usage volumes — how many checks remain or have been used — is limited in the standard UI, frustrating finance and HR operations teams.
  • Custom check builder lacks an accessible backend view for some administrators, making it hard to audit or manage check usage at scale.

Choosing

HubSpot logo

HubSpot

What's pulling them in

  • Lowest barrier to entry of any major CRM — the free tier with unlimited contacts lets teams validate fit before committing to a paid plan, according to G2 and Capterra reviewers.
  • Native integration between the CRM and sales engagement tools (sequences, email tracking, dialer) means no separate sync configuration, a theme across G2 Sales Hub reviews.
  • Pipeline visualization, deal tracking, and automated workflows are consistently praised as intuitive and easy to set up without developer involvement.
  • Strong onboarding for new team members — reviewers on Capterra and G2 highlight how quickly new reps become productive without formal training.
  • The HubSpot platform ecosystem (Marketing, Sales, Service, CMS hubs) allows growing companies to consolidate tools without building new integrations.

Object mapping

How Zinc objects map to HubSpot

Each row shows how a Zinc object lands in HubSpot, including any object-level transformations, lookup resolution, or schema-design dependencies.

Typical mapping — final map is confirmed during the sample migration step.

Zinc

Candidate

maps to

HubSpot

Contact

1:1
Fully supported

Zinc Work Candidate maps directly to HubSpot Contact. We map first name, last name, email, phone, job title, and company name to their HubSpot equivalents. Candidates without email are flagged for manual review before import because HubSpot requires an identifier property for deduplication.

Zinc

Candidate.custom_properties

maps to

HubSpot

Contact (custom properties)

1:1
Fully supported

Every Zinc Work custom property on Candidate requires a matching custom property in HubSpot created before the migration runs. We deliver a HubSpot setup plan listing each property name, type, and pick-list options so your admin creates them in the portal before data lands.

Zinc

ReferenceCheck

maps to

HubSpot

ReferenceCheck__c (custom object)

1:1
Fully supported

Each Zinc Work ReferenceCheck record migrates to a HubSpot custom object (ReferenceCheck__c). The ReferenceCheck UUID is preserved as ReferenceCheck__c.Source_ID__c for delta-run deduplication. The object is associated to the Contact via HubSpot's association API after the contact record is created. The association uses HubSpot's Associations API (POST /crm/v4/objects/{Contact}/associations/{ReferenceCheck__c}) after the Contact is confirmed. If the Contact is missing, the ReferenceCheck record is queued for later linking.

Zinc

ReferenceCheck.status

maps to

HubSpot

ReferenceCheck__c.RefCheck_Status__c

1:1
Fully supported

Zinc Work reference-check statuses (pending, in_progress, completed, verified, failed) map to a HubSpot custom pick-list field (RefCheck_Status__c) value-by-value. We preserve the status-change timestamps as datetime fields on the custom object for audit continuity. If a status value does not have a matching HubSpot pick-list option, we create the option on the fly or flag it for manual mapping before import, ensuring no status is silently dropped.

Zinc

ReferenceCheck.check_type

maps to

HubSpot

ReferenceCheck__c.Check_Type__c

1:1
Fully supported

Zinc Work check-type labels (employment_verification, criminal, education, identity) transfer as a custom pick-list field on the ReferenceCheck__c custom object. Pick-list values are created in HubSpot portal settings before the migration maps them. During migration, any missing pick-list values are automatically provisioned via the HubSpot CRM API (POST /crm/v3/properties/{objectType}/pick-lists) so the import never stalls on an unrecognized check type.

Zinc

ReferenceCheck.request_date

maps to

HubSpot

ReferenceCheck__c.Request_Date__c

1:1
Fully supported

The original reference-request creation date from Zinc Work is preserved as a custom datetime field (Request_Date__c) on the ReferenceCheck__c object. HubSpot's built-in createdate is set at migration time — the custom field preserves reporting continuity. If the request_date is null in Zinc Work, we set Request_Date__c to null, preventing a default date from skewing historical reporting.

Zinc

ReferenceCheck.completion_date

maps to

HubSpot

ReferenceCheck__c.Completion_Date__c

1:1
Fully supported

The reference-check completion date maps to a HubSpot custom datetime field (Completion_Date__c) on the ReferenceCheck__c object. Null completion dates (checks still in progress) are preserved as null values rather than defaulting to a placeholder date. During import, any unexpected non-date strings in the source are coerced to null and logged in the migration audit file for manual review.

Zinc

Reference (child of ReferenceCheck)

maps to

HubSpot

Note / Call activity on Contact

1:many
Fully supported

Zinc Work stores each reference provider as a structured sub-record with name, relationship, email, and response content. We split this into two HubSpot artifacts: structured fields (provider name, relationship, email) migrate as additional properties on the ReferenceCheck__c custom object; free-text response content migrates as a HubSpot engagement Note linked to the associated Contact.

Zinc

Candidate.integration_ids (Greenhouse, Bob)

maps to

HubSpot

Custom properties on Contact

1:1
Fully supported

Zinc Work stores ATS and HRIS integration IDs linking candidates to external systems. HubSpot has no native field for external integration IDs beyond the built-in integrations. We preserve these as custom text fields (Source_ATS_ID__c, Source_HRIS_ID__c) for traceability — rebuild integration connectivity via HubSpot Connect separately.

Zinc

Candidate.hs_object_id (legacy HubSpot link)

maps to

HubSpot

Contact.Source_System_ID__c

1:1
Fully supported

If candidates were previously synced from HubSpot to Zinc Work, the HubSpot contact ID is stored in Zinc Work's metadata. We capture this as Source_System_ID__c on the HubSpot Contact for deduplication logic in future delta syncs. The Source_System_ID__c field is indexed in HubSpot, enabling fast lookups during subsequent delta imports to avoid creating duplicate contact records.

Zinc

ReferenceCheck.attachment_url

maps to

HubSpot

Contact / ReferenceCheck__c file attachments

1:1
Fully supported

Zinc Work stores PDF report URLs for completed background checks. We download each PDF and re-upload it to HubSpot Files attached to the associated ReferenceCheck__c record. File size limits (HubSpot default 25MB per file) are enforced; larger files are flagged for manual download-link storage in a custom URL field.

Gotchas + challenges

What specifically takes care here

Platform-specific issues from each side, plus the pair-specific challenges that don't show up on either platform's page on its own.

Zinc logo

Zinc gotchas

High

Integration settings do not migrate automatically

Medium

Custom check templates with bespoke rubrics require field-level mapping

Low

Audit logs are not accessible for export

HubSpot logo

HubSpot gotchas

High

Marketing Contacts billing model is migration-critical

High

Feature tier gating is not visible until onboarding

Medium

Mandatory onboarding fees inflate year-one cost

Medium

HubSpot CSV importer cannot migrate engagements or attachments

Medium

Custom objects require Enterprise and a pre-existing schema

Pair-specific challenges

  • Zinc Work reference-response logs must split into HubSpot engagement records

    Zinc Work stores reference responses as structured child objects with provider name, relationship, email, response date, and free-text notes. HubSpot has no native ReferenceCheck object — responses don't map to a single HubSpot record type. We split structured fields (provider name, relationship, email) into custom properties on the ReferenceCheck__c custom object, and the free-text response content into a HubSpot engagement Note linked to the Contact. This means the reference response is readable inside HubSpot but not queryable as a structured sub-object — your recruiting team will review it as a note rather than a child record.

  • HubSpot custom properties must exist before the migration maps to them

    HubSpot requires custom properties to be created in portal settings before data can be imported into them. FlitStack AI cannot create HubSpot custom properties via the API — they require an admin to create them manually in Settings > Properties. Our migration plan delivers a complete property manifest with name, type, and pick-list values for every Zinc Work custom property so your HubSpot admin pre-creates them. If a custom property is missing at migration time, its data routes to a fallback text field and gets flagged for remapping.

  • Zinc Work automated workflows and email sequences do not transfer to HubSpot

    Zinc Work's automated reference-request triggers, reminder email sequences, and status-update workflows are platform-native automations that have no equivalent in HubSpot. When the migration completes, those automations stop — your recruiting team will need to rebuild reference-request sequences as HubSpot sequences and status-change triggers as HubSpot workflows. We export your Zinc Work workflow definitions as a structured JSON document that your admin can use as a rebuild reference. This is always disclosed as a manual-rebuild item before migration begins.

  • HubSpot API rate limits cap batch imports at 10,000 records per batch

    Zinc Work API uses cursor-based pagination across /candidates and /reference_checks endpoints. HubSpot's batch import API (/crm/v3/objects/batch/create) accepts up to 10,000 records per batch per object type. For migrations with more than 10,000 candidates, we chunk the load into sequential batches and track which batches have committed so failed batches can resume without duplication. This extends migration clock time but prevents rate-limit 429 errors from silently truncating records. We monitor HubSpot's X-Rate-Limit headers, pause between batches, and store a batch checkpoint so we can resume from the last committed batch if a 429 occurs.

  • Zinc Work ATS/HRIS integration IDs have no native HubSpot equivalent

    Zinc Work stores Greenhouse application IDs and Bob HRIS person IDs as properties on candidate records. These external-system IDs are meaningful only within the Zinc Work integration context. When migration is complete, those integrations are disconnected. We preserve the IDs as custom text fields (Source_ATS_ID__c, Source_HRIS_ID__c) on the HubSpot Contact so your team can reconnect via HubSpot Connect after migration — but the reconnect itself requires rebuilding OAuth tokens and webhook endpoints, which FlitStack does not cover.

Migration approach

Six steps for a successful Zinc to HubSpot data migration

  1. Deliver the HubSpot custom-object and property manifest

    Before any data moves, FlitStack AI audits your Zinc Work instance for all custom properties on Candidate and ReferenceCheck objects. We produce a HubSpot setup manifest — every property name, type, and pick-list value that needs to be created in your HubSpot portal before migration. Your HubSpot admin creates these in Settings > Properties. We do not create HubSpot custom properties via API; this step requires an admin action. The manifest also includes the ReferenceCheck__c custom object schema if your HubSpot tier supports custom objects (Operations Hub Professional or Enterprise).

  2. Extract all Zinc Work candidate and reference-check records via REST API

    Using Zinc Work's REST API with your client token, FlitStack AI paginates through /candidates and /reference_checks endpoints with cursor-based pagination to extract every record. We capture the full object graph including custom properties, status history, reference-provider details, and attachment URLs. The extract runs on scoped read access — your team continues using Zinc Work normally. The extract output is written to a staging environment with an MD5 checksum per record for integrity verification before any load begins.

  3. Map and transform records, then load candidates before reference-check objects

    We apply the field-mapping rules from the mapping manifest: direct field maps, value mappings for pick-list status fields, and transformations for split objects (reference responses become HubSpot Notes). Candidates load into HubSpot Contacts first because the ReferenceCheck__c custom object links to Contact records via HubSpot's association API — Contacts must exist first. Reference-check records and their association links load second. Attachment PDFs download from Zinc Work URLs and re-upload to HubSpot Files in the third pass.

  4. Run a sample migration with field-level diff across 200–500 records

    A representative slice of candidates and reference checks migrates first — spanning different statuses, check types, and custom-property combinations. We generate a field-level diff comparing source Zinc Work values against the HubSpot destination values so you can verify: custom property mapping is correct, reference-check status values translated properly, association links resolved, and engagement notes contain the expected response content. You approve the sample before the full migration commits. This step typically runs 24–48 hours before the full cutover.

  5. Cut over with delta-pickup for in-flight records

    The full migration runs against your HubSpot portal. A delta-pickup window of 24–48 hours captures any Zinc Work records created or modified during the cutover — new candidates submitted while migration was running, status updates on in-progress reference checks. FlitStack's audit log records every create, update, and association operation. If reconciliation fails, one-click rollback reverts the HubSpot portal to its pre-migration state. After rollback, the delta records are re-extracted and merged into the next migration run.

Platform deep dives

Context on both ends of the pair

Zinc logo

Zinc

Source

Strengths

  • Structured digital reference reports replace unstructured phone calls, producing consistent, comparable data across hires.
  • Fast turnaround from request to completed reference — multiple reviews cite 48-hour or next-day completion timelines.
  • Integration ecosystem connects to major ATS and HRIS platforms, automating request dispatch and result ingestion.
  • Configurable check templates let companies tailor questions to role level and department without rebuilding from scratch.
  • High customer satisfaction — 4.7/5 on G2 with 83% five-star ratings across 174 reviews.

Weaknesses

  • No live chat or real-time support channel — users are directed to a chatbot or email for assistance.
  • Admin and finance users have limited self-service visibility into check consumption, volume usage, and remaining quota.
  • Integration settings and webhook configurations must be manually re-established after any migration, with no automated export of these settings.
  • Custom check templates with non-standard scoring rubrics may not map cleanly to alternative reference-checking platforms.
HubSpot logo

HubSpot

Destination

Strengths

  • Genuinely useful free CRM tier with no seat limit on contact records.
  • All-in-one sales engagement layer (sequences, email tracking, calling, dialer) embedded natively in the CRM, eliminating a separate integration.
  • Intuitive interface and fast onboarding for individual reps, per G2 and Capterra reviews.
  • Workflow automation triggers across contacts, deals, and tickets with a visual builder.
  • API coverage for all standard objects including custom objects at Enterprise tier.

Weaknesses

  • Pricing model is contact-based at the marketing layer — importing all records as marketing contacts can multiply the monthly bill by 4×.
  • Feature tier cliffs are frequent surprises: sequences, calling, advanced reporting, and quoting are all gated, often requiring plan upgrades mid-implementation.
  • Mandatory onboarding fees at Professional ($1,500) and Enterprise ($3,500) are not prominently disclosed on the pricing page.
  • API rate limits are restrictive for bulk migration — burst limits of 100-200 req/10sec and search endpoint limits of 4 req/sec require careful job queuing.
  • Custom objects, additional pipelines, and advanced forecasting are Enterprise-only, making cost projections difficult for growing teams.

Complexity grading

How hard is this migration?

Standard CRM migration. 1 of 8 objects need a mapping; the rest are 1:1.

B

Overall complexity

Standard migration

Derived from compatibility, mapping clarity, API constraints, and data volume across Zinc and HubSpot.

  • Object compatibility

    B

    1 of 8 objects need a mapping; the rest are 1:1.

  • Field mapping clarity

    C

    Field mapping is derived from defaults — final spec confirmed during the sample migration.

  • Timeline complexity

    B

    8-object category — typical timelines run 2–7 days end-to-end.

  • API constraints

    B

    Zinc: Not publicly documented.

  • Data volume sensitivity

    B

    Zinc doesn't expose a bulk API — REST + parallelization used for high-volume runs.

Estimator

Estimate your Zinc to HubSpot migration cost

Rule-based pricing — no per-record fees, no manual quotes. Migrations over 2M records are scoped individually.

Step 1

What are you migrating?

Pick a category, then your source and destination platforms.

Category

FAQ

Frequently asked questions about Zinc to HubSpot data migrations

Answers to the questions buyers ask most during Zinc to HubSpot migration scoping. Not seeing yours? Book a call.

Can't find your answer?

Walk through your Zinc to HubSpot migration with a real engineer — 30 minutes, free, written quote within 24 hours.

Book a free 30 minute consultation

Most Zinc Work to HubSpot migrations complete in 2–4 days of clock time for typical volumes (under 20,000 candidates). Larger setups with 100,000+ candidates, full reference-response history, and multiple custom properties extend to 7–14 days. The longest planning step is HubSpot custom property creation — your admin must pre-create every custom property from the manifest before the migration can map data to it, and that setup step runs in parallel with our work.

Adjacent paths

Related migrations to explore

Ready when you are

Move from Zinc.
Land in HubSpot, intact.

Tell us record counts and timeline. We'll come back with a written quote inside 1 business day — no commitment, no sales pitch.

Accuracy guarantee Rollback included Quote in 1 business day