Book for the customer
request_bookingBook a HomeMaster service for the customer: only the one they asked for, never an extra. Ask for their name, their phone number and their OK first, and never fill a field with a guess or a placeholder. The answer's outcome says what was booked. (1) whatsapp_card, home cleaning: we sent the customer Helen's booking card on WhatsApp, showing the date, their address, the clean and their price; nothing is booked until they tap "Yes, book it" within 60 minutes, then they pay by the payment link Helen sends, and the time is not held while they decide. Needs postal_code, unit, date with its weekday, a start_time from find_times, and the hours the customer chose. A weekly or every-2-weeks clean is sent as paying visit by visit (get_quote's pay_per_visit); for the prepaid pack, give the checkout link from start_booking instead. Returns a reference for booking_status. (2) call_back_booked, any other service: a call back from our team, only for an address we do not cover online, a service under more_services, or a customer who asks to speak to our team before booking. Every other service is booked online with start_booking's link, so do not offer the call back as a choice. It is free for a service with a price list; for a service quoted for each job, the quotation has a fee, stated on its card and in the answer, which our team collects. Tell the customer that, ask when they are free for a call, and send a 2-hour window (call_back_date, its call_back_weekday, and call_back_from). Our team calls them in that window with the price and a time for the job. No message is sent and nothing is paid through this booking. Returns a reference (hmc_) for booking_status. To move the call, call this again with a new window. For a customer with several such jobs, book each service in the same window: our team makes one call. After booking, read back to the customer the day and the number in the answer (booked_for, or sent_to for a clean): if either is not what they said, book again with the right one. HomeMaster has no emergency service: for someone who needs help now, say so, and offer the call back only as a follow-up. A refusal means nothing is booked. (3) pick_a_call_back_time: you asked for a call back without a window; nothing is saved, and the answer holds the question to ask and the windows we take.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | YYYY-MM-DD, Singapore date. | |
| unit | No | Cleaning: floor AND unit number, e.g. #05-12 (for a landed house, the house number). The floor alone is not a unit number. Ask the customer; never make one up. | |
| hours | No | Cleaning only: visit length in hours (see find_services for the lengths we sell, e.g. 2, 3 or 4). | |
| phone | Yes | The customer's 8-digit Singapore number, exactly as they gave it, e.g. 9123 4567. We add +65 ourselves: do not add, repeat or drop a digit. For cleaning it must be on WhatsApp. | |
| details | No | A call back: the job in the customer's words, with what the price depends on (see its service card): what, how many, what size, what is wrong. Never make a detail up. If the customer cannot say which job on the price list is theirs, describe the problem and book: do not make them choose. | |
| service | Yes | Required: the service the customer asked for, from find_services. cleaning (general housekeeping only) for Helen's WhatsApp card, or the code of any other service for a call back, e.g. pipe_leak_repair. | |
| weekday | No | Cleaning: the weekday the customer agreed to, e.g. Saturday. Required with date; we refuse a date that is not that weekday. | |
| frequency | No | Cleaning only: one-time, weekly, or bi-weekly (every 2 weeks). | one-time |
| agent_name | No | Optional, cleaning: your name as the customer knows you (letters, digits and spaces), shown on the card as "<name> asked us to book this for you". | |
| start_time | No | Cleaning: HH:MM in Singapore time, one of the start times from find_times. | |
| postal_code | No | 6-digit Singapore postal code, e.g. 238823. Cleaning: required. A call back: send it too, when the customer gives it; our team confirms on the call whether we serve the address. A job with two addresses (a move, a delivery): the address it starts from here, the other one in details. | |
| customer_name | No | The customer's name. Required for a call back (any service but cleaning). For cleaning: recommended, saved only once they confirm, and never over a name we already have. | |
| call_back_date | No | A call back: the day the customer is free for our call, YYYY-MM-DD, Singapore date, today to 14 days ahead. | |
| call_back_from | No | A call back: the start of the 2-hour window for our call, HH:MM in Singapore time, on the hour or half hour, 09:00 to 19:00 (so the latest window is 7pm to 9pm). | |
| call_back_weekday | No | A call back: the weekday the customer agreed to for the call, e.g. Saturday. Required with call_back_date; we refuse a date that is not that weekday. | |
| customer_confirmed | No | Required. true only when the customer themselves gave you every detail you are sending (their number, the unit, the day, the hours or the job) and said yes to this booking. If you filled in or guessed any of it, do not send: ask them first. | |
| preferred_job_time | No | A call back, optional: when the customer would like the JOB done, in their words (e.g. Saturday mornings, within two weeks, on 31 October), and how often if they want it regularly (e.g. every week). It can be later than 14 days: the call-back window is only for the call. |