Automatiser l'envoi de SMS avec n8n et Twilio : alertes, relances et vérification OTP
Publié le 26 juillet 2026 · 7 min de lecture
Slack, Telegram et l'email couvrent la plupart des cas d'alerte dans un workflow n8n — mais aucun des trois ne garantit une lecture dans les minutes qui suivent. Une revue systématique de référence sur les rappels de rendez-vous, Hasvold & Wootton (2011), Use of telephone and SMS reminders to improve attendance at hospital appointments: a systematic review, publiée dans Journal of Telemedicine and Telecare, mesure sur 29 études une réduction moyenne de 34 % du taux de non-présentation grâce à un simple rappel par SMS ou téléphone — bien au-delà de ce qu'obtient un rappel par email seul. Le SMS n'est pas un gadget marketing : c'est le canal qui atteint quelqu'un qui ne regarde ni Slack ni sa boîte mail à cet instant précis.
n8n propose un node Twilio natif pour envoyer et recevoir des SMS sans écrire de code d'intégration. Ce guide couvre sa configuration et trois cas d'usage concrets : alerte urgente, relance de dossier, et vérification par code.
Pourquoi ajouter le SMS, pas le substituer
Le SMS coûte plus cher au message que Slack ou l'email (quelques centimes par envoi, contre un coût marginal pour les deux autres) et ne se prête pas à un message long ou formaté. Il complète vos canaux existants pour les cas où la latence de lecture compte réellement :
- Un score d'urgence maximal détecté par le workflow de priorisation des emails mérite un canal qui sonne même téléphone verrouillé, pas seulement une notification Slack qui attend que quelqu'un rouvre l'application.
- Une demande d'approbation via boutons Slack reste la bonne solution pour une équipe déjà connectée en continu ; le SMS prend le relais pour un contact externe, un client ou un prestataire qui n'a pas Slack.
Le principe à retenir : n'ajoutez le SMS que là où la vitesse de réaction change réellement l'issue — une alerte critique, une relance à échéance, une vérification d'identité — pas comme canal de notification par défaut.
Configurer le node Twilio dans n8n
Trois éléments à réunir avant de construire le workflow :
- Un compte Twilio avec un numéro acheté (quelques euros par mois) capable d'envoyer des SMS dans le pays de vos destinataires — certains pays exigent un enregistrement d'expéditeur préalable (A2P 10DLC aux États-Unis, par exemple).
- Account SID et Auth Token, visibles sur le tableau de bord Twilio, à renseigner dans un credential n8n dédié — les mêmes principes que ceux détaillés dans notre guide sur la sécurisation des credentials API n8n s'appliquent : jamais en clair dans un node Code, jamais commités dans un export de workflow partagé.
- Des numéros au format E.164 (
+33612345678, indicatif pays inclus, sans espace ni parenthèse) : la cause d'échec la plus fréquente d'un premier envoi Twilio est un numéro mal formaté, silencieusement rejeté par l'API.
Envoyer un SMS simple
Le node Twilio (ressource « SMS », opération « Send ») prend trois paramètres essentiels : le numéro expéditeur (votre numéro Twilio), le numéro destinataire, et le corps du message. Dans un workflow d'alerte type, il s'insère en aval d'un node qui a déjà pris la décision d'alerter — un IF sur un score, un Switch sur une catégorie — exactement comme un node Slack le ferait dans les workflows de nos packs. Le message lui-même se construit avec une expression n8n classique, en interpolant les champs utiles (numéro de dossier, échéance, lien de suivi) dans un texte court : un SMS au-delà de 160 caractères est facturé comme plusieurs segments par Twilio, autant le garder concis par nature.
Recevoir une réponse : le node Twilio Trigger
Pour un usage à double sens — confirmation de rendez-vous, réponse « STOP », code de vérification renvoyé par l'utilisateur — le node Twilio Trigger expose un webhook que vous déclarez dans la console Twilio (section Messaging → configuration du numéro). Chaque SMS entrant déclenche le workflow avec le corps du message et le numéro expéditeur en entrée. Comme pour tout webhook exposé publiquement, les réflexes habituels s'appliquent : valider que la requête provient bien de Twilio (signature X-Twilio-Signature, comparable à l'authentification décrite dans notre guide pour sécuriser un webhook n8n), et traiter l'idempotence si Twilio retente l'envoi du webhook en cas de réponse lente — le même principe que celui détaillé dans notre article sur l'idempotence des webhooks n8n.
Cas concret 1 : alerte SMS pour les urgences réelles
En reprenant le workflow de scoring d'urgence des emails, il suffit d'ajouter une branche : au-delà d'un second seuil, plus élevé que celui qui déclenche déjà l'alerte Slack (un score de 5 sur 5, par exemple, plutôt que 4), un node Twilio envoie un SMS à la personne d'astreinte en plus de la notification Slack. Le score reste calculé une seule fois par le LLM ; c'est uniquement le canal de sortie qui se démultiplie selon la gravité.
Cas concret 2 : relances de dossiers et de paniers par SMS
Notre guide sur les relances automatiques de dossiers incomplets et celui sur la relance des paniers abandonnés reposent tous deux sur un cron qui identifie les dossiers ou paniers en attente et envoie une relance par email. Le SMS s'ajoute naturellement comme second canal pour les relances les plus tardives (J+3, J+7) : un taux d'ouverture d'email qui plafonne autour de 20 % justifie de basculer sur un canal que le destinataire consulte quasi systématiquement dans l'heure. Le node Twilio se branche en parallèle du node d'email existant, sur la même condition de déclenchement.
Cas concret 3 : vérification par code (OTP)
Pour sécuriser une action sensible — validation d'un dossier de conformité comme dans le Pack Conformité & Audit, confirmation d'identité avant un paiement — le pattern OTP tient en quatre étapes :
- Générer un code à 6 chiffres (node Code) et l'enregistrer dans une table Supabase avec le numéro, une date d'expiration (5 minutes) et un statut
pending— voir notre guide de connexion Supabase à n8n pour la structure de table. - Envoyer le code par SMS via le node Twilio, jamais par email pour ce cas d'usage précis : la valeur du OTP tient à l'utilisation d'un second canal, distinct de celui par lequel la demande a été initiée.
- Recevoir la saisie de l'utilisateur (formulaire web ou réponse SMS via Twilio Trigger) et comparer au code stocké, en vérifiant l'expiration.
- Invalider le code après vérification réussie ou après un nombre d'essais limité (3 tentatives), pour éviter une attaque par force brute sur un code à 6 chiffres.
Conformité : consentement et mention STOP
Un numéro de téléphone est une donnée personnelle au même titre qu'une adresse email — les principes détaillés dans notre guide sur le traitement des demandes RGPD s'appliquent intégralement. Pour tout SMS à caractère commercial ou promotionnel, le droit français impose une mention STOP permettant de se désinscrire (article L34-5 du Code des postes et des communications électroniques) — les SMS purement transactionnels (code OTP, confirmation d'un rendez-vous déjà pris) en sont généralement dispensés, mais le consentement préalable à recevoir des SMS reste la meilleure pratique dans tous les cas. Si vous tenez déjà une piste d'audit RGPD dans Supabase, consignez-y l'envoi de chaque SMS (destinataire, date, contenu) au même titre que vos autres traitements automatisés.
Pièges fréquents
- Numéro mal formaté. Twilio rejette silencieusement un numéro qui n'est pas au format E.164 complet ; validez et normalisez systématiquement en amont, surtout si le numéro provient d'un formulaire en saisie libre.
- Coût qui grimpe sans supervision. Contrairement à un appel LLM à quelques centimes, chaque SMS a un coût unitaire fixe multiplié par le volume ; ajoutez ce poste à votre suivi habituel du coût des appels IA dans n8n plutôt que de le découvrir sur la facture Twilio mensuelle.
- Rate limiting Twilio ignoré. Un envoi en masse (relance de centaines de dossiers en une seule exécution) peut heurter les limites de débit de l'API Twilio ; le principe de retry avec backoff décrit dans notre guide sur les erreurs 429 et les rate limits s'applique aussi bien à Twilio qu'aux API OpenAI ou Anthropic.
Pour aller plus loin
Le SMS via Twilio n'est pas un node livré nativement dans les packs FlowKit, mais il se branche en quelques minutes sur les workflows d'alerte du Pack Inbox IA (79 €) et sur les relances du Pack Conformité & Audit (149 €), en parallèle des canaux Slack et email déjà en place. Si votre priorité est justement de fiabiliser ces relances et cette traçabilité avant d'ajouter un canal supplémentaire, le Bundle FlowKit Complet (269 €) réunit les trois packs sur cette même base.
FAQ
Questions fréquentes
Faut-il un compte Twilio payant pour envoyer des SMS depuis n8n ?
Un compte d'essai Twilio suffit pour tester (avec un préfixe imposé sur les messages et un envoi limité aux numéros vérifiés), mais l'envoi en production vers n'importe quel destinataire nécessite un compte payant et l'achat d'un numéro Twilio (quelques euros par mois, plus le coût unitaire de chaque SMS, généralement quelques centimes).
Le node Twilio de n8n peut-il aussi envoyer des messages WhatsApp ?
Oui : le node Twilio propose une ressource dédiée aux messages WhatsApp Business, en plus du SMS et du MMS. La configuration credentials est identique (Account SID, Auth Token), seul le numéro expéditeur change de format (préfixé whatsapp:).
Comment n8n reçoit-il une réponse SMS de l'utilisateur ?
Via le node Twilio Trigger, configuré comme webhook de réception dans la console Twilio (section Messaging). Chaque SMS entrant déclenche le workflow avec le corps du message et le numéro expéditeur, exactement comme un webhook classique.
Le SMS est-il soumis aux mêmes règles RGPD que l'email ?
Oui, le numéro de téléphone est une donnée personnelle au même titre qu'une adresse email : consentement préalable pour un SMS commercial, mention STOP obligatoire en France (article L34-5 du Code des postes et des communications électroniques), et traçabilité de l'envoi si vous menez déjà une piste d'audit RGPD sur vos automatisations.
Bundle FlowKit Complet
269 €