El API de Book&Learn se puede conectar a un formulario de un sitio desarrollado con WordPress. 

Se puede integrar directamente en PHP, pero si usas el plugin Contact Form 7 para tus formularios es posible conectarlo sin necesidad de escribir ninguna línea de código. Te recomendamos que primero instales este plugin. 

La integración funciona con un nuevo formulario o incluso con uno existente, lo único que hay que tener en cuenta son los campos que se quieren enviar.

Paso Previo a la integración 

Autenticación

Antes de comenzar con la integración, el User Experience Manager te habrá proprocionado unas variables que utilizarás en la integración.

  • agencyid: agency cada agencia tiene un identificador diferente que necesita enviar
  • widgetId: permite identificar el formulario que estás enviando a nosotros a través de un token (HRfrM0q3HjsLGf24AL3nC7VX)

Si no tienes esta información, por favor, ponte en contacto con nosotros para que te proporcionemos estos datos.

PASO 1 

Descargar Plugin

El primer paso para conectar el formulario es descargar el plugin Contact form 7 TO API. Este plugin nos permitirá configurar la petición al API, una vez que se envíe el formulario.


Paso 2
Instalar Plugin 

Ve al apartado de Añadir Plugins de tu página wordpress y sube el .zip que te acabas de descargar. 

Paso 3

Una vez instalado y activado el plugin, puedes ir a la sección de Formularios de Contacto, y en cualquiera de ellos nos aparecerá un nuevo tab/pestaña donde podremos configurar la llamada al API.

Paso 4

Configuración del Plugin

En la pantalla de configuración necesitarás marcar el campo Send to api ? para activar el envío de las peticiones.

Paso 5

Configurar tu Form 

Aquí te dejamos un ejemplo del form
El código que debes incluir en el Form según el ejemplo de integración sería de la siguiente forma: 

<label> Tu nombre (requerido)
   [text* field-1-name] </label>

<label> Tus apellidos (requerido)
   [text* field-2-lastname] </label>

<label> Tu correo electrónico (requerido)
   [email* field-3-email] </label>

<label> Tu teléfono
   [tel field-4-phone] </label>

<label> En que curso estas interesado:
[select field-5-course "Idiomas|Language""Campamentos|SummerCamp" "Experiencia de trabajo|WorkExperience" "Educación superior|Degree"] </label>

<label> ¿A dónde te interesa viajar?:
[select field-6-destination "Australia|AU" "New Zealand|NZ" "EEUU|US" "Canada|CA" "United Kingdom|UK" "Ireland|IE" "Malta|MT" "Italy|IT" "Germany|DE" "France|FR" "Spain|ES"]</label>

<label> Cúando planeas viajar?:
[date field-7-travel]
</label>

<label> ¿Cuál es tu nacionalidad?:
[select field-8-country "Mexico|MX" "Colombia|CO" "Brazil|BR" "Spain|ES"]</label>

<label> ¿Cómo te enteraste de nosostros?:
[select field-9-referrer "Facebook" "Google" "Word of mouth" "Recommendation" "Our offices"]
</label>

<label> ¿Tienes algún comentario?
   [textarea field-10-comments] </label>

<label>
[acceptance acceptance-conditions optional] Acepto los términos y condiciones [/acceptance] </label>



[submit "Send"]


En algunos campos como lo de pais o destino se debe poner el ISO Code para que aparezca de manera correcta. Ej:

"Mexico|MX"


En el caso de el tipo de curso las opciones disponibles son las siguiente:

  • Language
  • SummerCamp
  • WorkExperience
  • ShortTerm
  • Degree

pueden colocarse junto al texto que deseas mostrar en el formulario de la siguiente manera 

"Idiomas|Language"

Lo que aparecerá en el formulario es únicamente la palabra Idiomas pero el valor admitido para nuestra api es Language por eso deben estar redactados de esa manera.

Puede construirse un formulario muy sencillo únicamente usando los campo requeridos:

  • firstName
  • lastName
  • email
  • distributor

Paso 6 

Configurar la Base URL 

Para formar la URL necesitarás tener las variables host (servidor de Book&Learn), agency id (nombre de la agencia) y widgetId (es un token de autenticación), esta es la syntaxis:

Estas serían las variables a integrar < > con los datos que te proporcionamos.

<host>/integration/<agencyid>/widget/<widgetid>/sale

Dejamos a continuación un ejemplo: 

https://server.bookandlearn.com/masterkey/integration/universitas/widget/HRfrM0q3Hjs768c46L1nC7VX/sale

Paso 7

Input Type tendrás que seleccionar JSON y el método es POST

Paso 8

Configurar el JSON Template

La plantilla permite tomar los valores del formulario y convertirlos al formato requerido por el API. Puedes ocupar el siguiente código como base y reemplazar los valores entre llaves por los nombres que usas en el formulario

"firstName" son los campos de la API y el [field-1-name] el campo que añades en el script del formulario de contacto.
IMPORTANTE: El campo distributor necesita llevar tu número de distribuidor no el que se indica en el ejemplo y es requerido para la integración.

{
       "client": {
       "firstName": "[field-1-name]",
       "lastName": "[field-2-lastname]",
       "email": "[field-3-email]",
       "phone": "[{\"number\":\"[field-4-phone]\"}]"
     },


        "courseType": "[field-5-course]",
        "destination": ["[field-6-destination]"],
        "departureDate": "[field-7-travel]",
        "distributor": 1,
        "country": "[field-8-country]",
        "referrer": "[field-9-referrer]",
        "comments": "[field-10-comments]"
 
}


Si quieres saber los campos que puedes integrar desde tu contact form a Book&Learn son los siguientes: 

Toma en cuenta que algunos campos requieren algún formato especial que pudieran no ser compatible o requerir un desarrollo mayor

Paso 9

Resolver errores

Una vez que esté configurado correctamente se podrán registrar leads en Book&Learn. Si existiera algún error el plugin permite visualizar la información que se envió en la última petición, esa información la usaremos como punto de partida para encontrar el error. 

Para visualizar el error necesitamos dar click en el enlace + DEBUG LOG

Es importante verificar que:

  • La URL sea correcta
  • El JSON que se está enviando no tenga errores de sintaxis
  • Si el error del servidor es 422 significa que algún valor enviado en inválido ya sea por formato o integridad de datos

Did this answer your question?