Disparadores de campaña
Endpoint intermediario para notificar eventos de negocio que disparan automatismos en Fideltour.
Tabla de Contenidos¶
- Introducción
- Principio de integración
- Estado actual (fase 1)
- Autenticación
- Métodos disponibles
- Tabla de parámetros
- Ejemplos
- Respuestas
Introducción¶
Este endpoint permite que un sistema externo (inicialmente Mirai) notifique eventos de negocio relacionados con reservas o fidelización. HotelDataHub actúa como intermediario: recibe el evento, lo reenvía a Fideltour con el token del cliente y deja que Fideltour decida si debe lanzar una automation asociada (confirmación de reserva, modificación, cancelación, alta en club de fidelización, etc.).
El sistema externo no envía emails ni ejecuta una automation concreta: solo notifica el evento.
Es necesario que el apiuser posea el permiso "automation" para utilizar este endpoint.
Principio de integración¶
Mirai genera o actualiza una reserva
↓
Mirai notifica un evento a HotelDataHub
↓
HotelDataHub reenvía el evento a Fideltour
↓
Fideltour identifica la cuenta mediante el token y localiza la reserva/contacto
↓
Fideltour lanza el trigger de Automation si aplica
Estado actual (fase 1)¶
Importante: En esta fase, Fideltour todavía no expone el endpoint de automation, por lo que HotelDataHub responde siempre
200 acceptedindependientemente de la respuesta de Fideltour. Esto permite a Mirai avanzar con su integración.El reenvío del resultado real de Fideltour (
409 automation_not_configured,422 booking_not_found,400 invalid_trigger,401 invalid_token) se habilitará en una fase posterior, cuando Fideltour publique su endpoint.
Autenticación¶
Cada cuenta integrada tiene un token específico que identifica al cliente (hotel chain). El token
se envía en la cabecera Authorization y evita que el sistema externo tenga que enviar el
identificador del cliente en cada petición.
Authorization: Token xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Métodos disponibles¶
| Método | Endpoint |
|---|---|
| POST | <PENDIENTE: confirmar dominio público, p.ej. https://app.hoteldatahub.io/api/v1/automation/trigger-executions/> |
Tabla de parámetros¶
| Clave | Tipo | Obligatorio | Descripción |
|---|---|---|---|
trigger |
String | Sí | Evento que se notifica. Ejemplos iniciales: booking.created, booking.modified, booking.cancelled. Ejemplos futuros: loyalty.member.created, loyalty.password.changed, loyalty.level.changed, loyalty.points.updated. |
booking_localizer |
String | Sí (en eventos de reserva) | Localizador que Fideltour usa para encontrar la reserva dentro de la cuenta identificada por el token. |
occurred_at |
Datetime (ISO 8601) | Recomendado | Fecha/hora en la que ocurrió el evento en el sistema externo. Si no se informa, Fideltour usa la fecha/hora de recepción. |
event_id |
String | Opcional (recomendado) | Identificador único del evento en el sistema externo. Mejora la idempotencia y evita procesar dos veces el mismo evento ante reintentos. |
email |
String | Opcional | Ayuda a desambiguar la reserva/contacto cuando hay riesgo de localizadores duplicados. |
metadata |
Objeto | Opcional | Datos adicionales no críticos (idioma, mercado, canal, origen, datos técnicos del emisor). |
Ejemplos¶
Petición (POST)¶
Protocolo: HTTP/1.1
Método: POST
Endpoint: <PENDIENTE: dominio público>/api/v1/automation/trigger-executions/
Headers:
Content-Type: application/json
Authorization: Token xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Body:
{
"trigger": "booking.created",
"booking_localizer": "ABC123",
"occurred_at": "2026-05-26T14:30:00Z",
"event_id": "mirai-evt-123456",
"metadata": {
"source": "mirai",
"language": "es",
"market": "ES"
}
}
Respuestas¶
Evento aceptado¶
200 OK
{
"status": "accepted",
"trigger": "booking.created",
"booking_localizer": "ABC123"
}
En la fase actual esta es la respuesta que devuelve HotelDataHub en todos los casos en los que el cuerpo recibido es un JSON válido (ver Estado actual).
JSON inválido¶
400 Bad Request
{
"message": "Invalid JSON data"
}
Sin permiso¶
403 Forbidden — el apiuser no tiene asignado el permiso automation.