Keeping Things Separate When You Serve Many Customers
Last updated:
Who this affects
Agencies, franchise groups, managed service providers, and any business running several brands. The AI is the same; the data must not be.
Getting the separation right at the start is far cheaper than retrofitting it after a client asks how it works.
Separation that survives scrutiny
- Every record carries a client identifier, enforced at the data layer
- Retrieval filters by client before anything else
- Caches keyed by client, never by question alone
- Logs partitioned, so support for one client cannot expose another
- Tested with a deliberate cross-tenant attempt, documented
The cache is the one that catches people. Two clients asking the same question must not receive the same cached answer if the answer draws on their own data.
Configure, do not fork
Per-client prompts, thresholds, categories and vocabulary in configuration. One pipeline, many configurations.
Forking the code per client feels faster in month one and becomes unmaintainable by month six.
Be careful with shared learning
- Corrections improve that client's system by default
- Generic improvements — better date parsing, better classification — can be shared
- Client-specific content and terminology must not be
- Say in the contract which is which
What clients will ask
Where is our data, who can see it, is it used to improve anyone else's service, and can we get it out. Have the answers written before the question arrives.
A clear one-page answer to those four is frequently a competitive advantage in itself.
Frequently asked questions
Can we use one index for all clients?
Should clients get their own model instance?
How do we price this?
What about a client leaving?
Running AI across several client accounts?
Separation is the thing to get right first. Happy to review how yours is structured.