Loyalty
Introducción:
En este artículo hablamos sobre las peticiones de la API relacionadas con el módulo Loyalty de Fideltour.
Los apartados del Swagger que incluyen esta información son:
Casos de uso:
Esta parte de la API resulta de gran utilidad para incorporar y gestionar contactos en el programa de fidelización de Fideltour, procedentes de distintas fuentes de datos.
- Registrar un contacto de Fideltour en el programa de fidelización del cliente.
- Actualizar los datos del contacto relacionados con el programa de fidelización:
- Actualizar el nivel del contacto
- Actualizar los puntos del contacto
- Actualizar los puntos de nivel del contacto
- Listar y filtrar operaciones relacionadas con el programa de fidelización
- Crear una operación para otorgar puntos de fidelización a un contacto registrado en el programa
- Crear una operación para redimir puntos de fidelización a un contacto registrado en el programa
- Iniciar sesión en el programa de fidelización
- Solicitar un cambio de contraseña para la cuenta del programa de fidelización
Casos de uso para un BE que quiere integrarse con nuestro modulo de fidelización:
Si el BE tiene un sistema de registro y de login interno para los clientes, lo único que debe hacer es permitir al usuario que inicie sesión con su email. Posteriormente, debe hacer una petición a la API de Fideltour: GET
https://app.hoteldatahub.io/api/v1/contacts/ usando el filtro "email__iexact", con el objetivo de leer la información del usuario en Fideltour. Con esta información se sabe si el usuario está fidelizado, cuantos puntos tiene, que nivel tiene. Con estos datos, el BE ya puede parametrizar las ofertas y los descuentos disponibles.
Si el BE no tiene un sistema de registro y de login interno para los clientes, puede usar el de Fideltour:
- ¿Como registrar un usuario en el programa de fidelización? hay dos opciones:
- Insertar en la web del BE un enlace al portal loyalty del cliente en Fideltour (https://intranet.fideltour.com/es/guest-portal/<hodel_chain>) y el usuario se puede registrar desde allí.
- Crear un formulario de registro en la web del BE solicitando, como mínimo, email y password. Cuando el usuario hace submit, internamente hay que hacer lo siguiente:
- Buscar si existe un contacto en Fideltour con el email introducido: GET https://app.hoteldatahub.io/api/v1/contacts/ usando el filtro "email__iexact"
- Si no existe, crearlo: POST https://app.hoteldatahub.io/api/v1/contacts/
- Una vez se obtiene el ID del usuario en Fideltour, se fideliza con el siguiente método: POST https://app.hoteldatahub.io/api/v1/contacts/<contact_id>loyalty-sign-in/
- Por último, el BE debe incorporar en su web un formulario de login, donde se solcita email y password. Este login debe ir conectado al siguiente método de la API de Fideltour: POST https://app.hoteldatahub.io/api/v1/contacts/loyalty-login/
Métodos disponibles:
Todos los métodos y filtros disponibles para trabajar con loyalty se pueden consultar en los enlaces del Swagger citados anteriormente.
En este artículo nos centramos en los siguientes:
Sign In
Registar un contacto en el programa de fidelización.
Tabla de parámetros:
| | | |
| | | Contraseña del contacto para su Guest Portal |
| | | Se envía un email de activación al contacto |
| | | Se envía un email de bienvenida al contacto |
Petición:
METODO: POST
HEADERS:
- Content-type: application/json
- Authorization: Token xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
BODY: se añade un ejemplo a continuación.
- {
- "password": "UTendyE!?",
- "send_activation_email": false,
- "send_welcome_email": false,
- }
Respuesta:
En caso de una respuesta 200 o 201, el json que se recibe tiene toda la información del contacto
Update data
Actualizar los datos de fidelización de un contacto
Tabla de parámetros:
| | | |
| | | ID del nivel en Fideltour |
| | | |
| | | Puntos de nivel del contacto |
Petición:
METODO: POST
HEADERS:
- Content-type: application/json
- Authorization: Token xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
BODY: se añade un ejemplo a continuación.
- {
- "level": 2673,
- "points": 200
- "level_points": 100
- }
Respuesta:
En caso de una respuesta 200 o 201, el json que se recibe tiene toda la información del contacto
Login
Iniciar sesión en el programa de fidelización.
Tabla de parámetros:
Petición:
METODO: POST
HEADERS:
- Content-type: application/json
- Authorization: Token xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
BODY: se añade un ejemplo a continuación.
Respuesta:
En caso de una respuesta 200, el json que se recibe tiene toda la información del contacto
Resetear contraseña
Resetear la contraseña para acceder al programa de fidelización.
Tabla de parámetros:
Petición:
METODO: POST
HEADERS:
- Content-type: application/json
- Authorization: Token xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
BODY: se añade un ejemplo a continuación.
Respuesta:
En caso de una respuesta 200, si existe un contacto con el email introducido, se envía un correo con la nueva contraseña establecida por Fideltour.
Get operations
Listar y filtrar las operaciones del programa de fidelización del cliente
Tabla de parámetros:
No hay parámetros obligatorios, ver todos los filtros disponibles en
Swagger
Petición:
METODO: GET
HEADERS:
- Content-type: application/json
- Authorization: Token xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Respuesta:
En caso de una respuesta 200 o 201, se recibe el siguiente json:
- {
- "count": 5,
- "next": null,
- "previous": null,
- "results": [
- {
- "id": 405283,
- "contact_email": "pserra@customia.com",
- "book_room_number": null,
- "points": 100,
- "expired_points": null,
- "consumed_points": -100,
- "remaining_points": 0,
- "level_points": 0,
- "bonus_points": "0.00",
- "timestamp": "2023-11-13T12:11:03.746192",
- "comments": null,
- "concept": "test",
- "code": "2991559E1A",
- "redeemed": 0,
- "point_type": 0,
- "expired_date": "2023-11-13T12:11:03.745212",
- "updated_at": "2023-11-13T12:11:03.784747",
- "contact": 11656629,
- "product": null,
- "book": null,
- "manager": 3738,
- "hotel": null
- },
- ]
- }
Get operation
Obtener una operación por ID del programa de fidelización del cliente
Tabla de parámetros:
| | | |
| | | Id de la operación enviada en la URL |
Petición:
METODO: GET
HEADERS:
- Content-type: application/json
- Authorization: Token xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Respuesta:
En caso de una respuesta 200 o 201, se recibe el siguiente json:
- {
- "id": 405278,
- "contact_email": "pserra@customia.com",
- "book_room_number": null,
- "points": 100,
- "expired_points": null,
- "consumed_points": -100,
- "remaining_points": 0,
- "level_points": 0,
- "bonus_points": "0.00",
- "timestamp": "2023-11-13T12:05:43.309364",
- "comments": null,
- "concept": "test",
- "code": "B0937118E5",
- "redeemed": 0,
- "point_type": 0,
- "expired_date": "2023-11-13T12:05:43.308445",
- "updated_at": "2023-11-13T12:05:43.342388",
- "contact": 11656629,
- "product": null,
- "book": null,
- "manager": 3738,
- "hotel": null
- }
Add points
Crear una operación para añadir puntos a un contacto del programa de fidelización.
Tabla de parámetros:
| | | |
| | | |
| | | |
| | | Puntos que se le añaden al contacto |
Petición:
METODO: POST
HEADERS:
- Content-type: application/json
- Authorization: Token xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Respuesta:
En caso de una respuesta 200 o 201, se recibe el siguiente json:
- {
- "contact": 11656629,
- "concept": "reservas 2023",
- "points": 500
- }
Redeem points
Crear una operación para canjear puntos a un contacto del programa de fidelización.
Tabla de parámetros:
| | | |
| | | |
| | | |
| | | Puntos que se le restan al contacto |
Petición:
METODO: POST
HEADERS:
- Content-type: application/json
- Authorization: Token xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Respuesta:
En caso de una respuesta 200 o 201, se recibe el siguiente json:
- {
- "contact": 11656629,
- "concept": "producto canjeado",
- "points": 100
- }
Get products
Listar y filtrar los productos del programa de fidelización del cliente
Tabla de parámetros:
No hay parámetros obligatorios, ver todos los filtros disponibles en Swagger
Petición:
METODO: GET
HEADERS:
- Content-type: application/json
- Authorization: Token xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Respuesta:
En caso de una respuesta 200 o 201, se recibe el siguiente json:
- {
- "count": 6,
- "next": null,
- "previous": null,
- "results": [
- {
- "id": 12345,
- "title": "Estamos deseando volver a tenerte con nosotros.",
- "category": 2,
- "image": "https://example/fideltour/media/product-image/example_image.jpg",
- "points": 12345,
- "featured": false,
- "start_date": "2022-12-01",
- "end_date": "2024-12-31",
- "code": "Repetidor1",
- "is_visible": true,
- "promocode": null,
- "notify_alert_emails": true,
- "hotels": [
- 12345,
- 12345,
- 12345,
- ],
- "levels": [
- 12345,
- 12345,
- 12345
- ]
- },
- ]
- }
Get product
Obtener un producto por ID del programa de fidelización del cliente
Tabla de parámetros:
| | | |
| | | Id del producto enviado en la URL |
Petición:
METODO: GET
HEADERS:
Content-type: application/json
Authorization: Token xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Respuesta:
En caso de una respuesta 200 o 201, se recibe el siguiente json:
- {
- "id": 12345,
- "title": "Estamos deseando volver a tenerte con nosotros.",
- "category": 2,
- "image": "https://example/fideltour/media/product-image/example_image.jpg",
- "points": 12345,
- "featured": false,
- "start_date": "2022-12-01",
- "end_date": "2024-12-31",
- "code": "Repetidor1",
- "is_visible": true,
- "promocode": null,
- "notify_alert_emails": true,
- "hotels": [
- 12345,
- 12345,
- 12345,
- ],
- "levels": [
- 12345,
- 12345,
- 12345
- ]
- }