URLs personalizadas en botones de campañas
Esta nueva funcionalidad te permite enviar URLs personalizadas en los botones de campañas de WhatsApp.
URLs personalizadas en botones de campañas - Guía de Usuario
¿Qué es esta Funcionalidad?
Esta nueva funcionalidad te permite enviar URLs personalizadas en los botones de campañas de WhatsApp. Cada destinatario puede recibir una URL única en los botones del mensaje, permitiendo crear experiencias personalizadas como:
- Enlaces de seguimiento de pedidos con IDs únicos de orden
- Enlaces de soporte al cliente con parámetros específicos del cliente
- Gestión de citas con identificadores únicos de cita
- Páginas de productos personalizadas con seguimiento específico del usuario
En lugar de enviar la misma URL estática a todos los destinatarios, ahora puedes personalizar dinámicamente la URL para cada persona según sus datos.
¿Dónde Puedo Acceder a Esta Funcionalidad?
Esta funcionalidad está disponible a través del endpoint de la API externa v2 de Campañas de WhatsApp:
POST /api/external/v2/whatsapp_campaigns/Puedes usar este endpoint para crear campañas de WhatsApp con parámetros de botones dinámicos usando tus credenciales API existentes.
¿Cómo Usarla?
Requisitos Previos
Antes de usar esta funcionalidad, asegúrate de:
- Tu plantilla de WhatsApp incluye componentes de botón con marcadores de posición numéricos usando la sintaxis
{{1}},{{2}}, etc.
- Tienes acceso al endpoint de la API externa v2 para campañas de WhatsApp
- Tu plantilla de WhatsApp está aprobada por Meta/WhatsApp con los parámetros de botón
Paso 1: Prepara tu Plantilla de WhatsApp
Tu plantilla de WhatsApp debe tener botones con parámetros URL (URL Dinámica). Los parámetros en las URLs de los botones siempre usan números como {{1}}, {{2}}, etc. Por ejemplo:
{
"buttons":[
{
"type":"URL",
"text":"Rastrear Pedido",
"url":"https://tusitio.com/pedidos/{{1}}"
},
{
"type":"URL",
"text":"Contactar Soporte",
"url":"https://tusitio.com/soporte?cliente={{1}}"
}
]
}Paso 2: Prepara los Datos de tu Campaña
Al crear tu campaña, incluye columnas de parámetros de botón en tus headers y records. Las columnas de parámetros de botón deben seguir esta convención de nomenclatura:
button_[nombre_descriptivo]⚠️ IMPORTANTE - El Orden es Crítico:
El orden de las columnas button_* en tus headers determina qué valor se envía a qué botón:
- La primera columna button_* proporciona el valor para el primer botón (su parámetro {{1}})
- La segunda columna button_* proporciona el valor para el segundo botón (su parámetro {{1}})
- Y así sucesivamente…
Los nombres después de button_ son solo descriptivos para que tu código sea legible. Lo que realmente importa es el orden.
Por ejemplo:
- button_orderid (primera columna button_) → va al parámetro {{1}} del primer botón
- button_customerid (segunda columna button_) → va al parámetro {{1}} del segundo botón
Paso 3: Crea tu Campaña
Realiza una solicitud POST a la API con los datos de tu campaña:
{
"account_uid":"tu_account_uid",
"visual_name":"Campaña de Rastreo de Pedidos",
"key":"tu_clave_de_plantilla",
"headers":[
"user_id",
"image_url",
"param_1",
"param_2",
"param_3",
"button_orderid",
"button_customerid",
"campo_metadata"
],
"records":[
[
"56912345678",
"https://example.com/image.jpg",
"Juan Pérez",
"Pedido #12345",
"Enviado",
"ORD12345",
"CUST001",
"metadata_extra"
],
[
"56987654321",
"https://example.com/image.jpg",
"María García",
"Pedido #67890",
"En proceso",
"ORD67890",
"CUST002",
"metadata_extra"
]
],
"bot_id":null,
"mins_to_close":10,
"mins_to_retry":5,
"allow_survey":true,
"allow_duplicate_users":false
}Reglas Importantes
1. Convención de Nomenclatura de Columnas
- Las columnas de parámetros de botón deben empezar con
button_
- La parte después de
button_es solo descriptiva (puede ser cualquier nombre que te ayude a identificar el propósito)
- Ejemplos:
button_orderid,button_numero_pedido,button_tracking
2. El Orden de las Columnas es Crítico
- El orden de las columnas
button_*en tus headers determina a qué botón va cada valor
- Primera columna
button_*→ Primer botón (parámetro{{1}})
- Segunda columna
button_*→ Segundo botón (parámetro{{1}})
- Tercera columna
button_*→ Tercer botón (parámetro{{1}})
- Los nombres son solo descriptivos; el orden es lo que importa
3. Los Parámetros de Botón No Pueden Estar Vacíos
- Cada valor de parámetro de botón debe contener una cadena no vacía
- Si un parámetro de botón está vacío, la validación de la campaña fallará con un error
EMPTY_PARAMETER
4. Parámetros de Botón vs Parámetros Regulares
- Los parámetros de botón son separados de los parámetros regulares del mensaje (
param_1,param_2, etc.)
- Las columnas de parámetros de botón no se incluyen en metadata
- Se usan específicamente para personalización de URLs de botones
5. Funcionalidad Opcional
- Si tu plantilla no tiene botones, no necesitas incluir columnas
button_*
- Las campañas existentes sin parámetros de botón continuarán funcionando normalmente
Ejemplo Completo
Aquí hay un ejemplo completo para una campaña de seguimiento de pedidos de e-commerce:
Tu Plantilla de WhatsApp:
Mensaje: Hola {{1}}, tu pedido {{2}} está {{3}}! Revisa los detalles abajo.
Botón 1: "Rastrear Pedido" → https://tienda.example.com/rastreo/{{1}}
Botón 2: "¿Necesitas Ayuda?" → https://tienda.example.com/soporte?cliente={{1}}Nota: Los botones usan {{1}} porque WhatsApp solo permite parámetros numéricos. Cada botón puede tener su propio {{1}} que se reemplaza con valores diferentes según el orden de las columnas.
Tu Solicitud API:
{
"account_uid":"abc123",
"visual_name":"Actualizaciones de Pedidos Septiembre",
"key":"plantilla_actualizacion_pedido",
"headers":[
"user_id",
"image_url",
"param_1",
"param_2",
"param_3",
"button_orderid",
"button_customerid",
"id_pedido_interno"
],
"records":[
[
"56912345678",
"https://cdn.example.com/paquete.jpg",
"María",
"Audífonos Premium",
"listo para recoger",
"TRK789456",
"CUS987654",
"pedido_interno_123"
],
[
"56987654321",
"https://cdn.example.com/paquete.jpg",
"Carlos",
"Mouse Inalámbrico",
"en camino",
"TRK123789",
"CUS123456",
"pedido_interno_456"
]
],
"bot_id":null,
"mins_to_close":30,
"mins_to_retry":10,
"allow_survey":true,
"allow_duplicate_users":false
}Explicación del orden:
- button_orderid es la primera columna button_* → valor va al primer botón (“Rastrear Pedido”)
- button_customerid es la segunda columna button_* → valor va al segundo botón (“¿Necesitas Ayuda?”)
Lo que Recibe Cada Destinatario:
María (56912345678) recibe:
Hola María, tu pedido Audífonos Premium está listo para recoger! Revisa los detalles abajo.
[Rastrear Pedido] → https://tienda.example.com/rastreo/TRK789456
[¿Necesitas Ayuda?] → https://tienda.example.com/soporte?cliente=CUS987654Carlos (56987654321) recibe:
Hola Carlos, tu pedido Mouse Inalámbrico está en camino! Revisa los detalles abajo.
[Rastrear Pedido] → https://tienda.example.com/rastreo/TRK123789
[¿Necesitas Ayuda?] → https://tienda.example.com/soporte?cliente=CUS123456Mejores Prácticas
- Prueba con Campañas Pequeñas Primero: Crea una campaña de prueba con 1-2 destinatarios antes de enviar a toda tu audiencia
- Usa Nombres Descriptivos de Parámetros: Usa nombres claros como
button_orderid,button_numero_rastreo,button_id_cita
- Valida tus Datos: Asegúrate de que todos los valores de parámetros de botón estén presentes y correctamente formateados antes de enviar
- Verifica el Orden: Revisa dos veces que el orden de tus columnas
button_*coincida con el orden de los botones en tu plantilla
- Mantén las URLs Cortas: Aunque puedes personalizar URLs, mantenlas razonablemente cortas para una mejor experiencia de usuario