Bench
AI-prepared communication policy

AI Transparency Audit Log

Every AI-prepared communication from Bench is signed by the agent that drafted it, approved by a named human, and logged with auditable metadata. This page describes exactly what that means and how to request the record for a message you received.

Three commitments, always

Not three lines in a privacy policy — three load-bearing parts of every message.

Signed by an agent

Every AI-prepared message carries the name and portrait of the Bench agent that drafted it — Aurelius, Cole, Ember, Piper, or Sage. The agent is identified in the signature block, not buried in a disclosure footer.

Approved by a human

No agent-drafted communication leaves Bench without a named human approver and an approval timestamp in the recipient’s local-readable format. The approver line is non-optional chrome in our email template.

Logged for audit

Server-sent email is persisted to an immutable per-tenant log with the fields listed below. Approver-sent email (drafted by an agent and sent by the human from their own mailbox) is auditable via the signed signature block plus the sender’s own mail provider.

What we log

Server-sent email (anything routed through our delivery pipeline) is written to a per-tenant audit collection with the fields below. This is the real schema — the same one our engineering team queries when an audit request comes in.

instances/{instanceId}/emailLogs/{logId}
traceId
UUID v4
Unique per-send identifier. Issued when the request enters our send pipeline.
providerMessageId
string
Message ID returned by our delivery provider (e.g., SendGrid). Present once the message is accepted for delivery.
aiGenerated
boolean
True when any part of the subject or body was drafted by a Bench AI agent.
aiPromptUsed
string (optional)
The prompt or template key that produced the draft. Lets us reproduce what the agent saw.
triggeredBy
userId | systemId
The human (or system) who initiated the send. Joins to our identity index so an audit can resolve the real person.
triggerSource
string
The product surface that initiated the send (e.g., admin console action, scheduled workflow, API call).
templateId / templateName / category
string
The email template used. Templates are versioned in Firestore and changes are tracked.
to / toName
string
Recipient email and display name. Redacted in aggregate reporting; visible only on a scoped audit request.
subject
string
Rendered subject line as it was sent.
status
queued | sent | blocked | failed
Terminal state of the send. Blocked sends are logged with reason so we can audit compliance holds.
complianceViolations
string[] (optional)
CAN-SPAM or policy violations detected at send time. Warnings are logged even when the send proceeds.
idempotencyKey
string
Prevents duplicate sends within a 24-hour TTL window.
createdAt / sentAt / blockedAt / failedAt
Firestore Timestamp
Lifecycle timestamps in UTC.
instanceId
string
Tenant scope. All logs are written to instances/{instanceId}/emailLogs and are isolated per tenant.

What is redacted

Recipient email addresses and display names are redacted from aggregate reporting. They are only revealed on a scoped audit request authenticated to the recipient in question or to a tenant administrator.

Retention

Audit entries are retained for the life of the tenant’s account. Idempotency markers age out after 24 hours; the underlying log entry does not.

Verify a message you received

If you got a message from Bench and want to confirm who drafted it and who approved it, here’s the path.

01

Check the signature block

Bench emails include a signature panel with the agent’s portrait, the prepared-by line, and a "Approved by … @ …" line naming the human and the approval moment in the Denver time zone.

02

Confirm the sender

Server-sent messages come from noreply@benchagi.com. Agent-drafted, human-approved messages come from the approver’s own Bench address and are visible in that person’s Sent folder.

03

Request the audit record

Forward the message to hello@benchagi.com or use the button below. We respond with the prepared-by agent, approver, approval timestamp, and the prompt or template category used.

Request your audit record

Email us with the subject line, approximate delivery time, and the named approver from the signature block. We’ll respond with the matching log entry.

This page is the destination for the “AI Transparency Audit Log” link in every agent-drafted Bench email. If you followed a link here from one of our messages, that message is covered by the policy above.