Skip to content

01.06 / Build

Real-time voice agents.

Conversational voice agents built on your own backend: they verify who is speaking, read real data from your database and write back to the same systems your team uses. Our hotel agent runs 11 to 12 server tools against the same database functions as the app. Published as a pilot: no live phone line yet, and turn based, not full duplex.

guest requests handled in four months at Santo Domingo BayEstevano
~2,500
A laptop on a restaurant counter before service: a call in progress where the voice agent takes a booking, the live transcript in the middle and the reservation filling in on the right.

In detail

What you should know.

An operator with a headset round her neck works late at a desk, her monitor showing an audio waveform above a long table of entries

For example: ~2,500 guest requests handled in four months at Santo Domingo Bay. Estevano

What it is

A voice agent that answers your customer by voice and then does the work. It verifies who is speaking, reads real data from your database and writes back to the same systems your team already uses. Polargate builds it, hardens it and stays on it afterwards.

This page is written as a pilot, because that is what it is. What follows separates what already runs from what does not.

What our agent already does

The hotel agent inside our own product signs the guest in by voice, answers questions about the hotel, reads the real menu of each restaurant from the database, takes room service orders, creates, changes and cancels restaurant and spa bookings, triages an incident by opening a classified ticket in the same system the app uses, leaves messages for reception and hands over to reception when the property enables it.

That is 11 to 12 server tools wired to the same database functions the app calls. The agent and the app share one source of truth.

It does not make things up

The menu is read from the database. If a restaurant has no menu loaded, the agent says so instead of inventing one, and it refuses dishes that do not exist. It respects real opening days and booking windows, and when it cannot book it gives the actual schedule instead of a generic error.

Verified on 18 of 18 spoken scenarios in a July 2026 QA run against the running agent in a demo property, with audio, transcript, interface and database as evidence. An earlier preview QA in June 2026 came out at 21 of 24 perfect, with no critical failures.

Identity is checked inside the call

Room number or name plus a PIN, hashed and with lockout after failed attempts, asked once per conversation. The PIN never reaches the voice provider and never reaches the logs. The tenant is always resolved on the server, never taken from the model or from the payload.

The same agent supports two session modes: inside the app, already authenticated through a server side link, where nothing is asked of the guest; and a call mode with the full spoken verification flow.

The prompt is engineering, not a text box

The pilot agent's system prompt is around 31,000 characters, and it is compiled from the property configuration by a deterministic compiler with no language model in it. Before go live it went through an adversarial red team of twelve agents: 4 of 6 attack vectors broke the draft, and 0 of 6 got through after hardening. A separate audit went over the tool schemas and left 12 of 12 healthy.

One agent per tenant, provisioned on its own

Given a property with voice enabled, an edge function creates its agent, compiles its prompt from that property's configuration and assigns the tools its capabilities allow. That path was tested end to end in production and cleaned up afterwards. The client team edits level and capabilities from the platform itself, and the voice backend only reads that configuration through a function that fails closed and returns no guest data and no PIN.

Isolation is checked by machine, not by hand: row level security on the tables that carry a tenant id, and a guardian that discovers tenants and tables instead of listing them, running in continuous integration. As of August 2026 it watches 81 tables carrying a hotel id, and that run, against real hotel data, found no cross tenant leakage.

What it does not do yet

  • No live phone number taking calls from real customers. The call leg is designed, the number is pending regulatory paperwork, and no real inbound guest call has been validated.
  • No room availability and no room prices against the PMS. That layer is not open, and the availability tool covers restaurants only.
  • No full duplex. The APIs available today work by turns, and no provider publishes official end to end latency figures, so we do not quote one. We have a measured synthesis latency for reading a written answer out loud, but that is text to speech, not conversation, and we do not mix the two numbers.
  • Every agent we have built so far is a hotel agent. The mechanism is not hotel specific. The production evidence is.

Reading an answer out loud is not a conversation

