Blocked is the system working, not failing.
Five checks run server-side before every dial and every message. They are not a tenant setting. There is no advanced mode. Waiting doesn’t unlock the grey button — and the UI says so.
- 01
Consent gate
Every dial and message checks the consent recorded for that contact and channel. Sign-in is not consent. Boxes are never pre-ticked. No consent = targetable, not callable — and the UI says which.
- 02
Suppression & DNC
Opt-outs and suppression lists are enforced centrally. Once a contact opts out, no automation — and no enthusiastic new hire — can reach them again.
- 03
Calling windows
Outbound respects local calling hours in the contact's time zone, plus your own operating hours. Quiet hours are actually quiet.
- 04
Attempt caps
Per-contact limits stop the same lead from being called or texted into the ground. Held attempts are listed, with reasons.
- 05
AI disclosure & recording
Callers who ask are told they're speaking with an AI. Recording notice is handled on the call. Outbound AI calls carry disclosure too. Not configurable.
- ∞
Counted, not hidden
Skipped, held, refused, and suppressed actions are counted and listed with reasons — never silently dropped. “9 dials Ava did not place” is a feature, not an apology.
Locked on purpose
Enforced in codeCompliance values render read-only in the product, with the reason written next to them. There is no hidden toggle for a bigger plan, no “advanced mode” for enterprise. If a rule looks like a limitation, that’s because it is one — the law’s, not ours.
Security & data isolation
Per-brokerage data isolation on every query, masked logs, and validation at every boundary. Built for the US and Canada — voice, SMS, and email provisioned for North American numbers, with the rules built around US and Canadian requirements.
Boring on purpose. Sleep well.
The flashy part is Ava. The compliance engine is deliberately dull — and deliberately unbeatable.
No card · No contract · Cancel anytime · The AI says it's an AI.