
Sample and Order Status Agents: Read-Only Logistics/ERP, No Invented ETAs
A foreign-trade sample and order-status Agent answers “where is my sample?” and “what is the order status?” by calling carrier/ERP read-only APIs and explaining status codes from a governed KB—or refusing and handing to ops on failure. It is not a soothing chatbot: invented ETAs create false expectations and complaints. Overview: /blog/what-is-foreign-trade-ai-agent. Sample-fee confirms stay human in the inquiry playbook: /blog/foreign-trade-inquiry-agent-playbook. Store logistics patterns: /blog/cross-border-ecommerce-agent—trade stresses sample IDs, PI/contract numbers, and ops handoff. GeonAI delivers acceptables; /agents are capability references only (not a public trial of 363+ presets). Email [email protected].
Why invented ETAs are forbidden
- Buyers plan customs/lines on fake arrival dates → disputes and claims
- “Should arrive soon” cannot be audited or reproduced in QA
- After tool timeout, model “completes” tracking → conflicts with carrier truth
- Wrong ETAs after sample fees paid destroy trust for the commercial order
Allow / deny (SOW-ready)
| Allow | Deny |
|---|---|
| Read carrier / 3PL tracking | Guessed ETAs or “probably next week” |
| Read ERP/OMS order or sample status codes | Data-free soothing like “it should arrive soon” |
| Explain codes via versioned KB citations | Default order/address/consignee edits (writes off) |
| On tool fail → fixed refuse copy + ops task | Invented nodes, ports, or flight numbers |
| Bind CRM lead / sample ID | Claim “in transit” with no shipment ID |
Write ACL and CRM binding: /blog/foreign-trade-agent-crm-follow-up. Contract boundary tables: /blog/custom-agent-scope-boundary-in-contract. Tool/MCP hard rules: /blog/agent-function-call-mcp-integration.
Recommended flow
- Validate identity and IDs (order / tracking / sample request)—no key → refuse lookup and collect slots
- Read-only carrier or ERP call; response includes resultCode, node times, raw status
- Hit → templated latest official node + KB explanation (cited)
- Miss / timeout / error code → fixed fail copy + hand to ops (optional CRM task)
- Buyer pushes for arrival date → repeat latest node, no date fill; escalate to human
Fail-copy example
“No carrier receipt yet / system temporarily unavailable. We’ve routed this to our ops teammate for a reply within business hours. Please keep your reference number.”—no speculative dates or ports.
Minimum audit fields
- toolName, hashed shipment/order ID, resultCode, latency
- Handoff flag, thread ID, CRM lead ID
- Sampling: zero invented ETAs; fail path always uses refuse template
Boundaries vs inquiry / quotation Agents
- This Agent: status read-only—no numeric prices, no sample-fee confirms
- Inquiry Agent: first reply through sample progression; fees stay human (playbook)
- Quotation Agent: price-book guardrails and formal quote issue
- Split roles when permissions collide: /blog/multi-agent-vs-single-assistant
Quotation guardrails: /blog/foreign-trade-quotation-agent-guardrails. Multilingual replies still require read-only tracking: /blog/multilingual-b2b-trade-support-agent.
Anti-patterns (stop the project)
- Prompt says “give the buyer an approximate arrival date”
- Treat OCR of screenshots as official tracking without API validation
- Allow address/consignee edits without approval
- Promise “system found it” with no audit log
Pilot acceptance
- Invented ETAs / fake nodes = 0 (or scale-stop)
- On tool failure, 100% refuse-template use (sampled)
- Lookup success rate with valid IDs meets target; no “in transit” without shipment ID
- If writes are off, zero unauthorized writes; if on, human-confirm records exist
Pilot KPI framework: /blog/custom-agent-30-day-pilot-metrics.
How to brief GeonAI
Name ERP/OMS and carriers, whether read-only credentials exist, sample ID rules, and ops handoff channel. Email [email protected], /pricing, or Live chat. We deliver read-only guardrails—not “we can always give an arrival date.”
Frequently asked questions
Buyer keeps asking for the arrival date?
Repeat the latest official node and status explanation; hand to ops. Never fill or guess a date.
Can we launch without a logistics API?
Yes with ERP status codes only + ETA refuse; without tracking sources, do not claim “we checked logistics.”
Can the Agent change the ship-to address?
Default off. If needed, separate write ACL, approval, and audit—not bundled with status lookup.
Same as cross-border store logistics support?
Similar read-only skeleton; trade stresses sample IDs, PI/contract numbers, and ops. See the cross-border Agent post.
Sample not shipped yet—what can we say?
Read ERP codes like pending/in production and explain them; with no AWB, state clearly that carrier tracking does not exist yet—do not invent “in transit.”
Do the 363+ presets include logistics guardrails?
No. Presets do not include your carrier/ERP credentials, refuse templates, or audit fields.