Skip to content

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.

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:
string

Output:

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:
number

Per-criterion evidenced / unknown / unevidenced / empty plus current text.

  • Method: POST /api/tools/get_meddic_status

  • Wait for response: true

Input:

object
session_id:
string

Output:

record

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:
string

Output:

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
string

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
number

Output:

union
object
accepted:
literal false
reason:
string
object
accepted:
literal true
criterion:
string
status:
literal "evidenced"

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
string

Output:

union
object
accepted:
literal false
reason:
string
object
accepted:
literal true
criterion:
string
status:
literal "unknown"

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
string

Output:

object
accepted:
literal true
outcomeId:
string

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:
string

Output:

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:
string

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
unknown

Output:

object
ok:
literal true