1. Wiki
  2. Casos de uso

Recupera carritos abandonados por email o WhatsApp

Tu tienda avisa a la BIP cuando el carrito se detiene. La BIP espera el tiempo que defines y envía el recordatorio. Si la persona compra antes, no sale nada.

Respuesta rápida

Crea una campaña de Disparo por API con Retraso y activa el reingreso con 1 día de espera. Tu tienda llama a /api/campaigns/trigger en cada cambio del carrito y a /api/campaigns/cancel cuando se cierra el pedido. Cada llamada reinicia la cuenta, y el recordatorio cancelado no sale ni cuenta como envío.

EsfuerzoAPICanalEmail + WhatsAppPlanGratis

Quien deja el carrito recibe un recordatorio con su nombre y el producto que quedó pendiente, a la hora que elijas. Quien compra antes no recibe nada.

Lo que necesita

  • Una cuenta en la BIP (el plan gratuito envía por email)
  • Acceso al servidor de tu tienda, donde ocurren el carrito y el pedido
  • El nombre y el email del cliente en cuanto se identifica en el carrito (el teléfono, para WhatsApp)
  • Una clave de API con Disparo de Campañas y Escritura de leads
  • Para WhatsApp: plan de pago, número conectado y una plantilla aprobada

Lo que vas a lograr

  • Un recordatorio para quien dejó el carrito, con su nombre de pila y el producto que quedó pendiente.
  • Ningún mensaje para quien todavía está comprando: cada cambio en el carrito reinicia la cuenta.
  • Ningún recordatorio para quien ya compró: el pedido cancela el envío, y el envío cancelado no cuenta en tu saldo.
  • Como máximo un recordatorio cada 24 horas por persona, por cada carrito que abandone.
  • Contactos nuevos creados en la misma llamada, sin duplicar a nadie que ya esté en la BIP.

Cómo funciona

  1. 1Tu tienda llama a la BIP cada vez que cambia el carrito
  2. 2La BIP espera el retraso y reinicia la cuenta si la persona vuelve
  3. 3Si compró, la tienda cancela; si no compró, sale el recordatorio

La campaña usa el Disparo por API en modo Retraso. En la práctica:

  • Tu tienda llama a /api/campaigns/trigger en cada cambio del carrito de un cliente identificado. La BIP programa el recordatorio para dentro de una hora (o el tiempo que definas).
  • Una nueva llamada para la misma persona reinicia la cuenta. Cada persona tiene como máximo un recordatorio en espera en esta campaña.
  • Cuando se cierra el pedido o se vacía el carrito, la tienda llama a /api/campaigns/cancel. El recordatorio pendiente se descarta: no sale y no cuenta como envío.
  • Si llega la hora sin compra, la BIP revisa la Ventana de Reingreso del Lead y arma el email con los datos más recientes del contacto. Si la persona cambió de producto, el recordatorio muestra el carrito actualizado.

Paso a paso

1. Crea los campos del carrito

El recordatorio convence más cuando menciona el producto. Para eso, la tienda guarda el producto en un campo del contacto en cada llamada.

  1. En Ajustes → General, ve a Campos y haz clic en Añadir campo.
  2. En Tipo de campo, elige Cadena. En Nombre del campo, escribe Produto do carrinho (“producto del carrito”) y haz clic en Guardar.
  3. Para la versión por WhatsApp, crea también el campo Código do carrinho (“código del carrito”), de tipo Cadena. Lleva a la persona directo a su carrito.
dash.bip.marketing/…/settings
Campos personalizados Produto do carrinho y Código do carrinho en Ajustes, pestaña General

Captura de pantalla próximamente

Campos personalizados Produto do carrinho y Código do carrinho en Ajustes, pestaña General

2. Crea la clave de API

  1. En Ajustes, abre la pestaña Claves de API y haz clic en Añadir nueva clave de API.
  2. En Nombre, escribe Loja Horizonte — carrito.
  3. En Alcances, activa Disparo de Campañas y Escritura de leads. El segundo permite que la tienda envíe el contacto como objeto: la BIP crea o actualiza el contacto y programa el recordatorio en la misma llamada.
  4. Haz clic en Guardar y copia la Clave de API. Guarda la clave en el servidor de la tienda, en una variable de entorno, y nunca en el código del sitio.
