LeadRefinery — How the Platform Works

Many clients, one platform, strict separation

All clients share one engine. But the database itself keeps the data, the phone numbers, and the reputation of each client separate. The separation does not depend on careful application code.

Shared parts and separate parts

Three parts are shared, and one copy of each part serves all clients:

One copy of each part makes the platform economical and easy to improve. Each fix goes to all clients on the same day.

Each client owns three parts separately:

  • Their leads and call records. These records stay separate inside the shared database.
  • Their AI voice agent — the script, the voice, and the behaviour. The client selects the agent for each campaign.
  • Their phone numbers, together with the carrier identity that proves who makes the call.

The phone numbers have the strictest rule of the three. A number belongs to exactly one client, always. The database does not accept the same number for two clients. This rule is necessary because the signed caller-identity guarantee of the carrier must point to exactly one owner.

Three clients each have their own voice agent and their own phone numbers, and the diagram shows them fully separated. All three use one shared engine, and the engine writes into one shared database. Inside the database, the records of each client stay in a separate area, and each record has an owner label. A panel below states that the database checks the owner label before it returns a record. The panel also states that the database account of the engine has limited permissions, and thus no request can skip the check.
The diagram shows what all clients share, and what no client shares. The database itself checks the owner label on each record before it returns the record. The database account of the engine has intentionally limited permissions. Thus no request can skip the check, not even because of an error.

The separation is in the database, not in the application

Each record has an owner label. The separation holds for four reasons:

  • The rule is inside the database engine itself. The rule filters records by owner. The rule is not in the platform's own code, where one forgotten line can weaken it. The database applies the rule to each question that it receives.
  • The platform cannot bypass the rule. The platform connects to the database with an account that has intentionally limited permissions. This account does not have the permission to bypass the rule. Thus a defect in the application cannot send the records of one client to a different client. The request comes back empty.
  • Tests prove the rule. Automated tests prove that a request without a client identity returns zero records. The tests prove this each time they run.
  • The wider view of the operator is checked. The platform operator can see more than one client. The platform grants this view for each request separately, and only after it verifies the identity of the operator. The view is a checked exception, not permanent unchecked access.

A safe switch between organizations

Some persons belong to more than one organization. An example is an agency that manages two brands. A switch between organizations is not a menu choice that the browser keeps. The server issues a new signed proof of identity for the person. The role in that proof always comes from the membership record, never from a claim by the browser.

This has a precise result. A person can be an administrator in one organization and a standard member in a different organization. In the second organization, that person holds only the permissions of a member. Permissions do not move with the person. Permissions come with the membership.

The platform operator can switch the view to any organization, or to a view of the full platform. This switch never gives the operator a client role.

LeadRefinery staff can also close an organization off, from the control room. A closed organization keeps every dial refused and every one of its campaigns stopped, and it locks every one of its members out of the workspace, while its data stays exactly as it was. A member locked out this way can still switch into a different organization they belong to.

One intentional exception to the separation

The separation has exactly one exception, and the exception is for safety information only. The platform records a suppression platform-wide because the suppression is true for each client that dials the number next. This occurs when a number:

  • appears on a federal do-not-call list;
  • gets a flag as the number of a known litigator;
  • now belongs to a different person;
  • tells any client's agent, mid-call, to stop calling.

The rule is simple: business data stays with one client. Safety data goes to all clients. This matters most for the fourth case: two different clients can legitimately hold the same person as a lead at the same time, on separate lists they each built independently. If that person tells one client's agent to stop calling, the platform marks the number for every client that holds it, the same minute — never only for the client on the call.

Sign-in, invitations, and passwords

A dedicated, self-hosted identity service manages identity. This service is the only system that sees a password. The platform itself never processes a password. The platform only verifies the signed proofs of identity that the identity service issues.

Team invitations and password resets arrive as branded emails that contain one-time links. A reset request never shows if an account exists. The platform slows down repeated requests.