Ir al contenido principal

Diseñando y usando tus APIs con Data connectors

Escrito por Ivan Branimir Skoric

Data connectors usan APIs para conectarse a sistemas externos y obtener y/o actualizar datos existentes. Por eso es importante tener en cuenta algunos aspectos al configurar Data connectors en Intercom.


Uso de APIs de terceros (Shopify, WooCommerce, etc.)

Si utilizas APIs de terceros (no desarrolladas internamente) con Data connectors en Intercom, probablemente tengas poco o ningún control sobre su funcionamiento o la respuesta que recibes de una solicitud.

Dicho esto, la guía a continuación sigue siendo útil, aunque algunas secciones pueden no aplicarse completamente a tu caso.


Uso de APIs propias

Nuestros ingenieros han compilado una lista de puntos a tener en cuenta al diseñar o modificar tus APIs existentes para que funcionen con Fin y Data connectors en Intercom.

Consideraciones sobre autenticación e identidad

Cómo proteger a tus users y la entrada de users para su uso en Data connectors

Importante: Tú y/o tu equipo de seguridad deben realizar una evaluación de riesgos y valorar las consecuencias de cualquier fuga de datos.

Intercom no aceptará ni puede aceptar ninguna responsabilidad por datos filtrados debido a prácticas deficientes de autenticación e identificación de tus APIs o de terceros.

Primero, recomendamos encarecidamente que actives la seguridad del Messenger con JWTs. Proteger tu Messenger es el control de seguridad más importante para configurar en tu integración.

También te permite firmar múltiples atributos mediante nuestra API de JavaScript, para que puedas enviar datos sobre tus users de forma segura a través del Messenger en lugar de usar otra integración, por ejemplo: REST API.

Para aprovechar los beneficios de enviar datos de forma segura, puedes proteger tus atributos contra actualizaciones inseguras del Messenger y entonces cualquier JWT enviado, que consideramos una fuente segura, seguirá actualizando ese campo en el user. Esto es crucial para Data connectors, cuando el Data connector muestra datos sensibles o manipula datos.

Por ejemplo, si tu Data connector hace una solicitud a la API usando “GET /accounts/<account_id>/invoices” entonces quieres asegurarte de que account_id esté protegido para que el user no pueda simplemente enumerar account_ids y recopilar datos. Sin embargo, si tu Data connector es "GET /pizza-order-status/<order_id>" entonces puede que no te importe la confiabilidad de "order_id" ni si esta información se mostró a la persona correcta.

Además, debes asegurarte de que el atributo que tu Data connector usa para identificar de forma única a tus users (correo electrónico, por ejemplo) sea confiable. Esto significa que debes confiar en la fuente de los atributos identificativos de tu Data connector. Por ejemplo, si tu Data connector identifica al user por user_id, la verificación de identidad es firmar el atributo user_id, o si tu Data connector identifica al user por correo electrónico u otro atributo, entonces ese atributo está protegido y no se recopila del End User sin alguna verificación.

Esto evita que actores malintencionados puedan, por ejemplo, proporcionar el correo electrónico de otra persona y acceder a un Data connector como “Obtener extractos bancarios por correo electrónico”, lo que expondría datos financieros sensibles.

Cuando sea posible, sugerimos que no uses el correo electrónico como identificador principal para obtener datos de tus users, sino algo más aleatorio como un ID de user único y no adivinable.

Para realizar la verificación de identidad en leads, nuestro equipo está trabajando en una función de Contraseña de un solo uso (OTP) que te ayudará a verificar la identidad de alguien si contacta a tu soporte como lead. Si te interesa esta función, no dudes en contactar a nuestro equipo de Soporte vía Messenger y estarán encantados de ayudarte a activarla.

También debes asegurarte de que el user no pueda realizar Data connectors para los que no está autorizado, por ejemplo, cancelar el pedido de otra persona conociendo el ID del pedido. Esta lógica no se maneja dentro de Intercom y tú o tu equipo de seguridad deben realizar una evaluación de riesgos y desarrollar métodos adecuados para manejar la autenticación y autorización.

Cómo configurar la llamada API de tu Data connector de forma segura

Intercom actualmente soporta tokens estáticos, tokens HTTP y OAuth (beta cerrada, contáctanos vía Messenger para más información). Sea cual sea el token que uses, es tu responsabilidad mantenerlo en secreto y actualizarlo si se filtra en algún lugar lo antes posible. Como buena práctica, recomendamos usar tokens OAuth siempre que sea posible.

