§066 min read · Last updated 2026-06-04

AgentGate policy gate

AgentGate evaluates every dispatch against the outbound-gdpr risk pack. Hook verification, body length bounds, sender warmth thresholds, jurisdiction consistency, blocked sales language. Denials are durable.

AgentGate is the policy engine that sits between personalize and dispatch. It is also a separately marketed product in the portfolio — the same gate that protects CogniLead sends protects external customer agents. For CogniLead specifically, we ship a default risk pack called outbound-gdpr.

Rules in outbound-gdpr

  • hook_verified — technical_hook_verified must be true. Deny otherwise.
  • body_length — body must be ≤ 800 chars. Subject must be ≤ 78 chars.
  • sender_warmth — the sender domain must have crossed a 4-week warmth threshold and the day-cap remaining ≥ 1.
  • jurisdiction_consistency — the routed jurisdiction must match the recipient inference from intersect. Mismatch is a deny.
  • blocked_phrases — a deny list of canned sales phrases ("synergize", "circle back", "touching base", etc.). Configurable per-tenant.
  • opt_out_present — the body must contain an RFC 8058-compatible one-click unsubscribe surface. Validated structurally.

Denials are durable

A deny is a Chainlog event with the rule id, the input that triggered it, and a reason code. The lead row is updated to denied and never retried unless a human in /dashboard/leads overrides the decision (which itself is a Chainlog event).

This matters for the audit posture: when a DPA asks why a specific company never received an email, we can produce a deny event with the rule id and the rubric version that issued it.

Evaluate the runtime

Two free MCP tools surface this pipeline inside Cursor or Claude Desktop — no key required.

Install MCP →