Skip to main content

Contact & company matching

How does Contact & Company matching works

Tarek Khalil avatar
Written by Tarek Khalil
Updated over a month ago

How does Interhubz match Intercom contacts to HubSpot contacts?

Interhubz uses multiple matching strategies in priority order:

  1. Email Matching: Match by email address (primary strategy)

  2. Phone Number Matching: Match by phone number

  3. External ID Matching: Match by custom property pairs you define

The system tries each strategy in order until a match is found.

Can I control which matching strategies are used?

Yes! Navigate to Connections β†’ [Connection] β†’ Matching β†’ Contact Matching to:

  • Enable or disable each strategy

  • Set the priority order

  • Configure strategy-specific settings

Do I need to configure matching, or does it work automatically?

Email matching works automatically out of the box. Phone and External ID matching require configuration in your matching settings.


Email Matching

How does email matching work?

Interhubz compares the email address from the Intercom contact to the email addresses in your HubSpot contacts:

  • Case-insensitive comparison

  • Automatic email normalization (see below)

  • Exact match required after normalization

What is email normalization?

Email normalization improves match accuracy by standardizing email formats:

Plus-Addressing Removal:

  • john+promo@acme.com β†’ john@acme.com

  • Helps match contacts who use email aliases

Gmail Dot Normalization:

  • john.doe@gmail.com β†’ johndoe@gmail.com

  • Gmail ignores dots, so we do too

Role/Disposable Detection:

  • Flags emails like admin@, noreply@, temporary email services

  • Configurable policy for how to handle these

Can I disable email normalization?

Email normalization settings are configurable in Matching β†’ Contact Matching β†’ Email Normalization. You can enable or disable:

  • Plus-addressing stripping

  • Gmail dot normalization

  • Role/disposable email policies

What happens if multiple HubSpot contacts have the same email?

This is a collision. Interhubz uses a tie-breaker strategy (configurable):

Most Recent (default):

  • Selects the contact with the most recent engagement

  • Uses a configurable lookback window (default: 30 days)

  • Falls back to last modified timestamp if tied

If still inconclusive, the collision is logged and you can resolve it manually.


Phone Number Matching

How does phone number matching work?

Phone numbers are normalized to E.164 international format and compared across multiple HubSpot fields:

  • phone

  • mobilephone

  • hs_whatsapp_phone_number

A match occurs if the normalized phone numbers are identical.

What is E.164 format?

E.164 is the international phone number standard (e.g., +14155551234). All phone numbers are converted to this format before matching to ensure consistency regardless of how they're stored.

How does Interhubz know which country code to use?

The system infers the country code from:

  1. The conversation's channel metadata (e.g., WhatsApp channel country)

  2. Your configured default country (configurable in matching settings)

  3. Falls back to US if neither is available

My phone numbers don't have country codes. Will they still match?

If your HubSpot phone numbers lack country codes, configure:

  • Default Country: Set to your primary market (e.g., United States)

  • Require Country Code: Disabled

This allows matching of local-format numbers (e.g., (415) 555-1234) by applying your default country code.

Why do phone matching settings matter?

Phone numbers can be stored in many formats:

  • (415) 555-1234

  • +1-415-555-1234

  • 4155551234

  • +14155551234

Normalization ensures all these formats match correctly.


External ID Matching

What is External ID matching?

External ID matching lets you match contacts using custom property pairs between Intercom and HubSpot. This is useful when:

  • You store your internal CRM IDs in both platforms

  • Email or phone aren't reliable identifiers

  • You need to match based on other unique identifiers

How do I configure External ID matching?

Navigate to Matching β†’ Contact Matching and add property pairs:

Example Configuration:

  • Intercom property: external_id β†’ HubSpot property: external_user_id

  • Intercom property: id β†’ HubSpot property: intercom_contact_id

  • Intercom property: custom_attributes.crm_id β†’ HubSpot property: crm_user_id

Can I use nested Intercom properties?

Yes! Use dot notation for nested custom attributes:

  • custom_attributes.crm_id

  • custom_attributes.salesforce_id

  • custom_attributes.user_data.internal_id

Can I configure multiple External ID property pairs?

Yes. You can configure multiple property pairs with priority ordering. The system tries each pair in order until a match is found.


Company Matching

How does Interhubz match Intercom companies to HubSpot companies?

Interhubz uses these strategies in priority order:

  1. Primary Company: If a contact is matched, use that contact's associated company in HubSpot

  2. Email Domain Matching: Extract the domain from the contact's email and search HubSpot companies

What is email domain matching?

Domain matching extracts the registrable domain from a contact's email and searches for HubSpot companies with that domain:

Example:

  • Contact email: john@mail.acme.co.uk

  • Extracted domain: acme.co.uk

  • Searches HubSpot companies with domain acme.co.uk

Are free email providers like Gmail handled?

Yes. Domain matching automatically skips free email providers:

  • Gmail, Yahoo, Outlook, Hotmail

  • ProtonMail, iCloud, AOL

  • And many more

This prevents incorrectly grouping all Gmail users into one company.

What if multiple HubSpot companies have the same domain?