Text to speech reads back something already written. A voice agent listens, decides and calls tools against your data. They are different products, they cost different money, and we keep their numbers apart.

The stack

The ElevenLabs conversational engine for the agent, the voice and the transcription, with the language model inside it. Our own backend on Supabase, with edge functions and database functions with controlled privilege. Secrets in a vault, never in the repository.

The platform this agent runs on is in production with real hotel guests. That is evidence for the platform, not for the voice channel, and we do not present it as voice evidence.

What you get

What you take away.

Everything is written down before we start, and everything stays in accounts your company owns.

01Deliverables

  1. 01

    Server tools wired to the same database functions your app or portal already calls, so voice writes to one source of truth

  2. 02

    Identity verified inside the call, hashed and rate limited, with the secret never reaching the voice provider or the logs

  3. 03

    A system prompt compiled from your configuration by a deterministic compiler, with no language model in the compiler

  4. 04

    Adversarial red team against the prompt before go live, plus an audit of every tool schema

  5. 05

    Per tenant isolation with row level security and an automated guardian that discovers tables instead of listing them, running in CI

  6. 06

    Self service provisioning, so a new property gets its agent, its prompt and its tools in one operation

  7. 07

    Spoken QA against the running agent, with audio, transcript, interface and database kept as evidence

02How it runs

  1. 01 · Week 1 to 2

    Discovery Sprint

    Interviews with the people who will use the thing, an audit of the systems you already run, a data model, an architecture decision and a scope written in plain language. It ends with a fixed price and a delivery plan, and the document is yours whether or not you continue.

  2. 02 · Week 2 to 4

    Foundations

    Design direction, database schema with row level security from the first migration, environments, continuous integration and the first screens in a place you can open. Nothing is built on a platform you cannot leave: the repository, the backend and the hosting are created in your accounts.

  3. 03 · Week 4 to 8

    Build to the first shipped iteration

    Weekly deployments, a short written update with each one and a running list of decisions. The goal of this stage is a version in production with real data where someone can finish an actual task, not a demo. Scope changes are priced before they are built.

  4. 04 · Week 8 onwards

    Audit, launch and handover

    Several review passes over correctness, architecture, accessibility, performance and security, with every finding checked by a second reviewer before it counts as real. Then the launch, the handover pack and, if you want it, a move to the CARE retainer for maintenance and evolution.

For example: 16 min median time to resolve a request (mean 25). Estevano

Who it is for

We don't take every project.

We would rather tell you now than halfway through. If you recognise yourself on the left, let's talk.

It fits if

  • You need a website, a portal or an app that does not exist yet, or one that has run out of road
  • You want the code, the data and the hosting in accounts your company owns
  • You prefer a fixed price before work starts to an open hourly bill
  • Someone on your side can decide and give the project a few hours a week
  • You care that Google and AI assistants can read it from day one

It is not for you if

  • You are after a cheap template or a site put together over a weekend
  • You want it to live on a platform you cannot leave later
  • Nobody on your side can review screens or make decisions
  • You need people to bill hours without a clear goal

For example: 3 min median time to first response (mean 8). Estevano

Timing and budget

How we quote.

No price list and no hourly billing during a build. After a short call you get a written quote for your project.

Timeline
The schedule follows the actions, not the voice. Wiring the voice engine is the short part; each thing the agent is allowed to do is a server tool against your database, with its own rules and its own tests. A fixed scope Discovery Sprint settles which actions go in the first version before anything is built. Our own hotel agent went through spoken QA rounds in June and July 2026 before we would put it in front of a guest, and we plan the same for yours. If answering a real phone line is part of what you need, say so at the start: that is the leg we have not validated, and it has regulatory paperwork of its own.
Team
Andrés Ciordia, Chief AI Officer, leads the voice agents. Our team builds the tools, the prompts and the phone integration, and Pedro Ciordia, CTO, sets the architecture and reviews it before launch. The adversarial work is part of the method: the prompt and the tool schemas are attacked before a customer ever talks to the agent.
How the price is set
Scoped and priced in a Discovery Sprint, which ends with a closed price for the build itself. What moves that price is the number of actions the agent has to execute, not the voice. The voice provider's own usage is billed separately. Running it afterwards goes under Care.
The stack
SupabasePostgreSQLDeno

