ligbox-ops-platform/specs/012-abandoned-onboarding-lead/tasks.md
Ligbox Spec Hub 3a2c64834b Initial import: ligbox-ops-platform + specs + LAPTOP + obsidian merge (CT130)
Source: VM122 /opt + obsidian-infra + LAPTOP
Hub: CT130 spec-hub 10.10.10.130
2026-06-19 17:26:41 +00:00

2 KiB

Tasks — Spec 012 Abandoned Onboarding → Lead

Spec: 012-abandoned-onboarding-lead
Última atualização: 2026-06-10


Fase A — Ticket no «Criar conta»

  • T001 Desk: ticket em onboarding.started (não só account.created)
  • T002 Desk: account.created → nota no ticket existente (sem duplicar)
  • T003 Desk: _backfill_funnel_notes para domain.validated + dns.applied
  • T004 VM112: remover onboarding.started de validate-domain
  • T005 VM112: emitir onboarding.started em POST /account/create com email
  • T006 Scripts verify-funnel-webhook.sh — ordem real do funil
  • T007 Spec 012 + BACKLOG actualizados

Fase B — Detecção abandono → Lead

  • T010 Env ONBOARD_STALE_HOURS (default 24)
  • T011 Worker job: sessões stale → crm_track=lead + lead_detected_at
  • T012 GET /api/v1/crm/leads — lista tickets lead
  • T013 UI Desk: painel «Leads abandonados» (grid + view + filtro tickets)
  • T014 Badge stale/lead na grid sessões liga ao ticket

Fase C — Outreach

  • T020 POST /api/v1/crm/leads/{ticket_id}/contact — log outreach
  • T021 POST /api/v1/crm/leads/{ticket_id}/promote — promoção manual
  • T022 Spec 007: push «lead abandonado» → ops_lead
  • T023 Template e-mail recuperação (VM108 Postfix)

Fase D — CRM externo + Chat

  • T030 Decisão Roger: canal chat (widget / tablet / outro)
  • T031 Integração Odoo CRM (lead export idempotente por ticket_id)
  • T032 Webhook CRM inbound — lead_converted / lead_lost
  • T033 Documentação quickstart operacional

Verificação

# Ordem real (domínio → DNS → criar conta)
bash /opt/ligbox-ops-platform/scripts/verify-funnel-webhook.sh

# VM112: onboarding.started só em account/create
ssh root@10.10.10.112 "grep -n onboarding.started /opt/ibytera-mail-portal/backend/app/routers/onboarding.py"