Skip to content
Open for new sites — free plan, no card

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 unread
    allNSBBLSCP
    NSMarta OliveiraPorto, 2m2
    BBDevon AchterbergHandled by the agent
    LSSung-min WhitlockVancouver, 31m1
    CPIlaria 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 handlingnordvik
    Off
    When nobody is online
    First responder
    Monthly 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.

Drops into the site you already built

  • Shopify
  • WooCommerce
  • WordPress
  • Magento
  • Wix
  • Squarespace
  • Webflow
  • PrestaShop

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 configured
00:00 Singapore12:0023:00

52%

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.

You are awakeAssistant answeringVolume shape is modelled, not measured.

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.

NS

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.

The part nobody else has

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

rrweb

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.

    Every site

    4 sites, one stream

    • Marta Oliveira

      Nordvik Supply2m

      The courier scanned it at the door, not at my flat.

      Porto translated
      2
    • Devon Achterberg

      Boots & Bramble14m

      Agent booked the redelivery for Saturday. Closed.

      Rotterdam handled by the agent
    • Sung-min Whitlock

      Lumen Supply Co.31m

      Can I swap the 42 for a 43 before it ships?

      Vancouver
      1
    • Ilaria Bonetto

      Carta Papeleria48m

      Il codice sconto non funziona al pagamento.

      Trieste translated
      1
    • Kofi Brandenburg

      Nordvik Supply1h

      Asked about wool care. Answered from the knowledge base.

      Accra handled by the agent
    • Petra Nowakowa

      Lumen Supply Co.2h

      Wants an invoice with a VAT number added.

      Brno
    • Yusuf Delacroix

      Boots & Bramble3h

      Refund request. Passed to a human at 03:12.

      Marseille
      1

    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.

    index.html
    <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.

    Seats 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 numbers

    Agent 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.