System Tools

Built-in agent tools in Speaknode: end call, transfer to a human operator, transfer to another agent, detect language, skip turn, request info

System tools are capabilities that ship with Speaknode. Unlike webhook tools, you do not create them — they already exist in every workspace. You enable the ones an agent needs, and optionally tune how they behave.

Technically they are ordinary LLM tools: the model sees their name and description, and calls them when the conversation matches. The difference is that the platform executes them internally — hanging up, dialling an operator, switching the agent, changing the language — instead of sending an HTTP request somewhere.

Where to configure them

Open the agent

Go to Agents in https://app.speaknode.com, open the agent and scroll to the Tools section.

Enable the tool

System Tools lists every built-in tool. Flip the switch to give the tool to the agent.

Configure it

Once a tool is enabled, a gear icon appears next to the switch. It opens the tool's settings for this agent: the description, interruption behaviour and — for the two transfer tools — the transfer rules.

Settings are stored per agent. Enabling Transfer to a human operator on one agent and pointing it at a support number does not affect any other agent.

Settings every system tool has

FieldWhat it does
NameRead-only. The tool's name in the catalogue.
Description (optional)The text the LLM reads to decide when to call the tool. Leave it blank to use the platform's default prompt, which is already tuned. Show Default fills the field with that default so you can edit it instead of writing from scratch.
Disable interruptionsWhile the tool is running, the caller cannot interrupt the agent. Useful when the tool speaks a phrase that must be heard in full.

Careful with custom descriptions

The default descriptions are the result of a lot of tuning — a rewritten description is the most common reason a tool stops firing (or starts firing when it should not). If you do override it, keep the runtime placeholders: [languages will be populated at runtime] for Detect language, and the instruction to pass exactly one rule id for the transfer tools. The platform appends the actual list of languages / transfer rules to the description at call time.

The catalogue

ToolWhat it gives the agentNeeds configuration
End callHang up when the conversation is overNo
Transfer to a human operatorPut the caller through to a live person over the phoneYes — transfer rules
Transfer to another agentHand the dialogue to another AI agentYes — transfer rules
Detect languageSwitch the conversation to the caller's languageNo (uses the agent's languages)
Skip turnStay silent when the caller asks for a momentNo
Ask for clarificationLog what information the agent was missingNo

End call

Why you need it. Without this tool the agent can never hang up on its own: the call only ends when the caller does, or when the session times out. That costs money on every call and leaves the caller listening to an agent that has nothing left to say.

How to use it. Enable the switch — there is nothing else to configure. The agent will call it when the dialogue is genuinely finished: the goal is reached, the caller says goodbye, or the caller explicitly asks to end the call.

The agent generates its own farewell (there is no fixed "goodbye" phrase to configure), waits for it to finish playing, and only then terminates the session. The recording and the transcript are finalised normally.

If the agent hangs up too eagerly, tighten the description rather than turning the tool off — e.g. add "Never end the call while the customer's question is unanswered".


Transfer to a human operator

Why you need it. Some calls should not be handled by a bot: the caller insists on a human, the request is outside what the agent can resolve, or the deal is large enough that a person should close it. This tool dials a live operator's phone number and hands the call over — the caller stays on the same call the whole time.

Phone calls only

This tool works only when the conversation is happening over the phone. In a web-widget session the platform does not even give the tool to the model, so the agent cannot promise a transfer it is unable to perform. Connect a number under Phone Numbers first — see Phone Numbers and Custom SIP.

The operator is dialled from the same phone number and telephony account the caller reached the agent on. It is a second outbound leg, billed by your telephony provider like any other outbound call.

Setting up a transfer rule

Enable the tool and open its settings

In the agent's Tools section, enable Transfer to a human operator and click the gear icon.

Add a rule

In Transfer Rules, click Add Rule and fill it in:

FieldRequiredWhat to put there
Transfer modeYesCold, Warm — custom message or Warm — auto summary. See below.
Phone numberYesThe operator's number in international format, e.g. +15551234567.
ConditionYesPlain-language description of when this rule applies, e.g. "The caller explicitly asks to speak with a human, or the request is outside the agent's scope". The model reads it to decide whether to transfer and, with several rules, which one to use.
Transfer message (to caller)NoWhat the caller should be told just before the handover. See the note below.
Operator briefing (to operator)For Warm — custom messageWhat is spoken to the operator when they pick up. Ignored by the other two modes.
Ringing timeout (seconds)NoHow long the operator's phone rings before we give up. A new rule starts at 60; the allowed range is 5120; left empty it falls back to 30.

