Skip to content

Agent

One agent. Every customer moment.

The customer-facing side of Unless — one AI Customer Agent across acquisition, retention, expansion, and support, with the Help Center it auto-generates as its public face. Browse a moment, or see the full overview.

Acquisition

Qualify, convert, educate. 24/7 on your marketing site.

Retention

See churn coming. Act before it does, inside the customer's product.

Expansion

Catch upsell signals early. Route them to the right owner.

Support

Resolve, co-pilot, learn — across every helpdesk and channel.

Engine

The platform underneath.

The back-of-house side of Unless — a Living Knowledge library that maintains itself, plus the Train → Test → Deploy → Analyze loop that keeps every Customer Agent sharper after every conversation. See how the engine compounds.

Train

Always current. Always ready. Living Knowledge + Living Context.

Test

Before a customer sees it. Preview, simulate, audit.

Deploy

One agent. The whole journey. Memory across all of it.

Analyze

Performance, value, AI maturity. All visible. All live.

Trust

Built for the EU from day one

The architecture that lets your DPO, security, and procurement teams sign off without slowing your team down. Browse the page, or jump straight to a section.

Privacy Vault

Twelve numbered measures keep sensitive identifiers home.

Compliance posture

Three pillars — sovereignty, AI Act readiness, sector readiness.

Architecture

Five EU-resident layers — touchpoints to LLM constellation.

Frameworks

EU AI Act, GDPR, DORA, OWASP — built into the platform, not bolted on.

Customers

Trusted by leaders

How regulated-Europe brands — from Visma to Onguard — turned customer success into a revenue engine with Unless.

Visma Enterprise AS

Norway's leading ERP — modernized self-service with Unless.

Helping patients

Patient self-service surged within weeks of deploying Unless.

Enhancing credit software

Financial service Onguard powers their support operations with Unless.

Ticket deflection at scale

Meet Sally, Kontek’s AI support colleague in regulated finance.

Resources

Search resources and support articles

Documentation, articles, and recipes for getting the most out of your Unless deployment — plus a help desk when you need a human.

Help center

Get-started guides and advanced playbooks for the platform.

Security and compliance

Privacy measures, security by design, and compliance guidelines.

Developer documentation

Find reference documentation for the javascript API.

The Unless cookbook

Bite-sized examples for every stage of the customer lifecycle.

Pricing

Pay per outcome. You choose.

Two equal-weight plans, both built around outcomes. Browse the page, or jump straight to a section.

The two plans

Flex (€0.99 per outcome) or Fixed (€1,999/month). Equal weight.

What's included

Full platform on both — Living Knowledge, Memory, Context.

Flex modules

Productized add-ons. À la carte on Flex, bundled into Fixed.

Frequently asked

What counts as an outcome, fair use, and switching mid-year.

Advanced

Custom Procedures with JavaScript and API calls

Version 1.0 · Last updated 2026-05-27

Procedures that go beyond the standard types. Run arbitrary JavaScript or call your backend API to do things only your business knows how to do.

The standard Procedure types (follow-up, redirect, component, switch topic, live chat) cover most cases. When they do not, custom JavaScript and API call Procedures let the agent take any action your stack supports without leaving the conversation.


Key concepts

Custom JavaScript Procedures

Run any JavaScript when the customer clicks the Procedure. Manipulate the DOM, call your in-page JS API, do anything the browser allows. Useful for tightly integrating with the surrounding product.

API call Procedures

Call an endpoint on your backend. Send configured headers and input fields. Receive a JSON response the agent can use directly, or transform with a small JavaScript snippet.

MCP server connections

For broader integrations beyond a single endpoint, connect your own MCP (Model Context Protocol) server. The agent reads and acts through MCP the same way it does through any other connector. See Living Context for the setup pattern.

Variables

Both types collect variables from the customer first if the agent does not have them. Variables can depend on previous answers.

Response handling

For API calls, the JSON response feeds back into the conversation. Common patterns: success and error messages, customer-facing text, follow-up Procedures.

Authentication

API call Procedures support custom headers, bearer tokens, and per-tenant secrets. Manage secrets in your account.

What you can do here

  • Build a Procedure that runs custom JavaScript on click
  • Build a Procedure that calls your backend and uses the response
  • Collect variables from the customer before running
  • Transform API responses with JavaScript
  • Set custom success and error messages
  • Manage authentication credentials

When to use it

  • The standard Procedure types do not cover your need
  • You need to call your own backend (account lookup, status check, billing query)
  • You need deep integration with your in-page product
  • You need to do something inside the customer’s session that requires custom logic

When not to use it

  • The standard Procedure types would actually work. Start there.
  • You need scheduled background work. Procedures run on customer interaction, not on a schedule.
  • The logic belongs in your backend, not in the agent. In that case, the agent calls your backend through an API call Procedure; the logic stays where it belongs.

How it works

Custom JavaScript runs in the customer’s browser when they click the Procedure. API calls run server-side against your endpoint with the configured headers. Both leave records in the audit trail in Accountability.

Frequently asked questions

How do I build an API call Procedure?

Open "Train > Procedures > Create procedure", pick "API call", configure the endpoint, headers, and input fields. Add a success and error message. Save.

How do I authenticate the API call?

Add a header. For bearer tokens, store the secret in your account settings and reference it from the header. Avoid pasting secrets directly into the Procedure.

How do I use the API response in the conversation?

Map the response fields to placeholders in the success message. The agent renders the message with live values.

How do I transform an API response before showing it?

Add a JavaScript transformer to the Procedure. The transformer receives the raw JSON and returns the value or values to use in the success message.

Can custom JavaScript do anything?

Anything the customer's browser allows. Standard browser security rules apply (CORS, same-origin policy). For server-side actions, use an API call Procedure.

How do I see what an API call did?

Open "Analyze > Conversations", find the conversation, and inspect the Procedure run. You see the request, the response, and the customer's reaction.

Advanced Audience targeting