API RESTfulAutomaçãoCRM

Carrinho Abandonado usando Carrossel no WhatsApp

Por Réulison Silva
Réulison Silva
Published on
Duração
2 semanas
Função
Venda
Ferramentas
Active Campaing, BIRD
Tecnologias
API RESTful, PHP
Capa do projeto com template de carrossel no whatsapp
Capa do projeto com template de carrossel no whatsapp
Mensagem de carrinho abandonado com carrossel
Mensagem de carrinho abandonado com carrossel
Fluxo de automação no BIRD
Fluxo de automação no BIRD
+2

Hoje eu vou ensinar como fazer um carrossel de carrinho abandonado usando WhatsApp usando API da Plataforma BIRD, mas pode ser qualquer ferramenta que te possibilita usar variáveis customizáveis ou sua própria API com o WhatsApp (oficial da Meta).

Veja um exemplo final da mensagem:

Mensagem de carrinho abandonado contendo a lista de produtos abandonada no carrinho.
Mensagem de carrinho abandonado contendo a lista de produtos abandonada no carrinho.

Como sabemos, a meta funciona com templates fixos que precisam ser enviados previamente para aprovação. Então eu criei 4 templates com variáveis específicas, cada template contém a mesma mensagem com cada uma contendo uma quantidade de cards no carrossel.

Pois não conseguimos incluir cards dinamicamente, pois seria necessário enviar novamente para Meta aprovar o template.

Eu uso PHP para receber o Webhook de carrinho abandonado de uma plataforma de ecommerce, a maioria das plataformas como Shopify possuem essa funcionalidade.

JSON

Exemplo do JSON:

{
   "id":366720,
   "code":"28C1BEA3F0",
   "shipping_method":null,
   "shipping_price":0.0,
   "discount_price":0.0,
   "updated_at":"2025-12-22T10:10:21.659-03:00",
   "shipping_address_id":180154,
   "token":"L7nGbv6TWGC6BXNwpW43kxmHXD8u1Leq",
   "billing_address_id":null,
   "extra":{
      "ip":"177.12.17.84",
      "_ga":"GA1.1.3486120875.5868026093",
      "_fbp":"fb.2.1765209079480.1043149624",
      "campaign":"hike",
      "user_agent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36",
      "_ga_6MN9ETF3W0":"GS2.1.s1766408883$o3$g1$t1766409011$j13$l0$h1055827103",
      "_ga_7M6Y91HFZD":"GS2.1.s1766408984$o1$g1$t1766409018$j26$l0$h0",
      "_ga_HS41WPEF49":"GS2.1.s1766408937$o2$g1$t1766408983$j14$l0$h433620160",
      "Checkout expresso":"Sim"
   },
   "client_id":30433,
   "email":"fulano@gmail.com",
   "first_phone_area":"21",
   "first_phone":"999999999",
   "second_phone_area":null,
   "second_phone":null,
   "shipping_label":null,
   "delivery_type":"loggi",
   "agent":null,
   "channel":"ecommerce",
   "rebate_discount":0.0,
   "coupon_codes":[
      
   ],
   "user_id":null,
   "items_count":2,
   "items":[
      {
         "sku":"LOB-1",
         "name":"Unidades:  1 Unidade de Lobin",
         "quantity":3,
         "available_quantity":9343,
         "price":29.0,
         "images":[
            {
               "url":"https://cdn.vnda.com.br/petvi/2023/10/24/11_34_19_246_11_10_7_792_120lobin201.png?v=1698158059"
            },
            {
               "url":"https://cdn.vnda.com.br/petvi/2023/11/08/11_49_52_224_11_11_4_403_lobin2011.png?v=1699454992"
            },
            {
               "url":"https://cdn.vnda.com.br/petvi/2023/11/13/16_12_14_333_16_11_2_225_lobin202.png?v=1699902743"
            },
            {
               "url":"https://cdn.vnda.com.br/petvi/2023/11/08/11_50_06_568_11_11_4_427_lobin204.png?v=1699455006"
            }
         ]
      },
      {
         "sku":"ZEN-3",
         "name":"Combo 3 Lobin Zen",
         "quantity":1,
         "available_quantity":6956,
         "price":87.0,
         "images":[
            {
               "url":"https://cdn.vnda.com.br/petvi/2025/02/06/18_59_22_391_18_2_5_531_lobin20zen20combo20320ecom2020amazon20.png?v=1738879169"
            },
            {
               "url":"https://cdn.vnda.com.br/petvi/2025/02/06/18_57_41_976_18_2_1_142_lobin20zen20220ecom2020amazon20.png?v=1738879061"
            }
         ]
      }
   ],
   "total":174.0,
   "subtotal":174.0,
   "cart_url":"https://www.petvi.com.br/carrinho/L7nGbv6TWGC6BXNwpW43kxmHXD8u1Leq",
   "browser_ip":"177.12.17.84",
   "last_refuse_reason":null,
   "payment_attempts_count":0,
   "payment_attempts":[
      
   ]
}

