Développez votre propre code en vous appuyant sur Flowella.

Lorsque les outils « no-code » ne permettent pas d'effectuer certaines opérations, l'API REST de Flowella et les webhooks sortants prennent le relais. Appelez l'API pour envoyer des messages WhatsApp, gérer les contacts et les désabonnements, et extraire des données analytiques. Abonnez-vous aux webhooks pour réagir en temps réel aux messages, aux envois, aux désabonnements, aux contacts et aux modifications de modèles, sans avoir à effectuer de requêtes régulières.

Noté 5/5 sur HubSpot Marketplace (s’ouvre dans un nouvel onglet)
Aucun sondage n'est nécessaire Flo, la mascotte de Flowella, en train d'enfoncer une grosse prise dans une prise électrique située sur un panneau flottant
URL de base
api.flowella.io/v1
Authentification
Une clé au porteur commençant par « flo_ »
Événements Webhook
12, chacun signé avec HMAC-SHA256
Livraison
3 tentatives, un temps mort de 10 secondes

Appelez-le, et il vous rappellera.

Deux sens, un seul moteur. Votre application appelle l'API REST pour déclencher des actions, et Flowella envoie des événements webhook signés à votre point de terminaison dès qu'un événement se produit, ce qui vous permet de réagir au lieu d'effectuer des interrogations régulières. Envoyez un modèle, puis suivez les événements en retour.

Flo branche des câbles colorés sur un tableau électrique
Votre applicationAppelle l'API Flowella
Données d’exemple

POSThttps://api.flowella.io/v1/templates/send

En-têtes

Authorization
Bearer flo_••••••••••••Votre clé d’API, masquée
Content-Type
application/json
Idempotency-Key
renewal-2026-10-16-1Répéter cette clé sous sept jours renvoie le même job.

Corps

{
  "templateId": "cltemplate00000001",
  "whatsappChannelId": "clchannel000000001",
  "recipients": [
    {
      "phone": "+447700900123",
      "bodyParameters": ["Sam"]
    }
  ]
}
Réponse de Flowella202 Accepted
{
  "id": "v1ts-3f9a07c2b1d4e6a8",
  "status": "accepted"
}

En file d’attente. Flowella l’envoie en arrière-plan.

Acme ClubCompte professionnel
Données d’exemple

Aujourd’hui

Bonjour Sam, Votre adhésion au Club Acme arrive à échéance le 31 octobre. Renouvelez-la en un clin d'œil, directement ici, sur WhatsApp.
Votre point de terminaisonReçoit les webhooks de Flowella
Données d’exemple

Livraisons

POSThttps://example.com/webhooks/flowella

Content-Type
application/json
X-Flowella-Signature
5c2e91…a07f3bValide
{
  "id": "evt_9a4f1d06c3e84b27a5d9e2b70c6f8d14",
  "type": "message.read",
  "created_at": "2026-10-16T09:14:21.000Z",
  "payload_version": "1",
  "data": { … }
}

Dans data : le messageId du message.

Flowella attend jusqu'à 10 secondes pour obtenir un code 2xx et effectue au maximum trois tentatives d'envoi, espacées respectivement de 1 et 2 secondes.

message.sent, message.delivered et message.read sont arrivés sur votre endpoint, chacun signé.

Inscrivez-vous à l'un des 12 événements proposés.

Sélectionnez les événements qui vous intéressent dans « Paramètres », rubrique « Webhooks ». Chacun d'entre eux est transmis sous la forme d'une requête POST signée, comprenant son identifiant, son type, la date et l'heure à laquelle il s'est produit, ainsi que ses données.

Messages

message.received
Un message WhatsApp est reçu d'un contact
message.sent
Flowella a reçu votre message et l'a transmis à Meta.
message.delivered
Meta a confirmé la réception sur l'appareil du destinataire
message.read
Le destinataire a ouvert le message
message.failed
Meta a renvoyé un message d'échec pour ce message

Conversations

