Skip to main content

Primeros pasos con la integración de Salesforce y Heroku

Objetivos de aprendizaje

Después de completar esta unidad, podrá:

  • Explicar las diferentes razones para integrar Salesforce y Heroku.
  • Describir los métodos para integrar Salesforce y Heroku.

Como desarrollador de Salesforce sabe que Heroku proporciona un excelente lugar para ejecutar aplicaciones que se integran con Salesforce para una variedad de casos de uso. ¿Pero cuáles son exactamente esas razones y cuáles son los mejores métodos para la integración? Siga leyendo y sus preguntas pronto tendrán respuesta.

Razones para integrar Salesforce y Heroku

Los sistemas de negocio modernos constan de muchas partes diferentes con interfaces diferentes para diversos tipos de usuarios. Estas interfaces a menudo reúnen datos procedentes de diversas fuentes de datos. La arquitectura de microservicios se ha convertido en una manera de disociar las partes de un sistema en unos servicios más fáciles de mantener que son implementables de forma independiente para proporcionar extremos que aúnan sistemas dispares. Heroku es un excelente lugar para ejecutar aplicaciones y microservicios que puede utilizar con Salesforce a través de varios métodos de integración.

Cuatro razones habituales para integrar aplicaciones de Heroku con Salesforce son:

  • Replicación de datos
  • Proxies de datos
  • Interfaces de usuario personalizadas
  • Procesos externos

Analizaremos cada una con mayor profundidad más adelante en el módulo.

Integración a través de la replicación de datos

La replicación de datos es la copia o sincronización de datos entre Salesforce y otro sistema. Puede utilizar la replicación de datos para almacenar datos con el fin de activar la creación de reportes y el análisis entre fuentes de datos. También puede utilizarla para que funcione con sistemas heredados que necesitan datos procedentes de Salesforce o ingresar datos en Salesforce. El caso de uso más habitual con Heroku y Salesforce es proporcionar una interfaz de alto desempeño y baja latencia para aplicaciones de cara a los clientes construidas con tecnologías de código abierto.

Por ejemplo, digamos que está vendiendo sombreros de fiesta hinchables con forma de unicornio. Salesforce es su sistema de registro para la información del producto, como los precios y el inventario, con un sitio web público construido con Node.js, Rails, Java, etcétera. El sitio web utiliza esos datos para mostrar la disponibilidad y proporcionar funciones para realizar pedidos. Con la aplicación web pública ejecutándose en Heroku, tiene sentido replicar la información del producto en un almacén de datos en Heroku para que pueda controlar un número masivo de solicitudes con una latencia baja. Por ejemplo, si los usuarios de un sitio público pueden dar a "Me gusta" en un producto, puede utilizar la replicación de los datos para propagar el número de Me gusta en Salesforce para el equipo de marketing.

Integración a través de los proxies de datos

Los proxies de datos agregan varios almacenes de datos, pero a diferencia de la replicación de datos, los datos no se copian. Los datos pueden ser de solo lectura bajo demanda. Este enfoque activa la ciencia de datos, la inteligencia de negocio, la creación de reportes y las herramientas para la creación de tableros para recopilar datos entre múltiples almacenes de datos sin tener que preocuparse de los desafíos de la sincronización de datos como el almacenamiento y la obsolescencia. Puede integrar sistemas heredados y sistemas externos a través de proxies de datos para proporcionar datos a Salesforce, o bien Salesforce puede proporcionar sus datos a otros sistemas externos.

Si un usuario de Salesforce necesita ejecutar reportes de inventario que correlacionen datos de productos en Salesforce con datos de almacén procedentes de un sistema externo, los proxies de datos pueden proporcionar esa información sin emplear métodos más lentos como la transformación y carga de extracción (ETL). Cuando se ejecuta el reporte, Salesforce obtiene los datos necesarios del sistema externo sin almacenar los datos en ningún momento. Lo mismo funciona también en la dirección opuesta: una aplicación que se ejecuta en Heroku es un proxy de datos para Salesforce a otro sistema, lo que proporciona una capa de seguridad y transformación. Trataremos eso en breve.

Integración a través de interfaces de usuario personalizadas

Puede crear interfaces de usuario personalizadas fácilmente para Salesforce empleando varias tecnologías, como componentes Lightning y de Visualforce, por nombrar dos de ellos. Cuando las interfaces se construyen con tecnologías de código abierto como Java, Node.js, PHP, etcétera, pueden ejecutarse en Heroku e integrarse en la interfaz de usuario de Salesforce o solo con datos de Salesforce. Otras veces, un sistema heredado o externo proporciona una interfaz de usuario que necesita aflorar en la interfaz de usuario de Salesforce.