dash.bip.marketing/…/settings?tab=api-keys
Nueva clave de API con los alcances Disparo de Campañas y Escritura de leads activados

Captura de pantalla próximamente

Nueva clave de API con los alcances Disparo de Campañas y Escritura de leads activados

3. Arma el email del recordatorio

  1. En Plantillas de email, haz clic en Nueva plantilla.
  2. Haz clic en Ajustes y completa Nombre, Idioma (Español), Asunto y Vista previa. Los textos están en Listo para copiar.
  3. Arma los bloques: logo, encabezado, texto, botón al carrito y redes sociales.
  4. En el texto, escribe @Produto y elige "Produto do carrinho" field value. Haz clic en la variable y completa el Valor de respaldo con algunos productos.
  5. En el bloque de botón, completa URL del enlace con la página del carrito de tu tienda.
  6. Haz clic en Guardar.
dash.bip.marketing/…/emails-templates/…
Editor de email con el recordatorio del carrito y la variable del producto en el texto

Captura de pantalla próximamente

Editor de email con el recordatorio del carrito y la variable del producto en el texto

4. Crea la campaña con retraso

  1. En Campañas, haz clic en Nueva campaña.
  2. En Nombre de la campaña, escribe Carrito abandonado — email y elige el emoji 🛒.
  3. En Tipo de Programación, elige Disparo por API.
  4. En Modo de Disparo, elige Retraso. En Retraso (Segundos), escribe 3600 (una hora).
  5. En Canal, elige Email y, en Plantilla de email, vincula la plantilla del paso 3.

Las campañas por API no tienen sección de segmentos: cada llamada de la tienda indica quién recibe el mensaje.

dash.bip.marketing/…/campaigns/…
Campaña con Disparo por API, modo Retraso y 3600 segundos

Captura de pantalla próximamente

Campaña con Disparo por API, modo Retraso y 3600 segundos

5. Activa el reingreso

Quien abandona un carrito hoy puede abandonar otro el mes que viene. Con la Ventana de Reingreso del Lead desactivada (el valor predeterminado), cada contacto recibe la campaña una sola vez, para siempre: el segundo carrito de Marina no tendría recordatorio.

  1. En Ventana de Reingreso del Lead, activa Permitir Reingreso del Lead.
  2. En Período de Espera (Días), escribe 1.

Con 1 día, cada persona recibe como máximo un recordatorio cada 24 horas, aunque abandone varios carritos el mismo día. La BIP revisa la ventana cuando termina el retraso. Un recordatorio frenado por la ventana aparece con el estado Rechazada en las estadísticas y no cuenta como envío. No lo dejes en 0: sin período de espera, la misma persona puede recibir varios recordatorios el mismo día.

dash.bip.marketing/…/campaigns/…
Ventana de Reingreso del Lead con Permitir Reingreso del Lead activado y 1 día de espera

Captura de pantalla próximamente

Ventana de Reingreso del Lead con Permitir Reingreso del Lead activado y 1 día de espera

6. Prueba y activa

  1. Haz clic en Guardar → Guardar borrador.
  2. Haz clic en Probar campaña, escribe tu email y haz clic en Enviar prueba. Si todavía no eres contacto, créate antes en Leads → Crear lead.
  3. Revisa el email. La prueba sale al instante, sin esperar el retraso, y no consume envíos. Si tu contacto no tiene el campo Produto do carrinho, aparece el respaldo algunos productos.
  4. Haz clic en Guardar → Guardar y Activar y confirma en Activar Disparo por API. La campaña pasa al estado Activo y empieza a aceptar llamadas.
dash.bip.marketing/…/campaigns/…
Ventana de confirmación Activar Disparo por API

Captura de pantalla próximamente

Ventana de confirmación Activar Disparo por API

