Documentation menu

Shopify

Conecte uma loja Shopify para sincronizar seus clientes em uma lista de contatos do MailInApp, disparar jornadas a partir de eventos reais da loja, e ver a receita ser atribuída de volta a uma campanha ou variante.

Conecte sua loja

Em Configurações → Integrações, insira o domínio myshopify.com da sua loja e clique em Conectar Shopify. Você será enviado para a própria tela de OAuth do Shopify para aprovar o acesso. O MailInApp solicita read_customers, read_orders e read_products (todos somente leitura), além de write_discounts para poder gerar os códigos de desconto de uso único descritos abaixo — ele nunca pede acesso de escrita aos produtos, pedidos ou clientes da sua loja. Após a aprovação, o MailInApp cria uma lista de contatos dedicada para a loja e inicia em segundo plano um backfill inicial de clientes, limitado a 5.000 clientes por conexão. Uma loja com mais clientes do que isso continua expandindo sua lista a partir daí através dos próprios webhooks do Shopify, só sem um backfill único além do limite.

Se você instalar direto pela Shopify App Store, antes mesmo de ter criado uma conta no MailInApp, o MailInApp provisiona uma automaticamente usando o próprio e-mail da sua loja — você já chega logado, com a loja já conectada.

Conectar o Shopify é uma taxa única de US$ 30, cobrada uma vez através da própria Billing API do Shopify como parte deste fluxo, disponível em todos os planos (incluindo o Gratuito). Ela não é reembolsável se você desinstalar o aplicativo depois — mas reconectar depois na mesma conta do MailInApp é gratuito.

O que isso faz

  • Sincronização de clientes — os clientes do Shopify chegam em uma lista de contatos restrita a esta integração, mantida atualizada depois disso pelos próprios webhooks do Shopify (customers/create, além de checkouts/create e orders/paid para os gatilhos abaixo) em vez de uma nova varredura periódica.
  • Gatilhos de jornada — uma loja conectada pode disparar o gatilho Carrinho abandonado de uma jornada (um checkout iniciado, mas não concluído) e seu gatilho Compra (um pedido pago), para que uma série de boas-vindas ou uma automação de carrinho abandonado possa rodar a partir de atividade real do Shopify, em vez de depender apenas do checkout do bloco Produto próprio do MailInApp. Veja Jornadas.
  • Atribuição de receita — a campanha/variante do próprio pedido, quando identificável, entra nos mesmos números de receita de resposta e de teste A/B que um pedido do checkout nativo já produz.
  • Segmentos de histórico de compras e ofertas de desconto — os itens de linha do pedido sincronizam junto com os clientes, então um filtro de público pode corresponder a "comprou o produto X entre a data A e B" (veja Histórico de compras), e um projeto pode gerar um código de desconto do Shopify de uso único por destinatário correspondente, resgatável no checkout da sua própria loja (veja Oferta de desconto). Pedidos contínuos sincronizam automaticamente a partir do webhook orders/paid; uma loja conectada antes deste recurso existir, ou com histórico mais antigo, precisa de uma única importação de Preencher histórico de pedidos em Configurações → Integrações — limitada a aproximadamente os últimos 60 dias, a menos que o Shopify tenha aprovado separadamente este aplicativo para histórico completo de pedidos na sua loja. Um bloco Produto importado do seu catálogo pode gerar independentemente seu próprio Desconto por produto — restrito apenas a esse item, sem necessidade de filtro de público — veja Descontos nativos da loja e Códigos de desconto de produto do Shopify.
  • Catálogo de produtos para o estúdio — as próprias listagens ativas da sua loja também sincronizam com o MailInApp, atualizadas automaticamente na mesma frequência que os clientes (sem botão separado). O seletor Importar da loja do bloco Produto busca nesse catálogo sincronizado e preenche o nome, a descrição, a imagem e o preço de um bloco a partir de um produto real — uma cópia única, não um link ao vivo, então nada em um e-mail enviado pode se distanciar do que você revisou. Ele também sincroniza a página própria de cada produto (a partir do seu handle do Shopify) e, quando ela está disponível, define o bloco para Link para checkout de loja externa apontando direto para ela — então um produto importado já fica pronto para vender na sua loja Shopify sem mais nada a configurar; volte manualmente para Checkout do MailInApp se preferir receber o pagamento pela sua conta Stripe conectada. Uma loja conectada antes deste recurso existir precisa de um rápido Desconectar seguido de Conectar Shopify para conceder a nova permissão read_products que o Shopify exige — até isso acontecer, o seletor simplesmente não mostra nada.

Integridade da conexão e reconexão

O Shopify emite ao MailInApp um token de acesso de curta duração (válido por cerca de uma hora) junto com um refresh token rotativo, e o MailInApp renova esse par automaticamente em segundo plano — a sincronização de clientes, os gatilhos de jornada e a geração de descontos continuam funcionando sem nenhuma ação da sua parte em uso normal.

Se o Shopify revogar ou invalidar esse refresh token — por exemplo, o aplicativo foi desinstalado e reinstalado fora do MailInApp, o acesso foi revogado manualmente no admin do seu Shopify, ou o token simplesmente expirou por inatividade prolongada — o MailInApp deliberadamente para em vez de tentar novamente em silêncio com credenciais obsoletas, e Configurações → Integrações mostra o status da loja como Reconexão necessária. Isso é uma salvaguarda de segurança, não um relato de bug: o MailInApp nunca se reautentica em seu nome sem que você aprove uma nova concessão OAuth pela própria tela do Shopify.

Se você vir esse status, clique em Desconectar e depois em Conectar Shopify novamente em Configurações → Integrações para conceder um novo par de tokens. Isso leva alguns segundos, não cobra a taxa de conexão única de novo, e não afeta os contatos ou pedidos já sincronizados — a sincronização simplesmente retoma assim que a nova conexão for aprovada.

Desconectando

Desconectar em Configurações interrompe a sincronização e qualquer processamento adicional de webhook imediatamente. Os clientes já sincronizados permanecem na lista de contatos — desconectar uma integração nunca exclui contatos, já que eles podem já ser um público de envio para outros projetos. Desinstalar o aplicativo pelo lado do Shopify funciona da mesma forma a princípio. Cerca de 48 horas depois, quando o próprio webhook de exclusão de dados do Shopify disparar, ele também apaga completamente os contatos e registros de carrinho sincronizados — o período de carência padrão que todo aplicativo Shopify precisa respeitar.