Shops and service businesses whose most common question is about an order's status.
What it costs today
Someone opens the order system, finds the order, reads the carrier status and types it back, many times a day.
What solved looks like
The agent looks the order up itself, through your API, and replies with the real status and the next step.
Live answers from your order system, never guessed.
Every lookup visible in the stream and the trace, with its input and output.
Your rules on what it may share, in the prompt.
How it runs
Order tracking from your own systems step by step
Each stage is a real step in SentientOne. Timings are medians from our latest benchmark; your model and network change them.
Order tracking flow. Your app sends the customer's question to the REST API. 1: your secret key and the agent are checked and one credit is reserved. 2: with a conversation id, the last twelve messages are loaded. 3: the model calls get_order on your orders MCP server. 4: it calls get_shipment for the carrier's latest scan. 5: it writes the answer from the two results. 6: the answer streams back with tool_call and tool_result events your app can log.
Channel
Your app or support inbox, through the REST API
Customer message
“Where is order 10482?”
Context
conversation_id → last 12 messages
Customer verified by your app
X-Request-Id
SENTIENTONE
Auth, credits
Preflight
Your secret key from your server; the agent's limit; 1 credit reserved.
60 req/min · 402 at zero
History
Context
With a conversation_id, the earlier turns come with the message.
Last 12 messages · 12,000 chars
MCP: get_order
Round 1
The model calls your order tool with the number from the message.
orders-mcp · Bearer token
MCP: get_shipment
Round 2
Then the carrier's latest scan, in a second round.
10 s per call · 2,500 chars to the model
Generation
Fast
Writes the status in plain words, following your sharing rules.
Claude Haiku 4.5 on your key
Streaming
OTel trace
tool_call and tool_result events, then the answer, then done with usage.
text/event-stream
Reply in your app
Done · 1 credit
Order 10482 left our warehouse on Tuesday. The carrier scanned it at the local depot this morning, so it should arrive on Monday.
1get_order(order_id: 10482)
2get_shipment(tracking: NW55…)
trace · 2 tool calls · 1 credit · x-request-id from your app
Channel
Your app or support inbox, through the REST API
Customer message
“Where is order 10482?”
Context
conversation_id → last 12 messages
Customer verified by your app
X-Request-Id
message
SENTIENTONE
Auth, credits
Preflight
Your secret key from your server; the agent's limit; 1 credit reserved.
60 req/min · 402 at zero
credit
History
Context
With a conversation_id, the earlier turns come with the message.
Last 12 messages · 12,000 chars
history
MCP: get_order
Round 1
The model calls your order tool with the number from the message.
orders-mcp · Bearer token
order
MCP: get_shipment
Round 2
Then the carrier's latest scan, in a second round.
10 s per call · 2,500 chars to the model
shipment
Generation
Fast
Writes the status in plain words, following your sharing rules.
Claude Haiku 4.5 on your key
tokens
Streaming
OTel trace
tool_call and tool_result events, then the answer, then done with usage.
text/event-stream
agent loop · up to 8 rounds
first token after the tool rounds · each call ≤ 10 s
SSE events
Reply in your app
Done · 1 credit
Order 10482 left our warehouse on Tuesday. The carrier scanned it at the local depot this morning, so it should arrive on Monday.
1get_order(order_id: 10482)
2get_shipment(tracking: NW55…)
trace · 2 tool calls · 1 credit · x-request-id from your app
Set it up
The walkthrough, in 7 steps
1
Add your LLM key
Agents run on your own model provider key; there's no shared one, so nothing answers until you add it. Create a key with OpenAI, Anthropic, Google Gemini or Groq, then open Configure → LLM keys → Add key. It's encrypted at rest with AES-256-GCM, used only to call your provider, and never shown again in full. If a reply fails with INTERNAL_ERROR straight away, the agent has no key; with LLM_AUTH_ERROR, the provider rejected it.
Say which tools to use, what it must ask for before looking up, and what it must never share.
System prompt
You answer questions about orders.Always look the order up with get_order before answering; then get_shipmentfor delivery questions. If there's no order number, ask for it.Share status, dates and the carrier only. Never share addresses or payment details.If the tools fail or the order isn't found, say so and suggest emailing support.
Put an MCP server in front of your orders API with get_order and get_shipment tools, on a public HTTPS address. On the Tools tab, Add server, set Auth to Bearer, then Test connection to discover the tools.
Send the customer's message with your own X-Request-Id, and pass the conversation_id back for follow-ups. Log tool_call and tool_result events if you want an audit trail.
Your server
curl-N https://api.sentientone.ai/v1/chat/stream \-H"Content-Type: application/json" \-H"X-Api-Key: $SENTIENTONE_API_KEY" \-H"X-Agent-Id: $AGENT_ID" \-H"X-Request-Id: $YOUR_REQUEST_ID" \-d'{"message": "Where is order 10482?"}'
Open Tracing to see every request: what knowledge it found, each tool call, tokens and timing, and the error code if it failed. Analytics charts requests, errors and response time per agent. Under Billing, turn on auto top-up so the agent never stops for want of credits.
Tell us about your setup and we'll help you build order tracking from your own systems on SentientOne: the agent, the knowledge, the tools and the deployment.