For example: 93% of requests raised by the guest, with no queue and no phone call. Estevano

Work

Where we did it.

Real projects. Open each one to see what we built and the figures we measured.

For example: 90% resolved within the hour, p90 around 59 minutes. Estevano

FAQ

What people ask us.

Can a voice agent answer our phone?
Not yet, and we would rather say it here than in the kickoff. The agent has a call mode with the full spoken verification flow, but the phone leg is designed and not executed: the number is pending regulatory paperwork and no real inbound customer call has been validated. What we have tested is voice inside the app, where the guest arrives already authenticated through a server side link and is never asked for a room number or a PIN. If a live phone line is your actual requirement, that is the first thing to plan, budget and validate.
How do you stop it from making things up?
By not letting it answer from memory. Facts come from your database through server tools, so the menu is the menu that is loaded, and if a restaurant has no menu the agent says so instead of producing one. It refuses items that do not exist and respects real opening days and booking windows. The system prompt was attacked by an adversarial red team of twelve agents before go live: 4 of 6 vectors broke the draft, 0 of 6 got through after hardening. A July 2026 QA run passed 18 of 18 spoken scenarios against the running agent in a demo property, with audio, transcript, interface and database kept as evidence. Those are dated test results, not a permanent guarantee, and we re-run them.
Does this only work for hotels?
The mechanism is not hotel specific: an agent, a set of server tools against your database, a prompt compiled from your configuration, and isolation per tenant. But we will be straight about the evidence. Every voice agent Polargate has built so far is a hospitality agent, and that is where the production testing was done. If your case is a different sector, you are the first of its kind with us, and the Discovery Sprint exists precisely to price and de risk that instead of pretending otherwise.
How is this different from a chatbot that speaks?
A chatbot that speaks reads a written answer out loud. That is text to speech, and it informs. A voice agent listens, verifies who is speaking, decides and calls tools that change real records: an order, a booking, a ticket in the same system your staff work in. They are different products and their numbers do not transfer, which is why we do not quote our synthesis latency as if it were conversational latency. The APIs available today also work by turns, not full duplex, and no provider publishes official end to end latency, so we do not promise a number we cannot measure.
Is our data safe if the voice provider sits in the middle?
The design assumes the voice provider is an outside party. Verification happens inside the call and the PIN is hashed, rate limited and never sent to the provider or written to the logs. The tenant is resolved on our server, never taken from the model or from the payload, so a prompt cannot talk its way into another customer's data. The configuration endpoint fails closed and returns no guest data. Isolation is enforced with row level security and checked in continuous integration by a guardian that discovers tables instead of listing them: as of August 2026 it covers 81 tables carrying a hotel id, and that run, against real hotel data, found no cross tenant leakage. That is a dated verification, not a permanent property, and it runs again on every change.

For example: ~2,500 guest requests handled in four months at Santo Domingo Bay. Estevano

Get started

Tell us what you want to build.

Websites, apps, custom systems and AI for companies that need them in production in weeks. Fill in the form or book a 30 minute call: a senior engineer answers within 48 business hours with a first take on scope, timeline and price.

What do you need?
Budget
When

At least ten characters.

Answer in writing within 48 business hours. No newsletter, no automatic sequence.

Rather answer the full brief?

First step

Discovery Sprint

Two weeks to close scope, architecture and price before anything is built.

No price list. You get a private quote, in writing, after a short call.

Then, to build, always at a fixed price

Not ready yet?

AI-native digital studio for mid-market companies

POLARGATE, S.L. · CIF B24895005
Calle Electrónica 6, 28027 Madrid, Spain