conversation.opened
Une conversation est passée à l'état « ouvert »
conversation.closed
Une conversation a été clôturée

Désinscription

optout.created
Un contact s'est désabonné d'une chaîne

Modèles

template.status_updated
Meta a modifié le statut d'un modèle : approuvé, rejeté, suspendu ou désactivé

Contacts

contact.created
Un contact a été créé
contact.updated
Un contact a été mis à jour
contact.deleted
Un contact a été supprimé

Sans compter webhook.test, qui n'est envoyé que lorsque vous cliquez sur « Envoyer un test ».

Envoyer, gérer et générer des rapports.

Une API REST v1 simple, accessible à l'adresse api.flowella.io/v1, avec une authentification par clé « bearer » et un comportement prévisible.

  • Envoyer des messages et des modèles

    Envoyez un message WhatsApp ou programmez l'envoi d'un modèle unique à plusieurs destinataires en une seule requête. Ajoutez le paramètre « throttlePerHour » et Flowella gérera pour vous l'envoi en masse.

  • Coordonnées et désabonnement

    Créer ou modifier des contacts, les parcourir et activer ou désactiver l'option de désabonnement WhatsApp d'un contact sur une chaîne.

  • Conversations et analyses

    Répertoriez les conversations et les modèles, et intégrez les analyses des messages sortants dans vos propres rapports.

  • Les touches que vous contrôlez

    Les propriétaires et les administrateurs créent des clés dans la section « Paramètres », sous « Clés API ». Chaque clé commence par « flo_ », n'est affichée qu'une seule fois et peut être limitée aux champs d'application nécessaires.

  • Vous pouvez réessayer sans risque

    L'envoi d'une clé d'idempotence avec un envoi type et une répétition dans un délai de sept jours renvoie le même travail ; ainsi, un délai d'expiration ne permet jamais d'envoyer deux fois le même message à un destinataire.

  • Le « no-code » d'abord, le code quand vous en avez besoin

    Les workflows HubSpot permettent déjà d'envoyer des modèles contenant jusqu'à 20 variables par contact, sans avoir besoin de coder. Utilisez l'API pour ce qu'ils ne peuvent pas envoyer, comme les codes à usage unique et les boutons de lien spécifiques à chaque contact.

Ce qu’en disent nos clients.

Une plateforme d'engagement exceptionnelle qui a révolutionné notre taux de conversion des étudiants, avec une augmentation de 160 % des candidatures déposées le jour même et un taux de réponse sur WhatsApp de 90 %.

Peter Hudson Peter HudsonDirecteur des admissions, de l'image de marque et de l'innovation clientIntégration de la HubSpot Marketplace Oaklands CollegeOaklands College

Un outil révolutionnaire dédié aux campagnes de dons, qui permet d'interagir de manière personnalisée via WhatsApp grâce à une automatisation fluide et qui améliore considérablement les taux de finalisation.

Lawrence Tribe-Endt Lawrence Tribe-EndtDirecteur commercial, Countryside AllianceCustomer.io via l’API Flowella Countryside Alliance

Des réponses claires.

Les questions que se posent les développeurs. Si vous ne trouvez pas la réponse à votre question ici, n'hésitez pas à nous contacter.

Lire la référence de l'API

API et webhooks

Comment s'authentifier ?

Avec une clé « bearer » au niveau de l'organisation dans l'en-tête « Authorization ». Les propriétaires et les administrateurs créent des clés dans « Paramètres », puis « Clés API ». Chaque clé commence par « flo_ » et n'est affichée qu'une seule fois ; veillez donc à la conserver en lieu sûr et à la remplacer lorsque des membres de l'équipe quittent l'entreprise.

Gérer les clés API

Que peut faire l'API ?

Envoyez des messages et des modèles WhatsApp, y compris des codes à usage unique et des boutons de lien spécifiques à chaque contact, créez et mettez à jour des contacts, activez ou désactivez les options de désabonnement, affichez la liste des conversations et des modèles, et récupérez les statistiques relatives aux messages sortants. La liste des points de terminaison provient de la spécification OpenAPI, qui s'intègre directement dans Postman ou dans un générateur de code.

