Negotiation is the highest-stakes behavioral context in the chatbot platform and Deal Intelligence Platform. The negotiation engine group provides three complementary views: what the actor's alternatives are (BATNA), what tactics they are using, and who has decision authority.
The Engines
- BATNA Engine — Infers an actor's best alternative to a negotiated agreement from behavioral signals: urgency patterns, alternative-seeking behavior, deadline sensitivity.
- Tactical Negotiation Engine — Pattern-matches against a library of known negotiation tactics: anchoring, time pressure, false concession, good-cop/bad-cop.
- Authority-Dependency Engine — Detects when an actor is deferring to an unseen principal: "I need to check with my partner" used consistently as a delay tactic vs as a genuine constraint.
Code Walkthrough
// BATNA inference from behavioral signals
function inferBATNA(signals) {
const urgencyScore = signals.deadlineSensitivity ?? 0;
const alternativeSeeking = signals.competitorMentions / signals.totalInteractions;
const concessionRate = signals.concessionsGiven / signals.totalOffers;
// High urgency + low alternative-seeking = weak BATNA
const batnaStrength = (1 - urgencyScore) * 0.4
+ alternativeSeeking * 0.4
+ (1 - concessionRate) * 0.2;
return {
score: batnaStrength,
label: batnaStrength > 0.65 ? "strong-alternative-position"
: "limited-alternative-indicators",
};
}
What to Watch For
- BATNA inference is probabilistic. Never present a BATNA score as definitive — it is a signal to investigate, not a conclusion.
- Tactic detection requires a large enough interaction sequence (minimum 5 exchanges) to distinguish tactics from conversational style.