Agent tool contracts
Server tools called by the ElevenLabs agent. waitForResponse is true for every tool: the agent must wait for the middleware result. Parameter names are case-sensitive.
get_deal
Section titled “get_deal”Deal summary, ratings, flags, and required criteria at the current step.
-
Method:
POST /api/tools/get_deal -
Wait for response:
true
Input:
object session_id: stringOutput:
object id: string crmId: string name: string accountName: string ownerName: string step: number p1: nullable number p2: number amount: string currency: string closeDate: string originalCloseDate: string competitor: nullable string productLine: nullable string notes: nullable string flags: array object kind: string code: string severity: string reason: string requiredAtStep: array string evidencedCount: numberget_meddic_status
Section titled “get_meddic_status”Per-criterion evidenced / unknown / unevidenced / empty plus current text.
-
Method:
POST /api/tools/get_meddic_status -
Wait for response:
true
Input:
object session_id: stringOutput:
recordget_outstanding_outcomes
Section titled “get_outstanding_outcomes”Live gap between the flow outcome contract and what has been gathered. Includes budgetExceeded.
-
Method:
POST /api/tools/get_outstanding_outcomes -
Wait for response:
true
Input:
object session_id: stringOutput:
union object error: string object flow: string timeBudgetMinutes: number elapsedMinutes: number budgetExceeded: boolean outstanding: array object id: string description: string satisfiedWhen: string outcomes: optional array object id: string description: string satisfiedWhen: string required: boolean met: boolean checkpoints: array stringrecord_answer
Section titled “record_answer”Validate a checkable specific and, if accepted, store session evidence for a MEDDIC criterion.
-
Method:
POST /api/tools/record_answer -
Wait for response:
true
Input:
object session_id: string criterion: string evidence_text: string specific_type: string specific_value: string confidence: optional numberOutput:
union object accepted: literal false reason: string object accepted: literal true criterion: string status: literal "evidenced"record_unknown
Section titled “record_unknown”Mark a MEDDIC criterion unknown for this session. Honest and distinct from empty.
-
Method:
POST /api/tools/record_unknown -
Wait for response:
true
Input:
object session_id: string criterion: string note: optional stringOutput:
union object accepted: literal false reason: string object accepted: literal true criterion: string status: literal "unknown"record_outcome
Section titled “record_outcome”Record a non-MEDDIC flow outcome (for example close_date_challenged).
-
Method:
POST /api/tools/record_outcome -
Wait for response:
true
Input:
object session_id: string outcome_id: string note: optional stringOutput:
object accepted: literal true outcomeId: stringpropose_change
Section titled “propose_change”Queue a proposed field change. Step increases run the stage gate; a failed gate is still queued.
-
Method:
POST /api/tools/propose_change -
Wait for response:
true
Input:
object session_id: string field: string proposed_value: union string number reasoning: stringOutput:
union object accepted: literal false reason: string object accepted: literal true queued: literal true id: optional string field: string oldValue: nullable string proposedValue: string gate: nullable union object passed: literal true object passed: literal false missing: array string reason: stringend_session_summary
Section titled “end_session_summary”Write the session summary, score outcomes, and queue session evidence as proposals.
-
Method:
POST /api/tools/end_session_summary -
Wait for response:
true
Input:
object session_id: string summary: string open_items: optional unknownOutput:
object ok: literal true