client_context / docs / the agency view
Every client gets a channel and a brain of its own. Somebody on the team types a question in a client's room and the answer comes back from that client's data — never from anyone else's. Multiply the whole picture by however many clients you have; the shape does not change.
↔ swipe the diagram
Which channel the question was typed in decides which brain answers. Nobody picks a client from a dropdown and nobody can forget to. Ask in Wayne's room, get Wayne's numbers.
Each client's connections belong to that client — his listing, his page token, his phone number, his domain. The agency room holds the agency's own tools. The two never mix, which is what makes handing a client back to them a real possibility instead of a painful unwind.
Nothing in this picture is per-client code. Adding a business means a new room and a new tenant row. The loaders, the agents, and the seal all work the same on day one as they do on client forty.
The interesting question is not how the answer gets written, it is how the system
knows whose data to read. Here the channel carries the tenant. A question typed in
#all-things-handy is scoped to Wayne before it reaches the database, and the
database refuses to return anyone else's rows even if something upstream got it wrong — that is
what the dotted line to the other brain means. SET LOCAL app.tenant_id is a
belt, and row-level security is the suspenders.