Implementation
Roll out Cartoply to your field team
Take one organization from empty account to reps receiving territory-routed bookings, starting with a pilot crew.
Who this is for
The person who will administer Cartoply for the team. You need admin access in Cartoply, and someone who can add a link to your website when you go live.
Time
About 90 minutes of setup, then a 2-week pilot before you expand
You will end up with
A pilot group of reps is taking real bookings through one org booking link. Each booking is routed to a rep who covers the guest's address, lands on that rep's own calendar, and respects their working hours.
Before you start
- A list of your pilot reps and the email address each one will sign in with
An invite can only be accepted by an account with the matching email. If a rep accepts from a personal address you'll get "This invite was sent to a different email address" and have to reissue it. - A clear picture of who covers where — ZIP codes, counties, cities, a radius around a depot, or a shape you'll draw
Coverage is the thing that makes routing work, and it is the single most common rollout failure. A rep with no territory assigned is skipped entirely on territory-matched bookings — they are not treated as available everywhere. - Each pilot rep's real working hours, including any weekday they don't work
Every new account starts with Mon-Fri 9:00-17:00 already filled in, so a rep who never opens Availability looks like a 9-to-5 weekday worker whether or not they are. Have each rep save their real hours once - that records an answer for all seven days and takes the org schedule out of the picture for them. - Google Workspace or Microsoft 365 accounts for your reps, if you want existing meetings to block slots
Without a connected calendar, Cartoply only knows about bookings made inside Cartoply. A rep with an external calendar full of jobs will still look wide open. Reps connect their own from their Connections page. - A credit card, if your 14-day trial will end before the pilot does
The trial is per user and starts when you sign up, not when the pilot starts. Subscriptions are billed per organization.
Phase 1 — Plan the pilot
Rollouts fail socially more often than technically. Decide these four things before you touch the product — they take ten minutes now and save a reversal later.
- Pick 3–5 reps with adjacent, non-overlapping territories.
Adjacent coverage lets you test that routing sends the right lead to the right person. Non-overlapping keeps the first test unambiguous — with overlaps, several reps match one address and you can't tell a routing bug from correct behavior.
How you know it worked: You can name each pilot rep and describe their coverage in one sentence — "Dana takes Denton County" — without hedging. - Pick one service to put behind the booking link.
One event type, one real service your team already sells. Resist launching your whole catalog: every extra event type multiplies the routing rules you have to verify before go-live.
How you know it worked: You've written down the service name, how long the appointment actually runs, and whether the rep travels to the customer. - Decide what success means, numerically.
Pick something you can count at the end of two weeks — bookings taken, no-show rate, or hours of scheduling admin saved. "The team likes it" is not a result you can act on when you're deciding whether to buy seats for everyone.
How you know it worked: You have a number and a baseline to compare it against. - Tell the pilot reps what's happening and what you need from them.
Two things are required of each rep: set their weekly hours, and connect their calendar. Neither takes more than five minutes, but a rep who skips both will get bookings on top of existing jobs and conclude the product is broken.
How you know it worked: Each pilot rep has confirmed they'll do both, and knows roughly when the invite email is coming.Tip
Send this before the invites, not with them. An invite that arrives unexplained tends to sit unopened, and invites expire after 7 days.
Phase 2 — Stand up the organization
The organization is the container for everything else — the booking page, the event types, the territories, and the subscription.
- Sign up, then work through the setup wizard.
The wizard runs Availability → Organization → Invite Members → Territory → Integrations, and you can't reach the dashboard until you finish or skip through it. Set your own availability properly at the first step; you can skip the rest and do them deliberately below.
How you know it worked: You land on the dashboard and see your booking link at the top. - Create the organization with the name your customers will recognize.
The org name becomes your booking URL, so "Acme Home Services" gives you www.cartoply.com/org/acme-home-services. If that slug is taken, Cartoply appends a number starting at 2. Renaming later re-slugs the URL and Cartoply does not redirect the old one — anything you've already shared breaks.
How you know it worked: The org appears in the workspace switcher at the top of the sidebar, and opening it shows the Members page.Watch out
Settle the name now. This is the one decision in the rollout that's expensive to change after you've printed it on a van or a yard sign.
- Add your pilot reps.
Three paths, all on the Members page. Send invite emails one at a time under Invite member; upload a spreadsheet with Bulk invite (.csv, .xlsx or .xls, up to 2 MB and 500 rows, and it needs an email column); or paste addresses into Add members directly, which attaches them immediately with no invite to click - brand-new addresses get an email to set a password, and anyone who already has a Cartoply account just gets a heads-up. For a pilot of five, use Add members directly — it removes the acceptance step, which is where invites stall.
How you know it worked: Every pilot rep appears in the members table with the role member. Anyone you invited by email instead sits in the Pending invites card above the table.Note
Each member is a billable seat, admins included. Nothing is charged while you're still on the trial; once you subscribe, later membership changes are prorated and invoiced immediately rather than at renewal.
- Set the org schedule as a safety net.
Schedule in the org sidebar sets one time window per weekday in the org's timezone. It fills in weekdays a rep has never configured - once a rep saves their own hours, theirs apply and days they switched off stay off. Nothing is active until you press Save schedule; until then the page just shows a suggested Mon-Fri 9-5. Set it to hours you'd be comfortable with a brand-new rep taking work in, or skip it entirely if you'd rather every rep set their own.
How you know it worked: The Schedule page shows your business hours saved, without the "No organization schedule set yet" banner. - Have each pilot rep set their availability and connect their calendar.
Both live in the rep's personal workspace: Availability for weekly hours and blocked dates, Connections to connect Google Calendar or Outlook Calendar. The Connections page holds calendar connections and Zapier - payments and Jobber are in the org workspace, which only admins can open - and reps can switch or disconnect a calendar there whenever they need to.
How you know it worked: Ask one rep to screenshot their Availability page showing the right days, and their Connections page showing Connected next to a calendar. To confirm the sync is really live, book a test appointment over a time you know is busy on their external calendar - the slot shouldn't be offered.Tip
Have every rep press Save hours once even if the Mon-Fri 9-5 default is already right. Saving records an answer for all seven days, including the ones they don't work, so the org schedule stops applying to them.
Phase 3 — Define who covers where
This phase is where rollouts break. Everything here is under Territory Map in the org sidebar - the page itself is headed Territory Library.
- If your coverage is already mapped somewhere, import it instead of redrawing.
Most field teams already keep service areas in Google My Maps. Export it there — left panel, Menu, Export to KML/KMZ, choosing the whole map rather than one layer — then click Import map on the Territory Library and drop the file in. Every area previews on the map before anything is saved, so you can untick and rename first. This turns the longest step of the rollout into a few minutes. If you have nothing to import, skip to the next step. Full detail in Territory management.
How you know it worked: The imported zones appear in the left-hand list as Drawn area, and the map jumps to fit them. They arrive unassigned — the next step still applies. - Create a territory for each pilot rep's patch.
Click New territory, name it, and pick a Type: Drawn area, Radius, Zip Codes, Counties / Parishes, Cities, States or Countries. Radius wants a mile figure and a center you set by address or by clicking the map. Drawn area gives you rectangle and polygon tools at the top-right of the map, and once a shape is down you can drag any corner to reshape it rather than redrawing from scratch. The list types give you a search box and add items as removable tags.
How you know it worked: Each territory appears in the left-hand list and draws on the map. Colors come from a fixed palette assigned by list position, so they repeat past ten territories and shift if you delete one - treat them as a visual aid, not an identifier. To tell two same-colored zones apart, hover a card in the list and that zone brightens while the others fade. - Assign each territory to the rep or reps who cover it.
Click Assign on a territory card, tick the reps, then click Done — changes save as you tick. You can also assign a territory to a group, and every member of that group inherits the coverage. A rep's effective coverage is the union of everything that reaches them: direct assignments, group assignments, and their own personal territories.
How you know it worked: Every territory card shows a non-zero rep count — "4 reps", or "2 reps, 1 group".Watch out
This is the failure that eats rollouts. A rep with zero territories is excluded from territory-matched bookings entirely — not treated as available everywhere. Miss this and every booking attempt returns "No reps are available in your area for this service." Check the count on every card before you move on.
- If a whole crew shares a patch, create a group instead of ticking people individually.
Groups in the org sidebar are reusable bundles of members. Assign the territory to the group once and every current and future member covers it — which means onboarding rep number six is one checkbox, not a tour of your whole territory library.
How you know it worked: The group appears on the Groups page with the right members, and the territory card shows it in the count.
Phase 4 — Build and test the booking page
One event type, then a real booking through it before anyone outside the building sees the link.
- Create the org event type for your pilot service.
Event Types in the org sidebar, then New event type. Set Name, Slug and Duration — one-click presets cover 15 to 120 minutes, and the More… dropdown goes much longer for site visits and multi-hour jobs. Under Location choose Guest provides, which reveals the Match reps by territory checkbox. Tick it.
How you know it worked: The event type appears in the list showing your duration, the slug, and "Guest provides address" beneath the name.Note
Match reps by territory is only available with Guest provides. With any other location setting there's no address to match against, so the option is hidden and routing falls back to round robin or letting the guest pick.
- Choose how a rep gets assigned.
Under Team routing, Booking mode is Direct (the guest sees the matching reps and picks one) or Round Robin (Cartoply assigns among reps who are actually free, choosing whoever was assigned least recently). Separately, Slot display is Calendar or Instant. Instant skips the calendar and shows one merged list of the soonest times across your team — and it assigns the rep itself, so it overrides Booking mode, which greys out.
How you know it worked: The event type row reflects your choice — "Round robin" appears under the name when you've picked it. - Add the two or three questions your reps actually need answered.
Under Intake & qualification, Booking questions takes up to 10, each with a label, a type (Short text, Long text, Dropdown, Checkbox) and a Required flag. A Dropdown needs at least one option, up to 20, one per line. Ask for what changes how the rep shows up - not for everything you'd like to know.
How you know it worked: Open your booking link in a private window; the questions appear on the form below name, email and phone.Watch out
A question with an empty label, or a Dropdown with no options, is silently dropped when you save - no error, it just isn't there afterwards. Re-open the event type after saving and count your questions.
- Set scheduling limits so the calendar reflects reality.
Under Scheduling limits & pricing: Buffer before and Buffer after keep travel time clear on both sides of a booking; Minimum notice stops a guest booking in twenty minutes; Max bookings per day caps a rep's load; Booking window defaults to 60 days out. Buffers are the one people skip and regret — without them a rep gets back-to-back jobs across town.
How you know it worked: Re-open the booking page. If you set a 24-hour minimum notice, today and tomorrow morning should no longer be offered. - Make a real test booking, start to finish.
Open the org booking link in a private window, enter an address you know falls inside one specific rep's territory, and book. Use a real email you can check. Then cancel it from the link in the confirmation email so you're not leaving debris on a rep's calendar.
How you know it worked: Four things: the guest gets a confirmation email; the booking appears on the org Bookings page with the expected rep's name on it; the event appears on that rep's Google or Outlook calendar; and the cancellation link removes it from both.Tip
Test a second address that falls outside every territory. You should see "No reps are available in your area for this service." That confirms coverage gaps fail closed rather than misrouting to whoever happens to be free.
Phase 5 — Go live, measure, and expand
Two weeks of real traffic through the pilot group, then a decision backed by the number you picked in phase 1.
- Put the booking link where leads already are.
Copy link on the event type gives you the direct URL; Embed gives you a popup widget or an inline iframe to paste into your site or CMS. Start with one placement you can attribute — a single 'Book a visit' button — rather than replacing every contact route at once.
How you know it worked: The link opens the booking page from a phone, not just your desktop. Most field-service guests book on mobile. - Walk the reps through what they'll see.
Fifteen minutes, once, covering three things: bookings appear on their normal calendar so they don't need to live in Cartoply; blocking a day means clicking the date on their Availability page; and a guest can cancel or reschedule themselves up to the cutoff, so a moved appointment isn't a mistake.
How you know it worked: Ask each rep to block one date on their own Availability page while you're on the call. It's the one action they'll need most and the least obvious. - Watch the org Bookings page through the pilot.
Filter by group, and switch to the Payments tab if you're charging. When a rep or a customer calls about a specific job, search by the guest's name, phone or address to pull it up. Mark no-shows as they happen - that's what makes the no-show number real at the end of two weeks rather than a guess. See Managing bookings.
How you know it worked: Bookings are landing on more than one rep. If they're all going to the same person, coverage is lopsided or the others have gaps in their availability. - Compare against your baseline, then expand a crew at a time.
Add the next group of reps and their territories the same way. Territories already assigned to a group pick up new members automatically, so expansion is mostly inviting people — and buying the seats to match.
How you know it worked: New reps start appearing as the assigned rep on the Bookings page within their first few days.
Prove it works end to end
Run these before you share the link outside the building.
| Check | What you should see |
|---|---|
| Open the org booking link in a private window and enter an address inside a known rep's territory | That rep's availability appears — by name if Booking mode is Direct, or as merged times if Slot display is Instant |
| Enter an address well outside every territory you've drawn | "No reps are available in your area for this service." — coverage gaps fail closed |
| Every territory card on the Territory Map page | A non-zero rep or group count on each; a card reading "0 reps" routes nothing |
| The assigned rep's Google or Outlook calendar after a test booking | An event titled "{event type name} with {guest name}", at the booked time, with the guest as an attendee |
| A rep's connected calendar during a time they're busy elsewhere | That slot is not offered on the booking page — this is the proof the calendar connection is doing its job |
| The org Bookings page after a few days of pilot traffic | Bookings spread across several reps, each showing the rep's name and the guest's address |
What happens after setup
- Billing is per organization and per seat, and a seat is every member of the org including admins. Nothing is charged during the trial; once you subscribe, adding or removing people resyncs the seat count and invoices the change immediately, prorated, rather than deferring to renewal.
- Your free trial is 14 days and belongs to the user, not the org — it starts when you sign up, not when the pilot starts. When it lapses without a subscription the product does not shut off: what you lose is the ability to create new territories, and personal event types are capped at one, with extras marked Locked and hidden from your public page. Existing org bookings and booking pages keep working.
- Email invites expire after 7 days. Resending from the Pending invites card issues a fresh 7 days. An invite can only be accepted by an account whose email matches the address it was sent to.
- Reps set their own hours, and a weekday they switch off stays off. The org schedule only fills in weekdays a rep has never configured at all, so it stops applying to a rep once they've saved their availability. A rep's blocked dates are absolute either way.
- Coverage is a union: a rep is reachable through territories assigned to them directly, through any group they belong to, and through their own personal territories. Removing one route doesn't necessarily remove their coverage.
- Guests can cancel and reschedule themselves using unguessable one-time links in their confirmation email, up to the event type's cancellation cutoff (24 hours by default). Cancelling deletes the synced calendar event and rescheduling moves it. The notification goes to the rep assigned to the booking, not to you as admin - watch the Bookings page if you need to see changes across the team.
- Renaming the organization re-slugs its booking URL and the old URL is not redirected. Any link you've shared — embeds, email signatures, printed QR codes — stops working.
When it doesn't work
Guests see "No reps are available in your area for this service." for addresses you know you cover
Why: The reps covering that area have no territory assigned. A rep with zero territories is excluded from territory-matched event types rather than treated as available everywhere.
Fix: Open Territory Map in the org sidebar and check the rep count on each territory card. Click Assign on any card reading "0 reps" and tick the reps or groups that cover it.
"No reps are available for this time slot. Please choose a different time."
Why: Reps cover the address but none is free then - the slot is already taken, a buffer from a neighbouring booking overlaps it, their connected calendar shows them busy, or the event type's minimum notice or booking window rules the time out.
Fix: Widen the date range you're testing to confirm it's this time and not all times. Then check the rep's connected calendar for a conflicting event, and check whether the event type's buffers are wider than you intended - buffers apply on both sides of every existing booking, not just the new one.
A rep is getting bookings on a weekday they told you they don't work
Why: They haven't saved their availability, so that weekday is still unconfigured and your org schedule is filling it in. Older orgs may have picked up a default Mon-Fri 9:00-17:00 schedule without anyone deliberately setting one.
Fix: Have the rep open Availability, switch off the days they don't work, and press Save hours. Saving records an answer for every day of the week, so the org schedule no longer applies to them and switched-off days stay off.
"Your address is required for this event"
Why: The event type has Match reps by territory on, but the booking request arrived without a usable address — usually a guest typing an address without picking one of the autocomplete suggestions.
Fix: Nothing to change in setup. Guests must select a suggestion; the page prompts "Please select an address from the suggestions." If it recurs for a specific area, the geocoder may not recognise it — test the address yourself and consider a broader territory type.
"Could not locate that address. Try being more specific."
Why: The address couldn't be geocoded, so it can't be matched to a territory.
Fix: Ask the guest for a full street address including city and postal code. Rural and new-build addresses are the common offenders.
A rep accepted their invite and got "This invite was sent to a different email address"
Why: They were signed in to, or created, an account under a different address than the one you invited.
Fix: Cancel the pending invite and reissue it to the address they actually use — or skip the acceptance step entirely with Add members directly.
"You already have an event type using this URL slug. Slugs must be unique across your personal event types and the organizations you administer — pick a different name or slug."
Why: Slugs are unique across your personal event types and every org you administer, not just within one org.
Fix: Edit the Slug field to something distinct — prefix it with the org, like acme-in-home-estimate.
Bulk invite fails with "Missing required "email" column." or "Maximum 500 rows per upload."
Why: The spreadsheet has no column literally named email, or exceeds the row cap. The file cap is 2 MB and .csv, .xlsx and .xls are accepted.
Fix: Use the Download template link inside the Bulk invite modal and match its headers: email, firstName, lastName. Header casing doesn't matter. Split anything over 500 rows.
"upgrade_required" when creating a territory, or "This feature requires an active subscription or trial."
Why: The trial has lapsed and the org has no active subscription. Territory creation is one of the few actions actually gated.
Fix: Subscribe from the Billing page in your dashboard, choosing Monthly or Annual. Existing territories and bookings are unaffected in the meantime.
A rep's existing jobs aren't blocking Cartoply slots
Why: Their calendar isn't connected - or, on Google, it's connected but the calendar their jobs live on isn't ticked.
Fix: Confirm the provider shows Connected on their Connections page. For Google, expand the picker beneath it - it reads "Checking X of Y calendars" - and tick the calendar their jobs are actually on. Outlook has no sub-calendar picker; it reads the account's default calendar.
All bookings are landing on one rep
Why: Usually lopsided coverage - one rep's territory overlaps the others - or the other reps have no territory at all, which makes them invisible on territory-matched event types.
Fix: Check the map for overlapping shapes, then confirm every rep has a territory and saved hours. Round robin and instant booking only choose among reps who are genuinely free at that moment.
Where to go next
- Connect Jobber — Push every org booking into Jobber as a client, property, request and scheduled assessment, assigned to the matching Jobber user.
- Conversion tracking & attribution — Fire booking conversions into your own GA4, GTM and Meta Pixel, and keep UTM and ad-click data on every booking.
- Pre-qualification and specializations — Hold low-intent enquiries for approval, and route specific answers to the reps who handle that work.
- Dispatch & route optimization — A per-tech add-on for recurring service work: service plans, tech seats, and road-aware route optimization. Worth a look once scheduling is settled.
- Charge for bookings — Connect Stripe or PayPal and put a price on an org event type. Cards are authorized before the slot is secured, then captured.