2 direcoes de integracao
Direcao 1: Studeia → Zapier (eventos do Studeia disparam workflow externo)
Caso de uso: aluno completa curso → criar lead Salesforce + notificar canal Slack + enviar certificado por email custom.
Setup:
- Zapier > New Zap > Trigger: Webhooks by Zapier > Catch Hook
- Zapier gera URL:
https://hooks.zapier.com/hooks/catch/.../... - Em Studeia:
/institution/automations > New Automation - Trigger: event
course_completed - Conditions (opcional):
event.score >= 80 - Action:
send_webhook> Method: POST > URL: Zapier hook URL - Body (template interpolation):
{
"studentName": "{{user.name}}",
"studentEmail": "{{user.email}}",
"courseId": "{{event.courseId}}",
"completedAt": "{{event.completedAt}}",
"score": "{{event.score}}"
}
- Save automation
- Zapier > Test trigger > completa um curso em Studeia > Zapier recebe payload
- Continue Zap: add actions (Salesforce, Slack, Gmail, etc)
Eventos disponiveis: lesson_completed, module_completed, course_completed, quiz_submitted, enrollment_created, enrollment_completed, forum_post_created, forum_reply_created, grade_posted, announcement_created, live_class_started, student_inactive, tag_added_to_user, tag_removed_from_user.
Direcao 2: Zapier → Studeia (criar/atualizar recursos via API)
Caso de uso: novo lead no Hubspot → criar usuario aluno + matricular em curso de boas-vindas.
Setup:
- Em Studeia:
/institution/settings/api-keys > Create> scopes:users:write,enrollments:write - Copie chave (formato
mia_+ 40 hex) — mostrada UMA UNICA VEZ - Em 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: pt-BR
- Body JSON:
{
"name": "{{contact.name}}",
"email": "{{contact.email}}",
"role": "student",
"sendInvite": true
}
- Continue Zap: outra Action POST para
/api/institution/enrollmentscom courseId
Rate limiting
API key Studeia tem rate limit por tier:
- Standard: 1000 req/hora
- High: 5000 req/hora
- Custom: configuravel
Headers de resposta: X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset. Quando exceder: 429 + Retry-After.
Zapier respeitar Retry-After automaticamente. Para volume alto: upgrade rate tier ou batch operations.
SSRF prevention (limitacao)
Webhook do Studeia bloqueia IPs privados (10.x, 192.168.x, etc) e metadata endpoints (169.254.169.254) — anti-SSRF. URLs Zapier (hooks.zapier.com) sao publicas, sempre passam.
Se voce hospedar n8n self-hosted em IP privado: precisa expor publicamente (Cloudflare Tunnel, ngrok) para Studeia conseguir chamar.
n8n self-hosted
n8n tem padrao similar a Make/Zapier. Trigger 'Webhook' aceita POST do Studeia. Action 'HTTP Request' chama API Studeia.
n8n bonus: pode ser self-hosted (gratis vs Zapier $19+/mes). Para volume alto + dados sensiveis: n8n own-hosted faz mais sentido.
Roadmap
App oficial Zapier (em planning 2026 H2):
- Triggers: course_completed, enrollment_created, etc nativos
- Actions: Create user, Create enrollment, Update grade, etc
- OAuth 2.0 flow (em vez de copy-paste API key)
- Sem necessidade de Webhooks by Zapier generic