Sleuth sending foundation
The tracked-send service for AI Sleuth by a2ally: every send carries the open pixel from a2ally's own domain, every link is click-wrapped, and envelope events are recorded per send.
Sleuth sending is dark: not armed. Missing dependencies: RESEND_API_KEY, SLEUTH_MAIL_FROM, SLEUTH_DNS_VERIFIED_AT, SLEUTH_CAMPAIGN_APPROVED. No send fires while dark.
Sender: hello@a2ally.com · Sending domain: mail.a2ally.com
DNS authentication for mail.a2ally.com is not verified: no SPF, DKIM or DMARC record is attested for the sending subdomain yet.
Events by kind: sent 0 · opened 0 · clicked 0 · viewed 0 · booked 0 · signed 0
DNS records required
- SPF: a TXT record on the sending subdomain authorizing the sending provider to send mail for that subdomain
- DKIM: the provider DKIM signing key published for the sending subdomain (a TXT or CNAME record, per the provider)
- DMARC: a TXT record at the DMARC subdomain of the sending domain stating the alignment and reporting policy
The fail-closed rule
Fail-closed rule: no pixel / any raw untracked link = the send does not fire; the final artifact is re-validated at dispatch. A prepared message carries the open pixel served from a2ally's own domain and every link click-wrapped through a2ally's redirect; if validation of the final stored artifact finds a missing pixel or any raw untracked link, dispatch refuses and nothing is sent.
The envelope rule
Envelope rule: envelope events sent → opened → clicked → viewed → booked → signed recorded per send against its token; recipient shown only as a hash. Opened and clicked are recorded by the open and click system endpoints, sent is recorded at dispatch, and viewed, booked and signed are recorded by the owner through the events endpoint.
The send rule
Send rule: prepare wraps+injects+validates; dispatch is the only fire path and only when armed. Preparing a send stores the final tracked artifact and sends nothing; dispatch re-validates the stored artifact, then — only when every dependency is configured — sends through the mail transport and seals one ledger receipt whose public payload carries no recipient, no recipient hash and no token.
Surfaces
- GET /v1/sleuth-send (free, no key) — this index document: armed state, missing dependency names, the sender and sending domain, the DNS authentication state, the fail-closed, envelope and send rules, and live usage counts
- POST /v1/sleuth/sends (owner account key) — prepare one tracked send: wraps every link, injects the pixel, validates the final artifact and stores it as prepared; nothing is sent
- GET /v1/sleuth/sends (owner account key) — the caller's own sends only, each shown with its recipient hash and its tracking token
- POST /v1/sleuth/sends/{id}/dispatch (owner account key) — the only fire path: re-validates the stored artifact, then sends when armed and seals one ledger receipt
- POST /v1/sleuth/sends/{id}/events (owner account key) — record one owner envelope event (viewed, booked or signed) on one of the caller's own sends
- GET /v1/sleuth/open/{token} (system) — records an opened event when the token matches a send and always answers the tracking pixel image
- GET /v1/sleuth/click/{token}/{n} (system) — records a clicked event and redirects to the wrapped link's destination when the token and link index match
- GET /sleuth-send (page) and GET /sleuth-send.md — the human-readable twin of this document
