New skill
Refund duplicate charges
+ Refund the duplicate payment.
+ Confirm with the customer first.
Eleven requests in 30 days, all resolved the same way.
Atrium is the platform for building customer support agents that resolve complex requests end to end. With built-in tools, permissions, and evaluations, you can use your coding agent to connect your systems, define your agent’s behavior, and control when it acts autonomously.
POST /sources /plain /eventsPOST /sources/plain/eventsPlain GraphQL · replyToThreadBuilding the infrastructure to trust your agent to work autonomously takes more than Claude or a quick engineering sprint over the weekend.Getting the right tone, connecting customer context, and making AI reliable enough to act still takes work.
Atrium fits into your existing customer support stack and lets you customize exactly what your agent should do, how to do it, and whether it may. All three are edited in the app or from the CLI, and published as a release you can roll back.Your channels and systems stay. Customize what the agent does, how it does it, and what it may do.
You say what you want in plain English. Your coding agent writes the files, runs them against your own past tickets, and shows you how well it works. No engineering resources required.Describe what you want. Your coding agent builds it, tests it against past tickets, and shows you the result.
> Add a tool for duplicate charges. Refunds must be within 30 days and need approval.
Stripe · Refund duplicate charge
Requires approval>
Skills teach your agent your procedure. The permissions of the connectors enforce what the agent is allowed to do. Keep the procedure flexible, and put the critical actions across your tools into deterministic code.Skills guide the procedure. Code enforces your rules, and connection permissions decide what can run.
Only allow refunds within 30 days, and require approval before issuing one.
if (days > 30)throw new Error("outside the 30-day refund window")
Only allow refunds within 30 days, and require approval before issuing one.
## What to do2. Check for a retried webhook before calling ita duplicate.3. Call refund_duplicate_charge with the secondcharge id. The window is 30 days from thecharge, not from the invoice date.
export default async function run(input, ctx) {const charge = await ctx.connections.stripe.call("stripe_api_read", {stripe_api_operation_id: "GetCharges",parameters: { charge: input.charge_id },})const days = (Date.now() / 1000 - charge.created) / 86400if (days > 30) throw new Error("outside the 30-day refund window")if (charge.refunded) throw new Error("already refunded")return await ctx.connections.stripe.call("stripe_api_write", {stripe_api_operation_id: "PostRefunds",parameters: { charge: input.charge_id, amount: charge.amount },})}
Review how your agent handles real requests, test it against representative cases, and see where it needs work. Use that evidence to decide when you are comfortable letting it resolve requests end to end.Review real requests and test past cases. Decide what your agent handles on its own, one category at a time.
Demo workspace
604 conversations · 98% sent unchanged
412 conversations · 98% sent unchanged
331 refunds proposed under $50. Every one approved, none rejected, none reversed.
+8.2 vs last month
312 of 488 answers rated
reopens the conversation
331 refunds proposed under $50. Every one approved, none rejected, none reversed.
Your team rewrites four in ten. Not ready.
Too few to judge. Needs 50.
116 conversations matched no skill.
Suggest a skillYour agent watches its own work. It drafts new skills for requests it keeps seeing, corrects knowledge it got wrong, and tightens instructions a customer pushed back on. Every one of those arrives as a proposal. Nothing edits itself.New skills, corrected knowledge, better instructions. Your agent proposes changes. You decide what ships.
Learning from every conversation
4 suggestions for your review
New skill
+ Refund the duplicate payment.
+ Confirm with the customer first.
Eleven requests in 30 days, all resolved the same way.
New skill
+ Refund the duplicate payment.
+ Confirm with the customer first.
Eleven requests in 30 days, all resolved the same way.
Awaiting reviewKnowledge fix
It answered 5. The customer corrected it, and was right.
Awaiting reviewInstruction change
Get straight to the answer.
Four replies in a row were edited to cut that line.
Awaiting reviewKnowledge gap
SSO · group sync
47 conversations matched no skill at all.
Awaiting reviewYes. Instructions and skills are text files you can edit in your repo with your coding agent, or directly in the UI. Test changes against fixtures, publish versioned releases, and roll back when needed. You control how it investigates and writes.
It investigates first, then writes using your instructions and examples. Ratings and corrections become proposed skill updates for an admin to review. No fine-tuning required.
Atrium provides built-in tools for billing through Stripe, account and usage lookups through your database, bug investigations through Linear, GitHub and PostHog, and how-to answers from your docs and repos. Connect your sources so your customer support agent can investigate and draft, then add custom tools, skills, and permissions for your business.
By default, reads run automatically, writes need approval, and destructive actions are blocked. Adjust permissions per channel or tool. Approve requests in Slack or the inbox for one action, one investigation, or future requests in that channel.
Yes. Atrium works on top of your existing customer support stack.
Start in shadow mode: it investigates and drafts, your team sends. Every run records prompts, tool calls and permissions. A resolution counts only if the reply goes out unchanged, needs no follow-up and stays resolved for seven days. Unreviewed sending is earned per category and revoked after a poor answer.
Usage-based pricing with a monthly minimum. No seat fees or per-resolution charges.
Use our hosting or deploy in your own infrastructure, where it only creates helpdesk drafts. Secrets are encrypted per workspace and database queries are tenant-scoped. Compliance attestations, retention policies and deletion procedures are in progress. Share any requirements before rollout.
It always starts with your product code and reads your sources live. It can reconcile conflicting or outdated knowledge at runtime across docs, repos, meeting notes and past customer replies. The review log shows which sources informed each answer.
Build on Atrium’s tools, permissions, and evaluations. Shape your agent around your business, review its work, and decide which requests it can handle autonomously.