CynosurePipeline integrityAudit fit check

HubSpot association evidence lab

HubSpot contacts not associating with companies?

Model the documented association path, distinguish an expected skip from an ambiguous match, and check why one Typeform or integration submission appears to create two companies before changing a setting.

Fixed generic selectionsRuns entirely in this tabNo portal connectionNo upload, signup, or tracking

Start with the symptom

Three association failures that look alike in a record view.

Each points to a different evidence path. Model only categorical facts below before changing settings or production records.

01

Imported contacts, but no associated companies?

A multi-object import does not trigger the automatic company-creation path for a contact without an imported association. Verify the import type, both objects' identifiers, and the explicit association columns before changing a portal-wide setting.

Model the import path →
02

Did Typeform create two HubSpot companies from one submission?

Two writers are only a hypothesis. Check the published Typeform company mapping and comparison fields, then compare each company's Record Source, source detail, association history, and timestamp. Timing alone does not prove which path wrote either record.

Trace the two-writer risk →
03

Did HubSpot attach the contact to the wrong company?

If multiple companies share one Company domain name, HubSpot's automatic association chooses only one and does not let the user select which through that setting. Verify the match count, primary company, and association history before reassociating a record.

Check an ambiguous match →

Typeform → HubSpot evidence path

Why does one Typeform submission create two HubSpot companies?

Load the generic two-writer example →

If a Typeform mapping writes company data while HubSpot's separate domain-based company creation path is active, two company-writing paths may overlap. That is a diagnostic hypothesis—not proof that Typeform used an API path or caused either record.

  • Typeform company fields, Company domain mapping, existing-company comparison fields, and latest published mapping
  • HubSpot automatic-association state, scope, and excluded-domain state
  • Each company's Record Source, Record Source Detail, and creation timestamp
  • The contact's current and primary company plus association source and timestamp

Stop before merging, deleting, or disabling anything. HubSpot documents that API-created companies, including installed third-party sync apps, are not automatically deduplicated by Company domain name; the actual portal evidence must first establish whether that boundary applies.

Before an irreversible cleanup

What happens when you merge duplicate companies in HubSpot?

Read HubSpot's current merge behavior → (opens in a new tab)

A company merge is not a reversible cleanup step. HubSpot does not provide an unmerge action. The resulting record receives a new Record ID; activities and associations combine; primary-record property values are generally prioritized; and the secondary company's domain becomes an additional domain. Workflow enrollment and Salesforce sync behavior can also depend on the account's subscription, settings, and integration version.

Qualify the impact before anyone clicks Merge.

  • Which company is primary, which property values must be retained, and which domain must remain primary
  • Which contacts, deals, tickets, activities, associations, and primary-company labels will combine or change
  • Which workflows, segments, reports, integrations, and Salesforce syncs depend on either company or its Record ID
  • Which pre-merge snapshot, acceptance checks, owner, and manual reconstruction path will be used if the result is wrong

If any answer is unknown, stop before Merge. The $1,500 Pipeline Truth Audit is read-only, 100% upfront, and delivered in five business days within the published scope. It maps the relevant company-writing and downstream evidence; it does not merge, delete, or edit records.

The generic fit-check draft asks for the HubSpot plan or tier, approximate active-record and system counts, and the pipeline answer you trust least.

I will not send credentials, CRM records, record or portal IDs, exports, screenshots containing personal data, API payloads, or secrets by email.

See if the $1,500 read-only audit fits this merge →

Prevent the next duplicate

How do I stop HubSpot from creating duplicate companies again?

Build a recurrence-prevention plan →

Choose one future company writer before changing a setting. Preserve the association and qualified-freemail behavior the business still needs, then isolate every other confirmed company-creation path in fictional tests.

The planner returns DO_NOT_CHANGE, CANDIDATE_PATH, or PREVENTION_READY_FOR_TEST—never “fixed.” It checks writer evidence, the intended creation owner, Typeform comparison fields, import identifiers, preserved behavior, exact new-domain and freemail expected counts, four fictional cases, success evidence, and rollback conditions.

Record Source, source detail, association history, and same-timezone timestamps must establish the writer set. A mapped field, API payload, or close timestamp alone is not prevention proof.

Free local browser tool

Match the path. Flag duplicate risk.

  • Fixed categorical selections only
  • No contact, company, email, or domain values
  • No portal connection, upload, storage, or tracking
  • Refresh or close the tab to clear inputs

One-click generic hypothesis

Model two selected company-writing paths safely.

Loads fixed categories for automatic association, multiple same-domain companies, and a confirmed API or installed-app company writer. It does not claim that Typeform—or any named integration—used that path in your portal.

Use categories only. Never paste names, email addresses, domains, company names, contact data, record or portal IDs, screenshots, exports, integration payloads, passwords, MFA codes, API keys, or tokens.

Example only · generate before using the output

Generated output

Example output. Generate before using.

Example output only. Generate the check or load the generic preset before exporting or requesting a diagnosis-specific fit check.

Need help tracing this association path?

Request a no-data fit check for the $1,500 Pipeline Truth Audit using only the generated result class and risk-flag IDs. The draft asks for approximate scope—not CRM records.

Generate to request fit check
01

Documented risk flags

Keep exceptions visible before repair.

  1. No selected flag
    No documented risk flag was selected.

    This does not prove the portal is clean. Complete the ordered verification and preserve unknowns.

02

Ordered verification

