Disparadores de campaña

Endpoint intermediario para notificar eventos de negocio que disparan automatismos en Fideltour.

Tabla de Contenidos

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 accepted independientemente 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 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.