# Delivery and order status enquiries

Connect answers a status question from the records in your workspace — the Data grid's sheets, an uploaded manifest, Knowledge — and says it does not know when none of those carry the answer. There is no courier-tracking integration in the capability registry, so whatever your operational system knows reaches Connect as data you put there, or it does not reach it at all.

- **Status:** Available
- **Audience:** both
- **Channels:** email, whatsapp, phone
- **In the app:** #/data, #/inbox, #/support
- **Last verified:** 2026-09-10
- **Canonical:** https://connectbyjbrh.com/docs/use-cases/logistics-and-delivery/

## Where a grounded answer comes from

- **The Data grid** — thirteen sheets over the workspace's own records: companies, people, leads, prospects, follow-ups, deals, conversations, calls, cases, onboarding, knowledge, files and memory. Queried, not sampled.
- **Files** — CSV, TSV, XLSX, PDF, DOCX and more, read by the shared file service. A daily manifest uploaded as a spreadsheet is a legitimate source and answers can cite it.
- **Knowledge** — the durable statements: your cut-off times, your service levels as written, your exceptions policy.
- **The relationship record** — what this customer was told last time, on whichever channel they used.

The Assistant reaches these through read-only tools — `data_query`, `read_file`, `ask_file`, `find_anything`, `customer_360` — before it reaches any writing one. An answer that cannot be traced to one of them is not an answer this system is willing to give.

## Why an answer from a sample is the dangerous failure

This is not theoretical here. `prospect_summary` once derived every headline number from the newest 500 rows: driven with 540 contacts whose 40 already-contacted ones were the oldest, it reported 500 organisations when there were 530, and 0 already contacted when there were 40. Nothing errored. The numbers looked exactly as authoritative as correct ones.

Counting is done by the database now, and the conversation list — which used to read 400 rows and then filter, search, count and page in Python over that slice — does its counting in one `GROUP BY` with the filter and the page in SQL. The reason this matters on a delivery desk is that a status answer built from a slice of a manifest is confidently wrong in exactly the same way, and a customer has no way to tell.

> **Note** Uncertainty is an answer. A reply that says the record does not show a scan since Tuesday is worth more than an invented estimate, and it is the reply that does not generate a second, angrier email on Thursday.

## What Connect will refuse

**An ETA it cannot see** — If nothing in the workspace carries a delivery date, the honest reply says so and offers the next step. No estimate is manufactured to fill the silence.
**A refund, credit or goodwill gesture** — `safe_sales` refuses commercial terms Knowledge does not support and escalates to a person. A published compensation policy is a fact and can be quoted; a discretionary gesture is a decision.
**A claim about a third party's system** — Connect has no visibility into a courier's network. It can report what your own record says and when it was last updated, which is a different and more defensible statement.
**Clearing a contact off the do-not-contact list** — A person, recorded against their name. The Assistant cannot do it.

## When it becomes a case

1. Let the enquiry resolve to a Person and a conversation as normal.
   - Result: The history is in one place regardless of which channel the customer switched to when they got annoyed.
2. Open a support case when the answer is 'this has gone wrong' rather than 'here is where it is'.
   - Result: The case carries context and has a resolution path, and it does not get lost among ordinary status questions.
3. Create a follow-up with a reason for anything promised — a chase with the depot, a call back tomorrow.
   - Result: The commitment exists outside the conversation and is visible when overdue. Phone chases drain two per tick and a row more than 24 hours late is closed as missed rather than rung.
4. Use the `task` channel for the parts only a person can do.
   - Result: No drain ever sends a `task` follow-up; it shows as work for a person on the follow-ups screen.

## Where the money goes

Status enquiries are high-volume and low-value individually, which makes them the best possible fit for written channels and the worst for voice. Email and WhatsApp cost one model call per answer; a phone call costs audio tokens at four times the text input rate with the whole session context re-billed every turn. Outbound SMS notifications, which would be the obvious cheap channel, do not run on the live carrier at all — it carries no SMS — and in India would need DLT registration with the operators regardless.

## Questions

### Can Connect look up a tracking number with the courier?

No. There is no courier or tracking integration in the capability registry. What it can do is answer from your own records — a manifest you upload, a data sheet you maintain, what the customer was told last time — and say plainly when none of those carries the answer.

### How do I know an answer was not made up?

Answers are grounded in the workspace's own sources and the Assistant's read-only tools are what reach them. The decision log records what was decided, under which rule, and what happened, including refusals. If a reply cannot point at a source, that is visible rather than hidden behind confident wording.

### Can it send delivery notifications by text?

Not on the live carrier, which carries no SMS. Inbound SMS, STOP handling and suppression exist, so the channel is real but one-directional here; outbound needs a provider that carries SMS, and in India DLT entity, header and template registration with the telecom operators.

## Related

- [The Data grid](https://connectbyjbrh.com/docs/files-data/data-grid/)
- [When the Assistant is not sure](https://connectbyjbrh.com/docs/assistant/uncertainty/)
- [Order and delivery enquiries](https://connectbyjbrh.com/docs/use-cases/ecommerce-enquiries/)
- [Support cases](https://connectbyjbrh.com/docs/support/cases/)
- [The numbers above the list](https://connectbyjbrh.com/docs/prospects/prospect-counts/)
- [Sending SMS: what is available today](https://connectbyjbrh.com/docs/sms/sms-outbound-status/)

## What this page is based on

- docs-source/sources/CHANNELS.md §4 and §5 — the counting defects, measured
- docs-source/sources/GENERAL.md §8 and §9 — Assistant tools, files and the grid
- docs-source/sources/CHANNELS.md §3 and §6 — SMS status and safe_sales
- Connect capability registry (docs-source/facts.py)
