Skip to main content

Checklist

1

Key and settings

  • A Minimo API key with widgets, events and transactional (and domains for the domain popup), only on your server. See API keys and permissions. - PUT /public/v1/widgets/settings with the origins of your production app (and of staging, if it embeds the widgets too) and your master templates.
2

Templates

  • Confirmation, reminder and cancellation as utility templates; review request, offers and newsletters as marketing. - Merge fields named the same in every template and in your events (GUEST_NAME, BOOKING_DATE, BOOKING_TIME, PARTY_SIZE…). - You know each template’s numeric id (settings) and uid (sends).
3

Sending domains

  • Your own domain verified once, so restaurants without a domain send from a subdomain of yours (senders). - Restaurants with their own domain connect it in the domain popup. - replyTo set to the restaurant’s mailbox, so guests’ replies reach the restaurant.
4

Automatic messages

  • Rules for every tenant: confirmation (immediately), reminder (before booking_at), review request (after). - Your backend sends booking.created, booking.updated, booking.cancelled with the same cancellationKey per booking, a unique idempotencyKey per event, and every date with its UTC offset.
5

Consent

  • Decide with Minimo: consent per workspace (default) or per restaurant, before the first real restaurant. See consent. - Send marketingConsent (and its evidence) with the booking event when the guest ticks the box.
6

Brand and identity

  • A tenant profile for each restaurant: name, logo, legal name, address, privacy link. The unsubscribe pages and the email footer use it. - Decide which brand fields the restaurant may change (Brand widget) and which you lock.
7

Widgets in your app

  • A session minted every time the page opens, with only the permissions the page needs; locale from the restaurant’s language. - poweredBy: false if you want no Minimo name on the widget pages.
8

A full test with a test restaurant

  • Use a test tenant and test inboxes only (for example a disposable inbox service), never real guests. - Send a booking.created: the confirmation arrives from the right sender, in the restaurant’s brand, without any Minimo badge. - Send a booking.cancelled: the reminder is cancelled (GET /public/v1/scheduled-sends?cancellationKey=…).
  • Open the unsubscribe link: the page names the restaurant. - Check the history and statistics widgets for the test restaurant.
9

Tell your restaurants

  • Their first 3 campaigns are reviewed by Minimo, and new restaurants have a daily limit for promotional emails (protections). - Only guests who agreed can receive promotions; booking emails always go out.

FAQ

No. They work inside your app through the widgets. Only your SaaS has a Minimo workspace.
No. Every widget session is pinned to one tenant: templates, contacts, sends and statistics of other tenants answer 404. A guest known to two restaurants is shown to each one by email only and never modified by the other.
Never. The widget pages show a small “Email by Minimo” line, which you remove with poweredBy: false. Meta’s WhatsApp setup window shows Minimo as the technology provider: Meta does not allow changing it.
From a subdomain of your verified domain, for example bookings@trattoriadamario.yoursaas.example, with the restaurant’s name as sender and its own mailbox as Reply-To. No DNS work for the restaurant.
The second one is recognised by its idempotencyKey and answers "status": "duplicate": nothing is sent or scheduled twice. Even without it, one rule never schedules twice for the same cancellationKey.
booking.updated with the new date moves the pending reminder; booking.cancelled cancels everything still pending. Both with the same cancellationKey as the booking.
Yes. Send the master template with tenant, now or with sendAt to schedule it. The restaurant’s personalized copy and brand are applied either way.
Your page gets automation.toggled from the widget, and GET /public/v1/tenants/{tenant}/automations returns the effective rules. A send of a rule that is off is recorded as skipped / disabled_by_tenant.
Every send carries its tenant. Count them with GET /public/v1/messages/list?tenant=…, or read totals with GET /public/v1/tenants/{tenant}/stats. The usage counts on your workspace.
English and Italian for the widgets, the editor and the unsubscribe pages (the locale you pass). The emails are in the language you write them in.
Restaurants can connect their own number with the WhatsApp widget once Minimo enables it for your workspace. Sending from that number is the next step, see What is coming.