Verify the path before changing the setting.

  1. VER-01
    Establish the record creation path.

    Read Record Source and the creation timestamp before applying a domain-matching explanation. Preserve only the generic source category and source detail in diagnostic notes.

    Evidence
    Creation path category, generic Record Source, source detail, and same-timezone timestamp
  2. VER-02
    Verify the automation scope and excluded-domain state.

    Check whether Create and associate companies with contacts is enabled, whether existing contacts were included, and whether the relevant domain is excluded. If an exclusion was recently removed, follow HubSpot's documented off-and-on reset before expecting future association.

    Evidence
    Setting state, prospective or retroactive scope, excluded-domain state, and configuration timestamp
  3. VER-03
    Count exact domain matches and identify subdomains.

    Compare the categorical contact email or Website URL domain with Company domain name values. Record whether zero, one, or multiple companies match and whether the value is a subdomain.

    Evidence
    Email category, root-or-subdomain category, Website URL fallback category, and matching-company count
  4. VER-04
    Inspect current and historical associations.

    Confirm whether the contact already has a company, which company is primary, when each association was created, and the association change source.

    Evidence
    Association count, primary-company state, generic source, source detail, and timestamps
  5. VER-05
    Inspect the path-specific writer and duplicate boundary.

    Confirm no form, multi-object import, API writer, or installed sync app created the record. For company creation, compare the generic Record Source with HubSpot's documented domain-deduplication boundaries.

    Evidence
    Path configuration, company Record Source categories, creation order, and deduplication identifier category
  6. VER-06
    Compare observed evidence with the predicted class.

    The browser-local prediction is ASSOCIATE_EXISTING. Do not change, merge, delete, or reassociate records merely to make the portal match the prediction; document any mismatch for read-only investigation.

    Evidence
    Predicted class, observed association state, generic source categories, ordered timestamps, and unresolved differences
03

Five-case association plan

Baseline through recovery, with stop conditions.

TestScenario and setupExpectedEvidenceStop conditionResult
BAS-01BaselineCapture the unchanged association state before any testWithout mutating a record, document the categorical creation path, automatic-association setting and scope, excluded-domain state, matching-company count, current associations, primary company, and relevant Record Sources.The starting relationship, writer candidates, settings, timestamps, and unknowns are explicit.Sanitized categorical notes, generic Record Sources, association history, and same-timezone timestampsStop if the creation path, in-scope records, matching-domain count, or primary-company state cannot be established without exposing CRM data.Not run
POS-01PositiveOne eligible business domain matches one existing companyOnly in a separately approved sandbox or with fictional records, use one new contact category, one exact matching company domain, no exclusion, and the documented automatic-association setting.The fictional contact is associated with the one matching company; association history supplies the source and timestamp.Setting snapshot, one-company match, before/after association state, generic source, and timestampStop on an unexpected company creation, second match, external send, production record, or unrelated property change.Not run
NEG-01NegativeA documented blocker prevents automatic associationUse only a separately approved fictional control representing one blocker: disabled automation, an excluded domain, a legacy contact outside prospective scope, or freemail without Website URL.No automatic company creation or association occurs through the blocked path.Selected blocker, setting snapshot, before/after association state, generic source, and timestampStop if the blocker is not isolated, a form exception applies, a production record enters scope, or another writer runs.Not run
EXC-01ExceptionA subdomain and root domain are evaluated separatelyUsing sanitized configuration evidence, verify whether the contact domain is a subdomain and whether a company already exists for that exact domain.The subdomain is not silently represented as the root company domain; any separately created company remains visible in the evidence.Root-or-subdomain category, exact-match count, company creation source category, and association historyStop if the exception requires credentials, production mutation, bulk import, deletion, merge, or an unisolated external writer.Not run
REC-01RecoveryA separately approved controlled test produces an unexpected associationStop the confirmed in-scope test writer, restore its documented baseline, preserve association history, and repeat only on a new fictional record after the mismatch is explained.The configuration returns to baseline and the new fictional record follows the documented expectation. The original browser-local prediction remains recorded as ASSOCIATE_EXISTING, not rewritten as proof.Baseline, revision or configuration history, affected fictional labels, association history, recovery result, and residual-risk noteKeep the writer paused and escalate if scope, permissions, primary-company state, or recovery evidence is uncertain.Not run

Planning artifact only. Use fictional records, disable external sends, preserve a documented baseline and recovery path, and keep personal data and secrets out of the artifact. A generated expectation is not execution evidence. Do not merge, delete, create, or reassociate production records from this output.

Created with Cynosure Company Association Checker.

04

Recurrence-prevention planner

Choose one future company writer before changing a setting.

Start from a generated association result. Add only categorical evidence about the writer set, intended creation owner, published matching contract, import guard, behavior the business must preserve, and exact company and association counts for the two variable test cases.

Loads fixed generic risk categories, generates the prerequisite check, and keeps this planner in view.

Need a read-only association audit?

$1,500 Pipeline Truth Audit · association integrity focus · 100% upfront · five business days

The read-only audit inventories association settings, excluded domains, primary-company state, imports, Salesforce, and company-writing integrations. Request a fit check with the generic result class and risk-flag IDs only, then add approximate plan, record-count, and writer-count scope—never CRM records, domains, names, IDs, exports, payloads, or screenshots containing personal data.

See the exact audit scope and limits →
Generate to open email

Product evidence

Primary HubSpot and Typeform documentation

Product behavior, labels, permissions, availability, and integration rules can change. Verify the linked documentation and the client's actual portal before acting. Cynosure is independent and is not affiliated with or endorsed by HubSpot or Typeform.