# Comfort Hub handbook - [Start here](https://docs.comforthub.app/index.md): The handbook for how Comfort Hub runs, written so you can forget things safely - [Using these docs](https://docs.comforthub.app/handbook/how-to-use-these-docs.md): The three kinds of page, how they link, and how to find what you need fast - [Writing here](https://docs.comforthub.app/handbook/writing-here.md): Add or change a page without breaking the rules the check enforces - [How Comfort Hub runs](https://docs.comforthub.app/handbook/the-business/how-comfort-hub-runs.md): The business in one page: what we sell, what a visit looks like, and which systems carry each step - [The customer lifecycle](https://docs.comforthub.app/handbook/the-business/the-customer-lifecycle.md): Lead, customer, equipment, and the visits that repeat for as long as they own it - [How a lead becomes a customer](https://docs.comforthub.app/handbook/new-customers/how-a-lead-becomes-a-customer.md): What happens the moment a lead is converted in Zoho, and where each record ends up - [Add a lead](https://docs.comforthub.app/handbook/new-customers/add-a-lead.md): Enter a lead in Zoho so it exists on both sides within seconds - [Convert a lead into a customer](https://docs.comforthub.app/handbook/new-customers/convert-a-lead.md): Turn a lead into a customer with all their records created once - [Set up a customer by hand](https://docs.comforthub.app/handbook/new-customers/set-up-a-customer-by-hand.md): Type the customer, account and property straight into Zoho when there is no lead to convert - [Fix a customer that did not set up](https://docs.comforthub.app/handbook/new-customers/fix-a-customer-that-did-not-set-up.md): Find why a converted lead has no customer, fix the cause, and let the set-up run again - [What lives where](https://docs.comforthub.app/handbook/catalog-and-staff/what-lives-where.md): Products, materials, suppliers, technicians, territories, checklist templates and agents: which system you type each into - [Add a product](https://docs.comforthub.app/handbook/catalog-and-staff/add-a-product.md): Create something we sell so it is in the catalog and in QuickBooks - [Add a supplier and its branches](https://docs.comforthub.app/handbook/catalog-and-staff/add-a-supplier.md): Create a vendor so technicians can order from it and pick up at its branches - [Add a technician](https://docs.comforthub.app/handbook/catalog-and-staff/add-a-technician.md): Create the technician in Zoho; their app login follows on its own - [Author a checklist template](https://docs.comforthub.app/handbook/catalog-and-staff/author-a-checklist-template.md): Write the readings a technician takes on site for one kind of equipment - [Draw a service territory](https://docs.comforthub.app/handbook/catalog-and-staff/draw-a-service-territory.md): Add a territory in Zoho, have a developer draw its map area, and watch properties fall into it - [How booking works](https://docs.comforthub.app/handbook/booking/how-booking-works.md): From a work order in Zoho to a technician's phone, and how the billing decision is made - [Book a work order](https://docs.comforthub.app/handbook/booking/book-a-work-order.md): Use the Service calendar widget to create the job, its lines, and the appointment - [Reschedule or restaff an appointment](https://docs.comforthub.app/handbook/booking/reschedule-or-restaff.md): Move a visit to another day or another technician - [Cancel a work order](https://docs.comforthub.app/handbook/booking/cancel-a-work-order.md): Cancel a job and know what gets cleaned up and what gets voided - [Assign a checklist to a visit](https://docs.comforthub.app/handbook/booking/assign-a-checklist.md): Attach the right form to an appointment so it matches the right equipment - [A visit in the app](https://docs.comforthub.app/handbook/on-site/a-visit-in-the-app.md): What a technician sees on a work order, what they do on site, and where each task is explained - [Complete a work order](https://docs.comforthub.app/handbook/on-site/complete-a-work-order.md): The last tap of a visit, and everything it sets in motion - [Answer a checklist](https://docs.comforthub.app/handbook/on-site/answer-a-checklist.md): Fill in a form on site, including with no signal - [Record equipment](https://docs.comforthub.app/handbook/on-site/record-equipment.md): Scan serials, add photos, and add a new asset on site - [Add parts and labour](https://docs.comforthub.app/handbook/on-site/add-parts-and-labour.md): Change the line items on a job from the app - [Handle a no-show](https://docs.comforthub.app/handbook/on-site/handle-a-no-show.md): Mark that nobody was home, and undo it if they turn up - [Quote extra work](https://docs.comforthub.app/handbook/on-site/quote-extra-work.md): Build a quote on the work order for work found on site, and what happens when the customer approves it - [How invoicing works](https://docs.comforthub.app/handbook/invoicing/how-invoicing-works.md): How completing a job becomes an invoice in QuickBooks, Zoho and the customer's inbox - [Fix an invoice](https://docs.comforthub.app/handbook/invoicing/fix-an-invoice.md): Change the discount or the processing fee, and know which edits stick - [Void an invoice](https://docs.comforthub.app/handbook/invoicing/void-an-invoice.md): Cancel an invoice everywhere it exists - [Certificates](https://docs.comforthub.app/handbook/invoicing/certificates.md): Which visits produce a certificate, where it is stored, and who gets it - [How payments work](https://docs.comforthub.app/handbook/payments/how-payments-work.md): From the pay page to a paid invoice, a receipt, and a paid work order - [Take a payment](https://docs.comforthub.app/handbook/payments/take-a-payment.md): Get a customer paid through the pay page - [Subscriptions](https://docs.comforthub.app/handbook/payments/subscriptions.md): How a plan customer's Stripe subscription, its payments and its visits reach our side and Zoho - [How ordering parts works](https://docs.comforthub.app/handbook/parts/how-ordering-parts-works.md): Stock lists become stocking orders emailed to the supplier; counter pickups become purchase orders synced to Zoho - [Order stock from a supplier](https://docs.comforthub.app/handbook/parts/order-stock.md): Turn a stock list into one order per supplier, and have the supplier emailed the purchase order - [Raise a purchase order at the counter](https://docs.comforthub.app/handbook/parts/raise-a-purchase-order.md): Record what a technician picks up at a branch, with the paperwork - [Delete a purchase order](https://docs.comforthub.app/handbook/parts/delete-a-purchase-order.md): Remove a saved purchase order and its paperwork from the app, and its copy from Zoho - [Record a return](https://docs.comforthub.app/handbook/parts/record-a-return.md): Put the return date and the credit note on the purchase order the parts came from - [How purchase order numbers work](https://docs.comforthub.app/handbook/parts/how-purchase-order-numbers-work.md): One numbering sequence for stocking orders and counter purchase orders, handed out before you save - [How timesheets work](https://docs.comforthub.app/handbook/hours/how-timesheets-work.md): The pay calendar, the two-week timesheet, reminders, auto-submit and approval - [Load the year's payroll calendar](https://docs.comforthub.app/handbook/hours/load-the-payroll-calendar.md): Turn ADP's schedule PDF into the pay periods everything else reads - [Know when the pay calendar runs out](https://docs.comforthub.app/handbook/hours/know-when-the-pay-calendar-runs-out.md): Read the Sentry condition, check how many days of pay periods are left, and load the next year in time - [Approve timesheets and time off](https://docs.comforthub.app/handbook/hours/approve-timesheets-and-time-off.md): Review what people submitted, in the app or in Zoho, and see the verdict reach the technician - [File hours and request time off](https://docs.comforthub.app/handbook/hours/file-hours-and-request-time-off.md): What a technician does each pay period, and what the app fills in for you - [How the phone works](https://docs.comforthub.app/handbook/phone/how-the-phone-works.md): What happens when someone calls the line: the menu, the department queues, voicemail and callbacks, texts, and what the CRM gets - [Set up a phone agent](https://docs.comforthub.app/handbook/phone/set-up-a-phone-agent.md): Give someone a line, an extension, and the ability to take calls - [Opening hours and holidays](https://docs.comforthub.app/handbook/phone/change-hours-and-holidays.md): The three settings that decide whether a caller reaches a queue or the closed greeting, and who changes them - [How extensions and personal lines work](https://docs.comforthub.app/handbook/phone/reach-an-agent-by-extension.md): The two ways a caller rings one person instead of a queue, and where the call goes if nobody answers - [Handle voicemail and callbacks](https://docs.comforthub.app/handbook/phone/handle-voicemail-and-callbacks.md): Work the voicemail box and the callback queue - [Text a customer](https://docs.comforthub.app/handbook/phone/text-a-customer.md): Send and receive texts and photos from the app - [How card numbers stay out of texts and transcripts](https://docs.comforthub.app/handbook/phone/how-card-numbers-stay-out-of-texts-and-transcripts.md): The engine masks a card number the moment it is written, and an hourly scan opens an urgent condition if one ever slips through - [Transfer and record calls](https://docs.comforthub.app/handbook/phone/transfer-and-record-calls.md): Hold, transfer, warm transfer, and recording during a call - [How a Twilio error reaches the owner](https://docs.comforthub.app/handbook/phone/how-a-twilio-error-reaches-the-owner.md): Twilio posts its error log to the engine; an error is stored and pushed to every super admin - [The app tour](https://docs.comforthub.app/handbook/app/the-app-tour.md): The three tabs, the Search tab, and where every screen lives - [Invite someone to the app](https://docs.comforthub.app/handbook/app/invite-someone-to-the-app.md): Get a new person signed in with the right role - [Roles and what they can do](https://docs.comforthub.app/handbook/app/roles-and-what-they-can-do.md): The five roles and what each one can see and change - [Tasks and notes](https://docs.comforthub.app/handbook/app/tasks-and-notes.md): Personal and shared tasks, notes with photos, and the offline queue - [Team messages and group chats](https://docs.comforthub.app/handbook/app/team-messages-and-group-chats.md): Start a group with teammates, name it, add and remove people, and what Delete really does - [The assistant](https://docs.comforthub.app/handbook/app/the-assistant.md): The manuals agent and the email assistant, and what each can and cannot do - [How sync works](https://docs.comforthub.app/handbook/running/how-sync-works.md): How a change in Zoho reaches the engine and back, why it never loops, and what happens on a delete - [How the monitor works](https://docs.comforthub.app/handbook/running/how-the-monitor-works.md): Once a minute the engine checks itself, keeps every problem open in Sentry until it sees it fixed, and emails you about the ones that cannot wait - [Act on a Sentry email](https://docs.comforthub.app/handbook/running/act-on-a-sentry-email.md): Read the issue behind the email, fix the cause where the record lives, and let the monitor close it - [Check the monitor is running](https://docs.comforthub.app/handbook/running/check-the-monitor-is-running.md): Confirm the monitor is checking and reporting, when the uptime alert arrives or when you want to know - [Fix a record that did not sync](https://docs.comforthub.app/handbook/running/fix-a-record-that-did-not-sync.md): Read the sweep's finding for the record, work out which side is wrong, and put the pair right - [Run the sweep and the reconciler](https://docs.comforthub.app/handbook/running/run-the-sweep-and-the-reconciler.md): Read the nightly drift findings, run the sweep by hand, and see what the reconciler would write before letting it write - [Redrive a dead letter](https://docs.comforthub.app/handbook/running/redrive-a-dead-letter.md): Put a failed message back on the queue once the cause is fixed - [Resolve a human-review flag](https://docs.comforthub.app/handbook/running/resolve-a-human-review-flag.md): List the events waiting for a person, fix the cause, and close each flag with a note - [What replaces the audit log](https://docs.comforthub.app/handbook/running/what-replaces-the-audit-log.md): The records the engine already keeps, what we do not build, and how to answer who changed what and when - [Email safety](https://docs.comforthub.app/handbook/running/email-safety.md): Why no email can reach a real customer, what the redirect looks like, and how to change that on purpose - [How it all fits together](https://docs.comforthub.app/systems/how-it-all-fits-together.md): The map of every system, what flows between them, and which way - [Who is the source of truth](https://docs.comforthub.app/systems/who-is-the-source-of-truth.md): For every kind of record, which system owns it and which side wins when they disagree - [Environments and secrets](https://docs.comforthub.app/systems/environments-and-secrets.md): The one production project, the local stack, where every key lives, and how code and schema reach production - [Zoho CRM](https://docs.comforthub.app/systems/zoho-crm.md): The office's system of record: what it owns, what it tells the engine, and which fields stay behind - [The Supabase backend](https://docs.comforthub.app/systems/supabase-backend.md): The database, the sync, the workers, the monitor and the ten functions that run the automation - [The 7AM app](https://docs.comforthub.app/systems/the-7am-app.md): The iPhone app for technicians and the office: what it reads, what it writes, who gets in, and what it talks to - [QuickBooks](https://docs.comforthub.app/systems/quickbooks.md): Customers, items, invoices and payments: what the engine writes there and what it reads back - [The pay page](https://docs.comforthub.app/systems/pay-page.md): The customer-facing invoice page on Helcim - [Stripe](https://docs.comforthub.app/systems/stripe.md): Subscriptions only: plans, monthly billing, and the events we listen to - [Twilio](https://docs.comforthub.app/systems/twilio.md): The phone line: numbers, calls, texts, voicemail, recordings and the queue routing, and what the engine keeps of each - [Resend](https://docs.comforthub.app/systems/resend.md): The one door every email leaves through: the sender addresses, the safety guard, and the ledger - [Sentry](https://docs.comforthub.app/systems/sentry.md): Where crashes and the monitor's conditions land, which rules email the owner, and what the uptime check asks - [The assistant](https://docs.comforthub.app/systems/the-assistant.md): The Gmail-watching assistant on Railway and the knowledge it answers from - [CRM widgets](https://docs.comforthub.app/systems/crm-widgets.md): The screens embedded in Zoho: dispatch calendar and sales calendar - [Website and customer portal](https://docs.comforthub.app/systems/website-and-portal.md): The marketing site and portal, and their state today - [Names](https://docs.comforthub.app/reference/names.md): What we call each thing, and what Zoho and Supabase call it. The only page where code names are allowed - [Glossary](https://docs.comforthub.app/reference/glossary.md): Short definitions of the words the handbook uses, including the few technical ones - [Sync rules by module](https://docs.comforthub.app/reference/sync-rules-by-module.md): For each mirrored module: which way it flows, who owns its fields, and what a delete in the CRM does here - [Statuses](https://docs.comforthub.app/reference/statuses.md): Every status a work order, appointment, invoice, lead, subscription, timesheet, time off request, checklist, task, quote or callback can have, and what it means - [Emails we send](https://docs.comforthub.app/reference/emails-we-send.md): Every email the engine sends, who gets it, what triggers it, and what is attached - [Notifications we send](https://docs.comforthub.app/reference/notifications-we-send.md): Every push notification the engine sends to the app, who gets it, what triggers it, and when - [Scheduled jobs](https://docs.comforthub.app/reference/scheduled-jobs.md): Everything that runs on a timer, when, and what it does - [Monitor checks](https://docs.comforthub.app/reference/monitor-checks.md): Every check the monitor runs, when it runs, what it looks for, how heavy a finding is, and where to go to fix it - [Documents and PDFs](https://docs.comforthub.app/reference/documents-and-pdfs.md): Invoices, receipts, certificates, purchase orders and images: where each is made and stored - [Repos and links](https://docs.comforthub.app/reference/repos-and-links.md): Where the code, the error tracker and the developer tools live