@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.
- 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 +128 -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 +125 -0
- package/dist/skills/built-in/report-fbi-tip.json +116 -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,141 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "multi-channel-escalation",
|
|
3
|
+
"name": "Multi-Channel Escalation Sequencing",
|
|
4
|
+
"version": "1.0.0",
|
|
5
|
+
"category": "customer-service",
|
|
6
|
+
"tags": [
|
|
7
|
+
"escalation",
|
|
8
|
+
"multi-channel",
|
|
9
|
+
"social-media",
|
|
10
|
+
"email",
|
|
11
|
+
"phone",
|
|
12
|
+
"twitter",
|
|
13
|
+
"linkedin",
|
|
14
|
+
"strategy",
|
|
15
|
+
"customer-support"
|
|
16
|
+
],
|
|
17
|
+
"description": "Use phone, email, social media, and written letters in the right ORDER and the right COMBINATION. Each channel has different routing, different staffing, and different leverage. Wrong order wastes weeks; right order resolves in days.",
|
|
18
|
+
"disclaimer": null,
|
|
19
|
+
"context": {
|
|
20
|
+
"when_to_use": "A single channel (typically phone) hasn't resolved the issue after 1-2 good-faith attempts. The issue has enough materiality to be worth a multi-day, multi-channel push. Especially effective when the company has a visible brand and active social media presence.",
|
|
21
|
+
"preconditions": [
|
|
22
|
+
"User has documented timeline of prior attempts (dates, names, case numbers).",
|
|
23
|
+
"User has at least one social media account or willingness to make one.",
|
|
24
|
+
"User has the company's published support email AND its executive-relations or social-care contact handles (researchable in 10 min).",
|
|
25
|
+
"User has 3-7 days to let the channels work — multi-channel is not a same-day strategy."
|
|
26
|
+
],
|
|
27
|
+
"estimated_call_duration_minutes": 25
|
|
28
|
+
},
|
|
29
|
+
"principles": [
|
|
30
|
+
"Channels are sorted by COST and SPEED, not by what feels right. Roughly: chat (cheapest, fastest if available) → phone (free for you, expensive for the company) → email (slow but documented) → social public (FAST + reputational pressure) → written letter (slow, formal, legally weighty) → executive/regulator (most expensive, most powerful). Use cheaper/faster channels first; escalate when they fail.",
|
|
31
|
+
"Social media is the highest-leverage modern channel for routine consumer disputes. Companies staff social-care teams with senior agents and explicit escalation authority — because public visibility forces it. A polite, factual public tweet at @CompanyHelp often outperforms 3 hours on hold.",
|
|
32
|
+
"Email is slow but creates a paper trail. Send email IN PARALLEL with phone or social — not as your only channel. The phrase 'I emailed your support address on [date]' is leverage even before anyone reads the email.",
|
|
33
|
+
"Direct messages (DMs) often work better than public posts. Many companies' social-care teams reply faster to a polite DM with case details than to a public post. But the public post creates the leverage that gets the DM answered quickly. Combination > either alone.",
|
|
34
|
+
"Decision point — before each new channel, ask: 'is this channel actually used by this company?' Some companies are dead on Twitter, alive on Reddit. Some answer email in 2 days; others in 6 weeks. Spend 5 minutes verifying before committing.",
|
|
35
|
+
"Channel-stacking is force multiplication. Phone call open + email sent same day + tweet referencing both = three separate notifications hitting three separate teams who don't want to be the one who let the customer escalate further.",
|
|
36
|
+
"Tone has to STAY professional across channels. The same factual, calm tone wins in all of them. A combative tweet undoes the leverage your calm email built."
|
|
37
|
+
],
|
|
38
|
+
"phrases": {
|
|
39
|
+
"email_template_subject": "Formal escalation — [Account #] — [one-line issue] — case ref [prior case #]",
|
|
40
|
+
"email_template_body_intro": "Hello,\n\nI'm writing to escalate a service issue that has not been resolved through prior phone contact. Timeline below.\n\nAccount: [number]\nIssue: [one paragraph, factual]\nPrior contacts: [date — rep name — case # — outcome]; [repeat for each]\nRequested resolution: [one sentence]\n\nI'd appreciate a response within [5 business days]. If unresolved, my next step will be [next channel — be specific, not threatening].",
|
|
41
|
+
"tweet_template_public": "@[CompanyHelp] hi — I've been trying to resolve [one-line issue] for [N weeks] across [N calls]. Account on file, case ref [###]. Can someone DM me to get this moving? Happy to take this to DMs.",
|
|
42
|
+
"tweet_template_dm": "Hi — sending case context here so we can keep details off the public timeline. Account: [number] / Email on file: [email] / Issue: [paragraph] / Prior case refs: [list] / What I'm asking for: [one sentence] / What I've tried: [bullet list]. Thanks for any help.",
|
|
43
|
+
"linkedin_inmail_to_exec": "Hi [Name] — apologies for the cold message. I'm a long-time [company] customer and have been unable to resolve [issue] across [N contacts]. I know this isn't your direct area but I'd appreciate even a forward to the right person at your organization. Case ref [#] for your team. Thank you.",
|
|
44
|
+
"letter_template_opening": "Dear [Office of the President / Customer Relations]: I am writing as a formal escalation regarding [issue], which has not been resolved through your customer service channels. Attached is a complete timeline including dates, representative names, and case reference numbers. I am requesting a written response within 14 days.",
|
|
45
|
+
"phone_referencing_paper_trail": "Just for context — I've already emailed your support team on [date] and sent a DM to your social-care team on [date]. I'm calling now to give your phone team a chance to resolve this before all three channels return responses."
|
|
46
|
+
},
|
|
47
|
+
"tactics": [
|
|
48
|
+
{
|
|
49
|
+
"name": "Audit channels before committing",
|
|
50
|
+
"when": "Before launching multi-channel.",
|
|
51
|
+
"script": "5-minute research: (1) Is the company's Twitter/X handle responsive in the last 30 days? Check replies. (2) Is the company's support email a real inbox or a no-reply? (3) Does the executive team have public LinkedIn presence? (4) Are there subreddits or Better Business Bureau threads showing what channel has worked for others? Pick the live channels — skip the dead ones.",
|
|
52
|
+
"priority": 1,
|
|
53
|
+
"decision_point": "If a channel looks dead (Twitter handle that hasn't replied in 6 months, email address that bounces) — DO NOT use it. A dead channel is wasted effort AND tells the company you don't know which channels are real, weakening your credibility."
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
"name": "Standard sequence — phone+email same day, social if no movement in 48h",
|
|
57
|
+
"when": "Day 1.",
|
|
58
|
+
"script": "Morning: phone call (using prior skills). Same afternoon: send formal escalation email (template above). Save the email send confirmation. Wait 48h business-hours. If no movement → Day 3: post the tweet AND send the DM.",
|
|
59
|
+
"priority": 2
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
"name": "Reference the paper trail on every channel",
|
|
63
|
+
"when": "Every contact after Day 1.",
|
|
64
|
+
"script": "Use `phone_referencing_paper_trail` or its variant for the channel. The fact that you have multiple channels open is itself leverage — companies prefer to resolve once, not respond on five tracks.",
|
|
65
|
+
"priority": 3,
|
|
66
|
+
"decision_point": "If, after referencing the paper trail, the agent visibly engages (looks up the email, references the tweet) — that channel is now active. Keep them engaged; don't add more channels until you see whether this one resolves."
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
"name": "Use social-DM, not just public posts",
|
|
70
|
+
"when": "Tweet has been up >2h with no reply, OR you want to share details that don't belong public.",
|
|
71
|
+
"script": "Use `tweet_template_dm`. Most companies' social-care teams respond faster to DMs (lower public-relations risk for them to engage substantively). The public tweet creates urgency; the DM enables resolution.",
|
|
72
|
+
"priority": 4
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
"name": "LinkedIn for executives (carefully)",
|
|
76
|
+
"when": "Phone + email + social all unresolved after 7 business days.",
|
|
77
|
+
"script": "Use `linkedin_inmail_to_exec`. Target: VP of Customer Experience, Chief Customer Officer, or anyone with 'customer' in their title — NOT the CEO directly (too high, ignored or filtered). Keep it polite, brief, factual. Most executives forward these to a senior escalation specialist within hours.",
|
|
78
|
+
"priority": 5,
|
|
79
|
+
"decision_point": "LinkedIn outreach burns a one-time card. Don't do it for trivial issues. Reserve for cases where the dollar amount or harm justifies the asymmetry — and only after the standard channels have demonstrably failed."
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
"name": "Written letter for formality",
|
|
83
|
+
"when": "Issue is large (multi-thousand dollar, multi-month) and digital channels haven't worked.",
|
|
84
|
+
"script": "Use `letter_template_opening`. Send by certified mail to corporate HQ (Office of the President / Customer Relations). Include timeline, evidence, and a 14-day response window. Certified mail creates legal record of receipt — that's why it's part of regulator / litigation prep.",
|
|
85
|
+
"priority": 6
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
"name": "Consolidate to the channel that responded",
|
|
89
|
+
"when": "Any channel produces an actual response.",
|
|
90
|
+
"script": "Stop adding channels. Concentrate on the one that's working. Multiple parallel responses can contradict each other and the company may close the rest as 'duplicate'. Acknowledge the responsive channel ('thank you for getting back to me — I'd like to consolidate the conversation here').",
|
|
91
|
+
"priority": 7
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
"name": "Close all channels with the resolution",
|
|
95
|
+
"when": "Resolution reached on one channel.",
|
|
96
|
+
"script": "Send a brief, polite update on each OTHER open channel: 'Resolved via [channel] on [date], case [ref]. Closing this thread. Thanks.' Keeps your record clean and prevents stale escalations from re-opening confused tickets later.",
|
|
97
|
+
"priority": 8
|
|
98
|
+
}
|
|
99
|
+
],
|
|
100
|
+
"boundaries": [
|
|
101
|
+
"Do NOT post unverified accusations on social. Public posts are searchable forever — defamation isn't free.",
|
|
102
|
+
"Do NOT post identifying information (account numbers, full addresses, screenshots with PII) publicly. Use DMs for that.",
|
|
103
|
+
"Do NOT spam multiple executives at once with LinkedIn InMail. One targeted message > five mass messages.",
|
|
104
|
+
"Do NOT contradict yourself across channels — same facts, same ask, same timeline everywhere. Contradictions are used to discredit you.",
|
|
105
|
+
"Do NOT skip the cheaper channels and go directly to social/executive/regulator first. Skipping the ladder destroys the 'I tried' narrative that makes higher channels work.",
|
|
106
|
+
"Do NOT keep adding channels after one starts working — pick the responsive channel and pursue it.",
|
|
107
|
+
"Do NOT use multi-channel for a $20 dispute. The strategy's overhead is real; reserve for issues that justify it (>$200 OR significant service disruption OR principle-of-the-thing matters more than the dollar amount)."
|
|
108
|
+
],
|
|
109
|
+
"success_signals": [
|
|
110
|
+
"Social-care DM responds within 24h with case ownership.",
|
|
111
|
+
"Email reply from an actual person (not auto-reply) with a name + case + commitment.",
|
|
112
|
+
"Phone rep on a re-call references the email or tweet without prompting — meaning the channels are visible internally.",
|
|
113
|
+
"Executive-level callback from a phone number you didn't dial.",
|
|
114
|
+
"Tone shift from 'we'll look into it' to 'here's what we can do' on any channel."
|
|
115
|
+
],
|
|
116
|
+
"failure_signals": [
|
|
117
|
+
"All channels respond with the same boilerplate (often verbatim) — you've hit a centralized response queue with no real authority.",
|
|
118
|
+
"Auto-replies on email but no human follow-up after 5 business days.",
|
|
119
|
+
"Public tweet gets no response within 48h on a normally-responsive handle.",
|
|
120
|
+
"DM gets a generic 'thanks for reaching out, please call [number]' — that's a channel-loop back to phone, the channel that already failed.",
|
|
121
|
+
"Letter sent certified mail, signature received, no response in 14 business days."
|
|
122
|
+
],
|
|
123
|
+
"exit_strategy": {
|
|
124
|
+
"on_success": "Consolidate to the responsive channel. Get specific commitment in writing. Close other channels with brief updates. Calendar a follow-up to verify the resolution actually executed.",
|
|
125
|
+
"on_failure": "If all standard channels exhausted: escalate to `invoke-regulator-firmly` (if applicable) and/or `reach-executive-office` (direct corporate). For very large dollar amounts, consult an attorney about formal demand letter or small claims.",
|
|
126
|
+
"follow_ups": [
|
|
127
|
+
"Save all channel correspondence (emails, tweet links, DM screenshots, certified mail receipts) in one folder — this is your evidence package.",
|
|
128
|
+
"If issue resolves, send a closing message of thanks on the responsive channel. Goodwill on a responsive channel makes the NEXT issue (if there is one) faster.",
|
|
129
|
+
"If issue remains unresolved after 14-30 days across multiple channels — that itself is grounds for a regulator complaint citing pattern of non-response."
|
|
130
|
+
]
|
|
131
|
+
},
|
|
132
|
+
"required_user_info": [
|
|
133
|
+
"Complete timeline of prior contacts",
|
|
134
|
+
"Account number + login email + phone on file",
|
|
135
|
+
"Verified company contact info for each channel (phone, email, social handles, corporate address)",
|
|
136
|
+
"Social media account (or willingness to create one)",
|
|
137
|
+
"Time horizon available (7+ business days for full sequence)"
|
|
138
|
+
],
|
|
139
|
+
"contributed_by": "support-escalator agent (v0.9.87 community drop)",
|
|
140
|
+
"updated_at": "2026-05-20T06:09:47Z"
|
|
141
|
+
}
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "multi-issue-tradeoffs",
|
|
3
|
+
"name": "Multi-Issue Trading: Expanding the Pie Beyond Price",
|
|
4
|
+
"version": "1.0.0",
|
|
5
|
+
"category": "negotiation",
|
|
6
|
+
"tags": ["integrative", "logrolling", "trades", "issue-mapping", "phone-call"],
|
|
7
|
+
"description": "Most negotiations get stuck because they're being played on a single dimension (usually price). The best deals are found by introducing additional dimensions and trading what's cheap for you for what's valuable to them — and vice versa.",
|
|
8
|
+
"disclaimer": "Multi-issue trading requires that you actually know which dimensions you can offer. Trading something you don't have authority over is a fast path to a broken deal. Verify authority with the user via `ask_operator` before offering term, scope, or contractual concessions.",
|
|
9
|
+
"context": {
|
|
10
|
+
"when_to_use": "Whenever a price-only negotiation is stuck OR when the deal is structurally complex (B2B, real estate, employment, contractor agreements, multi-party). Less applicable to one-time consumer transactions with a true fixed SKU.",
|
|
11
|
+
"preconditions": [
|
|
12
|
+
"You have mapped the full set of dimensions in play (at minimum: price, term, payment timing, scope, support, exclusivity, references).",
|
|
13
|
+
"You know which of those dimensions YOU can offer.",
|
|
14
|
+
"You have a hypothesis about which dimensions matter MOST to the counterparty (asymmetric value)."
|
|
15
|
+
],
|
|
16
|
+
"estimated_call_duration_minutes": 35
|
|
17
|
+
},
|
|
18
|
+
"principles": [
|
|
19
|
+
"Single-issue negotiation is distributive (zero-sum); multi-issue is integrative (positive-sum). Always try to find a second dimension before settling on the first.",
|
|
20
|
+
"Trade what's CHEAP for you for what's VALUABLE to them. That's where the pie grows.",
|
|
21
|
+
"Bundle concessions, never give one at a time. 'I'll do X, Y, and Z if you do A, B, and C' is more powerful than three serial 'I'll do X if you do A' exchanges — and it locks the deal.",
|
|
22
|
+
"Discover dimensions by asking. 'What else matters to you besides price?' is one of the highest-ROI questions in any negotiation. Most counterparties answer truthfully.",
|
|
23
|
+
"Never concede without a reciprocal trade. Free concessions teach the counterparty that you'll give more for free.",
|
|
24
|
+
"Asymmetric value is the source of all gains. If a 12-month term costs the rep nothing but is worth $X to me — that's pure surplus to capture."
|
|
25
|
+
],
|
|
26
|
+
"phrases": {
|
|
27
|
+
"discover_dimensions": "What else matters to you on a deal like this besides price?",
|
|
28
|
+
"introduce_term": "What if I committed to [12 / 24] months — does that move the price?",
|
|
29
|
+
"introduce_payment": "What if I paid annually upfront / net-15 / via ACH — what's that worth on price?",
|
|
30
|
+
"introduce_scope": "What if we trimmed [feature/SKU] — does that change the math?",
|
|
31
|
+
"introduce_references": "I'd be willing to be a public reference / case study / testimonial — is that worth anything to you?",
|
|
32
|
+
"introduce_exclusivity": "What if I committed to using only your service for [category] — does that unlock anything?",
|
|
33
|
+
"introduce_timing": "What if I closed by end of month vs. next quarter — does that help on price?",
|
|
34
|
+
"bundle_proposal": "Here's where I am: if we do [A, B, C], I can commit to [X, Y, Z]. Is that a package you can work with?",
|
|
35
|
+
"trade_signal": "I can move on [X] if you can move on [Y].",
|
|
36
|
+
"no_free_concessions": "I can do that — what do you have for me in exchange?"
|
|
37
|
+
},
|
|
38
|
+
"tactics": [
|
|
39
|
+
{
|
|
40
|
+
"name": "Map dimensions before naming numbers",
|
|
41
|
+
"when": "Beginning of any structurally complex negotiation.",
|
|
42
|
+
"script": "Open with `discover_dimensions`. Build a list of what matters to the rep. This frames the rest of the call as a multi-axis search.",
|
|
43
|
+
"priority": 1
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
"name": "Introduce a new dimension when stuck on price",
|
|
47
|
+
"when": "Two or more price exchanges produced no movement.",
|
|
48
|
+
"script": "Use one of the introduce-X phrases. The dimension you pick should be (a) cheap for you, (b) plausibly valuable for them. Term and payment timing are the most universally tradable.",
|
|
49
|
+
"priority": 2
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
"name": "Bundle, never serialize",
|
|
53
|
+
"when": "You have 2+ concessions on the table.",
|
|
54
|
+
"script": "Wrap them into one package with `bundle_proposal`. Counterparty must accept or counter the WHOLE bundle, not pick the pieces they like and reject the rest.",
|
|
55
|
+
"priority": 3
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
"name": "Refuse free concessions",
|
|
59
|
+
"when": "Counterparty asks for a concession without offering one.",
|
|
60
|
+
"script": "Use `no_free_concessions`: 'I can do that — what do you have for me in exchange?' Said warmly, this trains them to trade.",
|
|
61
|
+
"priority": 4
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
"name": "Trade across asymmetric value",
|
|
65
|
+
"when": "You've discovered something that's near-free for you but valuable to them (e.g., a public reference, a longer term).",
|
|
66
|
+
"script": "Trade it hard. 'I'll be a reference for $X off the price' — but only commit on dimensions the user has authorized.",
|
|
67
|
+
"priority": 5
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
"name": "Reserve a 'sweetener' for the close",
|
|
71
|
+
"when": "Deal is 90% there but needs a final nudge.",
|
|
72
|
+
"script": "Hold one small concession in reserve from the beginning (e.g., 'I can also throw in [Z]' at the end). Sweeteners at the close convert 'almost-yes' into 'yes'."
|
|
73
|
+
}
|
|
74
|
+
],
|
|
75
|
+
"decision_tree": {
|
|
76
|
+
"description": "Multi-issue trading happens at every junction of the negotiation. When you sense a stall, run this tree to find the next dimension.",
|
|
77
|
+
"branches": [
|
|
78
|
+
{
|
|
79
|
+
"if_you_hear": "'The price is the price' / 'we don't have flexibility on price'.",
|
|
80
|
+
"interpretation": "Counterparty is signaling price is locked. Other dimensions are likely OPEN.",
|
|
81
|
+
"say": "Introduce a new dimension: `introduce_term` or `introduce_payment` or `introduce_scope`.",
|
|
82
|
+
"do_not": "Do not press on price. Pivot dimensions."
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
"if_you_hear": "'What else are you looking for besides price?' (they're asking YOU about dimensions).",
|
|
86
|
+
"interpretation": "Good — they're already in multi-issue mode.",
|
|
87
|
+
"say": "Name 2-3 dimensions where you'd value movement. Be specific.",
|
|
88
|
+
"do_not": "Do not say 'just a better price'. That collapses you back to single-issue."
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
"if_you_hear": "Counterparty offers a concession unprompted.",
|
|
92
|
+
"interpretation": "They want to keep the deal alive. Don't accept-and-pocket — trade.",
|
|
93
|
+
"say": "Accept warmly AND counter-trade: 'Great — and if I add [Y] to my side, can we also do [Z]?'",
|
|
94
|
+
"do_not": "Do not silently bank the concession. Use its momentum."
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
"if_you_hear": "Counterparty asks for a concession from you without offering one.",
|
|
98
|
+
"interpretation": "Testing whether you'll concede for free.",
|
|
99
|
+
"say": "`no_free_concessions`: 'I can do that — what do you have for me?'",
|
|
100
|
+
"do_not": "Do not concede unilaterally even on small things. Pattern matters more than individual move."
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
"if_you_hear": "Counterparty enthusiastic about ONE specific term (e.g., longer commitment).",
|
|
104
|
+
"interpretation": "You've found high-asymmetric-value dimension. Press it.",
|
|
105
|
+
"say": "Test the value: 'How much would a 24-month commitment unlock on price?' Force them to put a number on it.",
|
|
106
|
+
"do_not": "Do not give the term for free — extract the price move first."
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
"if_you_hear": "Counterparty offers bundle ('we can do A and B if you do X and Y').",
|
|
110
|
+
"interpretation": "They're playing the right game. Engage on bundle terms.",
|
|
111
|
+
"say": "Counter-bundle. Don't accept their bundle as-is — modify two pieces and re-offer.",
|
|
112
|
+
"do_not": "Do not pick at one part of their bundle while ignoring the rest. Engage with the whole."
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
"if_you_hear": "After 2 rounds of multi-issue trading, both sides circling without close.",
|
|
116
|
+
"interpretation": "Either the gap is real OR there's an undisclosed constraint.",
|
|
117
|
+
"say": "Surface the constraint: 'What's the one thing that, if we solved it, would let you close today?'",
|
|
118
|
+
"do_not": "Do not keep cycling dimensions. The blocker is now meta, not dimensional."
|
|
119
|
+
},
|
|
120
|
+
{
|
|
121
|
+
"if_you_hear": "Counterparty says 'I have to ask my manager about X' on a specific dimension.",
|
|
122
|
+
"interpretation": "That dimension is the one with the most authority headroom. Manager has more latitude there than on price.",
|
|
123
|
+
"say": "Press on that dimension: 'Great — while you check, can we also explore if there's more room on [Y]?' Manager-call is your moment.",
|
|
124
|
+
"do_not": "Do not focus only on price during the manager pause. The whole bundle gets reviewed."
|
|
125
|
+
}
|
|
126
|
+
]
|
|
127
|
+
},
|
|
128
|
+
"boundaries": [
|
|
129
|
+
"Do NOT trade dimensions the user has not authorized (term, exclusivity, scope changes).",
|
|
130
|
+
"Do NOT bundle in items the user has marked non-negotiable.",
|
|
131
|
+
"Do NOT invent dimensions to bluff with — if you mention 'autopay' you must be willing to do it.",
|
|
132
|
+
"Do NOT continue introducing dimensions past the user's complexity tolerance — some users want a simple deal, even if suboptimal."
|
|
133
|
+
],
|
|
134
|
+
"success_signals": [
|
|
135
|
+
"Counterparty asks YOU questions about your priorities — multi-issue dialogue is active.",
|
|
136
|
+
"Counterparty proposes asymmetric trades (their cheap-thing for your valuable-thing or vice versa).",
|
|
137
|
+
"Final deal includes 2+ non-price terms that wouldn't have been in a single-issue close.",
|
|
138
|
+
"Counterparty thanks you for being 'creative' or 'flexible' — both code for 'you played the right game'."
|
|
139
|
+
],
|
|
140
|
+
"failure_signals": [
|
|
141
|
+
"Counterparty firmly refuses to discuss any non-price dimension after 2 attempts.",
|
|
142
|
+
"Bundle proposed by you gets dismantled piece-by-piece — counterparty is cherry-picking.",
|
|
143
|
+
"You've introduced 4+ dimensions and the deal hasn't moved — too many open variables; consolidate."
|
|
144
|
+
],
|
|
145
|
+
"exit_strategy": {
|
|
146
|
+
"on_success": "Confirm the FULL bundle in writing — every dimension, not just price. Use `commitment_check` and make sure each item has an owner and timing.",
|
|
147
|
+
"on_failure": "If multi-issue trading doesn't move the deal, the constraint is probably authority or fixed-pricing. Escalate or accept the single-issue outcome and consider walking (see `10-walkaway-threats`)."
|
|
148
|
+
},
|
|
149
|
+
"required_user_info": [
|
|
150
|
+
"Full list of dimensions the user can trade (with authority levels for each).",
|
|
151
|
+
"User's ranking of which dimensions matter to THEM (so concessions are made on lower-ranked dimensions).",
|
|
152
|
+
"Any hypothesis about what matters most to the counterparty."
|
|
153
|
+
],
|
|
154
|
+
"contributed_by": "negotiation-master agent (v0.9.87 community drop)"
|
|
155
|
+
}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "negotiate-rent-renewal",
|
|
3
|
+
"name": "Negotiate Rent at Lease Renewal",
|
|
4
|
+
"version": "1.0.1",
|
|
5
|
+
"category": "real-estate",
|
|
6
|
+
"tags": [
|
|
7
|
+
"rent",
|
|
8
|
+
"renewal",
|
|
9
|
+
"negotiation",
|
|
10
|
+
"landlord",
|
|
11
|
+
"phone-call",
|
|
12
|
+
"comparables",
|
|
13
|
+
"housing-tenancy"
|
|
14
|
+
],
|
|
15
|
+
"description": "Call the landlord or property manager to negotiate a renewal offer down (or hold it flat) using market comparables and tenancy track record — without threatening to move out unless the user is actually willing to.",
|
|
16
|
+
"disclaimer": "Not legal advice. Habitability + early-termination skills are scripted to PRESERVE legal posture (request things in writing, refuse verbal-only assurances) — but the operator must consult a tenant attorney for actual rights determination.",
|
|
17
|
+
"context": {
|
|
18
|
+
"when_to_use": "User has received a renewal offer (or knows their lease ends soon) and the proposed rent is above market or above what they want to pay. Most effective 45–75 days before lease expiry, when the landlord is exposed to vacancy risk but not yet panicked.",
|
|
19
|
+
"preconditions": [
|
|
20
|
+
"User has the current rent and the proposed new rent in writing.",
|
|
21
|
+
"User has 2–4 verified comparables (same neighborhood, similar bed/bath, listed in the last 30 days).",
|
|
22
|
+
"User knows their walk-away number — the rent at which they would actually move.",
|
|
23
|
+
"User has a clean payment record (no late fees in the past 12 months) OR knows where the record stands."
|
|
24
|
+
],
|
|
25
|
+
"estimated_call_duration_minutes": 15
|
|
26
|
+
},
|
|
27
|
+
"principles": [
|
|
28
|
+
"Vacancy is expensive for landlords — turnover cost (cleaning, paint, listing, 1–2 months empty) often exceeds the increase they're asking for. Use that, gently.",
|
|
29
|
+
"Lead with track record, not threats. 'I've paid on time for 24 months and I want to stay' is leverage; 'I'll leave if you don't drop it' is a bluff unless the user means it.",
|
|
30
|
+
"Specific comparables beat vague claims. 'A unit at [address] just listed at $X' lands. 'I've seen cheaper places' does not.",
|
|
31
|
+
"Anchor below your target. If you want $2,300, ask for $2,200. The landlord will counter up; meet in the middle near your real number.",
|
|
32
|
+
"Get the agreed rent and any concessions in writing (renewal addendum or email) BEFORE signing — verbal promises don't survive a building-management changeover."
|
|
33
|
+
],
|
|
34
|
+
"phrases": {
|
|
35
|
+
"opener": "Hi, I got the renewal letter and wanted to talk through it before signing. I've been here [X years/months], paid on time every cycle, and I want to stay — but the new number is higher than what I'm seeing in the neighborhood right now. Can we work something out?",
|
|
36
|
+
"present_comps": "I pulled a few comparable listings nearby — there's a [bed/bath] at [address] listed for [amount], and another at [address] for [amount]. I think a fair renewal for me would be [target amount].",
|
|
37
|
+
"value_to_landlord": "If I renew, you avoid turnover — no painting, no listing fees, no vacancy month. That's real money. I'm asking you to share some of that savings with me.",
|
|
38
|
+
"stall_thinking": "Let me think about that for a moment.",
|
|
39
|
+
"counter_to_split": "Okay — could we meet in the middle at [midpoint]? Same lease length, same on-time payments.",
|
|
40
|
+
"ask_for_concessions": "If the rent number is fixed, are there other things you could include — a month of parking, a pet-fee waiver, carpet cleaning, or a shorter renewal term so we can revisit?",
|
|
41
|
+
"ask_for_writing": "Great, can you send me the updated renewal addendum by email today so I can sign it this week?",
|
|
42
|
+
"graceful_close_walk": "Thanks for talking it through. I need to think about this with my household before I commit. Can you hold the offer open until [date]?"
|
|
43
|
+
},
|
|
44
|
+
"tactics": [
|
|
45
|
+
{
|
|
46
|
+
"name": "Open with tenure and intent to stay",
|
|
47
|
+
"when": "First substantive turn.",
|
|
48
|
+
"script": "Use the `opener`. Lead with how long they've been a tenant and a clean-payment claim — landlords value reliable rent.",
|
|
49
|
+
"priority": 1
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
"name": "Present comparables with addresses",
|
|
53
|
+
"when": "After opener.",
|
|
54
|
+
"script": "Use `present_comps`. Always cite at least two real, current listings. Vague references get dismissed.",
|
|
55
|
+
"priority": 2
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
"name": "Make the cost-of-turnover argument",
|
|
59
|
+
"when": "If the landlord pushes back on the comparables.",
|
|
60
|
+
"script": "Use `value_to_landlord`. Frame the savings to THEM — not the cost to the tenant — and ask for a share.",
|
|
61
|
+
"priority": 3
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
"name": "Silence after the ask",
|
|
65
|
+
"when": "Immediately after stating the target rent.",
|
|
66
|
+
"script": "Wait 3–5 seconds. Landlords often counter into the silence.",
|
|
67
|
+
"priority": 4
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
"name": "Pivot to concessions if rent is fixed",
|
|
71
|
+
"when": "Landlord won't move the rent number.",
|
|
72
|
+
"script": "Use `ask_for_concessions`. Free parking, pet-fee waiver, deep clean, appliance upgrade, or a 6-month lease so the user can revisit. Non-rent concessions often have a separate budget line.",
|
|
73
|
+
"priority": 5
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
"name": "Lock the deal in writing",
|
|
77
|
+
"when": "Verbal agreement reached.",
|
|
78
|
+
"script": "Use `ask_for_writing`. Do NOT consider the deal real until there's a signed renewal addendum or at minimum an email from the landlord stating the new terms."
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
"name": "Reserve the walk-away",
|
|
82
|
+
"when": "Landlord won't move on rent OR concessions and the offer exceeds the user's walk-away number.",
|
|
83
|
+
"script": "Use `graceful_close_walk` and report back. DO NOT give notice to vacate on this call unless the user explicitly authorised it — that's a separate decision."
|
|
84
|
+
}
|
|
85
|
+
],
|
|
86
|
+
"boundaries": [
|
|
87
|
+
"Do NOT threaten to move out unless the user has explicitly authorised it AND has a realistic alternative.",
|
|
88
|
+
"Do NOT invent comparables. Landlords often know the market better than the tenant and will check.",
|
|
89
|
+
"Do NOT sign or verbally commit to a renewal on the phone — always ask for the addendum in writing.",
|
|
90
|
+
"Do NOT disclose personal financial details (raises, new job, savings) — they reduce your leverage.",
|
|
91
|
+
"Do NOT accept a rent reduction in exchange for waiving repair obligations, habitability rights, or the security deposit. Hold via `ask_operator`."
|
|
92
|
+
],
|
|
93
|
+
"success_signals": [
|
|
94
|
+
"Landlord proposes a counter below the original renewal number.",
|
|
95
|
+
"Landlord offers concessions (parking, fee waivers, upgrades) even if rent holds.",
|
|
96
|
+
"Landlord asks for a shorter or longer term in exchange — they're negotiating.",
|
|
97
|
+
"Landlord agrees to send an updated addendum in writing."
|
|
98
|
+
],
|
|
99
|
+
"failure_signals": [
|
|
100
|
+
"Landlord refuses to discuss and says 'take it or leave it' with no movement after two asks.",
|
|
101
|
+
"Landlord insists on a verbal-only agreement and refuses to email the new terms.",
|
|
102
|
+
"Landlord retaliates with talk of non-renewal or eviction threats (note this — it may be illegal in some jurisdictions).",
|
|
103
|
+
"Counter is still above the user's walk-away number."
|
|
104
|
+
],
|
|
105
|
+
"exit_strategy": {
|
|
106
|
+
"on_success": "Confirm the new rent, lease length, any concessions, the renewal-addendum delivery method, and a sign-by date. Ask for the agent's name and a confirmation number or case ID.",
|
|
107
|
+
"on_failure": "Thank the landlord, ask them to hold the original offer open for a stated number of days, and end politely. Report to operator with what was offered and the walk-away gap.",
|
|
108
|
+
"follow_ups": [
|
|
109
|
+
"Email the operator the agreed rent + any concessions + the addendum-delivery date.",
|
|
110
|
+
"Calendar reminder 24 hours before the sign-by date.",
|
|
111
|
+
"Calendar reminder 75 days before the NEXT lease expiry to start the cycle again."
|
|
112
|
+
]
|
|
113
|
+
},
|
|
114
|
+
"required_user_info": [
|
|
115
|
+
"Current rent and proposed renewal rent (in writing)",
|
|
116
|
+
"Target rent, midpoint, and walk-away rent",
|
|
117
|
+
"2–4 verified comparable listings (address + rent + bed/bath)",
|
|
118
|
+
"Length of current tenancy and payment history",
|
|
119
|
+
"Whether the user is willing and able to actually move if negotiation fails"
|
|
120
|
+
],
|
|
121
|
+
"contributed_by": "housing-tenancy agent (v0.9.87 community drop)",
|
|
122
|
+
"updated_at": "2026-05-20T06:09:47Z"
|
|
123
|
+
}
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "no-as-opening",
|
|
3
|
+
"name": "No Is the Start: Reframing Rejection as Engagement",
|
|
4
|
+
"version": "1.0.0",
|
|
5
|
+
"category": "negotiation",
|
|
6
|
+
"tags": ["voss", "no-oriented", "counterfeit-yes", "thats-right", "phone-call", "real-time"],
|
|
7
|
+
"description": "Most amateurs treat 'no' as the end of a negotiation. In Chris Voss's framework, 'no' is where the actual negotiation BEGINS — it's the first honest signal from the counterparty. This skill teaches how to actively seek 'no', interpret it correctly, and use it as fuel.",
|
|
8
|
+
"disclaimer": "Reframing 'no' takes practice. Mishandled, it sounds like you're not listening. Done well, it converts dead-ends into genuine dialogue.",
|
|
9
|
+
"context": {
|
|
10
|
+
"when_to_use": "Any negotiation. Particularly important early (a no in the first 5 minutes is good news — they're engaging) and after asks that the rep needs to authority-check.",
|
|
11
|
+
"preconditions": [
|
|
12
|
+
"You can hear or read tone — 'no' carries dramatically different meanings depending on delivery.",
|
|
13
|
+
"You have a calibrated question pre-loaded for the most likely no.",
|
|
14
|
+
"You're not personally hurt by rejection — emotional resilience is a precondition for this skill."
|
|
15
|
+
],
|
|
16
|
+
"estimated_call_duration_minutes": 20
|
|
17
|
+
},
|
|
18
|
+
"principles": [
|
|
19
|
+
"'No' rarely means 'no'. It usually means: 'I'm not ready', 'I don't understand', 'I need more information', 'I want something different', 'I don't feel safe agreeing', or 'I don't have authority'. Each of these has a different next move.",
|
|
20
|
+
"A 'no' makes the counterparty feel SAFE — they have asserted control. From a position of safety, they are paradoxically more willing to keep talking. 'Yes' makes them feel committed; 'no' makes them feel protected.",
|
|
21
|
+
"Get them to 'no' deliberately by asking 'no-oriented' questions: 'Is it ridiculous to ask if…', 'Would it be a bad idea to…', 'Have you given up on getting this resolved today?' — saying no to these advances YOUR position.",
|
|
22
|
+
"Beware the counterfeit yes — a quick 'yes' or 'sure, sure' to get you off the line. Counterfeit yes is the most dangerous response in negotiation; it gives false confidence.",
|
|
23
|
+
"The phrase 'that's right' is the breakthrough — it indicates the counterparty feels TRULY understood and is now ready to act. 'You're right' is dismissal disguised as agreement.",
|
|
24
|
+
"Three nos before yes is a common pattern. Track which no you're on — the 3rd or 4th is the one to push past."
|
|
25
|
+
],
|
|
26
|
+
"phrases": {
|
|
27
|
+
"no_oriented_q1": "Is it ridiculous to ask if there's any flexibility on this?",
|
|
28
|
+
"no_oriented_q2": "Have you given up on finding a workaround for me?",
|
|
29
|
+
"no_oriented_q3": "Would it be a bad idea to explore one more option before we wrap up?",
|
|
30
|
+
"no_oriented_q4": "Is now a terrible time to ask about [X]?",
|
|
31
|
+
"after_no_what": "What about it doesn't work?",
|
|
32
|
+
"after_no_calibrated": "How would you handle this if you were in my situation?",
|
|
33
|
+
"summary_for_thats_right": "Let me play this back to make sure I've got it right: [summary]. Did I miss anything?",
|
|
34
|
+
"test_counterfeit_yes": "Just to make sure we're aligned — what's your honest read of what I'm asking?"
|
|
35
|
+
},
|
|
36
|
+
"tactics": [
|
|
37
|
+
{
|
|
38
|
+
"name": "Use no-oriented questions to invite engagement",
|
|
39
|
+
"when": "Early in a call when you suspect the rep will be defensive.",
|
|
40
|
+
"script": "Lead with one of the no-oriented phrases. The rep saying 'no, it's not ridiculous' has now agreed it's reasonable — and feels safe doing so because they got to say 'no'.",
|
|
41
|
+
"priority": 1
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
"name": "Convert their no into a what",
|
|
45
|
+
"when": "Rep says no without reason.",
|
|
46
|
+
"script": "`after_no_what` — 'What about it doesn't work?' This pivots from yes/no theater into informational dialogue.",
|
|
47
|
+
"priority": 2
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
"name": "Pursue 'that's right' through summary",
|
|
51
|
+
"when": "After 2-3 substantive exchanges where you've gathered the rep's frame.",
|
|
52
|
+
"script": "Use `summary_for_thats_right`. Summarize their position back in YOUR words. Land on 'that's right'. That moment is the negotiation's hinge.",
|
|
53
|
+
"priority": 3
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
"name": "Detect and dismantle counterfeit yes",
|
|
57
|
+
"when": "Rep agrees quickly with no specific commitments ('yeah sounds good, totally').",
|
|
58
|
+
"script": "Use `test_counterfeit_yes`. Force them to articulate what they think they agreed to. If they can't, the yes was counterfeit and you need to rebuild.",
|
|
59
|
+
"priority": 4
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
"name": "Treat 'no' as 'tell me more'",
|
|
63
|
+
"when": "Any 'no' that comes with hesitation or qualifier.",
|
|
64
|
+
"script": "Pivot to calibrated question: `after_no_calibrated`. Forces the rep into your shoes — they often solve the problem out loud."
|
|
65
|
+
}
|
|
66
|
+
],
|
|
67
|
+
"decision_tree": {
|
|
68
|
+
"description": "Every 'no' you hear is a fork. Misidentifying the type of no is the most expensive mistake in real-time negotiation. Listen for the qualifying word/tone and route accordingly.",
|
|
69
|
+
"branches": [
|
|
70
|
+
{
|
|
71
|
+
"if_you_hear": "Flat, low-pitch, no qualifier: 'No.'",
|
|
72
|
+
"interpretation": "Possibly real. Possibly testing.",
|
|
73
|
+
"say": "`after_no_what`: 'What about it doesn't work?'",
|
|
74
|
+
"do_not": "Do not accept. Do not argue. Convert to information-gathering."
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
"if_you_hear": "'No, but…' or 'No, however…'",
|
|
78
|
+
"interpretation": "Soft no with a tell. The 'but' is the door.",
|
|
79
|
+
"say": "Mirror what came AFTER the 'but'. That's the actual frame.",
|
|
80
|
+
"do_not": "Do not focus on the no. The 'but' is where the negotiation lives."
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
"if_you_hear": "'No, I can't — I'm not allowed to do that.'",
|
|
84
|
+
"interpretation": "Authority no, not capability no.",
|
|
85
|
+
"say": "Pivot to authority: 'Who CAN do it?' or 'How does an exception usually happen?'",
|
|
86
|
+
"do_not": "Do not press the rep — they're being honest about a real limit."
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
"if_you_hear": "Quick 'sure, sure, no problem' with no specifics.",
|
|
90
|
+
"interpretation": "Counterfeit yes. Most dangerous response.",
|
|
91
|
+
"say": "`test_counterfeit_yes`: 'Just to make sure — what's your honest read of what I'm asking?'",
|
|
92
|
+
"do_not": "Do not proceed. Do not move to confirmation. The yes will evaporate after the call."
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
"if_you_hear": "'You're right.' (verbatim, after your argument or summary).",
|
|
96
|
+
"interpretation": "Dismissal. They want you to stop talking.",
|
|
97
|
+
"say": "Reset. Use a label: 'It seems like I'm not quite hearing what matters to you.'",
|
|
98
|
+
"do_not": "Do not treat 'you're right' as agreement. It is the OPPOSITE of 'that's right'."
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
"if_you_hear": "'That's right.' (verbatim, after your summary).",
|
|
102
|
+
"interpretation": "BREAKTHROUGH. Genuine alignment.",
|
|
103
|
+
"say": "Make your ask NOW. This is the highest-leverage moment of the call.",
|
|
104
|
+
"do_not": "Do not waste this moment chatting. Convert immediately."
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
"if_you_hear": "'I'll have to think about it.'",
|
|
108
|
+
"interpretation": "Soft no AND avoidance of commitment. Often dies in the silence after the call.",
|
|
109
|
+
"say": "Calibrated: 'What would you need from me to make the decision easier today?'",
|
|
110
|
+
"do_not": "Do not accept 'let me think' as a path forward without a specific next step."
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
"if_you_hear": "'No, no, no, no.' (rapid, escalating).",
|
|
114
|
+
"interpretation": "Emotional, not informational. The rep is overwhelmed or scolded.",
|
|
115
|
+
"say": "Switch to labels (see `01-tactical-empathy-labeling`). Calm first; then continue.",
|
|
116
|
+
"do_not": "Do not push for content. The rep is not in a state to receive a calibrated question."
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
"if_you_hear": "After 3 no's, a quiet pause, then 'well…'",
|
|
120
|
+
"interpretation": "The wall just cracked. They're considering.",
|
|
121
|
+
"say": "Nothing. Wait. Let them complete the sentence.",
|
|
122
|
+
"do_not": "Do not interrupt the 'well…'. The 4-second silence after it is where the yes is built."
|
|
123
|
+
}
|
|
124
|
+
]
|
|
125
|
+
},
|
|
126
|
+
"boundaries": [
|
|
127
|
+
"Do NOT manipulate the rep into a 'no' for sport. The technique is for opening dialogue, not for winning rhetorical points.",
|
|
128
|
+
"Do NOT mistake 'no' for an emotional rejection of YOU — it's rejection of the ASK in the moment. Don't take it personally; that taint shows in your tone.",
|
|
129
|
+
"Do NOT take a counterfeit yes off the line. Always confirm specifically before hanging up.",
|
|
130
|
+
"Do NOT keep asking past a clear, low-pitched, repeated 'no' from someone with real authority. That crosses from negotiation into pressure."
|
|
131
|
+
],
|
|
132
|
+
"success_signals": [
|
|
133
|
+
"Rep says 'that's right' after your summary.",
|
|
134
|
+
"Rep says 'no, it's not ridiculous' in response to your no-oriented question — engagement unlocked.",
|
|
135
|
+
"Rep moves from 'no' to explaining WHY, unprompted.",
|
|
136
|
+
"Rep volunteers a workaround after their 3rd no.",
|
|
137
|
+
"Rep's tone softens when they say 'no' — qualifier is incoming."
|
|
138
|
+
],
|
|
139
|
+
"failure_signals": [
|
|
140
|
+
"Rep escalates from 'no' to 'I need to end this call' — you pushed past the real wall.",
|
|
141
|
+
"Counterfeit yes confirmed but you can't get them to articulate the agreement — deal is air.",
|
|
142
|
+
"Rep keeps saying 'you're right' — you're being managed, not engaged.",
|
|
143
|
+
"After 5 calibrated questions you still haven't gotten a 'no' WITH a reason — the rep may have neither authority nor information; escalate."
|
|
144
|
+
],
|
|
145
|
+
"exit_strategy": {
|
|
146
|
+
"on_success": "After 'that's right', lock the ask. Confirm with `commitment_check` from `02-calibrated-questions`.",
|
|
147
|
+
"on_failure": "If you can't move past a hard, repeated no with authority behind it, exit gracefully. Note the rep's name, the reason cited, and try a different channel/time/representative."
|
|
148
|
+
},
|
|
149
|
+
"required_user_info": [
|
|
150
|
+
"User's emotional tolerance for hearing 'no' multiple times — coach if needed.",
|
|
151
|
+
"What 'yes' actually looks like operationally (so we can detect counterfeit yes vs real)."
|
|
152
|
+
],
|
|
153
|
+
"contributed_by": "negotiation-master agent (v0.9.87 community drop)"
|
|
154
|
+
}
|