@agenticmail/core 0.9.32 → 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.d.cts +1 -1
- package/dist/index.d.ts +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": "reset-by-callback",
|
|
3
|
+
"name": "Reset by Hanging Up and Calling Back to a Different Rep",
|
|
4
|
+
"version": "1.0.1",
|
|
5
|
+
"category": "other",
|
|
6
|
+
"tags": [
|
|
7
|
+
"meta-skill",
|
|
8
|
+
"adaptive-strategy",
|
|
9
|
+
"phone-call",
|
|
10
|
+
"rep-routing",
|
|
11
|
+
"bias-reset",
|
|
12
|
+
"critical-reasoning"
|
|
13
|
+
],
|
|
14
|
+
"description": "Recognise when the current call has gone unrecoverable — bad rep luck, locked-in refusal, account flagged 'difficult', stale context — and reset cleanly by ending the call and dialing back. Different rep, different judgement, sometimes different policy interpretation. Done well, this is a legitimate tool; done badly, it's spam.",
|
|
15
|
+
"disclaimer": null,
|
|
16
|
+
"context": {
|
|
17
|
+
"when_to_use": "Any of: (a) repeated unrecoverable refusal where you've already escalated once, (b) rep is clearly improvising and won't stabilise, (c) rep has flagged the call hostile / 'note on account', (d) call is going past 30+ minutes with no movement, (e) you suspect you got the wrong department but the rep refuses to transfer.",
|
|
18
|
+
"preconditions": [
|
|
19
|
+
"Agent has tried at least one escalation and one reframing within the current call.",
|
|
20
|
+
"User has authorised additional call attempts (or per-call discretion).",
|
|
21
|
+
"Agent can end the current call politely without burning future leverage."
|
|
22
|
+
],
|
|
23
|
+
"estimated_call_duration_minutes": 5
|
|
24
|
+
},
|
|
25
|
+
"principles": [
|
|
26
|
+
"Different reps have different latitude, different moods, different training cohorts, and different scripts. The dispersion is real — not folklore.",
|
|
27
|
+
"Calling back is NOT a punishment to the rep. It's resource-rotation. Hang up cleanly without burning the relationship; you might get the same rep back.",
|
|
28
|
+
"Account notes follow the user, not the call. If you behaved well, the next rep often inherits a clean slate. If you escalated to hostility, the next rep starts with a 'handle with care' tag.",
|
|
29
|
+
"Time-of-day matters. Retention teams are often best staffed midday weekdays. Late-night reps often have less authority. Some companies route by region in ways that shift judgement.",
|
|
30
|
+
"Do NOT call back more than 2-3 times on the same goal in the same day. After that, you're harassing — and the system is now optimised against you.",
|
|
31
|
+
"Between calls, change something: route, time, ask phrasing, IVR path. Repeating identical inputs reproduces identical outputs."
|
|
32
|
+
],
|
|
33
|
+
"phrases": {
|
|
34
|
+
"clean_close_current_call": "Thanks for the help on this — I'm going to think about my options and may call back. Appreciate your time.",
|
|
35
|
+
"fresh_call_opener": "Hi, I have a question about [topic]. Could you help, or is there a team better suited?",
|
|
36
|
+
"new_route_request": "Could you route me to [retention / loyalty / billing / supervisor] directly? I think that's the best fit for what I'm trying to do.",
|
|
37
|
+
"ivr_correction": "[Internal] On callback, choose [different IVR option] instead of [the option that landed you in the wrong queue].",
|
|
38
|
+
"honest_re_disclosure": "I called earlier today and we couldn't quite get there. I want to take another swing with a fresh look. Here's what I'm trying to accomplish: [restated ask]."
|
|
39
|
+
},
|
|
40
|
+
"tactics": [
|
|
41
|
+
{
|
|
42
|
+
"name": "Recognise the unrecoverable call",
|
|
43
|
+
"when": "Any of the trigger conditions above.",
|
|
44
|
+
"script": "Internal check: have you escalated once? reframed once? checked for invented policy? If yes and still no movement, the call is unrecoverable from this rep. Continuing wastes leverage.",
|
|
45
|
+
"priority": 1
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
"name": "Close the current call cleanly",
|
|
49
|
+
"when": "Decision made to reset.",
|
|
50
|
+
"script": "Use `clean_close_current_call`. Tone neutral, even warm. No grievance, no threat. Future-you needs the rep's good notes.",
|
|
51
|
+
"priority": 2
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
"name": "Change at least one variable before redial",
|
|
55
|
+
"when": "Between calls.",
|
|
56
|
+
"script": "Pick at least one: IVR path, time of day, framing of the ask, whether you ask for retention immediately, language used. Don't change everything — change deliberately.",
|
|
57
|
+
"priority": 3
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
"name": "Open the new call without leading with the old one",
|
|
61
|
+
"when": "Reaching a new rep.",
|
|
62
|
+
"script": "Use `fresh_call_opener`. Treat the new rep as new. Do NOT open with 'the last rep said no' — that primes them to confirm the prior refusal.",
|
|
63
|
+
"priority": 4
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
"name": "Mention prior call only if useful",
|
|
67
|
+
"when": "If the prior call resulted in a partial offer, a promise, or a documented note.",
|
|
68
|
+
"script": "Use `honest_re_disclosure`. Cite confirmation numbers, not grievances. Past-rep behaviour is data; weaponising it makes the new rep defensive."
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
"name": "Route deliberately by IVR",
|
|
72
|
+
"when": "Pre-dial.",
|
|
73
|
+
"script": "Choose the IVR path that lands you in the team with authority for your ask. Retention is rarely the front menu — often it's 'thinking of cancelling' or 'change plan'."
|
|
74
|
+
}
|
|
75
|
+
],
|
|
76
|
+
"alternative_interpretations": [
|
|
77
|
+
{
|
|
78
|
+
"observation": "First rep refused, second rep refused identically.",
|
|
79
|
+
"consider": [
|
|
80
|
+
"The refusal is real, written policy — three reps will give the same answer. Stop calling.",
|
|
81
|
+
"Both reps were in the same training cohort and quoted the same script — try a different time of day to hit a different cohort.",
|
|
82
|
+
"Account is flagged in a way every rep can see. Ask the next rep 'is there a note on my account?' before escalating.",
|
|
83
|
+
"Your framing is consistently triggering the same refusal branch — try a different reframing.",
|
|
84
|
+
"Wrong department both times — try a deliberate retention/loyalty/specialist route."
|
|
85
|
+
],
|
|
86
|
+
"next_action": "If the refusal language is identical between reps, treat it as real policy. If it varies, keep trying. One more rotation, not infinite."
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
"observation": "Second rep is suddenly much more accommodating than the first.",
|
|
90
|
+
"consider": [
|
|
91
|
+
"Genuine dispersion — real and common.",
|
|
92
|
+
"Second rep has higher authority (retention vs. tier-1).",
|
|
93
|
+
"Second rep is new and unsure of the limit — accept gracefully but get it in writing IMMEDIATELY.",
|
|
94
|
+
"Note on the account asks for retention to make a save offer — first rep was the gate, second was the close.",
|
|
95
|
+
"Time of day or volume changed the rep's calculus."
|
|
96
|
+
],
|
|
97
|
+
"next_action": "Accept the better offer with full lifecycle confirmation. Get it in writing before hanging up — re-call risk is asymmetric."
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
"observation": "Third call gets the same refusal as one and two.",
|
|
101
|
+
"consider": [
|
|
102
|
+
"Real policy. Stop.",
|
|
103
|
+
"User has hit a system-level flag that won't move via phone — try written escalation or executive customer service.",
|
|
104
|
+
"Channel-specific limit — try chat, email, or in-person branch.",
|
|
105
|
+
"Regulatory complaint may be the path forward."
|
|
106
|
+
],
|
|
107
|
+
"next_action": "Disengage from phone. Report to user with full call history. Suggest written escalation or alternative channel."
|
|
108
|
+
}
|
|
109
|
+
],
|
|
110
|
+
"boundaries": [
|
|
111
|
+
"Do NOT call more than 2-3 times in a day on the same goal — diminishing returns plus harassment risk.",
|
|
112
|
+
"Do NOT lie to the new rep about the prior call. Selective omission is fine; fabrication is not.",
|
|
113
|
+
"Do NOT impersonate a different account holder when calling back.",
|
|
114
|
+
"Do NOT use callback as a punishment ('I'll call until someone gives me what I want'). Use it as a sampling strategy."
|
|
115
|
+
],
|
|
116
|
+
"success_signals": [
|
|
117
|
+
"New rep gives a meaningfully different answer.",
|
|
118
|
+
"New rep transfers to the right team without resistance.",
|
|
119
|
+
"New rep has no negative note on your account.",
|
|
120
|
+
"Resolution achieved within the second or third call."
|
|
121
|
+
],
|
|
122
|
+
"failure_signals": [
|
|
123
|
+
"Multiple reps converge on the same refusal in the same language.",
|
|
124
|
+
"Each callback inherits more 'handle with care' tone — calls are getting harder, not easier.",
|
|
125
|
+
"User patience is exhausted before a path appears.",
|
|
126
|
+
"Account starts hitting rate limits or security holds."
|
|
127
|
+
],
|
|
128
|
+
"exit_strategy": {
|
|
129
|
+
"on_success": "Document everything: which call attempt, which rep, which framing succeeded. Adds to the playbook for next time.",
|
|
130
|
+
"on_failure": "Stop. Switch channels (written complaint, executive customer service, regulator if applicable). Report to user with the full call log.",
|
|
131
|
+
"follow_ups": [
|
|
132
|
+
"Log call times, rep names, reference numbers, exact refusal wording.",
|
|
133
|
+
"Note what variable changed between attempts and whether the change mattered."
|
|
134
|
+
]
|
|
135
|
+
},
|
|
136
|
+
"required_user_info": [
|
|
137
|
+
"Authority to make multiple call attempts.",
|
|
138
|
+
"Time budget for total resolution effort.",
|
|
139
|
+
"Channels other than phone the user is willing to try."
|
|
140
|
+
],
|
|
141
|
+
"contributed_by": "critical-reasoning agent (v0.9.87 community drop)",
|
|
142
|
+
"updated_at": "2026-05-20T06:09:47Z"
|
|
143
|
+
}
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "resist-urgency-manipulation",
|
|
3
|
+
"name": "Resist Urgency Manipulation and Time-Pressure Tactics",
|
|
4
|
+
"version": "1.0.0",
|
|
5
|
+
"category": "other",
|
|
6
|
+
"tags": [
|
|
7
|
+
"meta-skill",
|
|
8
|
+
"adversarial-robustness",
|
|
9
|
+
"manipulation-defense",
|
|
10
|
+
"phone-call",
|
|
11
|
+
"decision-quality",
|
|
12
|
+
"critical-reasoning"
|
|
13
|
+
],
|
|
14
|
+
"description": "Detect when the rep is using time pressure ('today only', 'last chance', 'expires when we hang up') to short-circuit evaluation, and neutralise it without burning the call. Force every urgent claim to either justify itself or stand aside.",
|
|
15
|
+
"disclaimer": null,
|
|
16
|
+
"context": {
|
|
17
|
+
"when_to_use": "Any moment a rep introduces urgency: limited-time offers, 'good only on this call', countdown timers, 'I can hold this for 5 minutes', 'we're about to close the program', threats of service interruption.",
|
|
18
|
+
"preconditions": [
|
|
19
|
+
"Agent has authority to pause, request a callback, or end the call without accepting.",
|
|
20
|
+
"Agent has time enough to ask one or two verification questions before deciding."
|
|
21
|
+
],
|
|
22
|
+
"estimated_call_duration_minutes": 5
|
|
23
|
+
},
|
|
24
|
+
"principles": [
|
|
25
|
+
"Urgency is the cheapest manipulation technique because it works on humans and AIs both. Detecting it is the first defense; refusing to be paced by it is the second.",
|
|
26
|
+
"There are two kinds of urgency: TRUE (regulatory deadlines, real campaign end dates, service-cutoff dates) and MANUFACTURED (sales pressure, 'today only' tactics, fake-scarcity offers). Behavioural test: does asking 'can I think about it and call back?' kill the offer entirely? If yes, it was manufactured.",
|
|
27
|
+
"A good decision tomorrow beats a fast decision today, unless the cost of waiting is genuinely quantifiable and significant.",
|
|
28
|
+
"Always slow the call physically: 'Give me a moment', 'Let me write that down', 'Let me check one thing'. Speed is the manipulator's home turf.",
|
|
29
|
+
"Recorded calls cut both ways. 'Just to confirm, this offer is only good in the next 60 seconds?' on record forces the rep to either confirm (creating documentation) or back off the claim.",
|
|
30
|
+
"Never accept an offer in a state of stress. If you notice your own reasoning narrowing, that IS the manipulation working."
|
|
31
|
+
],
|
|
32
|
+
"phrases": {
|
|
33
|
+
"request_pause": "Hold on one moment — I want to think about this carefully. Can you stay on the line for a minute or two?",
|
|
34
|
+
"test_urgency": "I'd like to think about it and call back tomorrow. Will the offer still be available then, or is this strictly a today-only thing?",
|
|
35
|
+
"ask_what_changes": "What changes if I call back tomorrow versus accepting now? I want to understand the actual difference.",
|
|
36
|
+
"ask_for_writing_first": "I'd love to take a look at this in writing before I commit. Can you email it now, and we can finalise in five minutes?",
|
|
37
|
+
"decline_to_be_paced": "I understand there's a deadline. I still need a few minutes to think it through — that's how I make these decisions.",
|
|
38
|
+
"callback_request": "If we can't lock it in now, can you note the offer on my account so a colleague can honour it if I call back tomorrow?"
|
|
39
|
+
},
|
|
40
|
+
"tactics": [
|
|
41
|
+
{
|
|
42
|
+
"name": "Slow the physical pace of the call",
|
|
43
|
+
"when": "First sign of urgency language.",
|
|
44
|
+
"script": "Use `request_pause`. Insert a deliberate beat — typing, breathing, 'let me think'. Disrupts the cadence the manipulator is trying to set.",
|
|
45
|
+
"priority": 1
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
"name": "Test whether the urgency is real",
|
|
49
|
+
"when": "Rep claims the offer expires.",
|
|
50
|
+
"script": "Use `test_urgency`. The answer reveals everything. Real deadlines have specific dates and reasons. Manufactured ones have neither.",
|
|
51
|
+
"priority": 2
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
"name": "Ask what actually changes",
|
|
55
|
+
"when": "Rep insists the deadline matters.",
|
|
56
|
+
"script": "Use `ask_what_changes`. Force the rep to name the specific delta. If they can't, the urgency is manufactured.",
|
|
57
|
+
"priority": 3
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
"name": "Insist on writing before commit",
|
|
61
|
+
"when": "Pressure is escalating.",
|
|
62
|
+
"script": "Use `ask_for_writing_first`. The five-minute write-and-confirm window is reasonable to any genuine offer.",
|
|
63
|
+
"priority": 4
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
"name": "Refuse to be paced",
|
|
67
|
+
"when": "Rep keeps pressing.",
|
|
68
|
+
"script": "Use `decline_to_be_paced`. Calm, firm, no apology. Manipulators escalate when they sense urgency is failing — match calm to their escalation."
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
"name": "Get the offer noted on the account",
|
|
72
|
+
"when": "Ending without accepting.",
|
|
73
|
+
"script": "Use `callback_request`. Even if the rep claims it 'can't be saved', many CRMs allow notes. Worth the ask."
|
|
74
|
+
}
|
|
75
|
+
],
|
|
76
|
+
"alternative_interpretations": [
|
|
77
|
+
{
|
|
78
|
+
"observation": "Rep says 'this offer is only good today'.",
|
|
79
|
+
"consider": [
|
|
80
|
+
"Genuine campaign end (rare, but verifiable — ask for the campaign name).",
|
|
81
|
+
"It's good every day, but they're trained to say 'today only' as a closer.",
|
|
82
|
+
"It's good every day, but tomorrow it'll be presented as a different SKU with worse hooks.",
|
|
83
|
+
"It's good today AND tomorrow, but for THIS rep's quota, it has to be today.",
|
|
84
|
+
"Pricing genuinely changes Monday — ask if calling back Sunday would work."
|
|
85
|
+
],
|
|
86
|
+
"next_action": "Use `test_urgency`. The honest answer determines whether to commit or call back."
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
"observation": "Rep says 'if you hang up I can't get this rate back'.",
|
|
90
|
+
"consider": [
|
|
91
|
+
"Specific rep-level discretion they used and burned — possible but rare.",
|
|
92
|
+
"Untrue; the rate is in their toolkit and any rep on that team can re-pull it.",
|
|
93
|
+
"True for this specific bundle but a comparable one is available.",
|
|
94
|
+
"Designed to prevent you from getting a second opinion."
|
|
95
|
+
],
|
|
96
|
+
"next_action": "Reply calmly: 'I understand. I'd rather risk losing this rate than commit while I'm still thinking. Let me call back if I decide it's right.' Their response reveals the truth."
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
"observation": "Rep references a service-cutoff or shutoff deadline.",
|
|
100
|
+
"consider": [
|
|
101
|
+
"Real deadline — verify against the bill / shutoff notice if available.",
|
|
102
|
+
"Real deadline but later than rep claims — exact dates matter; ask.",
|
|
103
|
+
"Soft deadline — many shutoffs have a grace period.",
|
|
104
|
+
"False deadline — used to force payment under pressure."
|
|
105
|
+
],
|
|
106
|
+
"next_action": "Ask: 'What's the EXACT date and time service would be interrupted? And is that on a written notice somewhere I can verify?'"
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
"observation": "You notice yourself feeling rushed and starting to agree.",
|
|
110
|
+
"consider": [
|
|
111
|
+
"The manipulation is working. You are now the data point.",
|
|
112
|
+
"There is genuine time pressure and your instincts are correct.",
|
|
113
|
+
"You're tired/distracted and conflating fatigue with urgency.",
|
|
114
|
+
"The offer is genuinely good AND time-pressured AND fine to take."
|
|
115
|
+
],
|
|
116
|
+
"next_action": "Force a 60-second physical pause. Re-evaluate. If you still want to accept, do — but only after the pause. Decisions made AFTER the pause are not manipulated decisions."
|
|
117
|
+
}
|
|
118
|
+
],
|
|
119
|
+
"boundaries": [
|
|
120
|
+
"Do NOT accept any offer while in an explicit time-pressure state — pause first, accept second.",
|
|
121
|
+
"Do NOT escalate hostility to break urgency — calm refusal works better.",
|
|
122
|
+
"Do NOT lie about needing to consult someone if you don't — but DO use a genuine consult as a legitimate pause ('I need to check with the operator').",
|
|
123
|
+
"Do NOT commit to anything irreversible (contract, cancellation, payment) under urgency without re-confirming with the user."
|
|
124
|
+
],
|
|
125
|
+
"success_signals": [
|
|
126
|
+
"Rep admits the offer is available beyond today.",
|
|
127
|
+
"Rep agrees to send the offer in writing before commit.",
|
|
128
|
+
"Rep notes the offer on the account for a callback.",
|
|
129
|
+
"Your own reasoning visibly slows down — you can articulate why you would or wouldn't take the offer."
|
|
130
|
+
],
|
|
131
|
+
"failure_signals": [
|
|
132
|
+
"Rep refuses to acknowledge any callback window.",
|
|
133
|
+
"Rep escalates urgency rather than answering the verification question.",
|
|
134
|
+
"Rep declines to provide written terms before commitment.",
|
|
135
|
+
"You notice the deal sounds materially better the more pressure is applied — usually means the post-promo terms are materially worse."
|
|
136
|
+
],
|
|
137
|
+
"exit_strategy": {
|
|
138
|
+
"on_success": "Accept calmly, after the pause, with terms in writing.",
|
|
139
|
+
"on_failure": "Decline politely. End the call. Calendar a callback at a time of the user's choosing — not the rep's.",
|
|
140
|
+
"follow_ups": [
|
|
141
|
+
"Note the rep's name, the offer's claimed expiration, and the exact wording.",
|
|
142
|
+
"If the same offer turns out to be available later, the user has documentation of bad-faith urgency."
|
|
143
|
+
]
|
|
144
|
+
},
|
|
145
|
+
"required_user_info": [
|
|
146
|
+
"Whether the user has time to accept a pause, or genuinely needs the call resolved now.",
|
|
147
|
+
"How much the user values certainty vs. speed.",
|
|
148
|
+
"Whether the user wants to be re-pinged before commitment under any urgency."
|
|
149
|
+
],
|
|
150
|
+
"contributed_by": "critical-reasoning agent (v0.9.87 community drop)",
|
|
151
|
+
"updated_at": "2026-05-20T06:09:47Z"
|
|
152
|
+
}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "revisit-totaling-decision",
|
|
3
|
+
"name": "Get an Adjuster to Revisit a Totaling Decision",
|
|
4
|
+
"version": "1.0.0",
|
|
5
|
+
"category": "finance-admin",
|
|
6
|
+
"tags": [
|
|
7
|
+
"auto",
|
|
8
|
+
"total-loss",
|
|
9
|
+
"actual-cash-value",
|
|
10
|
+
"acv",
|
|
11
|
+
"salvage",
|
|
12
|
+
"phone-call",
|
|
13
|
+
"insurance"
|
|
14
|
+
],
|
|
15
|
+
"description": "Challenge an auto-insurer's total-loss valuation. Force a line-item breakdown of the actual-cash-value (ACV) calculation, surface comparable vehicles the carrier excluded, and either raise the offer or convert it to a repair authorization. Total-loss valuations are formulaic — and the formula has knobs.",
|
|
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": "The carrier has declared the vehicle a total loss and either (a) made a low ACV offer, or (b) totaled a vehicle the user believes is economically repairable. Use BEFORE accepting the offer or signing title-transfer paperwork.",
|
|
19
|
+
"preconditions": [
|
|
20
|
+
"Claim number and adjuster name known.",
|
|
21
|
+
"Carrier's ACV offer in writing (including the valuation report — CCC, Mitchell, Audatex are common vendors).",
|
|
22
|
+
"User has researched comparable vehicles (same year, make, model, trim, mileage, condition) on Kelley Blue Book, Edmunds, NADA, local Craigslist, AutoTrader, CarGurus.",
|
|
23
|
+
"User has documentation of recent repairs, upgrades, low mileage, exceptional condition (receipts, photos, service records)."
|
|
24
|
+
],
|
|
25
|
+
"estimated_call_duration_minutes": 25
|
|
26
|
+
},
|
|
27
|
+
"principles": [
|
|
28
|
+
"Total-loss valuations come from a vendor report (CCC ONE / Mitchell / Audatex). It's a printable document with comparables — demand it.",
|
|
29
|
+
"The comparables in the report are often (a) further geographically than they should be, (b) lower-trim, (c) higher-mileage, (d) reflect 'asking' prices marked down. Each of those is a negotiable knob.",
|
|
30
|
+
"Repair-vs-total is an arithmetic threshold (usually 70-80% of ACV depending on state). Raise ACV and the math may flip back to repair.",
|
|
31
|
+
"Local market matters. A vehicle in a desirable color or trim, or in a tight regional market, has real comparables the report missed.",
|
|
32
|
+
"Don't argue emotion ('this car has sentimental value'). Argue arithmetic ('comp #3 is 80 miles away in a different market; here are three local comps within 20 miles').",
|
|
33
|
+
"Pre-loss upgrades (new tires, recent timing belt, premium audio) are 'adjustments' the vendor system has fields for. Demand they be added."
|
|
34
|
+
],
|
|
35
|
+
"phrases": {
|
|
36
|
+
"opener": "Hi, I'm calling about claim [number]. I've received the total-loss valuation of [amount] and I'd like to walk through it line-by-line. Could you pull up the vendor valuation report?",
|
|
37
|
+
"request_valuation_report": "Could you send me a copy of the full CCC / Mitchell / Audatex valuation report — the one with the comparable vehicles listed? I want to review each comparable.",
|
|
38
|
+
"challenge_comparables": "Comparable #[N] is [distance] miles away in a different market. Comparables within [20-30] miles of the loss location would be more accurate. Can we substitute with local market data?",
|
|
39
|
+
"challenge_condition_grade": "The report grades the vehicle's condition as [grade]. Based on [service records / recent inspection], the actual condition is closer to [higher grade]. Can we re-grade and re-run?",
|
|
40
|
+
"add_upgrades": "The valuation didn't include [recent tires / brakes / timing belt / battery / upgrade]. I have receipts dated [date] totaling [amount]. Can you add those as adjustments?",
|
|
41
|
+
"challenge_total_threshold": "If the ACV is recalculated to [new number], the repair-to-ACV ratio drops below the carrier's total threshold of [X%]. At that point can we authorize the repair instead?",
|
|
42
|
+
"request_independent_appraisal": "My policy includes an appraisal clause. I'd like to invoke it: I'll appoint an appraiser, the carrier appoints one, and they pick an umpire if needed. Could you walk me through that process?",
|
|
43
|
+
"graceful_close": "Thanks. To confirm: you'll re-run the valuation including [adjustments] and send the updated report by [date]. I haven't accepted the current offer."
|
|
44
|
+
},
|
|
45
|
+
"tactics": [
|
|
46
|
+
{
|
|
47
|
+
"name": "Demand the valuation report",
|
|
48
|
+
"when": "First substantive turn.",
|
|
49
|
+
"script": "Use the `request_valuation_report` phrase. Without the report, the negotiation is over the adjuster's summary — which is the carrier's framing. The report itself has the comparable VINs, distances, and condition grades.",
|
|
50
|
+
"priority": 1
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
"name": "Challenge distant comparables",
|
|
54
|
+
"when": "Report includes comparables more than 30 miles away.",
|
|
55
|
+
"script": "Use the `challenge_comparables` phrase. Local markets vary; the report's algorithm pulls broadly to find low comps. Substitute with the user's pre-prepared local comps.",
|
|
56
|
+
"priority": 2
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
"name": "Re-grade the condition",
|
|
60
|
+
"when": "Report grades vehicle 'average' or below.",
|
|
61
|
+
"script": "Use the `challenge_condition_grade` phrase. Each grade is worth real money. Service records, low mileage, garage-kept, single-owner, recent detail — these justify a grade bump.",
|
|
62
|
+
"priority": 3
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
"name": "Add recent upgrades and maintenance",
|
|
66
|
+
"when": "Mid-call, after grade.",
|
|
67
|
+
"script": "Use the `add_upgrades` phrase. Tires/brakes/timing-belt/battery/transmission flush all have line items in the valuation system. Receipts within 12 months are routinely accepted.",
|
|
68
|
+
"priority": 4
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
"name": "Push to flip back to repair",
|
|
72
|
+
"when": "Vehicle is near the total threshold.",
|
|
73
|
+
"script": "Use the `challenge_total_threshold` phrase. If the math drops repair below the threshold, the carrier is often willing to authorize repair rather than fight ACV.",
|
|
74
|
+
"priority": 5
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
"name": "Invoke the appraisal clause",
|
|
78
|
+
"when": "Adjuster refuses to re-run after legitimate adjustments are presented.",
|
|
79
|
+
"script": "Use the `request_independent_appraisal` phrase. Almost every auto policy has an appraisal clause as a binding-but-cheap arbitration. Carriers often improve their offer rather than go through it.",
|
|
80
|
+
"priority": 6
|
|
81
|
+
}
|
|
82
|
+
],
|
|
83
|
+
"boundaries": [
|
|
84
|
+
"Do NOT sign the title-transfer or release on this call — that locks in the ACV. Route via `ask_operator`.",
|
|
85
|
+
"Do NOT accept the offer verbally, even casually. 'That sounds reasonable' can be cited later.",
|
|
86
|
+
"Do NOT misrepresent the vehicle's condition or mileage. The carrier verifies.",
|
|
87
|
+
"Do NOT fabricate comparable listings. Use real, dated screenshots/URLs.",
|
|
88
|
+
"Do NOT let the adjuster impose an artificial deadline ('you have to decide by Friday'). Storage fees and rental are separate negotiations.",
|
|
89
|
+
"Do NOT discuss prior damage that wasn't on the loss report unless it's directly relevant — could trigger fraud review."
|
|
90
|
+
],
|
|
91
|
+
"success_signals": [
|
|
92
|
+
"Adjuster agrees to re-run the valuation with adjustments.",
|
|
93
|
+
"Adjuster substitutes distant comparables with local ones.",
|
|
94
|
+
"Adjuster re-grades condition upward.",
|
|
95
|
+
"Adjuster adds maintenance/upgrade adjustments.",
|
|
96
|
+
"Adjuster flips the decision back to repair.",
|
|
97
|
+
"Adjuster acknowledges the appraisal clause and walks through it."
|
|
98
|
+
],
|
|
99
|
+
"failure_signals": [
|
|
100
|
+
"Adjuster refuses to share the valuation report.",
|
|
101
|
+
"Adjuster says 'the system is final' (it isn't — supervisors and re-runs exist).",
|
|
102
|
+
"Adjuster pressures a same-call decision.",
|
|
103
|
+
"Adjuster threatens storage fees as a deadline."
|
|
104
|
+
],
|
|
105
|
+
"exit_strategy": {
|
|
106
|
+
"on_success": "Confirm what adjustments will be re-run, the new-report ETA, that the original offer has not been accepted, and that storage/rental are extended through the re-run. Email a recap.",
|
|
107
|
+
"on_failure": "Document the refusal. Route to `ask_operator` with options: (1) invoke appraisal clause formally in writing, (2) DOI complaint, (3) attorney referral if loss is significant.",
|
|
108
|
+
"follow_ups": [
|
|
109
|
+
"Email a recap immediately.",
|
|
110
|
+
"Calendar the new-report ETA.",
|
|
111
|
+
"Prepare appraisal-clause invocation letter as a backup.",
|
|
112
|
+
"Keep the rental car / storage status documented daily."
|
|
113
|
+
]
|
|
114
|
+
},
|
|
115
|
+
"required_user_info": [
|
|
116
|
+
"Claim number and adjuster name",
|
|
117
|
+
"Carrier's current ACV offer and the valuation report (CCC/Mitchell/Audatex)",
|
|
118
|
+
"Vehicle details: year/make/model/trim/mileage/options",
|
|
119
|
+
"3-5 local comparable listings the user has pre-researched",
|
|
120
|
+
"Receipts for recent maintenance/upgrades (last 12-24 months)",
|
|
121
|
+
"Whether operator authorises invoking the appraisal clause"
|
|
122
|
+
],
|
|
123
|
+
"contributed_by": "insurance-claims agent (v0.9.87 community drop)",
|
|
124
|
+
"updated_at": "2026-05-20T06:09:47Z"
|
|
125
|
+
}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "roadside-assistance-dispatch",
|
|
3
|
+
"name": "Dispatch Roadside Assistance with Timing and Confirmation",
|
|
4
|
+
"version": "1.0.0",
|
|
5
|
+
"category": "finance-admin",
|
|
6
|
+
"tags": [
|
|
7
|
+
"roadside",
|
|
8
|
+
"tow",
|
|
9
|
+
"dispatch",
|
|
10
|
+
"eta",
|
|
11
|
+
"auto",
|
|
12
|
+
"phone-call",
|
|
13
|
+
"insurance"
|
|
14
|
+
],
|
|
15
|
+
"description": "Call the carrier's roadside assistance line, dispatch a tow or service truck to a stranded driver, and get a confirmed ETA, driver name, truck number, and destination locked in — with a fallback plan if the ETA slips.",
|
|
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": "User is stranded (flat tire, dead battery, lockout, fuel-out, mechanical breakdown, accident-related tow) and needs the carrier's roadside benefit dispatched. Use immediately after confirming the user is in a SAFE location — safety overrides everything.",
|
|
19
|
+
"preconditions": [
|
|
20
|
+
"User is in a safe location (off the roadway, with hazard lights, behind a barrier if available, or has called 911 if not).",
|
|
21
|
+
"Policy number or member ID ready, OR phone number on file for lookup.",
|
|
22
|
+
"Vehicle location — cross-streets, mile marker, GPS coordinates, or pinned location URL.",
|
|
23
|
+
"Vehicle year/make/model/color and plate number.",
|
|
24
|
+
"Destination for the tow if applicable (preferred body shop, repair shop, or user's home/work)."
|
|
25
|
+
],
|
|
26
|
+
"estimated_call_duration_minutes": 15
|
|
27
|
+
},
|
|
28
|
+
"principles": [
|
|
29
|
+
"Safety first. If the user is in traffic, on an interstate shoulder, or in danger — 911 and a non-roadside tow may be the right call. Roadside is for non-emergency.",
|
|
30
|
+
"ETAs are estimates. Confirm a 'callback if delayed' threshold (commonly 15 minutes past ETA).",
|
|
31
|
+
"Dispatch confirmation = (a) provider company name, (b) truck/driver name or ID, (c) ETA window, (d) callback number. Without those four, you have a vague promise.",
|
|
32
|
+
"Tow destination matters. Towing to a non-network shop can change repair authorization paths and rental coverage. Confirm the destination upfront.",
|
|
33
|
+
"Mileage limits exist on roadside benefits (commonly 15-100 miles depending on plan). If destination is beyond the limit, the user pays the overage — confirm before dispatch.",
|
|
34
|
+
"If the carrier dispatch is hours away, third-party tows (paid out-of-pocket then reimbursed) are often faster — confirm the reimbursement process before going off-network."
|
|
35
|
+
],
|
|
36
|
+
"phrases": {
|
|
37
|
+
"opener": "Hi, I need roadside dispatch for [vehicle] at [location]. The situation is [flat tire / lockout / dead battery / fuel out / accident tow]. Driver is [safe / in traffic, needs urgent dispatch]. Policy/member [number].",
|
|
38
|
+
"confirm_safety": "Before we go further — is the driver in a safe location off the roadway with hazard lights on? If not, the priority is moving to safety or calling 911 first.",
|
|
39
|
+
"request_eta_window": "What's the dispatch ETA window? Not an estimate — a window, like 30-45 minutes.",
|
|
40
|
+
"request_dispatch_details": "Could you give me the dispatched provider's company name, truck number or driver name, and their direct callback number?",
|
|
41
|
+
"confirm_destination_and_mileage": "Tow destination is [shop name and address]. That's [N] miles from the current location. Is that within the roadside benefit's mileage cap, and if not, what's the per-mile overage rate?",
|
|
42
|
+
"set_callback_threshold": "If the truck doesn't arrive within 15 minutes after the ETA window closes, please call me back proactively so we can decide whether to dispatch a backup.",
|
|
43
|
+
"ask_reimbursement_path": "If your dispatch ETA is too long for the driver's safety, can the user call a local tow and submit for reimbursement? What's the process — receipts, mileage, paperwork?",
|
|
44
|
+
"graceful_close": "Thank you. To confirm: [provider] truck [N], driver [name], ETA [window], destination [shop], mileage cap [N], callback if delayed past [time]. Driver will stay at the vehicle / move to a safe spot nearby."
|
|
45
|
+
},
|
|
46
|
+
"tactics": [
|
|
47
|
+
{
|
|
48
|
+
"name": "Confirm safety FIRST",
|
|
49
|
+
"when": "First substantive turn.",
|
|
50
|
+
"script": "Use the `confirm_safety` phrase before getting into dispatch logistics. If the driver isn't safe, no dispatch detail matters until they are.",
|
|
51
|
+
"priority": 1
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
"name": "Demand a window, not an estimate",
|
|
55
|
+
"when": "Rep gives a single-number ETA.",
|
|
56
|
+
"script": "Use the `request_eta_window` phrase. '45 minutes' becomes 'sometime between now and 2 hours' if not pinned. A window is a commitment.",
|
|
57
|
+
"priority": 2
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
"name": "Capture the four dispatch artifacts",
|
|
61
|
+
"when": "After ETA is set.",
|
|
62
|
+
"script": "Use the `request_dispatch_details` phrase. Without provider, truck/driver ID, and callback number, the user can't follow up if no one shows.",
|
|
63
|
+
"priority": 3
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
"name": "Confirm destination + mileage upfront",
|
|
67
|
+
"when": "Before dispatch is finalised.",
|
|
68
|
+
"script": "Use the `confirm_destination_and_mileage` phrase. Surprise mileage overages and surprise drop-offs at unwanted shops are the top post-tow complaints.",
|
|
69
|
+
"priority": 4
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
"name": "Set the callback threshold",
|
|
73
|
+
"when": "Mid-call.",
|
|
74
|
+
"script": "Use the `set_callback_threshold` phrase. Carriers will sit on a 'dispatched' ticket for hours unless the user follows up — set the ground rule that they call you.",
|
|
75
|
+
"priority": 5
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
"name": "Map the reimbursement path as a fallback",
|
|
79
|
+
"when": "If dispatch ETA is unacceptably long.",
|
|
80
|
+
"script": "Use the `ask_reimbursement_path` phrase. Reimbursement requires receipts and often the provider's invoice. Knowing the process upfront unlocks the faster local-tow option.",
|
|
81
|
+
"priority": 6
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
"name": "Keep the driver coached during the wait",
|
|
85
|
+
"when": "After dispatch is confirmed.",
|
|
86
|
+
"script": "Remind the driver to stay visible to the tow truck, keep the phone charged, have policy + ID ready, and to refuse any non-dispatched tow truck that 'just happens to be in the area' (illegal solicitations are common at accident scenes).",
|
|
87
|
+
"priority": 7
|
|
88
|
+
}
|
|
89
|
+
],
|
|
90
|
+
"boundaries": [
|
|
91
|
+
"Do NOT delay the dispatch for paperwork if the driver is unsafe. Get the truck rolling, capture details after.",
|
|
92
|
+
"Do NOT authorize a tow to an unfamiliar shop the carrier recommends without checking it against the user's preferred shop list. Tow location can lock in repair authorization.",
|
|
93
|
+
"Do NOT let the carrier dispatch to a 'preferred network' shop solely on the basis of cheaper cost if the user has a preferred shop with which they have a relationship.",
|
|
94
|
+
"Do NOT accept a tow truck that arrives without prior carrier confirmation — accident-scene predators tow vehicles to high-fee impound lots.",
|
|
95
|
+
"Do NOT sign anything the tow driver presents beyond a basic acknowledgment of vehicle transfer. Storage and impound contracts can lock the vehicle behind escalating fees.",
|
|
96
|
+
"Do NOT discuss fault or accident specifics with the tow operator — they're not the adjuster."
|
|
97
|
+
],
|
|
98
|
+
"success_signals": [
|
|
99
|
+
"Dispatch confirmed with provider company, truck/driver ID, ETA window, callback number.",
|
|
100
|
+
"Destination and mileage confirmed within benefit limits.",
|
|
101
|
+
"Callback-if-delayed rule established.",
|
|
102
|
+
"Driver coached on what to expect.",
|
|
103
|
+
"Reimbursement fallback documented in case of delay."
|
|
104
|
+
],
|
|
105
|
+
"failure_signals": [
|
|
106
|
+
"Carrier won't commit to an ETA window.",
|
|
107
|
+
"Carrier can't name the dispatched provider.",
|
|
108
|
+
"ETA exceeds 2 hours and no faster option offered.",
|
|
109
|
+
"Carrier insists on towing to a non-preferred shop without a stated reason."
|
|
110
|
+
],
|
|
111
|
+
"exit_strategy": {
|
|
112
|
+
"on_success": "Read back the dispatch artifacts. Stay with the driver via text until the truck arrives. Once vehicle is picked up, confirm with the driver that the truck matches the dispatched provider before transfer.",
|
|
113
|
+
"on_failure": "If dispatch is unworkable, use the reimbursement path — call a local tow, pay, collect receipts, file reimbursement post-event. Document the carrier's failure to dispatch promptly — relevant if the user later wants to escalate.",
|
|
114
|
+
"follow_ups": [
|
|
115
|
+
"Stay in contact with the driver via text until pickup.",
|
|
116
|
+
"Confirm vehicle arrival at the destination.",
|
|
117
|
+
"If reimbursement was used, file the claim with receipts within the carrier's window (often 30 days).",
|
|
118
|
+
"Note the dispatch experience in case of repeat issues — frequent stranded scenarios may warrant a roadside upgrade or a third-party plan (AAA, Better World Club)."
|
|
119
|
+
]
|
|
120
|
+
},
|
|
121
|
+
"required_user_info": [
|
|
122
|
+
"Policy / member number",
|
|
123
|
+
"Vehicle location (cross-streets, mile marker, GPS, or pinned URL)",
|
|
124
|
+
"Vehicle year/make/model/color/plate",
|
|
125
|
+
"Situation (flat / battery / lockout / fuel / accident / mechanical)",
|
|
126
|
+
"Whether driver is safe right now",
|
|
127
|
+
"Preferred tow destination (shop or address)",
|
|
128
|
+
"Phone number the carrier should use to reach the driver directly"
|
|
129
|
+
],
|
|
130
|
+
"contributed_by": "insurance-claims agent (v0.9.87 community drop)",
|
|
131
|
+
"updated_at": "2026-05-20T06:09:47Z"
|
|
132
|
+
}
|