Sommaire

  1. Démarrage rapide
  2. Types de bots
  3. Intégration du widget
  4. Webhooks — Zapier, Make, n8n
  5. Canaux (Telegram, Slack, Discord…)
  6. Sécurité des webhooks
  7. Bonnes pratiques
🚀 1. Démarrage rapide
1

Obtenir une clé API Gemini

Rends-toi sur aistudio.google.com/apikey et génère une clé gratuite. Elle commence par AIza....

Tu en auras besoin pour chaque bot que tu crées.

2

Créer ton premier bot

Depuis le Dashboard, remplis le formulaire :

  • Choisis un type de bot (chatbot, FAQ, lead qualifier…)
  • Donne-lui un nom et un message d'accueil
  • Colle ta clé API Gemini
  • Clique sur Créer le bot

Tu recevras un botId et un snippet d'intégration prêt à copier.

3

Configurer le system prompt

Le system prompt définit la personnalité et le périmètre de ton bot. Exemple :

Tu es l'assistant de [Nom de l'entreprise].
Réponds en français, de façon concise et utile.
Si tu ne sais pas, propose de contacter support@example.com.
4

Ajouter une base de connaissance

Pour les bots Chatbot, FAQ et Knowledge bot interne, ajoute des données structurées :

question | réponse | mots-clés
Quels sont vos tarifs ? | Starter à 29€/mois, Pro à 79€/mois. | prix,tarif
Comment vous contacter ? | Par email à contact@example.com | contact,email

Le bot utilise des embeddings sémantiques pour trouver la meilleure réponse, même si la question est formulée différemment.

🤖 2. Types de bots
💬

Chatbot IA

Assistant conversationnel avec base de connaissance et embeddings sémantiques. Idéal pour le support client.

🔍

FAQ dynamique

Recherche sémantique dans ta KB. Retourne les réponses les plus pertinentes sans conversation.

🎯

Lead qualifier

Pose des questions structurées (nom, email, budget…) et collecte les réponses. Parfait pour la prospection.

🚀

Onboarding

Guide interactif étape par étape. Chaque étape peut attendre une réponse ou enchaîner automatiquement.

🏢

Knowledge bot interne

Comme le chatbot, mais pensé pour les équipes internes. Même moteur, usage différent.

📝

Form builder IA

Formulaires conversationnels avec validation. Les champs sont posés un par un dans le chat.

Collecteur d'avis

Collecte des avis clients avec analyse de sentiment automatique par Gemini (positif, négatif, neutre).

Champs spécifiques par type

Chatbot / FAQ / InternalBase de connaissance (question | réponse | mots-clés)
Lead qualifierQuestions de qualification (id | question | type | options) + message de remerciement
OnboardingÉtapes (id | message | attendre réponse oui/non)
Form builderChamps (id | label | type | requis | options | validation) + message de confirmation
Collecteur d'avisQuestion d'avis personnalisée

Tous les types supportent les webhooks et les emails de notification.

🧩 3. Intégration du widget
1

Copier le snippet

Après avoir créé ton bot, copie le snippet affiché dans le résultat. Il ressemble à :

<script
  src="https://ai.botmight.net/widget.js"
  data-api-base="https://v7c78cuc6j.execute-api.eu-west-3.amazonaws.com"
  data-bot-id="TON_BOT_ID"
  data-style="bubble">
</script>
2

Coller dans ton site

Ajoute le snippet juste avant la balise </body> de ta page HTML. Le widget se charge automatiquement.

3

Choisir un style d'affichage

Modifie l'attribut data-style pour changer l'apparence :

bubbleBulle flottante en bas à droite (par défaut)
inlineIntégré directement dans la page
fullscreenPlein écran, idéal pour les pages dédiées
sidebarPanneau latéral fixe
4

Exemple inline

Pour intégrer le chat directement dans un conteneur :

<div id="mon-chatbot" style="height:500px"></div>
<script
  src="https://ai.botmight.net/widget.js"
  data-api-base="https://v7c78cuc6j.execute-api.eu-west-3.amazonaws.com"
  data-bot-id="TON_BOT_ID"
  data-style="inline"
  data-container="mon-chatbot">
</script>
🔗 4. Webhooks — Zapier, Make, n8n
1

Comment ça marche

Quand un événement se produit (message, lead collecté, formulaire soumis…), Botmight envoie un POST JSON à l'URL webhook configurée dans ton bot.

