Canopy by Copp Oak
Canopy Documentation
A plain-language guide for businesses that receive bookings through Canopy.
1. What Canopy does
More and more people ask an AI assistant, such as ChatGPT, Claude, Muse, or Grok, to find and book a local service for them. Canopy is the booking channel that lets those assistants request an appointment or a callback from your business, and then tells the customer exactly what happened.
- Customers ask in their own words. "Book an AC tune-up next Tuesday morning" becomes a request to your business, with the customer's name, email, and job details.
- You stay in control. You decide whether customers can book open times instantly, request preferred times for you to approve, or simply ask for a callback.
- Appointments land in your own system. Confirmed bookings are written into the scheduling system or CRM you already use, so there is no second calendar to watch.
- Nobody gets a false "you're booked." Canopy reports an appointment as Booked only after it has written the appointment into your system and checked that it was saved.
Canopy does not choose which business an assistant contacts, and it does not rank or recommend businesses. The customer's assistant makes that choice. During the pilot, Canopy is free for your business and always free for customers.
2. Setting up your business
Setup happens in the Canopy Operator dashboard:
- Sign in with your business Google or Microsoft account. Canopy requires multi-factor authentication for every Operator account.
- Add your business details: business name, trade, business email and phone, website, and each location with its address and time zone.
- List your services and set your availability rules, such as working hours and which services can be booked at which locations.
- Choose a booking mode (see Section 4).
- Connect your calendar (see Section 3).
Keep this information current. Customers and their assistants see what you set here, and Canopy relies on it to offer accurate times.
3. Connecting your calendar
Canopy works with the scheduling system or CRM where your calendar already lives. Today it works with Jobber, Housecall Pro, GoHighLevel, HubSpot, Salesforce, Zoho, and Google Sheets. It also connects to Google Calendar (booking verification in progress).
- In the Operator dashboard, choose your system and select connect.
- For Jobber and GoHighLevel, you are sent to that system's own sign-in page. Sign in and approve Canopy's access. Canopy never sees your password for that system. For Housecall Pro, you create an API key in Housecall Pro and paste it into the dashboard.
- Once connected, you are returned to the dashboard and the connection shows as active.
Once connected, Canopy can:
- read your availability, so it offers only times that are actually open;
- create appointments that customers confirm through Canopy, with the customer's details attached;
- move appointments that customers reschedule through Canopy;
- read those appointments back to confirm they were saved.
Canopy only touches appointments that came through Canopy. The access your system grants is stored encrypted, in a separate secure service, and used only for these purposes. You can disconnect at any time from the dashboard. Appointments already written to your system stay there.
Systems sometimes fail or limit access. If Canopy cannot write an appointment, it reports the booking as failed and emails both you and the customer, so nobody assumes a booking exists when it doesn't. It is still good practice to check your own calendar.
4. Booking modes
Instant booking (hold and confirm)
- The customer's assistant picks an open time from your availability.
- Canopy holds that time for 15 minutes and emails the customer a 6-digit code and a confirmation link. The code expires after 10 minutes.
- The customer confirms from their email. Only the customer can confirm. An AI assistant cannot confirm on their behalf.
- Canopy writes the appointment into your system, checks it was saved, and reports it as Booked.
You receive nothing until the customer confirms. If they don't confirm within 15 minutes, the hold expires and the time is released. If someone receives a Canopy email for a request they didn't make, they can use the "This wasn't me" link to release the hold.
Preferred times (request and approve)
- The customer suggests one or more times that work for them.
- The request comes to you. You can approve one of the times, propose a different time, or decline.
- If you approve or propose a time, Canopy emails the customer a code and link to confirm it.
- Once the customer confirms, Canopy writes the appointment into your system and reports it as Booked.
Requests you don't answer expire after 48 hours.
Callback
The customer's name, contact details, and job notes come to you, and you contact the customer directly. No appointment is booked through Canopy. This mode suits work that needs a conversation or site visit before it can be scheduled.
5. What each status means
| Status | What it means for you |
|---|---|
| Held | A time is reserved for 15 minutes while the customer confirms. Nothing has reached you yet. |
| Requested / pending | A preferred-times request is waiting for your answer. |
| Approved / time proposed | You offered a time and the customer still needs to confirm it. |
| Confirmed, pending in your system | The customer confirmed and Canopy is writing the appointment into your system. |
| Booked | The appointment is in your system and Canopy checked that it was saved. Honor it, or cancel or reschedule it with the customer under your own policies. |
| Callback requested | Contact the customer directly. |
| Failed, expired, declined, or cancelled | Nothing is booked. |
6. The eight Canopy tools
AI assistants talk to Canopy through eight tools. You don't need to set these up or use them yourself. This overview explains what an assistant can and cannot do on a customer's behalf.
| Tool | What it does |
|---|---|
| canopy_check_bookable | Checks whether a business takes bookings through Canopy before the assistant tries to book. |
| resolve_business | Identifies exactly which business, and which of its locations, the customer means, using hard identifiers such as phone, website, or name plus ZIP code. It returns at most one match, with that business's booking mode and locations, or reports that no Canopy listing was found. |
| get_availability | Looks up open times for a service, based on your availability rules and your connected calendar. |
| request_booking | Starts a booking and routes it to the right flow for your booking mode: with instant booking it places the 15-minute hold and sends the customer their confirmation code; with preferred times it sends the request for you to approve; with callback-only it sends a callback request. |
| propose_times | Sends you the customer's preferred times to approve, counter, or decline. |
| request_callback | Asks your business to call the customer back. No appointment is booked. |
| get_request_status | Reports where a request stands — pending, approved, rejected, counter-proposed, expired, or converted. It uses the request's private code — from the conversation that created it, or the link in the customer's email. |
| reschedule_booking | Moves a confirmed booking to a new time. It uses the booking's private manage code — from the conversation that booked, or the manage link in the customer's confirmation email — and the change is written into your system. A hold the customer has not confirmed yet cannot be moved. |
Cancelling is built in. The customer can ask their assistant to cancel using the booking's manage code, or use the manage link in their confirmation email; the cancellation is written into your system. Your own cancellation policy applies.
7. How bookings stay private to the customer
When a customer's assistant creates a booking or request, Canopy gives that conversation a private code called a manage token. Checking status, rescheduling, and cancelling all use it, so a stranger who learns a booking number cannot look up, move, or cancel the booking. The same code travels in the manage link in the customer's confirmation email, so a customer who loses the conversation can still manage the booking from their inbox. Canopy does not store the token and does not send it to you.
If a customer loses the conversation, the manage link in their confirmation email still lets them check, move, or cancel the booking. The booking itself stands until they do. Their Canopy emails show your business and the appointment details.
8. Customer information you receive
For each request or booking, you receive the customer's name and email address, and their phone number, ZIP code, and job notes if they provided them, along with the service and time. Canopy does not ask customers for a street address or take payments. If you need an address or deposit, collect it when you contact the customer.
Once customer information is in your system, you are responsible for using it lawfully and in line with your own privacy notice. See the Canopy Privacy Policy and the Canopy Terms of Service for the full details.
9. What Canopy doesn't do
- It doesn't take payments, deposits, or fees.
- It doesn't rank, recommend, or advertise businesses.
- It doesn't send text messages or marketing email to customers.
- It isn't for emergencies. Customers with a gas leak, fire, carbon monoxide, or other emergency should call 911 or their utility.
10. Getting help
Email support@coppoak.com with questions about setup, your connected calendar, or a specific booking. Include your business name and, for a booking question, the booking or request number. Never send passwords, codes, or manage tokens by email.