Add more rules if you route by topic

One rule per destination. For example: billing questions → the finance line, technical failures → the support line, everything else → the front desk. Write the conditions so they do not overlap — the model picks by condition alone.

Save the agent

Click Save Changes in the drawer, then save the agent.

What the caller actually hears before the handover

The agent announces the transfer in its own words, generated from the conversation — the default tool description explicitly tells it to warn the caller and keep them company while the operator is being dialled. Transfer message is not played verbatim on an operator transfer today; treat it as documentation of the intended phrasing, and put the wording you want into the agent's prompt or the tool description instead. (On transfer to another agent, by contrast, the transfer message is spoken verbatim.)

Do not mix Warm — auto summary with the other modes in one agent

Warm — auto summary requires the model to produce a summary; the other two modes do not. If one agent has rules of both kinds under this tool, the platform cannot build a single consistent tool and drops it entirely — the agent will silently have no way to transfer. Use Warm — auto summary for every rule, or for none of them.

Transfer modes

ModeWhat the operator hears once the answering-machine check clearsUse it when
Cold (no briefing)Nothing — they are connected straight to the caller.The operator has the context elsewhere (a CRM screen pop), or speed matters more than context.
Warm — custom messageThe fixed text from Operator briefing.The context is always the same: "Incoming transfer from the website line, the customer wants to discuss a refund."
Warm — auto summaryA short recap of the conversation, generated by the model for this specific call.Conversations differ every time and the operator should not have to ask the caller to repeat themselves.

In all three modes the operator first hears music for a few seconds after picking up, while the platform makes sure a live person answered rather than an answering machine (see When the operator does not answer). They cannot hear the caller yet, and the caller cannot hear them.

What happens during the transfer

While the operator's phone is ringing the caller hears hold music and cannot hear the agent. The operator, in turn, does not hear the caller until the answering-machine check has cleared and the briefing has been played — so the caller never overhears what is said about them, and a voicemail greeting never gets to record a live customer.

Once the operator is connected, the agent leaves the call silently — there is no farewell phrase. The caller and the operator keep talking on the same call; the platform stops taking part in it.

The operator's leg is recorded as a separate audio stem, so a transferred call can still be reviewed end to end under Conversations.

When the operator does not answer

The transfer is treated as failed when the operator does not pick up within the ringing timeout, the line is busy or rejects the call, the provider cannot place the call at all, or the call is answered by voicemail (the platform detects answering machines and refuses to hand a live customer to a recording).

In every one of those cases the call is not lost: the hold music stops, the agent comes back, apologises in one sentence, says the request will be picked up later, and carries on with the conversation. The caller is never dropped.

Tips

  • Write conditions from the caller's perspective. "The caller asks for a manager or says they want to talk to a person" beats "escalation".
  • Match the ringing timeout to the team. A call centre that answers in five seconds does not need 60 seconds of hold music; a single person on a mobile might.
  • Keep the operator briefing short. The caller is on hold while it plays.
  • Test it end to end before publishing — with a real inbound call, not from the web widget, since the tool is not available there. See Testing.

Troubleshooting

SymptomLikely cause
The agent never offers a transferThe tool is disabled, has no rules at all, or the session is a widget session rather than a phone call.
The agent talks about transferring but nothing happensThe rules mix Warm — auto summary with the other modes, so the tool was dropped.
The transfer always fails immediatelyThe number is unreachable from your telephony account, or the inbound number has no telephony account bound to it.
The operator picks up and hears music for a few secondsExpected — the answering-machine check is running; the caller is connected right after it (in Cold mode with no briefing at all).
Saving the agent fails with a validation errorWarm — custom message without an operator briefing, a rule without a phone number, or a ringing timeout outside 5–120 seconds.

Transfer to another agent

