Customer experience that makes your users stay
ARCY steps in the moment someone gets stuck in your product, helps them finish, and learns what keeps them coming back.
Trusted By
You pay for every visit, then lose it four times.
Each one was bought before it was lost, and none of them wrote in to say so.
- The visit is paid for, and the sign-up never happens.
- The account opens, and the first real result never arrives.
- A question goes unanswered, and they give up.
- The renewal was in the plan, and the customer went quiet.
Drag a number, or click it to type. Revenue is per month.
Each point you win back is worth $9,800 a month.
One specialist for every place you lose people.
Each one owns a single goal and works on the page where it is decided. It drafts what to try next, and a person on your team publishes it.
- Conversion
More visitors become trials.
- Activation
More sign-ups reach their first win.
- Retention
Fewer customers fade before renewal.
- Support
Fewer questions reach your team.
Spot it. Step in. Scale the winning strategy.
See common patterns
ARCY finds the groups who get stuck the same way.
Act at the right moment
From a quiet Pill to a guided Run.
Let ideas compete
Several ways try the same goal. You keep the best.
Goal rateSampleAPeek on /checkoutBWhisper on /checkoutClear winnerCChecklist on /checkoutProposed: keep B for everyonePublishDiscard
See it on your own product. Nothing to install.
Enter your site and ARCY builds a demo of your product, with Specialists already drafted. No code, no setup.
arcy.js
Reads the events your analytics already sends.
claude mcp add --transport http arcy https://api.arcyai.com/mcpnpm install arcy.jsimport { useEffect } from "react"
import arcy from "arcy.js"
export default function App() {
useEffect(() => {
arcy.init("YOUR_ENVIRONMENT_TOKEN")
arcy.identify(user.id)
}, [])
return <YourApp />
}<script>
(function(w,d){
if(w.arcy)return;
var q=[];
function push(m,a,r){q.push({method:m,args:a,resolve:r})}
var a={q:q};
['init','identify','identifyAnonymous','updateUser'].forEach(function(m){
a[m]=function(){var x=arguments;return new Promise(function(r){push(m,[].slice.call(x),r)})}
});
['reset','open','close','on','track','consent','onConsent','startFlow','registerHandler'].forEach(function(m){
a[m]=function(){var e={method:m,args:[].slice.call(arguments),resolve:function(){}};q.push(e);
if(m==='on'||m==='onConsent'||m==='registerHandler')return function(){var i=q.indexOf(e);if(i!==-1)q.splice(i,1)}}
});
a.consentState=function(){return null};
w.arcy=a;
if(!w.__arcyHistoryPatched){
w.__arcyHistoryPatched=1;
var fire=function(){try{w.dispatchEvent(new CustomEvent('arcy:routechange'))}catch(e){}};
['pushState','replaceState'].forEach(function(m){
var o=w.history[m];
if(typeof o==='function')w.history[m]=function(){var v=o.apply(this,arguments);fire();return v}
});
w.addEventListener('popstate',fire);
}
var s=d.createElement('script');
s.async=1;
s.src='https://cdn.arcyai.com/arcy.loader.js';
s.onerror=function(){console&&console.warn&&console.warn('[arcy] Failed to load. ARCY is disabled.')};
var f=d.getElementsByTagName('script')[0];
f&&f.parentNode?f.parentNode.insertBefore(s,f):(d.head||d.documentElement).appendChild(s);
a.init('YOUR_ENVIRONMENT_TOKEN');
})(window,document);
</script>
<script>
arcy.identify(user.id)
</script>Nothing changes in your product without your say.
- Your team publishes everything
- Answers only from your Sources
- Visitors can stop anything
- 3 a week by default
- KVKK, GDPR, EU data
- SSO, DPA on Enterprise
Frequency limit
Per week3· Defaults- ARCY stepped in
- A visit, nothing started

