@agenticmail/core 0.9.32 → 0.9.34

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.
Files changed (163) hide show
  1. package/dist/index.d.cts +1 -1
  2. package/dist/index.d.ts +1 -1
  3. package/dist/skills/built-in/accommodation-intake.json +132 -0
  4. package/dist/skills/built-in/add-driver-vehicle-household.json +133 -0
  5. package/dist/skills/built-in/admissions-waitlist-followup.json +129 -0
  6. package/dist/skills/built-in/anchor-and-counter-anchor.json +161 -0
  7. package/dist/skills/built-in/anti-social-engineering.json +153 -0
  8. package/dist/skills/built-in/anything-else-sweep.json +120 -0
  9. package/dist/skills/built-in/apologise-correctly.json +126 -0
  10. package/dist/skills/built-in/ask-for-in-person-meeting.json +114 -0
  11. package/dist/skills/built-in/attorney-new-client-intake.json +133 -0
  12. package/dist/skills/built-in/bant-discovery-call.json +125 -0
  13. package/dist/skills/built-in/book-new-patient-appointment.json +131 -0
  14. package/dist/skills/built-in/bookmark-close.json +113 -0
  15. package/dist/skills/built-in/bypass-i-am-the-supervisor.json +130 -0
  16. package/dist/skills/built-in/bypass-scripted-rep.json +142 -0
  17. package/dist/skills/built-in/calibrated-questions.json +155 -0
  18. package/dist/skills/built-in/call-911-fire.json +118 -0
  19. package/dist/skills/built-in/call-911-medical-emergency.json +126 -0
  20. package/dist/skills/built-in/call-911-violent-crime-in-progress.json +133 -0
  21. package/dist/skills/built-in/call-988-crisis-line.json +128 -0
  22. package/dist/skills/built-in/call-poison-control.json +115 -0
  23. package/dist/skills/built-in/call-police-non-emergency.json +114 -0
  24. package/dist/skills/built-in/call-with-person-in-distress.json +133 -0
  25. package/dist/skills/built-in/cancel-cable-fiber-no-retention-loop.json +156 -0
  26. package/dist/skills/built-in/cancel-policy-clean.json +130 -0
  27. package/dist/skills/built-in/capture-rep-identity.json +113 -0
  28. package/dist/skills/built-in/childcare-provider-intake.json +157 -0
  29. package/dist/skills/built-in/close-account-no-residual-fees.json +127 -0
  30. package/dist/skills/built-in/close-on-concrete-next-step.json +116 -0
  31. package/dist/skills/built-in/confirm-agreement-readback.json +134 -0
  32. package/dist/skills/built-in/confirm-next-step-ownership.json +113 -0
  33. package/dist/skills/built-in/contractor-estimate-request.json +142 -0
  34. package/dist/skills/built-in/court-clerk-administrative-inquiry.json +119 -0
  35. package/dist/skills/built-in/cpa-intake-call.json +134 -0
  36. package/dist/skills/built-in/day-of-flight-cancellation.json +127 -0
  37. package/dist/skills/built-in/de-escalate-angry-rep.json +114 -0
  38. package/dist/skills/built-in/decline-unsolicited-pitch.json +110 -0
  39. package/dist/skills/built-in/deliver-difficult-news.json +122 -0
  40. package/dist/skills/built-in/detect-fake-escalation-loops.json +140 -0
  41. package/dist/skills/built-in/detect-lies-and-contradictions.json +139 -0
  42. package/dist/skills/built-in/dispute-billing-code-eob.json +147 -0
  43. package/dist/skills/built-in/dispute-charge-reg-e-reg-z.json +131 -0
  44. package/dist/skills/built-in/dispute-credit-report-via-bank.json +128 -0
  45. package/dist/skills/built-in/dispute-denied-claim.json +143 -0
  46. package/dist/skills/built-in/dispute-security-deposit.json +130 -0
  47. package/dist/skills/built-in/dispute-usage-spike-meter-reread.json +120 -0
  48. package/dist/skills/built-in/dmv-vehicle-registration-renewal.json +120 -0
  49. package/dist/skills/built-in/document-call-promises.json +145 -0
  50. package/dist/skills/built-in/early-lease-termination.json +126 -0
  51. package/dist/skills/built-in/elite-line-escalation.json +107 -0
  52. package/dist/skills/built-in/equipment-swap-cable-router-modem.json +126 -0
  53. package/dist/skills/built-in/eu261-uk261-dot-compensation.json +113 -0
  54. package/dist/skills/built-in/file-fnol-auto-claim.json +130 -0
  55. package/dist/skills/built-in/file-habitability-complaint.json +115 -0
  56. package/dist/skills/built-in/financial-aid-appeal.json +128 -0
  57. package/dist/skills/built-in/follow-up-stalled-claim.json +118 -0
  58. package/dist/skills/built-in/get-past-gatekeeper.json +115 -0
  59. package/dist/skills/built-in/get-past-tier-1-script.json +130 -0
  60. package/dist/skills/built-in/handle-callback-stall.json +120 -0
  61. package/dist/skills/built-in/handle-outsourced-no-escalation.json +138 -0
  62. package/dist/skills/built-in/handle-send-me-an-email-deflection.json +112 -0
  63. package/dist/skills/built-in/handle-time-pressure.json +159 -0
  64. package/dist/skills/built-in/health-prior-auth-appeal.json +131 -0
  65. package/dist/skills/built-in/hoa-dispute.json +123 -0
  66. package/dist/skills/built-in/hold-time-strategy.json +137 -0
  67. package/dist/skills/built-in/hold-warmth-cold-rep.json +114 -0
  68. package/dist/skills/built-in/hotel-walk-over-recovery.json +114 -0
  69. package/dist/skills/built-in/humour-when-it-lands.json +127 -0
  70. package/dist/skills/built-in/i20-visa-dso.json +134 -0
  71. package/dist/skills/built-in/invoke-regulator-firmly.json +137 -0
  72. package/dist/skills/built-in/irrops-waiver-awareness.json +103 -0
  73. package/dist/skills/built-in/irs-payment-plan-setup.json +134 -0
  74. package/dist/skills/built-in/k12-iep-504-enrollment.json +134 -0
  75. package/dist/skills/built-in/late-add-petition.json +128 -0
  76. package/dist/skills/built-in/leave-of-absence-deferral.json +130 -0
  77. package/dist/skills/built-in/lock-in-terms-verbally.json +127 -0
  78. package/dist/skills/built-in/match-energy-keep-goal.json +120 -0
  79. package/dist/skills/built-in/medical-records-transfer.json +138 -0
  80. package/dist/skills/built-in/medical-withdrawal.json +131 -0
  81. package/dist/skills/built-in/mid-call-evidence-collection.json +159 -0
  82. package/dist/skills/built-in/mirror-technique.json +145 -0
  83. package/dist/skills/built-in/missed-connection-distressed-passenger.json +111 -0
  84. package/dist/skills/built-in/mortgage-loan-hardship.json +130 -0
  85. package/dist/skills/built-in/move-out-walkthrough.json +114 -0
  86. package/dist/skills/built-in/multi-channel-escalation.json +141 -0
  87. package/dist/skills/built-in/multi-issue-tradeoffs.json +155 -0
  88. package/dist/skills/built-in/negotiate-rent-renewal.json +123 -0
  89. package/dist/skills/built-in/no-as-opening.json +154 -0
  90. package/dist/skills/built-in/not-sound-like-spam-dialer.json +118 -0
  91. package/dist/skills/built-in/outage-credit-applied.json +127 -0
  92. package/dist/skills/built-in/passport-expedite-or-appointment.json +123 -0
  93. package/dist/skills/built-in/pediatric-school-forms.json +141 -0
  94. package/dist/skills/built-in/personal-trainer-discovery.json +138 -0
  95. package/dist/skills/built-in/pharmacy-callback.json +134 -0
  96. package/dist/skills/built-in/pivot-mid-call.json +141 -0
  97. package/dist/skills/built-in/port-mobile-number-survive-retention.json +127 -0
  98. package/dist/skills/built-in/prescription-refill-followup.json +132 -0
  99. package/dist/skills/built-in/push-past-invented-policy.json +159 -0
  100. package/dist/skills/built-in/rapport-opening-30-seconds.json +130 -0
  101. package/dist/skills/built-in/reach-executive-office.json +137 -0
  102. package/dist/skills/built-in/read-vocal-cues.json +139 -0
  103. package/dist/skills/built-in/read-vocal-tone.json +159 -0
  104. package/dist/skills/built-in/realestate-agent-vetting.json +144 -0
  105. package/dist/skills/built-in/receive-difficult-news.json +115 -0
  106. package/dist/skills/built-in/recording-claim-conversation-legally.json +121 -0
  107. package/dist/skills/built-in/recover-summary-refusal.json +121 -0
  108. package/dist/skills/built-in/reengage-ghosted-lead.json +115 -0
  109. package/dist/skills/built-in/referral-followup-without-burning.json +116 -0
  110. package/dist/skills/built-in/referral-prior-authorization.json +130 -0
  111. package/dist/skills/built-in/refuse-the-split.json +142 -0
  112. package/dist/skills/built-in/refuse-upsell-at-close.json +114 -0
  113. package/dist/skills/built-in/rental-car-counter-defense.json +116 -0
  114. package/dist/skills/built-in/rental-scam-report.json +125 -0
  115. package/dist/skills/built-in/replace-lost-stolen-card-expedited.json +139 -0
  116. package/dist/skills/built-in/report-downed-line-gas-smell-911-triage.json +130 -0
  117. package/dist/skills/built-in/report-elder-or-child-abuse.json +125 -0
  118. package/dist/skills/built-in/report-fbi-tip.json +116 -0
  119. package/dist/skills/built-in/report-fraud-ic3-or-ftc.json +117 -0
  120. package/dist/skills/built-in/report-fraudulent-transaction.json +126 -0
  121. package/dist/skills/built-in/report-power-outage-get-etr.json +116 -0
  122. package/dist/skills/built-in/report-urgent-maintenance.json +123 -0
  123. package/dist/skills/built-in/request-credit-limit-increase.json +126 -0
  124. package/dist/skills/built-in/request-supervisor-gracefully.json +129 -0
  125. package/dist/skills/built-in/request-welfare-check.json +127 -0
  126. package/dist/skills/built-in/request-written-confirmation.json +113 -0
  127. package/dist/skills/built-in/reschedule-appointment.json +121 -0
  128. package/dist/skills/built-in/reset-by-callback.json +143 -0
  129. package/dist/skills/built-in/resist-urgency-manipulation.json +152 -0
  130. package/dist/skills/built-in/revisit-totaling-decision.json +125 -0
  131. package/dist/skills/built-in/roadside-assistance-dispatch.json +132 -0
  132. package/dist/skills/built-in/roommate-replacement.json +121 -0
  133. package/dist/skills/built-in/same-day-urgent-appointment.json +130 -0
  134. package/dist/skills/built-in/schedule-rental-viewing.json +111 -0
  135. package/dist/skills/built-in/service-move-shutoff-start-no-overlap.json +129 -0
  136. package/dist/skills/built-in/social-security-replacement-card.json +122 -0
  137. package/dist/skills/built-in/specialist-doctor-booking.json +136 -0
  138. package/dist/skills/built-in/spot-bait-and-switch.json +155 -0
  139. package/dist/skills/built-in/stop-recurring-ach.json +127 -0
  140. package/dist/skills/built-in/switch-postpaid-to-prepaid-mid-cycle.json +130 -0
  141. package/dist/skills/built-in/tactical-empathy-labeling.json +147 -0
  142. package/dist/skills/built-in/therapist-intake-call.json +133 -0
  143. package/dist/skills/built-in/train-cancellation-refund-rebook.json +104 -0
  144. package/dist/skills/built-in/transcript-request.json +128 -0
  145. package/dist/skills/built-in/travel-insurance-claim-on-the-road.json +114 -0
  146. package/dist/skills/built-in/travel-notice-unlock-card.json +119 -0
  147. package/dist/skills/built-in/unemployment-claim-status-and-appeal.json +123 -0
  148. package/dist/skills/built-in/uscis-case-status-and-biometrics.json +125 -0
  149. package/dist/skills/built-in/utility-deposit-waiver.json +122 -0
  150. package/dist/skills/built-in/utility-payment-plan-avoid-disconnect.json +122 -0
  151. package/dist/skills/built-in/verify-insurance-coverage-pre-procedure.json +140 -0
  152. package/dist/skills/built-in/verify-out-of-network-coverage.json +129 -0
  153. package/dist/skills/built-in/veteran-benefits-community-college.json +134 -0
  154. package/dist/skills/built-in/veterinary-new-patient-intake.json +135 -0
  155. package/dist/skills/built-in/visa-boarding-denial-recovery.json +115 -0
  156. package/dist/skills/built-in/vital-records-certificate-copy.json +120 -0
  157. package/dist/skills/built-in/voicemail-that-gets-called-back.json +114 -0
  158. package/dist/skills/built-in/voter-registration-and-ballot.json +124 -0
  159. package/dist/skills/built-in/walkaway-threats.json +159 -0
  160. package/dist/skills/built-in/wedding-vendor-intake.json +149 -0
  161. package/dist/skills/built-in/when-to-stop-being-polite.json +161 -0
  162. package/dist/skills/built-in/wire-funds-safely.json +129 -0
  163. package/package.json +1 -1