Compatible avec Zapier, Make (Integromat), n8n, ou tout endpoint HTTP.

2

Format du payload

Chaque webhook envoie un JSON avec cette structure :

{
  "event": "lead_collected",
  "botId": "abc-123",
  "botName": "Mon Bot",
  "botType": "leadgen",
  "visitorId": "visitor-xyz",
  "data": {
    "name": "Jean Dupont",
    "email": "jean@example.com",
    "budget": "10k-50k",
    "need": "Refonte de mon site web"
  },
  "timestamp": "2026-03-21T10:30:00.000Z"
}
3

Types d'événements

chatbot_messageChatbot IA
faq_messageFAQ
lead_collectedLead qualifier
form_submittedForm builder
review_submittedReview
onboarding_messageOnboarding
internal_messageInternal bot
4

Configurer Zapier

  1. Zapier → Trigger : Webhooks by ZapierCatch Hook
  2. URL webhook → https://hooks.zapier.com/hooks/catch/...
  3. Botmight → Webhook URL
  4. Test → message
  5. Zapier → Test trigger
  6. Action (Google Sheets, email, CRM…)
Nomdata › name
Emaildata › email
Budgetdata › budget
Needdata › need
Datetimestamp
BotbotName
5

Configurer n8n

  1. n8n → WebhookPOST
  2. URL → Botmight Webhook URL
  3. Header Auth : x-botmight-secret
  4. Action (Google Sheets, Slack, email…)
// n8n expressions
{{ $json.event }}        → Event type
{{ $json.botName }}      → Bot name
{{ $json.data.name }}    → Lead name
{{ $json.data.email }}   → Lead email
{{ $json.data.budget }}  → Budget
{{ $json.timestamp }}    → Date/time
6

Exemples de payload par type

Chatbot / FAQ / Internal :

{
  "event": "chatbot_message",
  "data": {
    "question": "Quels sont vos tarifs ?",
    "answer": "Nous avons une offre Starter à 29€/mois..."
  }
}

Form builder :

{
  "event": "form_submitted",
  "data": {
    "name": "Marie Martin",
    "email": "marie@example.com",
    "phone": "+33612345678",
    "message": "Je souhaite un devis."
  }
}

Review :

{
  "event": "review_submitted",
  "data": {
    "review": "Service excellent, très réactif !",
    "sentiment": "positive"
  }
}
📡 Canaux de messagerie

Connecter un canal

Depuis le dashboard, éditez un bot et utilisez le sélecteur de canaux pour ajouter Telegram, Slack, Discord, WhatsApp ou Email. Une fois connecté, l'URL du webhook s'affiche automatiquement dans le chip du canal.

🎮 Discord

1. Créez une application sur discord.com/developers.

2. Allez dans l'onglet « Bot » → « Add Bot ». Copiez le Bot Token.

3. Copiez l'Application ID et la Public Key depuis « General Information ».

4. Dans Botmight, ajoutez le canal Discord avec le token, l'Application ID et la Public Key. L'Interactions Endpoint URL s'affiche automatiquement.

5. Collez cette URL dans le portail Discord → « General Information » → « Interactions Endpoint URL ».

6. Enregistrez une commande slash (une seule fois) :

curl -X POST "https://discord.com/api/v10/applications/APP_ID/commands" \
  -H "Authorization: Bot TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"name":"ask","description":"Ask the chatbot","options":[{"name":"message","description":"Your message","type":3,"required":true}]}'

7. Invitez le bot sur votre serveur :

https://discord.com/api/oauth2/authorize?client_id=APP_ID&scope=bot%20applications.commands&permissions=2048

📨 Telegram

1. Créez un bot via @BotFather sur Telegram.

2. Copiez le token et ajoutez-le dans Botmight. Le webhook Telegram est configuré automatiquement.

💬 Slack

0. Créer une application Slack — Allez sur api.slack.com/apps → « Create New App » → « From scratch ». Donnez un nom et sélectionnez votre workspace.

1. Ajouter les permissions (obligatoire) — Dans le menu latéral de votre app Slack, ouvrez « OAuth & Permissions » → « Bot Token Scopes ». Ajoutez : chat:write, app_mentions:read, channels:history, channels:read.

2. Installer l'application — Toujours dans « OAuth & Permissions », cliquez « Install to Workspace » → « Autoriser ». Copiez le Bot User OAuth Token (format : xoxb-...).

