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

# Booking portal settings reference

> Every setting under Settings > Portal on one page — exact label in English and French, what it does, where the customer sees it, default value.

Every setting under **Settings > Portal**, tab by tab. Labels are written exactly as they appear in the app, in English and in French, so you can find a setting whichever language your team uses. For explanations and examples, follow the link at the top of each section.

"Guest side" says where a customer sees the effect. **Staff only** means the setting only changes the back office.

## General — sharing

Details: [Share and embed](/portal/share-and-embed).

| Setting (EN) | Label (FR) | What it does | Guest side | Default |
| - | - | - | - | - |
| **Main link** | **Lien principal** | Your portal address, `book.eat-now.io/` + your restaurant's slug. | Wherever you share it. | — |
| **Links for social networks** | **Liens pour réseaux sociaux** | Six copies of the main link with `?s=fb`, `ig`, `wa`, `tt`, `ta`, `sc`: the reservation's source is set to that network. | The link itself. The source shows on the reservation. | Without a tag, source = Website. |
| **Widget** | **Widget** | Code to embed the portal in a page of your website (iframe). | Inside your website. | — |
| **Source tracking for the widget** | **Suivi des sources pour le widget** | Script to add to every page of your site so the iframe knows where the visitor came from. | — | — |
| **Floating widget** | **Widget flottant** | Code for a "Book a table" button that opens the portal in a panel over your site. | Corner of every page of your site. | — |
| **Position** | **Position** | Corner of the floating button (only changes the generated code). | Floating button. | Bottom right |
| **Button label** | **Libellé du bouton** | Text of the floating button (only changes the generated code). | Floating button. | "Book a table", translated |
| **Download QR Code** | **Télécharger le QR code** | PNG of the main link. | Your printed materials. | — |

## General — booking rules

Details: [Booking rules](/portal/booking-rules).

| Setting (EN) | Label (FR) | What it does | Guest side | Default |
| - | - | - | - | - |
| **Mandatory email** | **Email obligatoire** | The guest cannot book online without an email. Also applies to AI agent bookings. | Contact step. | On |
| **Mandatory email internally** | **Email obligatoire en interne** | Staff cannot save a **new** customer without an email. | Staff only | Off |
| **Mandatory phone number** | **Téléphone obligatoire** | The guest cannot book online without a phone number. | Contact step. | Off |
| **Mandatory phone number internally** | **Téléphone obligatoire en interne** | Staff cannot save a **new** customer without a phone number. | Staff only | Off |
| **Automatic customer matching** | **Matching automatique des clients** | Links a booking to an existing customer record: phone first, then email. | — | On |
| **Allow anonymous customer** | **Autoriser les clients anonymes** | Enables the **Walk-in** tab (reservation without a customer record) in the staff form. | Staff only | On |
| **Allow reservation deletion internally** | **Autoriser la suppression de réservation en interne** | Shows the permanent **delete** action to staff. Has nothing to do with cancellation by the guest. | Staff only | On |
| **Show total paid** | **Montrer le total payé par réservation** | "Total paid" box on existing reservations in the staff form. | Staff only — never on the portal | Off |
| **Allow reservation modification** | **Autoriser la modification de réservation** | Guests can change their own reservation from the portal. | "Update my reservation" button. | On |
| **Maximum modification threshold in hours** | **Seuil maximum de modification en heures** | Minimum notice before the reservation time to modify. `0` = up to the reservation time. | Button disappears after the deadline. | 1 |
| **Limit modification to group size** | **Limiter la modification à une taille de groupe** | Turns on the group-size limit below. | — | Off |
| **Maximum group size for modification** | **Taille de groupe maximum pour la modification** | Reservations above this size cannot be modified by the guest, and no modification can bring a reservation above it. | "Modification impossible"; the party-size choice stops at this number. | 1 when switched on |
| **Cancellation reasons** | **Raisons d'annulation** | Reasons offered when the guest cancels, in 6 languages. "Other reason" is always added. | Cancellation dialog. | 14 standard reasons |

## General — messages to customers

Details: [Messages shown to guests](/portal/guest-messages).

