Gestión de contactos

Gestión de contactos

Contactos

Introducción:

En este artículo hablamos sobre las peticiones de la API relacionadas con los Contactos.

  • Crear contacto
  • Actualizar contacto
  • Listar y filtrar contactos


El endpoint que utilizamos es: https://app.hoteldatahub.io/api/v1/contacts/ y el apartado del Swagger es: https://app.hoteldatahub.io/swagger/#/contacts

 


Casos de uso:

El endpoint para la gestión de contactos resulta de gran utilidad para incorporar nuevos contactos en Fideltour procedentes de distintas fuentes. Para el caso de contactos ya existentes, permite ampliar la información contenida en su ficha enriqueciendo así la calidad de la base de datos. Múltiples orígenes de datos permiten obtener distinta información que después se centraliza en Fideltour.


  1. Motor de reservas: el uso de este endpoint desde un motor de reservas permite recuperar la información de contacto de un huésped que ha realizado una reserva desde la página web del hotel o cadena. De esta forma, y desde incluso antes de la llegada del futuro huésped al hotel, en Fideltour ya obtenemos sus datos de contacto y podemos utilizarlos para comenzar a comunicarnos con el mismo.


  1. PMS: La información proveniente de un PMS resulta de gran valor para Fideltour, ya que muchos orígenes de datos centralizan su información en él. También nos permite obtener información de contacto de otros huéspedes, además del propietario de la reserva, con lo que aumentamos el tamaño de nuestra base de datos gracias a esta conexión.


  1. Wi-Fi y otras plataformas: En un hotel pueden existir otras plataformas o servicios en la nube que recopilen información sobre sus usuarios, y la puedan enviar a Fideltour para enriquecer la base de datos y mejorar las campañas de marketing y comunicaciones informativas sobre los servicios del hotel.



Métodos disponibles:

Todos los métodos y filtros disponibles para trabajar con contactos se pueden consultar aquí.
En este artículo nos centramos en los siguientes:


  1. GET: Consulta de datos de uno o varios contactos
  2. POST: Creación de un nuevo contacto
  3. PATCH: Actualización de los datos de un contacto ya existente



Tabla de parámetros:


Campo

Tipo

Obl.

Descripción

email

String

Si

Email del contacto, campo único, usado como identificador del contacto.

email_status

Integer

No

Estado del email.

  • 0= Nuevo
  • 1= Válido
  • 2= Verificado
  • 3= Bounced
  • 4= Hard bounced

custom_tags

Listado de Strings

No

Dos opciones:

  • Identificador de la etiqueta ya creada.
  • Nombre de la etiqueta. El sistema la crea si no existe ninguna con ese nombre

phone1

String

No

Teléfono del contacto

phone2

String

No

Teléfono 2 del contacto

birthday

Date YYYY-MM-DD

No

Fecha de nacimiento

address

String

No

Dirección

post_code

String

No

Código postal

gender

Integer

No

Género:

  • 0 = no especificado (default)
  • 1 = hombre
  • 2 = mujer
  • 3 = no binario
  • 4 = género fluido
  • 5 = prefiere no decirlo

language

String

No

province

String

No

Dos opciones:

  • Identificador de la provincia ya creada.
  • Nombre de la provincia. El sistema la crea si no existe ninguna con ese nombre

town

String

No

Dos opciones:

  • Identificador de la ciudad ya creada.
  • Nombre de la ciudad. El sistema la crea si no existe ninguna con ese nombre

zone

String

No

Dos opciones:

  • Identificador de la zona ya creada.
  • Nombre de la zona. El sistema la crea si no existe ninguna con ese nombre

country

String

No

name

String

No

Nombre del contacto

surname

String

No

Apellidos del contacto

source

Integer

Si

Origen del contacto.

  • 0 = PMS
  • 1 = Wifi Login
  • 2 = Facebook
  • 3 = Web o Booking Engine
  • 4 = Otro
  • 5 = Importación
  • 6 = Formulario Newsletter
  • 7 = Formulario de contacto
  • 8 = Guest Portal
  • 9 = Pre-Checkin
  • 10 = Chatbot
  • 11 = Concierge
  • 12 = Call Center

notes

String

No

Notas

