Skip to navigation

Amazon Bedrock SWAIG tool webhook

View as MarkdownOpen in Claude

Sent to a tool’s web_hook_url (or the SWAIG defaults.web_hook_url) when an amazon_bedrock agent calls one of your functions. Your endpoint runs the function and replies with a JSON object. Both fields are optional, so {} is a valid reply:

  • response — the result the agent reads next. A plain string only here; the {tool_result, tool_prompt} object form that ai agents accept is not read. Omit it and the agent reads a default result.
  • action — a single action object or an array of them, executed on the live call.

There is no post_process: a Bedrock agent always defers actions until after it has spoken.

Bedrock agents send a different payload from ai agents. Notably content_type is text/json rather than text/swaig, argument carries no substituted value, there is no version, description, or argument_desc, and the call’s timing and caller fields are named differently. Write your handler against this payload, not the AI SWAIG tool webhook.

Payload

The payload of this webhook request is an object.
functionstringRequired
The name of the function the agent is calling.
argumentobjectRequired
The arguments the agent passed to your function.
call_idstringRequired
The ID of the call.
ai_session_idstringRequired

The ID of the AI session on the call. Matches call_id for Bedrock agents.

app_namestringRequired

The name of your Bedrock application. Defaults to bedrock.

caller_idstringRequired
The caller's number. An empty string when the call has none.
global_dataobjectRequired

The agent’s current global_data. Alongside anything you seeded, the session adds caller_id_name and caller_id_number when the call carries them.

content_typestringRequired

The content type of the request body. Always text/json.

content_dispositionstringRequired

How the body is delivered. Always agent.function for a function call.

conversation_typestringRequired

The kind of conversation the agent is running. Always voice.

actionstringRequired

What the request is asking of you. Always fetch_conversation for a function call; the end-of-call conversation report sends post_conversation instead.

meta_data_tokenstringRequired

The token that scopes meta_data. This is the meta_data_token you set on the function, or an MD5 of the function’s name when you did not set one.

meta_dataobjectRequired

Metadata scoped to meta_data_token. An empty object when the function has none yet.

project_idstringOptional
Your project ID, when available.
space_idstringOptional
Your Space ID, when available.
conversation_idstringOptional
The conversation ID, when the agent was configured with one.
caller_id_namestringOptional
The caller's name, when available.
caller_id_numberstringOptional
The caller's number, when available.
call_start_datelongOptional
When the call was created, as a Unix timestamp in microseconds.
call_answer_datelongOptional

When the call was answered, as a Unix timestamp in microseconds. 0 when it never was.

call_end_datelongOptional

When the call ended, as a Unix timestamp in microseconds. 0 while the call is still up.

ai_start_datelongOptional
When the agent started, as a Unix timestamp in microseconds.
ai_end_datelongOptional
When the agent stopped, as a Unix timestamp in microseconds. Omitted while it is still running.
timeslist of objectsOptional

Per-response performance metrics for the session so far. Included once the agent has any.

SWMLVarsobjectOptional
SWML variables for the call. Included when the call carries SWML state.
SWMLCallobjectOptional
SWML call state. Included when the call carries SWML state.

Response

200
Webhook received