Ten sites.
One inbox.
Never offline, in eight languages.
Live chat, session replay and an AI agent on one visitor record.
- Nordvik Supplylive
Mi pedido dice entregado pero no llegó nada.
Translated from Spanish
The courier scanned it at your building door at 09:14, not at your flat.
- Every site4 unreadallNSBBLSCPNSMarta OliveiraPorto, 2m2BBDevon AchterbergHandled by the agentLSSung-min WhitlockVancouver, 31m1CPIlaria BonettoTrieste, 48m1
- Session replay3:32
Entered a discount code
AUTUMN20, rejected
Retried the code
Four attempts in 38 seconds
Opened the chat widget
Bottom right
- Analytics30 days
Sessions
4,318
Talked
207
Bought
61
- AI handlingnordvikOffWhen nobody is onlineFirst responderMonthly AI allowance1,240 / 4,000
- Translationde to en
As they wrote it
Mein Paket gilt als zugestellt, aber es kam nichts an.
As you read it
My parcel counts as delivered but nothing arrived.
Swipe. Six surfaces, one visitor record.
Live chatdrag to spin
Drops into the site you already built
Your customers are awake. You are not.
Selling into North America from Asia means the busiest hours of your site happen while you sleep. Most of that traffic never gets answered, and the ones who leave never say why.
Turn on automatic handling and it picks up what you cannot. It answers from your knowledge base, checks orders through the read-only functions you exposed, and leaves anything that needs a decision waiting for you — with everything it already found out.
How the agent is configured52%
of the messages your site receives land between 23:00 and 07:00 in Singapore. The agent is answering them and queueing what it cannot decide.
Do not take our word for it.
This is the real widget on scripted answers. Ask where a parcel is, or demand a refund and watch it decline to decide.
Nordvik Supply
Ana is asleep. Hepo is answering for now.
- Hi, my order says delivered but nothing arrived.
Translated from Spanish
- I can see the courier scanned it at your building door at 09:14, not at your flat. Two neighbours on that street had the same scan this week.
Answered by the agent
This is the real widget, running on scripted answers. Type into it.
While you are chatting, you can see what they just did.
Chat, recording and analytics were written against one visitor id from the first commit. Not integrated. The same row. Scrub the timeline and read the message that came out of it.
Loading the recording
What happened first
visitor_id 8c1f04ae
Then they typed
“why cant i pay”
You already know the answer. The code needs 200 EUR and the basket is at 184.
Bolting a recorder onto a chat tool cannot produce this. Two products mean two id systems and no key to join them, so the best anyone can do is guess from timestamps and IP.
Five things, one window
Every module writes to the same record, so nothing needs to be reconciled later.
One inbox for every site
Every site you run pours into a single stream. Filter by site instead of walking through eight separate consoles.
Hired, not installed
Write it a handbook, hand it read-only keys, and read what it drafts. Turn on automatic handling and it answers by itself — never with an action you have not allowed.
The three minutes before the question
Every conversation carries the recording of what the visitor just did. Same visitor id, same row, no guessing from timestamps.
Traffic that knows who talked
Pageviews, sources and funnels joined to conversations, because they were never separate data to begin with.
- Sessions
- 4,318
- Talked to you
- 207
- Then bought
- 61
Sample data from the demo workspace.
Your mailbox, same window
Connect the support address you already publish. Mail lands in the same inbox, keeps its thread, gets the same translation.
Every site
4 sites, one stream
- 2
Marta Oliveira
Nordvik Supply2mThe courier scanned it at the door, not at my flat.
Porto translated Devon Achterberg
Boots & Bramble14mAgent booked the redelivery for Saturday. Closed.
Rotterdam handled by the agent- 1
Sung-min Whitlock
Lumen Supply Co.31mCan I swap the 42 for a 43 before it ships?
Vancouver - 1
Ilaria Bonetto
Carta Papeleria48mIl codice sconto non funziona al pagamento.
Trieste translated Kofi Brandenburg
Nordvik Supply1hAsked about wool care. Answered from the knowledge base.
Accra handled by the agentPetra Nowakowa
Lumen Supply Co.2hWants an invoice with a VAT number added.
Brno- 1
Yusuf Delacroix
Boots & Bramble3hRefund request. Passed to a human at 03:12.
Marseille
Switching sites is a filter, not a door.
Eight sites should not mean eight consoles. The rail down the left is your sites, and the icon on top is all of them at once. Picking one filters the stream. It does not take you somewhere else.
- One unread count that actually means something
- Per-site badges so nothing hides behind a filter
- Search that crosses every site at once
- Roles per site, one login for all of them
Configured like an employee, not a chatbot
Handbook, permissions, a trial run, one switch. Nobody has to learn what a system prompt is.
Decide how far it goes
It drafts and you send — or you turn on automatic handling, for the whole site or for one conversation. Click into its box and that chat is yours again.
Write the handbook
How to speak, what to never promise, when to step back. Facts live in the knowledge base, not in here.
Hand over read-only keys
Expose order lookup as a function. The URL and the token stay server side. It can look, it cannot change.
Interview it first
Ask it awkward questions as a visitor. Nothing reaches a real customer until you are satisfied.
The metaphor is the feature. Telling a site owner that the agent has no refund permission so it fetches a supervisor takes five seconds to explain and never needs explaining twice.
One line, and it is live.
Paste it before the closing body tag. The widget renders inside a shadow root, so your CSS cannot break it and it cannot break your CSS.
<script src="https://hepo.ai/w/nordvik.js" async></script> Async, never blocking
Loads after paint. Your Lighthouse score does not move.
Shadow DOM isolated
No global styles, no reset collisions, no z-index war.
Mounts anywhere
Bubble on a site, or embedded inside your own admin.
Recordings stay put
A replay lives in the visitor's own browser until an agent asks for it. The ones nobody opens are never uploaded.
How replay worksInputs masked at capture
Card and password fields never become characters. Masking happens in the browser, before upload.
SecurityDPA on the shelf
A signed processing agreement, a retention policy and a residency option, ready before procurement asks.
Read the DPASeats are free. Sites are free.
You pay for model work and nothing else. Hire the whole team, run the whole site group, and the bill only moves when the AI is the one answering.
See the numbersAgent seats
Unlimited
Every plan, including free
Sites and widgets
Unlimited
One login covers the group
Human replies
Free
The allowance is for model work only
Replays and analytics
Free
Metered by retention, not by seat
Before you paste the script
Does the widget slow my site down?
It is one async script, roughly 200 KB over the wire, and it renders inside a shadow root so it cannot inherit or leak CSS. Nothing blocks first paint and the recorder only sends deltas.
Can I put the operator console inside my own admin?
Yes. The console is a single JavaScript file that mounts into an element you choose. Teams drop it into an existing ERP or back office so support never becomes a second tab.
What does the AI actually see?
The handbook you wrote, the knowledge base articles you published and the function signatures you exposed. It never sees your API keys or endpoints. Those stay server side.
Is the recording safe to run on a checkout page?
Input values are masked at capture time, before anything leaves the browser. Card fields, passwords and anything you mark yourself are recorded as keystroke timing only, never as characters.
How do I move off Hepo if it does not work out?
Export conversations, contacts and knowledge base as JSON from the settings page, any time, on any plan. Recordings export as raw rrweb event files that replay in any rrweb player.
Put it on one site tonight.
One script tag, no card, unlimited seats. If it does not earn its place by the weekend, delete the line.
Free plan stays free. The AI is the only thing that ever costs you anything.