Skip to content
Contactzilla

How can we help you?

Browse Categories

How to Import Contacts from HubSpot into Contactzilla

Headshot Portrait of Nick Holder, MDM specialist at Contactzilla

Nick Holder

MDM Deployment Specialist

This guide shows you how to import your HubSpot contacts into a Contactzilla address book, keep them in sync on a schedule, and deploy them to your team's iPhones, with headshots, desk and mobile numbers and labels. It assumes you can approve app connections in your HubSpot account and already have a Contactzilla address book for the contacts.

What You'll Need

  1. A Contactzilla account with an address book for the HubSpot contacts. If you haven't made one yet, see Setting up a Team and Address Book.
  2. The HubSpot importer enabled on your Contactzilla team. It's a premium importer, so contact support@contactzilla.com to switch it on.
  3. A HubSpot account (any plan, including the free CRM) and a HubSpot user who can connect apps.
  4. Optional: a HubSpot text property that holds a link to each contact's headshot, if you want photos on the phones (see Step Four).
  5. To deploy to phones with an MDM: an MDM team member in Contactzilla. See Setting Up MDM Deployments in Contactzilla.

Connect Contactzilla to HubSpot

Step One: Start a HubSpot import

Open the address book that should receive the HubSpot contacts, using the address book switcher at the top left.

a) Click Import → under Premium Importers, click Hubspot.

Contactzilla Import page with the Import menu item and the Hubspot premium importer highlighted

b) Click + Import Hubspot.

Empty Hubspot jobs page in Contactzilla with the Import Hubspot button highlighted

Step Two: Connect your HubSpot account

Contactzilla connects to HubSpot through HubSpot's own sign-in and approval screens, so no HubSpot password is stored in Contactzilla.

a) 1. OIDC connector for Hubspot is already set to Contactzilla Hubspot Default Connector → open the 2. OIDC connection dropdown → Add New Connection.

Contactzilla HubSpot import setup with the OIDC connection dropdown open and Add New Connection highlighted

b) HubSpot opens. Select the HubSpot account that holds your contacts → Choose Account.

HubSpot Connecting Contactzilla to HubSpot screen with the account selected and the Choose Account button highlighted

c) Read the warning → Connect app.

HubSpot You're connecting an unverified app warning, with the read-only contacts permission and the Connect app button
⚠️ Important: HubSpot shows You're connecting an unverified app because it hasn't reviewed Contactzilla's HubSpot app. The only permission Contactzilla asks for is View properties and other details about contacts, so it can read your contacts but can't change anything in HubSpot.

d) In the Connecting an unverified app box, type I accept the risk → Connect.

HubSpot Connecting an unverified app dialog with I accept the risk typed in and the Connect button highlighted
💡 If this HubSpot account has connected to Contactzilla before, HubSpot skips the account and warning screens and takes you straight back to Contactzilla.

e) Back in Contactzilla, your new connection is selected under 2. OIDC connection → Continue.

Contactzilla HubSpot import setup with the new HubSpot connection selected and the Continue button highlighted

Step Three: Choose how often to sync

a) Under 3. Configure sync settings, choose a schedule, for example Every day → Continue.

Contactzilla HubSpot sync settings with the Every day schedule selected and the Continue button highlighted
  • Schedule: Manual, Every 4 hours, Every 8 hours, Every 12 hours, Every day, Every week or Every month. Manual only syncs when you click Sync Now.
  • Sync Mode: Full Refresh - Overwrite pulls the full contact list from HubSpot each time.
  • Import on save starts the first pull as soon as you continue.
  • Label all contacts for this import adds the labels you pick to every contact from this job.

Contactzilla now shows Waiting for Hubspot data to be ready while it collects your contacts from HubSpot.

Contactzilla Waiting for Hubspot data to be ready screen shown after the HubSpot connection is saved
💡 The first pull can take a while, especially for large HubSpot accounts. You can leave the page: when the data is ready, the job card on Import → Hubspot shows Requires mapping.

Contactzilla is now connected to HubSpot, and the import job waits for you to map the HubSpot properties.

Map HubSpot properties to Contactzilla fields

HubSpot sends every contact property it has, so expect a long list. Our test account sent 341 columns. Each HubSpot property arrives as a column starting properties_, for example properties_email.

Step Four: Map the columns

a) On the job card, click Requires mapping → on the id column, which Contactzilla recommends as Hidden Custom Unique - Hubspot ID, click Use.

Contactzilla HubSpot mapping step with the id column recommended as Hidden Custom Unique - Hubspot ID and the Use button highlighted

The HubSpot ID keeps each contact matched to the same HubSpot record on every later sync.

⚠️ Important: Don't click Use all recommendations. As well as the HubSpot ID, Contactzilla also recommends HubSpot's tracking columns (such as the Bing, LinkedIn, TikTok and ChatGPT click IDs) as hidden unique fields. These are usually empty, and you don't want them treated as contact IDs.

b) On each of those tracking columns, for example properties_hs_bing_click_id, click Ignore. You can also leave them and use Ignore All at the end.

HubSpot Bing click ID column recommended as a hidden unique field with 0% rows populated and the Ignore button highlighted

c) On your headshot column (ours is a custom HubSpot property called Photo URL, so it arrives as properties_photo_url), open Select a field → search Avatar → Avatar.

