In short

How do you route Calendly bookings by zip code to multiple estimators?

Make one booking event per territory that takes turns among that territory's estimators. Add a required zip code question to a Calendly routing form, and send each territory's list of zip codes to its own event. Zip codes on no list go to a fallback, such as a call with the office or a kind note that you do not work there.

On this page
  1. Who is this setup for?
  2. Step 1: How do you write down your territories?
  3. Step 2: How do you group estimators into pools?
  4. Step 3: How do you make one booking event per pool?
  5. Step 4: How do you add the zip code question to the routing form?
  6. Step 5: How do you write one rule per territory?
  7. Step 6: What should happen to zip codes you do not cover?
  8. What does a full setup look like?
  9. What are the common mistakes?
  10. When is this not worth doing?
  11. How do you know it is working?

Routing by zip code means sending each inquiry to the estimators who work where the job is. These six steps work for any service business with more than one territory and more than one estimator in at least one of them.

Who is this setup for?

It is for a business that sends people out to price jobs, such as a roofer, a plumber, a remodeler, or a landscaper. It fits when three things are true:

  1. You cover more than one area, and different people work each area.
  2. At least one area has two or more estimators who can take the same visit.
  3. You want visitors to book the visit themselves, without a phone call first.

If one person does every estimate, you do not need a pool. A single booking link and a zip code question are enough. If every job needs a phone call before anyone drives out, read "When is this not worth doing?" first.

The steps use Calendly's names for things. If you use another scheduling tool, check first that it can show different booking pages based on an answer.

Step 1: How do you write down your territories?

Write each territory as a plain list of five-digit zip codes, not town names. A town name can be spelled several ways, and one town can have more than one zip code. A zip code is the same every time someone types it.

Give each territory a short name your team already uses, such as "North" or "Lakeside." Then check two things:

  1. No zip code is in two lists. If one is, decide which territory owns it.
  2. Every zip code you serve is in a list. A zip code you forgot falls to your fallback, and that visitor may be told you do not work there.

Keep the lists in one shared place, such as a spreadsheet. You will paste from it in step 4. Update it every time a territory changes.

Step 2: How do you group estimators into pools?

A pool is the group of estimators who can take any visit in one territory. Make one pool per territory.

  1. List who estimates in each territory.
  2. Put each person in every pool they can drive to. One estimator can be in two pools.
  3. Connect each person's work calendar to the scheduling tool. A day off that is not on the calendar will look open.

Then decide how the pool shares the work. Calendly's round robin assigns each meeting by looking at the availability of every person on the team. Check Calendly's help center for whether it can share visits evenly or offer whoever is free soonest. Sharing evenly is fairer to your team. Soonest-free gets the visitor an earlier time. Pick the one that matters more to you.

Step 3: How do you make one booking event per pool?

Make one round-robin event for each pool. Check on Calendly's own site which plan includes round-robin events and routing forms. Set three things on each:

  1. The territory in its name, such as "Estimate visit, North."
  2. How long the visit takes, plus travel. If a visit takes 45 minutes and the drive to the next job takes 30, leave a 30-minute gap after each visit.
  3. The people in the pool, from step 2.

If your fallback is a booking, make one more event for it, such as "15-minute call with the office." It catches visitors whose zip code is on no list but who may still be a job you want.

Step 4: How do you add the zip code question to the routing form?

In Calendly, a routing form asks questions before it shows a booking page, and its rules decide which page to show. Add one required question for the zip code.

Ask for the zip code of the job, for example: "What is the zip code where the job is?" A landlord may live far from the house that needs work.

Check how the form compares answers before you write rules. Calendly's help center says only radio button and dropdown answers trigger routing logic, so a zip code typed into a text box cannot choose the page. Make the zip code question a dropdown, with each zip code you serve as an answer. Add one last answer, such as "My zip code is not listed," for everyone else.

In Qualiform, Home services and trades is one of the templates you can start from, and it asks you up to three things only you know. A form books from its own hours or from your own scheduling link, such as a Calendly page, and the visitor's answers and score are not passed to that link.

Step 5: How do you write one rule per territory?

Each rule reads the zip code answer and sends the visitor to one pool's event. Write the rules in this order:

  1. One rule per territory, sending that territory's zip codes to its event, such as Estimate visit, North. Use the list from step 1, and check Calendly's help center for how one rule can match several answers.
  2. One rule for each shared border area, if you made a pool for one.
  3. The fallback last.

