data envelope. Voice uses call; text uses thread. Both include tool_name and args.
Set up an HTTP tool
Configure parameters, connect your system, and verify execution.
Post-call webhook
Use this separate contract for analysis after a call.
Voice request
Your endpoint receives a JSON POST. Example values below are fictional; optional values can be empty or absent.object
Context available during the call. This is not the analyzed post-call record.
string
Name of the invoked tool, as configured on the agent.
object
Arguments supplied for this invocation. Read configured inputs here, such as
args.order_number. With no arguments, this can be {}.contact_id, transcript, recording, or final analysis. Dynamic variables may provide additional context, but do not assume those fields exist there.
The current voice execution path posts the body to the configured URL without forwarding configured tool headers or separate query parameters. Test endpoint can send them. A successful authenticated test therefore does not prove that a live call can authenticate. Coordinate header-based integration requirements with support.
Text request
The External API tool configured in the editor sends a JSON POST.Text conversation
object
Conversation context. If context construction fails, the sender can fall back to a body containing only
tool_name and args.tool_name is the configured tool name. args contains configured arguments; undeclared keys are not automatically forwarded. Missing optional arguments may be omitted. The current visual text editor configures parameters as strings.
The standard body does not include a dedicated agent_id, organization ID, transcript, or conversation summary. Fetch other records through your integration when needed.
Your endpoint response
Return valid JSON containing the result the agent needs. These example fields belong to your contract, not a required ContactShip response schema.call, thread, or args. Use instructions that distinguish a missing record, an operation still pending, and a completed action.
For text tools, successful responses normally become a tool result containing the HTTP status and response data. A plain non-JSON string can remain opaque text. Return JSON with the correct content type, especially from workflow response nodes.
Text requests default to a 15-second timeout unless configuration changes it. Selected transient network failures and HTTP 429, 503, or 504 can trigger up to two additional HTTP attempts. This is not a guarantee about the total number of agent invocations.
For operations with side effects, use your own business operation key and stored result. A call or conversation can legitimately invoke a tool multiple times; its ID alone is not an operation ID. The standard body supplies no dedicated unique tool-invocation ID.
Test requests versus live execution
- Voice endpoint test
- Text endpoint test
Test endpoint sends exactly the editable sample body. Initially it is built from parameter examples, without the live The test sends configured headers, times out after 10 seconds, and does not follow redirects. It does not invoke the agent. Confirm the actual body and authentication through a controlled call.
call, tool_name, or args wrapper. Edit it to resemble a full request when testing your parser.Initial parameter sample
Find the data and diagnose failures
The test works, but the real call returns 401
The test works, but the real call returns 401
Compare received headers. The voice configurator test and live execution handle configured headers differently. Check authentication with support.
My endpoint cannot find order_number
My endpoint cannot find order_number
Read
args.order_number during live execution. A voice configurator sample initially places parameters at the root.The text test cannot connect
The text test cannot connect
Check the endpoint URL and browser CORS response. The test runs from the browser; real text execution runs on the server.
I need the final transcript inside a tool
I need the final transcript inside a tool
A tool runs during the conversation. Receive the completed transcript and analysis through the post-call webhook instead.