work_place

String

No

Cargo empresarial

business_name

String

No

Nombre de la empresa

business_address

String

No

Dirección de la empresa

fiscal_address

String

No

Dirección fiscal

identification_document_type

Numérico

No

Tipo de documento de identidad.

  • 0= Otros
  • 1= DNI
  • 2= NIE
  • 3= Pasaporte

identification_number

String

No

Número de documento de identidad.

subscribed

Booleano

No

Indica si el contacto está suscrito a recibir mailing.

  • True = Está suscrito
  • False = No está suscrito (por defecto)

is_active

Booleano

No

Indica si el contacto se ha borrado de la DB de Fideltour.

unsubscribe_reason

Integer

No

Motivo de de-suscripción.

  • 1 = Dirección de email incorrecta
  • 2 = Petición propia (del Contacto)
  • 3 = Petición del gestor (Cuenta)



Ejemplos:

A continuación mostramos algunos ejemplos de creación, actualización y visualización de contactos.


Petición (POST-PATCH):

En el siguiente ejemplo se muestra una petición para dar de alta(POST) o actualizar(PATCH) el contacto pablo@hdh.com.


PROTOCOLO: HTTP/1.1

METODO: POST/PATCH

HOST/ENDPOINT:  https://app.hoteldatahub.io/api/v1/contacts/

HEADERS: 

  • Content-type: application/json
  • Authorization: Token xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

BODY: se añade un ejemplo a continuación.

  1. {
  2.     "email": "pablo@hdh.com",
  3.     "email_status": 0,
  4.     "birthday": "1976-04-18",
  5.     "phone1": "651442233",
  6.     "phone2": "12323",
  7.     "gender": 2,
  8.     "address": "Calle los olivos",
  9.     "province": "Madrid",
  10.     "town": "Madrid",
  11.     "zone": "Sol",
  12.     "post_code": "28013",
  13.     "language": "ES",
  14.     "country": "ES",
  15.     "name": "Pablo",
  16.     "surname": "Mir",
  17.     "identification_document_type": 1,
  18.     "identification_number": "01234567Z",
  19.     "source": 1,
  20.     "notes": "Muy exigente",
  21.     "work_place": "Palma",
  22.     "bussiness_name": "Customia",
  23.     "bussiness_address": "Calle de las soluciones industriales 25",
  24.     "fiscal_address": "Calle de las soluciones industriales 25",
  25.     "custom_tags":  ["Cliente VIP",  "Turista"],
  26.     "subscribed": false,
  27.     "is_active": true
  28. }

Nota: los valores Booleanos true y false, también se pueden enviar como Integers 1 y 0.


Respuesta (POST/PATCH):


En caso de una respuesta 200 o 201, el json que se recibe tiene la siguiente estructura.
  1. {
  2.     "id": 9999999,
  3.     "business_name": null,
  4.     "work_place": "Madrid",
  5.     "business_address": null,
  6.     "fiscal_address": "Calle de las soluciones industriales 25",
  7.     "language": "ES",
  8.     "country": "ES",
  9.     "created_at": "2022-01-01T12:12:12.654321",
  10.     "level_name": "",
  11.     "loyalty_card_number": null,
  12.     "name": "Pablo",
  13.     "surname": "Mir",
  14.     "email": "pablo@hdh.com",
  15.     "email_status": 0,
  16.     "phone1": "651442233",
  17.     "phone2": "12323",
  18.     "gender": 2,
  19.     "identification_document_type": 1,
  20.     "identification_number": "01234567Z",
  21.     "birthday": "1976-04-18",
  22.     "address": "Calle los olivos",
  23.     "post_code": "07006",
  24.     "source": 1,
  25.     "notes": "Muy exigente",
  26.     "photo": null,
  27.     "subscribed": false,
  28.     "unsubscribe_reason": null,
  29.     "date_subscribed": "2022-01-01T12:12:12.654321",
  30.     "modification_date_subscribed": null,
  31.     "is_active": true,
  32.     "points": 0,
  33.     "value": 0,
  34.     "review": null,
  35.     "total_bookings": 0,
  36.     "level_points": 0,
  37.     "loyalty_custom_tag_timestamp": null,
  38.     "is_profile_completed": false,
  39.     "last_level_review": null,
  40.     "kicked_out_loyalty": null,
  41.     "province": 1,
  42.     "town": 2,
  43.     "zone": 3,
  44.     "level": null,
  45.     "custom_tags": [4, 5],
  46.     "hotels": []
  47. }

