2 directions d'intégration
Direction 1 : Studeia → Zapier (les événements Studeia déclenchent un workflow externe)
Cas d'usage : un apprenant termine un cours → créer un lead Salesforce + notifier un canal Slack + envoyer le certificat par e-mail personnalisé.
Configuration :
- Zapier > New Zap > Trigger : Webhooks by Zapier > Catch Hook
- Zapier génère une URL :
https://hooks.zapier.com/hooks/catch/.../... - Dans Studeia :
/institution/automations > New Automation - Trigger : événement
course_completed - Conditions (optionnel) :
event.score >= 80 - Action :
send_webhook> Méthode : POST > URL : URL du hook Zapier - Body (interpolation de template) :
{
"studentName": "{{user.name}}",
"studentEmail": "{{user.email}}",
"courseId": "{{event.courseId}}",
"completedAt": "{{event.completedAt}}",
"score": "{{event.score}}"
}
- Enregistrer l'automatisation
- Zapier > Test trigger > terminer un cours dans Studeia > Zapier reçoit le payload
- Continuer le Zap : ajouter des actions (Salesforce, Slack, Gmail, etc.)
Événements disponibles : lesson_completed, module_completed, course_completed, quiz_submitted, assignment_submitted, enrollment_created, enrollment_completed, forum_post_created, forum_reply_created, grade_posted, announcement_created, live_class_scheduled, live_class_started, student_inactive, tag_added_to_user, tag_removed_from_user, webhook_received, scheduled_trigger, badge_earned, level_up, contest_ended.
Direction 2 : Zapier → Studeia (créer/mettre à jour des ressources via API)
Cas d'usage : nouveau lead dans HubSpot → créer un utilisateur apprenant + l'inscrire au cours de bienvenue.
Configuration :
- Dans Studeia :
/institution/settings/api-keys > Create> scopes :users:write,enrollments:write - Copiez la clé (format
mia_+ 40 hex) — affichée UNE SEULE FOIS - Dans Zapier :
- Trigger : HubSpot 'New Contact'
- Action : Webhooks by Zapier > POST
- URL :
https://[tenant].studeia.com/api/institution/users - Headers :
Authorization: Bearer mia_...Content-Type: application/jsonAccept-Language: fr-FR
- Body JSON :
{
"name": "{{contact.name}}",
"email": "{{contact.email}}",
"role": "student",
"sendInvite": true
}
- Continuer le Zap : une autre Action POST vers
/api/institution/enrollmentsavec courseId
Rate limiting
La clé API Studeia dispose d'un rate limit par niveau :
- Standard : 1 000 req/heure
- High : 5 000 req/heure
- Custom : configurable
Headers de réponse : X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset. En cas de dépassement : 429 + Retry-After.
Zapier respecte automatiquement le Retry-After. Pour les volumes élevés : augmentez le niveau de rate limit ou utilisez les opérations batch.
Prévention SSRF (limitation)
Le webhook de Studeia bloque les IP privées (10.x, 192.168.x, etc.) et les endpoints de métadonnées (169.254.169.254) — protection anti-SSRF. Les URL Zapier (hooks.zapier.com) sont publiques et passent toujours.
Si vous hébergez n8n en self-hosted sur une IP privée : vous devez l'exposer publiquement (Cloudflare Tunnel, ngrok) pour que Studeia puisse l'appeler.
n8n self-hosted
n8n fonctionne de manière similaire à Make/Zapier. Le trigger 'Webhook' accepte les POST de Studeia. L'action 'HTTP Request' appelle l'API Studeia.
Avantage de n8n : peut être self-hosted (gratuit vs Zapier à partir de 19 USD/mois). Pour les volumes élevés + données sensibles : n8n en hébergement propre est plus pertinent.
Roadmap
App officielle Zapier (en planification pour 2026 H2) :
- Triggers : course_completed, enrollment_created, etc. natifs
- Actions : Create user, Create enrollment, Update grade, etc.
- Flux OAuth 2.0 (au lieu du copier-coller de clé API)
- Plus besoin de Webhooks by Zapier générique