3. Récupérer le Signing Secret — Dans le menu latéral, allez dans « Basic Information » → « App Credentials ». Copiez le Signing Secret.

4. Connecter Slack dans Botmight — Ouvrez votre bot → section Canaux → ajoutez Slack. Collez le Bot Token et le Signing Secret. Une Event URL est générée automatiquement — copiez-la.

5. Activer les événements Slack — Retournez sur l'app Slack → « Event Subscriptions » → activez « Enable Events » → collez l'Event URL dans « Request URL ». Slack doit afficher : Verified ✅.

6. Ajouter les événements du bot — Dans « Subscribe to bot events », ajoutez : message.channels. Cliquez « Save Changes ».

7. Inviter le bot dans un canal — Dans votre workspace Slack, tapez /invite @VotreBotName. Le nom du bot se trouve dans « App Home » → « App Display Name » de votre app Slack.

Vérification rapide : Event URL = Verified, bot invité dans un channel, un message envoyé → le bot reçoit les événements 🎉

🔒 5. Sécurité des webhooks
1

Secret automatique

Quand tu configures une URL webhook, Botmight génère automatiquement un webhook secret (32 caractères hex). Tu le trouves dans le formulaire d'édition de ton bot, sous le champ Webhook URL.

2

Headers de sécurité

Chaque appel webhook inclut deux headers :

X-Botmight-SecretSecret brut
X-Botmight-SignatureHMAC-SHA256
3

Vérification simple (n8n Header Auth)

La méthode la plus simple : utilise le header X-Botmight-Secret avec le credential Header Auth de n8n.

  1. n8n → CredentialsHeader Auth
  2. Name : x-botmight-secret
  3. Value : secret Botmight
  4. Webhook → AuthenticationHeader Auth
4

Vérification HMAC (avancé)

Pour une sécurité maximale, vérifie la signature HMAC-SHA256 du body. Exemple en Node.js :

const crypto = require('crypto');

function verifyWebhook(body, signature, secret) {
  const expected = crypto
    .createHmac('sha256', secret)
    .update(body)
    .digest('hex');
  return crypto.timingSafeEqual(
    Buffer.from(signature),
    Buffer.from(expected)
  );
}

app.post('/webhook', (req, res) => {
  const sig = req.headers['x-botmight-signature'];
  const raw = JSON.stringify(req.body);
  if (!verifyWebhook(raw, sig, 'YOUR_SECRET')) {
    return res.status(401).send('Invalid signature');
  }
  res.sendStatus(200);
});
5

Vérification HMAC en Python

import hmac, hashlib

def verify_webhook(body: bytes, signature: str, secret: str) -> bool:
    expected = hmac.new(
        secret.encode(), body, hashlib.sha256
    ).hexdigest()
    return hmac.compare_digest(signature, expected)

@app.route('/webhook', methods=['POST'])
def webhook():
    sig = request.headers.get('X-Botmight-Signature', '')
    if not verify_webhook(request.data, sig, 'YOUR_SECRET'):
        return 'Unauthorized', 401
    data = request.json
    return 'OK', 200
💡 6. Bonnes pratiques
1

System prompt efficace

  • Définis clairement le rôle du bot (« Tu es l'assistant de… »)
  • Précise la langue de réponse
  • Fixe un périmètre : ce que le bot doit et ne doit pas faire
  • Ajoute un fallback : que faire quand il ne sait pas (rediriger vers un humain, un email…)
  • Demande des réponses concises (150 mots max) pour une meilleure UX
2

Base de connaissance optimale

  • Une ligne = une question/réponse. Sois précis dans les réponses.
  • Ajoute des mots-clés variés pour améliorer la recherche sémantique
  • Couvre les questions fréquentes en priorité
  • Mets à jour régulièrement quand tes offres ou infos changent
  • Teste avec le Playground pour vérifier les réponses
3

Tester avant de déployer

  • Utilise le Playground pour tester ton bot en conditions réelles
  • Vérifie que les webhooks arrivent bien (utilise webhook.site pour débugger)
  • Teste les différents styles de widget (bubble, inline, fullscreen, sidebar)
  • Consulte les Derniers messages et Soumissions dans le dashboard pour suivre l'activité
4

Webhooks fiables

  • Ton endpoint doit répondre en moins de 5 secondes
  • Retourne un code 2xx pour confirmer la réception
  • Active toujours l'authentification (Header Auth ou HMAC) en production
  • Logge les payloads reçus pour faciliter le debug