7. Conecta la tienda a la BIP

  1. En la campaña, abre Integración vía API. Los comandos ya traen el ID de la campaña, que también está al final de la dirección de la página.
  2. Cada vez que cambie el carrito de un cliente identificado (producto agregado, producto eliminado, cantidad modificada), llama a /api/campaigns/trigger con el lead como objeto: name, email y los campos del carrito. La respuesta trae "mode": "delay".
  3. Cuando se complete el pedido, o se vacíe el carrito, llama a /api/campaigns/cancel con el mismo email. La respuesta trae "cancelled": true cuando había un recordatorio en espera.
  4. Un contacto nuevo necesita un name con al menos 2 caracteres y un email o un teléfono. El teléfono, siempre con + y código de país: +5541998765432.

Los comandos listos están en Listo para copiar.

dash.bip.marketing/…/campaigns/…
Panel Integración vía API con los comandos de disparo y de cancelación

Captura de pantalla próximamente

Panel Integración vía API con los comandos de disparo y de cancelación

Listo para copiar

Campaña

OpciónValor
Nombre de la campaña🛒 Carrito abandonado — email
Tipo de ProgramaciónDisparo por API
Modo de DisparoRetraso
Retraso (Segundos)3600
Ventana de Reingreso del LeadPermitir Reingreso del Lead activado, Período de Espera (Días) 1
CanalEmail
Plantilla de emailCarrito abandonado · Loja Horizonte

Retrasos comunes en Retraso (Segundos):

EsperaSegundos
30 minutos1800
1 hora3600
2 horas7200
4 horas14400
24 horas86400

Campos

Nombre del campoTipo de campoValor de ejemploDónde aparece
Produto do carrinhoCadenaCamisa de Linho AreiaTexto del email y de WhatsApp
Código do carrinhoCadenaLH8F3K2Botón de WhatsApp

Con más de un producto, envía un resumen: Camisa de Linho Areia y 2 artículos más.

Email

Donde aparece [@primer nombre], escribe @first y elige lead.firstName(). Donde aparece [@Produto do carrinho], escribe @Produto y elige el campo. Completa cada Valor de respaldo según la tabla al final de esta sección.

Asunto
[@primer nombre], tu carrito te está esperando
Vista previa
Guardamos todo en Loja Horizonte. Finaliza tu compra cuando quieras.
OrdenBloqueAjuste sugerido
1Añadir imagenLogo de Loja Horizonte, Ancho máximo (px) 160, URL del enlace de la tienda
2Añadir encabezadoSaludo con el nombre de pila
3Añadir textoEl producto que quedó en el carrito
4Añadir botónUna sola acción, con Ancho de 50
5Añadir divisorAncho máximo (px) 120, color claro
6Añadir textoAyuda con tallas, envíos y cambios
7Agregar Redes SocialesSolo las redes que usa la tienda
Encabezado
[@primer nombre], olvidaste algo aquí
Texto
Dejaste [@Produto do carrinho] en tu carrito de Loja Horizonte. Guardamos todo para ti: solo tienes que volver y finalizar la compra.

Los productos del carrito no quedan reservados. Si te gustó, asegura el tuyo antes de que se agote.

Botón — Nombre
Volver al carrito
Botón — URL del enlace
https://lojahorizonte.com.br/carrinho?origem=bip-carrinho
Texto final
¿Tienes dudas sobre tallas, envíos o cambios? Encuentra las respuestas en lojahorizonte.com.br/ajuda.
VariableDóndeValor de respaldo
lead.firstName()AsuntoHola
lead.firstName()EncabezadoOye
"Produto do carrinho" field valueTextoalgunos productos

La tienda siempre envía el nombre al crear un contacto, así que el respaldo del nombre casi nunca aparece.

WhatsApp

Para la versión por WhatsApp, crea la plantilla en la pestaña Plantillas de la pantalla WhatsApp, con Categoría Marketing e Idioma Spanish (LATAM).

  • Botón 1, URL: https://lojahorizonte.com.br/carrinho/{{1}}, con el ejemplo LH8F3K2.
  • Botón 2, Respuesta rápida: quien lo toca entra en la Tasa de respuesta, y la conversación sigue en la app WhatsApp Business.
  • Muestras de variables del cuerpo: {{1}} Marina, {{2}} Camisa de Linho Areia.
Variable en la campañaCampo del leadValor de ejemplo
Cuerpo · {{1}}first nameMarina
Cuerpo · {{2}}"Produto do carrinho" field valueCamisa de Linho Areia
Botón 1 · {{1}}"Código do carrinho" field valueLH8F3K2