Contactzilla mapping the HubSpot Photo URL column to the Avatar field, with Avatar highlighted in the field search
⚠️ Important: HubSpot doesn't make the photo you upload to a contact record (the round image at the top of the record) available to connected apps, so it can't come through to Contactzilla. To sync headshots, you'll need each photo hosted at a public link, for example on your website or a public image host. Then add a single-line text property in HubSpot (ours is called Photo URL), fill it with a public link to each person's headshot, and map that column to Avatar as above. The headshots then show in Contactzilla and on your team's phones. Each link must open the image directly without a sign-in. Links to photos already stored in Contactzilla (contactzilla.app/image/...) aren't picked up, so use another host for those.
HubSpot contact record with the All Properties panel showing the Photo URL property holding a public headshot link

d) On properties_email, choose Email → change the label from Home to Work.

Contactzilla mapping the HubSpot email column to Email, with the label menu open and Work highlighted

e) On properties_phone (HubSpot's Phone Number), choose Phone → Custom → type a label such as Desk phone → confirm.

Contactzilla mapping the HubSpot phone column to Phone with a custom Desk phone label, showing unformatted sample numbers

HubSpot sends numbers without spacing, for example +14165552013. To show them in a consistent format in Contactzilla and on phones, turn on Phone Number Formatting under Team Settings → Address Book.

f) On properties_mobilephone (HubSpot's Mobile Phone Number), choose Phone → change the label to Mobile.

Contactzilla mapping the HubSpot mobile phone column to Phone, with the label menu open and Mobile highlighted

g) Map your other columns the same way. In our example:

  • properties_firstname → First Name and properties_lastname → Last Name
  • properties_company → Company Name and properties_jobtitle → Job Title
  • properties_bio (a custom HubSpot property) → Bio
  • properties_trade (a custom HubSpot property) → Label, so each contact is labelled by its value, such as Skyline Team or MEP

h) Click Ignore All to skip the remaining columns → under Would you like to handle deletes?, click Yes → tick archived → Continue.

Contactzilla HubSpot mapping with remaining columns ignored, archived ticked to handle deletes and the Continue button highlighted

HubSpot leaves deleted contacts out of the data it sends, so the archived column never marks anyone for removal. To remove contacts you delete in HubSpot, use Delete any contacts not replaced in Step Five. Contactzilla saves this mapping, so later syncs reuse it.

Import the HubSpot contacts into the address book

Step Five: Handle duplicates and run the import

a) Choose Replace duplicates → Continue.

Contactzilla duplicates step with Replace duplicates selected and the Continue button highlighted

Replace duplicates updates a contact in Contactzilla whenever its HubSpot record changes, which keeps the address book matching HubSpot. If this address book holds only your HubSpot contacts, also turn on Delete any contacts not replaced: a contact you delete in HubSpot is then removed from the address book, and from your team's phones, on the next sync. In our test, deleting one contact in HubSpot removed it from Contactzilla on the next sync and left the other 67 untouched. Leave it off if the address book also holds contacts from other sources, because it removes any contact this import didn't bring in. For what each option does, see How to Re-import Contacts Without Creating Duplicates.

b) When Import Complete appears, check the counts → Return to contacts.

Contactzilla Import Complete screen showing 68 of 68 HubSpot contacts imported and the Return to contacts button

The address book now lists your HubSpot contacts, with their headshots, labels, desk and mobile numbers and work emails.

Cascade Tower address book in Contactzilla listing contacts imported from HubSpot with headshots, labels, mobile and desk phone numbers
💡 From then on, the job syncs on your schedule. To pull changes straight away, open the job's Setup menu → Sync Now. View Job Runs shows what each sync inserted, replaced and skipped; contacts that haven't changed in HubSpot are counted as Ignored.

Deploy the HubSpot contacts to iPhones

Step Six: Create a device connection for your MDM

a) Click Device Connections → Connection Type: iOS iPhone/iPad → Assign to Team Member: your MDM team member → Access Type: Full Read Only → tick Append 🔒 emoji → Number of Device Connections: the number of phones → Create.

Contactzilla Create New Device Connection form set to iOS, an MDM user, Full Read Only, lock emoji and 50 device connections
💡 With Full Read Only, staff can't edit the contacts on their phones, so HubSpot stays the place to make changes. Append 🔒 emoji adds a lock to each contact in the phone's Contacts app as a reminder.

b) On the new connection, click Setup → Download Profile to save the .mobileconfig file.

Contactzilla device connection card with the Setup menu open and Download Profile highlighted

Upload the .mobileconfig file to your MDM and assign it to your devices. Follow the guide for your MDM: Microsoft Intune, Jamf Pro, Mosyle or IBM MaaS360. No MDM? See How to Put Contactzilla Contacts on Phones Without MDM by Scanning a QR Code.

You've now connected HubSpot to Contactzilla and imported your contacts. Each scheduled sync brings HubSpot changes into the address book, and the phones pick them up automatically.

Still Need Help?

Our support team is available to assist you with any questions or issues you may have.

Contact Support · Technical Support

Still need help?

Our support team is available to assist you with any questions or issues you may have.

Ready to supercharge your contact book?

Grow sales and stay organized with better contact management for your team.

No credit card required • 14-day free trial

Contactzilla contact management dashboard on a laptop