1. Where do I change my plan? Tue 09:14
  2. Where do I change my plan? Thu 16:02
  3. Where do I change my plan? Sat 11:47
  4. Where do I change my plan? Tomorrow

The last time you answer it.

aside is an AI copilot that lives inside your web app. Your user asks for the change; aside opens the screen and fills in the form. They press save.

One script tag · your actions, your code · no npm install

Someone asks to watch a site. The page’s own action fills the form — and save is still theirs.

A chatbot can tell them where the button is. A tour can point at it. Neither one presses it — so the work still lands on someone, and it lands on you.

What your app already does, now asked for in words. You register the actions you already have —change plan, invite someone, open a monitor— with a name, a description and the function you were going to write anyway.

Nobody has to find anything. The model never touches your DOM or decides where to click: it names one of your actions and passes what the user said. An action you didn't register is refused.

Still your code, still your rules. Your function runs it, on your page. It prepares and shows what it filled — whatever saves, sends or deletes is still a button your user presses.

Try it here. This is the whole integration.

The lines on the left are all you paste. The panel on the right is a simulation — no model, no session, nothing billed — but the form beside it is a real form, and the words fill it in. Saving it is still yours.

javascript
aside.register([{
  name: 'set_plan',
  description: 'Change the plan: free, pro or business',
  inputSchema: {
    type: 'object',
    properties: {
      plan: { enum: ['free', 'pro', 'business'] },
    },
    required: ['plan'],
  },
  run: async ({ plan }, aside) => {
    await aside.fill('#plan', plan);
    return { filled: plan };
  },
}]);

A settings screen, like yours

asideSimulation

Ask me for a plan, or tell me what to call you.

It isn't an information problem. Nobody writes to support for fun. They write because they tried it alone and it didn't work.

Your docs already say where the button is. What's missing is someone to press it.

Installing it

No package to install, no webhooks, no build step: a script tag, and a function for each action.

One line, and it answers. Paste the script. It reads your documentation, says when it does not know, and hands the conversation to your team — at the top of your aside inbox, and on Slack or a webhook if you connect them. No code.

<script src="https://app.aside.pro/widget.js"
  data-workspace="your-workspace"></script>

A few lines more, and it acts. Register the actions you want it to be able to run. That is the part your users feel.

aside.register([{
  name, description, inputSchema,
  run: async (args, aside) => { … },
}]);

Or let your coding agent do it. Claude Code, Cursor, Codex: give it this line and it adds the script, writes the actions against your own forms and marks the fields they touch. You check it and press merge.

Read https://aside.pro/skill and add aside to this app

Read what your agent will read →

For small teams with many customers

No proper docs? Tell it. It writes the page, shows it to you, and saves it when you say so. Or upload what you have — help centre, PDFs, Markdown.

You scale the product, not the support team. And the setup that used to be a tour nobody finished is now something that finishes itself.

And the ones who never get there don't come back: in the median product, 96% of new users are gone by month three (Amplitude, 2,600 companies).

You pay for the conversations that happened

Not for active users. A conversation starts when your user writes and aside answers: people who never open the panel, or open it and write nothing, cost you nothing. It is one conversation while they keep writing — closing the panel or reloading the page does not start another; an hour without a message does — for up to 20 messages, and every 20 after that count as one more. The allowance starts again with each billing month.

pro Recommended

249 €/mo

1,500 onboardings/conversations a month

Get started →

Prices exclude VAT · monthly, cancel whenever

Questions we get asked

Do I install it myself or do I need a developer?
Answering: one script tag, thirty seconds, anyone with copy/paste. Acting inside your app: somebody who can write a function, because it is your code that runs.
How long does setup take?
Paste one script tag and it answers from your docs the same day. Registering your first action is an afternoon: it is the function you already have, with a name and a description on it.
Can I cancel any time?
Yes. It is month to month, and you can cancel whenever.
Does it work if we only have 50 paying users?
Yes. It is built exactly for that: small teams with many customers and little time. And the tasks people ask about most can become guided setups: a few of your own actions in a row, which it walks the user through one question at a time.
Does it replace Intercom or Zendesk?
It can sit next to them: it is its own panel, inside your app. What it cannot solve it hands to your team, at the top of your aside inbox, where someone can take the conversation and reply — and it can notify Slack or a webhook. There is no Intercom or Zendesk integration yet.
Which languages does it speak?
English and Spanish. You set the language of each workspace, and it answers your users in it.
What does aside see of my users?
The address of the page they are on, its title and its headings — and whatever your own actions choose to report back. It does not see their screen, it does not read your DOM and it cannot click anything you did not register.
What if it gets something wrong?
It answers from your documentation and says when it does not know. And it prepares rather than commits: what saves, sends or deletes is a button your user presses.
How does it know my product?
Your documents, and the actions your page registers. No training, no fine-tuning — you change a document and the next answer uses it.
What about GDPR?
aside is an EU product, hosted in the EU. The language model is run by an external provider, which receives the text of each conversation. Conversations are kept for 90 days after they end so your team can read them, and you can delete any of them before that. There is no video, no screen recording and no session replay, because there is no screen capture at all.

Questions before you register?

We answer within 24 hours.