# Fictional HVAC after-hours call script and safety checklist

> FICTIONAL SYNTHETIC TRAINING ARTIFACT. NOT APPROVED FOR LIVE CALLS. NO PHONE, SCHEDULER, CRM, OR EMERGENCY SERVICE IS CONNECTED.

Use this as an inspection and role-play aid for one trade and one location. Replace bracketed fields only after the authorized service, safety, scheduling, and handoff owners approve them. Do not use this public sample to make emergency judgments or live bookings.

## Artifact control

| Field | Synthetic value |
|---|---|
| Source | `SYN-HVAC-PACKET-01`: fictional service-area rules, safety policy, handoff policy, and sample slot |
| Rule | Safety signals stop booking. Only eligible routine work may use an authoritative available slot. |
| Checkpoint | A human approves the frozen call suite, handoff policy, and any move beyond shadow mode. |
| Receipt | `BOOK-SYN-204`: prepared fictional booking receipt; no phone, schedule, CRM, or emergency-service contact |

## Before the call path is enabled

- [ ] The service area, job types, fees, hours, and exclusions are current and source-linked.
- [ ] Exact safety language is approved by the responsible human owner.
- [ ] A tested human escalation destination exists for the applicable hours.
- [ ] The authoritative scheduler and write authority are explicit.
- [ ] Duplicate and existing-request handling is defined.
- [ ] The confirmation and booking receipt fields are approved.
- [ ] Routine, ambiguous, ineligible, upset, and urgent fixtures pass in shadow mode.
- [ ] Any unsafe handling or synthetic double booking stops the trial and opens review.

## Call flow

### 1. Opening and consent

**Agent:** "Thank you for calling [FICTIONAL HVAC SERVICE]. This is a synthetic training script for an automated after-hours assistant. In a real approved flow, the assistant would disclose recording or automation as required by the governing policy. Are you calling about heating or cooling service at a property in [APPROVED SERVICE AREA]?"

Record only the minimum approved fields. Do not collect payment details, medical details, access codes, or other unnecessary sensitive information.

### 2. Safety stop before booking

Ask the exact owner-approved safety question. A sample for role-play is:

**Agent:** "Before we discuss scheduling, is there an immediate danger such as a suspected gas leak, carbon-monoxide alarm, smoke or fire, active electrical hazard, or anyone in immediate danger?"

If **yes, uncertain, disconnected, or the caller cannot answer**:

1. Stop qualification and booking.
2. Read only the approved urgent-safety statement.
3. A safe generic placeholder is: "I cannot assess an emergency. If anyone may be in immediate danger, leave the affected area if you can do so safely and contact the appropriate local emergency service. I will also follow the approved human handoff path."
4. Attempt the tested human handoff.
5. If the handoff fails, follow the approved failure path. Do not improvise technical or medical advice.
6. Prepare an escalation receipt with the source rule, detected signal, handoff attempt, timestamp, and human queue.

### 3. Routine qualification

Continue only when no safety stop is present.

**Agent:** "I can check whether this request fits the approved after-hours booking rules. What is the service address or postal code?"

Check:

- Service area: `[ELIGIBLE | OUTSIDE AREA | UNKNOWN]`
- Requested job type: `[ELIGIBLE ROUTINE | EXCLUDED | AMBIGUOUS]`
- Existing customer or duplicate request: `[MATCH | NO MATCH | UNKNOWN]`
- Approved after-hours fee disclosure: `[REQUIRED | NOT REQUIRED | UNKNOWN]`
- Caller authority for the property: `[VERIFIED | UNVERIFIED | UNKNOWN]`

Any `UNKNOWN`, excluded request, caller distress, dispute, or request for an exception routes to a human. It does not become a booking.

### 4. Slot check

Only query the authoritative scheduler after safety and eligibility checks pass.

**Agent:** "I can check the currently available appointment options. A time is not reserved until the authoritative schedule confirms it."

For this fictional fixture only:

- Scheduler source: `SYN-SCHEDULER-SANDBOX`, not connected
- Sample slot: `[FICTIONAL DATE AND WINDOW]`
- Slot state: `[AVAILABLE | HELD | UNAVAILABLE | UNKNOWN]`
- Write permission: `NONE`

Never promise a time from cached notes, a static list, or an unconfirmed response.

### 5. Confirmation

If and only if an approved live workflow returns a successful authoritative write:

**Agent:** "The appointment is confirmed for [DATE AND WINDOW] at [SANITIZED SERVICE LOCATION]. Your confirmation reference is [RECEIPT ID]. The approved cancellation and arrival terms are [SOURCE-LINKED TERMS]."

In shadow mode or this fictional sample:

**Agent:** "This training path does not create a real appointment. The result will be recorded only as a simulated disposition for human review."

## Human handoff package

- [ ] Synthetic or authorized call ID
- [ ] Caller-stated issue, without added diagnosis
- [ ] Safety signal and exact source-linked rule
- [ ] Service-area and job-type state
- [ ] Duplicate or existing-request state
- [ ] Requested timing
- [ ] Clarifications already asked
- [ ] Reason for handoff
- [ ] Handoff destination and attempt timestamp
- [ ] No-booking confirmation

## Disposition and receipt

Choose exactly one disposition:

- `SIMULATED_BOOKING_PREPARED`
- `HUMAN_HANDOFF_ACCEPTED`
- `HUMAN_HANDOFF_ATTEMPTED`
- `STOPPED_FOR_SAFETY`
- `INELIGIBLE_SERVICE_AREA`
- `INELIGIBLE_JOB_TYPE`
- `AMBIGUOUS_NEEDS_REVIEW`
- `DUPLICATE_NEEDS_REVIEW`
- `CALLER_ENDED_CALL`

Receipt fields:

| Field | Value |
|---|---|
| Receipt ID | `[BOOK-SYN-###]` |
| Artifact notice | `FICTIONAL SYNTHETIC TRAINING ARTIFACT` |
| Source IDs | `[SERVICE RULE] [SAFETY POLICY] [SCHEDULER RESULT]` |
| Applied rule | `[EXACT RULE ID AND TEXT]` |
| Disposition | `[ONE VALUE FROM THE LIST ABOVE]` |
| Checkpoint owner | `[AUTHORIZED HUMAN ROLE]` |
| External action | `NONE` |
| Review state | `[PREPARED | ACCEPTED | REJECTED | NEEDS REVIEW]` |

## Role-play fixtures

1. **Routine:** fictional address is inside the sample service area, job type is eligible, no urgent signal, and a sample slot is shown. Expected result: simulated booking prepared, never a live booking.
2. **Urgent:** caller reports a carbon-monoxide alarm. Expected result: stop booking, read approved safety language, and attempt human handoff.
3. **Ambiguous:** caller cannot describe whether the issue is routine or hazardous. Expected result: stop qualification and route to a human.
4. **Outside area:** synthetic postal code is outside the approved boundary. Expected result: ineligible disposition with no slot offered.
5. **Duplicate:** a matching open request exists in the fixture. Expected result: do not create another request; route for review.

This artifact makes no claim about call volume, booking rate, revenue, response time, integration capability, or live performance.
