CRM, audiências
Como criar segmentos de clientes por regra, mantê-los atualizados e usá-los em campanhas, com mapa de todas as rotas.
Uma audiência (também chamada de segmento) é um grupo de clientes definido por uma regra em vez de uma lista fixa de pessoas. Em vez de dizer "estes 800 clientes", você diz "quem comprou mais de R$ 500,00 nos últimos 90 dias" e a plataforma encontra quem se encaixa, agora e depois. É a base das campanhas de e-mail, WhatsApp e SMS do módulo CRM.
As rotas desta seção são as do administrador da loja: as audiências criadas aqui valem para o marketplace inteiro. O lojista (seller) tem uma versão espelhada no painel dele, que enxerga só os próprios pedidos.
Como funciona
Ciclo de vida de uma audiência
- Teste a regra com a prévia
POST /crm/audiences/previewdevolve só o número de clientes que casam. Não grava nada. Ajuste a regra até o número fazer sentido. - Crie a audiência
POST /crm/audiencesgrava nome, descrição e regra. A regra é validada contra o banco antes de salvar: se ela não puder rodar, a criação é recusada. - Materialize
A materialização cria (na primeira vez) um grupo de clientes chamado
CRM: <nome da audiência>e sincroniza os membros: entra quem passou a casar, sai quem deixou de casar. É esse grupo que as campanhas e as promoções usam. Para audiências ativas, a plataforma refaz isso sozinha a cada 15 minutos; usePOST /crm/audiences/{id}/materializepara forçar na hora. - Acompanhe
GET /crm/audiences/{id}/statsmostra o tamanho atual e a receita atribuída às campanhas que usaram a audiência.GET /crm/audiences/{id}/exportbaixa os membros em CSV.
Campos de uma audiência
| Campo | Significado |
|---|---|
id | UUID da audiência. |
name, description | Texto livre. name é obrigatório. |
rule | A regra em JSON, exatamente como foi enviada. |
usergroup_id | UUID do grupo de clientes criado pela materialização. Ausente até a primeira materialização. |
is_active | Se false, a atualização automática ignora a audiência (a materialização manual ainda funciona). |
member_count | Tamanho no momento da última materialização. |
last_evaluated_at | Quando a última materialização terminou. |
last_error | Motivo da última falha, em português, ou null. |
Conceitos importantes
Escopo do administrador
No escopo do administrador, as condições de compra olham os pedidos pai (o pedido do cliente, não os sub-pedidos por seller), para que um carrinho com três sellers não conte como três compras. Pedidos cancelados, reembolsados, com falha, anulados ou com chargeback não contam para valor gasto, número de pedidos nem recência. A única exceção é a condição order_status, cujo objetivo é justamente filtrar por status.
Audiência não é a lista de e-mails
A audiência é a definição. Os membros ficam no grupo de clientes (usergroup_id) depois da materialização. Excluir a audiência não apaga esse grupo, para não quebrar promoções ou outras telas que já apontem para ele.
Consentimento de marketing
A regra não filtra consentimento sozinha. Para campanhas, acrescente a condição marketing_consent com true, senão a audiência inclui clientes que nunca aceitaram receber mensagens.
Endpoints
| Método e caminho | Para que serve | Auth | Página |
|---|---|---|---|
GET /api/v1/admin/crm/audiences | Lista as audiências do marketplace | admin | Audiências |
POST /api/v1/admin/crm/audiences | Cria uma audiência | admin | Audiências |
GET /api/v1/admin/crm/audiences/{id} | Detalha uma audiência | admin | Audiências |
PUT /api/v1/admin/crm/audiences/{id} | Altera nome, descrição, regra ou ativação | admin | Audiências |
DELETE /api/v1/admin/crm/audiences/{id} | Remove a audiência | admin | Audiências |
POST /api/v1/admin/crm/audiences/preview | Conta quantos clientes uma regra alcança | admin | Ações de audiência |
POST /api/v1/admin/crm/audiences/{id}/materialize | Sincroniza o grupo de clientes agora | admin | Ações de audiência |
GET /api/v1/admin/crm/audiences/{id}/stats | Tamanho e receita atribuída | admin | Ações de audiência |
GET /api/v1/admin/crm/audiences/{id}/export | CSV dos membros | admin | Ações de audiência |
GET /api/v1/admin/crm/rfm/summary | Distribuição de clientes por segmento RFM | admin | Indicadores |
GET /api/v1/admin/crm/deliverability | Confere SPF, DKIM e DMARC de um domínio | admin | Indicadores |
Erros comuns
- Esperar membros logo após criar. A criação só grava a definição. Chame a materialização ou espere o ciclo de 15 minutos; antes disso
member_counté0eusergroup_idnão existe. - Enviar valores em reais.
order_total,predicted_clvemin_total_centsusam centavos.500significa R$ 5,00. - Passar lista onde cabe um valor só, ou o contrário.
valueaceita um valor ou uma lista (["SP","RJ"]vira "qualquer um destes"); listas dentro de listas são recusadas. - Usar um
{id}que não é UUID.GET/PUTcomabcdevolvem500com a explicação emdetail, e não400. Valide o id antes. - Esquecer o módulo.
403 module_disabledquer dizer que o CRM não está ligado nessa loja. - Tratar o
PUTcomo substituição total. Ele é parcial: só os campos enviados mudam. Para limpar a regra, envie uma regra vazia explícita ({"op":"AND","conditions":[]}), o que casa com todos os clientes. - Confiar em
member_countcomo número vivo. Ele é o da última materialização. O número atual está emlive_countnas estatísticas.