Des points justes de la part de @colemaffeo6 concernant le fuseau horaire de la propriété par rapport à la localisation du client — les e-mails de pré-arrivée doivent être envoyés en fonction de l’heure d’arrivée réelle du client à l’heure locale de votre hôtel !
En complément de la configuration de @NAJA, il y a deux cas limites critiques du monde réel dans l’automatisation hôtelière qui sont généralement oubliés jusqu’au jour du lancement :
### 1. Annulations et modifications de réservations
Si un client reprogramme ou annule sa réservation via votre PMS/OTA, une simple approche « ajouter à Google Sheet » laissera la date d’enregistrement d’origine dans votre système. Résultat : un client annulé reçoit un e-mail de pré-arrivée « Nous sommes ravis de vous voir demain ! ».
* **Solution :** Utilisez une **opération Upsert** basée sur `booking_id` plutôt qu’un simple Ajout. Si vous utilisez Google Sheets, recherchez d’abord par `booking_id`. Si `status === ‘CANCELLED’`, signalez la ligne pour que votre déclencheur de programmation quotidienne l’ignore.
### 2. Limites de débit de l’API Google Sheets et conditions de concurrence
Si vous recevez plusieurs webhooks de réservation simultanément ou que vous exécutez un sondage haute fréquence, l’API Google Sheets a des limites de débit strictes (60 écritures/min) et n’a pas de verrous atomiques. Cela peut causer des e-mails en double si `welcome_sent` n’est pas mis à jour instantanément.
* **Solution :** Pour une stabilité de production au-delà de 20-30 chambres, envisagez d’utiliser **n8n Data Tables** ou **Supabase / Postgres** comme cache d’état de réservation au lieu de Sheets. Si vous restez sur Sheets, effectuez une vérification rapide de déduplication `booking_id` dans un nœud Code avant de déclencher le nœud d’envoi.
### 3. Modèles multilingues dynamiques
Les clients parlent différentes langues. Au lieu de coder en dur les modèles en anglais :
* Transmettez `guest_language` depuis le PMS à un **Nœud Switch** (ou un nœud IA pour la génération de modèles) pour servir dynamiquement le bon modèle d’e-mail HTML ou WhatsApp dans leur langue maternelle.
###
Architecture n8n recommandée en 4 étapes :
1. **Ingestion et normalisation :** Webhook / Poller → Nœud Code (normalise le schéma de charge utile en champs unifiés : `booking_id`, `guest_name`, `check_in`, `language`, `status`).
2. **Gestion d’état (Upsert) :** Enregistrer/Mettre à jour l’enregistrement par `booking_id` avec `welcome_sent = false`.
3. **Distributeur programmé (par exemple 10 h heure locale de la propriété) :** Déclencheur de programmation → Filtre (`check_in == demain` ET `status == CONFIRMED` ET `welcome_sent == false`) → Envoyer un e-mail / WhatsApp.
4. **Retours après envoi :** Mettre à jour `welcome_sent = true` + Flux de travail du déclencheur d’erreur pour les alertes instantanées Slack/Telegram en cas d’échec SMTP/API WhatsApp.
Si vous connaissez le PMS / moteur de réservation que vous utilisez (par exemple, Cloudbeds, Mews, Sirvoy, etc.), je peux partager un modèle de flux de travail n8n adapté à son schéma webhook !