Skip to main content
PATCH
Update a tool

Authorizations

X-API-Key
string
header
required

API key for external access. Format: tp_live_<32-hex-chars>. Create keys in the TalkPilot Dashboard under Settings > API.

Path Parameters

agentId
string<uuid>
required

Agent UUID

toolId
string<uuid>
required

Tool UUID

Body

application/json

Partial tool update. Only include fields to change.

name
string
Required string length: 1 - 100
display_name
string | null
Maximum string length: 255
description
string
Maximum string length: 2000
config
object
is_enabled
boolean
priority
integer | null
employee_id
string<uuid> | null

Set to link the transfer tool to an employee, null to unlink and manage the number on the tool again. While a link exists, sending a config.phone_number that differs from the employee's number returns 409 CONFLICT — the derived value would silently win otherwise.

Response

Updated tool

id
string<uuid>
agent_id
string<uuid>
name
string

Internal tool name (used in LLM function calling)

display_name
string | null

Human-readable display name

description
string

Tool description (shown to the LLM to decide when to use it)

tool_type
enum<string>

Tool types accepted by the API:

  • http_request — Make HTTP requests to external APIs
  • transfer_call — Blind or warm call transfer
  • monitored_transfer — SIP INVITE transfer with monitoring
  • end_call — End the call with optional goodbye message
  • extract_variable — Extract structured data (email, phone, etc.)
  • play_tone — Play DTMF tones
  • knowledge_base — Search the agent's knowledge base
  • set_call_result — Record a call outcome (no config)
  • identify_caller — Caller identification handshake via your webhooks
  • switch_agent — Hand the call over to another agent
  • verify_value — Deterministic check of a dictated value against rules
  • resolve_contact — Establish how to reach the caller before booking (phone mode)
  • list_available_slots — Offer free appointment slots from the connected calendar
  • book_appointment — Book the chosen slot (same config as list_available_slots)
Available options:
http_request,
transfer_call,
monitored_transfer,
end_call,
extract_variable,
play_tone,
knowledge_base,
set_call_result,
identify_caller,
switch_agent,
verify_value,
resolve_contact,
list_available_slots,
book_appointment
config
object

Tool-specific configuration (schema depends on tool_type)

is_enabled
boolean | null
priority
integer | null

Execution priority (lower number = higher priority)

employee_id
string<uuid> | null

Optional link to an employee, for transfer tools only (transfer_call, monitored_transfer). When set, config.phone_number is derived from employees.phone_number and kept in sync automatically — changing the employee's number changes the transfer target. null means the number is managed on the tool itself.

created_at
string<date-time>
updated_at
string<date-time>