Home/Guides/Agency operations

How to run AI agents for multiple clients without mixing them up

One client's agent is a project. Ten clients' agents are an operation: ten sets of credentials, ten bills to explain, and ten places where something can quietly break. This is the setup that keeps a roster manageable when you host a team of agents for each client, from the first environment to the day a client leaves.

Direct answer

How do I run AI agents for multiple clients?

Give every client its own isolated environment and save that client's keys to the client in the vault, so its agents, files and keys stay apart from every other client's. Group those environments under each client in one console, deploy from templates you tailored once, and keep one account budget with alerts or an automatic pause, because spend limits apply to the whole account, not per client. At month end, read what each client cost you, split into hosting, models, web search and mailboxes, and put it on your own invoice with your margin. When a client leaves, move their environments off and archive the client.

The per-client checklist

StepWhere in QorenWhy it matters
Add the clientMy Company, Clients, New clientEverything else hangs off the client record.
Create its environmentNew environment, with the client chosenThe wall between this client and the rest.
Deploy from your templateCreate an agent, which asks for the clientThe second client is a deployment, not a rebuild.
Save its keys to the clientVault, with this client chosenOnly this client's agents can receive them.
Decide on approvalsThe agent's Settings, then PermissionsA person signs off where mistakes are expensive.
Read its cost monthlyThe client's Cost tab, Last monthThe cost line you rebill with your margin.
OffboardMove environments off, then ArchiveNothing keeps running or billing after they leave.

Give every client its own environment

An environment is a private computer Qoren runs for you, and it is the natural wall between clients. Several agents can share one: each keeps its own files and settings and runs as its own user, but they share the machine's memory and processing. Put two clients on one environment and you lose two things at once: a clean cost figure, because usage is recorded against the environment and the client it belongs to, and a simple answer when a client asks whether anyone else's agent could reach their files. So the rule is one client, one environment, sized for the agents that client needs. A client with three agents gets one environment that holds them, not three environments.

  • An environment belongs to one client or to none, and its agents come with it.
  • Sizes hold 1, 2, 5 or 10 agents, and you can move an environment to a larger size later.
  • Your plan's environment limit counts across every client: Starter allows 3 environments, Pro 5, Ultimate 10 and Business has no limit.
  • Assign the environment to its client before the agents start working, so the first charges land on the right client.

Keep each client's credentials apart

Environments separate the machines; credentials need the same discipline. Qoren's vault stores keys encrypted, and you save each key either to one client or agency-wide. A key saved to a client can only reach that client's agents. An agency-wide key can go to any agent, so it suits keys that really serve every client, such as your own model key. The same name can be saved once agency-wide and once for each client, and an agent gets its own client's key before the agency-wide one. Each agent then reads its keys from its own settings file that other agents cannot read. The protection only covers keys you save to a client, so make that the habit.

  • Save every client's keys to that client, even when a template expects a fixed name such as HUBSPOT_API_KEY: each client's agents get their own client's key.
  • When you deploy a template, read the list of keys it fills in from the vault before you confirm.
  • Before you change or remove a vault key, check which agents use it.
  • Ask each client to create keys under their own accounts, scoped as narrowly as the tool allows, so they can revoke them too.

Group everything by client, and name it so it sorts

Clients, in the console, is the bookkeeping layer over your environments. Add each client once, then assign environments from the Clients page, from an environment's settings, or when you create the environment. Once any environment has a client, creating an agent asks which client it is for, and the Agents page groups your agents by client, then by environment. Each client's page has an Overview, a Cost tab, a Proposals tab and Settings. Clients is for your team only: your clients never log in and never see it.

  • Name environments after the client, such as acme-dental, and agents after the client and the job, such as Acme lead catcher, so logs, alerts and approvals read at a glance.
  • Keep a contact email and notes on each client record for whoever covers the account next.
  • Every environment still listed under No client is usage you cannot bill to anyone; clear that list every week.

Build a service once, deploy it per client

