Who gets the lead? Check the rule first.
Inspect six sample records before defining your HubSpot routing. See which owner is proposed, which contact is reused and which records stop for review. Fictional records, run in your browser. Nothing is written to HubSpot.
- Check fitApply agreed eligibility criteria.
- Resolve the recordCheck identity and existing ownership.
- Propose the actionName an owner or hold with a reason.
Select a record
Pick a record and see the routing decision
The sample policy checks eligibility, identity, existing ownership, territory and owner availability in that order.
The net-new result is shown below. All six results are available in the acceptance matrix on this page. Enable JavaScript to select the other records here.
Input record
Policy 1.0.0Select a fictional record. The result shows the first terminal rule and the checks that came before it.
View selected decision01 / Net-new
A target account, one territory and an available sales owner.
- Input ID
- SYN-IN-001
- Fictional email
- buyer@northstar.example
- Target fit
- Eligible under the sample criteria
- Contact match
- No contact match supplied
- Relationship
- No customer relationship supplied
- Customer owner
- None supplied
- Territory
- Verified company region: EU
Local decision / No CRM write
Owner proposed
Sales EU 01
One agreed territory maps to one active owner under this sample policy.
- Contact action
- New contact proposed
- Destination record
- No ID yet
- Terminal rule
- R07
- Reason code
- TERRITORY_OWNER
Required next step
Implement the proposed action, then verify the destination contact and owner. The simulator has not written to HubSpot.
Decision trace
- R01
EligibilityPass
Target account and buying role match the agreed criteria.
- R02
IdentityPass
No existing contact match was supplied.
- R03
Customer ownershipNot applicable
The supplied record is not an existing customer.
- R04
Existing contactNot applicable
No matched contact needs to be reused.
- R05
TerritoryPass
One agreed territory: EU.
- R06
Owner availabilityPass
Sales EU 01 is active in the sample registry.
- R07
AssignmentTerminal decision
Propose Sales EU 01; propose a new contact.
The records, owners and IDs are fictional. This lab evaluates a sample policy locally. It does not search HubSpot, verify paid seats or perform CRM actions. Target fit is not permission to send outreach.
Policy order
The next rule depends on the last one
Built by AGI Technologies as an independent simulator for HubSpot routing.
An existing customer can retain its relationship owner before new-business territory rules run. Ambiguous identity or missing ownership stops the decision.

- Check eligibility and identityExclude an ineligible record. Hold multiple matches.
- Protect existing ownershipRetain a valid customer or contact owner.
- Require a clear assignmentOne territory and one active owner, otherwise hold.
Acceptance matrix
The final outcome for each sample record
These six outcomes come from running the lab’s rules on the fictional records.
| Synthetic input | Terminal decision | Owner or exception | Record action |
|---|---|---|---|
| 01 / Net-new | ASSIGNED / R07 | Sales EU 01, one agreed territory and one active owner | Propose a new contact. No CRM write. |
| 02 / Existing customer | PRESERVED / R03 | Account team 02, active relationship owner retained | Reuse SYN-CONTACT-020. No CRM write. |
| 03 / Duplicate input | MATCHED / R04 | Sales EU 01, owned contact already exists | Reuse SYN-CONTACT-030. No new contact. |
| 04 / Missing owner | HELD / R06 | NO_ACTIVE_OWNER, configured APAC owner is inactive | Hold for an ownership decision. |
| 05 / Conflicting territory | HELD / R05 | TERRITORY_CONFLICT, EU and NA signals disagree | Hold until the authoritative territory is confirmed. |
| 06 / Ineligible | EXCLUDED / R01 | NOT_ELIGIBLE, company type is outside the target criteria | Do not route. Keep the exclusion reason. |
Open downloads
Keep the routing pack.
Open the acceptance matrix, rules, fixtures and runbook below. No email address is needed.
Open files
Inspect the same rules and records
Use the matrix to define acceptance criteria. The rule file and the input records describe the same sample policy.
Acceptance matrix
Six inputs, expected terminal states, owner or exception and required destination verification.
hubspot-routing-test-matrix.csv
Open the fileRouting rules
Ordered checks, fictional owner registry, explicit territory mapping and scope limits. Policy definitions in a readable text file.
hubspot-routing-rules.txt
Open the fileSynthetic fixtures
All six input records and independently specified expected outcomes. No customer data.
hubspot-routing-fixtures.txt
Open the fileRouting test runbook
What was tested locally, what needs a CRM test and how to inspect replay, ownership and exceptions before release.
hubspot-routing-runbook.txt
Open the fileBefore a CRM release
Test matching, ownership and repeats in HubSpot
This lab uses explicit matches supplied in each fixture. In a build, test real matching and associations separately. HubSpot automatically deduplicates contacts by email, but companies created through the API are not automatically deduplicated by domain. Define your create-versus-update checks before writeback.
Retaining a customer owner is a deliberate policy here. HubSpot contact and company ownership are independent by default. Confirm which owner property, primary company association and synchronization settings your implementation uses.
The sample selects a named active owner and does not simulate round robin. HubSpot's Rotate record to owner action has subscription and seat requirements. Review the existing-owner override setting and available owners in the actual portal.
The lab gives the same answer every time. In HubSpot, repeats behave differently. A re-enrolled HubSpot record starts the workflow again and can repeat its actions. Test repeated submissions and destination task counts before enabling a production workflow.
Implementation references
The product details are documented
- HubSpot: deduplicate records
Email, record ID and company-domain matching differ by creation path. Company API creation does not automatically deduplicate by domain.
- HubSpot: contact and company ownership
Owners are independent by default. Optional synchronization has conditions and does not retroactively set every owner.
- HubSpot: assign and rotate record owners
Review active users, required paid seats, subscription availability, overwrite settings and distribution rules in the portal.
- HubSpot: workflow re-enrollment
Re-enrollment can restart workflow actions. Eligibility and replay checks need explicit implementation tests.
Use the reference
Connect the routing decision to the build
Inspect the deliverables pack
Review a complementary inquiry-to-owner reference: field dictionary, acceptance fixtures, ownership and handover runbook.
Open the reference packHubSpot development and RevOps
Define record matching, lifecycle, associations, routing and reporting around the way your revenue team works.
Review the serviceScope the next step
Review the rules behind your routing
Bring your ownership rules, exception records and required CRM actions. We can define the acceptance tests and scope the implementation.