Trigger Polling
Le trigger Polling effectue des requêtes périodiques vers une API externe et déclenche un workflow avec les résultats.
Vue d'ensemble
Ce type de trigger est idéal pour :
- Synchroniser des données depuis des APIs externes
- Surveiller des changements dans des systèmes externes
- Récupérer des données périodiquement
- Intégrer avec des systèmes qui ne supportent pas les webhooks
Configuration
Options de base
Lors de la création d'un trigger Polling, vous devez configurer :
URL de l'API
L'URL de l'API à interroger :
- Format :
https://api.example.com/endpoint - Peut inclure des paramètres de requête
- Supporte les variables Handlebars pour la dynamisation
Méthode HTTP
Sélectionnez la méthode HTTP à utiliser :
- GET : Pour récupérer des données (le plus courant)
- POST : Pour envoyer des données avec la requête
Mode
Définition du mode d'interrogation :
- NEW : Pour récupérer seulement les nouveaux changements
- ALL : Pour récupérer l'ensemble du retour API
Chemin
Façon d'extraire la data de la réponse. Si aucun chemin n'est à spécifier, laisser la valeur par défaut : $
Exemple : employees[department="Marketing"].name permet d'extraire les noms des employés du département marketing.
Intervalle (en secondes)
Durée entre chaque requête API.
Authentification
Configurez l'authentification pour l'API externe :
API Key
- Ajoutez la clé API dans les headers ou les paramètres
- Format :
Authorization: Bearer {token}ouX-API-Key: {key}
Basic Auth
- Nom d'utilisateur et mot de passe
- Encodés en base64 automatiquement
OAuth
- Configuration OAuth complète
- Token refresh automatique
Headers personnalisés
Ajoutez des headers personnalisés si nécessaire :
- Headers spécifiques à l'API
- Variables Handlebars supportées
Body (pour POST)
Si vous utilisez POST, configurez le body de la requête :
- Format JSON
- Supporte les variables Handlebars
Gestion des données
Détection de changements
Le trigger peut détecter les nouveaux éléments :
- Compare les résultats avec la dernière exécution
- Déclenche le workflow uniquement pour les nouveaux éléments
- Évite les doublons
Filtrage
Vous pouvez configurer des filtres :
- Filtrer par date
- Filtrer par statut
- Filtrer par critères personnalisés
Données transmises
Lorsqu'un polling détecte de nouvelles données, le workflow reçoit :
{
"response": {
"status": 200,
"headers": {...},
"body": {
"items": [
{
"id": "123",
"name": "Item 1",
"status": "new"
}
]
}
},
"newItems": [
{
"id": "123",
"name": "Item 1"
}
],
"polledAt": "2024-01-15T10:30:00Z"
}
Exemple d'utilisation
Scénario : Synchronisation de commandes
-
Créer le trigger :
- Type : Polling
- URL :
https://api.example.com/orders?status=new - Méthode : GET
- Intervalle : Toutes les 5 minutes (
*/5 * * * *) - Authentification : API Key
-
Créer le workflow associé :
- Reçoit les nouvelles commandes
- Traite chaque commande
- Met à jour le statut dans l'API externe
-
Déployer :
- Déployez le trigger dans l'environnement de production
- Le polling commence automatiquement
Bonnes pratiques
- Fréquence : Ne polluez pas trop fréquemment pour éviter de surcharger l'API externe
- Rate limiting : Respectez les limites de taux de l'API externe
- Gestion d'erreurs : Gérez les erreurs (timeout, 500, etc.) dans le workflow
- Idempotence : Assurez-vous que le traitement est idempotent
- Monitoring : Surveillez les traces pour détecter les problèmes
- Cache : Utilisez la détection de changements pour éviter les traitements inutiles
Optimisations
Pagination
Si l'API supporte la pagination :
- Configurez le polling pour récupérer toutes les pages
- Utilisez les paramètres de pagination dans l'URL
Incremental polling
Pour les grandes quantités de données :
- Utilisez des filtres par date/heure
- Polluez uniquement les données récentes
- Exemple :
?created_after={lastPolledAt}