Tous les guides
IntermédiaireÀ votre rythmeGuide gratuitSection 86/95

Intégrer les automatisations (workflows)

Pratiquez les fondations du développement : programmation, web, API, données et usages de l’IA. Des sections et exercices pour construire vos premiers projets.

💡

Contenu gratuit, accessible sans compte. Les outils et modèles évoluent : consultez le dossier actuel pour vérifier leurs versions. Modèles et sources

Section 11.5.8 : Intégrer les automatisations (workflows)

🎯 Objectif pédagogique

Connecter votre application IA à des workflows d'automatisation (Make, Zapier, webhook). Vous serez capable d'automatiser des actions déclenchées par votre chatbot : notifications, emails, logs.


Le chatbot qui déclenche des actions

Marc a un chatbot qui répond. Maintenant il veut qu'il agisse au-delà du texte : envoyer un email de résumé, logger les conversations dans Google Sheets, notifier sur Slack. C'est la puissance de l'intégration avec les outils d'automatisation de la Semaine 3.

Webhook — Le pont entre votre app et Make/Zapier

# webhook_client.py — Envoyer des données à des webhooks

import requests
import json
from datetime import datetime

class WebhookClient:
    """Client pour envoyer des données à des webhooks Make/Zapier."""
    
    def __init__(self, webhook_urls=None):
        self.webhooks = webhook_urls or \{\}
    
    def send(self, webhook_name, data):
        """Envoyer des données à un webhook."""
        url = self.webhooks.get(webhook_name)
        if not url:
            print(f"Webhook '\{webhook_name\}' non configuré.")
            return None
        
        payload = \{
            "timestamp": datetime.now().isoformat(),
            "source": "CareerBot Pro",
            **data
        \}
        
        try:
            response = requests.post(url, json=payload, timeout=10)
            return response.status_code == 200
        except requests.RequestException as e:
            print(f"Erreur webhook: \{e\}")
            return False

# Configuration des webhooks
webhooks = WebhookClient(\{
    "conversation_log": "https://hook.eu2.make.com/xxxxx",
    "weekly_report": "https://hooks.zapier.com/xxxxx",
    "slack_notification": "https://hook.eu2.make.com/yyyyy",
\})

Scénarios d'automatisation

# Actions automatisées déclenchées par le chatbot :

# 1. Logger chaque conversation dans Google Sheets
def log_conversation(user_question, bot_response, tools_used):
    webhooks.send("conversation_log", \{
        "question": user_question[:500],
        "response": bot_response[:500],
        "tools_used": tools_used,
        "model": "gpt-4o-mini"
    \})

# 2. Envoyer un résumé hebdomadaire par email
def send_weekly_summary(stats):
    webhooks.send("weekly_report", \{
        "total_conversations": stats["total"],
        "top_questions": stats["top_questions"],
        "avg_satisfaction": stats["satisfaction"],
        "report_period": "last_7_days"
    \})

# 3. Alerter sur Slack si le bot échoue
def alert_on_error(error_message, user_question):
    webhooks.send("slack_notification", \{
        "type": "error",
        "error": error_message,
        "trigger_question": user_question[:200],
        "severity": "high"
    \})

Intégration dans l'agent

# Dans agent.py, après chaque réponse :

class CareerAgentRAG:
    def chat(self, user_message):
        # ... (code existant) ...
        
        response = "..."  # Réponse générée
        
        # Logger automatiquement
        try:
            log_conversation(
                user_question=user_message,
                bot_response=response,
                tools_used=[tc.function.name for tc in msg.tool_calls] if msg.tool_calls else []
            )
        except Exception:
            pass  # Le logging ne doit jamais bloquer la réponse
        
        return response

Workflow Make : Chatbot → Google Sheets → Email

Workflow automatisé dans Make :

1. TRIGGER : Webhook reçoit les données du chatbot
   ↓
2. Google Sheets : Ajouter une ligne (question, réponse, date)
   ↓
3. Filter : Si tools_used contient "analyze_profile"
   ↓
4. Gmail : Envoyer un email de résumé à l'utilisateur
   "Voici l'analyse de votre profil : [contenu]"
   ↓
5. Slack : Notification au channel #careerbot-logs
   "Nouvelle analyse de profil effectuée"

Webhook = Fire and forget

L'appel webhook est asynchrone dans l'esprit : votre chatbot envoie les données et continue. Si Make/Zapier est en panne, le chatbot fonctionne toujours. Le logging et les notifications sont des bonus, pas des dépendances critiques. C'est le pattern "fire and forget".

🏋️ Exercice pratique (20 minutes)

  1. →Créez un webhook Make ou Zapier de test
  2. →Implémentez le WebhookClient
  3. →Intégrez le logging automatique dans votre agent
  4. →Vérifiez que les données arrivent dans Make/Zapier
Vérification rapide

Pourquoi le webhook ne doit-il pas bloquer la réponse du chatbot en cas d'erreur ?

Votre progression

Cette progression est déclarative et conservée dans votre navigateur. L’attestation finale ne constitue pas un diplôme ni une évaluation indépendante.

Voir ma progression et mon attestation

Apprendre l’IA, du premier prompt aux agents

15 guides gratuitsQuiz, schémas et ateliersSans compte

Un cas pratique IA dans votre boîte mail

Méthodes, ressources et nouveaux exercices. Gratuit, avec désinscription à tout moment.