Whatixo.Documentation English Ouvrir Whatixo
Documentation / API Whatixo

Webhooks

L’API vous donne un contrôle direct ; les webhooks vous permettent de profiter des workflows (délais, conditions, tags, séquences, IA) en envoyant simplement vos données.

Webhook entrant : déclencher un workflow

POSThttps://api.whatixo.com/api/webhook/{webhookId}

L’identifiant wh_… est généré quand vous enregistrez un workflow avec un déclencheur Webhook API, Shopify, WooCommerce, Chariow ou Maketou. Copiez l’URL complète dans l’éditeur du workflow (tutoriel pas à pas).

PropriétéValeur
AuthentificationAucun en-tête : l’identifiant secret de l’URL suffit. Ne pas utiliser la clé API ici.
CorpsN’importe quel objet JSON (ou formulaire URL-encodé), 1 Mo maximum.
ExécutionAsynchrone : la réponse est immédiate, le workflow s’exécute ensuite (délais compris).
Limite120 requêtes / minute par adresse IP.
curl -X POST https://api.whatixo.com/api/webhook/wh_9b2e4f71c3a8d605 \
  -H "Content-Type: application/json" \
  -d '{"event":"inscription","client":{"prenom":"Aline","telephone":"243812345601"},"formation":"Marketing WhatsApp"}'

Dans le workflow, ces données s’utilisent avec {{client.prenom}}, {{client.telephone}}, {{formation}}.

Réponses

CodeCorpsSignification
200{"success":true,"message":"Webhook reçu et en cours de traitement."}Reçu, workflow lancé.
200{"message":"Webhook inactif."}Reçu, mais le workflow est désactivé (les variables sont tout de même détectées).
402{"error":"Compte suspendu. Exécution bloquée."}Abonnement expiré.
404{"error":"Webhook introuvable."}Identifiant inconnu ou workflow supprimé.
429{"error":"Trop d'appels sur ce webhook."}Plus de 120 requêtes par minute.

Syntaxe des variables

  • Objets imbriqués : {{client.adresse.ville}}
  • Éléments de liste (index à partir de 0) : {{items.0.nom}}
  • Réponse d’une étape IA : {{ia_response}}
  • Une variable absente est laissée telle quelle dans le texte : testez avec des données réelles.

Webhooks sortants : recevoir des données de Whatixo

Whatixo peut à son tour appeler votre serveur :

SourceConfigurationContenu envoyé
Action de workflow Tirer un webhookURL + corps JSON personnalisé (avec variables)Ce que vous définissez dans le corps
Action de workflow Requête APIMéthode, URL, en-têtes (ex. votre jeton), corpsIdem ; la réponse JSON est réutilisable dans les étapes suivantes
Webhook de conversion de l’agent IARéglages experts de l’agentChaque lead/commande : téléphone, type, données collectées
Exemple de corps pour « Tirer un webhook »JSON
{
  "source": "whatixo",
  "telephone": "{{phone}}",
  "nom": "{{name}}",
  "message": "{{message}}"
}
Sécurisez votre point de réception

Votre URL de réception doit être en https:// et publique (les adresses internes ou locales sont refusées par Whatixo). Ajoutez un jeton secret dans l’URL ou dans un en-tête (action Requête API) et vérifiez-le côté serveur avant de traiter les données.

Exemple de réception (Node.js / Express)

server.jsJS
import express from 'express';
const app = express();
app.use(express.json());

app.post('/hooks/whatixo', (req, res) => {
  if (req.get('x-hook-token') !== process.env.HOOK_TOKEN) return res.sendStatus(401);
  const { telephone, nom, message } = req.body;
  console.log('Nouveau message WhatsApp de', nom, telephone, ':', message);
  // … enregistrer dans votre CRM
  res.json({ ok: true }); // répondez vite (moins de 10 s)
});

app.listen(3000);