Why you need it. One prompt that covers sales, support and billing is worse at all three than three focused agents. This tool lets a front-line agent route the dialogue to a specialised one — including its own voice, language, prompt and tools — without dropping the conversation.

How to use it. Enable the tool, open its settings and add a rule per destination agent:

FieldRequiredWhat to put there
AgentYesThe agent to hand the conversation to.
ConditionYesWhen this rule applies, e.g. "The caller asks about an invoice or a payment".
Delay before transfer (milliseconds)NoA pause before the switch. Useful to let a transfer message land before the new agent starts.
Transfer MessageNoSpoken by the current agent right before the switch, e.g. "I will transfer you to a specialist." It is played in full and cannot be interrupted.
Enable First MessageNoWhat the target agent says first. See How the handover runs below.

The transfer happens inside the same session: the same conversation record, the same recording, no second call. It works on phone calls and in the web widget alike.

How the handover runs

When the rule fires:

  1. The current agent stops speaking (any inline TTS is interrupted).

  2. The optional Transfer Message is played in full.

  3. Delay before transfer waits, if set.

  4. The target agent replaces the current one. It inherits the full prior chat history — everything the caller already told the previous agent is visible to the new one.

  5. What the target agent says first depends on Enable First Message:

    Enable First MessageTarget has a first messageWhat the caller hears
    ONyesThe target's own first message is played (e.g., "Hi, I'm the sales specialist").
    ONno / emptyThe target continues the conversation from the last user message — no greeting.
    OFF(either)The target continues the conversation from the last user message — no greeting.

"Continue the conversation" means the target's LLM sees the full history and responds directly to the caller's last message, as if it had been listening the whole time. It will not reintroduce itself or ask a generic "How can I help you?".

Turn Enable First Message off for a seamless handover — the second agent picks up the thread instead of starting with a greeting ritual. Turn it on only when the target must explicitly announce itself (e.g., a legal disclosure that a different specialist is now on the line).

Transfer to an agent or to an operator?

Transfer to another agent keeps the caller with the AI and costs nothing extra. Transfer to a human operator places a real outbound call and takes a person's time. Route by topic with the first; escalate out of automation with the second.


Detect language

Why you need it. A caller who starts speaking a language the agent did not expect otherwise gets answered in the wrong one for the rest of the call. This tool lets the agent notice and switch — voice, prompt and greeting — mid-conversation.

How to use it. Enable it on an agent that has more than one language configured (see Agents). No further setup: the platform passes the agent's language list into the tool at call time, and the agent may switch to those languages only. If the caller asks for a language that is not configured, the agent says so instead of switching.

The switch is triggered by an explicit request — "Can we speak in Spanish?", "Do you speak Portuguese?" — not by the caller merely mentioning a language.

If you override this tool's description, keep the [languages will be populated at runtime] placeholder: it is where the platform injects the agent's actual languages.


Skip turn

Why you need it. When a caller says "hold on, let me find my order number", a voice agent normally treats the pause as its turn and starts talking over them. This tool gives the agent a way to deliberately say nothing.

How to use it. Enable it — no configuration. The agent stays silent and waits for the caller to speak again when they explicitly ask for a moment ("give me a second", "let me think", "hold on, let me check").

It does not fire on plain silence, and it does not fire on a direct question. It is worth enabling on any agent that asks callers for numbers, addresses or documents.


Ask for clarification

Why you need it. It is a diagnostic tool: it records what the agent was missing to finish the job — an account number the caller never gave, context that was not in the prompt, an ambiguous instruction. Reviewing those records shows you what to add to the prompt, the variables or the webhook tools.

How to use it. Enable it and review the tool calls under Conversations.

Placeholder tool

This one is marked Placeholder in the tools list: it performs no action and changes nothing in the conversation — it only logs the request for analysis. The agent keeps talking to the caller as usual after calling it.


Summary

ToolEffect on the callConfiguration
End callEnds the session after the agent's farewellDescription only
Transfer to a human operatorOutbound call to a person, then the agent leavesTransfer rules; phone sessions only
Transfer to another agentAnother AI agent continues in the same sessionTransfer rules
Detect languageVoice, prompt and greeting switch languageAgent's languages
Skip turnThe agent stays silent for one turnDescription only
Ask for clarificationNone — logged for analysisDescription only

On this page