# Communication you must be able to explain

If you have to be able to explain a message months later, the useful question is what was recorded at the time. Connect records what was decided, by what, under which rule and what happened — including refusals, because a refusal is a decision. What it does not have is a certification, and no page here claims one.

- **Status:** Available
- **Audience:** both
- **Channels:** email, phone, whatsapp
- **In the app:** #/autonomy-audit, #/activity, #/security, #/knowledge
- **Last verified:** 2026-09-10
- **Canonical:** https://connectbyjbrh.com/docs/use-cases/regulated-communication/

## What is on the record

**The decision** — The audit trail carries what was decided, by what, under which rule, and the outcome. A refusal is recorded on the same footing as an action.
**The approval** — Held actions are released by a named person with permission on that channel, and the decision log answers 'who released this' long after everyone has forgotten.
**The evidence behind a claim** — In prospecting, a claim without evidence does not reach the record at all. The source is attached to the claim rather than remembered alongside it.
**The send** — A message is reported as sent only once the provider acknowledges it. The third state — uncertain — is shown as uncertain rather than resolved by guessing, because a confident wrong answer here is the one that causes trouble.
**The file** — Connect creates and modifies files as new versions, with provenance and audit, so the document somebody objects to has a history rather than a single mutable state.

## The refusals that protect you

Most of the compliance value here is negative — things that do not happen, reliably, without anybody remembering to enforce them.

- **No invented commercial term.** A price, an SLA or a warranty Knowledge cannot support is refused and escalated. On the realtime voice path the rule can only live in the instructions, so a breach is detected rather than prevented: `price_spoken` counts the lines the voice priced, using the same expression the carrier path checks each sentence with.
- **No guessed contact details.** No pattern-generated email address is produced, tested or sent to.
- **No quiet override of a do-not-contact entry.** Suppression, unsubscribe, complaints and do-not-contact are checked in one place before any outreach, and the Assistant cannot clear a do-not-contact entry at all.
- **No cross-workspace leak by accident.** Isolation is enforced three times: the tenant allowlist in the middleware, the SQLAlchemy workspace kernel, and row-level security in PostgreSQL, forced on every scoped table.

## Handling the messages themselves

Two things about reading mail matter more in a regulated setting than elsewhere. HTML is sanitised aggressively before it is rendered, and remote images are proxied rather than fetched by the reader browser — so opening a message does not tell the sender that somebody opened it.

Files are read with the standard library: PNG, JPEG and WebP; PDF via its text layer, or read by the model when there is none; DOCX; XLSX; CSV and TSV; PPTX; TXT, MD and JSON. **DOCTYPE and ENTITY declarations and zip bombs are refused**, which closes the two attachment tricks that turn a document reader into an incident. CSV export neutralises formulas so an exported sheet cannot execute in somebody spreadsheet.

## What this documentation does not claim

> **Careful** Connect holds no certification, and no page in this corpus asserts one. There is no ISO, SOC 2, HIPAA or PCI claim to cite, and a page that implied otherwise would be the most damaging kind of error in a regulated setting.

| Question | Position |
|---|---|
| Which certifications does Connect hold? | None are claimed here |
| What is the data retention period? | Not documented in these sources; ask before assuming a figure |
| Where is data processed? | Not documented here; the security section is the place to look |
| Can I get an audio recording of a call? | No — recording is foundation and is not enabled on the live carrier. Transcript and summary exist |
| Can a call be handed to a compliance officer live? | A supervisor can act on the live call; a completed transfer to a person is not available |

## Where the credentials live

Provider credentials are sealed on every save and never echoed back to a screen. Google OAuth is the only sign-in — there is no password login to leak or to leave behind when somebody departs. The database password is not held in configuration at all: the managed database rotates the master credential into a secrets store, and boot reads it from there by ARN.

The application own machine-readable API description is closed and stays closed; the public description that exists is published deliberately, separately, and does not expose the internal surface.

## Questions

### Can I show a regulator what happened on a specific message?

You can show the decision, the rule it was taken under, who approved it if anybody did, and the provider acknowledgement that the send actually happened. For a call you can show the transcript and the summary. What you cannot show is audio, because recording is not enabled on the live carrier.

### Does a refusal get recorded, or only the things that happened?

Refusals are recorded, deliberately, because a refusal is a decision somebody may need to justify. In practice the refusal log is also the most useful operational document in the system: it is a list of the questions your Knowledge cannot yet answer.

### Is Connect compliant with my sector rules?

That is a question about your obligations, not about a product feature, and nothing here can answer it. What this page can tell you is precisely which records exist, which refusals are structural, and which claims — certification among them — are not made anywhere in this documentation.

## Related

- [Security and isolation](https://connectbyjbrh.com/docs/security/)
- [Three independent layers of tenant isolation](https://connectbyjbrh.com/research/three-layers-of-isolation/)
- [What Connect may do](https://connectbyjbrh.com/docs/autonomy/)
- [Files and data in Connect](https://connectbyjbrh.com/docs/files-data/)
- [Professional services enquiries](https://connectbyjbrh.com/docs/use-cases/professional-services/)
- [Prompt injection arrives as ordinary business mail](https://connectbyjbrh.com/research/prompt-injection-in-business-mail/)

## What this page is based on

- docs-source/sources/GENERAL.md §5 — the audit trail
- docs-source/sources/GENERAL.md §9 and §10 — files, formats and security
- docs-source/sources/CHANNELS.md §1 — sending evidence and compliance
- Connect capability registry (docs-source/facts.py) — FORBIDDEN_CLAIMS