Veja um exemplo da Automação no BIRD:

Fluxo de Automação na Plataforma BIRD
Fluxo de Automação na Plataforma BIRD

Como podemos ver acima, essa integração recebe um POST onde eu consigo criar duas condições principais: Se o usuário inseriu cupom, e a quantidade itens no carrinho.

Como funciona?

De acordo com a quantidade de itens no carrinho, a automação seleciona o template com o mesmo número de cards no carrossel e substitui pelas variáveis determinadas no template, como nome dos produtos, imagem dos produtos, preço e seleciona qual template atende as variáveis usadas nas condicionais do BIRD.

Usei informações como: valor total de itens no carrinho, cupons usados, valor do desconto, total com desconto.

Essa Automação também está integrada com o Active Campaign (Plataforma de CRM), ao qual o usuário recebe um e-mail com as mesmas informações.

Exemplo de e-mail:

Exemplo de Template de e-mail usando a mesma API
Exemplo de Template de e-mail usando a mesma API

Para esse e-mail eu utilizei HTML/CSS personalizado. Quanto às variáveis e condicionais, usei os recursos avançados do Active Campaign.

Código:

Para tratar os dados de acordo com as necessidades da Petvi, eu optei por usar PHP. Algumas variáveis precisam ser tratadas de acordo com as especificações da Meta. Por exemplo, como cada carrinho gerado na plataforma possui uma URL específica, exemplo:

"cart_url":"https://www.petvi.com.br/carrinho/L7nGbv6TWGC6BXNwpW43kxmHXD8u1Leq"

A API da Meta não aceita uma variável da URL completa, somente parte dela. Logo você precisa tratar a string e isolar somente o ID do carrinho. Exemplo:

$cart_url = $data['cart_url'];

// Get the path from the URL
$path = parse_url($cart_url, PHP_URL_PATH);

// Get the last part of the path
$code_URL = basename($path);

Assim você inserir inserir no template assim:

https://www.petvi.com.br/carrinho/{{code_URL}}

Para cada tipo de plataforma o JSON pode variar, ou seja, seria um código diferente. Não adiantaria eu deixar o código completo aqui.

Resultados

No WhatsApp analisamos o custo de disparo / receita e tinha uma ROAS de 5 na versão antiga desta automação, onde era apenas enviada uma mensagem oferecendo cupom de desconto.

Mensagem antiga:

Mensagem de WhatsApp na versão anterior
Mensagem de WhatsApp na versão anterior

Quando eu implementei essa nova automação com carrossel contendo a lista de produtos do carrinho e mais informações sobre o desconto, tivemos uma ROAS de 30. Isso mesmo!!!

Para cada R$ 1 gasto em disparo de mensagem (custa em média R$ 0,47 por disparo) tivemos um retorno de R$ 30 reais. E tivemos um ROAS de 136 em e-mail.

Olá! Quer saber mais?

Aprendizado

Usando habilidades de programação e marketing hoje eu consigo ter uma visão de negócio e conseguir implementar as soluções que realmente geram resultado. Antes, o time de marketing era capaz apenas de mudar a copy dessa mensagem. Mas eu percebi que essas mensagens simples não conseguiam entregar a visão real dos benefícios do desconto e dos produtos que o usuário havia colocado no carrinho.

Quem nunca recebeu uma mensagem genérica de carrinho abandonado, onde por muitas vezes, você nem lembrava os produtos pelos quais havia se interessado em comprar.

A recuperação de carrinhos abandonados é essencial para todo o e-commerce, onde o CAC (Custo de Aquisição de Cliente) fica cada vez mais alto em plataformas como Meta Ads, Google Ads e Tiktok Ads. Automações e sistemas que ajudam a diminuir esse CAC é fundamental.

Fique ligado

Seja um Expert em Growth

Receba insights práticos sobre marketing, dados, performance e tecnologia direto no seu email.