If you run customer service for a pallet network, haulier or e-commerce warehouse, you already know that "where is my delivery?" (WISMO) is the single highest-volume enquiry you receive. You also know why teams hesitate to put an AI chatbot in front of it: if a language model guesses an ETA or misreads a scan code, the customer waits in for a van that never arrives.
This technical guide walks through how to automate pallet and parcel tracking enquiries deterministically using Threadbox webhooks and status card widgets — the same pattern PalletOnline runs in production.
Regex webhooks vs LLM tool calls: when to use each
Threadbox gives you two ways to query your transport management system (TMS) or order database:
- Regex webhooks (deterministic, every plan): You define a regular expression matching your consignment or order reference (for example
\b(?:CON|PAL)-?\d{5,8}\b). When a visitor's message contains a match, Threadbox calls your HTTPS endpoint immediately with the matched string and renders the response via a widget template. No LLM rewrites the output. - Custom actions (model-driven, Growth & Business): The model extracts parameters from natural language (such as postcode + surname when the customer has lost their consignment number) and calls your custom action endpoint.
Step 1: Expose a read-only tracking endpoint
Your endpoint only needs to return the fields you want the customer to see — never the full internal manifest. A minimal JSON payload looks like this:
{
"consignment": "90311",
"status": "Out for delivery",
"hub": "Birmingham Hub (scanned 02:14)",
"eta": "Today, 10:00–12:00",
"trackingUrl": "https://track.example.co.uk/90311"
}
Step 2: Map the response to a status card widget
In Threadbox, set the response mode to widget and map the JSON fields into a keyValue card template so the customer gets a clean visual card on web chat, WhatsApp and email:
{
"kind": "keyValue",
"title": "Consignment {{consignment}}",
"status": "{{status}}",
"statusTone": "success",
"rows": [
{ "label": "Latest scan", "value": "{{hub}}" },
{ "label": "Estimated delivery", "value": "{{eta}}" }
]
}
Step 3: Verify HMAC-SHA256 webhook signatures
Every outbound webhook from Threadbox includes an X-Threadbox-Signature header (t=<timestamp>,v1=<hmac>) signed with your per-endpoint secret, so your TMS can verify authenticity and reject replays older than five minutes. Full Node.js verification code is in the webhooks documentation.
Step 4: Add escalation rules for delivery exceptions
When a scan status shows a missed trunk, damaged freight or carded delivery, pair the lookup with escalation rules in Threads so your traffic desk gets the conversation with the consignment reference and scan history already attached. See the logistics & haulage use case for the full TMS checklist.
Put this into practice
Build an AI support agent on your own website in ten minutes. Free plan, no card, UK hosted.
James builds Threadbox and puts AI support agents in front of real customers in UK logistics, e-commerce and SaaS. He writes on what cuts ticket volume.