Petición (GET):

El método GET permite lo siguiente:

PROTOCOLO: HTTP/1.1
METODO: GET
HOST/ENDPOINT:  https://app.hoteldatahub.io/api/v1/contacts/?email__iexact=pablo@hdh.com
HEADERS: 
  • Authorization: Token xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

BODY: En este caso al ser un método de tipo GET no incluimos datos en el cuerpo de la petición, ya que se incluyen en la url.


Respuesta (GET):

  1. {
  2.     "count": 1,
  3.     "next": null,
  4.     "previous": null,
  5.     "results": [
  6.         {
  7.             "id": 7778735,
  8.             "business_name": null,
  9.             "work_place": "Palma",
  10.             "business_address": null,
  11.             "fiscal_address": "Calle de las soluciones industriales 25",
  12.             "language": "ES",
  13.             "country": "ES",
  14.             "created_at": "2022-12-21T16:40:20.681955",
  15.             "level_name": "",
  16.             "loyalty_card_number": null,
  17.             "name": "Pablo",
  18.             "surname": "Mir",
  19.             "email": "pablo@hdh.com",
  20.             "email_status": 0,
  21.             "phone1": "651442233",
  22.             "phone2": "12323",
  23.             "gender": 2,
  24.             "identification_document_type": 1,
  25.             "identification_number": "01234567Z",
  26.             "birthday": "1976-04-18",
  27.             "address": "Calle los olivos",
  28.             "post_code": "07006",
  29.             "source": 1,
  30.             "notes": "Muy exigente",
  31.             "photo": null,
  32.             "subscribed": false,
  33.             "unsubscribe_reason": null,
  34.             "date_subscribed": "2022-12-21T16:40:20.681955",
  35.             "modification_date_subscribed": null,
  36.             "is_active": true,
  37.             "points": 0,
  38.             "value": 0,
  39.             "review": null,
  40.             "total_bookings": 0,
  41.             "level_points": 0,
  42.             "loyalty_custom_tag_timestamp": null,
  43.             "is_profile_completed": false,
  44.             "last_level_review": null,
  45.             "kicked_out_loyalty": null,
  46.             "province": 1,
  47.             "town": 2,
  48.             "zone": 3,
  49.             "level": null,
  50.             "custom_tags": [4, 5],
  51.             "hotels": []
  52.         }
  53.     ]
  54. }
    • Related Articles

    • Gestión de movimientos

      Movimientos Tabla de contenidos Introducción Casos de uso Métodos disponibles Tabla de parámetros Ejemplos Petición (POST) Respuesta (POST) Petición (GET) Respuesta (GET) Petición (PATCH) Respuesta (PATCH) Introducción: En este artículo hablamos ...
    • Formularios de suscripción

      Introducción: Este artículo habla del endpoint web-form, que permite registrar un contacto en Fideltour desde cualquier formulario instalado en la web del cliente. Endpoint: https://app.hoteldatahub.io/api/v1/contacts/web-form/ Swagger: ...
    • Manual de instalación Tracker ROI

      El tracker ROI integrado en la web del motor de reservas nos permitirá tener un seguimiento de las conversiones de nuestras campañas. Podremos visualizar el importe total de las conversiones realizadas a través de las campañas enviadas a nuestros ...
    • Manual de configuración Hotspot Mikrotik

      Pasos para la la configuración del Hotspot: Configurar y tener en funcionamiento el Servidor Hotspot de RouterOS (https://wiki.mikrotik.com/wiki/Manual:IP/Hotspot) Tener un usuario (Hotspot -> Users) identificado como “clientes” y sin contraseña. En ...
    • Consentimientos RGPD

      Consentimientos RGPD Introducción: En este artículo hablamos sobre las peticiones de la API, relacionadas con los consentimientos obligatorios del Registro General de Protección de Datos(RGPD o GDPR en inglés), y como gestionarlos en los contactos. ...