Intelligent Routing for Docket Marketing Agent Meetings
Last updated: October 26, 2026
Docket Marketing Agent does not stop at a conversation. When a visitor has said what they need, shown they fit, and agreed to a next step, the agent routes them to the right person and books the meeting inside the same conversation.
Routing decisions use what Docket already knows about the visitor: the CRM record behind their company, what they said in the conversation, and the rules you write. You set it up once per agent, in plain language, and Docket applies it on every conversation from then on. The visitor never leaves the conversation to book, and your reps never sort a queue.
Which routing path should you use?
Docket supports three ways to route a meeting. Most teams use the first, and the three can coexist on one agent.
You want | Use | Who picks the rep |
|---|---|---|
Docket to choose the rep and book on that rep's own calendar, using your CRM and your rules | Native routing with Docket Calendar, described in this article | Docket |
To keep the Chili Piper routers you already run | Chili Piper routing, connected once and named inside the same routing instruction | Chili Piper |
To send the visitor to a booking page you already own, such as Calendly or RevenueHero | An Agent CTA that opens the scheduler URL | The scheduler |
Native routing and Chili Piper routing both book inside the conversation. An Agent CTA opens a page, so the scheduler handles everything after the click. See Connecting RevenueHero or Calendly to Your Agent for that setup.
Before you start
You need permission to edit the Marketing Agent.
Each rep who can receive meetings has connected their own Google Calendar or Outlook Calendar in Personal Settings, and set their Work Hours and time zone there. A rep who has not connected a calendar is never offered as a host.
Your CRM is connected with Read access switched on for the objects you want to route on. Company or Account, Contact, and Deal or Opportunity are the usual set. Salesforce, HubSpot, and Microsoft Dynamics 365 are supported.
If you plan to route through Chili Piper, connect it first. See Use Chili Piper Routing for Marketing Agent Meetings.
Decide the moment the agent should offer a meeting. Routing only runs after that moment.
What happens in a routed conversation?
The visitor reaches the trigger you defined. For example, they ask for a demo, or they have answered the qualifying questions and want to talk to someone.
Docket looks up the visitor. It finds their lead, contact or account in your CRM from the email they gave (see "How does Docket find the visitor's record in your CRM?") and reads the fields you have given Docket access to, such as owner, segment, region, or deal stage.
Docket applies your routing instruction. It uses what it knows: the CRM record, what the visitor said in this conversation, and what they told the agent in earlier conversations. The instruction is read top to bottom. The first matching condition determines the target: a person, a team, or a Chili Piper router.

Docket checks real availability. For a native target, it offers only times when that rep is free in their calendar and within their Work Hours, looking 14 days ahead and shown in the rep's time zone. For a Chili Piper target, the router returns the host and the times.
The visitor books in the conversation. The meeting lands on the rep's calendar with a working join link. Nothing opens in a new tab.
Your systems catch up. Docket writes the meeting and a timeline event to the CRM, and if you have alerts set up, the rep hears about it in Slack or Microsoft Teams with the conversation summary.
If a target has no availability, Docket moves to the next target in your instruction. Ending the instruction with a fallback means every visitor has somewhere to land.
How do you set up native routing?
Do this once for each agent that books meetings.
1. Open the Marketing Agent
In the left icon rail, hover to find Marketing Agent Configuration, then open the agent. The rail is a different length in every workspace, so go by the label.
2. Expand Agent CTAs
On the Agent tab, select the chevron on the left of the Agent CTAs row. The switch on the right turns the whole section on and off, so use the chevron to open it.

3. Open Meeting booking settings
On the Meeting booking card, select Configure. A panel called Configure Meeting CTA opens on the right.
4. Set when the agent offers a meeting
Under When to trigger this CTA, describe the moment in your own words. Be specific about the signal, not just the topic.

