2.8 KiB
2.8 KiB
Quickstart — Spec 012 Onboarding → Lead
VM122: 10.10.10.122:8080 · VM112: 10.10.10.112:8090
Wizard: https://onboard.ibytera.com
Desk: https://desk.ligbox.com.br
1. Comportamento actual (Fase A — em produção)
| Momento wizard | Webhook | Efeito Desk |
|---|---|---|
| Valida domínio | domain.validated |
Só evento funil |
| Aplica DNS | dns.applied |
Só evento funil |
| Criar conta agora | onboarding.started |
Cria ticket + backfill DNS/domínio |
| Conta criada | account.created |
Nota no ticket + actualiza assunto |
| Infra OK | infra.synced |
Nota |
| Fim | onboarding.completed |
crm_track=onboarding_completed |
2. Teste rápido (script)
bash /opt/ligbox-ops-platform/scripts/verify-funnel-webhook.sh
Esperado na etapa onboarding.started:
ticket_created= True
ticket_id= <número>
3. Teste manual VM112 → Desk
# Simular «criar conta» (após domínio e DNS no wizard real)
curl -sf -X POST http://10.10.10.122:8080/api/v1/webhooks/onboard \
-H "Content-Type: application/json" \
-H "X-Webhook-Secret: ligbox-ops-dev-secret" \
-d '{
"event": "onboarding.started",
"domain": "teste.cliente.com",
"session_id": "manual-test-001",
"data": {
"email": "admin@teste.cliente.com",
"step": "create_account"
}
}' | python3 -m json.tool
Login Desk e confirmar ticket [onboarding] teste.cliente.com — admin@teste.cliente.com.
4. Abandono → Lead (Fase B — em produção)
Worker VM122 corre POST /api/v1/crm/leads/sync a cada 15 min (LEAD_SYNC_INTERVAL_SEC=900).
Critério: 24h (ONBOARD_STALE_HOURS) sem evento, etapa < completed, ticket open/escalated, crm_track=onboarding.
# Listar leads
curl -sf -H "Authorization: Bearer $TOKEN" \
http://10.10.10.122:8080/api/v1/crm/leads | python3 -m json.tool
# Sync manual (worker / teste)
curl -sf -X POST "http://10.10.10.122:8080/api/v1/crm/leads/sync" \
-H "X-Ops-Internal-Token: $OPS_INTERNAL_TOKEN"
# Teste completo
bash /opt/ligbox-ops-platform/scripts/verify-crm-leads.sh
Desk UI: menu Leads, painel no dashboard, badge lead / abandonado nas sessões, filtro Leads em Tickets.
5. Operação manual (até Fase B)
- Desk → Sessões ativas → filtrar
stale=true - Abrir ticket ligado à sessão
- Contactar cliente pelo
account_emailno payload - Assumir sessão (Spec 010) se precisar completar wizard
6. Ficheiros
| Componente | Path |
|---|---|
| VM112 webhooks | /opt/ibytera-mail-portal/backend/app/routers/onboarding.py |
| VM122 ingress | /opt/ligbox-ops-platform/api/app/main.py |
| Spec | specs/012-abandoned-onboarding-lead/spec.md |