# Contractor Scheduling SOPs
**For:** Abigael (Scheduler)
**Last Updated:** March 25, 2026
**Purpose:** Prevent missed arrivals, wrong-time cleanings, and contractor miscommunication

---

## The Core Problem We're Solving

Most complaints and re-do's trace back to one of three things:
1. A schedule change that didn't reach the contractor
2. A contractor sent to the wrong job or the wrong address
3. A customer not informed of a timing change

These SOPs close all three gaps.

---

## 1. Confirming Schedule Changes Reach Contractors

### When a booking is changed or added (any time):
- [ ] Update the booking in Launch27
- [ ] **Immediately message the assigned contractor directly** — do not assume they'll check the app
  - Use WhatsApp or their preferred contact method
  - Include: customer name, address, date, new arrival time, service type, any special notes
- [ ] Screenshot or note the contractor's **reply confirming** they received it
- [ ] If no reply within **2 hours**, call them

### Message template for schedule changes:
```
Hi [Name], heads up — booking update for [Customer Name] at [Address].
New time: [Day], [Date] at [Time]
Service: [Type]
Notes: [Any extras, access info, pets, etc.]
Please confirm you got this. Thanks!
```

### ⚠️ Do NOT rely on the system alone
- App notifications can be delayed or missed
- Always follow up with a direct message for any change made within 48 hours of the booking

---

## 2. Pre-Day Checklist (Run Every Evening for Next Day)

Run this check every evening by **8 PM** for the following day's jobs.

### For each booking tomorrow:
- [ ] Contractor is confirmed (not just assigned — confirmed)
- [ ] Contractor has the correct arrival window (not just start time — include buffer)
- [ ] Contractor has the full address including unit/buzzer code if applicable
- [ ] Any special instructions noted (pets, alarm codes, key location, hoarding, language barrier)
- [ ] Customer has been notified of their arrival window (if it's a new booking or change)

### Morning reminder (day-of, by 8 AM):
- Send a quick reminder to each contractor:
```
Good morning [Name]! Just a reminder — you have [Customer Name] today at [Time].
Address: [Address]
Notes: [Key details]
Have a great clean!
```

---

## 3. What To Do When a Contractor is Late or Missing

### If a contractor is 15+ minutes past arrival time with no contact:

**Step 1 — Contact contractor**
- Call first, then WhatsApp
- Ask: "Are you on your way? Customer is waiting."

**Step 2 — Contact customer (if contractor unreachable after 10 min)**
- Call or text customer:
```
Hi [Name], this is No More Chores. Your cleaner is running a little behind today.
We expect them to arrive by [updated time]. We apologize for the delay and appreciate your patience!
```

**Step 3 — Escalate to Mike (if contractor no-show after 30 min)**
- Message Mike on Slack or WhatsApp immediately
- Include: customer name, address, job details, what you've tried
- Mike will decide: reassign, reschedule, or compensate

**Step 4 — Document**
- Log the no-show/late arrival in the #emilys-team Slack channel
- Format: `⚠️ LATE/NO-SHOW — [Contractor Name] — [Customer] — [Date] — [Notes]`

---

## 4. Complaint Response Templates

### Customer calls/texts about a cleaning issue:

**Initial response (within 1 hour):**
```
Hi [Name], thank you for letting us know. I'm so sorry to hear about your experience.
I want to make this right for you. Can you tell me a little more about what happened?
I'll follow up with our team right away.
```

**After getting details:**
```
Thank you for explaining that. I've flagged this with our team and [Mike/we] will be in touch
within [timeframe] to discuss how we'll resolve this for you.
We really appreciate your patience.
```

**If a re-clean is needed:**
```
We'd love to send someone back to make it right. Would [day/time option] work for you?
There will be no charge for the follow-up clean.
```

### Contractor made a mistake (wrong time, skipped area, etc.):
1. Acknowledge to customer first — don't point fingers at the contractor
2. Flag the contractor internally in Slack: `⚠️ ISSUE — [Contractor] — [Description] — [Date]`
3. Discuss with contractor privately (not in front of the customer)
4. Note it in their contractor profile if it's a recurring issue

---

## 5. When to Escalate to Mike Immediately

Contact Mike right away if:
- A contractor is a no-show and you can't reach them
- A customer is threatening a chargeback or legal action
- A customer reports property damage or theft
- A contractor reports an accident or injury on-site
- A customer is verbally abusive or making the contractor feel unsafe
- You're unsure whether to offer a refund or re-clean (default: don't promise without Mike's input)

**For anything not on this list:** Use your judgment, handle it, and log it in Slack so Mike sees it.

---

## 6. Quick Reference

| Situation | Action | Timeframe |
|---|---|---|
| Booking changed | Direct message contractor | Immediately |
| No contractor reply | Call them | Within 2 hours |
| Contractor 15 min late | Contact contractor | At 15 min mark |
| Contractor unreachable | Notify customer | At 25 min mark |
| Contractor no-show | Escalate to Mike | At 30 min mark |
| Customer complaint | Acknowledge + follow up | Within 1 hour |
| Damage/theft reported | Escalate to Mike | Immediately |

---

## 7. Logging & Tracking

Use the #emilys-team Slack channel to log:
- Late/no-show contractors (use ⚠️ prefix)
- Customer complaints received (use 🔴 prefix)
- Successful reschedules / recoveries (use ✅ prefix)

This gives Mike visibility without him having to ask.

---

*Questions? Message Mike or Harvey anytime.*
