Skip to main content
Este evento é publicado quando o período de retenção de offboarding de uma organização expira sem nenhuma resolução — ou seja, ninguém interveio para reter o cliente ou finalizar o cancelamento antes do prazo. Ele é emitido pelo agendador Expiração de Retenção de Offboarding, que executa diariamente para verificar janelas de retenção expiradas. Quando uma organização solicita sair (via START_RETENTION), ela entra em um período de retenção onde a equipe de sucesso do cliente pode tentar reconquistá-la. Se esse período expira sem ação, este evento é disparado para iniciar o fluxo automatizado de cancelamento — transicionando a organização de IN_RETENTION para PENDING_CANCELLATION e eventualmente CANCELLED.
Este evento contém o recurso completo da solicitação de offboarding, incluindo o motivo original da saída, a configuração de retenção (modo de campanha, modo de faturamento) e todos os timestamps. O retentionResolution ainda será null no momento em que este evento é disparado — ele é definido como AUTO_EXPIRED pelo consumidor que processa este evento.
Ao tratar este evento, dispare o fluxo final de cancelamento: cancele a assinatura, desative campanhas e notifique a organização. Use o offboardingRequestId como sua chave de idempotência. Considere também enviar um alerta interno para a equipe de sucesso do cliente para que saibam que uma oportunidade de retenção foi perdida.

Detalhes do Evento

PropriedadeValor
Typeoffboarding.retention_expired
AgendamentoUma vez por dia

Schema do Payload

offboardingRequestId
string (UUID v7)
required
Identificador único da solicitação de offboarding.
organizationId
string (UUID v7)
required
UUID da organização.
action
string
required
Ação de offboarding. Um de: CANCEL_NOW, START_RETENTION.
reason
string
required
Motivo principal do offboarding.
reasonDetail
string|null
required
Detalhe adicional sobre o motivo.
notes
string|null
required
Notas em texto livre.
campaignMode
string|null
required
Modo de campanha aplicado durante a retenção. Um de: SUSPENDED, INACTIVE.
billingMode
string|null
required
Modo de faturamento aplicado durante a retenção. Um de: CHARGED, FREE.
billingBehavior
string|null
required
Comportamento de faturamento aplicado quando o modo de faturamento é FREE.
retentionDeadline
string|null
required
Prazo de retenção (ISO 8601).
retentionResolution
string|null
required
Resolução do processo de retenção. Um de: RETAINED, CHURNED, AUTO_EXPIRED.
status
string
required
Status da solicitação de offboarding. Um de: IN_RETENTION, PENDING_CANCELLATION, RETAINED, CANCELLED.
requestedBy
string (UUID v7)
required
Usuário que solicitou o offboarding.
requestedAt
string
required
Timestamp de quando o offboarding foi solicitado (ISO 8601).
resolvedBy
string|null
required
Usuário que resolveu a retenção.
resolvedAt
string|null
required
Timestamp de quando a retenção foi resolvida (ISO 8601).
cancelledBy
string|null
required
Usuário que finalizou o cancelamento.
cancelledBySystem
boolean|null
required
Se o cancelamento foi disparado automaticamente pelo sistema.
cancelledReason
string|null
required
Motivo fornecido ao finalizar o cancelamento.
cancelledAt
string|null
required
Timestamp de quando o cancelamento foi finalizado (ISO 8601).
cancellationDetails
object|null
required
Detalhes adicionais do cancelamento.
createdAt
string
required
Timestamp de criação (ISO 8601).
updatedAt
string
required
Timestamp da última atualização (ISO 8601).
{
  "specversion": "1.0",
  "type": "offboarding.retention_expired",
  "id": "evt_0195f3a2-8c00-7d4e-b805-5e6f7a8b9c0d",
  "time": "2026-04-25T00:30:00Z",
  "datacontenttype": "application/json",
  "data": {
    "offboardingRequestId": "0195f3a2-8c00-7d4e-b805-5e6f7a8b9c0d",
    "organizationId": "0195f3a2-8c00-7d4e-b801-1a2b3c4d5e6f",
    "action": "START_RETENTION",
    "reason": "HIGH_COST",
    "reasonDetail": "Valor acima do orcamento trimestral",
    "notes": null,
    "campaignMode": "SUSPENDED",
    "billingMode": "FREE",
    "billingBehavior": "keep_as_draft",
    "retentionDeadline": "2026-04-24T23:30:00.000Z",
    "retentionResolution": null,
    "status": "IN_RETENTION",
    "requestedBy": "0195f3a2-8c00-7d4e-b806-6f7a8b9c0d1e",
    "requestedAt": "2026-03-25T23:30:00.000Z",
    "resolvedBy": null,
    "resolvedAt": null,
    "cancelledBy": null,
    "cancelledBySystem": null,
    "cancelledReason": null,
    "cancelledAt": null,
    "cancellationDetails": null,
    "createdAt": "2026-03-25T23:30:00.000Z",
    "updatedAt": "2026-03-25T23:30:00.000Z"
  }
}