You run a web agency. Twelve client sites live, five more launching this quarter, and every one of them needs a way for visitors to reach a human. So you did what most agencies do: a contact form here, a chat trial on the flagship client there, a shared mailbox for the rest. Now support lives in nine places, and last week a client forwarded you a lead their contact form silently swallowed.
The obvious fix, giving every site its own chat subscription, does not survive contact with a pricing page. Legacy chat tools charge per seat, per workspace, or both, so twenty client sites and four project managers turn into a bill that eats the margin on your care plans. This playbook covers the flat-price alternative: one inbox for the whole portfolio, a branded widget on each site, and AI that answers from each client's own docs.
Why per-seat chat tools break at agency scale
Per-seat helpdesks were designed for one company with one support team. An agency is the opposite shape: many small sites with light traffic each, all covered by the same handful of people. The mismatch shows up three ways.
- →Per-seat pricing punishes coverage. You want every PM able to answer for their own clients. Per-seat tools make each PM a line item, so agencies end up sharing logins (bad) or funneling everything through one person (worse).
- →Per-workspace pricing punishes portfolio size. Tools that charge per site turn twenty clients into twenty subscriptions to provision, pay, and cancel when someone churns.
- →Client-owned accounts are churn traps. If each client signs up for their own tool, you lose visibility, you juggle credentials to answer on their behalf, and offboarding turns into archaeology.
muro's pricing flips the model. Fleet is $59 per month, flat: unlimited projects and unlimited agents. One subscription covers every client site and every teammate. Hiring a new PM changes nothing on the bill. Signing a new client changes nothing on the bill. (If you are a freelancer with one or two client sites, Solo at $19 covers up to 2 projects with the same unlimited seats.)
The setup: one workspace, one project per client
In muro, each client site is a project with its own widget, its own AI training material, its own branding, and its own scoped API keys. Every conversation from every project lands in one shared inbox. Here is the rollout, per client:
- 01Create a project named after the client, so the inbox tells you at a glance who each conversation belongs to.
- 02Install the widget on their site with that project's widget ID. It is roughly 6 KB and loads async, so it will not dent the performance scores you promised in the proposal.
- 03Import a URL to train the AI: their FAQ page, their help center, even a detailed services page works.
- 04Set up email forwarding so their old contact address flows into the same inbox, with replies going out by email.
html<script>
(function(w,d,s,o){
w.MuroChat=o;w[o]=w[o]||function(){(w[o].q=w[o].q||[]).push(arguments)};
var j=d.createElement(s);j.async=1;j.src='https://muro.chat/widget.js';
d.getElementsByTagName('head')[0].appendChild(j);
})(window,document,'script','muro');
muro('init',{widgetId:'YOUR_WIDGET_ID'});
</script>The snippet is identical on every site except the widget ID. If you deploy client sites from a shared template or starter, put it in the base layout and inject the ID from an environment variable, one line of config per client.
Make the widget wear each client's brand
Clients do not want an obviously third-party widget parked on their homepage. Per project, you can set:
- →Color, so the launcher matches their palette instead of yours.
- →Agent name and avatar, so visitors see a name that belongs to the client's business, not to your agency.
- →Position and size, for that one client whose cookie banner already owns the bottom right corner.
- →Language: the widget ships in 12+ languages, so the Lisbon client gets Portuguese and the Berlin client gets German without a plugin.
The visitor experiences a chat channel that looks and sounds like the business they are visiting. Your team sees one queue, cleanly separated by project.
Let the AI take the first reply on every site
This is the part that changes the economics of offering support as a service. Most messages on a small business site are not tickets, they are questions: opening hours, delivery zones, whether the studio shoots weddings. muro's AI answers those automatically, grounded on the help articles and product context you imported for that specific project. The bakery's widget knows the bakery's docs. The law firm's widget knows the law firm's FAQ. Neither bleeds into the other.
When the AI is unsure, or when a message involves a refund, an account issue, or a visitor who is clearly angry, it hands off to a human instead of improvising. That is exactly the behavior you want when the name on the widget is your client's brand: a confident wrong answer embarrasses them, and you get the phone call.
Scoped API keys: give each client exactly their slice
Sooner or later a client wants access. Their VA should answer chats. Their in-house dev wants conversations in the CRM. Their bot needs to read messages. With per-site scoped API keys, you hand out a key that reaches one project and nothing else.
- →A client's VA or bot can read and reply to conversations on their site only, through the REST API.
- →A client's developer can build against webhooks for their project without ever seeing another client's data.
- →When a client churns, you revoke one key and delete one project. Nobody else notices.
For your own team there is also a hosted MCP server, which means you can triage the whole portfolio's conversations from any MCP client without opening a browser tab:
bashnpx mcp-remote https://muro.chat/api/mcp --header "Authorization: Bearer mr_live_..."Run support as a service, not a favor
Support is usually the unpaid appendix of an agency care plan. With a flat tool cost and AI taking the first pass, it becomes a service you can name, scope, and charge for. A few habits make it scale:
- →Saved replies for the repeatables. Hosting renewals, small text changes, invoice requests: write the answer once and reuse it across every client.
- →Automation rules for routing. Tag conversations by project and route each client to the PM who owns the relationship, so nothing sits in a generic pile.
- →Reply-by-email for the slow lane. Forwarded email lands in the same queue as chat, so a client's old contact address keeps working while you modernize the front end.
- →A monthly digest from the API. Pull conversation counts per project and show each client what was handled on their behalf. A list of questions they never had to see is the best renewal argument a care plan can have.
And because muro charges neither per seat nor per project, the tool cost stays at $59 per month whether you run five client sites or forty. What you charge for the service is your call, and the spread is yours.
Agency questions, answered quickly
Can a client get access to only their own site?
Yes, programmatically: create a scoped API key limited to their project and their VA or tooling can read and reply through the API. Seats are also unlimited, so bringing a client-side person into the inbox costs nothing if you would rather work together in one place.
We have EU clients with strict DPAs. Where does the data live?
muro is EU-hosted, with GDPR export and erasure built in. When a client's lawyer sends over the data processing questionnaire, those are the first two boxes you get to tick without a workaround.
What happens when a client leaves?
Export their conversation data, revoke their scoped keys, delete the project. Your subscription does not change, because there was never a per-site fee attached to them in the first place.
Start with your noisiest client. Create a workspace (14-day free trial, no card), add their site as a project, paste the snippet, import their FAQ URL, and set their color and agent name. If it runs quietly for a week, roll the next client in, and the next. Or poke around the live demo first to see the inbox your PMs would actually live in.