| Setting (EN) | Label (FR) | What it does | Guest side | Default |
| - | - | - | - | - |
| **Custom message** (section *Custom message on your portal*) | **Message personnalisé** (section *Message personnalisé sur votre portail*) | A banner, one per restaurant, no dates, 6 languages. Supports bold, italic, strikethrough. | "Information" box above the booking form, at every step and on the modification page. | Empty = no banner |
| **Background color** / **Text color** | **Couleur de fond** / **Couleur du texte** | Banner colours: Warning, Information, Success, Error or Custom. Also used by the activities portal header message. | Banner. | Warning |
| **Number of group size buttons** | **Nombre de boutons de sélection** | How many party-size buttons appear before the "N+" button. | Party-size step. | 15 (1 to 50) |
| **Custom message** (section *Custom message when maximum covers reached*) | **Message personnalisé** (section *Message pour le maximum de couverts*) | Text shown when the party is larger than your services accept. The guest cannot continue. | Red box under the party-size buttons. | Empty = standard text with your contact email |

Related messages set elsewhere: **Shift description** (in the shift form), **Message to clients** of a block, **Custom message** of a discount — all on [Messages shown to guests](/portal/guest-messages).

## Design

Details: [Design](/portal/design).

| Setting (EN) | Label (FR) | What it does | Guest side | Default |
| - | - | - | - | - |
| **Logo** | **Logo** | Image at the top of the portal. 1 MB max. | Header of the booking, activities and privatization portals; link previews. | EatNow logo |
| **Logo size** | **Taille du logo** | Logo width in pixels. | Header. | 68 (20 to 260) |
| **Show restaurant name** | **Afficher le nom du restaurant** | Shows your restaurant's name in the header. | Header. | On |
| **Primary color** | **Couleur principale** | Buttons, selected slot, accents. Also the colour of the floating widget button and of email buttons. | Everywhere. | #EB5E0B |
| **Page background** | **Fond de page** | Colour around the booking card. | Every portal page. | #F3F4F6 |
| **Header text** | **Texte de l'en-tête** | Colour of the restaurant name and header links. | Header. | #111827 |
| **Card background** | **Fond de la carte** | Colour of the booking card. | Booking flow. | #FFFFFF |
| **Card text** | **Texte de la carte** | Colour of text in the booking card. | Booking flow. | #374151 |
| **Background image** | **Image de fond** | Image laid over the page background. PNG, JPEG, GIF, SVG or WebP, 2 MB max. | Around the booking card. | None |
| **Image layout** | **Disposition de l'image** | Repeated, cover, contain or actual size. | Page background. | Repeated |
| **Pattern size** | **Taille du motif** | Tile width when the image is repeated. | Page background. | 200 px (20 to 1200) |
| **Image strength** | **Intensité de l'image** | Fades the image towards the page background colour. | Page background. | 100 % |

Colours must be hex codes (`#RRGGBB` or `#RGB`). Other colours (borders, hover, disabled text…) are calculated from these. The app warns you when a pair of colours is hard to read, but that warning never blocks saving. **Remove logo** removes the logo on its own.

## Links

Details: [Header links](/portal/header-links).

| Link (EN) | Label (FR) | Shown to the guest when… | Default |
| - | - | - | - |
| **Website** | **Site web** | Your website address is filled in. Hidden when the portal is embedded on your site. | On |
| **Phone** | **Téléphone** | A contact phone number is filled in. | On |
| **Instagram** | **Instagram** | Your Instagram address is filled in. | On |
| **Menus** | **Menus** | At least one menu is visible. | On |
| **Contact** | **Contact** | Always — opens a card with your address, email, phones. | On |
| **Privatization** | **Privatisation** | The privatization form is active. | On |
| **Activities** | **Activités** | The activities portal is active. | On |
| Custom link (**Add link**: **Label**, **URL**) | Lien personnalisé (**Ajouter un lien** : **Libellé**, **URL**) | Active and a valid web address, `mailto:` or `tel:` link is set (`https://` is added if missing). A web page opens in a new tab. | Active when added |

Each link has a switch to show or hide it; drag to reorder. Switch every link off and the header shows none. Built-in links cannot be renamed. The activities portal header ignores this tab.

## Custom fields

Details: [Custom fields](/portal/custom-fields).