Recommended: Offer a meeting once the visitor has described their use case, confirmed they have a website with above 10,000 monthly visitors, and asks to see the product or speak with someone.
Avoid: Offer a meeting to interested visitors.
5. Set CRM Routing Rules
The first block in the Routing section is CRM Routing Rules for Docket. Use it to send a visitor straight to whoever owns their record in your CRM. You pick the owner from a menu instead of writing the rule out.
Select Add Rule, then choose an owner from the menu. The options are grouped by CRM. The last option in each group, Custom field…, lets you point at any field that identifies a person, not only the standard owner field. Add as many rules as you need: Docket reads them from top to bottom and uses the first one that applies.
If you would rather describe your whole routing in Agentic routing, leave this block empty.

6. Write the Agentic routing instruction
The second block, Agentic routing, is where most routing lives. Write it in plain language.
Type @ to bring up your people, teams, and any connected Chili Piper routers. Routers sit at the top of the list.
Type / to bring up CRM fields, such as /salesforce/account/OwnerId or /hubspot/company/Annual Revenue.
Pick names from the menu rather than typing them, so Docket can connect each one to the right person, team, or field.
Put the specific cases first and finish with a fallback.

Field names look different in each CRM. Salesforce uses its technical field names, such as /salesforce/account/OwnerId. HubSpot and Microsoft Dynamics use the friendly names you see in those products, such as /hubspot/company/Company owner. Some objects have hundreds of fields, so type a few letters after the slash to filter the list instead of scrolling it.
A simple instruction:
if /salesforce/account/OwnerId is set, route to that owner. for everything else use @Inbound TeamA segmented instruction:
if /hubspot/company/Annual Revenue is more than 100 mil usd, route to @Enterprise Team.
if /hubspot/company/Country/Region is not United States, route to @International Team.
for everything else use @Inbound Team
Mixing Docket and Chili Piper on one agent:
if /hubspot/company/Annual Revenue is more than 100 mil usd, route to @Enterprise Team. for everything else use @Your Chili Piper Router
7. Set Docket's Calendar Settings
Under Docket's Calendar Settings, set Calendar to Google Calendar or Outlook Calendar. One agent books on one calendar system, so a team split across both needs separate agents. Set Platform to the conferencing tool you use. Then review Meeting Title, Meeting Description, Duration, and Email Reminders. These settings apply to Docket Calendar bookings only. A Chili Piper booking takes its title, description, and duration from the Chili Piper meeting type.

