Enviar eventos de clic de URLs cortas a sistemas externos vía webhook automatiza la entrada en CRM, alertas en Slack y agregaciones en Google Sheets. A cientos de miles de clics diarios, el ciclo CSV+import manual colapsa, así que la integración por webhook se vuelve obligatoria. Bitly, Rebrandly y Short.io ofrecen webhooks como estándar SaaS.
Empieza por la schema del payload: short code, URL original, hora UTC, IP, User-Agent, Referer, geo (país, región), tipo de dispositivo y UTM. Valida con JSON Schema y coloca añadidos bajo "extensions" para preservar compatibilidad. Stripe y GitHub son referencias.
Verificar firmas no es opcional. El emisor firma con HMAC-SHA256 y el receptor valida. "X-Hub-Signature-256" de GitHub y "Stripe-Signature" de Stripe ilustran el patrón. La lista blanca de IP por sí sola permite inyección. Combina con verificación de timestamp (5 minutos) para bloquear replays.
La idempotencia se olvida con frecuencia. Errores de red disparan reintentos y los receptores ingenuos duplican procesamiento. Asigna "event_id" único y descarta los IDs ya vistos en 24 horas, con TTL en Redis o DynamoDB. Reintentos: backoff exponencial (1m, 5m, 30m, 2h, 8h) hasta 5 veces para 5xx y timeouts; los 4xx detienen reintentos al instante. Los receptores deben confirmar en 1 segundo y empujar trabajo pesado a colas (SQS, Pub/Sub).