Para crear la plantilla con Importar desde JSON:

horizonte_carrinho_lembrete.json
[
  {
    "name": "horizonte_carrinho_lembrete",
    "category": "MARKETING",
    "language": "es",
    "components": [
      { "type": "HEADER", "format": "TEXT", "text": "Tu carrito te está esperando" },
      { "type": "BODY", "text": "¡Hola, {{1}}! Dejaste {{2}} en tu carrito de Loja Horizonte. Guardamos todo para que finalices la compra cuando quieras. Toca el botón para volver directo a tu carrito.", "example": { "body_text": [["Marina", "Camisa de Linho Areia"]] } },
      { "type": "FOOTER", "text": "Loja Horizonte · lojahorizonte.com.br" },
      { "type": "BUTTONS", "buttons": [
        { "type": "URL", "text": "Ver mi carrito", "url": "https://lojahorizonte.com.br/carrinho/{{1}}", "example": ["https://lojahorizonte.com.br/carrinho/LH8F3K2"] },
        { "type": "QUICK_REPLY", "text": "Tengo una duda" }
      ] }
    ]
  }
]

API

Reemplaza TU_CLAVE_DE_API por tu clave e ID_DE_LA_CAMPAÑA por el ID del panel Integración vía API.

El carrito cambió: programa o reinicia el recordatorio
curl -X POST https://api.bip.marketing/api/campaigns/trigger \
  -H "Content-Type: application/json" \
  -H "x-bip-api-key: TU_CLAVE_DE_API" \
  -d '{
    "campaignId": "ID_DE_LA_CAMPAÑA",
    "lead": {
      "name": "Marina Alves",
      "email": "marina.alves@exemplo.com",
      "phone": "+5541998765432",
      "fields": [
        { "key": "Produto do carrinho", "value": "Camisa de Linho Areia" },
        { "key": "Código do carrinho", "value": "LH8F3K2" }
      ]
    }
  }'
Pedido completado: cancela el recordatorio
curl -X POST https://api.bip.marketing/api/campaigns/cancel \
  -H "Content-Type: application/json" \
  -H "x-bip-api-key: TU_CLAVE_DE_API" \
  -d '{"campaignId": "ID_DE_LA_CAMPAÑA", "lead": "marina.alves@exemplo.com"}'
Respuesta del disparo
{"campaignId": "ID_DE_LA_CAMPAÑA", "leadId": "ID_DEL_CONTACTO", "mode": "delay"}
Respuesta de la cancelación
{"campaignId": "ID_DE_LA_CAMPAÑA", "cancelled": true, "leadId": "ID_DEL_CONTACTO"}

"cancelled": false significa que no había ningún recordatorio en espera: el retraso ya había terminado o no se disparó nada. No es un error.

TypeScript
// En el servidor de Loja Horizonte
const API_KEY = process.env.BIP_API_KEY ?? 'TU_CLAVE_DE_API';
const CAMPANHA_CARRINHO = 'ID_DE_LA_CAMPAÑA';

