Webhooks
Los webhooks te permiten recibir notificaciones en tiempo real sobre tus enlaces — tanto cuando se hacen clic como cuando se crean, actualizan o eliminan. Linkly envía una solicitud POST a tu URL(s) especificada(s) con información detallada sobre cada evento.
Casos de uso
- Plataformas de automatización: Desencadena flujos de trabajo en Make o Zapier cuando se hace clic en enlaces
- Análisis personalizado: Envía datos de clics a tu propio sistema de análisis
- Actualizaciones de CRM: Actualiza registros de clientes cuando hacen clic en enlaces
- Notificaciones de Slack: Recibe notificaciones en Slack cuando se hace clic en enlaces importantes
- Seguimiento de clientes potenciales: Realiza un seguimiento de cuándo los prospectos interactúan con tus enlaces
Consejo: Para la mayoría de casos de uso de automatización, nuestra integración de Make o integración de Zapier son más fáciles de configurar que webhooks personalizados. Incluyen desencadenantes de clic instantáneos impulsados por webhooks, sin necesidad de codificación.
Cómo configurar webhooks a nivel de enlace
Ve a Enlaces y haz clic en el enlace que deseas configurar.
Desplázate hacia abajo hasta la sección Webhooks.
Ingresa tu(s) URL de webhook, una por línea.
Puedes agregar múltiples URLs de webhook. Todas las URL recibirán la misma carga útil cuando se haga clic en el enlace.

Haz clic en Guardar enlace.
Los webhooks a nivel de enlace solo se activan cuando se hace clic en ese enlace específico.
Cómo configurar webhooks a nivel de espacio de trabajo
Ve a Configuración (icono de engranaje en la barra lateral).
Haz clic en Configuración del espacio de trabajo
Ingresa tu(s) URL de webhook, una por línea.
Puedes agregar múltiples URLs de webhook. Todas las URL recibirán la misma carga útil cuando se haga clic en cualquier enlace en tu espacio de trabajo.