This is a collision. The system uses the tie-breaker strategy:

Most Recently Modified (default):

  • Selects the company with the most recent modification timestamp

  • If still tied, the collision is logged for manual resolution

Can I configure domain matching behavior?

Yes. Navigate to Matching β†’ Company Matching to configure:

  • Whether to extract registrable domain

  • Whether to ignore free email providers

  • Domain alias mappings (e.g., acme.io β†’ acme.com)


Collision Resolution

What is a collision?

A collision occurs when multiple HubSpot records match the same Intercom contact or company. This can happen with:

  • Duplicate contacts in HubSpot with the same email

  • Multiple companies with the same domain

How are collisions resolved?

Interhubz uses configurable tie-breaker strategies:

Contact Collisions - Most Recent:

  • Finds the contact with the most recent engagement

  • Configurable lookback window (default: 30 days)

  • Falls back to last modified timestamp

Company Collisions - Most Recently Modified:

  • Selects company with the most recent modification date

What happens if a collision can't be resolved?

If the tie-breaker strategy can't determine a winner, the collision is logged and the conversation may be skipped or routed to an alternate destination (based on your fallback configuration).

Can I manually resolve collisions?

Yes. Collisions are logged in your activity logs. You can:

  1. Review the collision details

  2. Deduplicate the HubSpot records manually

  3. Retrigger the capture via API Push


Match Quality & Accuracy

What happens if no match is found?

If no HubSpot contact or company is found, the system checks your Creation Policies:

  • Always Create: Automatically creates a new HubSpot record

  • Never Create: Skips the conversation or uses an alternate destination

  • Conditional: Creates based on specific criteria

Configure creation policies via: Matching β†’ Creation Policies

How accurate is the matching?

Matching accuracy depends on your data quality:

High Accuracy Scenarios:

  • Clean, unique email addresses

  • Properly formatted phone numbers with country codes

  • Consistent external ID usage across platforms

Lower Accuracy Scenarios:

  • Duplicate emails in HubSpot

  • Missing or inconsistent data

  • Unformatted or invalid phone numbers

We recommend regular data hygiene in both Intercom and HubSpot for best results.

Can I see which strategy was used to match a record?

Yes. The configuration snapshot included in each captured conversation shows the matching strategy and settings used at capture time.


Advanced Matching

Can I prioritize certain matching strategies?

Yes. In your matching configuration, you can:

  • Reorder strategies to set priority

  • Disable strategies you don't want to use

  • Configure strategy-specific settings

Example: If you trust External ID matching more than email, move it to higher priority.

What if I want to match based on a field not supported?

External ID matching supports any custom property pair. If you need to match based on a unique field:

  1. Ensure the property exists in both Intercom and HubSpot

  2. Add it as an External ID property pair

  3. Set its priority

Can I match companies independently of contacts?

Yes. Company matching works both:

  • Dependent: Via matched contact's primary company (highest priority)

  • Independent: Via email domain extraction

The system tries both approaches based on your configuration.


Best Practices

What matching configuration should I start with?

Recommended Starting Configuration:

Contact Matching:

  1. Email matching: Enabled (priority 1)

    • Plus-addressing: Enabled

    • Gmail dots: Enabled

  2. Phone matching: Enabled (priority 2)

    • Set your default country

  3. External ID: Configure if you have internal IDs

Company Matching:

  1. Prefer primary company: Enabled

  2. Email domain: Enabled

    • Ignore free providers: Enabled

Collision Resolution:

  • Contact: Most recent (30-day window)

  • Company: Most recently modified

Should I enable phone matching if my data quality is poor?

If your phone numbers are inconsistently formatted or missing country codes:

  • Start with phone matching disabled

  • Clean up your data in both platforms

  • Enable phone matching once data quality improves

Poor phone data can cause false negatives (missed matches).

How can I improve match accuracy?

  1. Clean your data: Remove duplicates in HubSpot

  2. Standardize emails: Use proper email addresses, not aliases

  3. Add country codes: Include country codes on phone numbers

  4. Use External IDs: Implement a unique identifier across platforms

  5. Regular audits: Review collision logs and resolve duplicates


Troubleshooting

Why aren't contacts matching when I know they exist in HubSpot?

Check these common issues:

  1. Email mismatch: Verify emails are exactly the same (check for typos, extra spaces)

  2. Normalization: Email normalization may be affecting the match (check your settings)

  3. Strategy disabled: Ensure the appropriate matching strategy is enabled

  4. Phone format: For phone matching, ensure country codes are present or default country is set correctly

A contact was created in HubSpot instead of matching an existing one

This means no match was found. Review:

  1. Does the HubSpot contact actually have the same email/phone/external ID?

  2. Are your matching strategies enabled and configured correctly?

  3. Check the configuration snapshot in the captured conversation to see what matching settings were used

Can I force a rematch after updating my settings?

Yes. After updating matching configuration:

  1. Use API Push to retrigger capture

  2. The conversation will be rematched using your new settings

  3. Based on "Same Conversation Policy", it will either update the existing note or create a new one

Did this answer your question?