Check Calendly's help center for the order its rules are checked in. If the first match wins, a zip code in two lists always goes to the first territory. The check in step 1 prevents this.

You can also ask the type of job and use it in a rule. For example, a roof replacement in North goes to the North pool, and a gutter repair anywhere goes to a call with the office. Check Calendly's help center first for whether one rule can use more than one answer. Start simple. Every extra condition is one more rule to test.

Step 6: What should happen to zip codes you do not cover?

Some visitors will always be in a zip code that is on no list, so every routing form needs a fallback. Pick one:

Fallback When it fits
A short call with the office You sometimes take jobs just outside your area
A kind message, with no booking You never travel outside your lists
A general estimate event You are still building your territory lists

If the fallback is a message, say plainly that you do not work in their area. Then point them somewhere useful, such as a phone number for an urgent job. Calendly's routing has a fallback route that catches everyone no other route matches. Check its help center for whether that route can end with a message instead of a booking page.

Do not send unmatched zip codes to any pool at random. An estimator who drives an hour to a job outside the area loses hours, and the visitor is told no in person instead of on the page.

What does a full setup look like?

This is a made-up example for a plumbing company with three territories. The zip codes and pools are invented.

Territory Zip codes (example) Estimator pool Event
North 60640, 60645, 60659, 60660 Estimators 1 and 2 Estimate visit, North
Central 60613, 60614, 60657 Estimators 2, 3, and 4 Estimate visit, Central
South 60615, 60637, 60653 Estimators 4 and 5 Estimate visit, South
Anything else Any zip code on no list Office 15-minute call with the office

Estimators 2 and 4 are each in two pools. A visit booked for one of them in one pool should show as busy in the other, as long as their calendar is connected, because Calendly adds each booking to the connected calendar and checks that calendar for busy events.

A visitor who picks 60657 sees Central's booking page, with times from Estimators 2, 3, and 4. A visitor who picks "My zip code is not listed" matches no territory and is offered a call with the office.

What are the common mistakes?

  1. Routing on town names. People type towns many ways. Use zip codes.
  2. No fallback. A zip code on no list has nowhere to go.
  3. One zip code in two lists. The second territory never gets it.
  4. No travel time. Two estimates back to back in different neighborhoods cannot both start on time.
  5. Old pools. When an estimator leaves or changes area, the pool keeps offering their times until someone removes them.
  6. Never testing the border. Zip codes between two territories are where routing goes wrong first.

When is this not worth doing?

Some businesses are better off without zip code routing:

  • One estimator. A pool of one is just a booking link. Ask for the zip code, but skip the territories.
  • Few inquiries. With a handful a week, the office can read and book each one by hand.
  • Jobs that need a call first. A burst pipe or a roof leak should go to a phone number, not a booking page three days out.
  • Fit that depends on the job, not the place. Routing on place alone sends good fits and poor fits to the same pool. Score the job too. The guide to lead routing rules for a small service business covers that.

A plain form with a phone number can also be the better choice, as when a plain form is better than a chatbot explains.

How do you know it is working?

Test it yourself before anyone else does. Fill in the routing form once for every territory, using a real zip code from each list. Then try once with the "My zip code is not listed" answer, and once with a zip code on a border. Each time, check that the right booking page appears and that its times belong to the right people.

After it is live, read one month of booked estimates beside your territory lists. Look for three things:

  1. An estimator driving outside their area.
  2. A pool whose soonest time keeps slipping past a week.
  3. Visitors who landed on the fallback but are in a zip code you serve.

Each one points to a list, a pool, or a rule to fix. To compare Calendly's routing with scoring each inquiry first, see Qualiform vs Calendly. For the questions a trade's form can ask beyond the zip code, see what a contractor's quote request form should ask.

Common questions

How many estimators should be in one pool?

Enough that a new inquiry can usually book a visit within a few days. Add a person when the soonest open time keeps slipping past a week.

Should every inquiry be able to book an estimate?

No. An estimate visit costs an estimator time and travel, so it should go to jobs you can do in places you cover. Everyone else still deserves a quick, polite answer, such as a phone number or a note that you do not work in their area.

Should the zip code be the first question?

Usually, yes. When the zip code decides everything else, asking it first means a visitor outside your area learns that before answering anything more.