Free template · Excel, Google Sheets, or CSV · companion to Issue #4
Night-Call Log Template
A free log for whoever covers nights and overflow. Fee stated, capacity actually checked, booked or not, and one reason code when it didn’t book, plus callback tracking for the warm ones. The weekly tab does the Friday math.
Download the .xlsx Download the .csv
What’s in it
- Log tab — one row per contact. Dropdowns on
reason_code,outcome,capacity_check_status, the Y/N columns, and the callback columns. - Weekly summary tab (.xlsx) — type a week start date. It counts calls, booked, each reason code, never-bookable vs. bookable-but-lost, and the booking rate.
- One EXAMPLE row, highlighted, so you can see a filled line. Delete it before real use. The summary ignores it either way.
Callbacks
Some unbooked calls are still warm. Five columns track what happened when you called back: callback_attempts, callback_owner, last_callback_at, callback_outcome, and ok_to_text.
- Who gets one:
H_calling_backfirst. ThenE_fee_declined,F_wanted_price_first, andJ_other_quotes, if you have something new to offer: a clearer fee explanation, an opening, or a direct question about booking. Never A–D. G is a capacity question for Friday, and I depends on when the decider is around, so neither is on the callback list. - When: the same business day if you can, the next morning at the latest. During business hours. One named person owns the callbacks.
- How many: three tries at most. That’s our suggestion, not a rule from anywhere. Stop right away if they say no or ask you to stop.
- Outcome, one of four: Booked · Not booked (new code if the reason changed) · No answer after all tries · Asked not to be contacted. If an H turned into an E on the callback, change
reason_codeto E. - OK to text? Ask on the first callback and write Y or N.
The weekly tab counts callbacks attempted, each outcome, callbacks booked, attempted and booked for each of H, E, F, and J, and warm calls nobody called back.
Texting: this is not legal advice. FCC rules on texting customers depend on consent, and opt-outs have to be honored. The rules are changing and state rules differ, so ask a lawyer before you text customers. If someone says stop, in any clear way, it’s final — no call, no text.
Into Google Sheets
- Easiest: upload the .xlsx to Google Drive, then open it with Google Sheets (or File → Import → Upload in a blank sheet, choose “Replace spreadsheet”). Dropdowns and the summary tab come with it.
- CSV only: in a blank Google Sheet, File → Import → Upload →
night-call-log.csv→ “Replace current sheet.” Then add dropdowns yourself: select thereason_codecolumn, Data → Data validation → Dropdown, and paste the eleven codes below. Do the same foroutcome,callback_attempts(0, 1, 2, 3), andcallback_outcome(the four outcomes above). - Type dates as
2026-10-12style so the weekly tab can read them. - Keep the sheet private. Don’t paste its link anywhere public.
The booking-rate math
booked ÷ (booked + bookable-but-lost). Never-bookable calls (A–D) stay out of it. “Other” stays out too until you read the line and decide which pile it belongs in. Put the never-bookable count next to the rate every Friday, so the rate can’t quietly improve by moving calls into the excused pile.
Reason codes (unbooked calls only)
| Code | Pile | Means |
|---|---|---|
A_not_customer | Never bookable | Not a customer call |
B_existing_job | Never bookable | Existing job or bill |
C_outside_area | Never bookable | Outside our area |
D_work_we_dont_do | Never bookable | Work we don’t do |
E_fee_declined | Bookable but lost | Fee declined |
F_wanted_price_first | Bookable but lost | Wanted a price first |
G_no_slot_that_worked | Bookable but lost | No slot that worked |
H_calling_back | Bookable but lost | Calling back / thinking it over |
I_needs_decider | Bookable but lost | Needs spouse, owner, or landlord |
J_other_quotes | Bookable but lost | Getting other quotes |
Other | — | One line in notes, in the caller’s words |
Outcome codes: confirmed, structured_handoff, escalate, no_verified_slot, declined_after_fee, abandoned, incomplete_qualify.
Rule of the sheet: never mark booked = Y unless capacity_check_status = verified_available with a time in capacity_checked_at. Prefer a clear “no slot” over a fake hold. The After-Hours Intake Checklist explains each move, and the call scripts give the words.