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

Lojas Shopify se conectam pelo lado da Shopify, não pelo MailInApp: no seu admin da Shopify, instale o MailInApp pela Shopify App Store (ou, se ele já estiver instalado, abra-o em Apps) e aprove o acesso na própria tela de OAuth do Shopify. 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.

Em seguida, o Shopify leva você ao MailInApp para entrar na sua conta existente ou criar uma grátis — a loja é conectada à conta em que você entrar, e você volta ao app MailInApp dentro do seu admin da Shopify. O painel do MailInApp em si não tem um formulário para digitar o domínio myshopify.com: Configurações → Integrações mostra a loja conectada, o status da sincronização e Desconectar.

Conectar o Shopify é grátis em todos os planos, incluindo o Gratuito. O seu plano MailInApp é gerenciado e cobrado inteiramente pela Shopify, no app MailInApp dentro do seu admin da Shopify — você não passa pelo checkout com cartão ou PayPal do próprio MailInApp.

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 em Configurações → Integrações, seguido de abrir o MailInApp de novo pelo seu admin da 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 em Configurações → Integrações, depois abra o MailInApp novamente pelo seu admin da Shopify e aprove a tela do Shopify para conceder um novo par de tokens. Isso leva alguns segundos, não custa nada 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.