Por ejemplo, una compañía que utiliza Salesforce para CRM compra otra compañía con un sistema personalizado construido con Java. Un sencillo método inicial para integrar esos sistema es simplemente ejecutar el sistema Java en Heroku y representarlo en Salesforce. La ejecución del sistema Java en Heroku puede aliviar las cargas de ampliación y operaciones estandarizando al mismo tiempo una arquitectura de implementación para sistemas personalizados. Las interfaces de usuario autónomas que se ejecutan en Heroku y se integran con datos de Salesforce pueden proporcionar extensiones de back-office para Salesforce, así como las aplicaciones móviles y web de cara a los clientes. Las interfaces de usuario personalizadas pueden tener bibliotecas, funciones o conjuntos de habilidades de desarrollador que impulsen la decisión de utilizar Heroku y tecnologías de código abierto en lugar de las opciones nativas de Salesforce Platform.

Integración a través de procesos externos

Los procesos externos pueden transferir el procesamiento por lotes y desencadenar la gestión de eventos a aplicaciones en Heroku. Este método puede resultar útil dependiendo del tipo de trabajo que haya que realizar y la cantidad de esfuerzo aparejado. La ciencia de datos, el aprendizaje automático, el procesamiento de imágenes y video, así como la integración con sistemas heredados o externos pueden ser razones para descargar procesos externos sobre Heroku.

Como ejemplo, digamos que su compañía inmobiliaria carga fotografías de cada casa que tiene a la venta. Esas fotos son de gran tamaño, de modo que necesita una forma de cambiar su tamaño para reducir los tiempos de carga y los costos de almacenamiento. Puede descargar fácilmente este trabajo sobre un proceso externo en Heroku. Cada vez que se carga una fotografía en Salesforce, se envía a una aplicación en Heroku para su procesamiento, y la imagen con el tamaño cambiado se guarda de vuelta en Salesforce. La aplicación en Heroku que controla el proceso externo podría ser responsable únicamente de esa parte del sistema. En ese caso, es probable que la aplicación se considere un microservicio que puede implementarse de forma separada sin ninguna otra dependencia de sistemas.

Descripción general de los métodos de integración

Ahora sabe que la replicación de datos, los proxies de datos, las interfaces de usuario personalizadas y los procesos externos son estupendas razones para combinar Heroku y Salesforce. Pero, ¿cómo se hace esto en la práctica? Existe un número de métodos para realizar estos tipos de integraciones, que incluyen:

  • Heroku Connect
  • Salesforce Connect
  • APIs de REST de Salesforce
  • Llamadas

Profundizaremos en cada uno de ellos en breve, pero aquí tiene una rápida descripción general para empezar a trabajar.

Heroku Connect

Heroku Connect proporciona replicación de datos y proxies de datos para Salesforce. La replicación de datos sincroniza datos entre Salesforce y una base de datos Postgres de Heroku. Dependiendo de cómo esté configurada, la sincronización es unidireccional o bidireccional Heroku Connect también proporciona un proxy de datos para Salesforce a través del protocolo OData con Objetos externos de Heroku. Los Objetos externos de Heroku proporcionan un contenedor OData para la base de datos Postgres de Heroku con la que Heroku Connect mantiene una conexión. Esta función permite a los otros servicios web recuperar datos desde la base de datos Postgres de Heroku especificada empleando extremos RESTful generados por el contenedor.

Diagrama mostrando flechas primero yendo desde Salesforce a un componente medio, luego a Heroku y luego volviendo a Salesforce una vez insertado un contacto

Una de los mayores beneficios de la utilización de Heroku Connect para la replicación de datos es que un subconjunto de datos de Salesforce queda accesible de forma rápida y sencilla para una aplicación en Heroku. Como desarrollador de aplicaciones, solo tiene que redactar SQL estándar para consultas de la manera a la que está habituado. Heroku Connect y Postgres proporcionan un acceso de baja latencia y alto desempeño a los datos de Salesforce.

Salesforce Connect

Puede utilizar Salesforce Connect (anteriormente denominado Lightning Connect) como un proxy de datos para sacar OData u otras fuentes de datos a Salesforce según demanda. No se copian datos a la base de datos de Salesforce. Puede ejecutar extremos que exponen OData 2.0 en Heroku o según lo proporcionen sistemas externos. Como se mencionó anteriormente, Heroku Connect puede exponer una base de datos Postgres de Heroku como OData para su consumo por parte de Salesforce Connect. De forma alternativa, los adaptadores personalizados de Salesforce Connect permiten que Salesforce haga de proxy de cualquier fuente de datos con la que Apex se pueda comunicar, incluidas REST con XML o JSON y SOAP.

