WarmlinePolicy layer for AI outbound calling
Technical demo · outbound AI for a PR consultancy

Every call passes a gate. Every word is checked afterwards.

An AI agent that says the wrong thing to a real person is a regulatory problem, not a bug report. Warmline is the layer that decides whether a call may be placed at all, then verifies what the agent said — disclosure, approved claims, commitments, opt-outs, market-sensitive news — and writes the result back as data.

Nothing here dials a phone. The first section is a real conversation you start in your own browser. Everything else is scripted, and every prospect is fictional. The policy checks, the claim checker and the database are the real code throughout.
—
checks before a call is placed
5
checks on every transcript
—
prospects callable right now
—
real calls placed
01

Talk to the agent

A real voice agent, not a script. You play the prospect. When the conversation ends, the transcript ElevenLabs stored is run through the same post-call checks as every other call on this page — so if you can talk it into inventing a price or ignoring an opt-out, you will see it caught.

Checking whether live voice is available…
02

Walk a call through the policy layer

Three questions, in order: should we call this person, did the agent say anything it should not have, and what happened. A call that fails the first never reaches the second.

03

Try to get a claim past the checker

Type anything as though the agent had said it. This is the deterministic tier that runs on every transcript — no model, same code as production. It will not catch everything, and it says so: a sentence it cannot place is reported as unclassified rather than waved through.

The checker works on text, not audio. The same rules would apply to an SMS, WhatsApp message or email — and there they can run before the message is sent, which is a stronger control than flagging a call after it has ended.

Tier 1 verdict, per sentence

Type something, or pick an example.

04

Prospects

Whether each record is callable at this moment, and the last call on it. Five of the six are seeded to fail a different check, so the policy layer is visible without reading the tests.

ProspectNumberCan we call now?Last call on record