@@ -0,0 +1,138 @@
1
+ {
2
+ "id": "handle-outsourced-no-escalation",
3
+ "name": "Handle Outsourced Support That Cannot Escalate",
4
+ "version": "1.0.1",
5
+ "category": "customer-service",
6
+ "tags": [
7
+ "escalation",
8
+ "outsourced",
9
+ "BPO",
10
+ "phone-call",
11
+ "routing",
12
+ "bypass",
13
+ "customer-support"
14
+ ],
15
+ "description": "Recognize when you've reached an outsourced BPO (business process outsourcer) that genuinely has no escalation path to the actual company — and route around it to reach the brand's own internal escalation team or corporate office.",
16
+ "disclaimer": null,
17
+ "context": {
18
+ "when_to_use": "Several signals point to outsourced support: significant background noise (large call-center room), heavy accent suggesting offshore location for a domestic-US brand, scripted answers that don't match your actual issue, rep can't access certain account features ('our system doesn't show that'), rep refers to 'the client' or 'the company' as a third party. The rep may be competent and well-meaning but structurally limited.",
19
+ "preconditions": [
20
+ "User has already attempted standard escalation with this rep / queue at least once.",
21
+ "User is willing to invest research time to find the brand's internal channels (Office of the President, executive relations, social-care team).",
22
+ "User stays patient with the BPO rep — they're often skilled professionals whose hands are tied by their contract."
23
+ ],
24
+ "estimated_call_duration_minutes": 22
25
+ },
26
+ "principles": [
27
+ "Outsourced support is a contract relationship. The BPO has a contract with the brand specifying EXACTLY what they can and can't do. The rep isn't refusing to help out of laziness — they literally cannot make decisions outside their contract. Treat them with respect; they're as constrained as you are.",
28
+ "The fastest path is NOT to argue with the BPO rep. It's to confirm the limitation, capture documentation, and pivot to a different access point to the actual brand.",
29
+ "Tells that you've reached a BPO: rep refers to 'the client' or 'the partner' (meaning the brand they're outsourcing for), rep can't transfer 'outside our team', rep's call-center has audibly different noise/scale than the brand would suggest, rep apologizes for tools they obviously don't control, time-of-day mismatch (US brand answered at 2am US time = likely offshore BPO).",
30
+ "Every BPO contract has SOMEONE on the brand side who manages the relationship. You can't reach them directly, but they exist. Your path is around the BPO, not through it.",
31
+ "Decision point — am I trying to fix this on THIS call, or am I gathering enough info to escape to a different channel? Once you've identified BPO, the answer is almost always 'escape' — but the call still has value because the rep can give you names, case numbers, and the brand-side address for written escalations.",
32
+ "BPO reps often hold internal knowledge a customer wouldn't have: the brand-side 'escalation address', the official 'cases the BPO can't handle' workflow, the contractual carve-outs. Ask for it nicely.",
33
+ "Some BPOs handle ALL escalations including supervisor — so 'speaking to the supervisor' just gets you another BPO employee with the same contract limitations. Don't escalate vertically inside the BPO; escalate sideways out of it."
34
+ ],
35
+ "phrases": {
36
+ "diagnostic_probe": "I want to make sure I understand the structure — are you part of [Brand] directly, or are you a partner / contracted support center? I'm trying to understand my options here, not put you on the spot.",
37
+ "the_polite_ask": "Okay — sounds like this is outside what your team can handle. Could you share what the right channel is for cases that need to go to [Brand] directly? Most companies have a brand-side address or an escalation team that handles cases outside the standard support contract.",
38
+ "ask_for_brand_address": "Do you have a [Brand]-side corporate address, an executive escalations contact, or a 'cases above this team's authority' email that I should use?",
39
+ "name_the_constraint_kindly": "I can tell you're working within a tight scope and I respect that — that's a contract issue, not a you issue. Let me ask a different question: how do other customers in my situation get their issues resolved?",
40
+ "request_the_internal_referral": "Could you internally flag this case to be reviewed by [Brand] directly? Some BPO contracts allow that for specific case types — is mine one of them?",
41
+ "capture_breadcrumbs": "Before we end the call — what's the case number you've opened, what's your name and ID, and what's the name of your call center / BPO so I have it for my records?",
42
+ "graceful_transition": "Thank you. Honestly — you've been more helpful than you might realize. You've given me what I need to take the next step through a different channel.",
43
+ "brand_email_opener": "Hello [Brand] Customer Relations,\n\nI'm writing because your outsourced support center (BPO: [name if known], case ref [#]) was unable to resolve [issue]. The BPO rep was professional but indicated this case is outside their contract's scope. I'd appreciate review by your internal team."
44
+ },
45
+ "tactics": [
46
+ {
47
+ "name": "Confirm BPO status carefully",
48
+ "when": "You suspect outsourced support but aren't certain.",
49
+ "script": "Use `diagnostic_probe`. Ask it with a curious-not-confrontational tone. Reps trained at BPOs almost always confirm honestly when asked directly. The answer reframes the rest of the call.",
50
+ "priority": 1,
51
+ "decision_point": "If the rep confirms BPO status — STOP trying to win the call. Pivot to information-gathering for the next channel. If the rep claims to be in-house but other signals contradict it — proceed gently; you may be wrong, or they may not realize how their company is organized."
52
+ },
53
+ {
54
+ "name": "Acknowledge the constraint without resentment",
55
+ "when": "BPO confirmed.",
56
+ "script": "Use `name_the_constraint_kindly`. Reps who feel respected often go off-script and tell you exactly what works — including 'most customers who get past this contact their corporate office directly' or 'send an email to [address]'. That info is gold and only flows if you treat the rep as a partner.",
57
+ "priority": 2
58
+ },
59
+ {
60
+ "name": "Ask for the brand-side escape route",
61
+ "when": "After acknowledging the constraint.",
62
+ "script": "Use `ask_for_brand_address`. Some BPO scripts forbid sharing certain addresses; others encourage it (because the brand wants out-of-scope cases off the BPO's plate). Worth asking — worst case is 'I can't share that', best case is the direct path you need.",
63
+ "priority": 3
64
+ },
65
+ {
66
+ "name": "Request the internal-flag option",
67
+ "when": "Some BPO contracts include an 'escalate to brand' workflow.",
68
+ "script": "Use `request_the_internal_referral`. Some contracts have a literal button for this. Some don't. Asking costs nothing.",
69
+ "priority": 4,
70
+ "decision_point": "If the rep flags the case to the brand-side team and gives you a separate case number — track it. It's a real, separate workflow. Set a 5-business-day follow-up calendar. If no separate flag is possible, accept it and pivot."
71
+ },
72
+ {
73
+ "name": "Capture every breadcrumb before disengaging",
74
+ "when": "Right before ending the call.",
75
+ "script": "Use `capture_breadcrumbs`. The BPO's name, the case number, your rep's name/ID — all of these are referenceable when you contact the brand directly. The brand's internal team can look up the BPO case and pick up the timeline.",
76
+ "priority": 5
77
+ },
78
+ {
79
+ "name": "Disengage warmly",
80
+ "when": "End of call.",
81
+ "script": "Use `graceful_transition`. The rep often appreciates being treated as a competent professional facing structural limits — they may even add notes to your case that help the next escalation.",
82
+ "priority": 6
83
+ },
84
+ {
85
+ "name": "Pivot to brand-direct channel within 24h",
86
+ "when": "Post-call.",
87
+ "script": "Email the brand's corporate / executive relations address using `brand_email_opener`. Reference the BPO name, the BPO case number, and the rep ID. This frames you as a thoughtful customer who already did the work — not as a complaint trying to skip the line.",
88
+ "priority": 7
89
+ },
90
+ {
91
+ "name": "Use research channels to find the brand-direct contact",
92
+ "when": "BPO couldn't or wouldn't share the brand-direct address.",
93
+ "script": "LinkedIn (find a Customer Experience VP at the brand). Press releases. SEC filings. The brand's investor relations email is a back-door — it's monitored and the team will forward customer escalations to the right place.",
94
+ "priority": 8
95
+ }
96
+ ],
97
+ "boundaries": [
98
+ "Do NOT take frustration out on the BPO rep — their hands are genuinely tied and they're often paid little to absorb yelling.",
99
+ "Do NOT assume offshore = incompetent. Many offshore BPO reps are extremely skilled; what they lack is authority, not capability.",
100
+ "Do NOT lie about who you are to bypass the BPO ('I'm a journalist'). Caller verification can catch you and the call gets flagged.",
101
+ "Do NOT keep escalating inside the BPO. Three calls to the same BPO queue is three identical experiences. The constraint is the contract, not the rep.",
102
+ "Do NOT post the BPO's name in a public review as 'bad support' — the brand chose the BPO; the rep didn't. Direct any public criticism at the brand.",
103
+ "Do NOT share account credentials or PII more than necessary. BPO reps see your account but may not have the same data-handling controls as in-house teams.",
104
+ "Do NOT bypass the BPO unless you actually have a substantive issue. The brand-side team is small and reserves attention for real escalations."
105
+ ],
106
+ "success_signals": [
107
+ "Rep confirms BPO status when asked.",
108
+ "Rep voluntarily names the brand-side escalation address or contact function.",
109
+ "Rep agrees to internally flag the case for brand review and provides a separate case number.",
110
+ "Brand-direct email gets a response from a different domain or different signature line than the BPO ('Customer Advocacy', 'Executive Relations').",
111
+ "The brand's internal team picks up the BPO case file by reference — meaning your BPO documentation work paid off."
112
+ ],
113
+ "failure_signals": [
114
+ "BPO rep won't acknowledge their structure ('we are [Brand] customer service') and routes you in circles.",
115
+ "Brand has no published corporate address — sometimes intentional, sometimes lazy. Either way, you need LinkedIn / press releases as backup.",
116
+ "Brand-direct email gets routed BACK to the BPO with a 'we've forwarded your case' auto-reply. This is the trap — you're back where you started.",
117
+ "Multiple BPOs in the chain (BPO routes to another BPO). Possible but rare; tells you the brand has minimal direct customer-facing infrastructure.",
118
+ "Rep claims 'there is no brand-side team, this IS the [Brand] support'. Could be true (rare) or could be a script. Verify via independent research before believing it."
119
+ ],
120
+ "exit_strategy": {
121
+ "on_success": "Confirm the case is being handled by the brand-side team, get the new contact's name and the brand-side case number, and stop interacting with the BPO. Calendar a check-back at the brand-side team's promised timeline.",
122
+ "on_failure": "If brand-direct email also bounces you to the BPO, the brand has structurally minimized its consumer support. Escalate via `multi-channel-escalation` (social + executive office + regulator if applicable). Public/regulator channels often force brand-direct engagement.",
123
+ "follow_ups": [
124
+ "Document the BPO interaction thoroughly — BPO escalations are NOT visible to the brand's internal CRM in some cases, which is why you reconstruct them in the brand-direct email.",
125
+ "If the brand keeps routing you back to the BPO despite a substantive issue, that's a possible BBB / state-AG topic — pattern of inaccessible support, not just one bad call.",
126
+ "Keep the brand's executive-relations contact in a personal log for future issues. Outsourced support is usually a permanent choice by the brand; you'll need this contact again."
127
+ ]
128
+ },
129
+ "required_user_info": [
130
+ "Account identifier",
131
+ "Description of the issue stated in one sentence",
132
+ "Any prior interactions including dates and what was promised",
133
+ "Brand's known direct channels (corporate website's 'contact us' section, executive team page, social handles)",
134
+ "Willingness to wait 5-7 business days for brand-direct response"
135
+ ],
136
+ "contributed_by": "support-escalator agent (v0.9.87 community drop)",
137
+ "updated_at": "2026-05-20T06:09:47Z"
138
+ }
@@ -0,0 +1,112 @@
1
+ {
2
+ "id": "handle-send-me-an-email-deflection",
3
+ "name": "Handle 'Send Me an Email' as a Deflection",
4
+ "version": "1.0.1",
5
+ "category": "other",
6
+ "tags": [
7
+ "objection-handling",
8
+ "deflection",
9
+ "phone-call",
10
+ "judgement-call",
11
+ "outreach-sales"
12
+ ],
13
+ "description": "When a prospect responds to a cold or follow-up call with 'just send me an email', distinguish between (a) a legitimate channel preference, (b) a polite brush-off, and (c) a buying signal in disguise — and respond appropriately to each, without forcing the call.",
14
+ "disclaimer": "Skills assume the call is solicited by the operator. NEVER use these to power a mass-cold-call campaign without the operator's explicit per-prospect authorisation.",
15
+ "context": {
16
+ "when_to_use": "On any outbound call where the prospect, before substantive conversation has happened, asks the agent to send information by email. The agent must read the situation in seconds and pick a response.",
17
+ "preconditions": [
18
+ "Agent has gotten past the gatekeeper and is speaking with the target (or their delegate).",
19
+ "Agent has a real, sendable artefact appropriate for this prospect — not a generic deck.",
20
+ "Operator has been briefed on the agent's policy for email follow-up (always comply / push once / never comply on cold)."
21
+ ],
22
+ "estimated_call_duration_minutes": 2
23
+ },
24
+ "principles": [
25
+ "'Send me an email' is information, not an answer. Read the tone, the speed, and the context before deciding.",
26
+ "Comply gracefully when in doubt. Refusing to send email when asked is a worse signal than sending and following up.",
27
+ "Push back ONLY when you have a clear, concrete reason a 30-second live exchange is more valuable for THEM than email — and you can say that reason out loud.",
28
+ "Never argue. The moment you sound like you're not accepting their stated preference, you lose.",
29
+ "An email follow-up is a real commitment. If you say you'll send something, send something real, within the window you named."
30
+ ],
31
+ "phrases": {
32
+ "comply_clean": "Sure — what's the best email for you? I'll keep it short, one or two paragraphs and a link, not a deck-bomb.",
33
+ "qualify_before_sending": "Happy to. Quick question first so I send the right thing rather than a generic email — is the [topic] something you're actively looking at, or more of a 'down the road' thing?",
34
+ "single_push": "Sure, I can do that. Honestly though — there's one thing I'd rather just ask you live for 30 seconds, then I'll send the rest as written follow-up. Is now OK, or worse timing than I think?",
35
+ "respect_the_no": "No problem — what's the best email? I won't follow up beyond the one note unless you tell me to.",
36
+ "honest_about_brushoff": "Totally cool if 'send me an email' is your nice way of saying not interested — would you tell me straight, just so I don't keep your inbox warm for no reason?",
37
+ "concrete_commitment": "I'll send it within the hour today. Subject line will say [X] so it's easy to find or ignore."
38
+ },
39
+ "tactics": [
40
+ {
41
+ "name": "Read the request in three seconds — preference, brush-off, or buying signal",
42
+ "when": "Immediately upon hearing the request.",
43
+ "script": "Preference (calm, neutral tone, after some engagement) → comply cleanly. Brush-off (fast, before any real exchange, slightly cool tone) → respect the no AND offer one honest out. Buying signal ('send me a proposal') → comply with qualification first.",
44
+ "priority": 1
45
+ },
46
+ {
47
+ "name": "Comply cleanly when the request is genuine",
48
+ "when": "Tone reads as legitimate channel preference.",
49
+ "script": "Use `comply_clean`. Some prospects genuinely do their best work async. Forcing live time on them is a tax they'll resent.",
50
+ "priority": 2
51
+ },
52
+ {
53
+ "name": "Qualify briefly before sending if the email would benefit",
54
+ "when": "Prospect seems engaged enough that 60 seconds of context would meaningfully change what you send.",
55
+ "script": "Use `qualify_before_sending`. One question — not three — to avoid sending a generic deck.",
56
+ "priority": 3
57
+ },
58
+ {
59
+ "name": "Push back exactly once if there's a real reason",
60
+ "when": "You have a specific live-only question whose answer reshapes the email.",
61
+ "script": "Use `single_push`. If they decline, drop it immediately — do not push twice on the same call.",
62
+ "priority": 4
63
+ },
64
+ {
65
+ "name": "Surface the brush-off if you suspect one",
66
+ "when": "Request was fast, before any real exchange, and follow-up emails are likely to vanish into ghosting.",
67
+ "script": "Use `honest_about_brushoff`. This surprises most prospects and produces honest answers — they'll either say 'no, actually, send it' or 'yeah, not for us', and either saves time.",
68
+ "priority": 5
69
+ },
70
+ {
71
+ "name": "Make the commitment concrete on the call",
72
+ "when": "Closing the conversation.",
73
+ "script": "Use `concrete_commitment`. Name a window, name a subject line. Vague 'I'll send something across' rarely gets opened."
74
+ }
75
+ ],
76
+ "boundaries": [
77
+ "Do NOT pretend a follow-up email requires live information you could easily figure out from public sources.",
78
+ "Do NOT push back more than once. Two attempts to keep them on the phone after they asked for email is pressure.",
79
+ "Do NOT promise an email and not send it. Better to not commit than to break the small promise.",
80
+ "Do NOT send a generic deck. Send something written FOR this prospect, even if 80% is templated.",
81
+ "Do NOT cc the operator or the prospect's boss on a follow-up email unless explicitly authorised."
82
+ ],
83
+ "success_signals": [
84
+ "Prospect gives their preferred email and a topic to focus on.",
85
+ "Prospect responds to the follow-up email within a reasonable window.",
86
+ "Prospect agrees to a small live exchange when the push-back was honest and well-framed.",
87
+ "Prospect admits it's a no — clean signal, time saved."
88
+ ],
89
+ "failure_signals": [
90
+ "Prospect repeats 'just email me' more crisply (push again and you've lost them).",
91
+ "Prospect goes silent on the email follow-up for 10+ business days.",
92
+ "Prospect's stated email bounces or is a generic shared inbox — they didn't want this to land."
93
+ ],
94
+ "exit_strategy": {
95
+ "on_success": "Send the promised email within the named window. Keep it under 8 lines. One link, one ask, one calendar option. End the call warmly with a thank-you.",
96
+ "on_failure": "If the brush-off was confirmed, log the prospect as 'declined — do not retry by phone'. If they went silent post-email, follow the ghosted-lead re-engagement cadence — not a re-call.",
97
+ "follow_ups": [
98
+ "Send the email by the committed deadline, with the committed subject line.",
99
+ "Single written nudge 5-7 business days later if no response — then stop.",
100
+ "Log outcome in CRM with the prospect's exact words about preferred channel."
101
+ ]
102
+ },
103
+ "required_user_info": [
104
+ "Operator's standing policy on email-deflection responses",
105
+ "Real artefacts the operator wants the agent to send (not 'a deck' — actual links/files)",
106
+ "Operator's preferred follow-up cadence after the email lands",
107
+ "Whether the agent can quote pricing or capabilities in the written follow-up",
108
+ "Operator's outbound email signature / sending identity"
109
+ ],
110
+ "contributed_by": "sales-outbound agent (v0.9.87 community drop)",
111
+ "updated_at": "2026-05-20T06:09:47Z"
112
+ }
@@ -0,0 +1,159 @@
1
+ {
2
+ "id": "handle-time-pressure",
3
+ "name": "Time Pressure: Using It, Neutralizing It",
4
+ "version": "1.0.1",
5
+ "category": "negotiation",
6
+ "tags": ["deadlines", "urgency", "exploding-offers", "BATNA", "phone-call", "real-time"],
7
+ "description": "Time pressure is the most-used and least-real leverage in commercial negotiation. 'This offer expires today', 'I have another buyer', 'my manager only approved this for an hour' — these are almost always partly fictional. Recognize them, neutralize them, and deploy real time pressure of your own when warranted.",
8
+ "disclaimer": "Some deadlines ARE real. Calling a real deadline as fake is the most expensive mistake in this skill. Always test before dismissing.",
9
+ "context": {
10
+ "when_to_use": "Any negotiation where the counterparty introduces a deadline, expiration, or urgency claim. Or when you have legitimate time pressure of your own to leverage.",
11
+ "preconditions": [
12
+ "You have a BATNA (best alternative to a negotiated agreement) so you can credibly slow down.",
13
+ "You are NOT yourself under emergency time pressure — if you are, neutralizing theirs is harder.",
14
+ "You have authorization from the user to let an offer expire if it turns out to have been real."
15
+ ],
16
+ "estimated_call_duration_minutes": 25
17
+ },
18
+ "principles": [
19
+ "Manufactured urgency is the negotiator's most-deployed weapon because it's cheap to fake and effective on amateurs.",
20
+ "The asymmetric-urgency rule: the side that NEEDS the deal sooner loses leverage. Never reveal your urgency.",
21
+ "Slow down deliberately when the counterparty speeds up. Pace asymmetry is its own leverage — they reveal their position to fill the silence.",
22
+ "Real deadlines have specific, verifiable, system-level consequences. 'My manager went home at 5' is verifiable; 'this is our best offer for today' is not.",
23
+ "When using time pressure yourself, anchor on EXTERNAL constraints (board meeting, fiscal year, regulatory date) not internal preference. External constraints feel non-negotiable; internal preference is negotiable.",
24
+ "If a counterparty's 'expiring' offer was real, it will be re-offered within 48 hours — usually at the same number or better. Calling the bluff is rarely catastrophic."
25
+ ],
26
+ "phrases": {
27
+ "test_the_deadline": "What happens if I decide tomorrow instead of today?",
28
+ "test_the_other_buyer": "It sounds like you have momentum elsewhere — should we pause and let you close that? I don't want to be a distraction.",
29
+ "test_the_manager_window": "Can you confirm that in writing before we lose the window?",
30
+ "slow_the_pace": "Let me take a minute to think this through — I want to make sure I'm making the right call.",
31
+ "neutralize_calmly": "I hear there's a deadline on your end — and I respect that. But I can't make a decision this size in [N] minutes. What's the longest you can hold this?",
32
+ "deploy_real_pressure": "I need to close this by [specific date] because of [external constraint]. After that, my best alternative is [BATNA].",
33
+ "deploy_fy_pressure": "We're committing remaining budget by end of fiscal — anything we don't close by [date] rolls to next year.",
34
+ "graceful_walk_from_fake_deadline": "Okay. If the offer's gone tomorrow, that tells me what I need to know about the flexibility on your end — I'll move forward elsewhere. No hard feelings."
35
+ },
36
+ "tactics": [
37
+ {
38
+ "name": "Test every deadline before believing it",
39
+ "when": "Counterparty mentions an expiration, deadline, or limited window.",
40
+ "script": "`test_the_deadline`: 'What happens if I decide tomorrow?' If the answer is vague, the deadline is soft. If the answer is specific and system-level, it's likely real.",
41
+ "priority": 1
42
+ },
43
+ {
44
+ "name": "Slow down when they speed up",
45
+ "when": "Rep accelerates pace, repeats the deadline, or pushes for immediate close.",
46
+ "script": "Use `slow_the_pace`. Take a deliberate pause. Your composure is a counter-leverage.",
47
+ "priority": 2
48
+ },
49
+ {
50
+ "name": "Call the other-buyer bluff softly",
51
+ "when": "Rep claims 'I have another buyer interested'.",
52
+ "script": "`test_the_other_buyer` — graciously yield the field. 'Great, then it sounds like you don't need me — good luck.' 90% of the time the other buyer materializes only when you do.",
53
+ "priority": 3
54
+ },
55
+ {
56
+ "name": "Get the time pressure in writing",
57
+ "when": "Rep claims the manager approval has a window.",
58
+ "script": "`test_the_manager_window`: 'Can you confirm that in writing?' Most fake windows evaporate at the request for documentation.",
59
+ "priority": 4
60
+ },
61
+ {
62
+ "name": "Deploy YOUR external deadline carefully",
63
+ "when": "You have a real, defensible external deadline (fiscal year, project start, regulatory deadline).",
64
+ "script": "Use `deploy_real_pressure` or `deploy_fy_pressure`. Name the external anchor. Make it falsifiable so it reads as real.",
65
+ "priority": 5
66
+ },
67
+ {
68
+ "name": "Walk gracefully if the fake deadline is real",
69
+ "when": "You called the bluff and they walked.",
70
+ "script": "Use `graceful_walk_from_fake_deadline`. No anger, no recrimination. Door stays open. They often come back within 48 hours."
71
+ }
72
+ ],
73
+ "decision_tree": {
74
+ "description": "Time-pressure moves happen quickly. The first 5 seconds after a deadline is stated determine whether you fold or test. Run this every time.",
75
+ "branches": [
76
+ {
77
+ "if_you_hear": "'This offer expires today / this hour / by EOD.'",
78
+ "interpretation": "80% fake. Test before accepting.",
79
+ "say": "`test_the_deadline`: 'What happens if I decide tomorrow?'",
80
+ "do_not": "Do not fold. Do not accept the deadline as-stated."
81
+ },
82
+ {
83
+ "if_you_hear": "'I have another buyer / another customer interested in this slot.'",
84
+ "interpretation": "Often bluff. Even if true, you have nothing to lose by yielding.",
85
+ "say": "`test_the_other_buyer` — yield gracefully: 'Sounds like you don't need me.'",
86
+ "do_not": "Do not get into a bidding war on their terms. Do not match urgency."
87
+ },
88
+ {
89
+ "if_you_hear": "'My manager only approved this discount for the next [hour].'",
90
+ "interpretation": "Possibly real, possibly script. Ask for documentation.",
91
+ "say": "`test_the_manager_window`: 'Can you confirm that in writing?'",
92
+ "do_not": "Do not accept verbal-only deadlines. Documentation requests reveal fakes."
93
+ },
94
+ {
95
+ "if_you_hear": "Specific, verifiable, system-level deadline (e.g., 'price increase takes effect Jan 1 — already in the system').",
96
+ "interpretation": "Likely real. System constraints are harder to fake.",
97
+ "say": "Acknowledge the real deadline but slow your own decision: `neutralize_calmly`. 'I hear it — what's the longest you can hold it?'",
98
+ "do_not": "Do not panic-buy. Even real deadlines have grace periods if you ask."
99
+ },
100
+ {
101
+ "if_you_hear": "Rep keeps mentioning the clock multiple times in 5 minutes.",
102
+ "interpretation": "Pressure tactic, not real deadline. Real deadlines get stated once.",
103
+ "say": "Name it gently: 'I notice the clock keeps coming up — can you help me understand what changes after [time]?'",
104
+ "do_not": "Do not let the repetition pressure you. Repetition signals weakness, not strength."
105
+ },
106
+ {
107
+ "if_you_hear": "Counterparty tries to extend the call past your scheduled end.",
108
+ "interpretation": "They want to push you past decision fatigue.",
109
+ "say": "'I need to wrap up at [time]. Let's pick this up tomorrow with the rest unresolved.' Set the boundary.",
110
+ "do_not": "Do not let them control the clock. Decision fatigue is real."
111
+ },
112
+ {
113
+ "if_you_hear": "You feel YOURSELF rushing — internal urgency leaking.",
114
+ "interpretation": "Most dangerous moment. You're about to give away leverage.",
115
+ "say": "Take a manufactured break: 'Hold on one moment, I want to check something.' 30-second pause resets your tempo.",
116
+ "do_not": "Do not let your tone reveal urgency. Pause aggressively."
117
+ },
118
+ {
119
+ "if_you_hear": "You have a REAL external deadline they don't know about.",
120
+ "interpretation": "Hidden leverage on their side if revealed. Hidden constraint on yours.",
121
+ "say": "Decide whether to use it. If you can credibly hide it longer than they can wait, hide it. If your hand is forced, name it AS external ('fiscal year', not 'I need to close').",
122
+ "do_not": "Do not name internal urgency. External deadlines are leverage; internal ones are tells."
123
+ },
124
+ {
125
+ "if_you_hear": "They walk after you tested the deadline.",
126
+ "interpretation": "Either you over-tested OR the deadline was real after all.",
127
+ "say": "`graceful_walk_from_fake_deadline`. Door stays open. Most return within 48 hours.",
128
+ "do_not": "Do not chase. Do not panic-accept. Do not bad-mouth them."
129
+ }
130
+ ]
131
+ },
132
+ "boundaries": [
133
+ "Do NOT manufacture fake deadlines yourself. The user's reputation is at stake; fake deadlines from you damage long-term trust.",
134
+ "Do NOT call a clearly system-level deadline a bluff (e.g., 'all flights to that destination are full' is real, not a tactic).",
135
+ "Do NOT use 'I have other offers' unless you actually do.",
136
+ "Do NOT push past a counterparty's stated end-of-day. They can be rushed; you cannot break their reasonable boundaries."
137
+ ],
138
+ "success_signals": [
139
+ "After your test, the rep softens or extends the deadline ('let me see if I can hold it through tomorrow').",
140
+ "Rep stops mentioning the deadline after you test it once.",
141
+ "Rep volunteers that the deadline was nominal ('honestly, we usually have a grace period').",
142
+ "Walked-away counterparty calls back within 48 hours."
143
+ ],
144
+ "failure_signals": [
145
+ "Rep documents the deadline immediately when asked — it was real. Decide fast.",
146
+ "Rep ends the call after your test — over-tested; review.",
147
+ "You agreed under pressure and now regret the terms — diagnose what you missed."
148
+ ],
149
+ "exit_strategy": {
150
+ "on_success": "If you neutralized the deadline, proceed at your pace and close on real terms.",
151
+ "on_failure": "If the deadline was real and you missed the window, log the lesson and verify next time before testing. If you walked and they don't return, validate that your BATNA was sound."
152
+ },
153
+ "required_user_info": [
154
+ "User's BATNA — what happens if they walk?",
155
+ "User's real deadlines (so we don't conflate negotiating tactics with real constraints).",
156
+ "Whether the user has authority to let an offer expire."
157
+ ],
158
+ "contributed_by": "negotiation-master agent (v0.9.87 community drop)"
159
+ }
@@ -0,0 +1,131 @@
1
+ {
2
+ "id": "health-prior-auth-appeal",
3
+ "name": "Appeal a Health-Insurance Prior-Authorization Denial",
4
+ "version": "1.0.1",
5
+ "category": "finance-admin",
6
+ "tags": [
7
+ "health",
8
+ "prior-auth",
9
+ "denial",
10
+ "appeal",
11
+ "medical-necessity",
12
+ "phone-call",
13
+ "insurance"
14
+ ],
15
+ "description": "Push a denied prior-authorization (PA) request back through the carrier's appeal pipeline. Force a peer-to-peer review, surface the medical-necessity criteria the denial actually cited, and start the formal written appeal with deadlines. Most PA denials are overturned on appeal — but only if appealed.",
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": "A health insurer has denied prior auth for a procedure, medication, imaging, or referral that the prescribing clinician has ordered. Use AFTER receiving the denial and BEFORE the procedure date or medication runaround.",
19
+ "preconditions": [
20
+ "User has the denial letter or denial reference number.",
21
+ "User has the prescribing clinician's name, NPI, and office contact.",
22
+ "User has the CPT/HCPCS code (procedure) or NDC (medication) being denied.",
23
+ "User knows whether the plan is fully-insured (state-regulated) or self-funded ERISA (federal — different appeal rules).",
24
+ "User has the policy's evidence-of-coverage document or member handbook."
25
+ ],
26
+ "estimated_call_duration_minutes": 30
27
+ },
28
+ "principles": [
29
+ "PA denials are issued against medical-necessity criteria (often Milliman/MCG or InterQual). The criteria are written; demand to know which the denial cites.",
30
+ "Peer-to-peer (P2P) review is the fastest unlock — your clinician talks to the carrier's medical director. Schedule it.",
31
+ "Internal appeal first, then external review (state or federal). Most plans must offer both.",
32
+ "Expedited appeal is available when delay would jeopardize health (e.g. cancer treatment, post-op infection). Use it when applicable — 72-hour decisions instead of 30 days.",
33
+ "The denying physician's specialty matters. A primary-care MD denying an oncology drug is challengeable on its face.",
34
+ "Documenting prior failed therapies is often the key to overturning step-therapy denials."
35
+ ],
36
+ "phrases": {
37
+ "opener": "Hi, I'm calling about a prior-authorization denial — reference [number], member ID [id], for [procedure/medication, CPT/NDC code]. I want to start the appeal and request a peer-to-peer review with my [clinician name].",
38
+ "ask_criteria": "What specific medical-necessity criteria — Milliman, MCG, InterQual, or your internal policy — were used to evaluate this request? Could you send me the criteria document and the specific criteria that weren't met?",
39
+ "request_p2p": "I'd like to schedule a peer-to-peer review between my prescribing [specialist] and your medical director. What's the soonest available slot, and who do I have my clinician's office contact?",
40
+ "request_expedited": "Given that delay could [jeopardize my health / cause irreversible harm / lead to hospitalization], I'd like to file this as an expedited appeal. The standard is 72 hours for expedited internal appeals. Can we proceed on that timeline?",
41
+ "ask_reviewer_specialty": "What was the specialty of the physician who issued the denial? Was it the same specialty as my prescribing clinician?",
42
+ "request_written_appeal_path": "Please walk me through the formal appeal process: internal appeal deadline, external review path, what evidence I can submit, and where to send it.",
43
+ "decline_substitution": "Thanks, but my clinician has already considered [alternative] and ruled it out because [reason]. I'd like to stay focused on the originally prescribed treatment.",
44
+ "graceful_close": "Thank you. To confirm: peer-to-peer is scheduled for [date/time], appeal deadline is [date], expedited status is [confirmed/pending], and the criteria document will be sent to [email] by [date]."
45
+ },
46
+ "tactics": [
47
+ {
48
+ "name": "Open with the appeal request, not the complaint",
49
+ "when": "First substantive turn.",
50
+ "script": "Use the `opener` phrase. Two deliverables: P2P scheduled + appeal opened. Don't get pulled into re-arguing the underlying clinical question with a phone rep.",
51
+ "priority": 1
52
+ },
53
+ {
54
+ "name": "Demand the specific criteria",
55
+ "when": "Rep says 'not medically necessary' without specifics.",
56
+ "script": "Use the `ask_criteria` phrase. The clinician needs the exact criteria the denial cited to build the P2P case and the written appeal.",
57
+ "priority": 2
58
+ },
59
+ {
60
+ "name": "Schedule the peer-to-peer",
61
+ "when": "Once the denial is confirmed.",
62
+ "script": "Use the `request_p2p` phrase. P2P often overturns the denial in a single 15-minute call between the clinician and the medical director.",
63
+ "priority": 3
64
+ },
65
+ {
66
+ "name": "Escalate to expedited if clinically warranted",
67
+ "when": "Delay would harm the user's health.",
68
+ "script": "Use the `request_expedited` phrase. Documented urgency unlocks 72-hour timelines. Clinician's office can submit a letter of medical necessity stating the urgency.",
69
+ "priority": 4
70
+ },
71
+ {
72
+ "name": "Challenge the reviewer's specialty",
73
+ "when": "Drug or procedure is specialty-specific.",
74
+ "script": "Use the `ask_reviewer_specialty` phrase. A non-specialist denial is grounds for a same-specialty re-review on appeal — and is itself appealable.",
75
+ "priority": 5
76
+ },
77
+ {
78
+ "name": "Map the full appeal ladder",
79
+ "when": "Mid-call.",
80
+ "script": "Use the `request_written_appeal_path` phrase. Internal appeal → external review → state DOI / federal IRO depending on plan type. Each rung has a deadline and a clock.",
81
+ "priority": 6
82
+ },
83
+ {
84
+ "name": "Decline 'alternative' substitutions",
85
+ "when": "Rep suggests a cheaper drug or different procedure.",
86
+ "script": "Use the `decline_substitution` phrase. The phone rep is not the clinician. Substitutions belong in P2P with documented clinical reasoning, not on a service call.",
87
+ "priority": 7
88
+ }
89
+ ],
90
+ "boundaries": [
91
+ "Do NOT speculate about pre-existing conditions, prior symptoms, or family history on this call.",
92
+ "Do NOT accept the denial as final — internal appeal is a right under both ERISA and ACA-regulated plans.",
93
+ "Do NOT skip the expedited option if the clinical situation is urgent — the standard 30-day clock can cause real harm.",
94
+ "Do NOT agree to a 'voluntary withdrawal' of the PA request, which can extinguish appeal rights.",
95
+ "Do NOT disclose mental-health, substance-use, HIV, or other specially-protected diagnoses unless directly relevant to the appeal.",
96
+ "Do NOT make clinical decisions on the call. Substitutions, dose changes, and 'trying alternatives first' route through the clinician."
97
+ ],
98
+ "success_signals": [
99
+ "P2P is scheduled with the carrier's medical director.",
100
+ "Criteria document is committed for delivery.",
101
+ "Expedited status is granted when requested.",
102
+ "Carrier confirms same-specialty reviewer for the appeal.",
103
+ "Appeal deadline and submission method are clearly documented."
104
+ ],
105
+ "failure_signals": [
106
+ "Rep refuses to schedule P2P.",
107
+ "Rep won't disclose which criteria set was used.",
108
+ "Carrier asserts the denial is 'final' before internal appeal.",
109
+ "Expedited request is denied without medical justification."
110
+ ],
111
+ "exit_strategy": {
112
+ "on_success": "Confirm P2P time, criteria-doc ETA, appeal deadline, expedited status. Email a recap to the user AND the prescribing clinician's office (so they can prepare for P2P).",
113
+ "on_failure": "Document the obstruction. Route to `ask_operator` with options: (1) written appeal with letter of medical necessity, (2) state DOI complaint (if fully-insured) or DOL complaint (if ERISA self-funded), (3) external IRO review, (4) state insurance commissioner.",
114
+ "follow_ups": [
115
+ "Email the clinician's office with the criteria document and P2P time so they can prepare.",
116
+ "Calendar the appeal deadline with 7-day and 1-day reminders.",
117
+ "Send a recap to the user with next-step ownership.",
118
+ "If P2P fails, immediately initiate written internal appeal."
119
+ ]
120
+ },
121
+ "required_user_info": [
122
+ "Denial reference number and member ID",
123
+ "Procedure CPT/HCPCS code or medication NDC",
124
+ "Prescribing clinician's name, NPI, office phone",
125
+ "Letter of medical necessity from clinician (request from office if missing)",
126
+ "Plan type — fully-insured vs ERISA self-funded",
127
+ "Whether clinical situation warrants expedited appeal"
128
+ ],
129
+ "contributed_by": "insurance-claims agent (v0.9.87 community drop)",
130
+ "updated_at": "2026-05-20T06:09:47Z"
131
+ }