The first time you deliver a service, you tailor it: the instructions, the schedule, the tools and the points where a person should approve. Save that work as your own template and the second client becomes a deployment rather than a rebuild. Keep one template per service you sell, not one per client, and put the client's specifics in the deployed agent's instructions and keys. Start from the gallery for the jobs agencies deliver most often.

One budget for the account, and a cost figure per client

Spend controls in Qoren apply to the whole account. A monthly budget caps what one billing period may spend across every client, usage notifications fire at 80, 90 and 95 percent of the period's credits, and when the budget is reached you choose between notify only and pausing agent work. There is no separate cap per client or per agent, so one client's busy agent draws on the same budget as everyone else's. Plan for it: set the budget with headroom over the sum of your clients' expected usage, send the alerts to a webhook your team watches, and check your busiest clients mid-month. Then read cost per client for the other half of the job. After the month ends, open Clients, choose Last month, and read each client's cost split into hosting, models, web search and mailboxes. That figure is the cost line you rebill, with your margin on top.

  • Only the organization owner can change the budget, alerts and automatic top-up.
  • Cost per client covers the last 30 days, this month or last month, with a split per environment and per agent.
  • Your plan fee and account-level usage, such as the setup assistant, sit on their own lines and are not split by client, so price them into your retainers separately.
  • Compare each month with what you quoted in Proposals: real usage can come in above or below the estimate.

Watch the roster, approve the risky parts, offboard cleanly

With many clients you cannot open every agent every day. Each agent's Activity tab says in one line what it is doing, what comes next and what it did in the last 24 hours, and says so when it needs attention. For a client where a wrong email or a wrong change is expensive, turn on approval mode for that agent: it keeps reading and drafting, but stops before sending, posting or changing anything and puts the action on the Approvals page, where a request nobody decides expires after 24 hours. When a client leaves, hand back what their work needs, revoke their keys, move their environments off the client and remove the ones you no longer need, then archive the client. Qoren will not archive a client that still has environments, and the cost history stays for your final invoice. On Ultimate and Business, the Qoren CLI and SDK script every step, so onboarding a client becomes a few commands. Ultimate ($169/mo, up to 10 environments and 5 team members) and Business ($499/mo, no limit on either) are the plans built for running several clients, each in its own isolated environment, and both include API access. Team members are free.

Onboard a client from the terminal (Ultimate and Business)

qoren clients create "Acme Dental" --email ops@acme.example
qoren env create --name acme-dental --size <size slug> --client "Acme Dental"
qoren agent create --env <environment id> --template lead-catcher --name "Acme lead catcher"
qoren account costs --from 2026-10-01

Offboard the client

qoren env assign acme-dental none
qoren clients archive "Acme Dental"

Frequently asked questions

Can I set a spending limit per client?

No. The monthly budget, the usage alerts and automatic top-up apply to the whole account. What you get per client is visibility: each client's cost for the period, split by category, environment and agent. Size the account budget with headroom and check the busiest clients during the month.

Can my clients log in and see their agents?

No. Clients is your team's bookkeeping, not a portal. Your clients see what the agents produce, such as the emails they send and the briefs you forward, under your name.

Should two small clients share one environment to save money?

It is possible, because an environment is just a machine, but it costs you more than it saves. An environment belongs to one client, so shared usage cannot be split between them, and their agents would share one machine. Give each client its own environment at the smallest size that fits.

How many clients can I run on one plan?

As many as your plan's environments allow, if each client has its own: Starter allows 3 environments, Pro 5, Ultimate 10 and Business has no limit. Ultimate and Business also include API access for the CLI and SDK; Starter and Pro do not.

What happens to past costs when I move an environment to another client?

They stay with the client they were recorded under, with one exception: mailbox charges count toward the client the agent's environment belongs to today, so they move with it. Everything else from before the move stays put, and only usage from the moment of the move counts toward the new client, which is why you assign an environment before its agents start working.

Run every client's agents from one console.

Give each client an isolated environment with its own credentials, deliver the work under your name or done-for-you, and keep the whole account inside one budget.