---
title: "An address per customer"
description: "Give every ticket, record or customer its own address, with nothing to create."
url: "https://openemail.uk/features/per-customer-addresses"
---

Built on top

# An address per customer reply by email

Give every ticket, record or customer its own address, with nothing to create.

[Open mail](https://openemail.uk/mail/inbox) [Get Started](https://openemail.uk/signup.md)[Every walkthrough](https://openemail.uk/features/in-practice.md)

ticket-8123@in.yourapp.com

Your app

Ticket 8123 ticket-8123@ in.yourapp.com

Ticket 8124 ticket-8124@ in.yourapp.com

Ticket 8125 ticket-8125@ in.yourapp.com

To ticket-8123@ in.yourapp.com

My parcel never arrived.

From ticket-8123@ in.yourapp.com Same address

It is on the way. Tracking below.

Nobody created these addresses. The reply leaves as the one the mail arrived at.

How it works

## Running in three steps.

1. 01
   
   Mint it in code
   
   ticket-8123@in.yourapp.com works the moment somebody writes to it.
2. 02
   
   Take the event
   
   It names the address the message was delivered to.
3. 03
   
   Answer as that address
   
   Send from it, into the same thread, from your own code.

What it runs on

## The parts doing the work.

Nothing here is a separate product. Each one is a piece of the mailbox you already have.

Catch-all addresses

Every address on the domain receives, including ones that have never been created. One switch closes it.

hello@ yourdomain.com delivered

billing@ yourdomain.com delivered

careers@ yourdomain.com delivered

anything-at-all@ yourdomain.com delivered

oct-2026-signup@ yourdomain.com delivered

Webhooks

Tell your endpoint when mail arrives, instead of making you poll.

/threads?query=invoice

{ "threads": 12 }

Same mailbox, whether a person or a program is holding it.

REST API

A documented HTTP API with issuable, scopable, revocable keys.

/threads?query=invoice

{ "threads": 12 }

Same mailbox, whether a person or a program is holding it.

Rules you write yourself

Your own conditions, and what should happen to anything that matches them.

deals@spammy.io blocked sender

anyone@spammy.io blocked domain

hr@recruit.co language filter

ci@acme.dev your rule → archive

Send as any alias

Reply from the exact address the mail arrived on.

to billing@acme.com

from billing@acme.com

Typed SDKs

A TypeScript client first, then the rest.

/threads?query=invoice

{ "threads": 12 }

Same mailbox, whether a person or a program is holding it.

Multiple domains

Point several domains at one inbox, subdomains included.

acme.com acme.dev team.acme.com hey.acme.io

Nearby

## Other jobs for the same inbox.

Email into your app

Mail arriving at your domain reaches your server as a signed webhook, seconds later.

billing@in.yourapp.com Arrived

POST hooks.acme.dev/mail 200

type email.received

to billing@in.yourapp.com

Test your signup mail

Soon

Give each test run its own address and read the mail it receives.

signup-02 @acme.com

Confirm your email 730915

signup-01 @acme.com 418204

signup-02 @acme.com 730915

Rules for arriving mail

Say what happens to a message before anybody opens it.

billing@northwind.co

Invoice 2214 for August Invoices Archive

1 Subject has invoice 24 +1

2 From domain is pinefield.dev 61 +1

[Every walkthrough](https://openemail.uk/features/in-practice.md)
