> ## Documentation Index
> Fetch the complete documentation index at: https://docs.minimo.it/llms.txt
> Use this file to discover all available pages before exploring further.

# Start here

> Send email for each of your customers from your own app: the 5 steps, and which way to send fits you

Minimo sends email **for your customers**. Your app has many customers (in these pages: restaurants). Each restaurant
has guests. Your backend calls Minimo; Minimo sends each restaurant's emails to its guests, keeps every restaurant's
guests, consent and statistics apart, and can show each restaurant its own email screens inside your app.

```mermaid theme={null}
flowchart TB
  app["Your app<br/>(backend with your API key)"]
  minimo["Minimo<br/>(one workspace for your whole app)"]
  r1["Restaurant A<br/>tenant: restaurant_a"]
  r2["Restaurant B<br/>tenant: restaurant_b"]
  g1["Guests of A"]
  g2["Guests of B"]
  app -- "send, events" --> minimo
  minimo --> r1
  minimo --> r2
  r1 -- "email in A's name" --> g1
  r2 -- "email in B's name" --> g2
```

You have **one** Minimo workspace. Your restaurants never get a Minimo account. On every call you name the restaurant
with the `tenant` field, a string you choose, for example your restaurant id.

> [!WARNING]
>
> A new workspace sends at most **100 emails a day** (UTC), booking confirmations included, until its first credit
> top-up in **Settings → Plan & billing**. Over it, a send answers `402 QUOTA_EXCEEDED`. Top up once before your first
> real restaurant and the daily limit is gone for good.

## The 5 steps

**1. Create an API key**

In [app.minimo.it](https://app.minimo.it/developer/api-keys) open **Developer → API keys**, create a key with the
**Widgets**, **Events** and **Transactional** permissions, and keep it on your server.

**2. Turn on restaurants**

Save your widget settings with `PUT /public/v1/widgets/settings`. Do it **before anything else**, even if you do
not show widgets yet: this one call turns on restaurants for every endpoint. Until it exists, Minimo does not keep
restaurants apart.

**3. Send the first email**

Send one email with `tenant` set to a test restaurant, to a test inbox.

**4. Show the restaurant its screens**

Embed a Minimo widget in your app, so the restaurant sees its emails and its statistics.

**5. Go live**

Verify your sending domain, top up once, and run the checklist with a test restaurant.

The [Quickstart](https://docs.minimo.it/guides/embedded-quickstart.md) does steps 1 to 4 with copy-paste samples; [Go live](https://docs.minimo.it/guides/embedded-go-live.md) is step 5.

## Which way to send?

There are three ways. You can mix them.

| You want | Use | Who writes the email | Who decides when |
| - | - | - | - |
| Send an email your app already writes (your HTML) | `POST /public/v1/emails` | Your app | Your app, now |
| Send a template stored in Minimo, that each restaurant can personalize | `POST /public/v1/transactionals` | You create it once in Minimo; each restaurant can personalize it | Your app, now or at a time (`sendAt`) |
| Tell Minimo what happened and let it send the right emails at the right time | `POST /public/v1/events` + rules | You create it once in Minimo; each restaurant can personalize it | Minimo (for example 2 hours before the booking) |

All three take `tenant`, so every email counts for its restaurant: in the restaurant's history and statistics, and in
`GET /public/v1/messages/list?tenant=…` for your invoices.

* **Your HTML** is the fastest start if your app already has its emails. Use it for service emails (confirmation,
  reminder, cancellation): Minimo does not check marketing consent on it.
* **Templates and events** let each restaurant personalize its emails in the widgets, apply its logo and colors, and
  let Minimo cancel or move a reminder when the booking changes. Marketing emails (offers, newsletters, review
  requests) go out only to guests who agreed to receive them: see [consent](https://docs.minimo.it/guides/embedded-consent.md).
* **Templates with `sendAt`** fit one email at a time you choose; **events and rules** fit a booking with several
  emails that must move or stop together.

## Words used in these pages

**Workspace**: your Minimo account, one for your whole app. **Restaurant**: one of your customers, named by the
`tenant` field. **Guest**: a person a restaurant emails (a contact in the API). More in the
[glossary](https://docs.minimo.it/guides/embedded-glossary.md).

## Next step

[Quickstart: the 5 steps with copy-paste samples](https://docs.minimo.it/guides/embedded-quickstart.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.