Haz clic en Guardar configuración.
Los webhooks a nivel de espacio de trabajo se activan con cada clic en cualquier enlace en tu espacio de trabajo.
Nota: Si configuras webhooks en ambos niveles, ambos se activarán para clics en ese enlace.
Eventos
Cada webhook recibe todos los tipos de eventos para su ámbito — un webhook a nivel de enlace obtiene eventos para ese enlace, un webhook a nivel de espacio de trabajo obtiene eventos para cada enlace en el espacio de trabajo. Verifica el campo event de nivel superior para diferenciarlos:
event | Se envía cuando |
|---|---|
click | Se hace clic en un enlace corto. Incluye un objeto click con los datos de solicitud del visitante. |
link.created | Se crea un nuevo enlace en el espacio de trabajo. |
link.updated | Cambia la configuración de un enlace. Se activa en cada actualización, incluidas las ediciones guardadas automáticamente, por lo que puedes recibir varias por sesión de edición. |
link.deleted | Se elimina un enlace. El objeto link conserva el slug y dominio que tenía antes de la eliminación. |
Carga útil del webhook
Carga útil de clic
Cuando ocurre un clic, Linkly envía una solicitud POST con la siguiente carga útil JSON:
{
"event": "click",
"timestamp": "2025-01-15T10:30:00Z",
"link": {
"id": 12345,
"name": "My Campaign Link",
"url": "https://example.com/landing-page",
"full_url": "https://yourdomain.com/abc123",
"domain": "yourdomain.com",
"slug": "/abc123",
"destination": "https://example.com/landing-page",
"workspace_id": 1,
"enabled": true,
"cloaking": false,
"forward_params": true,
"block_bots": true,
"public_analytics": false,
"utm_source": "newsletter",
"utm_medium": "email",
"utm_campaign": "spring-sale",
"og_title": "Special Offer",
"og_description": "Check out our spring sale!",
"rules": [
{
"what": "country",
"matches": "US",
"url": "https://example.com/us-landing"
}
]
},
"click": {
"country": "US",
"is_eu_country": false,
"platform": "desktop",
"browser_name": "Chrome",
"referer": "https://twitter.com/",
"isp": "Comcast",
"bot_name": null,
"destination": "https://example.com/landing-page",
"params": {
"utm_source": "twitter"
}
}
}
Campos de carga útil
Información de evento
| Campo | Descripción |
|---|---|
event | click, link.created, link.updated, o link.deleted |
timestamp | Marca de tiempo ISO 8601 del clic |
Objeto de enlace
| Campo | Descripción |
|---|---|
id | Identificador único del enlace |
name | Apodo del enlace |
url | URL de destino original |
full_url | La URL del enlace corto |
domain | Dominio personalizado (si está configurado) |
slug | Ruta/slug de URL |
destination | Destino real para este clic (puede diferir de url si se aplican reglas) |
workspace_id | Identificador del espacio de trabajo |
enabled | Si el enlace está activo |
rules | Matriz de reglas de redirección (geo, dispositivo, rotador) |
utm_* | Parámetros UTM si están configurados |
og_* | Configuración de Open Graph si está configurada |
Objeto de clic
| Campo | Descripción |
|---|---|
country | Código de país de dos letras (p. ej., "US", "GB") |
is_eu_country | Si el clic se originó en la UE |
platform | Plataforma de dispositivo (escritorio, ios, android, etc.) |
browser_name | Nombre del navegador (Chrome, Safari, Firefox, etc.) |
referer | URL de referencia (si está disponible) |
isp | Proveedor de servicios de Internet |
bot_name | Identificador de bot (nulo para clics humanos) |
destination | URL de destino final para este clic |
params | Parámetros de consulta pasados al enlace |
Nota de privacidad: Las direcciones IP nunca se incluyen en las cargas útiles del webhook.
Carga útil del ciclo de vida del enlace
Los eventos link.created, link.updated y link.deleted comparten una forma. No hay objeto click — obtienes el event, un timestamp y el link completo:
{
"event": "link.created",
"timestamp": "2026-06-20T10:30:00Z",
"link": {
"id": 12345,
"name": "My Campaign Link",
"url": "https://example.com/landing-page",
"full_url": "https://yourdomain.com/abc123",
"domain": "yourdomain.com",
"slug": "/abc123",
"workspace_id": 1,
"enabled": true,
"rules": []
}
}
Integraciones de plataformas de automatización
Para una configuración más fácil sin codificación personalizada, utiliza nuestras integraciones nativas:
- Integración de Make - Plataforma de automatización visual con desencadenantes de clic instantáneos
- Integración de Zapier - Conecta Linkly a miles de aplicaciones sin código
Ambas integraciones usan webhooks bajo el capó pero manejan toda la configuración automáticamente.
Mejores prácticas
Múltiples webhooks
Puedes agregar múltiples URLs de webhook (una por línea). Todas las URL recibirán la misma carga útil cuando ocurra un clic.
Manejo de errores
- Los webhooks son fire-and-forget - Linkly no reintenta entregas fallidas
- Los fallos de webhook nunca afectan la redirección - los usuarios siempre llegan a su destino
- Asegúrate de que tu endpoint de webhook responda rápidamente (< 5 segundos recomendado)
Seguridad
- Utiliza endpoints HTTPS para URLs de webhook
- Valida solicitudes entrantes en tu manejador de webhook
- Considera agregar un parámetro secreto a tu URL de webhook para verificación
Prueba
- 1Configura una URL de webhook usando un servicio como webhook.site o RequestBin
- 2Haz clic en tu enlace
- 3Inspecciona la carga útil recibida
- 4Una vez verificado, cambia a tu URL de webhook de producción
Acceso a la API
También puedes gestionar webhooks mediante programación a través de la API:
POST /api/v1/link/:link_id/webhooks
DELETE /api/v1/link/:link_id/webhooks/:hook_id
GET /api/v1/link/:link_id/webhooks
POST /api/v1/workspace/:workspace_id/webhooks
DELETE /api/v1/workspace/:workspace_id/webhooks/:hook_id
GET /api/v1/workspace/:workspace_id/webhooks
Consulta la Documentación de API para más detalles.
Preguntas frecuentes sobre webhooks
¿Qué eventos pueden enviar webhooks?
Los webhooks se activan en cuatro eventos, identificados por el campo event en la carga útil. Obtienes click cuando se hace clic en un enlace, más link.created, link.updated y link.deleted cuando cambian los enlaces. Cada webhook recibe todos los tipos de eventos para su ámbito, por lo que bifurca en el campo event para manejar cada uno.
¿Por qué mis webhooks no se están activando?
Verifica que tu URL de webhook sea válida y accesible, y que los webhooks estén guardados en el enlace o espacio de trabajo. Para eventos de clic, ten en cuenta que los webhooks solo se activan cuando se registra un clic real - las IPs excluidas o rastreadores omitidos no los desencadenarán.
¿Por qué algunos campos son nulos en la carga útil del webhook?
Algunos campos pueden ser nulos si la información no estaba disponible (p. ej., sin referencia), la configuración de privacidad impidió la recopilación, o el clic fue de un bot (en cuyo caso bot_name se completará en su lugar).
¿Linkly reintenta entregas de webhook fallidas?
No. Los webhooks son fire-and-forget. Las entregas fallidas no se reintentan, y Linkly no rastrea el estado de entrega de webhooks. Las solicitudes de webhook se agotan después de 5 segundos.
¿Linkly admite postbacks para seguimiento de conversiones?
No. Los webhooks de Linkly son solo salientes y se activan cuando ocurren clics. No podemos recibir datos de postback de redes de afiliados o plataformas de anuncios. Para seguimiento de conversiones, utiliza el seguimiento nativo de la plataforma de destino, pasa un ID de clic a través del reenvío de parámetros de consulta, o utiliza nuestra integración de BigQuery para unir datos de clic con tus datos de conversión.
¿Debo usar webhooks o Make/Zapier?
Para la mayoría de casos de uso de automatización, nuestras integraciones de Make o Zapier son más fáciles de configurar. Usan webhooks bajo el capó pero manejan toda la configuración automáticamente. Usa webhooks personalizados cuando necesites enviar datos a tus propios sistemas o requieras más control sobre la integración.
Disponibilidad del plan
Disponible desde Business
Rastrea 500 clics mensuales con todas las funciones incluidas.