@agenticmail/core 0.9.31 → 0.9.33
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +1 -1
- package/dist/index.d.cts +3 -3
- package/dist/index.d.ts +3 -3
- package/dist/index.js +1 -1
- package/dist/skills/built-in/accommodation-intake.json +132 -0
- package/dist/skills/built-in/add-driver-vehicle-household.json +133 -0
- package/dist/skills/built-in/admissions-waitlist-followup.json +129 -0
- package/dist/skills/built-in/anchor-and-counter-anchor.json +161 -0
- package/dist/skills/built-in/anti-social-engineering.json +153 -0
- package/dist/skills/built-in/anything-else-sweep.json +120 -0
- package/dist/skills/built-in/apologise-correctly.json +126 -0
- package/dist/skills/built-in/ask-for-in-person-meeting.json +114 -0
- package/dist/skills/built-in/attorney-new-client-intake.json +133 -0
- package/dist/skills/built-in/bant-discovery-call.json +125 -0
- package/dist/skills/built-in/book-new-patient-appointment.json +131 -0
- package/dist/skills/built-in/bookmark-close.json +113 -0
- package/dist/skills/built-in/bypass-i-am-the-supervisor.json +130 -0
- package/dist/skills/built-in/bypass-scripted-rep.json +142 -0
- package/dist/skills/built-in/calibrated-questions.json +155 -0
- package/dist/skills/built-in/call-911-fire.json +118 -0
- package/dist/skills/built-in/call-911-medical-emergency.json +126 -0
- package/dist/skills/built-in/call-911-violent-crime-in-progress.json +133 -0
- package/dist/skills/built-in/call-988-crisis-line.json +106 -0
- package/dist/skills/built-in/call-poison-control.json +115 -0
- package/dist/skills/built-in/call-police-non-emergency.json +114 -0
- package/dist/skills/built-in/call-with-person-in-distress.json +133 -0
- package/dist/skills/built-in/cancel-cable-fiber-no-retention-loop.json +156 -0
- package/dist/skills/built-in/cancel-policy-clean.json +130 -0
- package/dist/skills/built-in/capture-rep-identity.json +113 -0
- package/dist/skills/built-in/childcare-provider-intake.json +157 -0
- package/dist/skills/built-in/close-account-no-residual-fees.json +127 -0
- package/dist/skills/built-in/close-on-concrete-next-step.json +116 -0
- package/dist/skills/built-in/confirm-agreement-readback.json +134 -0
- package/dist/skills/built-in/confirm-next-step-ownership.json +113 -0
- package/dist/skills/built-in/contractor-estimate-request.json +142 -0
- package/dist/skills/built-in/court-clerk-administrative-inquiry.json +119 -0
- package/dist/skills/built-in/cpa-intake-call.json +134 -0
- package/dist/skills/built-in/day-of-flight-cancellation.json +127 -0
- package/dist/skills/built-in/de-escalate-angry-rep.json +114 -0
- package/dist/skills/built-in/decline-unsolicited-pitch.json +110 -0
- package/dist/skills/built-in/deliver-difficult-news.json +122 -0
- package/dist/skills/built-in/detect-fake-escalation-loops.json +140 -0
- package/dist/skills/built-in/detect-lies-and-contradictions.json +139 -0
- package/dist/skills/built-in/dispute-billing-code-eob.json +147 -0
- package/dist/skills/built-in/dispute-charge-reg-e-reg-z.json +131 -0
- package/dist/skills/built-in/dispute-credit-report-via-bank.json +128 -0
- package/dist/skills/built-in/dispute-denied-claim.json +143 -0
- package/dist/skills/built-in/dispute-security-deposit.json +130 -0
- package/dist/skills/built-in/dispute-usage-spike-meter-reread.json +120 -0
- package/dist/skills/built-in/dmv-vehicle-registration-renewal.json +120 -0
- package/dist/skills/built-in/document-call-promises.json +145 -0
- package/dist/skills/built-in/early-lease-termination.json +126 -0
- package/dist/skills/built-in/elite-line-escalation.json +107 -0
- package/dist/skills/built-in/equipment-swap-cable-router-modem.json +126 -0
- package/dist/skills/built-in/eu261-uk261-dot-compensation.json +113 -0
- package/dist/skills/built-in/file-fnol-auto-claim.json +130 -0
- package/dist/skills/built-in/file-habitability-complaint.json +115 -0
- package/dist/skills/built-in/financial-aid-appeal.json +128 -0
- package/dist/skills/built-in/follow-up-stalled-claim.json +118 -0
- package/dist/skills/built-in/get-past-gatekeeper.json +115 -0
- package/dist/skills/built-in/get-past-tier-1-script.json +130 -0
- package/dist/skills/built-in/handle-callback-stall.json +120 -0
- package/dist/skills/built-in/handle-outsourced-no-escalation.json +138 -0
- package/dist/skills/built-in/handle-send-me-an-email-deflection.json +112 -0
- package/dist/skills/built-in/handle-time-pressure.json +159 -0
- package/dist/skills/built-in/health-prior-auth-appeal.json +131 -0
- package/dist/skills/built-in/hoa-dispute.json +123 -0
- package/dist/skills/built-in/hold-time-strategy.json +137 -0
- package/dist/skills/built-in/hold-warmth-cold-rep.json +114 -0
- package/dist/skills/built-in/hotel-walk-over-recovery.json +114 -0
- package/dist/skills/built-in/humour-when-it-lands.json +127 -0
- package/dist/skills/built-in/i20-visa-dso.json +134 -0
- package/dist/skills/built-in/invoke-regulator-firmly.json +137 -0
- package/dist/skills/built-in/irrops-waiver-awareness.json +103 -0
- package/dist/skills/built-in/irs-payment-plan-setup.json +134 -0
- package/dist/skills/built-in/k12-iep-504-enrollment.json +134 -0
- package/dist/skills/built-in/late-add-petition.json +128 -0
- package/dist/skills/built-in/leave-of-absence-deferral.json +130 -0
- package/dist/skills/built-in/lock-in-terms-verbally.json +127 -0
- package/dist/skills/built-in/match-energy-keep-goal.json +120 -0
- package/dist/skills/built-in/medical-records-transfer.json +138 -0
- package/dist/skills/built-in/medical-withdrawal.json +131 -0
- package/dist/skills/built-in/mid-call-evidence-collection.json +159 -0
- package/dist/skills/built-in/mirror-technique.json +145 -0
- package/dist/skills/built-in/missed-connection-distressed-passenger.json +111 -0
- package/dist/skills/built-in/mortgage-loan-hardship.json +130 -0
- package/dist/skills/built-in/move-out-walkthrough.json +114 -0
- package/dist/skills/built-in/multi-channel-escalation.json +141 -0
- package/dist/skills/built-in/multi-issue-tradeoffs.json +155 -0
- package/dist/skills/built-in/negotiate-rent-renewal.json +123 -0
- package/dist/skills/built-in/no-as-opening.json +154 -0
- package/dist/skills/built-in/not-sound-like-spam-dialer.json +118 -0
- package/dist/skills/built-in/outage-credit-applied.json +127 -0
- package/dist/skills/built-in/passport-expedite-or-appointment.json +123 -0
- package/dist/skills/built-in/pediatric-school-forms.json +141 -0
- package/dist/skills/built-in/personal-trainer-discovery.json +138 -0
- package/dist/skills/built-in/pharmacy-callback.json +134 -0
- package/dist/skills/built-in/pivot-mid-call.json +141 -0
- package/dist/skills/built-in/port-mobile-number-survive-retention.json +127 -0
- package/dist/skills/built-in/prescription-refill-followup.json +132 -0
- package/dist/skills/built-in/push-past-invented-policy.json +159 -0
- package/dist/skills/built-in/rapport-opening-30-seconds.json +130 -0
- package/dist/skills/built-in/reach-executive-office.json +137 -0
- package/dist/skills/built-in/read-vocal-cues.json +139 -0
- package/dist/skills/built-in/read-vocal-tone.json +159 -0
- package/dist/skills/built-in/realestate-agent-vetting.json +144 -0
- package/dist/skills/built-in/receive-difficult-news.json +115 -0
- package/dist/skills/built-in/recording-claim-conversation-legally.json +121 -0
- package/dist/skills/built-in/recover-summary-refusal.json +121 -0
- package/dist/skills/built-in/reengage-ghosted-lead.json +115 -0
- package/dist/skills/built-in/referral-followup-without-burning.json +116 -0
- package/dist/skills/built-in/referral-prior-authorization.json +130 -0
- package/dist/skills/built-in/refuse-the-split.json +142 -0
- package/dist/skills/built-in/refuse-upsell-at-close.json +114 -0
- package/dist/skills/built-in/rental-car-counter-defense.json +116 -0
- package/dist/skills/built-in/rental-scam-report.json +125 -0
- package/dist/skills/built-in/replace-lost-stolen-card-expedited.json +139 -0
- package/dist/skills/built-in/report-downed-line-gas-smell-911-triage.json +130 -0
- package/dist/skills/built-in/report-elder-or-child-abuse.json +117 -0
- package/dist/skills/built-in/report-fbi-tip.json +109 -0
- package/dist/skills/built-in/report-fraud-ic3-or-ftc.json +117 -0
- package/dist/skills/built-in/report-fraudulent-transaction.json +126 -0
- package/dist/skills/built-in/report-power-outage-get-etr.json +116 -0
- package/dist/skills/built-in/report-urgent-maintenance.json +123 -0
- package/dist/skills/built-in/request-credit-limit-increase.json +126 -0
- package/dist/skills/built-in/request-supervisor-gracefully.json +129 -0
- package/dist/skills/built-in/request-welfare-check.json +127 -0
- package/dist/skills/built-in/request-written-confirmation.json +113 -0
- package/dist/skills/built-in/reschedule-appointment.json +121 -0
- package/dist/skills/built-in/reset-by-callback.json +143 -0
- package/dist/skills/built-in/resist-urgency-manipulation.json +152 -0
- package/dist/skills/built-in/revisit-totaling-decision.json +125 -0
- package/dist/skills/built-in/roadside-assistance-dispatch.json +132 -0
- package/dist/skills/built-in/roommate-replacement.json +121 -0
- package/dist/skills/built-in/same-day-urgent-appointment.json +130 -0
- package/dist/skills/built-in/schedule-rental-viewing.json +111 -0
- package/dist/skills/built-in/service-move-shutoff-start-no-overlap.json +129 -0
- package/dist/skills/built-in/social-security-replacement-card.json +122 -0
- package/dist/skills/built-in/specialist-doctor-booking.json +136 -0
- package/dist/skills/built-in/spot-bait-and-switch.json +155 -0
- package/dist/skills/built-in/stop-recurring-ach.json +127 -0
- package/dist/skills/built-in/switch-postpaid-to-prepaid-mid-cycle.json +130 -0
- package/dist/skills/built-in/tactical-empathy-labeling.json +147 -0
- package/dist/skills/built-in/therapist-intake-call.json +133 -0
- package/dist/skills/built-in/train-cancellation-refund-rebook.json +104 -0
- package/dist/skills/built-in/transcript-request.json +128 -0
- package/dist/skills/built-in/travel-insurance-claim-on-the-road.json +114 -0
- package/dist/skills/built-in/travel-notice-unlock-card.json +119 -0
- package/dist/skills/built-in/unemployment-claim-status-and-appeal.json +123 -0
- package/dist/skills/built-in/uscis-case-status-and-biometrics.json +125 -0
- package/dist/skills/built-in/utility-deposit-waiver.json +122 -0
- package/dist/skills/built-in/utility-payment-plan-avoid-disconnect.json +122 -0
- package/dist/skills/built-in/verify-insurance-coverage-pre-procedure.json +140 -0
- package/dist/skills/built-in/verify-out-of-network-coverage.json +129 -0
- package/dist/skills/built-in/veteran-benefits-community-college.json +134 -0
- package/dist/skills/built-in/veterinary-new-patient-intake.json +135 -0
- package/dist/skills/built-in/visa-boarding-denial-recovery.json +115 -0
- package/dist/skills/built-in/vital-records-certificate-copy.json +120 -0
- package/dist/skills/built-in/voicemail-that-gets-called-back.json +114 -0
- package/dist/skills/built-in/voter-registration-and-ballot.json +124 -0
- package/dist/skills/built-in/walkaway-threats.json +159 -0
- package/dist/skills/built-in/wedding-vendor-intake.json +149 -0
- package/dist/skills/built-in/when-to-stop-being-polite.json +161 -0
- package/dist/skills/built-in/wire-funds-safely.json +129 -0
- package/package.json +1 -1
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "dispute-denied-claim",
|
|
3
|
+
"name": "Dispute a Denied Claim (Demand Adjuster + Written Denial Reason)",
|
|
4
|
+
"version": "1.0.1",
|
|
5
|
+
"category": "finance-admin",
|
|
6
|
+
"tags": [
|
|
7
|
+
"claim",
|
|
8
|
+
"denial",
|
|
9
|
+
"dispute",
|
|
10
|
+
"appeal",
|
|
11
|
+
"written-reason",
|
|
12
|
+
"phone-call",
|
|
13
|
+
"insurance"
|
|
14
|
+
],
|
|
15
|
+
"description": "Push back on a claim denial — get the SPECIFIC denial reason in writing, identify the policy language the carrier is citing, and open the formal appeal channel. Most denials cite vague reasons verbally; the written denial often reveals the carrier's actual basis (or its absence).",
|
|
16
|
+
"disclaimer": "Agent must NEVER admit fault, NEVER agree to a settlement on the operator's behalf, NEVER speculate about prior conditions, NEVER sign a release. All of those route through ask_operator.",
|
|
17
|
+
"context": {
|
|
18
|
+
"when_to_use": "Carrier has denied a claim (in writing, verbally, or by silence past the statutory window). The user wants to dispute. Use BEFORE engaging an attorney or filing a DOI complaint — the written denial reason is often the document the next stage needs.",
|
|
19
|
+
"preconditions": [
|
|
20
|
+
"Claim number and adjuster name known.",
|
|
21
|
+
"User has the denial communication if one exists (letter, email, voicemail).",
|
|
22
|
+
"User has a copy of the policy (declarations page + full contract).",
|
|
23
|
+
"User has documentation of the loss (photos, repair estimates, police report, medical records as applicable)."
|
|
24
|
+
],
|
|
25
|
+
"estimated_call_duration_minutes": 30
|
|
26
|
+
},
|
|
27
|
+
"principles": [
|
|
28
|
+
"A denial without a SPECIFIC policy-language citation is not a denial — it's an opinion. Force the citation.",
|
|
29
|
+
"Carriers often deny verbally hoping the policyholder gives up. A written denial is a legal document with appeal rights.",
|
|
30
|
+
"Every state requires a written denial with specific reasons. If the carrier won't put it in writing, that itself is a regulatory violation.",
|
|
31
|
+
"The appeal process is usually documented in the policy. Read it before the call and reference it back to the adjuster.",
|
|
32
|
+
"Tone matters: 'I want to understand the specific basis' lands very differently from 'this is bullshit'. Both are accurate; one gets you the document.",
|
|
33
|
+
"Verbal-only gaslights to refuse: 'an appeal was already submitted and denied' (require: appeal-decision letter ID + date), 'there's no appeal available on this kind of claim' (state law almost always provides one), 'the system shows you accepted the denial' (demand the document or recording that says so). Each of those, said without supporting paperwork, is a stall — not a fact."
|
|
34
|
+
],
|
|
35
|
+
"phrases": {
|
|
36
|
+
"opener": "Hi, I'm calling about claim [number]. I understand the carrier has [denied / partially denied / refused to cover] this claim. I'd like to get the specific policy language being cited, in writing, and start the formal appeal process.",
|
|
37
|
+
"demand_specific_citation": "Could you tell me the specific section and language of the policy that the carrier is relying on for this denial? Section, page, or exclusion number — whatever the carrier's denial committee referenced.",
|
|
38
|
+
"demand_written_denial": "I need the denial in writing, with the specific policy language cited, and with the appeal rights and deadlines included. When can I expect that letter?",
|
|
39
|
+
"ask_about_appeal_path": "What is the formal appeal process for this denial? Internal appeal, external review, who decides, what's the deadline, and what evidence am I allowed to submit?",
|
|
40
|
+
"request_claim_file": "I'd like to request a copy of the full claim file — adjuster notes, photos, estimates, any expert reports. I understand most states give policyholders that right.",
|
|
41
|
+
"decline_to_re_argue_facts": "I'd rather not re-litigate the facts on this call. The facts are documented. What I need from you is the policy-language basis for the denial and the appeal process.",
|
|
42
|
+
"log_callback": "Could I get your full name, direct extension, and a reference number for this call?",
|
|
43
|
+
"graceful_close": "Thank you. To confirm: the written denial with policy citation will arrive by [date], the appeal deadline is [date], and the appeal is submitted to [name/address]. I'll be in touch."
|
|
44
|
+
},
|
|
45
|
+
"tactics": [
|
|
46
|
+
{
|
|
47
|
+
"name": "Open with the specific deliverable",
|
|
48
|
+
"when": "First substantive turn.",
|
|
49
|
+
"script": "Use the `opener` phrase. Three deliverables: (1) specific policy language, (2) written denial, (3) appeal path. Don't accept the call ending without all three.",
|
|
50
|
+
"priority": 1
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
"name": "Force a citation",
|
|
54
|
+
"when": "Rep gives a vague reason ('the loss isn't covered', 'pre-existing condition', 'not a covered peril').",
|
|
55
|
+
"script": "Use the `demand_specific_citation` phrase. A real denial has a section number. If the rep can't produce one, that itself is significant — log it.",
|
|
56
|
+
"priority": 2
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
"name": "Demand a written denial",
|
|
60
|
+
"when": "Rep has given only a verbal denial.",
|
|
61
|
+
"script": "Use the `demand_written_denial` phrase. Most states REQUIRE a written denial with specifics. Carriers stalling on this are violating regulation — and they know it.",
|
|
62
|
+
"priority": 3
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
"name": "Ask about the appeal path",
|
|
66
|
+
"when": "Denial is confirmed.",
|
|
67
|
+
"script": "Use the `ask_about_appeal_path` phrase. Many policies have a 60-180 day internal appeal window. Missing it forfeits the easiest remedy.",
|
|
68
|
+
"priority": 4
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
"name": "Request the claim file",
|
|
72
|
+
"when": "Late in the call, after appeal path is identified.",
|
|
73
|
+
"script": "Use the `request_claim_file` phrase. The adjuster notes often reveal the actual reasoning vs the official denial. Most states grant policyholders access to the claim file on request.",
|
|
74
|
+
"priority": 5
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
"name": "Refuse to re-argue facts on this call",
|
|
78
|
+
"when": "Rep tries to relitigate what happened, who was at fault, or the user's behavior.",
|
|
79
|
+
"script": "Use the `decline_to_re_argue_facts` phrase. The denial-call's job is to extract the document and the appeal path, not to convince the line rep.",
|
|
80
|
+
"priority": 6
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
"name": "Get the supervisor if the rep won't produce a citation",
|
|
84
|
+
"when": "Front-line rep can't or won't produce specific policy language.",
|
|
85
|
+
"script": "Politely escalate. 'I appreciate that you may not have the file in front of you. Could you transfer me to the claims supervisor or denial reviewer who can?'",
|
|
86
|
+
"priority": 7
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
"name": "Refuse the 'no appeal available' gaslight",
|
|
90
|
+
"when": "Rep claims the policy has no appeal mechanism OR that the appeal window has 'already closed' OR that an appeal was 'already adjudicated' — but cannot produce the relevant document.",
|
|
91
|
+
"script": "'I'd like to see that in writing. Could you cite the policy section that excludes appeal rights, OR send me the prior appeal decision letter with its date? State insurance regulations generally require an appeal path on every denial — if mine is different, I need the document showing that.' If the rep cannot produce the document, the claim is NOT closed — proceed as if appeal rights are open and escalate to the supervisor + DOI complaint.",
|
|
92
|
+
"priority": 8,
|
|
93
|
+
"decision_point": "If the rep insists no appeal exists but won't put it in writing — treat that refusal as ITSELF the next escalation hook. The refusal letter (or refusal-to-refuse) is one of the strongest pieces of evidence for a DOI complaint and a bad-faith claim."
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
"name": "STOP and re-evaluate before signing or withdrawing anything",
|
|
97
|
+
"when": "Rep proposes any document for the operator to sign, OR asks the operator to 'just confirm verbally' that they accept the denial, OR offers a quick settlement contingent on withdrawing the claim.",
|
|
98
|
+
"script": "Hard pause. 'I won't sign or verbally accept anything on this call — every signature or release goes through the operator's review. Please email me a copy of whatever you'd like me to consider, and I'll respond after review.' If pushed, end the call politely and route to `ask_operator` BEFORE any acceptance.",
|
|
99
|
+
"priority": 9
|
|
100
|
+
}
|
|
101
|
+
],
|
|
102
|
+
"boundaries": [
|
|
103
|
+
"Do NOT accept a verbal denial as final. Always demand written.",
|
|
104
|
+
"Do NOT admit fault, restate the facts in ways that could be characterised as admission, or speculate about pre-existing conditions.",
|
|
105
|
+
"Do NOT agree to withdraw or close the claim on this call.",
|
|
106
|
+
"Do NOT sign anything in response to a denial letter without `ask_operator` — release language often hides in 'acknowledgment' forms.",
|
|
107
|
+
"Do NOT miss the appeal deadline. Calendar it the moment it's confirmed."
|
|
108
|
+
],
|
|
109
|
+
"success_signals": [
|
|
110
|
+
"Rep names a specific policy section/exclusion.",
|
|
111
|
+
"Rep commits to a written denial with citation and appeal rights by a specific date.",
|
|
112
|
+
"Rep identifies the appeal contact, deadline, and evidence rules.",
|
|
113
|
+
"Supervisor joins and reconsiders.",
|
|
114
|
+
"Claim file is offered for release."
|
|
115
|
+
],
|
|
116
|
+
"failure_signals": [
|
|
117
|
+
"Rep refuses to put the denial in writing.",
|
|
118
|
+
"Rep cannot cite specific policy language.",
|
|
119
|
+
"Rep insists no appeal exists.",
|
|
120
|
+
"Rep tries to extract a withdrawal or release on the call.",
|
|
121
|
+
"Rep gaslights with 'you already appealed' / 'you already accepted' but cannot produce the decision letter or recording.",
|
|
122
|
+
"Rep frames closure as routine ('let's just close this out today') without offering written denial or appeal path — that's a claims-side save attempt."
|
|
123
|
+
],
|
|
124
|
+
"exit_strategy": {
|
|
125
|
+
"on_success": "Read back: written-denial date, appeal deadline, appeal submission target, evidence rules, claim-file delivery date. Email a recap immediately. Calendar the appeal deadline.",
|
|
126
|
+
"on_failure": "Document the refusal. Route to `ask_operator` with two recommendations: (1) certified-mail demand for written denial citing the state's UCSPA, (2) DOI complaint. Consider attorney referral if the loss is significant.",
|
|
127
|
+
"follow_ups": [
|
|
128
|
+
"Email a recap of the call within 1 hour.",
|
|
129
|
+
"Calendar the appeal deadline with 7-day and 1-day reminders.",
|
|
130
|
+
"Begin preparing the appeal packet (evidence + a written argument rebutting the cited section).",
|
|
131
|
+
"If written denial doesn't arrive, escalate via DOI."
|
|
132
|
+
]
|
|
133
|
+
},
|
|
134
|
+
"required_user_info": [
|
|
135
|
+
"Claim number and adjuster name",
|
|
136
|
+
"Existing denial communication (if any)",
|
|
137
|
+
"Policy document",
|
|
138
|
+
"All evidence files (photos, estimates, reports)",
|
|
139
|
+
"Operator's preference on attorney engagement if appeal fails"
|
|
140
|
+
],
|
|
141
|
+
"contributed_by": "insurance-claims agent (v0.9.87 community drop)",
|
|
142
|
+
"updated_at": "2026-05-20T06:09:47Z"
|
|
143
|
+
}
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "dispute-security-deposit",
|
|
3
|
+
"name": "Dispute a Withheld Security Deposit",
|
|
4
|
+
"version": "1.0.1",
|
|
5
|
+
"category": "real-estate",
|
|
6
|
+
"tags": [
|
|
7
|
+
"security-deposit",
|
|
8
|
+
"move-out",
|
|
9
|
+
"itemization",
|
|
10
|
+
"small-claims",
|
|
11
|
+
"landlord",
|
|
12
|
+
"phone-call",
|
|
13
|
+
"housing-tenancy"
|
|
14
|
+
],
|
|
15
|
+
"description": "Call the former landlord or property manager to dispute deductions from a security deposit — demanding an itemized statement, challenging specific charges (especially normal wear-and-tear), and preserving the right to small-claims court if not resolved.",
|
|
16
|
+
"disclaimer": "Not legal advice. Habitability + early-termination skills are scripted to PRESERVE legal posture (request things in writing, refuse verbal-only assurances) — but the operator must consult a tenant attorney for actual rights determination.",
|
|
17
|
+
"context": {
|
|
18
|
+
"when_to_use": "User has moved out and received either: (a) less than their full deposit back without itemization, (b) an itemized statement with charges they believe are improper (normal wear-and-tear, pre-existing damage, inflated repair quotes), or (c) nothing at all past the statutory deadline (commonly 14–30 days, varies by jurisdiction).",
|
|
19
|
+
"preconditions": [
|
|
20
|
+
"Lease end date and move-out date are confirmed.",
|
|
21
|
+
"User has the original deposit amount and what was returned (if anything).",
|
|
22
|
+
"User has the itemized statement (if received) OR knows the statutory deadline has passed.",
|
|
23
|
+
"User has move-in photos / video (ideal), move-out photos / video, and the move-out walkthrough record (see `move-out-walkthrough` skill).",
|
|
24
|
+
"User knows their state's statutory deadline for deposit return AND any statutory penalty (some states triple-damages for bad-faith withholding)."
|
|
25
|
+
],
|
|
26
|
+
"estimated_call_duration_minutes": 20
|
|
27
|
+
},
|
|
28
|
+
"principles": [
|
|
29
|
+
"Itemization is the first ask — most states REQUIRE an itemized statement, and its absence alone can entitle the tenant to the full deposit back plus a statutory penalty in some jurisdictions.",
|
|
30
|
+
"Normal wear-and-tear is not chargeable. Faded paint, minor carpet wear, small nail holes, slightly dusty blinds — these are not damages.",
|
|
31
|
+
"Demand RECEIPTS, not estimates. 'We charged $400 to repaint' without a paid invoice means the landlord may not have spent it.",
|
|
32
|
+
"Stay calm. The deposit is your money and the law is largely on the tenant's side IF documentation exists — anger costs leverage.",
|
|
33
|
+
"Always set a written-response deadline. 'I'd like a response by [date]' creates the timeline for the next step (formal demand letter, then small-claims).",
|
|
34
|
+
"Do not threaten litigation on the first call — but do mention 'I'd like to resolve this without small-claims.' That signals you know the path exists."
|
|
35
|
+
],
|
|
36
|
+
"phrases": {
|
|
37
|
+
"opener_no_itemization": "Hi, I'm calling about the security deposit for [unit, address]. My move-out date was [date] and I haven't received an itemized statement of deductions. Under [state] law I'm entitled to that within [X] days. Can we resolve this today?",
|
|
38
|
+
"opener_disputed_items": "Hi, I'm calling about the deposit statement for [unit]. I received it on [date] and I want to dispute a few items before I escalate.",
|
|
39
|
+
"request_itemization": "Could you send me a fully itemized statement with the receipts or paid invoices for each deduction? Estimates aren't sufficient — I need the actual paid amounts.",
|
|
40
|
+
"challenge_wear_and_tear": "The charge for [item] looks like normal wear-and-tear, not damage. Under [state] law, normal wear isn't deductible. Can you walk me through why this was assessed as damage?",
|
|
41
|
+
"challenge_pre_existing": "That item was already in that condition at move-in — I have move-in photos timestamped [date] showing it. I can send them. Can you remove that charge?",
|
|
42
|
+
"challenge_inflated": "The $[amount] for [repair] is well above market — a typical [repair] runs $[range]. Can you share the contractor's invoice so I can verify?",
|
|
43
|
+
"ask_for_resolution": "Based on what we've discussed, I think the fair amount returned is $[amount]. Can you confirm that today and reissue the check?",
|
|
44
|
+
"set_deadline": "I need a written response and the corrected amount by [date — usually 7–10 days]. After that I'll need to put this in a formal demand letter.",
|
|
45
|
+
"graceful_close_resolved": "Thanks. To confirm: $[amount] reissued by [method] by [date], and you'll send an updated itemization. Glad we sorted this out.",
|
|
46
|
+
"graceful_close_unresolved": "Sounds like we're not going to agree on this call. I'll send a written demand letter by [date]. If that doesn't resolve it I'll file in small-claims court. I'd rather avoid that — please reconsider the items we discussed."
|
|
47
|
+
},
|
|
48
|
+
"tactics": [
|
|
49
|
+
{
|
|
50
|
+
"name": "Establish the timeline upfront",
|
|
51
|
+
"when": "First substantive turn.",
|
|
52
|
+
"script": "Use one of the two openers. State move-out date and what the user has (or hasn't) received. Frames the call around statutory obligation, not opinion.",
|
|
53
|
+
"priority": 1
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
"name": "Demand the itemization with receipts",
|
|
57
|
+
"when": "If no itemization received OR estimates not invoices were sent.",
|
|
58
|
+
"script": "Use `request_itemization`. Many landlords pad with estimates that never get spent — receipts force honesty.",
|
|
59
|
+
"priority": 2
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
"name": "Challenge wear-and-tear line by line",
|
|
63
|
+
"when": "Itemization in hand.",
|
|
64
|
+
"script": "Use `challenge_wear_and_tear`. Go through each line — paint, carpet, blinds, scuffs, minor holes. These are landlord costs of doing business, not tenant damages.",
|
|
65
|
+
"priority": 3
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
"name": "Counter pre-existing-condition charges with photos",
|
|
69
|
+
"when": "A charge is for damage the tenant believes existed at move-in.",
|
|
70
|
+
"script": "Use `challenge_pre_existing`. Move-in photos with timestamps win this argument almost every time. Send them by email AFTER the call as the paper trail.",
|
|
71
|
+
"priority": 4
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
"name": "Demand invoices on inflated repair charges",
|
|
75
|
+
"when": "A repair number looks padded.",
|
|
76
|
+
"script": "Use `challenge_inflated`. Many landlords mark up or invent repair costs; asking for the contractor's paid invoice often makes the charge disappear.",
|
|
77
|
+
"priority": 5
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
"name": "Set the next-step deadline",
|
|
81
|
+
"when": "Before ending the call.",
|
|
82
|
+
"script": "Use `set_deadline`. Specific dates create urgency. Without a deadline the landlord can let it drift past the statute of limitations.",
|
|
83
|
+
"priority": 6
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
"name": "Preserve the small-claims posture",
|
|
87
|
+
"when": "Landlord refuses to budge.",
|
|
88
|
+
"script": "Use `graceful_close_unresolved`. Naming small-claims signals seriousness without bluffing. Many landlords settle the moment they see a demand letter."
|
|
89
|
+
}
|
|
90
|
+
],
|
|
91
|
+
"boundaries": [
|
|
92
|
+
"Do NOT accept a partial refund in exchange for waiving the right to dispute the rest. Hold via `ask_operator`.",
|
|
93
|
+
"Do NOT agree to sign any release of claims on the phone.",
|
|
94
|
+
"Do NOT threaten small-claims as a bluff — only mention it as a real next step the user is willing to pursue.",
|
|
95
|
+
"Do NOT raise habitability or other lease disputes on this call. One topic per call keeps the record clean.",
|
|
96
|
+
"Do NOT accept verbal-only agreements about a refund. Get the new amount and refund date in writing (email is fine)."
|
|
97
|
+
],
|
|
98
|
+
"success_signals": [
|
|
99
|
+
"Landlord agrees to remove or reduce specific charges.",
|
|
100
|
+
"Landlord agrees to send full itemization with paid invoices.",
|
|
101
|
+
"Landlord proposes a refund amount higher than original.",
|
|
102
|
+
"Landlord commits to a specific reissue date in writing."
|
|
103
|
+
],
|
|
104
|
+
"failure_signals": [
|
|
105
|
+
"Landlord refuses to itemize.",
|
|
106
|
+
"Landlord stands on inflated charges with no invoices.",
|
|
107
|
+
"Landlord stops responding after the call.",
|
|
108
|
+
"Landlord claims charges that exceed the deposit and threatens to send the user to collections — note this and consult an attorney before responding."
|
|
109
|
+
],
|
|
110
|
+
"exit_strategy": {
|
|
111
|
+
"on_success": "Confirm the new refund amount, method, and date in writing within 24 hours. Operator should send a recap email immediately summarising the call.",
|
|
112
|
+
"on_failure": "Send a formal written demand letter (certified mail + email) citing the specific statute and the disputed charges. If unresolved within the demand-letter deadline, file in small-claims court. Consider a tenant attorney consult before filing if amounts are large.",
|
|
113
|
+
"follow_ups": [
|
|
114
|
+
"Operator sends recap email within 1 hour: call time, who spoke, what was promised or refused.",
|
|
115
|
+
"Send move-in / move-out photos as email attachments to support disputed items.",
|
|
116
|
+
"Calendar the response deadline; on the day of, escalate per failure-path if no response.",
|
|
117
|
+
"Research the jurisdiction's statutory bad-faith penalty — in some states it's 2x or 3x the wrongfully withheld amount."
|
|
118
|
+
]
|
|
119
|
+
},
|
|
120
|
+
"required_user_info": [
|
|
121
|
+
"Original deposit amount, amount returned, amount disputed",
|
|
122
|
+
"Move-out date and the statutory deadline for return in the jurisdiction",
|
|
123
|
+
"Itemized statement (if any) and any receipts attached",
|
|
124
|
+
"Move-in and move-out photos / videos",
|
|
125
|
+
"Move-out walkthrough record (see `move-out-walkthrough`)",
|
|
126
|
+
"Lease copy showing deposit terms"
|
|
127
|
+
],
|
|
128
|
+
"contributed_by": "housing-tenancy agent (v0.9.87 community drop)",
|
|
129
|
+
"updated_at": "2026-05-20T06:09:47Z"
|
|
130
|
+
}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "dispute-usage-spike-meter-reread",
|
|
3
|
+
"name": "Dispute a Usage-Spike Bill and Get a Meter Reread",
|
|
4
|
+
"version": "1.0.0",
|
|
5
|
+
"category": "customer-service",
|
|
6
|
+
"tags": [
|
|
7
|
+
"electric",
|
|
8
|
+
"gas",
|
|
9
|
+
"water",
|
|
10
|
+
"billing",
|
|
11
|
+
"meter-reread",
|
|
12
|
+
"dispute",
|
|
13
|
+
"phone-call",
|
|
14
|
+
"utility-telecom"
|
|
15
|
+
],
|
|
16
|
+
"description": "Call a utility to dispute a bill that's 2-5x the normal range, request a meter reread or test, and put the disputed amount into formal investigation status (which freezes shutoff threats while the investigation runs).",
|
|
17
|
+
"disclaimer": "Disputing a bill does not automatically suspend shutoff. You must explicitly invoke the utility's billing-dispute / investigation process and get a case number; only then is the disputed portion legally protected from collections in most jurisdictions.",
|
|
18
|
+
"context": {
|
|
19
|
+
"when_to_use": "The user's current bill is anomalously high vs. their 12-month rolling average AND there is no obvious cause (no new appliance, no guests, no leak they know of, weather not extreme). Best used within 30 days of the bill date — after that, the meter reading history has rolled and the case is harder to make.",
|
|
20
|
+
"preconditions": [
|
|
21
|
+
"User has the disputed bill in front of them with read date, prior read date, and kWh/therms/gallons used.",
|
|
22
|
+
"User has at least 6 months of prior bills for comparison (most utilities show this on the bill or in the portal).",
|
|
23
|
+
"User has checked for obvious causes: water leak (toilet flapper, irrigation), space heater, new fridge / freezer, EV charging, guests.",
|
|
24
|
+
"Photo of the current meter reading (smartphone, timestamped)."
|
|
25
|
+
],
|
|
26
|
+
"estimated_call_duration_minutes": 25
|
|
27
|
+
},
|
|
28
|
+
"principles": [
|
|
29
|
+
"Lead with data, not outrage. 'My bill is 3.2x my 12-month average' lands better than 'this is insane'.",
|
|
30
|
+
"There are three failure modes to test for, in order: (1) misread / estimated read, (2) meter malfunction, (3) actual usage (leak / failing appliance). Walk through them deliberately.",
|
|
31
|
+
"An 'estimated' read on the bill is the single most common cause — the meter reader couldn't get to it that month, so the system extrapolated, then 'caught up' all the missed usage on the next actual read.",
|
|
32
|
+
"A formal dispute changes the account state. Until it's formalised with a case number, you're just complaining — and complaints don't freeze shutoff timers.",
|
|
33
|
+
"If routed to a general billing queue when you need the meter-services / revenue-protection team, recognise it within 60 seconds and request a warm transfer that preserves your hold position."
|
|
34
|
+
],
|
|
35
|
+
"phrases": {
|
|
36
|
+
"opener": "Hi, I'm calling about my [month] bill for account [number]. It's $[amount] vs. my 12-month average of about $[amount], and the usage shows [X] [units] vs. my normal [Y]. I'd like to open a formal dispute and request a meter reread.",
|
|
37
|
+
"queue_check": "Quick check — are you in billing, or in meter services? I'm trying to get to whoever can authorise a reread, and I want to make sure I'm not burning your time.",
|
|
38
|
+
"transfer_request": "Could you do a warm transfer to meter services and stay on until they pick up? I want to keep my hold position with your team in case they bounce me back.",
|
|
39
|
+
"ask_estimated_read": "Can you tell me whether the prior read or this read was actual or estimated? I see an 'E' next to one of them on the bill.",
|
|
40
|
+
"request_reread": "I'd like to request a meter reread on-site, please. If the reread is within 5% of the billed reading, I'll accept the bill; if it's off, I want the bill recalculated.",
|
|
41
|
+
"request_meter_test": "If the reread confirms the high reading, I'd like the meter pulled and bench-tested. I understand there's typically no charge if the meter is found to be out of spec.",
|
|
42
|
+
"formalise_dispute": "I'd like to formally dispute the disputed portion under your billing-investigation process. Can you give me a case number and confirm that the disputed amount is excluded from any shutoff or late-fee action until the investigation closes?",
|
|
43
|
+
"ask_for_credit": "While the dispute is open, can you also apply a temporary budget-billing adjustment so I'm not paying the full disputed amount in the interim?",
|
|
44
|
+
"graceful_close": "Thanks. So I have case number [number], reread scheduled for [date], and the disputed $[amount] is on hold. I'll watch for the field tech and call back if I don't hear within [timeframe]."
|
|
45
|
+
},
|
|
46
|
+
"tactics": [
|
|
47
|
+
{
|
|
48
|
+
"name": "Open with the comparison",
|
|
49
|
+
"when": "First substantive turn.",
|
|
50
|
+
"script": "Use the `opener` phrase. The 'X vs. Y' framing immediately tells the rep this is a usage-anomaly dispute, not a 'I don't want to pay' call.",
|
|
51
|
+
"priority": 1
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
"name": "Check for estimated reads first",
|
|
55
|
+
"when": "Once the rep has the bill open.",
|
|
56
|
+
"script": "Use `ask_estimated_read`. If the prior read was estimated and this one is actual, the bill is doing make-up math on weeks of accumulated usage — that often resolves the dispute without a reread, via re-pro-rating the usage across the months.",
|
|
57
|
+
"priority": 2
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
"name": "Recognise wrong-queue and transfer cleanly",
|
|
61
|
+
"when": "Rep can take payment but cannot authorise a reread / test.",
|
|
62
|
+
"script": "Use `queue_check` and `transfer_request`. Meter services / field operations is the team that can dispatch a reread; general billing usually cannot.",
|
|
63
|
+
"priority": 3
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
"name": "Request reread, then test",
|
|
67
|
+
"when": "Estimated-read explanation does not resolve it.",
|
|
68
|
+
"script": "Use `request_reread`. Reread is fast and free. If reread matches, escalate to `request_meter_test` — meters do drift, especially older mechanical gas meters and induction water meters.",
|
|
69
|
+
"priority": 4
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
"name": "Formalise the dispute",
|
|
73
|
+
"when": "Before ending the call, regardless of whether reread is scheduled.",
|
|
74
|
+
"script": "Use `formalise_dispute`. This is the magic-word step — without a case number, the disputed amount remains collectable.",
|
|
75
|
+
"priority": 5
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
"name": "Negotiate interim relief",
|
|
79
|
+
"when": "Bill is unaffordable and reread will take days/weeks.",
|
|
80
|
+
"script": "Use `ask_for_credit`. Many utilities will accept the user paying their rolling-average bill in the interim, with the balance held pending investigation."
|
|
81
|
+
}
|
|
82
|
+
],
|
|
83
|
+
"boundaries": [
|
|
84
|
+
"Do NOT refuse to pay the undisputed portion (the rolling-average amount). That falls to collections and damages credit even with an open dispute.",
|
|
85
|
+
"Do NOT tamper with the meter while the dispute is open. Even a photo angle that suggests tampering can void the investigation.",
|
|
86
|
+
"Do NOT accept a verbal 'we'll fix it' without a case number. Verbal assurances vanish at shift change.",
|
|
87
|
+
"Do NOT escalate to public-utility-commission complaints in the same call you opened the dispute — give the utility's process at least one cycle to work."
|
|
88
|
+
],
|
|
89
|
+
"success_signals": [
|
|
90
|
+
"Case number issued and rep confirms disputed amount is on hold.",
|
|
91
|
+
"Estimated-read pattern identified and bill re-pro-rated on the call.",
|
|
92
|
+
"Reread scheduled with a date / window.",
|
|
93
|
+
"Interim budget adjustment applied."
|
|
94
|
+
],
|
|
95
|
+
"failure_signals": [
|
|
96
|
+
"Rep insists usage 'must be real' without offering reread or test.",
|
|
97
|
+
"Rep won't issue a case number — only a 'note on the account'.",
|
|
98
|
+
"Shutoff notice arrives after dispute is opened (in which case escalate immediately to the PUC).",
|
|
99
|
+
"Reread happens but bill is not recalculated despite a discrepancy."
|
|
100
|
+
],
|
|
101
|
+
"exit_strategy": {
|
|
102
|
+
"on_success": "Confirm case number, reread date, interim payment amount, and the rep's name. Calendar a follow-up for 3 days after the scheduled reread.",
|
|
103
|
+
"on_failure": "Ask for the formal complaint process and file with the state Public Utility Commission (PUC) or equivalent regulator. Many disputes get resolved within hours of the utility receiving a PUC notice.",
|
|
104
|
+
"follow_ups": [
|
|
105
|
+
"Photograph the meter reading the day of the call (timestamped) and again at the reread.",
|
|
106
|
+
"After resolution, audit the next 2 bills for correct re-billing.",
|
|
107
|
+
"If a leak was found, file the leak-adjustment paperwork most water utilities offer (one-time credit)."
|
|
108
|
+
]
|
|
109
|
+
},
|
|
110
|
+
"required_user_info": [
|
|
111
|
+
"Account number and service address",
|
|
112
|
+
"Disputed bill amount, period, and the printed usage figure",
|
|
113
|
+
"12-month rolling average usage and bill amount",
|
|
114
|
+
"Whether prior/current reads are marked actual or estimated",
|
|
115
|
+
"Any known causes ruled out (no new appliance, no leak found, etc.)",
|
|
116
|
+
"Photo of current meter reading"
|
|
117
|
+
],
|
|
118
|
+
"contributed_by": "utility-telecom agent (v0.9.87 community drop)",
|
|
119
|
+
"updated_at": "2026-05-20T06:09:47Z"
|
|
120
|
+
}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "dmv-vehicle-registration-renewal",
|
|
3
|
+
"name": "DMV: Vehicle Registration Renewal, Address Change, or License Replacement",
|
|
4
|
+
"version": "1.0.0",
|
|
5
|
+
"category": "civic",
|
|
6
|
+
"tags": [
|
|
7
|
+
"dmv",
|
|
8
|
+
"vehicle-registration",
|
|
9
|
+
"drivers-license",
|
|
10
|
+
"address-change",
|
|
11
|
+
"phone-call",
|
|
12
|
+
"state-government",
|
|
13
|
+
"government-services"
|
|
14
|
+
],
|
|
15
|
+
"description": "Call a state DMV / MVA / BMV / DOL to renew a vehicle registration, change the address on file, or order a replacement driver's license. Most DMVs prefer online self-service — this skill is the fallback when the online flow rejects the user or a hold/flag must be cleared by a human.",
|
|
16
|
+
"disclaimer": "Not legal advice. DMV procedures vary by state. The agent will not advise on traffic-court strategy, license-suspension appeals, or DUI consequences — those require an attorney or the state's hearing officer.",
|
|
17
|
+
"context": {
|
|
18
|
+
"when_to_use": "User cannot complete the task online (system rejects them, a flag/hold appears, an out-of-state transfer is needed, or the renewal window is too tight for mail). Also use when the user has received conflicting information from the website vs. a notice in the mail.",
|
|
19
|
+
"preconditions": [
|
|
20
|
+
"User has their driver's-license number OR last 4 of SSN (state-dependent).",
|
|
21
|
+
"User has the license-plate number and current registration card / VIN if renewing a vehicle.",
|
|
22
|
+
"User has the new address (with ZIP+4 if known) for an address change.",
|
|
23
|
+
"User knows whether they need a REAL ID upgrade or a standard renewal.",
|
|
24
|
+
"User has a callback number — DMV phone lines drop frequently."
|
|
25
|
+
],
|
|
26
|
+
"estimated_call_duration_minutes": 35
|
|
27
|
+
},
|
|
28
|
+
"principles": [
|
|
29
|
+
"DMV hold music is the longest in government. Settle in. Do NOT keep redialing — you lose your place.",
|
|
30
|
+
"Front-line agents read from a script. If your case is unusual, politely ask for a 'tier 2' or 'supervisor review' — they have lookup tools the front line does not.",
|
|
31
|
+
"Most DMVs route by ZIP / county. Calling the wrong field office wastes 40 minutes. Confirm you are at the right office before describing the issue.",
|
|
32
|
+
"Get a confirmation / reference number for ANY change. DMV systems are notoriously slow to propagate and the paper trail saves you later.",
|
|
33
|
+
"Recognize 'this can only be done in person' early — for many states, license replacement REQUIRES a field-office visit (REAL ID, photo capture). Don't burn 60 minutes on hold to be told to come in."
|
|
34
|
+
],
|
|
35
|
+
"phrases": {
|
|
36
|
+
"opener_renewal": "Hi, I'm trying to renew the registration on my vehicle. My plate is [PLATE] and my renewal notice says it's due [DATE]. The online portal won't let me complete the renewal — it's giving me [ERROR]. Can you help me figure out what's blocking it?",
|
|
37
|
+
"opener_address": "Hi, I need to update the address on my driver's license and vehicle registration. The new address is [ADDRESS]. Can we do both in one call?",
|
|
38
|
+
"opener_replacement": "Hi, I need a replacement driver's license — the original was [lost / stolen / damaged]. Can this be ordered by phone or do I need to come in?",
|
|
39
|
+
"confirm_right_office": "Just to confirm — am I at the office that handles [county/region]? I want to make sure I'm in the right queue.",
|
|
40
|
+
"ask_for_hold_reason": "The system says there's a hold or flag on my record. Can you tell me what it is and what office can clear it?",
|
|
41
|
+
"stall_documents": "Give me one second — I want to pull up the notice in front of me so I read the numbers correctly.",
|
|
42
|
+
"graceful_close_success": "Thank you. Before we hang up: can I have a confirmation number, your name or agent ID, and the expected date I'll see the change reflected online or receive the document in the mail?",
|
|
43
|
+
"graceful_close_failure": "I understand. Just so I know my next step — what's the best office, web page, or form for me to use, and is there a way to schedule an in-person appointment from here?"
|
|
44
|
+
},
|
|
45
|
+
"tactics": [
|
|
46
|
+
{
|
|
47
|
+
"name": "Verify you reached the correct office FIRST",
|
|
48
|
+
"when": "Within the first 60 seconds of reaching a human.",
|
|
49
|
+
"script": "Confirm the office handles the user's county/region and the task type. If you're at a call center that only handles licensing and the user needs registration, ask for the right transfer number before describing the full case.",
|
|
50
|
+
"priority": 1
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
"name": "Surface holds and flags before the renewal attempt",
|
|
54
|
+
"when": "User's online attempt failed with a generic error.",
|
|
55
|
+
"script": "Ask 'Can you check if there are any holds, flags, or outstanding items on the record?' Common blockers: unpaid toll, emissions/smog requirement, insurance lapse, parking citation, court-ordered suspension. Each routes to a different office.",
|
|
56
|
+
"priority": 2
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
"name": "Bundle related changes",
|
|
60
|
+
"when": "User needs both license + registration address changes.",
|
|
61
|
+
"script": "Most states will update both in one call IF you ask explicitly. Front-line reps default to one at a time.",
|
|
62
|
+
"priority": 3
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
"name": "Capture the document path",
|
|
66
|
+
"when": "Any record change is accepted.",
|
|
67
|
+
"script": "Ask: 'Will I get an updated card / sticker in the mail, do I need to print something, or is the change electronic-only?' DMV cards in the mail take 2–6 weeks; some states require the user to print a temporary registration.",
|
|
68
|
+
"priority": 4
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
"name": "Escalate to tier 2 / supervisor for unusual cases",
|
|
72
|
+
"when": "Front-line rep says 'system won't let me' but cannot explain why.",
|
|
73
|
+
"script": "Politely ask for a supervisor or a 'records specialist'. Many DMV systems have override codes that front-line agents cannot use.",
|
|
74
|
+
"priority": 5
|
|
75
|
+
}
|
|
76
|
+
],
|
|
77
|
+
"boundaries": [
|
|
78
|
+
"Do NOT give legal advice on tickets, suspensions, DUIs, or court-ordered restrictions — refer to an attorney or the issuing court.",
|
|
79
|
+
"Do NOT share SSN unless the rep has authenticated themselves and the field is necessary for lookup. Last 4 is usually enough.",
|
|
80
|
+
"Do NOT promise the user the renewal will arrive by a specific date if the rep gave a range — quote the range exactly.",
|
|
81
|
+
"Do NOT attempt to clear a court-ordered hold by phone — those require the originating court.",
|
|
82
|
+
"Do NOT claim REAL ID compliance unless the rep confirms it on this transaction."
|
|
83
|
+
],
|
|
84
|
+
"success_signals": [
|
|
85
|
+
"Rep gives a confirmation / reference number for the change.",
|
|
86
|
+
"Rep confirms an exact mail-out date or document arrival window.",
|
|
87
|
+
"Rep clears or identifies a previously unknown hold.",
|
|
88
|
+
"Rep offers to schedule an in-person appointment if the task can't be done by phone."
|
|
89
|
+
],
|
|
90
|
+
"failure_signals": [
|
|
91
|
+
"Rep insists the task can only be done in person at a field office (note this is NOT necessarily failure — capture the next step).",
|
|
92
|
+
"Rep cannot identify why the online portal rejected the user and refuses to escalate.",
|
|
93
|
+
"Hold time exceeds 60 minutes with no human pickup.",
|
|
94
|
+
"User has been transferred more than twice and is being routed in a loop."
|
|
95
|
+
],
|
|
96
|
+
"exit_strategy": {
|
|
97
|
+
"on_success": "Confirm the change, capture the confirmation number, agent name/ID, expected document arrival, and any temporary document (printable receipt, temp registration). Note the next renewal date in the user's calendar.",
|
|
98
|
+
"on_failure": "Capture the exact next step: which office, which form (DL-XX, REG-XX), in-person required Y/N, appointment URL. Report back to the operator so they can choose between rebooking, in-person visit, or mail-in.",
|
|
99
|
+
"follow_ups": [
|
|
100
|
+
"Calendar arrival of the new card/sticker; ping operator if it doesn't show within the quoted window.",
|
|
101
|
+
"If REAL ID was deferred, add a calendar reminder before the federal deadline.",
|
|
102
|
+
"If a hold was identified, dispatch a follow-up call to the office that owns the hold (court, tolling authority, insurance carrier)."
|
|
103
|
+
]
|
|
104
|
+
},
|
|
105
|
+
"required_user_info": [
|
|
106
|
+
"Driver's license number OR last 4 of SSN",
|
|
107
|
+
"License plate + VIN (for vehicle tasks)",
|
|
108
|
+
"Current and new address (with ZIP+4 if available)",
|
|
109
|
+
"Reason for replacement (lost / stolen / damaged / name change)",
|
|
110
|
+
"Whether the user wants REAL ID or standard",
|
|
111
|
+
"Callback number"
|
|
112
|
+
],
|
|
113
|
+
"hang_up_and_call_back_signals": [
|
|
114
|
+
"You realize you are at the WRONG office (e.g. licensing call center for a registration issue) — politely end and call the correct number.",
|
|
115
|
+
"You've been on hold > 75 minutes with no movement — try the next morning at opening (call volume drops 30–60% in the first hour).",
|
|
116
|
+
"Rep is reading from a script that does not match the user's situation and refuses to escalate — hang up, call back, and ask for tier 2 by name."
|
|
117
|
+
],
|
|
118
|
+
"contributed_by": "govt-services-pro agent (v0.9.87 community drop)",
|
|
119
|
+
"updated_at": "2026-05-20T06:09:47Z"
|
|
120
|
+
}
|