Advanced Routing
Distribute records between reps using weighted routing profiles. Choose each rep’s target share, respect availability, and reuse the configuration across workflows.
Advanced Routing supports contact, company, deal and ticket workflows. It can return an owner for a later workflow step or directly overwrite an owner property on the enrolled record.
When to use Advanced Routing
Section titled “When to use Advanced Routing”Use Advanced Routing when reps should receive different shares of incoming records, or when you want to manage routing settings centrally and monitor assignment results.
A profile contains individual users, relative weights, availability checks and a default fallback. Multiple workflow actions can use the same profile, but each action maintains its own assignment balance. Assignments in one action do not count towards another action’s distribution.
For a simple rotation, see Round Robin. To pause a workflow until someone becomes available, use Wait Until Available. Advanced Routing chooses an owner when it runs; it does not wait for an unavailable rep.
Before you start
Section titled “Before you start”- Install Smart Lead & Ticket Routing in your HubSpot account.
- Choose the individual users who should receive records.
- Check their HubSpot Available/Away status, out-of-office settings and working hours if you plan to use availability checks.
- For direct updates, enable Direct Update permissions in the app’s Settings. The selected property must be writable and accept HubSpot owners.
1. Create a routing profile
Section titled “1. Create a routing profile”Open the installed app’s Settings, select Advanced Routing, then choose Create profile on the Profiles tab.
People & weights
Section titled “People & weights”Give the profile a name you will recognise in your workflows, such as Inbound sales, and select its users. Enter a whole-number weight from 1 to 10000 for each user. The app calculates target percentages automatically.
Weights are relative: they do not need to total 100. For example:
| Rep | Weight | Target share |
|---|---|---|
| Alex | 3 | 50% |
| Sam | 2 | About 33% |
| Taylor | 1 | About 17% |
With a stable, available pool, this aims for three assignments to Alex, two to Sam and one to Taylor per six weighted assignments. These are shares over time, not daily quotas or limits on open records.
The screenshot shows a separate two-user example: weights of 2:1 produce target shares of approximately 67% and 33%.
Choose Continue to save the draft and move to availability. Saving a draft does not publish it.
Availability
Section titled “Availability”Choose which conditions users must meet:
- Are marked available: the user is Available rather than Away in HubSpot.
- Are not out of office: the user is not currently out of office.
- Are within working hours: the user is within their configured working hours.
All three are enabled by default for a new profile. All enabled checks must pass. If a required availability signal is missing, the user is skipped. Disabling all checks removes those availability restrictions.
Choose what happens When nobody qualifies:
| Fallback | Result |
|---|---|
| Return no owner | Complete without an owner. Handle this outcome in a workflow branch. |
| Select a fallback owner | Use a fixed user who has a valid owner ID and is still active. |
| Fail the action | Report a failed routing outcome for investigation. |
A fixed fallback bypasses availability checks. Choose someone who should receive records even when they would not qualify for the weighted pool. Fallback assignments do not consume weighted turns.
This existing example profile has its checks disabled. New profiles start with all three enabled.
Review & publish
Section titled “Review & publish”Choose Continue to save availability settings and open Review & publish. Review the people, weights, checks, fallback and affected workflows, then publish explicitly.
If the linked-workflow check cannot complete, retry review before publishing. There is no simulation or test step in the profile wizard.
2. Add Advanced Routing to a workflow
Section titled “2. Add Advanced Routing to a workflow”In a contact, company, deal or ticket workflow, add Advanced Routing and configure:
| Field | What to choose |
|---|---|
| Routing profile | The published profile to use. |
| Assignment mode | Return owner as action output, or directly overwrite owner property. |
| Owner property to overwrite | In direct-update mode, the owner property on the enrolled record. |
| Fallback override | Use the profile fallback, return no owner, select a fixed fallback owner, or fail the action. |
| Fixed fallback user | The active user to use when the override selects a fixed fallback. |
Leave the fallback override unset, or choose Use profile fallback, to inherit the profile’s fallback.
Return owner as action output
Section titled “Return owner as action output”This mode selects an owner without changing the record. Use the returned owner in a later workflow step.
Example contact workflow:
- Enrol contacts that need assignment.
- Add Advanced Routing, select your published profile and choose Return owner as action output.
- Branch on Owner returned successfully being true.
- On the successful branch, add Edit record, select Contact owner, and use the Advanced Routing Selected owner ID output as its value.
- On the other branch, handle the unassigned record according to your process.
Use assigned_owner_id for the assignment step. The separate selected_owner_id output can also exist after a failed direct update, so it is not proof of success.
Directly overwrite owner property
Section titled “Directly overwrite owner property”Choose this mode to select the owner and update the record in the same action. Select the Owner property to overwrite and make sure Direct Update permissions are enabled.
Existing owner values are overwritten. If you only want to assign unowned records, add an enrolment condition or branch that checks the owner property before Advanced Routing runs.
Use Owner property updated to confirm the update succeeded. A selected owner alone does not confirm that the record changed.
How weighted distribution behaves
Section titled “How weighted distribution behaves”Availability and catch-up
Section titled “Availability and catch-up”Unavailable users are skipped, but keep earning their share of assignment credit as successful weighted turns occur. When they return, they can receive consecutive records while the distribution catches up.
For example, a rep who is out of office may receive several assignments in succession after returning. This is expected catch-up behaviour. Weights do not impose a daily cap or a limit based on current workload.
Separate balances and profile changes
Section titled “Separate balances and profile changes”- Each workflow action has its own balance, even when several actions share a profile.
- Switching profiles starts or resumes that profile’s separate balance for the action.
- Weight changes affect future shares while preserving existing assignment credit.
- Newly added users do not receive historical credit for assignments before they joined.
- Fixed fallbacks, no-owner outcomes and failed writes do not consume weighted turns.
Edit, publish and archive profiles
Section titled “Edit, publish and archive profiles”Open a profile to edit it. The published version remains live while you save draft changes. Review affected workflows before publishing: new executions automatically use the newly published version. Existing in-flight executions and retries keep their original version and selection.
Use the profile’s More menu to archive it. Archiving removes it from new profile selections; existing linked actions continue using its last published version. Archiving is not a way to stop an existing workflow. Archived profiles are hidden by default; enable Show archived profiles to find them.
Monitor routing
Section titled “Monitor routing”Distribution
Section titled “Distribution”Open Advanced Routing > Distribution to compare target and actual assignment shares. Filter by Profile, Workflow and Routing action, then select Today, Last 7 days, Last 30 days or All time.
Filters apply automatically. Changing the profile clears workflow and action selections; changing the workflow clears the action. Clear filters retains the selected profile. Refresh updates the results and last-updated time.
All time is the default. Today starts at midnight in your browser’s local timezone; the seven-day and 30-day options are rolling windows based on execution start time.
The report includes all matching executions, not just one page of Activity. Targets reflect the weights used for the counted executions, including earlier published versions. Fixed fallbacks are excluded from weighted percentages. Returned owners, confirmed direct updates and pending reservations are reported separately: returning an owner does not prove a later Edit record step succeeded.
This example contains only one returned owner, so actual shares differ from the targets. Use a larger sample when assessing distribution.
Activity
Section titled “Activity”Open Advanced Routing > Activity to filter execution history by profile, workflow/action, record, object type or outcome. Expand an execution to inspect its selection, candidate reasons and update result.
Pending direct updates can be retried from Activity. A manual retry repairs the saved assignment; it does not independently advance a stopped HubSpot workflow. Output-mode retries must originate in HubSpot so the workflow receives the action outputs. Pending executions are not automatically replayed by a background worker if HubSpot stops retrying.
Action outputs
Section titled “Action outputs”| Output | Meaning |
|---|---|
assigned_owner_id | Selected owner ID returned on a successful output or direct update. Use this in a later owner assignment step. |
selected_owner_id | Selected owner ID, including when the subsequent direct update failed. |
assigned_user_name | Name of the selected user, when available. |
user_returned | True when the owner was successfully returned or the direct update succeeded. |
property_updated | True only when the direct owner-property update succeeded. |
fallback_used | Whether the action used its fallback. |
profile_version | Effective profile version used for this execution. |
execution_id | Identifier for finding the execution in history. |
reason | Routing outcome or error reason. |
An owner ID may be absent when no owner was selected. Branch on the success outputs before using an owner value.
Troubleshooting
Section titled “Troubleshooting”| Problem | What to check |
|---|---|
| Profile is missing from the workflow picker | Publish it first and check that it is not archived. |
| Publish is unavailable | Complete the profile fields and retry the affected-workflow review if it failed. |
| A user is always skipped | Check each enabled availability condition and inspect their candidate reasons in Activity. Missing required signals also cause a skip. |
| A returning user receives several records in a row | This can be catch-up for credit retained while unavailable. |
| Actual shares differ from targets | Check availability, date range, profile versions and pending outcomes. Small samples can differ from long-term targets. |
| An unavailable fallback receives a record | Fixed fallbacks deliberately bypass availability checks. |
| An owner was selected but the property did not change | In output mode, check the later assignment step. In direct-update mode, check permissions, property compatibility and the update result in Activity. |
| A manual retry succeeded but the workflow is still stopped | The retry repairs the assignment only. Check the workflow’s status in HubSpot separately. |
Related guides
Section titled “Related guides”- Actions overview - choose a routing or availability action.
- Round Robin - configure a simple rotation.
- Check Availability - check current availability for workflow branches.
- Wait Until Available - pause until somebody qualifies.