Imagen ilustrando cómo se pueden utilizar Objetos externos para conectar de forma externa con datos externos disponibles a través de SAP, Oracle, Workday o Heroku

El beneficio principal de Salesforce Connect es que incorpora datos externos a la interfaz de usuario de Salesforce y hace que parezca que los datos residen en Salesforce, aunque solo hace de proxy según demanda desde una fuente de datos externa. Este proceso hace sencilla la recopilación de fuentes de datos dispares para usuarios de Salesforce.

APIs de REST de Salesforce

Las API de REST de Salesforce proporcionan a las aplicaciones en Heroku acceso a datos de Salesforce a través de solicitudes sencillas HTTP con formato JSON. Puede utilizar esta integración para los proxies de datos y las interfaces de usuario personalizadas. Las aplicaciones creadas con tecnologías de código abierto que se ejecutan en Heroku pueden utilizar OAuth para autorizar a los usuarios en una interfaz de usuario personalizada y luego interactuar con datos de Salesforce en su nombre. Los casos de uso de integración sin una interfaz de usuario pueden actuar como agentes de datos entre Salesforce y sistemas externos.

Imagen mostrando una conexión entre los objetos en Salesforce a Heroku a través de una interfaz de REST

Llamadas

Puede utilizar llamadas desde Salesforce para llamar a procesos externos en Heroku. Las llamadas se redactan en Apex o se utilizan acciones de mensaje saliente para hacer que los eventos en Salesforce desencadenen la ejecución de un proceso en Heroku. Ese proceso a menudo utiliza uno de los métodos de integración anteriormente mencionados para obtener el resultado del proceso de vuelta en Salesforce.

Visite la publicación de blog Ampliar flujos con cómputos de Heroku: un patrón impulsado por eventos para obtener más información sobre Heroku y los servicios externos.

Diagrama mostrando un cuadro con Salesforce y un Evento de datos desencadenado o enviado desde un mensaje saliente. Una flecha sale del cuadro y apunta a otro cuadro que contiene todas las aplicaciones que alberga Heroku.

Comparación de métodos de integración

Cada método de integración de Salesforce y Heroku tiene un lugar dependiendo de los conjuntos de habilidades del desarrollador y el caso de uso a mano. A continuación se describen algunas diferencias básicas entre las opciones de integración.

Heroku Connect

Salesforce Connect

APIs de REST

Llamadas

Modelo de seguridad

Usuario de integración

Varias (incluyendo usuario de integración y principal nombrado)

OAuth

Usuario de aplicación

Límites

Excluido de los límites

Número máximo de fuentes, objetos y campos

Límites de API

Límites de API

Funciones de sObject

Todas las funciones estándar

Solo lectura

Sin campos de fórmula ni de resumen

Sin desencadenadores ni procesos de aprobación

Sin reglas de validación

Seguimiento del historial de campos

Sin notas, archivos adjuntos

Todas las funciones estándar

N/A

Estrategia de datos

Sincronización bidireccional en tiempo real u OData

OData o proxy

Lectura y copia

Carga

Usuarios finales

Anónimo, clientes

Usuarios de Salesforce

Cualquiera

No

Protocolo

SQL

Apex

HTTP

HTTP

A continuación se describen algunas sugerencias generales para las integraciones:

  • Par replicar datos entre Salesforce y Heroku, utilice Heroku Connect.
  • Para exponer una base de datos Postgres de Heroku en Salesforce, utilice el Objeto externo de Heroku Connect.
  • Para hacer de proxy de fuentes de datos OData, SOAP, XML o JSON en Salesforce, utilice Salesforce Connect.
  • Si Heroku Connect no se ajusta al escenario, como cuando tiene una interfaz de usuario personalizada en Heroku donde los usuarios inician sesión a través de Salesforce, utilice las API de REST de Salesforce.
  • Para descargar o ampliar el procesamiento de eventos de datos de Salesforce, utilice llamadas desde Salesforce a Heroku.

Recursos

Comparta sus comentarios de Trailhead en la Ayuda de Salesforce.

Nos encantaría saber más sobre su experiencia con Trailhead. Ahora puede acceder al nuevo formulario de comentarios en cualquier momento en el sitio de Ayuda de Salesforce.

Más información Continuar a Compartir comentarios