# Mail, letters and support

> How Hey Albert writes when it lands in the inbox — senders and domains, template structure, subject lines, confirmation and unsubscribing, letters on the family’s behalf and replies in support.

Source: https://brand.heyalbert.family/en/mail/ · Hey Albert brand and design system

An email is often the first thing someone reads from us, even before the app. So every email follows the same rules as every surface: the right register, no exclamation mark, no emoji, one button with one verb.

## Senders and domains

Two domains separate system mail from everything we send by choice. That way sign-in delivery never suffers from a newsletter.

| Type | Sender | Domain | Reply to |
|---|---|---|---|
| System mail: sign-in, confirmation, invitation, password, address change | `Hey Albert <albert@mail.hey-albert.app>` | `mail.hey-albert.app` | — |
| List, newsletter, survey | `Hey Albert <albert@hello.hey-albert.app>` | `hello.hey-albert.app` | `contact@hey-albert.app` |
| Internal notices to the team | `Hey Albert Liste <albert@mail.hey-albert.app>` | `mail.hey-albert.app` | — |

- Sending runs through Resend, EU region. System mail goes through Supabase’s SMTP to Resend.
- SPF, DKIM and DMARC are set, DMARC with `p=quarantine`.
- `contact@hey-albert.app` is a real mailbox at Google Workspace. A person answers there.
- The sender name is always „Hey Albert“. Never a first name, never „noreply“.

## Structure of an email

Every email has the same five parts. The copy lives per language in the template and can be changed in HQ under Texts, without code.

| Part | What | Limit |
|---|---|---|
| **Subject** | the content in one sentence, then „— Hey Albert“ | about 50 characters |
| **Title** | large, in Bricolage, one sentence | one sentence |
| **Sentence** | what applies now and what comes next | two to three sentences |
| **Button** | one verb, the outcome | one line |
| **Small print** | why this email came, how to unsubscribe | two sentences |

The logo in a circle sits on top; company, imprint and the unsubscribe link at the bottom.

> **Example**
>
> **Subject:** Please confirm your address — Hey Albert
> 
> **Title:** One more tap and you are in.
> 
> **Sentence:** Confirm your address and you are on the list for the test phase. We will be in touch as soon as it starts — with news and your invitation.
> 
> **Button:** Confirm address
> 
> **Small print:** If this was not you, do nothing. The link is valid for three days.

## Address

- **List, newsletter, survey:** German uses *ihr*, the plural. Behind an address on the list there is usually a household. English uses *you* for the family.
- **System mail:** German uses *du*. One person asks for the link to their own account: „Hier ist dein Link.“
- **Never** the formal *Sie*, never „Dear user“.

## Subject lines

The subject says what is inside. It does not bait.

| Email | Subject (English version) |
|---|---|
| Confirmation | Please confirm your address — Hey Albert |
| Welcome | You are on the list — Hey Albert |
| Welcome back | Great to have you back — Hey Albert |
| Unsubscribed | You are off the list — Hey Albert |
| Survey | Five minutes for Albert — what would matter to you? |
| Reminder | A quick reminder: five minutes for Albert |

> **Don't**
>
> „Today only!“ · „You missed something“ · „Re:“ without an earlier email · capitals · an emoji at the start of the subject

## Confirmation and unsubscribing

- **Double opt-in.** Whoever signs up gets an email with a link. Only after the click is the address on the list. The link is valid for three days.
- **Record.** Every consent is logged with time, version and origin.
- **One-click unsubscribe.** Every list email carries the `List-Unsubscribe` header with one-click and a visible link at the bottom.
- **One confirmation, then quiet.** After unsubscribing comes exactly one email confirming it. Nothing after that.
- **Cadence.** The newsletter comes about once a month. Survey reminders stop once someone says „no“.
- **Measuring.** Delivery, opens and clicks come through the Resend webhook. Our own per-contact counting only after consent.

## Languages

List emails exist in all eleven website languages. The language follows the page someone signed up on. System mail is German today.

> **Open**
>
> The five system mail templates in `supabase/templates/` still name the old domain „heyalbert.de“ in the footer instead of `hey-albert.app`. They carry colour values inline, because email clients do not know CSS variables. These values should be generated from the tokens instead of being written by hand. English system mails are missing.

## Letters on the family’s behalf

Albert drafts replies to school, club, insurer, tradespeople and authorities. That is the letter-writer register (*Briefeschreiber*), and it is not Albert’s voice but the family’s.

- A letter to the insurer sounds like Tobias, not like software.
- Factual, polite, brief. No ingratiating, no threats.
- Albert takes salutation, form and tone from what the family wrote before. Whoever addresses the school formally keeps doing so.
- Sentences average twelve words, at most 18.
- Every draft is visibly marked as a draft. An adult reads it, edits it and sends it — every time.
- The letter itself carries no hint of Albert. The sender is the family.

> **Draft to Grundschule am Park**
>
> Dear Ms Weber,
> 
> thank you for the letter about the class trip. Lena is coming along. The signature is enclosed, and she will hand in the €8.00 on Friday.
> 
> Kind regards
> Anna Sonntag

## Support

In support a person writes, not Albert.

- If something went wrong: apologise once, then say what we are doing.
- No canned text, no ticket number in the first sentence.
- Reply in the language of the request, in the form the request used.
- Errors and empty states say three things: what belongs here, why it is empty or went wrong, what you can do. No „error“, no „oops“.

> **Do**
>
> „The confirmation email did not reach you. That was on us. We have just sent it again; the link is valid for three days.“

> **Don't**
>
> „Thank you for your enquiry. Your ticket #4711 has been created. We appreciate your patience.“
