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?

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

  6. 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 Team

A 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:

  1. A lead or contact with that email address. If one exists, its owner is the owner Docket routes to.

  2. 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.

  3. 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?

  1. Select Preview at the top right of the agent page.

  2. 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.

  3. Give a real test email address when the agent asks.

  4. 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.

  5. Repeat with a visitor who should fall through to the fallback.

  6. 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.