type Carrinho = { codigo: string; cliente: { nome: string; email: string; telefone?: string }; // teléfono con + y código de país itens: { nome: string }[]; };

async function bip(path: string, body: unknown) { const res = await fetch(https://api.bip.marketing${path}, { method: 'POST', headers: { 'Content-Type': 'application/json', 'x-bip-api-key': API_KEY }, body: JSON.stringify(body) }); const texto = await res.text(); if (res.ok) return JSON.parse(texto); // Cancelación de alguien que nunca entró en la BIP: no había nada que cancelar if (path.endsWith('/cancel') && res.status === 404 && texto.includes('Lead not found')) { return { cancelled: false }; } throw new Error(BIP ${res.status}: ${texto}); }

const resumo = (itens: { nome: string }[]) => itens.length > 1 ? ${itens[0].nome} e mais ${itens.length - 1} ${itens.length === 2 ? 'item' : 'itens'} : itens[0].nome;

// Producto agregado, eliminado o cantidad modificada: programa o reinicia el recordatorio export const carrinhoMudou = (c: Carrinho) => bip('/api/campaigns/trigger', { campaignId: CAMPANHA_CARRINHO, lead: { name: c.cliente.nome, email: c.cliente.email, ...(c.cliente.telefone ? { phone: c.cliente.telefone } : {}), fields: [ { key: 'Produto do carrinho', value: resumo(c.itens) }, { key: 'Código do carrinho', value: c.codigo } ] } }); // { campaignId, leadId, mode: 'delay' }

// Pedido completado o carrito vaciado: cancela el recordatorio pendiente export const carrinhoFechado = (email: string) => bip('/api/campaigns/cancel', { campaignId: CAMPANHA_CARRINHO, lead: email }); // { cancelled: true | false }

Cómo medir

En Campañas, abre Estadísticas de la campaña (con el ícono de gráfico en la lista o en la parte superior de la campaña).

  • Procesado (N ejecuciones): recordatorios que la BIP procesó después del retraso. Los disparos cancelados no aparecen: nunca llegaron a procesarse.
  • Entregado, Tasa de apertura y Tasa de clics: cuántos recordatorios llegaron, se abrieron y generaron un clic.
  • Enlaces más clicados: el enlace del botón, con el parámetro origem=bip-carrinho, muestra cuántos clics volvieron al carrito.
  • Interacciones del destinatario: filtra por Clicado para ver quién volvió al carrito. Filtra por Rechazada para ver a quién frenó la ventana, con el motivo El lead está dentro de la ventana de reingreso.
  • En la versión por WhatsApp: Entregado, Tasa de lectura y Tasa de respuesta (incluye los toques en Tengo una duda).

En tu sistema, dos lecturas completan el panorama:

  • La respuesta de la cancelación en cada pedido. "cancelled": true significa que la persona compró antes de la hora del recordatorio, y no salió nada. En un carrito que la tienda disparó, "cancelled": false significa que el retraso ya había terminado: la compra llegó después de la hora del recordatorio. Crúzalo con Interacciones del destinatario para ver si lo recibió e hizo clic.
  • El parámetro origem=bip-carrinho en la dirección de las visitas, para vincular los pedidos al recordatorio en los informes de la tienda.

En BIP Lite, la tarjeta Uso muestra cuánto del saldo del mes ya usaron los recordatorios.

Variaciones

Email o WhatsApp

  • Solo WhatsApp (planes de pago): sigue los mismos pasos, pero en el paso 4 elige WhatsApp en Canal, la plantilla horizonte_carrinho_lembrete y la asignación de variables de Listo para copiar. La tienda debe enviar el phone del cliente, con + y código de país.
  • Los dos canales: cada campaña usa un solo canal. Crea una campaña de email y otra de WhatsApp, con retrasos distintos, como 3600 en el email y 86400 en WhatsApp. La tienda llama a trigger y cancel en las dos, con los dos IDs. Cada recordatorio que sale cuenta como un envío.

Contacto que ya está en la BIP

Si el cliente ya es contacto y no usas los campos del carrito, envía lead como texto, con el email o el teléfono. En ese caso, la clave solo necesita Disparo de Campañas.

Preguntas frecuentes

¿Quien compra antes de la hora recibe el recordatorio?

No. Cuando se cierra el pedido, la tienda llama a /api/campaigns/cancel y el recordatorio pendiente se descarta. No sale y no cuenta como envío.

¿Y si la persona vuelve y cambia el carrito?

Cada nueva llamada para la misma persona reinicia la cuenta. Con 3600 segundos, el recordatorio sale una hora después del último cambio, una sola vez. Y muestra el producto más reciente, porque la BIP arma el mensaje en el momento del envío.

¿Necesito crear un segmento?

No. Las campañas de Disparo por API no usan segmentos: cada llamada de la tienda indica quién recibe el mensaje. Si la persona todavía no es contacto, la misma llamada crea el contacto.

¿Cuánto consume esto de mi plan?

En BIP Lite, cada recordatorio procesado usa un envío del mes. Los recordatorios cancelados y los frenados por la Ventana de Reingreso del Lead no cuentan. El plan gratuito incluye 1.000 envíos por mes, por email.

Ver también