Built on top

Rules for arriving mail
written once, run always

Say what happens to a message before anybody opens it.

Rules
billing@northwind.coArrived
Invoice 2214 for AugustInvoicesArchive
1Subject hasinvoiceStop24+1
2From domain ispinefield.dev61+1
3Has an attachment9+1

Rules run as mail arrives. Nothing already in the mailbox moves.

How it works

Running in three steps.

  1. 01

    Write the rule

    Conditions on the arriving message, then the actions to take.

  2. 02

    Try it first

    Run it over the last thirty days without touching a message.

  3. 03

    Turn it on

    It runs on arrival, and the log says what happened.

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.

Rules you write yourself

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

deals@spammy.ioblocked sender
anyone@spammy.ioblocked domain
hr@recruit.colanguage filter
ci@acme.devyour rule → archive
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.
Typed SDKs

TypeScript, Python, Ruby, PHP, Go, Java and C# clients, one method for every operation.

/threads?query=invoice
{ "threads": 12 }
Same mailbox, whether a person or a program is holding it.
Labels

Name a label, pick a colour, and filter the list down to it.

InvoicesRecruitingNewsletters
Templates

A body written once, versioned, and sent many times: from the composer, from your own code, or by an agent.

IntroInvoiceFollow-up
Hi Sarah, good to meet you at
Block a sender or a domain

One address, or everything from a domain, stopped before it reaches you.

deals@spammy.ioblocked sender
anyone@spammy.ioblocked domain
hr@recruit.colanguage filter
ci@acme.devyour rule → archive

Nearby

Other jobs for the same inbox.

Email inside your product

Send, read and organise mail from your own code with a typed client.

awaitnextmail.emails.send({
from:'receipts@acme.com',
})
idmsg_3e91c7
queuedsentdelivered
email.openedemail.clicked
An address per customer

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

Ticket 8123ticket-8123@in.yourapp.com
Ticket 8124ticket-8124@in.yourapp.com
Toticket-8123@in.yourapp.com
Fromticket-8123@in.yourapp.comSame address
Email into your app

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

billing@in.yourapp.comArrived
POSThooks.acme.dev/mail200
typeemail.received
tobilling@in.yourapp.com