Operations · access

Moving the caregiver desk off a personal inbox

A desk should belong to the work, not to a person's private account. This is the whole switch — what happens in the admin console, what changes in the code, and how recovery is routed so access can never be lost with one person.

Retiring

cltagymnastics@gmail.com

Replacing it with

Caregiver@dbatr.com

Currently sending to cltagymnastics@gmail.com. The Workspace mailbox is not live yet — finish the admin steps, then flip the single switch in step C1.

Admin steps

Done once, in the Google Workspace admin console and the old Gmail account. Nothing here requires a password handoff.

  1. A1

    Create the mailbox or group in Google Workspace

    Admin console → Directory → Groups (preferred) or Users. Create Caregiver@dbatr.com. A group means membership changes instead of password handoffs, and nobody inherits a personal inbox.

  2. A2

    Set who can post and who can read

    Posting: anyone on the internet (families and agencies must be able to write in). Reading and replying: named members only. Turn on conversation history so the record survives a member leaving.

  3. A3

    Add members, not passwords

    Add the caregiver as a member with reply rights. Add the owner account as a second manager so access can never be lost with one person. No shared password exists to leak.

  4. A4

    Require two-step verification on every member

    Admin console → Security → Authentication → 2-step verification: enforce for the group members. Any account that touches family records carries a second factor.

  5. A5

    Forward the old Gmail, then stop it

    In the personal Gmail: Settings → Forwarding → forward to Caregiver@dbatr.com, and add a vacation reply naming the new address. Leave forwarding on for 30 days so nothing in flight is lost, then remove it.

  6. A6

    Move recovery routing off the personal account

    Every service that used the old Gmail as its recovery address gets the Workspace address instead: password recovery, court and agency portals, carrier accounts, cloud backups. Recovery phone stays on a line the owner controls.

  7. A7

    Notify the offices in writing

    Send one short notice to counsel, the court clerk, and each agency: the caregiver contact address has changed, effective today, and the old address should be removed from their file.

  8. A8

    Archive, then revoke

    Export the old inbox (Google Takeout) into the case archive first. Only after the export is verified: revoke the old address from every DBATR grant and remove it from mailing lists.

Code steps

The address lives in exactly one file. Everything that writes to the caregiver desk reads it from there, so the switch is one line.

  1. C1

    Flip the one switch

    Set ACTIVE_CAREGIVER_MAILBOX to the Workspace address. Drafts, transcript runs, packet recipients and team lists all read from it.

    Lands in: src/lib/mailbox-switch.ts

  2. C2

    Team recipient lists follow automatically

    Transcript delivery and evidence-packet suggestions import TEAM_RECIPIENTS instead of hardcoding an address.

    Lands in: src/lib/transcripts.server.ts, src/routes/packet.tsx

  3. C3

    Outgoing drafts follow automatically

    Every draft addressed to the caregiver desk, and every "please copy" line inside a letter body, is generated from the active address.

    Lands in: src/lib/outbox-drafts.server.ts

  4. C4

    Website contact addresses stay on the domain

    Public-facing contact points are already @dbatr.com mailboxes — no personal Gmail appears anywhere a family or agency can see it. New desks get a domain address, never a personal one.

    Lands in: src/lib/mailboxes.ts

  5. C5

    Keep the old address blocked at the database

    The existing revocation rules and the unsubscribe record for the old address stay in place. Retiring the mailbox does not re-open access.

    Lands in: supabase/migrations (access revoked 2026-08-07)

  6. C6

    Verify delivery end to end

    Send one test through the caregiver desk after the flip, confirm it lands in the Workspace mailbox, and confirm the send is logged.

    Lands in: /email-health

Website contact addresses

Every public contact point is a domain mailbox. No personal address appears anywhere a family or an agency can see it.

Recovery routing

See the full switchboard All DBATR mailboxes