Joinotify

Sincronização com o Joinotify Cloud

A sincronização na nuvem do Joinotify manda os clientes e os eventos deste site para a sua conta do Joinotify, onde eles viram contatos e disparam os fluxos do Cloud. É o que liga a loja às campanhas, ao inbox e às audiências do painel.

Ela vem desligada. Liga-se em Configurações → Geral, com o botão Configurar para as opções, ou na aba Fontes de Audiências & Contatos. A janela de configuração diz exatamente o que é enviado antes de você ligar.

O que é enviado

FonteEventos
WooCommercePedido criado, pago, cada mudança de status, concluído, cancelado, falhou, reembolsado; novo cliente
WooCommerce SubscriptionsCriada, ativada, renovada, renovação falhou, expirada, cancelada
WordPressCadastros e mudanças de telefone, nome ou e-mail
WPForms e ElementorEnvios de formulário que trazem um telefone ou um e-mail
Flexify CheckoutLeads coletados e carrinhos abandonados, recuperados e perdidos

Cada pedido sai com o histórico de compras do cliente (quantos pedidos, quanto gastou, primeira e última compra) e os links de pagar, ver e avaliar. "Criado" e "pago" saem uma vez por pedido, por mais que o status mude, e uma falha ao montar um evento nunca interrompe o checkout.

Na mesma janela dá para deixar de fora formulários, carrinhos, itens do pedido e endereços completos (cidade e estado vão sempre), e marcar todo contato com o nome do site ou com uma tag sua. Cada opção da janela, com o padrão dela, está em Sites conectados; a lista exata do que cada envio leva está na seção External services do readme.txt do plugin.

Como os eventos saem

Nada é enviado durante um checkout ou o carregamento de uma página. Os eventos entram numa fila em tabela própria e saem em lotes, por uma tarefa agendada. Um lote que falha espera e tenta de novo.

A sincronização pausa sozinha — em vez de mandar pedidos de teste para clientes reais — quando:

  • a chave da API foi revogada;
  • o site foi removido do painel;
  • o site parece ser uma cópia em outro endereço (um staging clonado da produção, por exemplo).

A janela da sincronização mostra se ela está ligada, por que pausou (com o botão Tentar novamente), quantos eventos esperam, quantos saíram e de quantos ela desistiu — que podem ser reenviados ou descartados.

Enviar os clientes que já existem

Enviar clientes existentes manda, uma única vez, os usuários e os compradores sem conta que a loja já tem, com o histórico de pedidos e sem iniciar nenhum fluxo. Antes de confirmar, a tela mostra quantos seriam enviados. O envio roda em segundo plano, em etapas que retomam depois de uma falha, e no fim diz quantos saíram, quantos ficaram de fora por não ter telefone e quantos o limite de contatos do seu plano barrou.

Consentimento de marketing

Também desligado por padrão. Quando ligado, uma caixa desmarcada, com o texto que você escrever, aparece no checkout clássico e no de blocos, nos formulários de cadastro e em Minha conta.

  • Quem marca é registrado como opt-in no Joinotify, com o texto da caixa, onde e quando, como evidência.
  • Quem desmarca em Minha conta vira opt-out lá também.
  • Um opt-in ou opt-out feito no Joinotify atualiza a preferência do cliente no site.
  • No checkout de blocos, um cliente que já concordou vê a caixa marcada, e o que ele enviar nela não muda o consentimento que já deu.

Formulários do WPForms e do Elementor podem ter uma regra própria que aponta qual caixa é o consentimento — veja Audiências & Contatos.

Dados pessoais

As ferramentas Exportar dados pessoais e Apagar dados pessoais do WordPress cobrem a sincronização: os registros de consentimento e os eventos da pessoa ainda na fila. Apagar também pede ao Joinotify que apague os contatos que este site enviou para ela.

Desligar a sincronização para tudo na hora. O que já foi recebido continua na sua conta do Joinotify, onde os contatos podem ser apagados.

Para desenvolvedores

joinotify_track() enfileira um evento seu, que chega aos fluxos do Cloud pela mesma fila. O nome é custom. seguido de um a três segmentos [a-z0-9_]; a função devolve o id do evento, ou false quando a sincronização está desligada ou o nome está fora do espaço custom.*.

joinotify_track(
    'custom.orcamento.solicitado',
    array( 'orcamento' => array( 'id' => 991, 'total' => '1290.00' ) ), // nos fluxos: {{trigger.orcamento.total}}
    array(                                                              // opcional: de quem é o evento
        'ref'        => array( 'kind' => 'wp_user', 'id' => (string) $user_id ),
        'phone'      => '+5541987654321',
        'email'      => '[email protected]',
        'first_name' => 'Ana',
    )
);

Sem ref, o evento é registrado mas não chega a nenhum contato. O kind é wp_user, wc_customer, wc_guest ou lead; nos dois últimos o id precisa ser um hash (o plugin usa o SHA-256 do e-mail em minúsculas), nunca um dado pessoal em claro.

FiltroPara quê
Joinotify/Cloud_Sync/CatalogDescrever um evento custom.*, para o editor de fluxos do Cloud oferecê-lo com os campos
Joinotify/Cloud_Sync/Event_DataAcrescentar dados a um evento, ou devolver false para descartá-lo
Joinotify/Cloud_Sync/Order_DataAcrescentar um meta do pedido a todo pedido enviado
Joinotify/Cloud_Sync/LinksTrocar os links de um pedido — por exemplo, para as páginas de uma loja headless
Joinotify/Cloud_Sync/Contact_BlockAcrescentar uma tag ou um atributo ao contato de todo evento
Joinotify/Contacts/Sources/FormsListar um formulário de outro plugin na aba Fontes
Joinotify/Builder/Webhook_Action/Trigger_BodyMudar o que a ação Enviar webhook manda no modo "dados do gatilho"

A ação Joinotify/Cloud_Sync/Ready dispara quando a sincronização está ligada e ouvindo — é onde pendurar os seus próprios emissores. Como os eventos chegam ao Cloud e viram gatilho de fluxo está em Eventos do site.