Formularios de suscripción

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: https://app.hoteldatahub.io/swagger/#/contacts/contacts_web_form

Tabla de parámetros:


Campo

Tipo

Obl.

Descripción

hotel_chain

String

Si

Código de la cadena hotelera, facilitado por Fideltour.

api_user

String

Si

Username del api user, facilitado por Fideltour.

email

String

Si

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

source

Integer

No

Origen del contacto.

  • 6= Formulario newsletter(default)
  • 7= Formulario contacto

name

String

No

Nombre del contacto

surname

String

No

Apellidos del contacto

language

String

No

country

String

No

Debe estar en formato ISO 3166-1 alpha-2

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

province

String

No

Nombre de la provincia.

town

String

No

Nombre de la ciudad o población.

zone

String

No

Nombre de la zona.

identification_document_type

Integer

No

Tipo de documento de identidad.

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

identification_number

String

No

Número de documento de identidad.

gender

Integer

No

Género:

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

custom_tags

String array

No

Nombres de las etiquetas que deseamos vincular con el contacto.

business_name

String

No

Nombre de la empresa

work_place

String

No

Cargo empresarial

business_address

String

No

Dirección de la empresa

fiscal_address

String

No

Dirección fiscal

accept_terms

Booleano

No

Indica si el contacto acepta términos y condiciones.

  • True = Acepta
  • False = No acepta (por defecto)

accept_commercial_communications

Booleano

No

Indica si el contacto acepta comunicaciones comerciales.

  • True = Acepta
  • False = No acepta (por defecto)

accept_personalized_commercial_communications

Booleano

No

Indica si el contacto acepta comunicaciones comerciales personalizadas.

  • True = Acepta
  • False = No acepta (por defecto)

IP

String

No

IP desde la que se aceptan los checkboxes legales


Ejemplo:

A continuación, se muestra un ejemplo de petición y respuesta correcta.


Petición POST:

En el siguiente ejemplo se muestra una petición para dar de alta al contacto pablo@hdh.com.


PROTOCOLO: HTTP/1.1

METODO: POST

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

HEADERS: Content-type: application/json

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

  1. {
  2.    "hotel_chain""6NOK",
  3.    "api_user""hoteldatahub_fideltour_web_form",
  4.    "email""pablo@hdh.com",
  5.    "birthday""1976-04-18",
  6.    "phone1""651442233",
  7.    "phone2""12323",
  8.    "gender"2,
  9.    "address""Calle los olivos",
  10.    "province""Madrid",
  11.    "town""Madrid",
  12.    "zone""Sol",
  13.    "post_code""28013",
  14.    "language""es",
  15.    "country""ES",
  16.    "name""Pablo",
  17.    "surname""Mir",
  18.    "identification_document_type"1,
  19.    "identification_number""01234567Z",
  20.    "source"6,    
  21.    "custom_tags":  ["Cliente VIP",  "Turista"],
  22.    "accept_terms"true,
  23.    "accept_commercial_communications"true,
  24.    "accept_personalized_commercial_communications"false
  25. }

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


Respuesta:

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": [45],
  46.    "hotels": []
  47. }

Ejemplo real de formulario

A continuación, se muestra un ejemplo de uso de formulario sincronizado con Fideltour, en concreto un formulario de suscripción a newsletter. La información que se recoge del contacto en este ejemplo no es toda la posible. Para conocer toda la información posible del contacto que se puede enviar a Fideltour, leer este artículo. 



Formulario de suscripción a newsletter:

A continuación, se muestra el código HTML y Javascript necesario para generar un ejemplo de formulario de suscripción a newsletter integrado con Fideltour, además, posteriormente se adjunta el fichero html para poder ejecutarlo.


<form id="fideltour-newsletter-form" method="POST">

    <input type="hidden" name="hotel_chain" value="SOLICITAR A FIDELTOUR"> 

    <input type="hidden" name="api_user" value="SOLICITAR A FIDELTOUR">

    <div>

        <label for="name">Nombre</label>

        <input id="name" type="text" name="name">

    </div>

    <div>

        <label for="surname">Apellidos</label>

        <input id="surname" type="text" name="surname">

    </div>

    <div>

        <label for="email">Email</label>

        <input id="email" type="text" name="email" required>

    </div>

    <div>

        <input id="accept" type="checkbox" name="accept_commercial_communications" required>

        <label for="accept">

            Acepto suscribirme a la newsletter para recibir comunicaciones comerciales

        </label>

    </div>

    <button type="submit">Enviar</button>

</form>


<script type="text/javascript">

    const endpoint = "https://app.hoteldatahub.io/api/v1/contacts/web-form/";

    const form = document.getElementById("fideltour-newsletter-form");

    

    form.addEventListener("submit", function(e) {

        e.preventDefault();

        const xhr = new XMLHttpRequest();

        xhr.open("POST", endpoint, true);

        xhr.setRequestHeader("Content-type", "application/json");


        const formData = new FormData(form);

        const data = {};

        formData.forEach((value, key) => {

            if (value) {

                if (value === "on") value = true;

                    data[key] = value;

                }

        });

        

        xhr.send(JSON.stringify(data));

        xhr.onreadystatechange = function() {

            if (xhr.readyState === 4 ) {

                if (xhr.status === 200) {

                    // La solicitud se completó exitosamente

                    console.log('Respuesta recibida:', xhr.responseText);

                } else {

                    // Hubo un problema con la solicitud

                    console.error('Error en la solicitud:', xhr.statusText);

                }

            }

        };

    });

</script>

    • Related Articles

    • 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/ ...
    • 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 ...
    • 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 ...
    • Registro SPF

      ¿Qué es un registro SPF? El registro SPF (de Sender Policy Framework) es un tipo especial de registro DNS (bueno, en realidad es un registro de tipo TXT con un formato muy concreto) que permite a los dueños de dominios luchar contra la suplantación ...