> ## Documentation Index
> Fetch the complete documentation index at: https://docs.comforthub.app/llms.txt
> Use this file to discover all available pages before exploring further.

# Book a work order

> Use the Service calendar widget to create the job, its lines, and the appointment

export const Touches = ({systems}) => <p>
    <strong>Systems involved:</strong>{" "}
    {systems.split(",").map((s, i) => <span key={s}>
        {i > 0 ? " · " : ""}
        <a href={"/systems/" + s.trim()}>{s.trim().replace(/-/g, " ")}</a>
      </span>)}
  </p>;

<Touches systems="zoho-crm, supabase-backend" />

You book from the **Service calendar** widget in Zoho. You click a day, and a side panel asks who the visit is for, what kind of visit it is, the arrival window, the lines, the equipment and the technician, then writes the work order and the appointment for you.

## Before you start

* The customer's account exists in Zoho, with the property on it.
* The products you put on the job are in the catalog; see [Add a product](/handbook/catalog-and-staff/add-a-product).

## Steps

<Steps>
  <Step title="Open the calendar">
    Open the **Service calendar** widget, from the account or on its own, and click the day of the visit.
  </Step>

  <Step title="Say who and what">
    In the panel, pick the account (**Who is this visit for?**), the type of visit (**What kind of visit?**) and the **Arrival window**.
  </Step>

  <Step title="Add the lines and the equipment">
    Pick the lines from the catalog and set **Charge to** for each: the customer, warranty, or the plan. Tick the equipment the visit is for, or add the unit an installation puts in. For a repair the equipment comes first, so the widget can tell you what is under warranty before you price the work.
  </Step>

  <Step title="Choose the technician and confirm">
    Pick the **Technicians**, any **Checklists**, and notes for the technician. Say whether to notify the customer, then confirm. The widget writes the work order, the equipment links and the appointment, and shows each step's result.
  </Step>
</Steps>

## How you know it worked

* Zoho has the work order with its lines, and an appointment under it.
* The work order shows a **Billing Status** within a minute; see [How booking works](/handbook/booking/how-booking-works).
* If you asked for an email, the customer has "Your Comfort Hub appointment on …" within a minute.
* The technician's phone gets a push, if they have the app.

## Booking from the app instead

A phone agent can book a service visit from the app while on the call. The app writes the job on our side and the engine makes the Zoho copies; the technician picked in the app is on the Zoho appointment. The territory is set only when the customer's property has one.

## The name and the number are two things

The work order's **Name** is minted by the engine, from its own sequence, and it skips any name a work order already holds, so no two work orders share one. **Work Order Number** is a separate field that Zoho fills in with its own numbering; our side reads it and never writes it.

## An install typed into Zoho

A work order typed straight into Zoho, without the **Service calendar** widget, gets its equipment when the job is completed; see [Complete a work order](/handbook/on-site/complete-a-work-order).

## Changing lines afterwards

Edit the lines on the work order in Zoho. A change to a line's item, quantity, price or **Charge to** reaches our side and the billing decision runs again. A line added from the app reaches Zoho.

## Related

* [How booking works](/handbook/booking/how-booking-works)
* [Reschedule or restaff an appointment](/handbook/booking/reschedule-or-restaff)
* [Cancel a work order](/handbook/booking/cancel-a-work-order)