8. Save the Meeting CTA
Select Save at the bottom of the panel.
How do the two routing blocks work together?
The Routing section has two blocks, and they run one after the other. CRM Routing Rules for Docket runs first: Docket reads your rules from top to bottom and uses the first one that applies. Agentic routing runs when no CRM rule applies. This is where you describe everything else in plain language.
You do not have to use both. If you describe your whole routing in Agentic routing, leave the CRM rules list empty. If your routing is only “send it to whoever owns the record”, the CRM rules list on its own is enough. Either way, finish with a fallback so every visitor has somewhere to land.
Which CRM owner fields can Docket route to?
Docket can only book a meeting with a CRM owner when it can work out which person the owner field points to.
CRM | Options in the menu | What works |
|---|---|---|
Salesforce | Lead Owner, Contact Owner, Account Owner, Opportunity Owner, Custom field… | Owner ID fields and owner email fields both work |
HubSpot | Contact Owner, Company Owner, Deal Owner, Custom field… | Owner ID fields and owner email fields both work |
Microsoft Dynamics | Lead Owner, Contact Owner, Account Owner, Opportunity Owner, Custom field… | Fields that hold an email address. Dynamics owner fields usually store an internal ID, so choose Custom field… and point at a field holding the owner’s email |
Marketo connects to Docket for syncing conversation data, but you cannot route a meeting to a Marketo owner.
When Docket cannot work out who the owner is, it skips that rule and moves on to the next one. The visitor sees no error and the conversation continues. Plan for this: on many records the owner field is empty, or holds an integration or support account rather than a person, so keep a fallback at the end of your routing.
How does Docket find the visitor's record in your CRM?
The match starts from the email address the visitor gives, so the agent collects it before it offers times. Docket then looks for the record in this order:
A lead or contact with that email address. If one exists, its owner is the owner Docket routes to.
If there is no lead or contact, the account (Salesforce) or company (HubSpot) whose website matches the visitor's email domain. The match is exact: a visitor from harness.com does not match an account whose website is harness.io, and slack-corp.com does not match slack.com. If several accounts share the domain, Docket uses the one updated most recently.
A visitor on a personal email address, such as gmail.com or outlook.com, is not matched to an account by domain. Their meeting is routed on your other rules and what they said in the conversation.
There is nothing to set up for this. The match runs on every booking, and on large CRMs it takes a moment, which is why the agent asks for the email before it shows the calendar.
How do you write routing instructions that hold up?
Routing pattern | Example instruction | What Docket reads |
|---|---|---|
Owner first | if /salesforce/account/OwnerId is set, route to that owner | The Account or Company record |
Segment | if /hubspot/company/Number of Employees is more than 2000, route to @Enterprise Team | A Company field |
Territory | if /salesforce/account/BillingCountry is United Kingdom, route to @EMEA Team | An Account field |
Open deal | if /salesforce/opportunity/OwnerId is set, route to that owner | The Opportunity or Deal record |
Existing customer | if /hubspot/company/Lifecycle Stage is customer, route to @Customer Success | A Company field |
CRM over the visitor | if /salesforce/account/AnnualRevenue is more than 1 billion, route to @Enterprise Team. if the visitor has more than 10 warehouses, route to @Enterprise Team. for everything else use @SMB Team | The Account record first, then the conversation |
Fallback | for everything else use @Inbound Team | Nothing, it always matches |
Because the first matching line wins, the order of your lines decides which source Docket trusts. Put a CRM condition above the lines that use the visitor's answers when the CRM knows more than the visitor does. A single-site contact at an enterprise account will say they have one location, but the account record says the company is enterprise, and the higher line wins.
Three habits keep routing predictable:
One condition per line.
Route to teams for volume, people for exceptions. A team gives the visitor more available times because any connected rep on it can take the meeting.
Always end with a fallback. Without one, a visitor who matches nothing has no route.
How does Docket decide which times to offer?
A time is offered only when the routed rep is free in their connected calendar and the time falls inside their personal Work Hours. A rep who has not set Work Hours is treated as available around the clock, so setting Work Hours is what keeps meetings inside sensible hours. Docket looks 14 days ahead and shows times in the rep's own time zone.
Anything the rep books directly in their calendar drops out of the offered times, so the times Docket offers and the rep's own calendar never drift apart. If the rep moves or cancels the meeting in their calendar, the Docket booking follows within 15 minutes, reminder emails move with it, and the CRM meeting record updates to match.
Note that the agent's own Work Hours setting, under Setup and Manage, controls Agent-to-Human Handoff and when the agent appears. It does not limit meeting times. Meeting times are based on each rep's personal Work Hours.
When should you route a meeting instead of handing off?
Intelligent Routing books a future meeting with the right rep. Agent-to-Human Handoff brings a teammate into the conversation that is happening right now. They are separate settings and most teams use both.
Intelligent Routing | Agent-to-Human Handoff | |
|---|---|---|
What the visitor gets | A booked meeting at a chosen time | A human joining or following up now |
Where it is configured | Agent CTAs, Meeting booking | Setup and Manage, Agent-to-Human Handoff |
When it works | Whenever a routed rep has availability | Only inside the agent's Work Hours |
Where the rep is notified | Calendar invite, CRM, optional Slack or Teams alert | Slack or Teams channel |
See Configuring Agent-to-Human Handoff.
How do you test routing in Preview?
Select Preview at the top right of the agent page.
Start a conversation that matches your trigger and describe a visitor who should hit a specific rule, for example, a company you know has an owner on its record in your CRM.
Give a real test email address when the agent asks.
Check that the rep or team you expected was chosen, the times match that rep's calendar and Work Hours, and the meeting lands on the right calendar with a join link.
Repeat with a visitor who should fall through to the fallback.
Block an hour in the rep's calendar and confirm that time stops being offered.
Troubleshooting
What you see | What it means | What to do |
|---|---|---|
No rep is offered | Usually no rule matched, so there was nobody to check availability for. Less often, the rep who matched had no free time | Check that your routing covers this visitor and ends with a fallback. Then check that the routed reps have connected their calendars and set Work Hours |
The wrong rep is chosen | An earlier line in the instruction matched first | Reorder the instruction so the specific case comes before the general one |
A CRM field is not in the / menu | Read access for that object is off, or the field has not synced yet | Turn on Read for that object in Settings, then Integrations, and check that Read is also on for this agent under Analysis and Actions. CRM data refreshes about once an hour |
A person or team is not in the @ menu | The list needs a refresh | Close and reopen Configure. The list refreshes when the panel opens |
Times are offered at odd hours | The rep has no Work Hours set, or the wrong time zone | Have the rep set Work Hours and time zone in Personal Settings |
Meeting title or duration is not on the invite | The booking went through Chili Piper | Set those on the Chili Piper meeting type. Docket's Calendar Settings apply to Docket Calendar only |
The meeting is not in the CRM | Write access for Meetings or Events is off | Turn on Write for that object in the CRM integration settings |
The meeting went to the fallback instead of the record owner | Docket could not match that owner to a rep it can book with. The owner may have left, may be a queue or integration account, or may not have a connected calendar. Or the visitor had no lead or contact and their email domain does not exactly match the account's website, so Docket never reached that owner | Check that the owner on the record is a current rep with a connected calendar. Docket skips the rule and moves on rather than showing the visitor an error. If the visitor should have matched by domain, check the website on the account record is the domain their email uses, not a variant |
A rule that checks a picklist value never matches | The rule uses the label shown in your CRM, but the record stores a different internal value | Write the stored value in the rule. For example, use BAD_TIMING rather than Bad timing |
FAQs
Does Docket replace our routing tool?
It can, or it can work alongside the tool you already have. Native routing reads your CRM and books on your reps' calendars without another tool. If you already run Chili Piper, name your router in the same instruction and Chili Piper keeps deciding who gets the meeting.
Can we route on what the visitor said, not just the CRM?
Yes. The agent reads your Agentic routing instruction, so a line such as if the visitor asks about the Demo Agent, route to @Product Specialists works alongside CRM conditions.
What if the visitor is not in our CRM?
If there is no lead or contact for the visitor's email, Docket tries to match their email domain to an account. If nothing matches, CRM conditions that need a record will not match either, and Docket moves down the instruction. That is why the instruction should end with a fallback.
Does a returning visitor have to answer the routing questions again?
No. When a visitor comes back and asks to book, Docket routes on what they told the agent in earlier conversations as well as this one, so they are not sent to the fallback for skipping answers they already gave. If they say something different this time, the live conversation wins. This works for a visitor on the same browser; on a new device they start fresh until they identify themselves.
Can one agent route to Google Calendar and Outlook Calendar?
No. One agent books on one calendar system. If your team is split, create one agent for each.
Can the visitor reschedule from the conversation?
Not yet. Reps reschedule in their own calendar and the Docket booking follows within 15 minutes.
Do routed meetings show up in the CRM?
Yes. Docket writes the meeting, a timeline event with the conversation summary, and any mapped analysis fields to Salesforce, HubSpot, or Dynamics 365, so the rep walks in knowing what the visitor said.
How often does Docket read the CRM?
Docket refreshes CRM data about once an hour, so a change made in your CRM can take up to an hour to affect routing. Changes you make inside Docket apply immediately. Docket pushes updates to the CRM almost in real time.
Can we route to someone the menu does not list?
Yes. Choose Custom field… and point at any CRM field that identifies a person, such as a custom AE or BDR field. Docket treats it the same way as a standard owner field.
What happens if the CRM owner has left the company?
Docket skips that rule and moves to the next one, so the visitor still gets a meeting. The visitor sees nothing unusual.