Onboarding hôtel
Playbook pas-à-pas pour câbler un nouvel hôtel sur Bell — créer org, inviter staff, connecter Mews, tests, go-live
Durée cible : 2-4 heures de config, 1-2 jours de vérifications. Le playbook ci-dessous est la marche à suivre standard de l'équipe onboarding HOAIY.
Checklist rapide
- Créer l'organization
- Inviter le owner (GM de l'hôtel)
- Remplir les infos hôtel (nom, adresse, devise, fuseau)
- Remplir le champ
aiContextpour le concierge IA - Configurer l'intégration PMS (Mews en priorité)
- Tester la connexion + full sync initial
- Configurer les webhooks Mews côté Mews (manuel dans leur dashboard)
- Inviter les staff (réception + managers)
- Uploader le menu (catégories + items)
- Configurer le branding (logo, couleurs primaires si custom)
- Tester le flow check-in avec un vrai guest de test
- Premier vrai check-in avec un guest client
Étape 1 — Créer l'organization
Accès : admin HOAIY via bell-staff.hoaiy.com/admin/organizations.
Name : Hôtel Oceania Paris Porte de Versailles
Slug : oceania-paris
Metadata :
address : 52 rue d'Oradour-sur-Glane, 75015 Paris
timezone : Europe/Paris
currency : EUR
locale : fr-FRLa création génère un organizationId UUID. Notez-le, vous en aurez besoin pour les étapes suivantes.
Étape 2 — Inviter le owner
Admin HOAIY clique "Invite owner" → formulaire :
Email : gm@oceania-paris.com
Role : ownerBetter Auth envoie un email d'invitation au GM. Le GM clique le lien, fait son signup, devient automatiquement member avec role owner de l'org.
Étape 3 — Infos hôtel
Le GM (ou admin HOAIY en son nom) complète via bell-staff.hoaiy.com/admin/system/general :
| Champ | Exemple | Obligatoire |
|---|---|---|
| Nom | Hôtel Oceania Paris | ✓ |
| Adresse complète | 52 rue d'Oradour-sur-Glane, 75015 Paris | ✓ |
| Téléphone réception | +33 1 44 25 75 75 | ✓ |
| Email général | contact@oceania-paris.com | ✓ |
| Site web | https://oceania-paris.com | — |
| Logo | upload PNG transparent carré | — |
| Fuseau | Europe/Paris | ✓ |
| Devise par défaut | EUR | ✓ |
| Localisation par défaut | fr-FR | ✓ |
Étape 4 — Contexte IA
Étape critique pour que le concierge IA soit bon. Dans /admin/system/ai :
AI Context (markdown accepté) :
# Hôtel Oceania Paris Porte de Versailles
## Horaires
- Réception : 24h/24
- Petit-déjeuner : 6h30 - 10h30 (buffet) / 10h30 - 12h en chambre
- Bar : 17h - 2h
- Restaurant : 19h - 22h30
- Spa : 10h - 21h (sur réservation)
- Room service : 24h/24
## Pratique
- WiFi : "Oceania-Guest", password "Welcome2026"
- Piscine : non
- Parking : 24 €/nuit, sous-sol 2 accessible par badge
- Animaux : acceptés (20 €/nuit), pas dans les zones de restauration
- Fumeurs : toutes chambres non-fumeurs, terrasses autorisées
## Spécialités
- Chef Pierre Lacombe étoilé depuis 2022
- Menu dégustation 7 plats : 145 €
- Carte des vins 200 références
- Cuisine méditerranéenne revisitée
## À ne JAMAIS faire
- Ne propose jamais de remboursement, de geste commercial, de voucher
- Ne prends jamais d'engagement sur les disponibilités sans confirmer via tools
- Si le guest se plaint (chambre, service, bruit), ESCALADE vers le staffC'est le GM qui le maintient à jour. Le contenu est injecté dans le system prompt à chaque conversation (voir AI architecture).
Étape 5 — Intégration Mews
Pré-requis côté Mews
Le GM (ou admin HOAIY) doit obtenir auprès de Mews :
- Client Token : identifie l'app Bell
- Access Token : identifie la propriété (l'hôtel)
- Platform URL :
https://api.mews-demo.com(sandbox) ouhttps://api.mews.com(prod)
Pour un hôtel nouveau sur Mews : Mews doit créer l'intégration "Bell by HOAIY" dans son dashboard. Demande à faire par email à integrations@mews.com avec :
- Nom de l'hôtel client
- Nos deux tokens (que Mews connaît)
- Capabilities nécessaires (toutes : rooms, guests, reservations, orders, webhooks)
Délai habituel : 3-5 jours ouvrés pour que Mews active l'accès Connector complet (sinon on n'a que les Integration Webhooks, insuffisant).
Config dans Bell
Dans /admin/system/integrations :
Provider : Mews
Name : Mews - Oceania Paris
Client Token : ****** (collé, chiffré en DB)
Access Token : ****** (collé, chiffré en DB)
Platform URL : https://api.mews-demo.comClic "Test connection" → Bell appelle configuration/get → retourne le nom de la propriété. Si le nom correspond, valider.
Full sync initial
Clic "Run full sync". Ça enqueue un job BullMQ qui :
getRooms()→ upsert toutes les chambresgetReservations({ states: ["confirmed", "checked_in"] })→ sur 60 jours- Batch
getGuests(ids)par chunks de 1000 → upsert tous les guests mentionnés
Durée : 30 secondes à 5 minutes selon la taille de l'hôtel. Logs visibles dans /admin/system/integrations/<id>/logs.
Webhooks Mews
À configurer manuellement côté Mews (leur dashboard), pas automatisé :
Endpoint : https://bell-api.hoaiy.com/webhooks/mews
Events à activer :
ReservationCreatedReservationUpdatedReservationStateChangedCustomerUpdatedResourceUpdated(room status)ServiceOrderUpdated
Secret : généré par Bell à la config (affiché une seule fois, visible ensuite masqué dans /admin/system/integrations). Le GM colle ce secret dans Mews.
Test : créer une réservation dans Mews sandbox → vérifier le log d'ingestion Bell dans les 10 secondes.
Hôtel sans PMS
Skipper cette étape. Bell fonctionne, les guests sont créés manuellement dans le cardex.
Étape 6 — Inviter les staff
Dans /admin/users :
Emails : reception1@oceania-paris.com, reception2@oceania-paris.com
Role : staff
Send : invitation emailsOu via CSV bulk import (à implémenter MVP+).
Le GM (en role owner) peut aussi déléguer à un manager (head of reception) qui a le droit d'inviter des staff.
Étape 7 — Uploader le menu
Dans /admin/menu-manager :
Create category "Petit-déjeuner" (type: breakfast)
- Add item : "Petit-déjeuner continental" - 28 € - "Café ou thé, viennoiseries, pain, beurre, confiture, jus d'orange"
- Add item : "Œufs brouillés au saumon" - 18 €
...
Create category "Room Service" (type: room_service)
- Add item : "Club sandwich poulet" - 24 €
- Add item : "Burger maison" - 28 €
...
Create category "Soins Spa" (type: spa)
- Add item : "Massage signature 55 min" - 150 € - duration: 55
- Add item : "Massage 80 min" - 210 € - duration: 80
...Option : CSV import pour les gros menus (20+ items). Template dispo dans /admin/menu-manager/import.
Les items peuvent être is_featured: true → apparaissent mis en avant dans la PWA home guest.
Étape 8 — Branding (optionnel)
Dans /admin/system/branding :
- Logo (PNG transparent, 512×512 recommandé) → inlined dans les emails et affiché dans la PWA
- Couleur primaire (hex) → si custom, override le orange Bell par défaut dans la PWA de cet hôtel
- Domaine custom (ex:
bell.oceania-paris.comau lieu debell-app.hoaiy.com) — MVP+ (CNAME + cert Let's Encrypt via Traefik auto)
Par défaut les hôtels utilisent le branding Bell (logo HOAIY + orange). Option premium pour la gamme Enterprise.
Étape 9 — Test du flow check-in
Guest de test
- Créer manuellement un guest dans
/dashboard/cardex:First name : Test Last name : HOAIY Email : test-onboarding@hoaiy.com Phone : +33 6 00 00 00 00 - Cliquer "Envoyer check-in email"
- Ouvrir l'email (Gmail
test-onboarding@hoaiy.com) - Cliquer le lien → PWA ouvre sur
/auth/fast-check-in?email=... - Compléter le formulaire → créer un password
- Remplir upsells (tester avec un cocktail par exemple)
- Payer avec carte test Stripe
4242 4242 4242 4242 - Arrive sur
/auth/waitingavec "À très vite" - Dashboard staff : cliquer "Confirmer arrivée"
- PWA auto-déblocked via SSE
Vérifications
- DB :
guest.check_in_status = "arrived",room.status = "occupied" - Mews : réservation marquée "checked_in" (bridge PMS)
- Mews : order créée pour le cocktail (bridge post-charges)
- PWA guest : arrive sur la home, peut ouvrir le chat, commander room service
- Dashboard staff : voir la commande en temps réel
Étape 10 — Premier vrai check-in
Coordonner avec le GM :
- Un guest qui arrive demain (on veut tester en conditions réelles, pas sous stress)
- Staff briefé : attendre le click "Confirmer arrivée" côté dashboard quand le guest se présente à la réception
- HOAIY disponible en support pendant les 24h suivantes pour dépanner
Ce qu'on surveille pendant la première semaine
Via Signoz dashboards :
- Error rate > baseline ? → bug potentiel spécifique à cet hôtel
- Latence p95 sync Mews ? → il se peut que cet hôtel ait beaucoup de données (grand hôtel)
- Queues BullMQ qui backup ? → scale workers ou investiguer
Runbook si ça casse
Email check-in ne part pas
- Vérifier
/admin/system/integrations/<id>/logs— des erreurs Reacher ? - Vérifier queue
emaildans Bull Board (bell-api.hoaiy.com/admin/queues) - Si DLQ : consulter le job failed, voir l'erreur exacte
- Vérifier quota Gmail Workspace (seuil 500/jour)
Mews sync fail
/admin/system/integrations/<id>/logs— dernière erreur- Si
401/403: credentials Mews expirés → renouveler - Si
429: rate limit, Mews rate-limite à ~60 req/min → réduire concurrency worker - Si
5xx: Mews down (status.mews.com)
Webhooks Mews pas reçus
- Vérifier côté Mews dashboard : l'endpoint est bien
https://bell-api.hoaiy.com/webhooks/mews - Vérifier le secret : côté Mews === côté Bell (chiffré en DB mais visible une fois à la config)
- Trigger un event manuel dans Mews (ex: update une résa) → voir logs Bell ingestion
- Si aucun log : DNS ou Traefik bloque ? Utiliser ngrok en dev pour tester
Bridge PMS échoue
- Bull Board → queue
pms-bridge→ jobs failed - Retry manuel
- Si ça persiste : logs Signoz → span
job.check-in→ voir l'erreur exacte Mews - Si Mews retourne "reservation not found" : la réservation a peut-être été annulée côté Mews entre le sync et le bridge
Durée totale onboarding
| Étape | Temps |
|---|---|
| 1-4 admin HOAIY | 30 min |
| 5 Mews (si prêt côté Mews) | 30 min |
| 5 Mews (si nouveau) | +3-5 jours wait |
| 6 invite staff | 10 min |
| 7 upload menu | 1-2h (selon taille) |
| 8 branding | 15 min |
| 9 test check-in | 30 min |
| 10 go-live | +1 jour |
Total standard : 3-4 heures actives, 1-2 jours d'attente si Mews est à activer.
Documents remis au client
À l'issue de l'onboarding, HOAIY envoie au GM :
- DPA (Data Processing Agreement) signé
- Guide rapide staff (PDF, 2 pages) : comment utiliser le cardex, les chats, les actions quotidiennes
- Accès au
/docsinterne (bell-docs.hoaiy.comavec compte staff) - Contact support :
support@hoaiy.com, Slack dédié si plan Enterprise