Puis-je envoyer des codes à usage unique ou des boutons de lien spécifiques à chaque contact ?

Oui, via l’API, et uniquement par ce biais. Un bouton « Copier le code » nécessite un code à chaque envoi, et seule l’API génère un bouton de lien unique par personne : depuis un workflow HubSpot, tout le monde reçoit le lien de secours unique du modèle. Pour envoyer un lien personnalisé par contact depuis HubSpot, placez-le dans une variable de corps de message : WhatsApp le rendra alors cliquable. Les codes peuvent comporter jusqu’à 15 caractères, et l’envoi du même modèle vers le même numéro dans un délai de 15 secondes est ignoré. L’API renvoie le code d’état 202 et effectue l’envoi immédiatement, sauf si vous avez défini le paramètre `scheduledAt`.

Que dois-je savoir avant mon premier appel ?

L'URL de base est https://api.flowella.io/v1. Les listes utilisent une pagination par curseur avec une limite comprise entre 1 et 100 ; les erreurs sont regroupées dans une seule réponse avec un code d'erreur fixe ; et chaque organisation est soumise à une limitation de débit, avec un code d'erreur 429 et un en-tête « Retry-After » si vous effectuez des requêtes trop rapidement. Transmettez les numéros de téléphone au format E.164.

Présentation de l'API

Puis-je effectuer des envois en masse ?

Oui. La requête POST /v1/templates/send met l'envoi en file d'attente et renvoie le code de statut 202 Accepted avec un identifiant de tâche. L'ajout de « throttlePerHour » et de Flowella permet de réguler le débit côté serveur. L'ajout d'une clé d'idempotence (Idempotency-Key) garantit qu'une nouvelle tentative dans les sept jours renvoie la même tâche au lieu de l'envoyer à nouveau.

Comment vérifier l'authenticité d'un webhook ?

Chaque transmission comporte un champ « X-Flowella-Signature », qui correspond à un condensé hexadécimal HMAC-SHA256 du corps brut de la requête, généré à l'aide de votre clé de signature. Calculez le même condensé à partir des octets bruts, avant toute analyse JSON, puis comparez-le. Lors d'une rotation de clé, le champ « X-Flowella-Signature-Previous » contient le condensé généré à l'aide de l'ancienne clé.

Webhooks sortants

Que se passe-t-il si mon point d'accès est en panne ?

Flowella attend jusqu'à 10 secondes pour obtenir un code d'état 2xx et effectue au maximum 3 tentatives de transmission, espacées de 1 et 2 secondes ; il est donc conseillé de répondre rapidement et de traiter la tâche par la suite. Dans les paramètres, la section « Webhooks » répertorie les dernières transmissions pour chaque point de terminaison.

Comment éviter de traiter des doublons ?

Une nouvelle tentative peut entraîner la transmission deux fois du même événement. Chaque transmission comporte l'identifiant de l'événement au niveau supérieur, qui est identique à chaque nouvelle tentative ; veillez donc à conserver brièvement une trace des identifiants que vous avez déjà traités et à ignorer les doublons.

La variable `message.received` contient-elle le texte du message ?

Non. Elle contient les identifiants du message, de la conversation et du contact, ainsi que la direction et le type, mais pas le numéro de téléphone ni le contenu du message, et l'API ne propose pas d'appel permettant de lire un message individuel. L'événement « optout.created » contient quant à lui le numéro de téléphone et le motif.

Flo saute de joie, le poing levé et un téléphone à la main

Tirez parti du même moteur, à votre façon.

Commencez par les outils « no-code », puis passez aux API et aux webhooks lorsque votre infrastructure en a besoin. La configuration de Flowella prend environ 30 minutes ; vous bénéficiez d'un essai gratuit de 14 jours sans avoir à fournir de coordonnées bancaires.

Réservez une démonstration de Flowella · 30 minutes sur Teams