Consideraciones sobre datos

Idealmente, la API solo debería devolver los datos necesarios para tu Workflow. Sin embargo, esto puede ser poco realista y la API podría devolver una buena cantidad de datos que en realidad no se requieren para llevar a cabo el Workflow donde se usa el Data connector.

Si estás construyendo APIs desde cero para usarlas exclusivamente con Data connectors y Fin Workflows, puedes:

  • Construir la API de manera que te permita procesar la lógica de negocio del workflow en un solo Data connector; esto ahorra llamadas API y agrupa la lógica en un solo lugar,

  • Construir endpoints individuales para, por ejemplo, buscar pedidos, obtener detalles del pedido y finalmente, reembolsar el pedido; esto está en línea con los mejores principios de diseño RESTful API pero requiere múltiples llamadas API para completar un workflow (por ejemplo, reembolso de pedido).

Algunas consideraciones que deben incluirse al decidir qué y cuántos datos devuelve tu API incluyen:

  • ¿Realmente Fin/Workflow necesita todos los datos proporcionados para completar los pasos del workflow? Por ejemplo, si tienes un workflow para crear un reembolso de pedido, probablemente solo necesites los detalles del pedido y no datos adicionales sobre la cuenta específica del user.

  • Data connectors esperan hasta 3 segundos para conectarse y hasta 30 segundos para una respuesta, así que si la API tarda demasiado en responder, podría ser buena idea reducir las operaciones detrás de ella y, potencialmente, la cantidad de datos que devuelve.
    Para Data connectors que puedan tardar más en completarse, sugerimos usar la funcionalidad “Esperar webhook” en su lugar.

  • Data connectors pueden acceder fácilmente a atributos y arrays anidados de 1 a 2 niveles, pero objetos complejos que incluyen arrays profundamente anidados son más adecuados para procesarse con Fin Procedures. Si intentas usar estos tipos de objetos de respuesta con un Data connector, podrías encontrar dificultades. Sin embargo, Fin Tasks los maneja mejor.

Nota: El mismo tiempo de espera aplica donde sea que se ejecute un Data connector, ya sea en Fin Procedures, Workflows o Inbox. No hay un tiempo de espera separado para Procedures, y el tiempo de espera no es configurable por el cliente. Esto es importante al diseñar Workflows o Procedures con llamadas API de larga duración.

Además, siempre debes eliminar la posibilidad de que los users proporcionen datos mal formados o simplemente escriban cosas.

Por ejemplo, no deberías pedir al user que escriba su ID de cuenta, sino mostrarle sus IDs de cuenta (basados en un identificador conocido y seguro) y dejar que elija de una lista desplegable. Más información sobre cómo recopilar datos de users se encuentra aquí.

Otras consideraciones

  • Tu API debe imponer límites específicos de la aplicación, como limitar los reembolsos a una cantidad máxima por día.

  • Asegúrate de que tu API sea idempotente, ya que Fin puede enviar la misma solicitud de reembolso varias veces.

  • Implementa validación del lado del servidor para asegurar que todas las entradas cumplan con el formato especificado en tu Data connector.

  • Aplica saneamiento de entradas a los datos entrantes, reconociendo campos generados por AI que puedan contener contenido alucinatorio o malicioso.

  • Usa códigos de error HTTP estándar para ayudar a Fin a responder adecuadamente. Por ejemplo, errores HTTP 429 o 500 pueden justificar un reintento, mientras que un HTTP 410 indica que no se deben hacer más intentos.

  • Versiona tu API para facilitar la migración sin problemas de Data connectors Fin en vivo entre versiones (por ejemplo, /v1/orders a /v2/orders).

En resumen

  1. Protege el Messenger con JWTs para proteger los datos y atributos de los users.

  2. Usa identificadores confiables (por ejemplo, IDs de user firmados, no correo electrónico) para obtener datos.

  3. Restringe las acciones de los users solo a lo que están autorizados a hacer.

  4. Evita entradas libres — usa listas desplegables de fuentes conocidas y seguras.

  5. Elige tokens API seguros, idealmente OAuth (en beta cerrada).

  6. Devuelve solo los datos necesarios para evitar retrasos o exposición de datos.

  7. Usa una estructura clara de API — respuestas simples, versionado adecuado y códigos de error estándar.

  8. Valida todas las entradas y sanea todo lo generado por users o AI.

¿Ha quedado contestada tu pregunta?