Inbound Code

Cómo realizar peticiones API a sistemas externos desde un Workflow de HubSpot

Escrito por Richard | oct 6, 2024

Aprende a realizar llamadas a API externas desde acciones de código personalizadas dentro de workflows de HubSpot para mejorar la automatización y el procesamiento de datos.

Comprendiendo las Acciones de Código Personalizado en los Workflows de HubSpot

Las acciones de código personalizado en los flujos de trabajo de HubSpot te permiten ampliar la funcionalidad de tus procesos agregando fragmentos de código propios. Estos fragmentos pueden escribirse en varios lenguajes de programación, como JavaScript o Python, y pueden interactuar con recursos externos como APIs. Las acciones de código personalizado te ofrecen la flexibilidad para realizar operaciones complejas e integrarte con otros sistemas.

Al utilizar acciones de código personalizado, puedes ir más allá de las acciones predeterminadas que ofrece HubSpot y crear lógicas personalizadas que se adapten a tus necesidades específicas. Esto abre un mundo de posibilidades para automatizar tareas y mejorar el procesamiento de datos dentro de tus flujos de trabajo en HubSpot.

Casos de uso para acciones de código personalizado

Las acciones de código personalizado se pueden utilizar en una amplia gama de escenarios para mejorar tus flujos de trabajo en HubSpot. Algunos casos de uso comunes incluyen:

  • Obtener datos de APIs externas e integrarlos en tu cuenta de HubSpot
  • Realizar cálculos complejos y transformaciones de datos
  • Enviar datos a sistemas o servicios externos
  • Implementar reglas y validaciones comerciales personalizadas

Al aprovechar las acciones de código personalizado, puedes adaptar tus flujos de trabajo para cumplir con tus requisitos comerciales específicos y optimizar tus operaciones.

 

Añadiendo una Acción de Código Personalizado a un Workflow en HubSpot

Antes de comenzar a programar, necesitamos un lugar para ello. Para añadir una acción de código personalizado, debes ir al menú principal del workflow donde se encuentran todas las acciones, buscar "código personalizado" y hacer clic en ella.


Ahora puedes comenzar a configurar la acción y añadir todas las propiedades que necesites en el editor de código que aparece abajo. Para esta guía, añadiremos la propiedad firstname y dejaremos la etiqueta predeterminada.

Realizando Llamadas a APIs Externas desde Acciones de Código Personalizado

Una de las capacidades más potentes de las acciones de código personalizado en los flujos de trabajo de HubSpot es la posibilidad de realizar llamadas a APIs externas. Esto te permite obtener datos de fuentes externas e incorporarlos a tus flujos de trabajo.

Para realizar una llamada a una API externa desde una acción de código personalizado, puedes utilizar bibliotecas o funciones nativas del lenguaje para enviar solicitudes HTTP al endpoint de la API. Luego, puedes procesar los datos de respuesta y utilizarlos en la lógica de tu flujo de trabajo.

En la siguiente sección, exploraremos un ejemplo de cómo hacer una llamada a una API utilizando una API pública llamada genderize.io para predecir el género de una persona basándose en su nombre.

Implementing API Call to Predict Gender

En este ejemplo, vamos a explicar cómo realizar una llamada a la API de genderize.io para predecir el género de una persona basándonos en su nombre.

Primero, en el editor de código, añadimos la biblioteca axios:


const axios = require('axios');

Luego, dentro de exports.main, creamos nuestra variable para el primer nombre. Recuerda que debes añadir esta propiedad en la sección "Propiedades a incluir en el código".


const firstname = event.inputFields['firstname'];

Ahora crearemos la función que enviará la solicitud. En este código, utilizamos la biblioteca axios para enviar una solicitud GET a la API de genderize.io con el nombre como un parámetro de consulta. La API devolverá una respuesta que contiene el género predicho.


async function predictGender(name) {
    try {
      const response = await axios.get(`https://api.genderize.io/?name=${name}`);
      return response.data.gender;
    } catch (error) {
      console.error(error);
      throw new Error('Failed to predict gender.');
    }
  }

A continuación, definiremos nuestra variable gender, que almacenará la respuesta de la API al llamar a nuestra función predictGender:


let gender;
  try {
    gender = await predictGender(firstname);
  } catch (error) {
    gender = 'unknown'; // Default value if there is an error
  }

Luego, escribimos nuestro callback y pasamos las variables:


callback({
    outputFields: {
      firstname: firstname,
      gender: gender
    }
  });

¡Y eso es todo! Aquí tienes el fragmento final del código:


const axios = require('axios');

exports.main = async (event, callback) => {
  // Create the firstname variable
  const firstname = event.inputFields['firstname'];

  // Function to predict gender based on name
  async function predictGender(name) {
    try {
      const response = await axios.get(`https://api.genderize.io/?name=${name}`);
      return response.data.gender;
    } catch (error) {
      console.error(error);
      throw new Error('Failed to predict gender.');
    }
  }

  // Calling the predictGender function and response handling
  let gender;
  try {
    gender = await predictGender(firstname);
  } catch (error) {
    gender = 'unknown';
  }

  // Using the callback function to handle the output fields
  callback({
    outputFields: {
      firstname: firstname,
      gender: gender
    }
  });
}

Una vez que tenemos nuestro código, necesitamos añadir la variable gender como una salida para poder usarla más adelante en otras acciones. En la próxima sección explicaremos cómo hacer esto.

Asignar el Valor de una Propiedad de HubSpot con la Respuesta de la API

Una vez que hayas obtenido la predicción de género de la llamada a la API, puedes utilizar los datos de la respuesta para establecer el valor de una propiedad en HubSpot.

Para lograr esto, puedes usar la API de HubSpot para actualizar la propiedad deseada de un contacto con el género predicho directamente en el código, o bien, puedes utilizar la acción predeterminada de HubSpot "Establecer un valor de propiedad". Para simplificar, usaremos la acción predeterminada para asignar un valor de propiedad con la salida del código personalizado que creamos.

Primero, añadamos la salida como una cadena de texto y llamémosla gender. Ten en cuenta que el nombre de esta salida debe ser el mismo que definiste en tu callback:

Guarda tu acción de código personalizado. Ahora podemos añadir la acción "Establecer valor de propiedad" al flujo de trabajo:


Elegiremos el objeto Contacto y la propiedad gender, que almacenará nuestro género. En el menú lateral que se abre, debemos elegir los datos que queremos insertar, buscamos "Salidas de acción" (estas son las salidas de nuestro código personalizado) y luego hacemos clic en la salida de gender:

Al establecer el valor de la propiedad de HubSpot con la salida del código personalizado, puedes enriquecer los datos de tus contactos y usarlos para segmentación, personalización u otros fines dentro de tus workflows en HubSpot.

Espero que esta guía básica te haya proporcionado una comprensión clara de cómo realizar llamadas a APIs externas utilizando la acción de código personalizado en los workflows de HubSpot. Al aprovechar esta potente función, puedes mejorar significativamente tus workflows y automatizar tareas más complejas con facilidad.

Si tienes alguna duda, no dudes en dejar un comentario abajo. ¡Estoy aquí para ayudarte! Y si encontraste útil este artículo, no dudes en compartirlo con tu red. ¡Tu apoyo es muy apreciado!

¡Feliz automatización!