Book for the customer
request_bookingHomeMaster's one booking tool, for every service: only the one the customer asked for, never an extra. Never fill a field with a guess or a placeholder. The answer's outcome says what was done; which one you get depends on the service and on whether HomeMaster has cleared this connection to book directly (the connect answer says so). (1) checkout_link: a link to HomeMaster's checkout with the address and the visit filled in, to give to the customer exactly as it is. Nothing is booked, sent or charged. On the page the customer picks the start time (it is held for 7 minutes), enters their name and phone, types the 6-digit code we send to their WhatsApp, and pays on our payment page. Without that clearance this is how every service but home cleaning is booked online: send service, postal_code, and the job_type and unit_count the customer agreed to (the page starts on them; they can still change them). For home cleaning, or on a connection cleared to book directly, send checkout_link: true for it: when the customer would rather book on the page themselves, or for a weekly or every-2-weeks clean paid as a prepaid pack (postal_code, hours, frequency). Needs no phone number. A refused address is answered with no link. (2) whatsapp_card, home cleaning: ask for their name, their WhatsApp number and their OK first. 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 phone, 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). Returns a reference for booking_status. (3) 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, so do not offer it 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) with their phone, customer_name and details. 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. (4) pick_a_call_back_time: a call back asked for without a window, or a service under more_services; nothing is saved, and the answer holds the question to ask and the windows we take. (5) payment_link, only on a connection HomeMaster has cleared to book directly: any service booked online is booked at once, with no WhatsApp card or code. Ask for the customer's name, phone and OK first. Needs postal_code, unit, date with its weekday, a start_time from find_times, customer_name, phone, and the hours (cleaning) or job_type and unit_count (any other service). Give the customer payment_url: the booking is confirmed when they pay. Returns a reference (hmb_) for booking_status.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | YYYY-MM-DD, Singapore date. | |
| unit | No | The floor AND unit number of the address, e.g. #05-12 (for a landed house, the house number), for Helen's card and for a direct booking of any service. 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). When the customer has not said, use usual_hours on the cleaning entry of find_services (find_times and get_quote use it when hours is left out) and say it in your proposal; do not ask. Only if they ask how long their home needs, suggest from hours_by_home. | |
| phone | No | 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. Needed for every outcome but checkout_link. For cleaning it must be on WhatsApp. Why it is needed, to tell the customer: HomeMaster needs the customer's number to confirm the booking and send the receipt on WhatsApp, and to reach them about the visit: if the expert is running late or cannot find the unit or get in, if the expert falls ill and another time is needed, or if the job turns out different from what was booked. | |
| 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 code of the service the customer asked for, from find_services (e.g. cleaning, aircon, pipe_leak_repair). cleaning = home cleaning, general housekeeping only. Every other service is booked by the job: give job_type and unit_count from its card. | |
| weekday | No | Any booking: the weekday the customer agreed to, e.g. Saturday. Required with date; we refuse a date that is not that weekday. | |
| job_type | No | The checkout link and a direct booking (outcomes checkout_link, payment_link): Every service but cleaning: the job, a job_type from the service's card (find_services with its code), e.g. general_service for aircon. A service quoted for each job has one: its quotation visit (quotation_visit) or consultation. | |
| 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. | |
| unit_count | No | The checkout link and a direct booking (outcomes checkout_link, payment_link): Every service but cleaning: how many, in the service's own unit from its card (units, pieces, hours, panels...). 1 for a quotation visit or a consultation. | |
| postal_code | No | 6-digit Singapore postal code, e.g. 238823. Required for every outcome but a call back. 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. | |
| checkout_link | No | true: answer with the checkout link (outcome checkout_link) and book nothing, for a customer who will book and pay on the page themselves, or for the prepaid pack of a weekly or every-2-weeks clean. Not needed for a service other than cleaning on a connection without direct booking: the link is its answer anyway. | |
| 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 | Yes | 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. A default you said in your proposal counts as theirs once they say yes to it, and giving their details in answer to the proposal is a yes. If you filled in or guessed any of it without saying 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. |