Intereses

Tabla de contenidos

Introducción

En este artículo hablamos sobre las peticiones de la API relacionadas con los intereses de los contactos en Fideltour.

Un interés es un tema por el que un contacto ha mostrado afinidad (por ejemplo, Golf, Gastronomía o Viajes en familia). En Fideltour se gestionan con dos elementos:

  • Interés: el tema en sí, identificado por su nombre. Es común a toda la cadena hotelera.
  • Suscripción al interés: la relación entre un contacto y un interés, con una puntuación (punctuation) que indica el grado de afinidad.

Los intereses son distintos de las etiquetas del contacto (custom_tags), que se gestionan desde la API de Contactos.

Endpoint: https://app.hoteldatahub.io/api/v1/interests/

Documentación Swagger: https://app.hoteldatahub.io/swagger/

Casos de uso

Este endpoint permite que un sistema externo (CRM, CDP, Wi-Fi, encuestas…) informe a Fideltour de los intereses que ha detectado en un contacto, para poder segmentar y personalizar las comunicaciones.

Importante: un interés siempre se asocia a un contacto que ya existe en Fideltour. Si todavía no existe, primero hay que crearlo con la API de Contactos.

No es necesario crear el interés antes: si no existe ninguno con ese nombre en la cadena, se crea automáticamente.

Métodos disponibles

  • GET: consulta el catálogo de intereses de la cadena o, con el filtro contact, los intereses de un contacto con su puntuación.
  • POST: asocia un interés a un contacto. Si el contacto ya tenía ese interés, actualiza su puntuación.

El ApiUser necesita los permisos contacts e interests.

Tabla de parámetros

Filtros (GET)

Filtro Tipo Descripción
contact Integer ID del contacto en Fideltour. Si se indica, se devuelven los intereses de ese contacto; si no, el catálogo de intereses de la cadena
name__iexact String Nombre exacto del interés, sin distinguir mayúsculas y minúsculas (solo catálogo)
name__icontains String Intereses cuyo nombre contiene el texto (solo catálogo)
category__iexact String ID de la categoría del interés (solo catálogo)
limit Integer Número de resultados por página
offset Integer Posición desde la que se devuelven los resultados

Los resultados se devuelven paginados (count, next, previous, results). Para pasar de página, usa limit y offset.

Cuerpo de la petición (POST)

Campo Tipo Obligatorio Descripción
contact Integer Sí ID del contacto en Fideltour
name String Sí Nombre del interés (máximo 200 caracteres). Se busca sin distinguir mayúsculas y minúsculas; si no existe, se crea
punctuation Integer No Puntuación o grado de afinidad del contacto con el interés
category Integer No ID de la categoría del interés en Fideltour
min_appearances Integer No Número mínimo de apariciones del interés
min_likes Integer No Número mínimo de likes del interés

Ejemplos

Petición (GET): Catálogo de intereses

PROTOCOLO: HTTP/1.1 MÉTODO: GET HOST/ENDPOINT: https://app.hoteldatahub.io/api/v1/interests/?name__icontains=golf

HEADERS:

Content-type: application/json
Authorization: Token xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Respuesta:

En caso de una respuesta 200, se recibe el siguiente JSON:

{
    "count": 1,
    "next": null,
    "previous": null,
    "results": [
        {
            "id": 30412,
            "scope": 1,
            "name": "Golf",
            "min_appearances": 1,
            "min_likes": 1,
            "category": null
        }
    ]
}
  • id: ID del interés en Fideltour.

Petición (GET): Intereses de un contacto

PROTOCOLO: HTTP/1.1 MÉTODO: GET HOST/ENDPOINT: https://app.hoteldatahub.io/api/v1/interests/?contact=11602828

HEADERS:

Content-type: application/json
Authorization: Token xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Respuesta:

En caso de una respuesta 200, se recibe el siguiente JSON:

{
    "count": 2,
    "next": null,
    "previous": null,
    "results": [
        {
            "id": 30412,
            "name": "Golf",
            "punctuation": 5
        },
        {
            "id": 30415,
            "name": "Gastronomía",
            "punctuation": 2
        }
    ]
}
  • id: ID del interés en Fideltour (el mismo que devuelve el catálogo y que aparece como tag en el POST).
  • punctuation: puntuación del contacto en ese interés.

Petición (POST): Asociar un interés a un contacto

PROTOCOLO: HTTP/1.1 MÉTODO: POST HOST/ENDPOINT: https://app.hoteldatahub.io/api/v1/interests/

HEADERS:

Content-type: application/json
Authorization: Token xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

BODY:

{
    "contact": 11602828,
    "name": "Golf",
    "punctuation": 5
}

Respuesta:

En caso de una respuesta 201, se recibe la suscripción del contacto al interés:

{
    "id": 845231,
    "timestamp": "2026-10-14T10:15:42.120391",
    "punctuation": 5,
    "punctuation_modified": false,
    "tag_source": 7,
    "contact": 11602828,
    "tag": 30412
}
  • id: ID de la suscripción al interés (no el del interés).
  • tag: ID del interés en Fideltour.
  • punctuation: puntuación actual.

Si el contacto ya tenía el interés con la misma puntuación, no se modifica nada y se devuelve la suscripción actual.

Errores:

  • 400: en el POST, falta contact o name; en el GET, contact no es un ID numérico.
  • 502: Fideltour no ha podido crear o actualizar el interés o la suscripción.