Esta es una traducción que desde EGA Futura ofrecemos como cortesía a toda la Ohana y comunidad de programadores , consultores , administradores y arquitectos de Salesforce para toda Iberoamérica .
El enlace a la publicación original, lo encontrarás al final de este artículo.
…
Con la adquisición de Slack por parte de Salesforce, Salesforce está logrando un objetivo importante: ayudar a las personas a trabajar desde cualquier lugar en este nuevo mundo totalmente digital. Los desarrolladores de Salesforce tienen la oportunidad de estar a la vanguardia de este mundo utilizando Slack para mostrar la información que sus clientes necesitan en el momento que la necesitan.
Los desarrolladores pueden ampliar sus aplicaciones y permitir que los usuarios utilicen Slack como su centro de colaboración y actúen sobre los datos de Salesforce y otros sistemas comerciales. Si se pregunta qué puede construir con Slack y Salesforce juntos, y cómo hacerlo, esta publicación es para usted. Exploraremos cómo crear aplicaciones de Slack integradas con datos de Salesforce.
Puede pensar en Slack como una aplicación de mensajería. Sin embargo, lo que me entusiasma como desarrollador de Salesforce es la plataforma Slack, que le permite ampliar, expandir y automatizar el trabajo de su organización.
¿Qué es una aplicación de Slack?
Slack permite a los desarrolladores crear experiencias personalizadas mediante el uso de las API de Slack. Se denominan "aplicaciones de Slack" y tienen varios componentes:
- Una configuración de la aplicación (esta configuración se realiza en api.slack.com ) que define cómo su aplicación se comunicará con Slack
- Un servicio que maneja la realización de llamadas a la API y puede recibir y enrutar eventos; puede utilizar la infraestructura de su elección para alojar este servicio
- Una interfaz de usuario de Slack, que podría estar en un mensaje de Slack, en la página de inicio de la aplicación o incluso en un modo emergente.
Puede escribir aplicaciones de Slack solo para su equipo o publicarlas en el directorio de aplicaciones de Slack para permitir que otros las instalen. Al crear aplicaciones de Slack, puede escribir código en el idioma que elija para integrarlo con varios servicios de terceros, incluido Salesforce.
Crear una aplicación de Slack
El primer paso para integrar Slack con Salesforce implica crear una aplicación Slack. Puedes hacer esto manualmente o usando un YML de manifiesto (consulta la documentación de la API de Slack ). Usar el manifiesto YML es la forma recomendada de comenzar y simplifica la clonación de sus aplicaciones de producción para probar las necesidades o corregir errores.
Nota: deberá iniciar sesión en su cuenta de Slack para crear una aplicación de Slack. Si aún no tiene el espacio de trabajo de Slack, puede registrarse de forma gratuita .
Una vez que haya creado su aplicación Slack, puede usar el panel para ver o configurar:
- Credenciales de la aplicación que permiten que sus aplicaciones accedan a las API de Slack. Estas credenciales deben almacenarse de forma segura y protegida.
- Una interfaz de usuario para configurar los alcances de la aplicación de Slack, que rigen las capacidades y los permisos de la aplicación.
- URL de webhook que le permiten conectarse a Slack a través de HTTP POST a la URL
- Configuraciones relacionadas con la aplicación, como:
- Comandos y atajos de barra: puede configurar su aplicación para que responda a la entrada del usuario usando el botón del rayo en el redactor (un atajo) o un comando basado en texto que comienza con / (un comando de barra) . Piense en / giphy para buscar un GIF o / polly para lanzar una encuesta.
- URL para suscribirse a la API de eventos de Slack . Las aplicaciones de Slack pueden suscribirse a varias actividades en Slack, como el canal creado, el canal archivado y muchos más tipos de eventos .
- Desarrollo de la marca de la aplicación, miniaturas y descripciones
- Distribución de la aplicación: esto es aplicable si está publicando su aplicación en el directorio de aplicaciones de Slack.
¿Qué es un bot de Slack?
Un bot de Slack es un usuario único de su aplicación Slack que puede esperar su comando, interpretar su comando y realizar acciones, como encontrar lo que necesita.
Todas las solicitudes a las API de Slack deben firmarse con un token. Slack tiene diferentes tipos de tokens como se explica a continuación:
-
- Token de bot: los tokens de bot representan un bot asociado con la aplicación instalada en un espacio de trabajo. Los tokens de bot están vinculados a su aplicación. Dado que actuar de forma independiente permite que su aplicación permanezca instalada, incluso cuando un usuario de instalación está desactivado, usar tokens de bot suele ser lo mejor.
- Token de usuario: los tokens de usuario representan miembros del espacio de trabajo. Se emiten para el usuario que instaló la aplicación y para los usuarios que autentican la aplicación. Puede utilizar estos tokens para realizar acciones en nombre de los usuarios.
- Tokens de nivel de aplicación: los tokens de nivel de aplicación representan su aplicación en todas las organizaciones, incluidas las instalaciones de todos los usuarios individuales en todos los espacios de trabajo de una organización determinada.
La imagen a continuación muestra el panel donde creará y configurará una aplicación de Slack.
Creación y configuración de aplicaciones de Slack.
Conexión a Slack desde Salesforce
Un patrón típico que los desarrolladores necesitan al integrar Slack y Salesforce es un método para enviar mensajes (que contienen datos de Salesforce) desde Salesforce sobre un evento o una acción en Salesforce.
Por ejemplo, imaginemos que desea crear una integración que notifique automáticamente a su equipo de marketing en Slack cada vez que se cree un nuevo cliente potencial en Salesforce.
El caso de uso anterior se puede resolver utilizando uno de los enfoques que se enumeran a continuación:
- Usando herramientas de bajo código como Mulesoft Composer: puede aprender más sobre esto usando este módulo de inicio de ruta
- Uso de servicios externos y flujos de Salesforce: Slack proporciona especificaciones de OpenAPI que se utilizan para generar acciones de flujo en Salesforce para invocar las API web de Slack.
- Usar un flujo o desencadenador de Salesforce llamando a un método de Apex que invoca Webhooks entrantes y varias API web de Slack
Todos los enfoques anteriores requieren primero la creación de una credencial con nombre para autorizar que la aplicación Slack se conecte a Salesforce. Consulte las instrucciones paso a paso para configurar credenciales con nombre y un proveedor de autenticación.
A continuación, se muestra una implementación de solución de alto nivel para el caso de uso anterior.
Envío de mensajes de Slack desde Salesforce al crear un cliente potencial.
Generador de flujo de trabajo de Slack
Otra interesante herramienta de bajo código de Slack es Workflow Builder , que te permite automatizar procesos de rutina en flujos de trabajo en tu espacio de trabajo de Slack . Puede invocar un flujo de trabajo de Slack desde Salesforce invocando la URL de webhook de solicitud , que Slack genera automáticamente.
Conexión a Salesforce desde Slack
Otro patrón típico que los desarrolladores necesitan al crear aplicaciones de Slack integradas con Salesforce es la capacidad de la aplicación para iniciar sesión en Salesforce, obtener datos y realizar operaciones DML en datos de la interfaz de Slack.
Por ejemplo, imaginemos que sus usuarios necesitan una aplicación de Slack que se pueda instalar en un espacio de trabajo de Slack para realizar las siguientes funciones:
- Inicie sesión en Salesforce desde Slack mediante un comando de barra (escribiendo / sf-login ) en Slack. Tras la ejecución del comando, los usuarios son enviados a la página de inicio de sesión de Salesforce para usar sus credenciales de Salesforce para autenticarse en Salesforce.
- Encuentre casos de Salesforce dentro de Slack mediante un comando de barra (escribiendo / show-my-cases ) en Slack.
- Actualice el estado del caso directamente desde Slack abriendo un modal al hacer clic en el registro del caso.
- Tome medidas para actualizar el caso en Salesforce a través de un botón en la interfaz modal.
Aquí está la arquitectura de alto nivel para que la aplicación Slack sea compatible con el caso de uso anterior.
Aplicación de Slack que se conecta a Salesforce.
Slack ofrece a los desarrolladores la flexibilidad de elegir su infraestructura y lenguaje preferidos para crear aplicaciones de Slack. Existen SDK de código abierto para Java, JavaScript y Python conocidos como Bolt , que Slack proporciona y mantiene para facilitar el desarrollo de aplicaciones y cumplir con los estándares de seguridad.
Como desarrollador de Salesforce, estoy más familiarizado con JavaScript, por lo que elegiría el SDK de JavaScript de Slack. Pero puede elegir el SDK que desee según su comodidad con el idioma. Ahora, si eres aventurero y quieres aprender un nuevo idioma en el proceso de creación de tu nueva aplicación Slack, ¡adelante!
Para alojar aplicaciones de Slack, prefiero usar Heroku. El tiempo de ejecución elástico de Heroku, la disponibilidad de paquetes de compilación para varios lenguajes de código abierto y la experiencia de desarrollador de primera clase lo hacen ideal para alojar y escalar aplicaciones de Slack.
Para nuestro caso de uso anterior, la aplicación Slack alojada en Heroku actúa como un puente (intermediario) entre Salesforce y Slack y conecta ambos sistemas. Lo importante a observar en el diagrama de arquitectura anterior es que Salesforce es la única fuente de verdad para todos los datos.
Autorización y autenticación a Salesforce
Para iniciar sesión y obtener una sesión de Salesforce de forma segura, deberá utilizar una aplicación conectada en Salesforce. Puede configurar los secretos en las variables de entorno de la aplicación Heroku. Si está utilizando Node.js, puede aprovechar una biblioteca de código abierto como JSForce para autenticar, consultar y actualizar registros en Salesforce.
Si está obteniendo datos de Salesforce a través de la aplicación Heroku como usuario de integración, puede aprovechar el flujo de JWT de servidor a servidor para administrar la autenticación. Con este flujo, puede evitar tener que pedir a todos los usuarios que pasen por el flujo de OAuth.
Si necesita conservar el contexto de usuario de Salesforce, proporcione un comando de barra inclinada para que los usuarios realicen un baile de OAuth con Salesforce.
Autorización y autenticación en Slack
Gracias al SDK de Bolt , la mayor parte de la autenticación y autorización se proporciona de forma inmediata. Sin embargo, una cosa que el SDK no incluye es la implementación de la base de datos para preservar los tokens. Puede usar Heroku Postgres con conexiones de base de datos cifradas o cualquier otro complemento de Heroku equivalente para implementar esto en sus aplicaciones.
SDK de Bolt
Las aplicaciones de Slack tienen requisitos especiales para mantener la aplicación segura y funcionando. Algunos de los importantes incluyen:
Bolt SDK proporciona estas funciones listas para usar, lo que facilita este paso a los desarrolladores. Aparte de estos, Bolt SDK también simplifica OAuth, proporciona métodos para API web y API de eventos, y mucho más.
Kit de bloques
Block Kit proporciona a los desarrolladores componentes de IU utilizando un formato de datos JSON. Es único porque no tiene que escribir marcado HTML o CSS, a diferencia de las aplicaciones web. Si eres un desarrollador centrado en back-end, ¡no puede ser más fácil que esto!
Con el generador de interfaz de usuario del kit de bloques , los desarrolladores, los especialistas en marketing y los diseñadores pueden diseñar y crear prototipos de bloques de mensajes. The Builder también puede enviar los mensajes directamente a su espacio de trabajo de Slack.
A continuación, se muestra un ejemplo de JSON para el mensaje de IU de bloque que muestra casos recientes de Salesforce. Para ver esto en acción, simplemente copie este JSON y péguelo en Block Kit UI Builder .
{ "bloques": [ { "tipo": "sección", "texto": { "tipo": "mrkdwn", "text": "Encontramos * 5 nuevos casos * asignados a usted hoy" } }, { "tipo": "divisor" }, { "tipo": "sección", "texto": { "tipo": "mrkdwn", "text": "* <https://cmpaura-dev-ed.lightning.force.com/lightning/r/Case/5003t00001Ah6vmAAB/view|Case - 00001002> * nn * Asunto *: Buscando orientación sobre la instalación del cableado eléctrico para GC5060 " } }, { "tipo": "contexto", "elementos": [ { "type": "plain_text", "emoji": cierto, "text": "Contacto: Stella Pavlova" } ] }, { "tipo": "divisor" }, { "tipo": "sección", "texto": { "tipo": "mrkdwn", "text": "* <https://cmpaura-dev-ed.lightning.force.com/lightning/r/Case/5003t00001Ah6w0AAB/view|Case - 00001002> * nn * Asunto *: Las pautas de mantenimiento para el generador no están claras" } }, { "tipo": "contexto", "elementos": [ { "type": "plain_text", "emoji": cierto, "text": "Contacto: Edna Frank" } ] }, { "tipo": "divisor" }, { "tipo": "sección", "texto": { "tipo": "mrkdwn", "text": "* <https: //cmpaura-dev-ed.lightning.force.com/lightning/r/Case/5003t00001Ah6w8AAB/view | Case - 00001024> * nn * Asunto *: Problema de diseño con rotor mecánico" } }, { "tipo": "contexto", "elementos": [ { "type": "plain_text", "emoji": cierto, "text": "Contacto: Lauren Boyle" } ] }, { "tipo": "divisor" }, { "tipo": "acciones", "elementos": [ { "tipo": "botón", "texto": { "type": "plain_text", "emoji": cierto, "text": "Próximos 2 resultados" }, "valor": "click_me_123" } ] } ] }
El bloque JSON produce un componente de interfaz de usuario, como se muestra a continuación.
Casos recientes de Salesforce en Slack con Block UI utilizados para construir el mensaje.
Directorio de aplicaciones de Slack
Al igual que Salesforce AppExchange (donde los desarrolladores pueden distribuir aplicaciones de Salesforce), Slack permite a los desarrolladores crear y distribuir sus aplicaciones de Slack a través del directorio de aplicaciones de Slack .
Herramientas para desarrolladores de Slack
Slack proporciona una serie de útiles herramientas para desarrolladores . Mi favorito personal es la aplicación de herramientas Slack Developer. Es una aplicación de Slack que se puede instalar en cualquier espacio de trabajo y permite a los desarrolladores inspeccionar el código detrás de un mensaje de Slack, así como explorar los documentos de la API de Slack dentro de Slack.
Lo que está por venir para los desarrolladores con Salesforce y Slack
Hemos estado ocupados investigando lo que podría significar unir a Slack y Salesforce desde que Salesforce firmó un acuerdo definitivo para adquirir Slack. Sin embargo, dado que la transacción aún no se completó, nuestros equipos tuvieron que trabajar de forma independiente. Durante este tiempo, hemos estado planificando servicios que hacen que las aplicaciones que integran Slack y Salesforce sean más fáciles de implementar. También hemos estado sentando las bases para la experiencia Slack-First Customer 360 que ahora lanzamos. Con la adquisición ahora completa, los equipos de Slack y Salesforce pueden trabajar juntos para ejecutar los planes, lo que significa que tanto los desarrolladores de Slack como los de Salesforce tienen mucho que esperar en las próximas semanas y meses.
Conclusión
Combinando las capacidades de bajo código de Salesforce, el tiempo de ejecución elástico de Heroku y la interfaz de usuario, los conjuntos de herramientas para desarrolladores y los servicios API de Slack, los desarrolladores de Salesforce se encuentran en una posición única para crear aplicaciones que pueden proporcionar una experiencia conectada para empleados y clientes.
Finalmente, existe la oportunidad de integrar sus herramientas de desarrollo favoritas, como GitHub, servidores de integración continua, IDE y herramientas de línea de comandos (CLI) con Slack para aumentar su productividad diaria.
Para comenzar con su viaje de desarrollo de Slack, visite los recursos a continuación en los documentos de Trailhead y Slack:
Sobre el Autor
Pegue lo siguiente en Slack Block Kit Builder para obtener más información sobre Mohith Shrivastava .
{ "bloques": [ { "tipo": "sección", "texto": { "tipo": "mrkdwn", "text": "* Mohith Shrivastava * trabaja como promotor principal de desarrolladores en Salesforce. Mohith es * Desarrollador certificado por Slack *. Actualmente se centra en" } }, { "tipo": "sección", "texto": { "tipo": "mrkdwn", "text": "• Integración de Slack y Salesforce n • Heroku n • Herramientas para desarrolladores" } }, { "tipo": "sección", "texto": { "tipo": "mrkdwn", "text": "Puedes seguirlo en Twitter * <https://twitter.com/msrivastav13 | @ msrivastav13> *" } } ] }
…
Esta es una traducción realizada por EGA Futura, y este es el link a la publicación original: https://developer.salesforce.com/blogs/2021/07/slack-for-salesforce-developers.html