| Setting (EN) | Label (FR) | What it does | Default |
| - | - | - | - |
| **Is active?** | **Actif ?** | Shows or hides the question on the portal. | On |
| **Field type** | **Type de champ** | Text, Number, Date, Yes / No field, Single choice, Multiple choice. | Text |
| **Required field?** | **Champ obligatoire ?** | The guest cannot book without answering. A Yes / No field is always answered (left off = No). | Off |
| **Field name** | **Nom du champ** | The question, in up to 6 languages (French or English required). | — |
| **Placeholder** | **Placeholder** | Grey hint in the empty field (shown on Text fields). | Empty |
| **Help text** | **Aide textuel** | Explanation under the field. | Empty |
| **Set a minimum/maximum value** | **Définir une valeur minimale/maximale** | Bounds for a Number field. | Off |
| **Limit the number of choices** | **Limiter le nombre de choix** | Maximum options a guest can pick in a Multiple choice field. | Off |
| **Apply only to specific shifts** | **Applicable à certains services seulement** | Asks the question only for the chosen shifts. | Off |
| **Show based on a minimum/maximum group size** | **Afficher selon une taille de groupe minimum/maximum** | Asks the question only for certain party sizes. | Off |

Guests answer on the contact step; staff see the answers in the reservation's **Metadata** tab, on printed tickets and in exports. Not to be confused with **Settings > Customers > Customer fields**, which are stored on the customer and never shown on the portal.

## Activities

Details: [Activities portal](/portal/activities). Only with the Activities feature.

| Setting (EN) | Label (FR) | What it does | Guest side | Default |
| - | - | - | - | - |
| **Activate activity portal** | **Activer le portail d'activités** | Turns the activities portal on. | Booking is refused while off. | Off |
| **Header message** | **Message d'en-tête** | Information banner, 6 languages. Colours come from the General tab's custom message. | Top of the activities pages. | Empty |
| **Mandatory email** / **Mandatory phone number** | **Email obligatoire** / **Téléphone obligatoire** | Required contact details on the activities portal. | Contact step. | On / On |
| **Show filters** | **Afficher les filtres** | Category filters on the activities list. | Activities list. | Off |
| **Show the activities card** | **Afficher la carte activités** | Card promoting your activities on the **restaurant** booking portal. | Booking form and/or confirmation. | Off |
| **Card image**, **Card title**, **Card subtitle** | **Image de la carte**, **Titre de la carte**, **Sous-titre de la carte** | Content of that card. | Card. | First product's photo; "Discover our activities too" |
| **Placement** | **Emplacement** | Booking form, confirmation, or both. | — | Both |
| **Position in the form** | **Position dans le formulaire** | Top or bottom of the booking form. | — | Bottom |
| **Payment request expiry** | **Expiration de la demande de paiement** | Unpaid bookings are cancelled after this delay. | — | No expiry |
| **Resource Groups** | **Groupes de ressources** | Capacity shared between products. See [Resource groups](/activities/resource-groups). | Availability. | — |

Per-product rules (days, times, capacity, payment, extras) are also set on this tab: see [Activities](/activities/setup).

## Privatization

Details: [Privatization](/portal/privatization).

| Setting (EN) | Label (FR) | What it does | Default |
| - | - | - | - |
| **Activate privatization portal** | **Activer le portail de privatisation** | Accepts privatization requests at `book.eat-now.io/privatization/your-restaurant`. | Off |
| **Privatization portal link** | **Lien du portail de privatisation** | The form's address, to copy. | — |
| **Notification emails** | **Emails de notification** | Who receives an email for each request. | None |
| **Header message** | **Message d'en-tête** | Information box at the top of the form, 6 languages. | Empty |
| **Additional fields** | **Champs supplémentaires** | Your own questions (same types as custom fields), with **Field size** and **Required field?**. | None |

## Blacklist

Details: [Blacklist](/portal/blacklist).

| Action (EN) | Label (FR) | What it does |
| - | - | - |
| **Blacklist Customer** | **Bloquer un client** | The customer can no longer book online (portal, activities, Google, partner API). They see "Your reservation could not be recorded. Please contact the restaurant directly." and are never told why. They are also excluded from marketing. Staff can still create reservations for them — the reservation form and the customer profile show a **Blacklisted customer** warning, and the WhatsApp conversation says the AI agent does not reply to them. |
| **Remove this customer from blacklist** | **Débloquer ce client** | Lifts the block immediately. |
