Categories
Analista de negocios de Salesforce Enterprise Software Salesforce Tutoriales de Salesforce

30 preguntas y respuestas de entrevistas a analistas de negocio

La demanda de analistas de negocio de Salesforce ha crecido a un ritmo elevado. Las organizaciones de Salesforce han evolucionado y se han vuelto más complejas. Como resultado, existe una mayor necesidad de evaluar los cambios deseados y obtener una visión completa de la situación, para asegurarse de que todo el mundo está de acuerdo. Esta es la razón por la que las organizaciones deben buscar un Analista de Negocio.

Los analistas de negocio participan en todo el proceso. Desde la idea, pasando por el descubrimiento (recopilación de necesidades) y el mapeo de procesos, hasta garantizar que el proyecto se entrega, que se han completado suficientes pruebas y que a los usuarios realmente les gusta utilizar el sistema (es decir, la adopción del usuario).

Los analistas de negocio también ayudan a «dirigir el barco» con la deuda técnica, que es causada por la elección de atajos o la solución incorrecta / incompleta, en lugar de tomarse el tiempo para descubrir las necesidades del negocio más allá del corto plazo. Cargado con herramientas y tecnología que la organización ha superado, el tiempo/coste de retrabajo adicional se convierte en una carga.

La cantidad adecuada de gobernanza, alineación con las partes interesadas y documentación ha dado lugar a la demanda de analistas de negocio de Salesforce, o profesionales de Salesforce que dominan las habilidades de análisis de negocio. Después de todo, hay pruebas de ello en la trayectoria profesional de analista de negocio de Salesforce y en la tan esperada certificación de analista de negocio de Salesforce.

LEA MÁS:
Guía y consejos para la certificación de analista de negocio de Salesforce

Otro punto importante a destacar: Las funciones de analista de negocio adoptarán diferentes «formas». Puede ser un analista de negocio interno o trabajar para un socio consultor de Salesforce. Las preguntas de la entrevista variarán en función de la organización y del tamaño del proyecto que la organización desee emprender.

    • Para los analistas de negocio internos (es decir, que trabajan en la organización Salesforce de su propia organización), también debe revisar las preguntas de la entrevista de administración.

<li

  • Para analistas de negocio externos (es decir, que trabajen en socios consultores de Salesforce), debe revisar las preguntas de la entrevista de consultor y/o gestor de proyectos.

En este artículo, he recopilado una lista con algunas de las preguntas más específicas que podría esperar al realizar una entrevista para un puesto de analista de negocio de Salesforce, con algunas ideas sobre cómo podría enfocar la respuesta a las mismas.

Preguntas para entrar en calor

1. Hábleme de usted. Háblame de ti.

Aunque no es una pregunta, casi todas las entrevistas (de Salesforce o de otro tipo) van a comenzar con una pregunta en la que tendrá la oportunidad de hablar de sí mismo.

No cometa el error de convertirla en un largo desglose, viñeta a viñeta, de su historial laboral. Esta puede ser tu única oportunidad de dejar al entrevistador con lo que quieres que sepa de ti. Elija sus palabras con cuidado y practique de antemano lo que va a decir. Intente que su respuesta no dure más de dos minutos.

Para los analistas de negocio de Salesforce, este es un buen momento para mencionar cuándo descubrió Salesforce y también sus habilidades interpersonales transferibles.

LEA MÁS:
14 habilidades de un profesional de éxito en Salesforce (según Salesforce)

2. ¿Por qué Salesforce?

Los profesionales de Salesforce son conocidos por su pasión por Salesforce, pero no basta con decir «me encanta». Algunas razones que amplían su amor y que podría mencionar en la entrevista:

    • La comunidad: Haga saber a su entrevistador que es capaz de aprovechar el poder de la «Ohana» de Salesforce para ampliar sus conocimientos sobre Salesforce, aprender las mejores prácticas y mantenerse al día de los cambios. Si su entrevistador es un MVP de Salesforce o un líder de grupo de la comunidad Trailhead, le gustará aún más esta respuesta.

<li

  • Trailhead: El sistema de gestión del aprendizaje y los grupos de la comunidad de Salesforce, Trailhead, es gratuito, completo y divertido. Al mencionar Trailhead, puede demostrar que sabe dónde encontrar respuestas a preguntas sobre Salesforce, obtener más información sobre la plataforma y los productos y conectar con otros profesionales. Con esta respuesta y la anterior, dará la impresión de ser una persona con recursos, con don de gentes (muy importante para los BA) y un aprendiz continuo que no dependerá por completo de su empleador para obtener todos sus conocimientos sobre Salesforce.
  • Trailhead
  • Ayudar a las personas/ayudar a las empresas: Los analistas de negocio suelen estar motivados por la emoción de la transformación digital que cambia la vida laboral de las personas al eliminar los puntos débiles y optimizar los procesos empresariales. Salesforce es un medio asombroso para este fin, que es a menudo la razón por la que los BA tienden a gravitar hacia él.
  • Ayudar a las personas/ayudar a las empresas:

3. ¿Qué experiencia ha tenido como analista de negocio?

Esta pregunta es bastante sencilla si has tenido experiencia como analista de negocio, pero si no es así, es el momento de dejar brillar esas habilidades transferibles. Pregúntese, ¿ha ocupado alguna vez un puesto, profesional o incluso personal (¡las reuniones de padres y madres cuentan!), que le exigiera:

  • ¿Hablar con alguien para poder entender a fondo un problema y luego proponer una solución?
  • Escribir documentación?
  • ¿Estar de cara al cliente?
  • ¿Ejecutar reuniones?
  • ¿Crear presentaciones?

Estos y otros tipos de habilidades transferibles, donde has hecho el trabajo que hace un BA pero sin el título, son excelentes para plantear aquí.

LEER MÁS:
Qué es un analista de negocio de Salesforce – ¿Cómo llegar a serlo?

4. ¿Qué cualidades cree que hacen que un Salesforce Business Analyst sea bueno?

Un BA de Salesforce actúa como traductor entre la empresa y el equipo técnico. Para hacerlo con eficacia, un BA debe tener sólidas habilidades de comunicación, como ser capaz de escribir con claridad y comunicar conceptos técnicos de forma no técnica. Debe hablar con claridad y seguridad.

Pero más que habilidades interpersonales, el análisis empresarial requiere inteligencia emocional. La empatía es clave a la hora de relacionarse con las partes interesadas de la empresa. Cuando te embarcas en un proyecto de transformación digital, las partes interesadas pueden sentirse a la defensiva. Pueden tener la sensación de que sus formas no son valiosas o que vas a intentar llegar y decirles que no hacen bien su trabajo.

A veces las entrevistas de recopilación de requisitos empresariales pueden parecer más bien sesiones de terapia empresarial, pero aprovechar esos sentimientos de dolor, resentimiento y frustración al recopilar requisitos a menudo significa que se está llegando a la imagen real de la empresa y eso es algo maravilloso. Cuando las partes interesadas sientan que estás ahí para ayudarles de verdad, te convertirás más fácilmente en un asesor de confianza para ellos.

5. ¿Tiene alguna pregunta que hacerme? ¿Tiene alguna pregunta para mí?

Esto suele venir al final de las preguntas del entrevistador/es – ¡no dejes caer la pelota aquí!

Este es el momento de dar al entrevistador una idea de cómo sería una sesión de recopilación de requisitos empresariales con usted. Es el momento de hacer preguntas para tener claras las responsabilidades del puesto, lo que hace la empresa y cómo es el éxito. Tome el control de esa reunión, al igual que lo haría en una entrevista con las partes interesadas, y tenga confianza mientras hace grandes preguntas.

Gestión de las partes interesadas

6. ¿Cómo gestionarías que un stakeholder de negocio añadiera nuevos requisitos más allá del alcance de trabajo acordado?

La ampliación del alcance es un gran riesgo para cualquier proyecto de Salesforce, por lo que es vital contar con un plan de proyecto claro y bien definido. Dicho esto, las partes interesadas son partes interesadas, lo que significa que es probable que pidan cosas fuera del alcance del proyecto con la esperanza de que usted pueda «incluirlas». Como BA, es importante escuchar el nuevo requisito y, a continuación, esbozar los riesgos para el proyecto y las opciones. ¿Debería pasar a una segunda fase? ¿Debería eliminarse algo del alcance para poder incluirlo?

Tener un proceso formal de gestión de cambios de revisión y aprobación garantizará que los cambios no autorizados no descarrilen el proyecto.

7. ¿Cómo trataría a una parte interesada que…

  1. ¿No responde?
  2. ¿No facilita información?
  3. ¿No responde?
  4. ¿Se muestra difícil?

Para las entrevistas de BA, es probable que obtenga alguna versión de una pregunta con la forma de gestionar una parte interesada empresarial desafiante. Tener un plan de gestión de partes interesadas acordado en su lugar ayudará a establecer las expectativas en cuanto a las responsabilidades de cada parte interesada. Facilitará señalar cuando una parte interesada actúe de forma contraria al plan establecido.

Una vez identificada una parte interesada problemática, un enfoque habitual es concertar una reunión individual con ella para reiterarle su importancia para el proyecto. Comprender sus motivaciones y preocupaciones, y luego validarlas, puede ayudar a reconstruir la confianza entre ambos. Al mismo tiempo, es importante que el proyecto siga adelante. Un BA puede tener que llamar el riesgo para el director del proyecto si la parte interesada no se sube a bordo.

Gestión de proyectos

8. ¿Qué hacer cuando se bloquea un problema?

La forma de enfocar esto dependerá del problema en el que estés bloqueado. En general, el trabajo de BA suele implicar a un equipo al que puedes acudir, incluido tu gestor de proyectos, si necesitas ayuda con cualquier cosa. Fuera de su equipo, también son buenas opciones mostrar su ingenio aprovechando la comunidad de Trailblazer, la ayuda de Salesforce y Trailhead para investigar sobre funciones y soluciones con las que podría estar menos familiarizado. Lo importante es transmitir que, aunque no siempre tenga las respuestas, confía en que siempre podrá encontrarlas.

9. Además de Salesforce. Además de Salesforce, ¿qué ejemplos de software ha utilizado como analista de negocio?

Esto podría parecer un poco diferente en función de su experiencia personal y los detalles específicos de los proyectos en los que ha estado, pero aquí hay algunos programas que los analistas de negocios suelen utilizar:

  • Historias de usuarios: Jira, Elements.cloud, Salesforce, Trello.
  • Los analistas de negocio suelen utilizar los siguientes programas
  • Mapeo de procesos de negocio: Visio, LucidChart.
  • Mapeo de procesos de negocio: Visio, LucidChart
  • Documentación de formación: Confluence, OneNote, Notion, Google Suite, Microsoft Suite, Salesforce.
  • Gestión de proyectos: Jira, Smartsheet, Notion.
  • Gestión de proyectos: Jira, Smartsheet, Notion
  • Toma de notas: One Note, Google Suite, Microsoft Suite.
  • Gestión de reuniones: Jira, Smartsheet, Microsoft Suite
  • Reuniones: Zoom, Google Hangouts, Teams

10. Has trabajado alguna vez en un equipo ágil?

Por Trailhead, «Salesforce business analyst es un project-based, business-improvement role». Al estar basado en proyectos, es importante reconocer que las iniciativas de Salesforce tienden a utilizar Scrum u otras metodologías Agile para facilitar dichos proyectos. Comprender claramente cómo funciona un equipo Agile suele ser clave para los BA.

Tanto si tiene experiencia en Agile como si no, le recomiendo encarecidamente que obtenga una credencial de Certified Scrum Master o Certified Scrum Product Owner a través de Scrum Alliance. Ambos son fáciles, cursos de dos días que le permiten tener una respuesta fácil a esta pregunta:

Entrevistador: «¿Ha trabajado alguna vez en un equipo ágil?»

Tú: «Soy Certified Scrum Master»

¡Hecho!

En ausencia de una credencial Agile, lo que el entrevistador estará buscando es calibrar cuánta formación tendrían que darte sobre la metodología en caso de que te unieras a su equipo. Demostrando una clara comprensión de cómo funciona un equipo Scrum típico y soltando esas palabras del vocabulario Ágil (como «Sprint», «Retrospectiva» y «Definición de Hecho»), harás mucho para convencerles de que podrías ponerte manos a la obra.

11. ¿Qué metodología prefieres? ¿Agile o Waterfall?

Esta es una pregunta un poco capciosa. Aunque la mayoría de los proyectos de Salesforce tienden a utilizar la metodología Agile, no es siempre la mejor forma de entregar un proyecto. Una pregunta como ésta está diseñada para ver si entiende las diferencias entre las dos metodologías y si se siente cómodo con ellas. Las principales cosas que hay que saber son:

  • Waterfall es mejor cuando el presupuesto o el tiempo de entrega es fijo, el resultado de un proyecto es predecible y los requisitos están bien definidos.
  • Agile se utiliza cuando se espera que los requisitos evolucionen y el proyecto se entrega de forma incremental. Las partes interesadas de la empresa participan activamente en todo el proceso
  • Muchas empresas, especialmente consultorías, utilizarán alguna combinación de Waterfall y Agile para su metodología estándar de entrega de proyectos, así que intente no odiar a una u otra porque no querrá insultarlas accidentalmente.
  • Agile es una metodología que se utiliza cuando se espera que los requisitos evolucionen y las partes interesadas del negocio se involucren profundamente a lo largo de todo el proceso

Así que tal vez la mejor respuesta aquí es: «Cuéntame más sobre el proyecto».

Descubrimiento

12. Cómo se reúnen los requisitos?

¿Qué tipo de preguntas hace?

Algunas formas comunes de obtener requisitos son:

  • Sesiones de tormenta de ideas
  • Entrevistas
  • Análisis de documentos
  • Demos de sistemas actuales
  • Encuestas / Cuestionarios
  • Talleres de requisitos
  • Observación

La palabra que debes incluir absolutamente en esta respuesta es, «¿por qué?». Se supone que los BAs no son tomadores de órdenes – es esencial que un BA de Salesforce entienda por qué un proceso de negocio es como es.

LEA MÁS:
Cómo recopilar requisitos (y decir ‘no’)

Algunas otras preguntas comunes son:

  • ¿Cuáles son sus puntos de dolor?
  • ¿Qué documentación tiene sobre este proceso?
  • ¿Qué aspecto tiene el éxito para usted?
  • ¿Cómo lo hace hoy en día?
  • ¿Quiénes son las personas implicadas en el proceso?
  • ¿Qué otros sistemas intervienen en el proceso?
  • ¿Cuáles son los hand offs?
  • ¿Hay excepciones? «¿Qué pasaría si…?
  • ¿Me he perdido algo?

Sin embargo, más que enumerar técnicas, esta pregunta es una gran oportunidad para discutir cosas como lo importante que es tener a las partes interesadas adecuadas en la sala. Por ejemplo, los directivos y los trabajadores a menudo pueden tener necesidades y puntos de vista muy diferentes sobre la eficacia del proceso. También puede utilizar esta pregunta para hablar de la importancia de la empatía y la confianza a la hora de reunir requisitos.

13. ¿Cómo identificaría las áreas de mejora?

13. ¿Cómo identificarías las áreas a mejorar en un proceso de negocio?

Además de preguntar a las partes interesadas sus opiniones (los puntos de dolor casi siempre conducen a la mejora del proceso de negocio), este es un buen momento para sacar a colación el mapeo de procesos de negocio. Mencionar algo como un Mapa de Flujo de Valor no sólo le hará ganar puntos de vocabulario e indicará que tiene herramientas en su cinturón de herramientas de BA, sino que también demostrará que entiende cuándo usarlas.

Una gran expresión para trabajar en esta respuesta viene de Ash Finnegan, Digital Transformation Officer en Conga. Se me quedó grabada y siempre cae bien en las entrevistas: «Si coges un mal proceso y le añades tecnología, solo consigues un mal proceso más rápido».

14. ¿Cómo prioriza los requisitos empresariales? Cómo se priorizan los requisitos empresariales?

Esta es una gran pregunta para discutir cómo trabajarías estrechamente con el Product Owner para priorizar el backlog. Introducir la palabra de vocabulario «backlog» es clave aquí, y si quieres ponerte elegante, revienta algunos métodos ágiles de priorización.

15. ¿Cuándo sabes que has terminado? ¿Cuándo sabes que has terminado de recopilar requisitos?

Cuando las sesiones de recopilación de requisitos no aportan ningún cambio significativo a los requisitos y empiezas a escuchar las mismas cosas que ya has escuchado, es probable que hayas terminado. Revisar sus requisitos con la empresa y validar que ha capturado todo lo que querían que supiera también le ayudará a entender si hay algo más que deba saber.

16. ¿Qué es un criterio de aceptación? Cuál es la diferencia entre criterios de aceptación e historias de usuario?

Las historias de usuario tienen como objetivo capturar lo que un usuario quiere y por qué lo quiere. Se centra más en la experiencia del usuario final. Por otro lado, los criterios de aceptación indican lo que debe ser cierto para que la historia de usuario se considere entregada con éxito. Las historias de usuario por sí solas no suelen ser lo suficientemente buenas como para configurar o codificar a partir de ellas. El emparejamiento de la historia de usuario con los criterios de aceptación es donde ocurre la magia.

Bonus: Los criterios de aceptación son un gran punto de partida para los scripts de prueba para el Aseguramiento de la Calidad (QA) y las Pruebas de Aceptación del Usuario (UAT).

LEA MÁS:
Cómo escribir historias de usuario para Salesforce

17. ¿Ha escrito alguna vez una historia de usuario? Qué hace que una sea buena?

Si has escrito una historia de usuario, deberías estar preparado para la primera parte de esta pregunta. Si no lo ha hecho, ¡debería hacerlo! Del mismo modo que los futuros administradores crearán orgs de desarrollo de Salesforce para practicar la configuración, los BA también pueden hacer lo mismo, pero intente escribir primero las historias de usuario. Unirse a un desafío de habilidades de Clicked o a una búsqueda de administradores/analistas también puede proporcionarle experiencia práctica gratuita en la creación de historias de usuario sólidas.

En cuanto a lo que hace que una sea buena, el acrónimo INVEST utilizado en Agile puede ser útil aquí:

    • Independiente: No debería duplicarse o solaparse con otra historia de usuario. Esto permite flexibilidad en la priorización del backlog de historias de usuario.

<li

  • Negociable: Las historias de usuario evolucionarán absolutamente en el transcurso de un proyecto.
  • Valiosas: No tiene sentido escribirlas de otra manera si no valen algo para el usuario.
  • Estimable: Debe hacerse una idea de cuánto tiempo llevará completarlo.
  • Pequeñas: Las historias de usuario más pequeñas son más fáciles de estimar, hacen que el equipo se sienta realizado porque se pueden entregar más rápido, y no retrasan piezas masivas de funcionalidad si algo va mal más adelante en el ciclo de vida de la aplicación.
  • Pequeñas:
  • Pequeñas:
  • Probable: Los criterios de aceptación son clave para entregar con éxito una historia de usuario, por lo que la historia de usuario debe ser lo suficientemente clara como para que el éxito sea definitivo.
  • Los criterios de aceptación son clave para entregar con éxito una historia de usuario

18. Has realizado alguna vez algún mapeo o diagramación de procesos de negocio?

En última instancia, lo que es necesario transmitir aquí es que el mapeo de procesos de negocio es una herramienta en su cinturón de herramientas BA y que usted entiende y puede comunicar el valor de la misma. El mapeo de procesos de negocio a menudo puede comunicar visualmente procesos difíciles más fácilmente que otros tipos de documentación. Son ideales para identificar los residuos, las mejoras y los cambios propuestos en un proceso. La Notación universal de procesos (UPN) está ganando popularidad en lo que respecta a la asignación de procesos empresariales para proyectos de Salesforce, por lo que también sería estupendo mencionarla aquí.

Aunque hay muchos tipos de mapas de procesos de negocio formales, haber mapeado algo utilizando un formato no convencional y discutirlo aquí es mejor que nada.

LEER MÁS:
Introducción a la notación universal de procesos (UPN) para la asignación de procesos de Salesforce

Trabajo en equipo

19. Prefiere trabajar en equipo o individualmente? ¿Por qué?

Como he dicho antes, en Trailhead dicen que «el analista empresarial de Salesforce es una función basada en proyectos y de mejora empresarial» Basado en proyectos significa equipo, así que primero asegúrese de que su respuesta es «equipo» hasta el final para esta pregunta. En cuanto al «por qué», puede explicar lo mucho que le gusta trabajar con personas, ayudar a documentar los procesos del equipo y cómo entiende la importancia de la función de analista de negocio como puente entre la empresa y el equipo.

20. ¿Qué crees que hace que un equipo tenga éxito?

Este es un buen punto para hablar de la dinámica de los equipos ágiles. Los equipos ágiles evolucionan para ser cada vez mejores a medida que avanza el proyecto. Esto requiere un compromiso con el equipo, el proyecto y los principios ágiles. Los mejores equipos ágiles son auto-organizados, multi-funcionales y altamente colaborativos.

Aparte de la grandeza ágil, este es también un buen momento para introducir una historia del pasado que haga sentir bien al equipo. Ágil o no, la mayoría de la gente ha estado en un equipo de algún tipo en su vida antes de entrevistarse para un trabajo. Incluso si tienes una historia sobre la salsa secreta que hizo que tu equipo de la liga infantil tuviera éxito, vale la pena compartirla: los entrevistadores recuerdan historias.

Conocimientos de Salesforce

21. ¿Ha creado alguna vez un flujo de Salesforce? ¿Has creado alguna vez un flujo de Salesforce?

No se estrese si le surge esta pregunta. La pregunta sobre el flujo suele ser una forma de que los entrevistadores evalúen lo cómodo que te sientes con la configuración de código bajo. Lo importante es ser honesto. Si está solicitando un puesto de Salesforce BA y necesitan que sea un experto en flujos, entonces es posible que en realidad no estén buscando un Salesforce BA y que el puesto no encaje bien.

LEA MÁS:
La guía completa de Salesforce Flow

Dicho esto, si puede escribir un flujo excelente, dígalo. Cuente una historia sobre cómo descubrió el problema empresarial, lo resolvió con un flujo, documentó ese flujo y todo el tiempo o dinero que ahorró.

Si aún no puedes escribir un flujo asesino, entonces después de ser breve, pero honesto, céntrate más en lo que puedes ofrecer a un equipo en lo que a configuración se refiere. ¿Te gustan las fórmulas? ¿UI/UX? ¿Qué puedes ofrecer a un equipo de configuración existente en términos de apoyo? También puede hablar de lo entusiasmado que está por aumentar la profundidad de sus conocimientos de Salesforce sumergiéndose más en la configuración (si es el caso).

Como nota final aquí, los BAs de Salesforce que por lo menos entienden el poder de la automatización de Salesforce y las posibilidades y límites del uso del flujo son mucho mejores para entrenar a sus partes interesadas en lo que es posible.

LEA MÁS:
Curso Ultimate Salesforce Flow Foundation

22. ¿Tiene alguna certificación de Salesforce?

De nuevo, sea honesto aquí ya que cualquier empleador potencial puede verificar fácilmente sus credenciales de Salesforce en Trailhead. También puede aprovechar esta oportunidad para hablar de otras certificaciones o credenciales que haya obtenido y que muestren sus habilidades de análisis empresarial, como CBAP, ACBA o CSM.

Para las personas que me han preguntado, mi ruta de certificación recomendada para un analista empresarial de Salesforce sería:

  1. Administrador de Salesforce: Casi todos los puestos de BA de Salesforce lo solicitan
  2. Scrum Alliance Certified Scrum Master: Véase la pregunta 10 anterior sobre por qué creo que esta es buena.
  3. Consultor de Salesforce (Ventas, Servicio, Marketing…): Si la nube en la que piensas especializarte tiene una certificación, consíguela. Aunque la certificación de analista empresarial de Salesforce merece la pena, todavía es nueva y no muchos clientes de Salesforce saben que existe. Las certificaciones de consultor también le prepararán mejor para la entrega de un proyecto completo.
  4. Certificación de analista de negocio de Salesforce
  5. Analista de negocio de Salesforce: Se explica por sí mismo. Si el examen de administrador fue duro y necesita una victoria más rápida, entonces probablemente esté bien hacer éste antes del examen de consultor.
  6. Salesforce Business Analyst: autoexplicativo

Después de estos: Diseñador de estrategia, Diseñador de experiencia de usuario y Constructor de aplicaciones de plataforma.

23. ¿Qué «nubes» de Salesforce utiliza? ¿Con qué «nubes» de Salesforce tiene experiencia?

Una pregunta común en la que querrán asegurarse de que su pila tecnológica se alinea con su experiencia. Después de compartir su experiencia con Salesforce, también puede mencionar cualquier producto importante de AppExchange con el que esté familiarizado y que pueda ser relevante en función del sector de la empresa con la que se está entrevistando.

También es un buen momento para hablar de cómo le gustaría ampliar sus conocimientos de Salesforce explorando nuevas nubes (y tener algunas en mente en caso de que le pregunten «¿cuáles?»). Si está realizando una entrevista con un socio de Salesforce, investigar un poco en AppExchange puede ayudarle a averiguar qué soluciones podrían ser relevantes para esa empresa.

24. ¿Cómo mantiene sus conocimientos de Salesforce? ¿Cómo mantiene actualizadas sus habilidades y conocimientos sobre Salesforce?

Además de aprovechar algunos de los recursos ya mencionados en este artículo sobre Trailhead y la comunidad Trailblazer, este es un buen momento para mencionar cómo se mantiene al día con las tres versiones anuales de Salesforce.

Como analistas de negocio, especialmente los que trabajan para clientes de Salesforce, es probable que una parte del trabajo consista en comprender las nuevas funciones que se lanzarán, presentar las relevantes a las partes interesadas del negocio, recopilar comentarios, añadirlas al backlog cuando sea apropiado y verlas a lo largo del ciclo de vida de implementación.

Experiencia

25. Has participado alguna vez en pruebas de aceptación de usuarios (UAT)? ¿Cuál era su papel?

Los analistas de negocio tienden a desempeñar un papel clave en UAT, ya que están muy familiarizados con los requisitos y se mantienen cerca de las partes interesadas. Los guiones de prueba de UAT también suelen basarse en los criterios de aceptación de las historias de usuario.

Puedes responder «Sí» a esta pregunta si alguna vez has participado en pruebas de software antes de su lanzamiento. ¿Fuiste probador? ¿Escribiste guiones de prueba? ¿Escribiste las instrucciones que los probadores tenían que seguir? ¿Ejecutaste todo el proceso UAT? ¿Documentaste las diferencias descubiertas entre los resultados de las pruebas y los requisitos? ¿Cómo se trataron?

Hay mucho en juego cuando los usuarios ven por primera vez nuevas funciones o software. Asegúrese de que su respuesta comunica su experiencia, así como su comprensión de por qué UAT debe ser exhaustiva y documentada mucho antes de una puesta en marcha.

26. ¿Ha impartido algún curso de formación sobre Salesforce a empleados? ¿Ha impartido formación sobre Salesforce a usuarios finales?

Capacitar a los usuarios finales de Salesforce es una de esas tareas que deben hacerse y hacerse bien para garantizar la adopción (no tiene sentido crear algo que nadie utiliza), pero rara vez hay un recurso dedicado a ello. Dado que los BA de Salesforce tienden a trabajar tan estrechamente con los usuarios finales, a menudo acaban llevando el sombrero de la formación, así que no se sorprenda si surge esta pregunta.

Si ha tenido que proporcionar formación a usuarios finales en el pasado, puede comunicar cifras como cuántas horas de formación ha impartido o a cuántos usuarios ha proporcionado formación. También es un buen momento para destacar otras contribuciones a la formación. ¿Ha impartido la formación en persona? ¿Ha creado vídeos de formación? ¿Ayudó a redactar el plan de estudios? ¿Contribuyó con alguna configuración de apoyo a la formación como In-App Guidance o Guidance for Success?

Si no ha realizado ninguna formación para usuarios finales de Salesforce, no dude en citar otras formaciones que haya realizado fuera de los proyectos de Salesforce. También está bien hablar de su empatía con los usuarios finales y de lo mucho que puede sumergirse en sus procesos empresariales le convertirá en la mejor persona para la tarea.

27. Describa un proyecto de Salesforce en el que haya trabajado. Describa un proyecto de Salesforce en el que haya trabajado y su contribución.

Esta pregunta trata de medir su nivel de experiencia de una forma muy similar a la pregunta 3. He aquí algunas formas diferentes de enfocarla:

  • Si no tiene experiencia previa en proyectos de Salesforce: Hable sobre proyectos voluntarios o simulados de Salesforce, por ejemplo, un Clicked Quest. Si no es así, hable sobre lo que más le apetece aportar y dónde cree que su conjunto de habilidades podría añadir valor a su primer proyecto de Salesforce basándose en otros proyectos exitosos que no sean de Salesforce o en sus estudios de Salesforce.
  • Si no tiene experiencia previa en proyectos de Salesforce:
  • Si sólo tiene experiencia como usuario final: Está bien que mencione su experiencia incluso si su única experiencia fue como usuario final que formó parte de la implementación de una nueva función o si contribuyó con comentarios valiosos. Qué se hizo bien o qué habrías hecho de forma diferente?
  • ¿Qué se hizo bien o qué habrías hecho de forma diferente?
  • Si tiene varios proyectos entre los que elegir: Elija el que más se ajuste al sector y al puesto al que opta. No olvide mencionar el tamaño del proyecto y los detalles de su contribución, centrándose en las habilidades de BA, como la documentación, la elicitación y la gestión de las partes interesadas.
  • Si tiene varios proyectos, elija uno de ellos

28. ¿Has creado alguna vez documentación? Por favor, detállala.

Aunque no haya sido en un proyecto de Salesforce, mencionar aquí las veces que ha creado material de formación, documentos de instrucciones, diagramas e incluso listas de tareas útiles. Lo mejor son los ejemplos profesionales en los que pueda describir lo que hizo, por qué era importante la documentación, para quién y cómo ayudó.

En el peor de los casos, puedes hablar de aquella vez que dejaste instrucciones detalladas a tu hijo adolescente sobre cómo usar la lavadora mientras estabas fuera de la ciudad y no quemó la casa.

29. ¿El objetivo? ¿El objetivo es ser administrativo o licenciado? Hacia dónde ves que se dirige tu carrera y por qué?

Aunque mentir no es generalmente recomendable, las empresas tienden a favorecer a las personas que se sienten llamadas a hacer el tipo de trabajo que el rol anuncia. Entonces, ¿por qué la gente se siente apasionada por el análisis empresarial de Salesforce? Algunas buenas razones:

  • Les encanta hacer más fácil la vida de las personas a través de Salesforce.
  • Les encanta hacer más fácil la vida de las personas a través de Salesforce
  • Son inquisitivos y disfrutan descubriendo cómo funcionan los procesos y mejorándolos.
  • Son apasionados de la organización, la gestión y la comunicación
  • La organización, la creación de elementos visuales y la documentación de la información es una de sus pasiones.
  • Les gusta trabajar con Salesforce
  • Les gusta trabajar con equipos y personas para aportar valor.
  • Entienden que se requiere un análisis de negocio de calidad para construir las cosas correctas en Salesforce.
  • Les gusta trabajar con equipos y personas para ofrecer valor

En lo que respecta a las trayectorias profesionales, aunque la gente puede permanecer en funciones de analista de negocio para siempre, a medida que los BA descubren más sobre el aspecto técnico de la plataforma Salesforce (a través del aprendizaje continuo que deben realizar), a menudo pasan a funciones de consultor funcional, arquitecto de soluciones, gestor de productos y propietario de productos.

LEA MÁS:
La demanda de analistas de negocio de Salesforce: El «Gran Atún»

30. Describa una ocasión en la que cometió un error. Describa una ocasión en la que cometió un error. Qué medidas tomaste después?

Es una buena idea tener una de estas historias en tu ‘bolsillo trasero’. Aunque no tiene que ser específica de BA, mostrar un momento en el que descubriste un error, asumiste la responsabilidad y luego tomaste medidas para corregirlo (con un final feliz) puede demostrar que estarías preparado para dar malas noticias.

Al ser el puente entre la empresa y el equipo técnico, los BA a menudo tienen que dar noticias difíciles a las partes interesadas y, a veces, al equipo técnico. Tal vez una demostración fue mal recibida, tal vez el nivel de esfuerzo se calculó mal, tal vez una fecha de lanzamiento debe ser empujada debido a los resultados de UAT – ser capaz de enmarcar una situación difícil de una manera que movilizará a las personas involucradas para corregirlo con un mínimo de resentimientos es una gran habilidad para tener como analista de negocios.

Resumen

Además de las preguntas anteriores, es importante recordar que el entrevistador también estará calibrando si se sienten cómodos poniéndote delante de una parte interesada del negocio o no. Expresar confianza, ser amable, sonreír, hacer buenas preguntas y hablar con claridad son aspectos importantes para cualquier entrevista, pero especialmente vitales para los puestos de Salesforce BA.

Si desea perfeccionar las mejores prácticas de Salesforce BA antes de presentarse, consulte estos recursos:

Incluso si decide que ser analista empresarial no es lo suyo, estas habilidades de análisis empresarial siguen siendo vitales para los administradores, arquitectos y consultores de Salesforce.

¡Buena suerte ahí fuera, #BadAssBA! Estas antiguas organizaciones de Salesforce y las nuevas implementaciones le necesitan. Así que por el bien de todos: ¡a entrevistarse!

El Autor

Vanessa Grant

Consultora Principal Asociada en Simplus | 9x Certified | CSM | MBA | #DF22 Speaker & #DF23 Speaker | Mentor | #BABA | Social Media Darling

Categories
Developers

Asigne automáticamente nuevos clientes potenciales a una cadencia de compromiso de ventas

Última actualización en 29 octubre, 2023 por Rakesh Gupta

Gran Idea o Pregunta Perdurable:

  • ¿Cómo se asignan automáticamente los clientes potenciales recién creados a una cadencia de compromiso de ventas?

Objetivos:

Después de leer este blog, serás capaz de:

  • Trabajar con el objeto ActionCadence para conocer una Cadencia.
  • Asignar una Cadencia de compromiso de ventas a un cliente potencial o contacto.
  • Y mucho más.

👉 Anteriormente, he escrito varios posts sobre la Cadencia de Compromiso de Ventas. ¿Por qué no les echas un vistazo mientras estás en ello?

  1. ¿Has recorrido ya el camino de baldosas amarillas de la cadencia de ventas?
  2. No te pierdas nada: Notificaciones para la eliminación de prospectos en Sales Engagement Cadence

Benjamin Moore es administrador de Salesforce en Gurukul On Cloud (GoC). El director de ventas le ha asignado la tarea de asignar automáticamente la cadencia «Seguimiento de prospectos interesados» a cualquier lead de nueva creación con «Web» como LeadSource.

Seguimiento de prospectos interesados

Enfoque del campeón de la automatización (I-do):

Ahorre a sus representantes de ventas un paso adicional. Añadir automáticamente registros de clientes potenciales, contactos o cuentas de persona a una cadencia cuando se crean los registros utilizando el flujo después de guardar activado por registro. Aunque esto se puede resolver utilizando varias herramientas de automatización como Apex Trigger y otras, utilizaremos Salesforce Flow para resolverlo.

Antes de hablar de la solución, permítame mostrarle un diagrama del proceso a alto nivel. Por favor, dedique unos minutos a revisar el siguiente diagrama de Flujo para entenderlo. Empecemos a construir este proceso de automatización.

Práctica guiada (We-do):

Hay 2 pasos para resolver el requerimiento de negocio de Benjamín utilizando FlujoDespués de Guardar. Debemos:
    1. Crear y activar una cadencia de compromiso de ventas
    2. Flujo de Salesforce
      1. Defina las propiedades de flujo para el flujo activado por registros.
      2. Defina las propiedades de flujo para el flujo activado por registros
      3. Crear una fórmula para determinar si el registro se ha creado o actualizado.
      4. Crear una fórmula para determinar si el registro se ha creado o actualizado
      5. Añadir un elemento Decisión para comprobar el LeadSource.
      6. Añadir un elemento Decision para determinar si se ha encontrado o no la Cadencia.
      7. Añadir un elemento Decision para determinar si se ha encontrado o no la Cadencia
      8. Agregar acción principal Asignar objetivo a cadencia  – para asignar cadencia al lead.

<li

Cosas a tener en cuenta

Asumiendo que el lector ya ha dado Permisos de compromiso de ventas al asignatario objetivo (es decir, el propietario del lead en este escenario), este artículo será breve. Si el propietario del lead (nuestro asignado de destino) no tiene estos permisos, el usuario que crea el lead se encontrará con un error:

El asignado de destino no tiene ningún permiso de Sales Engagement.

Para evitar esto:

  1. Asegúrese de que todas las personas que gestionan cadencias tienen permisos de Compromiso de ventas.
  2. Antes de asignar una cadencia, verifica si el propietario del lead (nuestro asignatario objetivo) tiene los permisos necesarios. Si no es así, concédalos antes de proceder.

Artículos útiles

  1. ¿Perfiles? ¡Tan Ayer! – Asignar automáticamente un grupo de conjuntos de permisos a un usuario
  2. Asignar automáticamente conjuntos de permisos a un nuevo usuario

Paso 1: Crear y activar una cadencia de compromiso de ventas

  1. En la aplicación Compromiso de ventas, seleccione Cadencias en el menú Navegación.
  • Desde el menú Acciones, seleccione Nuevo.
  • Introduzca un nombre único y una descripción para la cadencia. Haga clic en Guardar.

Paso 2.1: Definir las propiedades de flujo

  1. Haga clic en Configuración.
  2. En el cuadro de búsqueda rápida, escriba Flujos.
  3. En el cuadro de búsqueda rápida, escriba Flujos
  4. Seleccione Flujos y, a continuación, haga clic en Nuevo flujo.
  5. Seleccione la opción Flujo desencadenado por registro y haga clic en Crear y configure el flujo como se indica a continuación:
    1. Objeto: Lead
    2. Desencadenar el flujo cuando: Se crea o actualiza un registro
    3. Establecer criterios de entrada: Ninguno
    4. Optimizar el flujo para acción y registros relacionados
  6. <li
  7. Haga clic en el X en la parte superior para guardar los cambios.

Paso 2.2: Crear una fórmula para determinar si el registro se ha creado o actualizado

  1. Dentro de Caja de herramientas, seleccione Administrador, y haga clic en Nuevo recurso para determinar si el registro es nuevo o antiguo.
  2. Introduzca la siguiente información:
    1. Recurso Tipo: Fórmula
    2. Nombre de la API: forB_IsNew
    3. Tipo de datos: Boolean
    4. Fórmula: IsNew()
  3. Haga clic en Hecho.

Paso 2.3: Utilizar el elemento de decisión para comprobar el LeadSource

Ahora utilizaremos el elemento Decision element para determinar si el LeadSource es Web o no.

  1. En el Diseñador de flujo, haga clic en el +icono y seleccione el elemento Decisión.
  2. Introduzca un nombre en el campo Etiqueta; el Nombre de API se rellenará automáticamente.
  3. Nombre de API
  4. Dentro de Detalles del resultado, introduzca la Etiqueta; el Nombre de la API se rellenará automáticamente.
  5. Requisitos de las Condiciones para Ejecutar el Resultado: Se cumplen todas las condiciones (AND)
    1. Fila 1:
      1. Recurso: {!$Record.LeadSource}
      2. Operador:Igual
      3. Valor: Web
    2. Añadir Condición
    3. Fila 2
      1. Recurso: {!forB_IsNew}
      2. Operador: Equals
      3. Valor: {!$ConstanteGlobal.True}
  6. Cuándo Ejecutar Resultado: Si se cumplen los requisitos de la condición.
  7. Click Hecho.

Paso 2.4: Añadir un elemento Get Record para buscar la cadencia en función de su nombre

El siguiente paso es encontrar el ID de Cadencia que creamos en el Paso #1. Haga un seguimiento de los prospectos interesados utilizando el elemento Obtener registro.

  1. En el Diseñador de flujos, debajo del nodo Creado, haga clic en el +icono y seleccione el elemento Obtener registros.
  2. Introduzca el elemento Obtener registros
  3. Introduzca un nombre en el campo Etiqueta el Nombre de la API se autocompletará.
  4. Seleccione Se cumplen todas las condiciones (Y).
  5. Configurar condiciones de filtro
    1. Fila 1:
      1. Campo: Nombre
      2. Operador: Igual
      3. Valor: Seguimiento de prospectos interesados
  6. Cuántos registros almacenar:
    1. seleccionar Sólo el primer registro
  7. <li
  8. Cómo almacenar los datos del registro:
    1. Elija la opción de Almacenar automáticamente todos los campos.
  • Haga clic en el botón X< de la parte superior para guardar los cambios.
  • Paso 2.5: Utilizar el elemento de decisión para comprobar si se ha encontrado o no el gas de cadencia

    Ahora, utilizaremos el elemento Decision para comprobar el elemento Get del paso 2.4 para determinar si devuelve la cadencia.

    1. En el Diseñador de flujos, haga clic en el +icono y seleccione el elemento Decisión.
    2. Introduzca un nombre en el campo Etiqueta; el Nombre de API se rellenará automáticamente.
    3. Introduzca un nombre en el campo Etiqueta
    4. En Detalles del resultado, introduzca la Etiqueta; el Nombre de la API se rellenará automáticamente.
    5. Requisitos de condición para ejecutar el resultado: Se cumplen todas las condiciones (AND)
      1. Fila 1:
        1. Recurso: {!Get_Cadence}
        2. Operador: Is Null 
        3. Valor: {!$ConstanteGlobal.False}
      2. Click Hecho.

    Paso 2.6: Añadir Asignar objetivo a la acción principal de cadencia  – para asignar cadencia al Lead.

    1. En el Diseñador de Flujo, debajo del nodo, haga clic en el +icono y seleccione el elemento Acción.
    2. Para asignar un objetivo a un líder, haga clic en el elemento Acción
    3. Seleccione la acción Asignar objetivo a Cadence core.
    4. Introduzca un nombre en el campo Etiqueta: el campo Nombre de API se rellenará automáticamente.
    5. Introduzca un nombre en el campo Etiqueta
    6. Configurar valores de entrada:
      1. Nombre o Id de cadencia: {!Get_Cadence.Id}
      2. Id. de destino: {!$Registro.Id}
      3. Id de usuario: {!$Record.OwnerId}
    7. Click Hecho.

    Al final, Benjamin’s Flow< tendrá el aspecto de la siguiente captura de pantalla:Una vez que todo se vea bien, realice los siguientes pasos:

    1. Haga clic en Guardar.
    2. Introduzca Flujo Etiqueta elNombre de la API se rellenará automáticamente.
    3. Haga clic en Guardar
    4. Haga clic en Mostrar avanzadas.
    5. Versión de la API para ejecutar el flujo59
    6. Etiqueta de entrevista: Llevar a cabo después de – Guardar flujo {!$Flow.CurrentDateTime}
    7. Clic Guardar.

    ¡Ya casi está! Una vez que todo se vea bien, haga clic en el botón Activar .

    Prueba de concepto

    A partir de ahora, cuando se cree un lead con el leadSource como Web, automáticamente se disparará un Flujo disparado por Registro y se le asignará la cadencia. Vamos a probarlo

    1. Ahora crea un nuevo lead a través de la UI
    2. Navegue hasta el componente Compromiso de ventas para verificar la cadencia asignada.

    Evaluación formativa:

    ¡Quiero escucharte!

    ¿Qué es una cosa que has aprendido de este post? Cómo te imaginas aplicar estos nuevos conocimientos en el mundo real? No dudes en compartirlo en los comentarios.

    Esta es una traducción realizada por EGA Futura, y este es el link a la publicación original: https://automationchampion.com/2023/10/28/automatically-assign-new-leads-to-a-sales-engagement-cadence-2/

Categories
Developers Salesforce Uncategorized

Escenario de flujo de activación de registro: enviar notificación por correo electrónico al objeto principal en función de los cambios con el objeto secundario

Escenario de activación de registro 2

Su organización administra cuentas, contactos y oportunidades para operaciones de ventas. Desea automatizar el proceso de notificación al propietario de la cuenta cuando el campo personalizado 'Cambio de estado' de un contacto cambia a 'Inactivo'. Además, desea actualizar la 'Etapa de oportunidad' de todas las oportunidades relacionadas a 'En espera' cuando cambie el estado de este contacto. Explique cómo diseñaría un Flujo para lograr esto.

Respuesta

Centrémonos en el patrón para resolver este escenario de modo que podamos resolver preguntas de flujo de manera efectiva.

1. Comprenda el requisito:

– Punto de activación: cuando el 'Cambio de estado' de un contacto cambia a 'Inactivo'.

– Resultado: Automatizar la notificación al propietario de la cuenta y actualizar las etapas de la oportunidad.

2. Desglosarlo:

– Recuperación de datos: Identificar la Cuenta del Contacto y las Oportunidades relacionadas.

– Notificaciones: envía una notificación al propietario de la cuenta.

– Actualización: actualice las etapas de la oportunidad según el cambio de estado del contacto.

3. Visualice el flujo:

– Secuencia:

– Iniciar el flujo cuando el 'Estado' de un contacto cambie a 'Inactivo'.

– Recuperar la cuenta del contacto y las oportunidades relacionadas.

– Enviar una notificación al propietario de la cuenta.

– Actualizar la 'Etapa de Oportunidad' en Oportunidades relacionadas.

4. Diseñe el flujo:

– Elementos:

– “Registrar flujo activado” para iniciar el cambio de estado de flujo en contacto. Seleccionaremos cuándo se actualiza el registro, ya que el flujo debe ejecutarse cuando el campo 'cambio de estado' del contacto se cambia a inactivo.

Una captura de pantalla de una computadora Descripción generada automáticamente

Una captura de pantalla de una computadora Descripción generada automáticamente

– El “Elemento de decisión” comprueba si el campo de estado del caso está activo o no

Una captura de pantalla de una computadora Descripción generada automáticamente

– Elemento “Obtener registros” para recuperar la cuenta del contacto. Para este filtro se debe buscar la cuenta que tenga el mismo ID que el ID de cuenta del contacto.

Una captura de pantalla de una computadora Descripción generada automáticamente

– Enviar notificación por correo electrónico al propietario de la cuenta.

Escribe el correo electrónico. A la hora de redactar el contenido de tu correo electrónico, tienes tres opciones disponibles:

Opción 1:
a partir del lanzamiento Summer '23 de Salesforce, puede utilizar plantillas de correo electrónico con la acción Enviar correo electrónico. Puede hacer esto activando el ID de plantilla de correo electrónico e ingresando el ID de la plantilla de correo electrónico que desea usar. Para encontrar esta ID, navegue hasta su plantilla de correo electrónico desde las Plantillas de correo electrónico Lightning en sus aplicaciones o la página Plantilla de correo electrónico clásica en la configuración. Luego copie la cadena de 15 caracteres de la URL y péguela en su flujo como ID de plantilla de correo electrónico.

Imagen que resalta la cadena de 15 caracteres en la URL de la página Plantilla de correo electrónico de una plantilla de correo electrónico de muestra.

Opción 2: almacena el cuerpo de tu correo electrónico en una plantilla de texto . Para hacer esto, active el interruptor Cuerpo . A continuación, seleccione Nuevo recurso en el menú y elija Plantilla de texto . Asigne a la plantilla un nombre API y escriba el cuerpo de su correo electrónico . Puede ingresar recursos personalizados desde el menú encima del cuadro de texto. De esta manera, puedes incluir tanto texto estático como información personalizada para el cliente potencial. Una vez que su plantilla esté completa, haga clic en Listo . Una captura de pantalla de una computadora Descripción generada automáticamente

  1. Ahora que tenemos escrito el contenido de nuestro correo electrónico, es momento de determinar a quién va dirigido. Active la lista de destinatarios e ingrese {!$Record.Email}. Ahora, la dirección de correo electrónico vinculada al objeto Cliente potencial se convertirá automáticamente en el destinatario.
  2. Otra característica nueva de la versión Summer '23 de Salesforce es la capacidad de registrar correos electrónicos enviados con la acción Enviar correo electrónico. Esto significa que puede actualizar registros automáticamente cuando se envía un correo electrónico, de modo que tenga un cronograma claro de comunicación almacenado directamente dentro del registro del objeto. Para hacer esto, active la opción Registrar correo electrónico al enviar y establezca el valor en {!$GlobalConstant.True} .
  3. Cambie la ID del destinatario a Activado e ingrese {!$Record.Id} Ahora, el registro del destinatario se actualizará automáticamente para mostrar cuándo fueron contactados, qué decía el correo electrónico e incluso cuándo lo abrieron.

Una captura de pantalla de la pantalla de una computadora Descripción generada automáticamente

A continuación, active Cuerpo con formato de texto enriquecido. En el menú desplegable, seleccione {!$GlobalConstant.True}. Esto garantiza que el formato de nuestro correo electrónico siga siendo consistente.

Imagen que muestra la Lista de direcciones de destinatarios activada con el cuadro de texto que muestra {!$Record.Email} y la opción Cuerpo con formato de texto enriquecido activada con el cuadro de texto que muestra {!$GlobalConstant.True}

Por último, cambie el valor de Asunto a Activado y escriba su asunto en el cuadro. Puede omitir este paso si está utilizando una ID de plantilla de correo electrónico.

Un objeto rectangular blanco con líneas negras. Descripción generada automáticamente.

– Elemento “Actualizar Registros” para actualizar Etapas de Oportunidad.

Una captura de pantalla de una computadora Descripción generada automáticamente

Una captura de pantalla de una computadora Descripción generada automáticamente

5. Escenario de prueba:

– Cambie el 'Cambio de estado' de un contacto a 'Inactivo' y verifique que el flujo notifique correctamente al propietario de la cuenta y actualice las Etapas de la oportunidad a 'En espera'.

Producción

Una captura de pantalla de una computadora Descripción generada automáticamente

100% Me gusta VS
0% No me gusta

Esta es una traducción realizada por EGA Futura, y este es el link a la publicación original: https://www.sfdcamplified.com/record-trigger-flow-scenario-send-email-notification-on-parent-based-on-changes-with-child-field/#utm_source=rss&utm_medium=rss&utm_campaign=record-trigger-flow-scenario-send-email-notification-on-parent-based-on-changes-with-child-field

Categories
Developers Salesforce

Uso de prueba de flujo versus clase de prueba para flujo en Salesforce

Introducción de la prueba de flujo

Anteriormente, si queríamos probar el flujo, necesitábamos escribir una clase de prueba de Apex para el flujo. Con la versión Summer '22, Salesforce introdujo un marco de prueba para flujos activados por registros para automatizar las pruebas de flujos. Ahora podemos dejar que Salesforce pruebe el flujo, asegurarnos de que los resultados cumplan con las expectativas y resaltar cuando no lo sean. Ahora podemos crear y ejecutar pruebas dentro del propio generador de flujo, de forma declarativa sin escribir ningún código.

Cómo funciona

Establecer detalles de prueba, desencadenante y ruta

Proporciona una etiqueta de prueba de flujo y una descripción de la prueba. Establezca el activador de prueba en Creado/actualizado según el escenario. La ruta de la prueba está configurada para Ejecutar inmediatamente.

imagen.png Establecer registro de activación inicial/actualizado

Usando la función de búsqueda, podemos buscar el registro para usarlo como plantilla inicial. Tras la selección del registro, los campos se completan a partir del registro seleccionado. La prueba hereda los valores de campo del registro seleccionado. Sin embargo, podemos modificar los valores de estos campos antes de finalizar la prueba. La prueba no está vinculada a este registro pero contiene y utiliza sus valores de campo.

imagen.png Establecer afirmaciones

La aserción es una forma de comparar el resultado real con el resultado previsto. Si coinciden, entonces la afirmación se evalúa como verdadera. De lo contrario, la afirmación falla. Escriba las siguientes afirmaciones para garantizar que se cumplan los criterios de entrada de registros para el flujo y se logre el resultado esperado.

imagen.png Ejecutar prueba y ver detalles

Haga clic en el botón "Ver pruebas", seleccione el menú desplegable de la prueba de flujo que queremos ejecutar y seleccione Ejecutar prueba y ver detalles.

imagen.png La prueba de flujo se ejecuta y resalta el camino que tomó la prueba. Si necesitamos probar el flujo, simplemente podemos ejecutar la prueba. Ya no es necesario configurar los datos de prueba mediante programación. ¡Esto aumenta la eficiencia de las pruebas! Si necesitamos realizar una mejora en este flujo en el futuro, necesitaremos actualizar el registro de prueba asociado en consecuencia.

imagen.png Beneficios

  1. Fácil y cómodo de usar: podemos crear registros de prueba a través de la interfaz de usuario y ponerlos a prueba.
  2. Tiempo y esfuerzo: reduce el tiempo y el esfuerzo necesarios, ya que no necesitamos escribir código, solo crear registros desde la interfaz de usuario y realizar afirmaciones.
  3. No afectará la cobertura del código existente a nivel de clase: si migramos cualquier funcionalidad del activador al flujo, la lógica subyacente del activador/clase también se limpia manualmente como parte de este ejercicio. Esto no reducirá la cobertura del código de la clase ya que la lógica se elimina por completo.
  4. Cobertura de la prueba de flujo: el porcentaje de cobertura no se captura en la prueba de flujo como podemos hacerlo a través de la clase Apex. Más bien es capaz de cubrir nodos. Una vez seleccionamos “Ejecutar prueba y ver detalles”. La ruta resaltada en amarillo representará la cobertura real del flujo desde el principio hasta el final del nodo.

imagen.png

imagen.png

imagen.png Desventaja

  1. Solo puede crear pruebas de flujo para crear, actualizar o crear/actualizar flujos activados por registros. Aún no se admite la eliminación de flujos activados por registros. – Solo para el escenario de eliminación de registros podemos escribir una clase de prueba
  2. Puede afectar la cobertura general: dado que la cobertura de prueba general se calcula en función de la cobertura de prueba de todas las clases combinadas (promedio), si migramos cualquier característica que tenga una cobertura de prueba más alta en la clase ápice relevante, podría reducir el porcentaje de cobertura general del código. (Como actualmente solo nos estamos enfocando en migrar el activador relacionado con la cuenta para fluir, solo se ve afectada 1 clase de prueba, por lo que no hay cambios significativos en la cobertura del código Apex).
  3. Las pruebas de flujo no admiten rutas de flujo que se ejecuten de forma asincrónica. Sin embargo, no tenemos flujo asíncrono en nuestra organización. Estamos creando flujos para cubrir escenarios que se ejecutan sincrónicamente.

Recomendación

  • Podemos comenzar a dar pasos para pasar a la prueba de flujo a medida que Salesforce realiza mejoras continuas en el flujo, por lo que en versiones futuras, podemos esperar que la prueba de flujo incluya más mejoras y reduzca las limitaciones.
  • Podemos comenzar escribiendo una prueba de flujo para las actualizaciones rápidas de campos (antes) de los flujos de activación de registros.
  • Mejorar la cobertura de prueba de las clases que tienen menos cobertura para que podamos usar la prueba de flujo.

Preguntas más frecuentes

¿Cuál es el porcentaje de cobertura para implementar Flow?

En relación con las pruebas de Apex, las pruebas de flujo no se consideran parte de la cobertura de pruebas como en el 75%+ para el despliegue de productos.

¿Brindan cobertura de código como lo hace la clase de prueba? Si no, ¿debemos pensar en eliminar el flujo de la cobertura de prueba?

Sí, cubren resaltando nodo por nodo.

¿Puede confirmar si la prueba de flujo permite ejecutar pruebas masivas?

No, no admite pruebas de registros masivos. En la mayoría de los escenarios relacionados con desencadenantes, hemos creado un registro individual en la clase de prueba y verificamos los escenarios de prueba. Si reemplazamos esos desencadenantes con flujos, no habrá una gran diferencia en los casos de prueba.

¿La prueba de flujo admite la asincronía?

Las pruebas de flujo no admiten rutas de flujo que se ejecuten de forma asincrónica. Sin embargo, no tenemos flujo asíncrono en nuestra organización. Estamos creando flujos para cubrir escenarios que se ejecutan sincrónicamente.

¿Cuál es el rendimiento de las pruebas de flujo en comparación con las clases de prueba?

No veo ninguna documentación oficial, pero creo que la prueba de flujo será más rápida en comparación con la clase de prueba porque cuando ejecutamos una prueba creará una instancia de la clase y llamará a métodos individuales. Podemos ejecutar casos de prueba individuales utilizando una prueba de flujo, pero no es posible ejecutar un solo método individual desde la clase de prueba, lo que lleva mucho tiempo.

Referencia

Prueba de flujo (beta)

Consideraciones para probar el flujo

50% Me gusta VS
50% No me gusta

Esta es una traducción realizada por EGA Futura, y este es el link a la publicación original: https://www.sfdcamplified.com/use-of-flow-test-vs-test-class-for-flow-in-salesforce/#utm_source=rss&utm_medium=rss&utm_campaign=use-of-flow-test-vs-test-class-for-flow-in-salesforce

Categories
Developers

Validaciones personalizadas mediante flujos activados por registros

Última actualización el 3 de agosto de 2023 por Rakesh Gupta

Gran idea o pregunta duradera:

  • ¿Cómo se escribe una regla de validación utilizando un flujo desencadenado por registros antes de guardar sin crear metadatos adicionales?

Objetivos:

Después de leer este blog, podrá:

  • Comprender la regla de validación
  • Flujo antes de guardar activado por registro de usuario para crear una regla de validación
  • Mostrar el mensaje de error en la parte superior de la página
  • Y mucho más

👉 Anteriormente, escribí varias publicaciones sobre la validación y Salesforce Flow. ¿Por qué no echarles un vistazo mientras estás en ello?

  1. Adición de validación a los componentes de la pantalla de flujo
  2. ¿Regla de validación usando un flujo antes de guardar? ¡Sí!
  3. Cómo corregir el error FIELD_CUSTOM_VALIDATION_EXCEPTION)

A Benjamin Moore , administrador de Salesforce en Gurukul On Cloud (GoC), se le ha encomendado un requisito específico. Debe restringir que los usuarios creen una nueva oportunidad dentro de la cuenta si existe una oportunidad abierta. El siguiente texto debe utilizarse para el mensaje de error:

Utilice la oportunidad abierta existente dentro de esta cuenta. Si necesita más ayuda o tiene preguntas sobre la gestión de oportunidades, póngase en contacto con el soporte de TI.

¿Qué es la regla de validación?

Una regla de validación permite que un administrador del sistema defina una lógica personalizada y mensajes de error para garantizar la integridad de los datos. La regla puede contener una fórmula o una expresión que evalúe los datos en uno o más campos y devuelva un valor verdadero o falso . Por ejemplo, la regla incluye un mensaje de error que se muestra cuando devuelve un valor verdadero que indica que se están ingresando datos incorrectos. Recuerde, una regla de validación solo se activa cuando se crea o edita un registro .

En este artículo, hablé sobre muchos hechos ocultos que no son muy conocidos sobre la regla de validación . Por ejemplo, mostré cómo usar una regla de validación para administrar requisitos usando tipos de metadatos personalizados.

¿Qué es Antes de Guardar Flujo?

El flujo antes de guardar es un disparador que se realiza antes de una operación , como una inserción, actualización, eliminación, etc. Puede usar dicho flujo para verificar o cambiar valores antes de que los datos se actualicen o inserten en la base de datos. Guardar antes es mucho más rápido porque cada registro no se guarda en la base de datos nuevamente. Evitar ese procedimiento de guardado adicional significa omitir otra ronda de reglas de asignación, reglas de respuesta automática, reglas de flujo de trabajo y otras personalizaciones que tardan en ejecutarse. Use un flujo antes de guardar en los siguientes casos de uso:

  1. Actualizar campos en registros nuevos o modificados: significa que desea actualizar los campos en el registro que inició el Flujo
  2. Activar una regla de validación (no necesaria después del lanzamiento de winter'24)

Lea este artículo para obtener más información sobre cuándo usar el flujo anterior frente al flujo posterior al guardado.

Enfoque de Campeón de Automatización (I-do):

Paso 2: uso del elemento de decisión para verificar si la oportunidad se creó o actualizó

Ahora usaremos el elemento Decisión para verificar si el registro de oportunidad fue creado o actualizado.

  1. En Flow Designer, haga clic en el icono + y seleccione el elemento Decisión .
  2. Introduzca un nombre en el campo Etiqueta ; el nombre de la API se completará automáticamente.
  3. En Detalles del resultado , ingrese la etiqueta que el nombre de la API se completará automáticamente.
  4. Requisitos de condición para ejecutar el resultado : se cumplen todas las condiciones (Y)
    1. Fila 1:
      1. Recurso : {!$Record.Id}
      2. Operador : es nulo
      3. Valor : {!$ConstanteGlobal.Verdadero}
  5. Cuándo ejecutar el resultado : si se cumplen los requisitos de la condición
  6. Haz clic en la X en la parte superior para guardar tus cambios.

Paso 3: agregar un elemento Obtener registro para encontrar oportunidades abiertas relacionadas

El siguiente paso es usar el elemento Obtener registros para encontrar oportunidades abiertas relacionadas en la cuenta.

  1. En Flow Designer, debajo del nodo Creado , haga clic en el icono + y seleccione el elemento Obtener registros .
  2. Introduzca un nombre en el campo Etiqueta ; el nombre de la API se completará automáticamente.
  3. Seleccione el objeto Oportunidad de la lista desplegable.
  4. Seleccione Se cumplen todas las condiciones (Y) .
  5. Establecer condiciones de filtro
    1. Fila 1:
      1. Campo : ID de cuenta
      2. Operador : Igual
      3. Valor : {!$Record.AccountId}
    2. Haga clic en Agregar condición
      1. Fila 1:
        1. Campo : EstáCerrado
        2. Operador : Igual
        3. Valor : {!$ConstanteGlobal.Falso}
  6. Cuántos registros almacenar:
    1. seleccione Todos los registros
  7. Cómo almacenar datos de registro:
    1. Elija la opción para Almacenar automáticamente todos los campos .
  8. Haz clic en la X en la parte superior para guardar tus cambios.

Paso 4: uso del elemento de decisión para verificar si se encontró o no una oportunidad abierta  

Ahora, usaremos el elemento Decisión para comprobar si el elemento Obtener registros anterior devuelve un registro de oportunidades abiertas.

  1. En Flow Designer, haga clic en el icono + y seleccione el elemento Decisión .
  2. Introduzca un nombre en el campo Etiqueta ; el nombre de la API se completará automáticamente.
  3. En Detalles del resultado , ingrese la etiqueta que el nombre de la API se completará automáticamente.
  4. Requisitos de condición para ejecutar el resultado : se cumplen todas las condiciones (Y)
    1. Fila 1:
      1. Recurso: {!Get_Related_Opportunity}
      2. Operador: es nulo
      3. Valor: {!$ConstanteGlobal.Falso}
  5. Cuándo ejecutar Resultado : Si se cumplen los requisitos de la condición .
  6. Haga clic en Listo .

Paso 5: agregar un elemento de error personalizado para mostrar mensajes de error

  1. En el nodo , seleccione el elemento Error personalizado .
  2. Introduzca un nombre en el campo Etiqueta ; el nombre de la API se completará automáticamente.
  3. Establecer detalles del mensaje de error 1
    1. Dónde mostrar el mensaje de error : en una ventana en una página de registro
    2. Mensaje de error:
      1. Utilice la oportunidad abierta existente dentro de esta cuenta. Si necesita más ayuda o tiene preguntas sobre la gestión de oportunidades, póngase en contacto con el soporte de TI.
  4. Haz clic en la X en la parte superior para guardar tus cambios.

Al final, Benjamin's Flow se verá como la siguiente captura de pantalla:

Una vez que todo se vea bien, realice los siguientes pasos:

  1. Haga clic en Guardar .
  2. Ingrese la etiqueta de flujo, el nombre de la API se completará automáticamente.
  3. Haga clic en Mostrar avanzado .
  4. Versión de API para ejecutar el flujo : 59
  5. Etiqueta de entrevista : regla de validación personalizada mediante flujo {!$Flow.CurrentDateTime}
  6. Haga clic en Guardar .

¡Casi llegamos! Una vez que todo se vea bien, haga clic en el botón Activar .

👉 Mira el video para obtener instrucciones paso a paso.

[contenido incrustado]
Cosas para recordar
  1. El límite para el campo del mensaje de error es de 255 caracteres.
  2. Solo puede agregar un mensaje de error para una página.
  3. Solo puede agregar un mensaje de error por campo.
  4. no es posible utilizar el enlace con su mensaje de error.
    1. parámetro de escape Indica si cualquier marcado HTML en el mensaje de error personalizado se debe escapar ( verdadero ) o no ( falso ). Este parámetro se ignora tanto en Lightning Experience como en la aplicación móvil Salesforce, y el HTML siempre se escapa. El parámetro de escape solo se aplica en Salesforce Classic. Lea este artículo para obtener más información.

Prueba de concepto

A partir de ahora, si un usuario intenta crear una nueva oportunidad en una cuenta que ya tiene una oportunidad abierta, se activará el flujo activado por registro antes de guardar que hemos creado y mostrará un mensaje de error.

Evaluación formativa:

¡Quiero saber de ti!

¿Qué es una cosa que aprendiste de esta publicación? ¿Cómo imagina aplicar este nuevo conocimiento en el mundo real? Siéntase libre de compartir en los comentarios a continuación.

Esta es una traducción realizada por EGA Futura, y este es el link a la publicación original: https://automationchampion.com/2023/08/03/record-triggered-flows-for-custom-validations-2/

Categories
Developers

Desatando los superpoderes de administración de Salesforce: ¡Impulse la colaboración en equipo, sobrecargue la eficiencia, gestión de datos maestros!

Última actualización el 31 de julio de 2023 por Rakesh Gupta

Durante la última década, el papel de un administrador de Salesforce ha evolucionado drásticamente, manteniendo el ritmo del panorama dinámico de las ventas y la gestión de las relaciones con los clientes. Lo que alguna vez fue principalmente una posición de entrada de datos se ha convertido en un rol multifacético que abarca la planificación estratégica, el análisis y la optimización de procesos. A medida que las empresas reconozcan la importancia de Salesforce para impulsar el crecimiento y mejorar las experiencias de los clientes, los administradores proporcionarán un puente fundamental entre la tecnología y el éxito comercial.

Este artículo explorará cómo los administradores pueden aprovechar la automatización de procesos junto con el ecosistema de Salesforce para fomentar la colaboración en equipo, mejorar la eficiencia organizacional y mejorar la gestión de datos.

Uso de la automatización de correo electrónico de Salesforce para la programación

La automatización del correo electrónico se utiliza para optimizar varios aspectos de la comunicación por correo electrónico con clientes potenciales y clientes dentro de la plataforma de Salesforce para garantizar una programación de citas rápida y eficiente. Permite a las empresas administrar de manera eficiente sus campañas de marketing y ventas por correo electrónico, la participación del cliente y las reservas.

En los últimos años, la automatización revolucionó los procesos de ventas y soporte al agilizar la reserva de citas, reducir la carga de trabajo manual y brindar a los clientes opciones convenientes de autoservicio. Actualmente, los administradores de Salesforce pueden aprovechar herramientas como SUMO Scheduler junto con flujos nativos y alertas por correo electrónico para enviar automáticamente invitaciones a citas. Al crear disparadores que monitorean campos de datos específicos asociados con registros de contactos y lanzar flujos personalizados, los administradores pueden asegurarse de que los clientes potenciales siempre puedan programar citas, independientemente de la hora del día o la ubicación.

Actualizaciones automáticas de temas: haga que sus citas se destaquen

Las reuniones de cara al cliente son vitales para los equipos de ventas y soporte, y las citas perdidas o canceladas pueden afectar negativamente los objetivos estratégicos y el resultado final. Los administradores de Salesforce pueden aprovechar las actualizaciones automáticas de temas dentro de la programación de citas para reducir las cancelaciones de manera efectiva y aumentar la participación en las citas. Al implementar esta funcionalidad, los administradores pueden mejorar la comunicación, brindar claridad e infundir confianza en el proceso de citas para los clientes y la organización.

Se puede activar una actualización automática del tema para incluir detalles esenciales como la fecha, la hora, la ubicación y el propósito de la cita al programarla. Este mensaje de confirmación sirve como recordatorio para el cliente y reduce las posibilidades de cancelaciones involuntarias o de no presentarse.

Las actualizaciones automáticas de temas también se pueden personalizar para atender a clientes individuales. Los administradores pueden incluir detalles personalizados, como el nombre del cliente o referencias de citas específicas, para captar su atención y crear una sensación de personalización. Esto ayuda a fomentar una conexión con el cliente y refuerza su compromiso con la cita.

Finalmente, en caso de cambios o actualizaciones en la cita, los administradores pueden usar actualizaciones automáticas de temas para comunicar la información revisada. Esto asegura que los clientes estén informados sobre cualquier modificación en tiempo real, minimizando la confusión o la necesidad de cancelar debido a detalles desactualizados o inexactos.

Al permitir la flexibilidad en la programación y el mantenimiento de registros precisos dentro de Salesforce con la ayuda de líneas de asunto automatizadas, los administradores pueden optimizar de manera efectiva su proceso de ventas, mejorar la experiencia del usuario y fortalecer las relaciones con los clientes.

Uso de campos de correo electrónico flexibles para una mayor precisión

La flexibilidad es clave para satisfacer las necesidades únicas de los clientes, y los administradores de Salesforce pueden aprovechar el poder de los campos de correo electrónico para notificaciones personalizadas, sin importar cuán complejas sean. Esta personalización permite una experiencia más personalizada que cumple con requisitos específicos, como el cumplimiento normativo o las políticas internas.

En el contexto de Salesforce, los campos de correo electrónico se utilizan para recopilar y almacenar las direcciones de correo electrónico de los clientes. Estos campos aseguran que los datos ingresados sigan el formato adecuado, evitando entradas incorrectas o no válidas. Las direcciones de correo electrónico recopiladas a través de estos campos se pueden usar para enviar recordatorios, actualizaciones, mensajes de seguimiento y otras notificaciones relacionadas con citas. Cada campo de correo electrónico actúa como una medida confiable de capturar y utilizar información de contacto para mejorar el compromiso y mantener canales de comunicación efectivos.

Los campos de correo electrónico de Salesforce pueden mejorar la precisión al garantizar que la información de contacto almacenada en CRM esté actualizada y sea confiable. Al utilizar campos de correo electrónico dedicados dentro de Salesforce, los representantes de ventas pueden capturar y almacenar direcciones de correo electrónico específicas de personas o entidades con precisión. Esto ayuda a eliminar el riesgo de usar direcciones de correo electrónico desactualizadas o incorrectas asociadas con otros campos, como información de contacto personal o comercial, lo que da como resultado comunicaciones por correo electrónico más confiables, tasas de rebote reducidas y precisión de datos mejorada.

Automatice la creación de clientes potenciales en Salesforce en el momento de la reserva

Las herramientas de programación nativas de Salesforce permiten a los equipos de ventas automatizar la creación de clientes potenciales, lo que garantiza una captura precisa de la información y los datos demográficos de los clientes potenciales en el CRM. Al automatizar el proceso de creación de clientes potenciales tan pronto como se programa una cita, los administradores pueden ahorrar tiempo, mantener la integridad de los datos y evitar la redundancia. Los flujos automatizados agilizan el proceso y eliminan los errores de entrada manual. La precisión mejorada y la colaboración entre las partes interesadas mejoran las tasas de conversión de clientes potenciales y proporcionan datos confiables para informes y análisis.

Para automatizar rápidamente la creación de clientes potenciales en Salesforce en el momento de la reserva, puede seguir estos pasos:

  1. Identifique el evento desencadenante : determine el evento o la acción específicos que deben desencadenar la creación de clientes potenciales. En este caso, sería la reserva de una cita.
  2. Configure un flujo de Salesforce : utilice el flujo de Salesforce para crear una regla que active el proceso de creación de clientes potenciales. Especifique los criterios para cuándo debe activarse el flujo, como cuando se reserva una nueva cita.
  3. Definir asignación de campos : configure la asignación de campos para asegurarse de que la información relevante de la cita se transfiera correctamente al registro de clientes potenciales. Puede asignar campos como el nombre del participante, la información de contacto, los detalles de la cita y otros puntos de datos relevantes.
  4. Crear el registro de prospecto : configure Salesforce Flow para crear un nuevo registro de prospecto con los datos asignados. Asegúrese de que todos los campos obligatorios estén completos y que el registro de cliente potencial esté asociado con la campaña o la fuente adecuada.
  5. Probar y validar : pruebe el proceso automatizado de creación de clientes potenciales reservando una cita de muestra y verificando que el registro de clientes potenciales se cree con los datos esperados. Valide que el registro de prospectos aparezca en la cola de prospectos designada o en las reglas de asignación.
  6. Supervisar y perfeccionar : Supervise continuamente el proceso de automatización de creación de clientes potenciales para garantizar su eficacia y precisión. Realice los ajustes o mejoras necesarios en función de los comentarios, los cambios en los requisitos comerciales o los problemas de calidad de los datos.

Al automatizar la creación de clientes potenciales en Salesforce en el momento de la reserva, los representantes de ventas y los administradores pueden ahorrar tiempo, garantizar la precisión de los datos y mantener un proceso de gestión de clientes potenciales optimizado. Esta automatización facilita la captura eficiente de clientes potenciales, reduce el esfuerzo manual y mejora la productividad del equipo de ventas.

Conclusión:

Los flujos de programación automatizados, junto con las poderosas capacidades de SUMO Scheduler, simplifican y mejoran los procesos de trabajo, ahorran tiempo, reducen errores y mejoran la satisfacción del cliente. Al adoptar la automatización, los administradores de Salesforce pueden impulsar mejoras significativas en la eficiencia, la productividad y el rendimiento comercial general. La optimización de los procesos de programación y el aprovechamiento de los flujos de automatización en Salesforce con SUMO Scheduler es una combinación ganadora para las empresas que buscan optimizar sus operaciones. ¡Adopte la revolución de la automatización hoy e impulse a su equipo de ventas a nuevos niveles de éxito!

Haga clic aquí para visitar SUMO Scheduler en Salesforce AppExchange y obtener más información sobre el poder de la programación automática de autoservicio .

Evaluación formativa:

¡Quiero saber de ti!

¿Qué es una cosa que aprendiste de esta publicación? ¿Cómo imagina aplicar este nuevo conocimiento en el mundo real? Siéntase libre de compartir en los comentarios a continuación.

Esta es una traducción realizada por EGA Futura, y este es el link a la publicación original: https://automationchampion.com/2023/07/31/salesforce-admin-superheros-unleash-the-power-of-salesforce-automation-to-boost-team-collaboration-supercharge-efficiency-mastering-data-management/

Categories
Developers

Pasar datos del componente web Lightning al flujo de pantalla

Última actualización el 17 de julio de 2023 por Rakesh Gupta

Gran idea o pregunta duradera:

  • ¿Cómo pasa datos del componente web lightning al flujo de pantalla principal?

Objetivos:

Después de leer este blog, podrá:

  • Incruste un componente web relámpago dentro del flujo de pantalla
  • Pase los datos del componente web lightning a una variable de flujo
  • Interactuar con el componente web lightning y los elementos de flujo de pantalla en la misma pantalla
  • y mucho más

En el pasado, escribí algunos artículos sobre Lightning Web Component . ¿Por qué no echarles un vistazo mientras estás en ello?

  1. Uso del componente web Lightning para mostrar un banner de alerta
  2. Obtenga el Id. de registro y el nombre de la API del objeto en el componente web Lightning

Janel Parrish trabaja como desarrollador junior en Gurukul on Cloud (GoC). Janel tiene un requisito comercial para hacer lo siguiente:

  1. Desarrollar un componente LWC capaz de recibir entradas de latitud y longitud.
  2. Pase los valores introducidos a los componentes de flujo de pantalla correspondientes.

Construir pantallas con componentes reactivos

Con la función Crear pantallas con componentes interactivos (actualmente en versión beta), ahora puede habilitar la interacción directa entre un componente web Lightning y otros elementos de flujo en la misma pantalla.

Anteriormente, no existía una disposición directa para la interacción dinámica entre un componente web Lightning y los elementos de flujo. Como resultado, los usuarios tenían que navegar a la siguiente pantalla para ver los datos pasados por el componente web Lightning en Screen Flow.

Enfoque de Campeón de Automatización (I-do):

Al crear el componente web Lightning, también utilizaremos el evento FlowAttributeChangeEvent . Esto permitirá que un componente controle la navegación del flujo y notifique al flujo los cambios en los valores de los atributos.

Los eventos FlowAttributeChangeEvent solo se admiten en componentes donde el destino es lightning__FlowScreen .

Práctica guiada (nosotros hacemos):

Hay 2 pasos para resolver el requisito empresarial de Janel utilizando Lightning Web Component y Screen Flow . Debemos:

  1. Cree un componente web Lightning de ubicación de entrada para Screen Flow
  2. Pasos de flujo de Salesforce
    1. Definir propiedades de flujo para el flujo de pantalla
    2. Agregue una pantalla para mostrar el componente personalizado de ubicación de entrada
    3. Agregar un componente de número de entrada para mostrar la latitud desde la ubicación de entrada Componente LWC
    4. Agregar un componente de número de entrada para mostrar la longitud desde la ubicación de entrada Componente LWC

Paso 1: Cree un componente web Lightning de ubicación de entrada para Screen Flow

En primer lugar, cree un componente web Lightning de ubicación de entrada con el siguiente código. El componente lightning-input-location representa un campo de geolocalización compuesto que acepta valores de latitud y longitud introducidos por el usuario, siendo ambos coordenadas geográficas expresadas en grados decimales. Le permite identificar ubicaciones utilizando estas coordenadas.

El rango aceptable para la latitud está entre -90 y 90, mientras que la longitud acepta valores de -180 a 180. Cualquier entrada más allá de estos rangos especificados genera un mensaje de error. Este ejemplo muestra un campo de geolocalización compuesto, que muestra una latitud de 27,70750 y una longitud de -122,3948370.

Si no sabe cómo crear un componente Lightning, consulte esta guía para desarrolladores, Crear un componente web Lightning .

lwcToScreenFlow.html

Utilizaremos el componente de ubicación de entrada de rayos para aceptar valores de latitud y longitud. Desglosemos el código:

  • En LWC, el archivo HTML de cada componente debe envolverse con una etiqueta <plantilla> .
  • latitude={latitude} :- Esto vincula la propiedad de latitud de la clase JavaScript de LWC con el atributo de latitud del componente.
  • longitude={longitude} :- Similar a la latitud, esto une la propiedad de longitud de la clase JavaScript de LWC con el atributo de longitud del componente.
  • onchange={handleChange} :- Esto configura un detector de eventos en el componente. Cada vez que cambia el valor del componente (ya sea latitud o longitud), se llama al método handleChange de la clase JavaScript de LWC.

<plantilla> <relámpago-entrada-ubicación etiqueta="Coordenadas predeterminadas" latitud={latitud} longitud={longitud} onchange={handleChange}> </ubicación-de-entrada-del-relámpago>
</plantilla>
lwcToScreenFlow.js

Este código JavaScript de muestra utiliza el decorador @api para crear propiedades públicas, es decir, accesibles desde otros componentes o utilizadas en plantillas HTML. Por ejemplo, @api latitude y @api longitude declaran dos propiedades públicas.

  • FlowAttributeChangeEvent crea y distribuye el evento personalizado que transfiere datos del componente web Lightning a un flujo.
  • handleChange(event) es un método de controlador de eventos que se llama cuando ocurre un evento de cambio en el componente lightning-input-location en la plantilla HTML de LWC.
  • this.latitude = event.target.latitude y this.longitude = event.target.longitude , estas líneas actualizan las propiedades de latitud y longitud con los valores del objetivo del evento (el componente lightning-input-location).
  • [“latitud”, “longitud”].forEach((loc) => this.dispatchEvent(new FlowAttributeChangeEvent(loc, this[loc]))) , esta línea recorre una matriz que contiene cadenas de latitud y longitud, y para cada uno de estos, envía un nuevo FlowAttributeChangeEvent.

importar { LightningElement, api } desde 'lwc';
importar {FlowAttributeChangeEvent} desde 'lightning/flowSupport'; exportar la clase predeterminada LwcToScreenFlow extiende LightningElement { @api latitud; @api longitud; handleChange(evento){ esta.latitud = evento.objetivo.latitud; this.longitude = event.target.longitude; ["latitud", "longitud"].forEach((loc) => this.dispatchEvent(new FlowAttributeChangeEvent(ubicación, esta[ubicación])) ); }
}
lwcToScreenFlow.js-meta.xml

El elemento isExposed se establece en verdadero, lo que hace que el componente esté disponible para su uso en herramientas como Lightning App Builder o Flow Builder. El elemento de objetivos se usa para especificar dónde se puede usar su componente. En este caso, la etiqueta lightning__FlowScreen significa que este componente está diseñado para usarse en las pantallas de Salesforce Flow.

Los elementos targetConfigs y targetConfig le permiten definir propiedades que se pueden establecer en el contexto del constructor. En este caso, las propiedades son latitud y longitud . Ambos están configurados para ser del tipo Integer y tienen la función de outputOnly , lo que significa que se pueden configurar en el flujo, pero el usuario no puede modificarlos dentro del componente. Estas propiedades se pueden usar para pasar datos del LWC al flujo.


<?versión xml="1.0" codificación="UTF-8"?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadatos"> <apiVersion>58.0</apiVersion> <isExposed>verdadero</isExposed> <objetivos> <target>relámpago__FlowScreen</target> </objetivos> <configuraciones de destino> <targetConfig objetivos="relámpago__FlowScreen"> <property label="Latitude" name="latitude" type="Integer" role="outputOnly"/> <property label="Longitud" name="longitud" type="Integer" role="outputOnly"/> </targetConfig> </configuraciones de destino>
</LightningComponentBundle>

Paso 2.1: Definir propiedades de flujo

  1. Haga clic en Configuración .
  2. En el cuadro Búsqueda rápida, escriba Flujos .
  3. Seleccione Flujos , luego haga clic en Nuevo flujo .
  4. Seleccione el flujo de pantalla   y haga clic en Crear y configurar el flujo.
  5. Se abrirá el diseñador de flujo para usted.

Paso 2.2: agregue una pantalla para mostrar el componente personalizado de ubicación de entrada

  1. En Flow Designer, haga clic en el icono + y seleccione el elemento Pantalla .
  2. Ingrese la siguiente información :
    1. Ingrese la etiqueta, el nombre de la API se completará automáticamente.
  3. Haga clic en Listo.

Paso 2.3: Agregue un componente de número de entrada para mostrar la latitud desde el componente LWC de ubicación de entrada

  1. En la sección Entrada en Elemento de pantalla , arrastre y suelte el componente Número en la pantalla.
  2. Ingrese la siguiente información :
    1. Ingrese la etiqueta, el nombre de la API se completará automáticamente.
    2. Valor predeterminado : {!lwcToFlow.latitude}
  3. Haga clic en Listo.

Paso 2.4: Agregar un componente de número de entrada para mostrar la longitud desde la ubicación de entrada Componente LWC

  1. En la sección Entrada en Elemento de pantalla , arrastre y suelte el componente Número en la pantalla.
  2. Ingrese la siguiente información :
    1. Ingrese la etiqueta, el nombre de la API se completará automáticamente.
    2. Valor predeterminado : {!lwcToFlow.longitude}
  3. Haga clic en Listo.

Al final, Janel's Flow se verá como la siguiente captura de pantalla:

Una vez que todo se vea bien, realice los siguientes pasos:

  1. Haga clic en Guardar .
  2. Ingrese la etiqueta de flujo, el nombre de la API se completará automáticamente.
  3. Haga clic en Mostrar avanzado .
  4. Versión de API para ejecutar el flujo : 58
  5. Etiqueta de entrevista : Pase de Screen Flow a LWC {!$Flow.CurrentDateTime}
  6. Haga clic en Guardar .

Prueba de concepto

Evaluación formativa:

¡Quiero saber de ti!

¿Qué es una cosa que aprendiste de esta publicación? ¿Cómo imagina aplicar este nuevo conocimiento en el mundo real? Siéntase libre de compartir en los comentarios a continuación.

Esta es una traducción realizada por EGA Futura, y este es el link a la publicación original: https://automationchampion.com/2023/07/17/pass-data-from-lightning-web-component-to-screen-flow-3/

Categories
Developers Tutoriales de Salesforce

Comenzando con Acciones Externas ☁️

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.

Introducción a las acciones externas | Blog de desarrolladores de Salesforce

Tuve excelentes conversaciones con clientes y socios en Connections este año, así como a través de la comunidad Trailblazer de MC Account Engagement , con respecto a las acciones externas de Account Engagement . Seguía surgiendo una pregunta: "¿Cómo empiezo con las acciones externas?" En esta publicación, aprenderá qué son las acciones externas, cómo configurarlas y cómo probarlas. Además, sintonice una próxima sesión de codeLive el 20 de julio a las 10 a. m. PT , donde realizaré una demostración de codificación en vivo para mostrarle cómo crear una acción externa y responder sus preguntas.

¿Qué son las Acciones Externas?

Las acciones externas son una parte clave deMarketing App Extensions , ya que proporcionan una forma de desencadenar una acción en un sistema externo. El otro componente es Actividades externas, que proporciona una forma de activar la automatización de la participación de la cuenta en función de un evento de participación que ocurre en un sistema externo. Piense en ello como las dos caras de una moneda, las acciones se activan, las actividades se activan. Combinadas, forman una aplicación de extensibilidad de automatización para un servicio, por lo que puede tener una extensión de aplicación de marketing por SMS, por ejemplo.

Por este motivo, las acciones externas se empaquetan en una extensión de aplicación de marketing. En el momento de escribir este artículo, las actividades externas aún no se pueden empaquetar, pero eventualmente también se empaquetarán en la extensión de la aplicación de marketing.

Si desea conectar una aplicación de terceros para automatizar la ejecución de una acción de prospecto en ese sistema, entonces esta es definitivamente la función para usted. En esta publicación, profundizaremos en el lado de la acción externa de las extensiones de aplicaciones de marketing.

¿Cuáles son algunos buenos casos de uso para las acciones externas?

Bueno, si me preguntan, ¡diría absolutamente todo! Puede que estés pensando: “¡Claro, todo el mundo dice eso!”. Sin embargo, las posibilidades que desbloquean las acciones externas son realmente amplias. Si alguna vez ha dicho: "Me gustaría que cuando un prospecto llegue a este paso, yo pudiera <insertar deseo aquí>", entonces deseaba una acción externa.

Puede usar una acción externa para registrarse en un seminario web de Zoom desde Account Engagement (consulte el ejemplo en GitHub ). También puede usar una acción externa para enviar un mensaje SMS a través de Twilio, que presentamos en una publicación de blog anterior . Incluso puedes usar acciones externas con webhooks; Usé la función de captura de webhook de Zapier para crear una acción externa que usaba un cliente potencial como desencadenante de un Zap.

¿Qué constituye una acción externa?

Una acción externa consta de una acción invocable de Apex, metadatos de la extensión de la aplicación de marketing, metadatos de una acción externa y una forma de gestionar la autenticación. Los metadatos para las extensiones de la aplicación de marketing y las actividades externas conectan la acción invocable con la participación de la cuenta. Los componentes que se usarán para la autenticación pueden variar según el tipo de autenticación que admita el servicio. Como OAUTH 2.0 es bastante común, el componente que uso más es un proveedor de autorización y Credenciales con nombre . Las credenciales con nombre también facilitan la administración de la autenticación en mi código, y el sistema hace la mayor parte del trabajo.

¿Qué habilidades necesito para trabajar con Acciones Externas?

Con una gran flexibilidad viene la complejidad, por lo que necesitará algunas habilidades en ciertas áreas para construir con éxito una acción externa. Los siguientes son temas clave de los que necesitará una comprensión básica antes de abordar su propia acción externa.

SLDC de Salesforce

Comprender el ciclo de vida del desarrollo de Salesforce es muy importante para tener éxito en general. Recomiendo aprender Visual Studio y el proceso de implementación de la CLI. No se necesita maestría, solo lo básico para poder empezar. Trailhead ofrece una ruta para ayudarlo a configurar su espacio de trabajo .

Documentación de la API REST

El patrón del que hablamos en este artículo se basa en las API REST JSON. Para comprender lo que es posible y recopilar las entradas pertinentes para una acción externa, debe poder leer una especificación API. Consulte las especificaciones de la API de Account Engagement y Twilio .

Implementación de Apex y Apex

Apex Invocable Actions es mi forma preferida de codificar mis acciones externas, ya que me permite la mayor flexibilidad y control. Recomendaría, como mínimo, familiarizarse con la compilación y la implementación de código Apex mediante el proyecto Quick Start: Apex de Trailhead. Para obtener más información, encontré útil el trailmix de Apex Basics . No necesita convertirse en un experto, pero al menos debe estar lo suficientemente informado como para poder leer el código de la aplicación de referencia .

Flujo de Salesforce (opcional)

No necesita conocer Salesforce Flow para aprender Acciones externas. Sin embargo, es una herramienta de prueba muy poderosa para sus acciones externas, lo que facilita la creación de una interfaz de usuario para controlar las entradas durante la prueba. Si está familiarizado con Engagement Studio, Flow será bastante fácil ya que tiene muchos de los mismos conceptos. Utilicé la ruta Crear flujos con Flow Builder para ponerme al día. Otro beneficio de aprender Salesforce Flow es que abre la puerta a la creación de todo tipo de automatización de procesos comerciales.

¿Cómo debo configurar mi entorno de desarrollador?

Es importante configurar sus entornos de desarrollador y contar con las herramientas adecuadas antes de comenzar con las acciones externas. Yo uso las siguientes herramientas.

  • Postman : utilizo Postman para explorar una nueva API, por lo que puedo aprender a realizar una solicitud y responder de forma sencilla. Postman también proporciona una manera fácil de generar ejemplos.
  • CLI de Visual Studio + Salesforce — Uso Visual Studio para codificar mi acción invocable y la implemento en mi organización de desarrollador. La mayoría de las veces, es simplemente copiar y pegar un ejemplo anterior y editarlo para mi nuevo caso de uso.
  • Entorno de desarrollador/sandbox : este es un entorno seguro para construir, desarrollar y empaquetar sus acciones externas. Tenga en cuenta que, en el momento de escribir este artículo, solo admitimos paquetes de primera generación (1GP) , por lo tanto, no configure su organización de desarrollador como Dev Hub.
  • Salesforce Flow : personalmente me gusta usar ScreenFlows para probar una acción invocable. Es bueno poder controlar completamente la entrada antes de conectarla a acciones externas y programas ES.
  • Consola de desarrollador de Salesforce : esto le permite ver rápidamente el código o ver los registros de sus pruebas de flujo de pantalla.

Patrón básico para llamadas API REST con acciones externas

Si bien puede codificar acciones externas de muchas maneras, existe un patrón básico que recomiendo al realizar llamadas a la API REST.

Las dos etiquetas que debe recordar son InvocableVariable , que define las entradas y salidas de la acción invocable, e InvocableMethod , que es el método a llamar al ejecutar la acción invocable. Puede ver cómo se aplican en el siguiente código de ejemplo.

Normalmente creo dos clases, una para la entrada y otra para la solicitud de API. Separar mi código en dos clases facilita jsonificar la carga útil. Mi clase de entrada contiene todos los campos de variables invocables que la acción invocable necesita en la entrada. Mi solicitud de API contiene los campos de la solicitud JSON.

InvocableMethod construirá la carga útil a partir de la entrada, la convertirá a JSON y luego la agregará a la solicitud HTTP. A continuación, configura el resto de la solicitud HTTP agregando la URL, los encabezados y el método. Finalmente, realiza la llamada a la API y comprueba si el resultado es correcto o, de lo contrario, genera un error útil para diagnosticar un problema.

Consideración importante: el marco de acción externa espera que se devuelva un error si hay una falla en lugar de detectar el error y luego devolver el éxito. Si se devuelve un error, se informará en la tabla de errores.

Poniendo a prueba tus acciones externas

De vez en cuando, mientras crea una acción externa, encontrará errores. Cuanto más pueda probar sobre la marcha, más fácil será descubrir dónde radica el problema. Es por eso que recomiendo agregar un paso de prueba para probar en Salesforce Flow antes de probar en Engagement Studio. Elimina la configuración de la acción externa de la imagen, por lo que si la verifica aquí, pero no funciona en Engagement Studio, sabrá que el problema radica en la configuración de la acción externa.

Las pruebas lo ayudan a identificar errores, pero determinar la causa raíz y corregirlos es otra cosa. A continuación se presentan algunas de las técnicas que utilizo para diagnosticar las causas fundamentales.

  • Consola de desarrollador de Salesforce : utilizo la consola de desarrollo para ejecutar mis casos de prueba y confirmar la cobertura de mi código. Durante las pruebas exploratorias en Flow, mantengo abierta mi consola de desarrollo, por lo que genera registros para usar en la investigación de errores.
  • Rastreos de registro de Salesforce : si el error ocurre durante mi prueba de Engagement Studio, coloco un rastreo de usuario en el usuario de integración B2BMA, para poder ver mis registros de Apex y diagnosticar el problema más a fondo. Tenga cuidado, podría terminar con una gran cantidad de datos. El Usuario de Integración B2BMA es el usuario que ejecuta acciones externas.
  • Errores de acción externa de compromiso de cuenta : la tabla proporciona cualquier error devuelto por la acción externa que resultó en una falla. Es útil ver lo que sucedió durante una ejecución de ES.

SUGERENCIA: si tiene una cuenta de Gmail, puede usar un "+" para crear varios registros con su dirección de correo electrónico. Por ejemplo, puedo registrar tanto "ejemplo@ejemplo.com" como "ejemplo+usuario2@ejemplo.com" como prospecto, y cualquier correo enviado a esas direcciones iría al buzón de correo de ejemplo@ejemplo.com. Por ejemplo, usé esto para probar el ejemplo de registro de Zoom porque no quería que el correo electrónico registrado rebotara.

Errores comunes

Los errores van a suceder, así es la vida. Me he encontrado con algunos escenarios que me han hecho casi tirarme de los pelos.

El primero es garantizar que la acción exterior sea activa. Si la acción no aparece en Engagement Studio, es probable que esta sea la causa. Recuerde, debe activar tanto la extensión de la aplicación de marketing como la acción externa, además de asignarla a esa unidad comercial.

El siguiente es asegurarse de que su clase de Apex esté activa. La mayoría de las veces ya estará marcado como activo, es el estado predeterminado cuando creas una nueva clase. Es exactamente por eso que es fácil pasarlo por alto.

Otro es buscar extensiones de aplicaciones de marketing al empaquetar. No puedo decirte cuántas veces busco acciones externas, solo para tener un momento de confusión antes de recordar.

Finalmente, si su acción externa no funciona, pero no ve errores, verifique que la acción invocable fue diseñada para generar un error en caso de falla.

Lo anterior no es de ninguna manera exhaustivo, y es probable que encuentre sus propias alegrías. Sin embargo, recomiendo compartirlos con la comunidad si encuentra algunos buenos.

¿Que estas esperando? ¡Empiece hoy!

Ahora sabe casi todo lo que hago sobre las acciones externas, desde cómo funciona la función hasta los errores comunes. Recuerde que Acciones externas es su herramienta siempre que se encuentre diciendo: "Me gustaría hacer algo cuando el cliente potencial haga esto", y lo ayudará a automatizar esa acción.

Entonces, configure su entorno de desarrollador, revise la aplicación de referencia y comience a construir su acción externa hoy. El 20 de julio a las 10 a. m. (hora del Pacífico) , realizaremos una sesión de CodeLive en nuestro canal de YouTube para desarrolladores de Salesforce , así que únase y síganos mientras construimos una extensión de la aplicación de marketing de Twilio.

Recursos

Sobre el Autor

Christopher Cornett es gerente sénior de productos en Salesforce, responsable de la experiencia del desarrollador de Account Engagement. Ha trabajado para Salesforce durante más de cuatro años y tiene más de 13 años de experiencia en gestión de productos, trabajando principalmente en plataformas que van desde la atribución de big data hasta el fraude. Christopher ha ayudado a ofrecer API V5 y extensiones de aplicaciones de marketing, ayudando a los clientes a crear integraciones personalizadas para que su pila de marketing funcione para ellos. Le apasiona la experiencia del desarrollador y le encanta jugar con todas las excelentes funciones para ver qué es posible.

Obtenga las últimas publicaciones de blog de desarrolladores de Salesforce y episodios de podcast a través de Slack o RSS.

Agregar a Slack Suscríbete a RSS

Esta es una traducción realizada por EGA Futura, y este es el link a la publicación original: https://developer.salesforce.com/blogs/2023/07/getting-started-with-external-actions.html

Categories
Developers

Eliminación definitiva de registros con Salesforce Flow

Última actualización el 22 de mayo de 2023 por Rakesh Gupta

Gran idea o pregunta duradera:

  • ¿Cómo eliminar registros de Salesforce utilizando Flow?

Objetivos:

Después de leer este blog, podrá:

  • Comprender la anotación @InvocableMethod
  • Más información sobre el método database.emptyRecycleBin
  • Configurar la acción de Apex para eliminar registros de forma permanente de Flow
  • Configurar el flujo de pantalla con el elemento Eliminar registro
  • Y mucho más

¿Qué es la eliminación completa?

La eliminación definitiva es la eliminación permanente de los registros especificados de la Papelera de reciclaje. Cuando los datos se eliminan de forma permanente, es casi imposible recuperarlos. Esto generalmente se logra a través de los métodos Database.EmptyRecycleBin .

Al vaciar los contenedores de reciclaje, tenga en cuenta las siguientes reglas y pautas:

  • Una vez que los registros se eliminan de la Papelera de reciclaje mediante esta llamada, se pueden consultar mediante queryAll() durante algún tiempo. Por lo general, este tiempo es de 24 horas, pero puede ser más corto o más largo.
  • Una vez que los registros se eliminan mediante la llamada Database.EmptyRecycleBin , no se pueden recuperar.

Warren Mason es administrador de sistemas en Gurukul on Cloud (GoC). En GoC están utilizando Salesforce Flow para optimizar los procesos de ventas. Warren tiene un requisito para eliminar clientes potenciales sin correo electrónico. Está construyendo un flujo de pantalla:

  1. Descubra todos los clientes potenciales sin correo electrónico
  2. Eliminar definitivamente tales clientes potenciales

Enfoque de Campeón de Automatización (I-do):

Si bien esto se puede resolver con varias herramientas de automatización como Apex Trigger y otras, usaremos Salesforce Flow y llamaremos a un método de Apex . Para llamar a un método de Apex , agregue el elemento Acción a su Flujo de Salesforce y seleccione una clase de Apex con una anotación @InvocableMethod .

En este artículo, usaremos la llamada clase de base de datos EmptyRecycleBin . Con Database.EmptyRecycleBin es posible borrar los registros de Salesforce. El método EmptyRecycleBin() elimina los registros de la papelera de reciclaje inmediatamente. A partir del lanzamiento de Summer'23 , no es posible acceder directamente al método EmptyRecycleBin desde Flow, por eso estamos usando la clase Apex Invocable.

Antes de discutir la solución, permítame mostrarle un diagrama del proceso a un alto nivel. Dedique unos minutos a revisar el siguiente diagrama de flujo para comprenderlo.

Comencemos a construir este proceso de automatización.

Práctica guiada (nosotros hacemos):

Hay 2 pasos para resolver el requisito comercial de Warren usando Screen Flow . Debemos:

  1. Cree una clase de Apex y una clase de prueba para eliminar registros de forma permanente de la Papelera de reciclaje.
  2. Flujo de fuerza de ventas
    1. Definir propiedades de flujo para el flujo de pantalla
    2. Agregue un elemento Obtener registros para encontrar todos los clientes potenciales sin dirección de correo electrónico
    3. Agregue un elemento de decisión para verificar los clientes potenciales encontrados o no (del paso 2)
    4. Agregue el elemento Eliminar registros para eliminar clientes potenciales
    5. Agregar acción: llame a Empty RecycleBin Invocable Apex Class

Paso 1: Cree una clase de Apex y una clase de prueba

Ahora, tenemos que comprender una nueva anotación de Apex, es decir, @InvocableMethod . Esta anotación nos permite usar un método de Apex como algo que se puede llamar desde Flow y Apex. Los métodos invocables se llaman con la API REST y se usan para invocar un solo método de Apex. Los métodos invocables tienen valores de entrada y salida dinámicos y admiten llamadas de descripción.

La anotación InvocableVariable identifica una variable de clase utilizada como parámetro de entrada o salida para la acción invocable de un método InvocableMethod. Si crea su propia clase personalizada para usarla como entrada o salida de un método invocable, puede anotar variables de miembros de clase individuales para que estén disponibles para el método.

La anotación de variable invocable admite los modificadores que se muestran en este ejemplo.


@InvocableVariable(label='variableLabel' description='variableDescription' requerido=(verdadero | falso))

La clase EmptyRecycleBin contiene dos variables, una para eliminar un solo registro y otra para manejar la eliminación de varios registros. Siéntase libre de pasar el valor a una o ambas variables según sea necesario. Cree la siguiente clase en su organización.


clase pública EmptyRecycleBin { @InvocableMethod(label='Papelera de reciclaje vacía' description='Eliminar permanentemente los registros de la Papelera de reciclaje.' iconName='slds:estándar:record_delete' categoría = 'Acciones de Apex personalizadas') ejecución de vacío estático público (Lista <Solicitudes> lista de solicitudes) { List<SObject> recordstoDelete = New List<SObject>(); para (Solicitudes req: lista de solicitudes) { if(req.obj != null){ recordstoDelete.add(req.obj); } if(req.listofSObjects != null){ recordstoDelete.addAll(req.listofSObjects); } } if(registrosparaEliminar.tamaño()>0){ Database.emptyRecycleBin(registrosparaEliminar); } } Solicitudes de clases públicas{ @InvocableVariable (descripción ='Aceptar un registro de tipo SObject.' requerido=falso) objeto público SObject; @InvocableVariable (descripción ='Aceptar múltiples registros de un tipo SObject.' requerido=falso) public List<SObject> listofSObjects; }
}

Copie el código de GitHub o instálelo usando esta URL .

Paso 2.1: Definir propiedades de flujo

  1. Haga clic en Configuración .
  2. En el cuadro Búsqueda rápida, escriba Flujos .
  3. Seleccione Flujos y luego haga clic en Nuevo flujo .
  4. Seleccione el flujo de pantalla   opción y haga clic en Crear y configurar el flujo.
  5. Se abrirá el diseñador de flujo para usted.

Paso 2.2: Adición de elementos Obtener registros para encontrar clientes potenciales sin correo electrónico

El siguiente paso es usar el objeto Prospecto para encontrar los prospectos sin dirección de correo electrónico.

  1. En Flow Designer, haga clic en el icono + y seleccione el elemento Obtener registros .
  2. Introduzca un nombre en el campo Etiqueta ; el nombre de la API se completará automáticamente.
  3. Seleccione el objeto Prospecto de la lista desplegable.
  4. Seleccione Se cumplen todas las condiciones (Y) .
  5. Establecer condiciones de filtro
    1. Fila 1:
      1. Campo : Correo electrónico
      2. Operador : Igual
      3. Valor : {!$ConstanteGlobal.EmptyString}
  6. Cuántos registros almacenar:
    1. Seleccionar todos los registros
  7. Cómo almacenar datos de registro:
    1. Elija la opción para Almacenar automáticamente todos los campos .

Paso 2.3: uso del elemento de decisión para verificar la variable de recopilación de registros (del paso 2)

Ahora usaremos el elemento Decisión para comprobar la Variable de recopilación de registros del paso 2 para saber si devuelve el cliente potencial o no.

  1. En Flow Designer, haga clic en el icono + y seleccione el elemento Decisión .
  2. Introduzca un nombre en el campo Etiqueta ; el nombre de la API se completará automáticamente.
  3. En Detalles del resultado , ingrese la etiqueta que el nombre de la API se completará automáticamente.
  4. Requisitos de condición para ejecutar el resultado : se cumplen todas las condiciones (Y)
    1. Fila 1:
      1. Recurso: {!Get_Leads}
      2. Operador: es nulo
      3. Valor: {!$ConstanteGlobal.Falso}
    2. Haga clic en Listo .

Paso 2.4: Agregar acción: eliminar registros para eliminar clientes potenciales

El siguiente paso es eliminar los clientes potenciales que encontramos en el Paso 2.2 . Para ello utilizaremos el elemento Eliminar Registros .

  1. En Flow Designer, debajo del nodo , haga clic en el icono + y seleccione el elemento Eliminar registros .
  2. Introduzca un nombre en el campo Etiqueta ; el nombre de la API se completará automáticamente.
  3. Para Cómo encontrar registros para eliminar, seleccione Usar los ID almacenados en una variable de registro o una variable de colección de registros .
  4. Selecciona el   {!Get_Leads} de la lista desplegable.
  5. Haga clic en Listo.

Paso 2.5: Adición de una acción para llamar a una clase de Apex invocable

  1. En Flow Designer, haga clic en el icono + y seleccione el elemento Acción .
  2. Seleccione la clase de Apex invocable EmptyRecycleBin .
  3. Ingrese un nombre en el campo Etiqueta : el nombre de la API se completará automáticamente.
  4. Establecer valores de entrada:
    1. Objeto para “listofSObjects” (Entrada) : Lead
    2. Objeto para "obj" (Entrada) : Plomo
  5. Almacenar valores de entrada
    1. listofSObjects : {!Get_Leads}
  6. Haga clic en Listo .

Al final, Warren's Flow se verá como la siguiente captura de pantalla:

Una vez que todo se vea bien, guarde el flujo.

Prueba de concepto

  1. Creé 201 clientes potenciales sin una dirección de correo electrónico para probar el flujo anterior.
  2. Ahora ejecute el flujo de pantalla y espere a que se complete el flujo.
  3. Vuelva a la Papelera de reciclaje para asegurarse de que los clientes potenciales se hayan eliminado definitivamente.

Evaluación formativa:

¡Quiero saber de ti!

¿Qué es una cosa que aprendiste de esta publicación? ¿Cómo imagina aplicar este nuevo conocimiento en el mundo real? Siéntase libre de compartir en los comentarios a continuación.

Esta es una traducción realizada por EGA Futura, y este es el link a la publicación original: https://automationchampion.com/2023/05/22/hard-delete-records-using-salesforce-flow-2/

Categories
Developers

Lista de todas las fórmulas disponibles para Salesforce Flow

Última actualización el 16 de mayo de 2023 por Rakesh Gupta

Gran idea o pregunta duradera:

  • ¿Cómo averiguar todas las funciones de fórmula permitidas en un Flujo?

Objetivos:

Después de leer este blog, podrá:

  • Descubra todas las funciones de fórmula admitidas en Salesforce Flow
  • Ejecute SOQL para objetos de la API de herramientas
  • y mucho más

Isabella Stewart trabaja como administradora de Salesforce en Gurukul On Cloud (GoC). Quiere saber cómo encontrar todas las fórmulas disponibles para Salesforce Flow.

Práctica guiada (nosotros hacemos):

Con la Fórmula, puede crear cualquier cosa, desde ecuaciones matemáticas simples hasta cálculos más complejos y avanzados. En este artículo, aprenderá cómo encontrar todas las funciones de fórmula disponibles que se pueden usar en Salesforce Flow.

Si está buscando una explicación sobre cómo usar la columna de fórmula, consulte este artículo .

Hagamos una pausa aquí, familiarícese con los objetos API de herramientas FormulaFunction y FormulaFunctionAllowedType . contiene

Nombre del objeto
Detalles
FórmulaFunción Representa una función utilizada al construir una fórmula, incluidos ejemplos y usos. Este objeto está disponible en la API de herramientas versión 39.0 y posteriores.
CustomFielFormulaFunctionAllowedTyped Representa las funciones que se admiten en el contexto de la fórmula dada. Este objeto está disponible en la versión API 48.0 y posteriores.

Realice los pasos a continuación para obtener una cobertura de código confiable:

  1. Haga clic en Configuración | Consola de desarrollador .
  2. En el Editor de consultas, ingrese la siguiente consulta SOQL
    1. SELECCIONE Function.Name, Function.Label, Function.Description, Function.ExampleString FROM FormulaFunctionAllowedType where Type='Flow'
    2. Seleccione la casilla de verificación Usar API de herramientas .
    3. Haga clic en Ejecutar .

SELECCIONE Función.Nombre, Función.Etiqueta, Función.Descripción, Función.Cadena de ejemplo
FROM FormulaFunctionAllowedType donde Tipo='Flujo'

Lista de todas las fórmulas disponibles para Salesforce Flow

FórmulaFunción.Nombre FormulaFunction.Label FormulaFunction.Descripción FormulaFunction.ExampleString
1 abdominales abdominales Devuelve el valor absoluto de un número, un número sin su signo ABS (número)
2 ACOS ACOS Devuelve el arcocoseno del número en radianes, si el número dado está entre -1 y 1. De lo contrario, NULL. ACOS(número)
3 AGREGARMESES AGREGARMESES Agregue el número de meses a la fecha, usando la última fecha del mes si la fecha es el último día del mes o agregando el número de meses tiene menos días. AGREGARMESES(fecha,num)
4 Y Y Comprueba si todos los argumentos son verdaderos y devuelve VERDADERO si todos los argumentos son verdaderos Y (lógico1, lógico2,…)
5 ASCII ASCII Devuelve el punto de código del primer carácter de la cadena dada como un número. ASCII(texto)
6 COMO EN COMO EN Devuelve el arcoseno del número en radianes, si el número dado está entre -1 y 1. De lo contrario, NULL. ASIN(número)
7 UN BRONCEADO UN BRONCEADO Devuelve el arco tangente del número en radianes. ATAN(número)
8 ATAN2 ATAN2 Devuelve el arco tangente del cociente de y y x en radianes. ATAN2(y,x)
9 COMIENZA COMIENZA Comprueba si el texto comienza con los caracteres especificados y devuelve VERDADERO si es así. De lo contrario devuelve FALSO COMIENZA(texto, comparar_texto)
10 VALOR EN BLANCO VALOR EN BLANCO Comprueba si la expresión está en blanco y devuelve expresión_sustituta si está en blanco. Si la expresión no está en blanco, devuelve el valor de la expresión original. VALOR EN BLANCO (expresión, expresión_sustituta)
11 BR BR Inserta una etiqueta de interrupción HTML en fórmulas de cadena BR()
12 CASO CASO Compara una expresión con una serie de valores. Si la expresión es igual a cualquier valor, se devuelve el resultado correspondiente. Si no es igual a ninguno de los valores, se devuelve el resultado de otra cosa CASE(expresión, valor1, resultado1, valor2, resultado2,…,else_result)
13 CASESAFEID CASESAFEID Convierte una identificación de 15 caracteres en una identificación de 18 caracteres que no distingue entre mayúsculas y minúsculas CASESAFEID(id)
14 TECHO TECHO Redondea un número al entero más cercano, lejos de cero si es negativo TECHO(número)
15 CDH CDH Devuelve una cadena con el punto de código del primer carácter como el número dado. CHR(número)
dieciséis CONTIENE CONTIENE Comprueba si el texto contiene caracteres específicos y devuelve VERDADERO si los contiene. De lo contrario, devuelve FALSO CONTIENE(texto, comparar_texto)
17 porque porque Devuelve el coseno del número, donde el número dado en radianes COS(número)
18 TAZA DE CAMBIO TAZA DE CAMBIO Devuelva la tasa de conversión a la moneda corporativa para el CurrencyIsoCode dado, o 1.0 si la moneda no es válida. TIPO DE MONEDA (IsoCode)
19 FECHA FECHA Crea una fecha a partir de un año, mes y día. FECHA (año, mes, día)
20 FECHAHORAVALOR FECHAHORAVALOR Devuelve un valor de año, mes, día y hora GMT DATETIMEVALUE(expresión)
21 FECHAVALO FECHAVALO Crea una fecha a partir de su representación de fecha y hora o texto FECHAVALUE(expresión)
22 DÍA DÍA Devuelve el día del mes, un número entre 1 y 31 DÍA (fecha)
23 DÍA DEL AÑO DÍA DEL AÑO Devuelve el día del año calendario (del 1 al 366). DÍA DEL AÑO (fecha)
24 DISTANCIA DISTANCIA Devuelve la distancia entre dos ubicaciones utilizando la unidad proporcionada. DISTANCIA(ubicación, ubicación, unidad)
25 Exp Exp Devuelve e elevado a la potencia de un número dado EXP(número)
26 ENCONTRAR ENCONTRAR Devuelve la posición de la cadena search_text en text ENCONTRAR(buscar_texto, texto [, start_num])
27 PISO PISO Redondea un número hacia abajo, hacia cero al entero más cercano Numero de piso)
28 FORMATO DURACIÓN FORMATO DURACIÓN Formatee el número de segundos con días opcionales, o la diferencia entre horas o dateTimes como HH:MI:SS. FORMATDURATION(numSeconds[, includeDays] | dateTime/time, dateTime/time)
29 DESDEUNIXTIME DESDEUNIXTIME Devuelve la fecha y hora que representa el número dado como los segundos transcurridos desde el 1 de enero de 1970. DESDEUNIXTIME(número)
30 GEOLOCALIZACIÓN GEOLOCALIZACIÓN Devuelve una ubicación basada en la latitud y longitud proporcionadas. GEOLOCALIZACIÓN (latitud, longitud)
31 GETSESIONID GETSESIONID Devuelve el ID de la sesión actual. Esto puede ser útil en los hipervínculos a otras aplicaciones que utilizan las credenciales de salesforce.com para la autenticación. GETSESIONID()
32 HTMLENCODE HTMLENCODE Codifica texto y fusiona valores de campo para su uso en HTML HTMLENCODE(texto)
33 HIPERVÍNCULO HIPERVÍNCULO Crea un hipervínculo HIPERVÍNCULO (url, nombre_amistoso [, destino])
34 SI SI Comprueba si una condición es verdadera y devuelve un valor si es VERDADERO y otro valor si es FALSO. SI (prueba_lógica, valor_si_verdadero, valor_si_falso)
35 INCLUYE INCLUYE Determina si cualquier valor seleccionado en un campo de lista de selección múltiple es igual a un literal de texto que especifique. INCLUYE (multiselect_picklist_field, text_literal)
36 INITCAP INITCAP Devuelve el texto en minúsculas con el primer carácter de cada palabra en mayúsculas. INITCAP(texto)
37 ESTÁ EN BLANCO ESTÁ EN BLANCO Comprueba si una expresión está en blanco y devuelve VERDADERO o FALSO ESBLANCO(expresión)
38 ES NULO ES NULO Comprueba si una expresión es nula y devuelve VERDADERO o FALSO ESNULL(expresión)
39 ES NÚMERO ES NÚMERO Devuelve VERDADERO si el valor del texto es un número. De lo contrario, devuelve FALSO. ESNUMERO(Texto)
40 ISOSEMANA ISOSEMANA Devuelva el número de semana ISO 8601 para la fecha dada (del 1 al 53) para que la primera semana comience el lunes. ISOSEMANA(fecha)
41 ISOAÑO ISOAÑO Devuelve el año de 4 dígitos de la numeración de semanas ISO 8601 para la fecha dada, de modo que el primer día sea lunes. ISOAÑO(fecha)
42 ISPICKVAL ISPICKVAL Comprueba si el valor de un campo de lista de selección es igual a un literal de cadena ISPICKVAL(campo_lista_selección, literal_texto)
43 JSENCODE JSENCODE Codifica texto y valores de campo de combinación para su uso en JavaScript JSENCODE(texto)
44 JSINHTMLENCODE JSINHTMLENCODE Codifica texto y valores de campo combinados para su uso en JavaScript dentro de etiquetas HTML JSINHTMLENCODE(texto)
45 IZQUIERDA IZQUIERDA Devuelve el número especificado de caracteres desde el inicio de una cadena de texto IZQUIERDA(texto, num_chars)
46 LARGO LARGO Devuelve el número de caracteres en una cadena de texto LARGO(texto)
47 ENLACE A ENLACE A Devuelve el elemento de enlace HTML para el objetivo seleccionado con entradas opcionales expresadas como parámetros de consulta LINKTO(etiqueta, objetivo, id, [entradas], [sin anular])
48 LN LN Devuelve el logaritmo natural de un número LN(número)
49 REGISTRO REGISTRO Devuelve el logaritmo en base 10 de n REGISTRO (número)
50 MÁS BAJO MÁS BAJO Convierte todas las letras del valor a minúsculas INFERIOR (texto)
51 LPAD LPAD Rellene el lado izquierdo del valor con espacios o la cadena de relleno opcional para que la longitud sea padded_length LPAD(texto, padded_length [, pad_string])
52 MÁX. MÁX. Devuelve el mayor de todos los argumentos. MAX(número,número,…)
53 MCEILING MCEILING Redondea un número al entero más cercano, hacia cero si es negativo MCEILING(número)
54 PISO PISO Redondea un número hacia abajo al entero más cercano, lejos de cero si es negativo MFLOOR(número)
55 MEDIO MEDIO Devuelve un carácter desde la mitad de una cadena de texto, dada una posición inicial y una longitud MID(texto, núm_inicio, núm_caracteres)
56 MÍN. MÍN. Devuelve el menor de todos los argumentos. MIN(número,número,…)
57 MODIFICACIÓN MODIFICACIÓN Devuelve el resto después de dividir un número por un divisor MOD(número,divisor)
58 MES MES Devuelve el mes, un número entre 1 (enero) y 12 (diciembre) MES(fecha)
59 NO NO Cambia FALSO a VERDADERO o VERDADERO a FALSO No es lógico)
60 AHORA AHORA Devuelve una fecha y hora que representa el momento actual AHORA()
61 VALOR NULO VALOR NULO Comprueba si expresión es nula y devuelve expresión_sustituta si es nula. Si la expresión no es nula, devuelve el valor de la expresión original. NULLVALUE(expresión, expresión_sustituta)
62 O O Comprueba si alguno de los argumentos es verdadero y devuelve VERDADERO o FALSO. Devuelve FALSO solo si todos los argumentos son falsos O(lógico1,lógico2,…)
63 Pi Pi Devuelve pi PI()
64 PICKLISTCOUNT PICKLISTCOUNT Devuelve el número de valores seleccionados en una lista de selección múltiple. PICKLISTCOUNT(multiselect_picklist_field)
sesenta y cinco PREDECIR PREDECIR Devuelve una predicción de Einstein Discovery basada en un Id. de registro o una lista de campos y sus valores. PREDICT(PredDefId, [recordId] | [campo, valor, …])
66 REGEX REGEX Devuelve VERDADERO si Texto coincide con la expresión regular RegEx_Text. De lo contrario, devuelve FALSO. REGEX(Texto, RegEx_Text)
67 CONTRARRESTAR CONTRARRESTAR Devuelve la cadena de texto en orden inverso REVERSO (texto)
68 BIEN BIEN Devuelve el número especificado de caracteres desde el final de una cadena de texto DERECHA(texto, num_chars)
69 REDONDO REDONDO Redondea un número a un número específico de dígitos REDONDO(número,núm_dígitos)
70 RPAD RPAD Rellene el lado derecho del valor con espacios o la cadena de relleno opcional para que la longitud sea padded_length RPAD(texto, padded_length [, pad_string])
71 PECADO PECADO Devuelve el seno del número, donde el número dado en radianes SIN(número)
72 SQRT SQRT Devuelve la raíz cuadrada positiva de un número SQRT(número)
73 SUSTITUTO SUSTITUTO Sustituye texto_nuevo por texto_antiguo en una cadena de texto. Use SUSTITUIR cuando desee reemplazar texto específico en una cadena de texto SUSTITUIR (texto, texto_antiguo, texto_nuevo)
74 BRONCEARSE BRONCEARSE Devuelve la tangente del número, donde el número dado en radianes TAN(número)
75 TEXTO TEXTO Convierte un valor en texto usando un formato de visualización estándar TEXTO(valor)
76 HOY HOY Devuelve la fecha actual HOY()
77 RECORTAR RECORTAR Elimina todos los espacios de una cadena de texto excepto los espacios individuales entre palabras RECORTAR (texto)
78 TRONCO TRONCO Trunca un número a un número específico de dígitos TRUNC(número,núm_dígitos)
79 UNIXTIMESTAMP UNIXTIMESTAMP Devuelve la cantidad de segundos desde el 1 de enero de 1970 para la fecha dada, o la cantidad de segundos en el día para una hora. UNIXTIMESTAMP(fecha/hora)
80 SUPERIOR SUPERIOR Convierte todas las letras del valor a mayúsculas SUPERIOR (texto)
81 CÓDIGOURL CÓDIGOURL Codifica texto y valores de campo combinados para su uso en direcciones URL CÓDIGOURL(texto)
82 URLPARA URLPARA Devuelve la URL del destino seleccionado con entradas opcionales expresadas como parámetros de consulta URLFOR(objetivo, id, [entradas], [sin anular])
83 VALOR VALOR Convierte una cadena de texto que representa un número en un número VALOR(texto)
84 DÍA LABORABLE DÍA LABORABLE Devuelve el día de la semana para la fecha dada, usando 1 para el domingo, 2 para el lunes, hasta 7 para el sábado. DÍA DE LA SEMANA (fecha)
85 AÑO AÑO Devuelve el año de una fecha, un número entre 1900 y 9999 AÑO (fecha)

Evaluación formativa:

¡Quiero saber de ti!

¿Qué es una cosa que aprendiste de esta publicación? ¿Cómo imagina aplicar este nuevo conocimiento en el mundo real? Siéntase libre de compartir en los comentarios a continuación.

Esta es una traducción realizada por EGA Futura, y este es el link a la publicación original: https://automationchampion.com/2023/05/16/list-of-all-available-formulas-for-salesforce-flow/

Categories
Developers

Generar código de barras y código QR en Salesforce

Última actualización el 12 de mayo de 2023 por Rakesh Gupta

Gran idea o pregunta duradera:

  • ¿Cómo generar código de barras y código QR en Salesforce?

Objetivos:

Después de leer este blog, podrá:

  • Comprender la diferencia entre código de barras y código QR
  • Beneficios de usar Código de Barras y Código QR
  • Genere un código de barras y muéstrelo en un campo
  • Cargar el código de barras en el archivo de Salesforce y asociarlo con el producto
  • y mucho más

Jestilla Zetkin trabaja como arquitecta de Salesforce en Gurukul On Cloud (GoC) . Mientras trabajaba en la implementación de Sales Cloud, obtuvo el requisito de generar códigos de barras. A continuación se detalla el requisito:

  1. Generar un código de barras para el código del producto
  2. Mostrar el código de barras en la página de detalles del producto
  3. Adjunte automáticamente el código de barras a la lista relacionada con el archivo en el producto.

¿Qué son el código de barras y el código QR?

Un código de barras y un código QR son tipos de códigos legibles por máquina que se utilizan para almacenar y recuperar información.

Un código de barras es una imagen cuadrada o rectangular compuesta de líneas paralelas negras y espacios en blanco. Se utiliza en tiendas para rastrear el inventario de productos, en hospitales para rastrear registros de pacientes y en el rastreo de equipaje de aerolíneas, etc.

Un código de respuesta rápida, también conocido como código QR, es un tipo de código de barras que incluye detalles legibles por máquina sobre el elemento al que está adjunto. Se utiliza para compartir datos como videos, fotos, URL web, contactos, etc.

La distinción principal entre un código de barras y un código QR es que un código de barras solo puede almacenar datos en una dimensión, mientras que un código QR puede almacenar datos en dos dimensiones.

¿Beneficios de usar código de barras y código QR?

El código de barras y el código QR brindan varias ventajas en el proceso de ventas, incluida una precisión mejorada, disponibilidad de fecha inmediata, implicaciones de bajo costo y mejor control de inventario. Beneficios de usar códigos de barras y códigos QR:

  1. Entrada de datos eficiente : los códigos de barras y los códigos QR eliminan la necesidad de la entrada manual de datos, lo que reduce los errores y aumenta la eficiencia.
  2. Gestión de inventario : ayudan a agilizar el seguimiento y la gestión del inventario al proporcionar información precisa y en tiempo real.
  3. Transacciones más rápidas : escanear códigos de barras y códigos QR acelera las transacciones en el punto de venta, lo que reduce los tiempos de espera.
  4. Fácil implementación : los códigos de barras y los códigos QR se pueden generar e imprimir fácilmente, y su escaneo se puede realizar con teléfonos inteligentes estándar o escáneres dedicados.
  5. Oportunidades de marketing mejoradas : los códigos QR, en particular, se pueden usar para atraer a los clientes con contenido interactivo, promociones y anuncios.

¿Cómo generar código de barras y código QR?

Para generar un código de barras, puede utilizar varios generadores de códigos de barras en línea o bibliotecas de programación que ofrecen funcionalidades de creación de códigos de barras.

En este artículo usaremos la API de código de barras bwip-js . La API en línea de bwip-js está alojada en una instancia Amazon AWS EC2 mediante una aplicación node.js. Puede usar esta API para generar dinámicamente imágenes de códigos de barras desde cualquier lugar de la web. La imagen devuelta está en formato PNG. No hay cargos por usar esta API y no pude encontrar ningún límite de uso.

Los dos parámetros requeridos son el tipo de código de barras y el valor a codificar. También puede agregar parámetros adicionales para rotar (permite rotar la imagen a una de las cuatro orientaciones ortogonales) e incluir texto .

Práctica guiada (nosotros hacemos):

Realice los pasos a continuación para generar un código de barras para el código del producto:

Paso 1: cree un campo de fórmula personalizada en el producto para generar y mostrar un código de barras

Ahora generaremos la imagen del código de barras usando un generador de código de barras bwip-js y mostraremos la imagen en un campo de fórmula usando la etiqueta de imagen.

  1. Haga clic en Configuración .
  2. En el Administrador de objetos, escriba Producto .
  3. Seleccione Campos y relaciones , luego haga clic en Nuevo .
  4. Seleccione Fórmula como Tipo de datos, luego haga clic en Siguiente.
  5. Ingrese la etiqueta del campo : código de barras (código del producto) y haga clic en la tecla de tabulación, se completará el nombre del campo .
    1. Tipo de devolución de fórmula : Texto
  6. Haga clic en el botón Siguiente .
    1. URL de la fórmula : IMAGEN(“ https://bwipjs-api.metafloor.com/?bcid=code39&text=”+ ProductCode +”&scale=2&rotate=N&includetext&backgroundcolor=ffffff”,”Barcode”)
  7. Establezca la seguridad a nivel de campo para los perfiles .
  8. Agregue este campo a Diseño de página .
  9. Haga clic en Guardar .

Paso 2: asociar la imagen del código de barras al archivo de Salesforce

Ahora ya sabe cómo generar la imagen del código de barras sin ningún código. El siguiente paso es cargar la imagen del código de barras en el archivo de Salesforce para generar o imprimir un PDF.

  1. La imagen devuelta de la API de código de barras bwip-js está en formato PNG. Necesitamos un código apex para recuperar el cuerpo de esta solicitud como un blob.
     Solicitud HttpRequest = new HttpRequest();
    solicitud.setEndpoint(r.imagenURL);
    solicitud.setMethod('GET');
    Enlace Http = nuevo Http();
    Respuesta HttpResponse = vinculante. enviar (solicitud);
    Imagen de blob = respuesta.getBodyAsBlob();

Esta es una traducción realizada por EGA Futura, y este es el link a la publicación original: https://automationchampion.com/2023/05/11/generate-barcode-and-qr-code-in-salesforce-2/

Categories
Salesforce

Las mejores formas de automatizar la gestión de proyectos en Salesforce

Administrar sus proyectos dentro de Salesforce garantiza que todos sus datos clave estén disponibles en un solo lugar, con todos los que necesitan la capacidad de acceder a ellos ya en la plataforma y familiarizados con la interfaz de usuario. Además, no es necesario que cree ni mantenga la integración con herramientas de gestión de proyectos externas de terceros. Sin embargo, si está buscando mejorar aún más su juego de gestión de proyectos en Salesforce, la mejor manera de hacerlo sería a través de la automatización. Este artículo lo guiará a través de las mejores formas de automatizar la gestión de proyectos en Salesforce.

La automatización ayuda a su organización a crear valor a través de una reducción del tiempo dedicado a realizar tareas, una reducción del riesgo relacionado con el error humano y la creación de una experiencia optimizada para sus usuarios y clientes.

Las posibilidades son infinitas cuando se utilizan herramientas de automatización de Salesforce listas para usar, como Salesforce Flow, y las aplicaciones de gestión de proyectos de Salesforce adecuadas, como Inspire Planner.

Ejemplos de cómo puede automatizar la gestión de proyectos en Salesforce

Tabla de contenido

Una vez que haya decidido automatizar la gestión de proyectos en Salesforce, la pregunta es ¿Qué automatizamos ?

A continuación se enumeran varios escenarios de automatización de la gestión de proyectos que han demostrado ahorrar tiempo y recursos a las empresas. Estos pueden darle ideas sobre lo que desea automatizar en su organización de Salesforce.

Lanzar proyectos automáticamente con un flujo de Salesforce

Es un escenario común que las empresas necesitan lanzar proyectos a partir de plantillas específicas cuando las Oportunidades pasan a la etapa Cerrado/Ganado. Hacer esto manualmente para cada oportunidad requiere una cantidad considerable de tiempo y esfuerzo. Además, también deja espacio para el error humano o para que alguien simplemente olvide o retrase un paso.

Con Inspire Planner, una aplicación de gestión de proyectos nativa de Salesforce, puede crear un flujo de Salesforce desencadenado por registro para crear automáticamente un proyecto a partir de una plantilla específica en función de diferentes criterios (por ejemplo, la etapa de oportunidad se actualiza a Cerrado/Ganado).

Automatice la gestión de proyectos en Salesforce con Salesforce Flows para lanzar proyectos a partir de oportunidades

Este nuevo proyecto heredará de la plantilla todas sus fases y tareas, predecesores, archivos adjuntos, roles de recursos y más.

Entonces, para comenzar, su gerente de proyecto simplemente necesita actualizar la fecha de inicio de su primera tarea y asignar el equipo del proyecto (¡ambos también se pueden automatizar!).

Se puede configurar una automatización similar de Salesforce Flow para lanzar proyectos desde otras etapas de Oportunidades o para otros objetos en Salesforce, como Casos, Cuentas, Pedidos y más.

Automatice la gestión de proyectos en Salesforce con plantillas de proyectos

Si su organización entrega proyectos que siguen procesos estandarizados, puede Automatice la gestión de proyectos en Salesforce configurando plantillas de proyectos y usándolas cada vez que desee configurar un nuevo proyecto en lugar de crearlos desde cero.

Configurar plantillas de proyecto puede ser un proceso simple con la herramienta adecuada. Por ejemplo, en Inspire Planner simplemente debe marcar la casilla de verificación 'Es plantilla' al crear un nuevo proyecto para hacer una Plantilla de proyecto. Y puede crear un número ilimitado de plantillas para diferentes procesos dentro de su organización.

Las plantillas de proyecto permitirán que su software de administración de proyectos de Salesforce haga parte del trabajo más insignificante por usted, permitiéndole a usted y a su equipo concentrar sus esfuerzos en brindar un servicio de alta calidad a sus clientes.

Con Inspire Planner, sus proyectos heredarán la mayor parte de la información requerida de la plantilla, incluidas las tareas, los archivos adjuntos, la duración de las tareas, las fechas de inicio y finalización, los predecesores, los recursos asignados, la prioridad, el esfuerzo planificado, el costo presupuestado, las categorías, las notas y el diseño del proyecto. y Configuración, y más.

Automatice la gestión de proyectos en Salesforce con plantillas de proyectos ilimitadas en Inspire Planner, una aplicación de gestión de proyectos nativa de SalesforceAutomatice la gestión de proyectos en Salesforce con plantillas de proyectos ilimitadas en Inspire Planner, una aplicación de gestión de proyectos nativa de Salesforce

Automatice la gestión de proyectos en Salesforce con la asignación de tareas basada en roles

Asignar automáticamente las tareas de su proyecto a los recursos correctos es una manera fácil de automatizar la gestión de proyectos en Salesforce.

Dependiendo de la cantidad de tareas en sus proyectos, esto podría sumar una cantidad significativa del tiempo de sus gerentes de proyecto si se hace manualmente, y eso suponiendo que lo hagan bien cada vez. Si hay una herramienta a su disposición que alivia esta carga de sus gerentes de proyecto y les permite concentrarse en un trabajo más importante, ¿por qué no ponerla en práctica?

Afortunadamente, esto también es algo que Inspire Planner ofrece listo para usar. Puede predefinir qué roles serán responsables de cada tarea mientras crea sus plantillas o planes de proyecto.

Luego, simplemente necesita asignar un recurso a un rol específico, y la automatización integrada de Inspire Planner asignará inmediatamente todas las tareas de su proyecto a los miembros correctos del equipo del proyecto.

Costura de plantilla

Lanzar proyectos automáticamente desde Oportunidades basadas en plantillas es una excelente manera de automatizar la gestión de proyectos en Salesforce. Pero, ¿qué sucede cuando vendió varios productos dentro de su Oportunidad y cada producto requiere un conjunto diferente de tareas?

¿Puede automatizar dicho proceso en Salesforce dentro de un plan de proyecto en lugar de crear proyectos separados?

La buena noticia es que la respuesta es sí. Inspire Planner ofrece la funcionalidad de unión de plantillas de proyectos que le permite crear un solo proyecto a partir de una oportunidad al "unir" (combinar) diferentes plantillas relacionadas con los productos de oportunidad.

Además, puede definir una plantilla de encabezado (un conjunto de tareas que deben realizarse sin importar qué productos se seleccionaron, por ejemplo, la fase de inicio del proyecto) y definir un orden de ejecución de sus plantillas simplemente arrastrándolas a las posiciones deseadas.

Y con la configuración adicional de Salesforce, puede configurar la unión de plantillas de proyectos en Inspire Planner para trabajar con otros objetos en Salesforce en lugar de productos.

Automatice la programación de su proyecto con dependencias de tareas

Puede automatizar la Gestión de proyectos en Salesforce configurando Dependencias de tareas en el diagrama de Gantt de su proyecto. De esta manera, su proyecto y todas las tareas operarían como una unidad cohesiva en lugar de que cada tarea esté separada. Por lo tanto, actualizar cualquier tarea recalculará automáticamente todo el cronograma del proyecto, ¡sin importar cuán complejo sea su proyecto!

Inspire Planner es compatible con cuatro tipos principales de predecesores (finalización a inicio, finalización a finalización, inicio a inicio y inicio a finalización), así como múltiples dependencias de tareas. Si no está familiarizado con estos términos, un predecesor es una actividad que debe comenzar o finalizar antes de que pueda continuar una tarea sucesora, y un sucesor es una actividad que sigue a otra actividad en función de su dependencia entre sí y no necesariamente en orden cronológico. .

Además de eso, con Inspire Planner también puede agregar tiempo de adelanto o retraso a sus dependencias (por ejemplo, la tarea debe comenzar 3 días después de que finalice otra, o un día antes, etc.), e incluso funciones más avanzadas como la gestión de restricciones ( por ejemplo, una tarea debe terminar en una fecha determinada).

Automatice la gestión de proyectos en Salesforce con dependencias de tareas en Inspire Planner, una aplicación de gestión de proyectos nativa de Salesforce

Una vez configuradas, los usuarios finales también pueden ver estas tareas predecesoras y sucesoras en un componente simplificado en la página de tareas. De modo que incluso si los miembros de su equipo no tienen acceso al proyecto o no están familiarizados con los diagramas de Gantt, aún pueden comprender fácilmente qué depende de ellos en este proyecto.

Componente predecesor y sucesor en las tareas de Salesforce en Inspire Planner, una aplicación de gestión de proyectos nativa de Salesforce

Automatización de Notificaciones

Otro elemento importante de la automatización de la gestión de proyectos en Salesforce son las notificaciones.

Si desea entregar sus proyectos a tiempo, deberá mantener a su equipo de proyecto actualizado sobre los próximos plazos e hitos. Para empezar, puede configurar alertas y notificaciones automáticas para las tareas del proyecto a través de Salesforce. Esto enviará a los recursos de su proyecto recordatorios por correo electrónico sobre sus tareas y también mostrará un recordatorio de notificación en Salesforce.

Por ejemplo, puede configurar notificaciones de tareas unos días antes de la fecha de vencimiento de la tarea, cuando se actualizaron las fechas de inicio/finalización de la tarea, una notificación de alerta cuando la tarea está vencida y más. Dado que Inspire Planner se integra completamente con las tareas estándar de Salesforce, algunas de estas notificaciones estarán disponibles para usted desde el primer momento.

Finalmente, puede configurar alertas en Inspire Planner para acciones como Tareas listas para comenzar. Cuando se han completado todos los predecesores, Inspire Planner marca automáticamente sus tareas como "Listo para comenzar". A continuación, puede enviar alertas a las personas asignadas a esta tarea o utilizar una vista de lista que muestre solo dichas tareas. De esta manera, su equipo de proyecto sabrá fácilmente en qué debe concentrarse a continuación.

Automatización de KPIs y Reportes

La siguiente idea para automatizar la gestión de proyectos en Salesforce es automatizar los KPI y programar la entrega de sus informes de proyectos.

Puede decidir administrar los KPI manualmente en función del estado actual de sus proyectos o automatizarlos si tiene criterios estandarizados para los KPI internamente. En cualquier caso, puedes configurar alertas para tus jefes de proyecto cuando alguno de los KPIs del proyecto pase de Verde a Ámbar o Rojo.

KPI en Inspire PlannerKPI en Inspire Planner

Al utilizar las aplicaciones de gestión de proyectos nativas de Salesforce, su equipo puede beneficiarse de los potentes informes y paneles de Salesforce. Por ejemplo, Inspire Planner ofrece una carpeta completa lista para usar con informes de proyectos, la capacidad de generar su informe de estado del proyecto con unos pocos clics y también dos paneles dinámicos para su cartera y administradores de recursos.

Panel de administración de recursos en Inspire PlannerPanel de administración de recursos en Inspire Planner

Salesforce luego le permite programar y suscribirse a los informes de su proyecto. De esta manera, su equipo puede recibir notificaciones sobre las métricas más importantes del proyecto sin ejecutar manualmente ni enviar informes por correo electrónico.

Una de las mejores prácticas para generar informes sobre sus proyectos es crear líneas base del proyecto en Inspire Planner. La línea de base se puede utilizar para generar informes sobre el cronograma del proyecto planificado y el rendimiento real de su proyecto. La línea de base también se puede usar para rastrear y enviar notificaciones cuando hay retrasos en el proyecto y cuando las tareas vencen. Estas notificaciones pueden llamar la atención sobre áreas del Proyecto que necesitan más atención, lo que resultará en una reducción de los retrasos.

Automatice la gestión de proyectos en Salesforce con procesos de aprobación

Los procesos de aprobación pueden ayudarlo a automatizar la gestión de proyectos en Salesforce cuando necesite obtener una aprobación para algo en su organización.

Los ejemplos típicos de procesos de aprobación en la gestión de proyectos incluyen empleados que solicitan PTO de sus gerentes, gerentes de proyecto que obtienen aprobación para cambios dentro del alcance del proyecto, aprobación de facturas y más.

Con los procesos de aprobación de Salesforce, puede definir fácilmente sus pasos de aprobación, bloquear registros, permitir la recuperación de solicitudes de aprobación, definir un aprobador, crear plantillas de notificación y más.

Para iniciar procesos de aprobación en sus proyectos en Salesforce, puede usar botones personalizados (p. ej., "Enviar para aprobación") en los que los usuarios deben hacer clic o iniciar procesos de aprobación automáticamente con un Flujo de Salesforce.

Automatizar carteras de proyectos

Las carteras de proyectos le permiten agrupar y ver un conjunto de proyectos en un único diagrama de Gantt combinado. Con Inspire Planner, puede crear un número ilimitado de Portafolios para diversas necesidades, por ejemplo, un portafolio de sus proyectos, un portafolio de proyectos para un cliente específico, etc.

Los portafolios pueden mostrar el cronograma general del proyecto, el estado general del proyecto, el porcentaje completado, los hitos del proyecto y más. Además, un proyecto puede pertenecer a varias carteras.

Con Inspire Planner, puede agregar proyectos a Portafolios o eliminarlos manualmente o con automatización a través de Salesforce Flows. Por ejemplo, cuando se completa un proyecto, puede eliminarlo automáticamente de una cartera.

Portafolios de proyectos en Inspire Planner, una aplicación de gestión de proyectos nativa de SalesforcePortafolios de proyectos en Inspire Planner, una aplicación de gestión de proyectos nativa de Salesforce

Y con nuestra próxima función de carteras dinámicas con edición en línea, la gestión automática de carteras se está volviendo más fácil que nunca. Puede crear diferentes vistas de lista de Salesforce para organizar y filtrar automáticamente sus carteras de proyectos en función de varios criterios.

Calcule los niveles de prioridad de riesgos y problemas

Tener la capacidad de ver los riesgos y problemas relacionados con su proyecto significa que estos riesgos pueden mitigarse de manera oportuna durante todo el proyecto. Si busca identificar y prevenir riesgos de proyectos imprevistos, consulte nuestra guía sobre cómo reducir los riesgos de proyectos en Salesforce.

Si está buscando llevar la gestión de riesgos de su proyecto al siguiente nivel en Salesforce, puede hacerlo automatizando el cálculo de riesgos y automatizando la priorización de estos riesgos.

El registro de riesgos del proyecto es una función que ofrece Inspire Planner que le permite realizar un seguimiento de los riesgos de su proyecto y limitar sus impactos. Realiza un seguimiento tanto de los riesgos como de los problemas (los riesgos son los problemas que podrían ocurrir en el futuro y los problemas son los riesgos que han llegado a buen término y realmente sucedieron).

Registro de riesgos del proyecto en Inspire Planner

La Prioridad de sus riesgos se calcula automáticamente multiplicando el Impacto por la Probabilidad. De esta manera, simplemente debe asegurarse de capturar el impacto y la probabilidad de su riesgo e Inspire Planner hará el resto por usted.

Cuándo y por qué debería automatizar la gestión de proyectos en Salesforce

Si bien ahora conoce varias formas de automatizar la gestión de proyectos en Salesforce y cómo Inspire Planner puede ser potencialmente la solución que le permita hacer esto, es posible que todavía se pregunte por qué vale la pena automatizarlo.

¿Qué ganará su empresa con la automatización de la gestión de proyectos en Salesforce y qué impactos negativos mitigará? A continuación hay tres explicaciones de este valor y por qué la automatización no solo es una buena idea sino casi una necesidad.

Ahorre tiempo en tareas repetitivas

La gestión eficaz de proyectos es la diferencia entre un proyecto exitoso y uno fallido y, a menudo, lleva bastante tiempo ejecutarlo con cuidado para obtener resultados óptimos. Dado que hay una serie de tareas que se pueden realizar con su inversión en automatización de Salesforce, tiene mucho sentido liberar a su equipo para que se concentre en los problemas clave en lugar de atascarlos con tareas repetitivas manuales.

La investigación realizada por AutomationAnywhere muestra que en algunas industrias (a saber, el servicio público y la administración general) los profesionales pueden dedicar hasta 3,51 horas diarias a tareas administrativas repetitivas. ¡Estas son tareas que podrían realizarse fácilmente mediante algún tipo de automatización!

Cuando se trata de reducir el tiempo necesario para las tareas repetitivas en la gestión de proyectos, puede devolver el tiempo a su día implementando algunos de nuestros ejemplos de automatización descritos anteriormente, como plantillas de proyectos, asignación de tareas según roles de recursos y más. En última instancia, puede entregar un proyecto exitoso más rápido descargando este tipo de tareas a Salesforce.

Reducir el error humano

Si bien todos tratamos de ser completamente precisos todo el tiempo, solo somos humanos y, como tales, somos propensos a cometer errores. Salesforce, por otro lado, no es humano y no es propenso a la misma capacidad de cometer errores que los humanos. Las tareas más pequeñas pueden llamar menos la atención de un equipo de proyecto ocupado, lo que puede generar problemas mayores en el futuro debido a la naturaleza en cascada de estos errores.

Configurar su organización para automatizar su gestión de proyectos en Salesforce es la mejor manera de reducir (o eliminar efectivamente) su riesgo de error humano mientras gestiona el proyecto (suponiendo que esté configurado correctamente desde el principio, por supuesto).

Administre automáticamente varias plantillas/escenarios

Si su empresa ofrece múltiples servicios o productos diferentes, cada uno con su propio conjunto de tareas o incluso diferentes metodologías de gestión de proyectos (Waterfall vs Agile/Scrum), entonces puede encontrarse con problemas en los que un Project Manager no tiene suficiente experiencia trabajando con un tipo de producto o servicio específico y podría tener problemas para configurar el Proyecto en Salesforce.

Este problema se elimina por completo cuando su gestión de proyectos se automatiza en Salesforce utilizando varias plantillas de proyectos que sus gestores de proyectos pueden aplicar al comienzo de un proyecto. Esto no solo significa que tienen mucho menos trabajo por hacer, sino que también elimina cualquier error potencial o tareas olvidadas y brinda un grado de capacitación para los gerentes de proyecto que son nuevos en un tipo específico de proyecto.

Automatice la gestión de proyectos en Salesforce con Inspire Planner

Como puede ver, hay una cantidad insuperable de valor que se puede obtener al administrar sus proyectos dentro de Salesforce y luego aplicar capas en alguna Automatización de administración de proyectos.

Sus clientes se beneficiarán de sus esfuerzos al contar con un equipo de proyecto efectivo que pueda entregar a tiempo y garantizar que las comunicaciones sean consistentes, que los riesgos se gestionen y mitiguen, y que el equipo centre sus esfuerzos en el trabajo en lugar de las tareas administrativas.

Si está listo para automatizar la gestión de proyectos en Salesforce para su organización y reducir el trabajo manual y repetitivo, consulte Inspire Planner con nuestra prueba gratuita de 30 días hoy o solicite su demostración personal de Inspire Planner.

Esta es una traducción realizada por EGA Futura, y este es el link a la publicación original: https://inspireplanner.com/blog/automate-project-management-in-salesforce/

Categories
Developers

Buscar el siguiente día hábil a partir de una fecha específica

Última actualización el 7 de abril de 2023 por Rakesh Gupta

Gran idea o pregunta duradera:

No queremos trabajar los fines de semana o días festivos, ¡todos lo entendemos! Si es así, ¿cree que nuestros clientes o prospectos lo hacen ?

Si tiene dudas, intente enviar un correo electrónico a sus prospectos para comprar una casa en Navidad. ¿O qué tal enviar un correo electrónico de renovación de contrato a sus clientes el fin de semana? Tasa de éxito si estas acciones no es demasiado difícil de estimar, ¿verdad?

Entiendes mi punto.

Este blog es una continuación de mi blog anterior, Omitir el flujo programado en fines de semana y días festivos , donde discutimos cómo averiguar si la fecha objetivo especificada ocurre dentro del horario comercial. Este artículo irá un paso más allá y explicará cómo determinar el siguiente día hábil a partir de la fecha indicada teniendo en cuenta el horario comercial y los días festivos.

Comencemos con un caso de uso comercial.

Objetivos:

En este artículo, el lector aprenderá lo siguiente:

  • Cuándo usar la acción Invocable de Apex con Flow
  • Comprender la clase BusinesshHours y sus métodos asociados
  • Comprender la anotación @InvocableMethod
  • Cómo llamar a un método de Apex usando Flow para averiguar la próxima fecha en que el horario comercial está abierto

Warren Mason es administrador de sistemas en Gurukul on Cloud (GoC). Creó la automatización para enviar la notificación automática por correo electrónico al cliente después de la creación de la oportunidad.

El proceso funciona a las mil maravillas hasta que Warren recibe una solicitud de mejora para enviar alertas por correo electrónico sobre el horario laboral de la empresa. ¡¡Ay!! Ayudaremos a Warren a averiguar el siguiente día hábil y lo almacenaremos en un campo personalizado Next_workday__c en el objeto de oportunidad .

Enfoque de Campeón de Automatización (I-do):

Si bien esto se puede resolver con varias herramientas de automatización como Apex Trigger y otras , usaremos Salesforce Flow y llamaremos a un método de Apex . Para llamar a un método de Apex , agregue el elemento Acción a su Flujo de Salesforce y seleccione una clase de Apex con una anotación @InvocableMethod .

En este artículo, utilizaremos la clase de base de datos call BusinessHours . Asegúrate de revisarlo. Utilice el
método nextStartDate que devuelve la próxima fecha cuando el horario comercial está abierto. Si la fecha objetivo especificada se encuentra dentro del horario comercial, se devuelve esta fecha objetivo. A partir del lanzamiento de Spring'23 , no es posible acceder directamente al método BusinessHours desde Flow, por eso estamos usando la clase Apex Invocable.

Antes de discutir la solución, permítame mostrarle un diagrama del proceso a un alto nivel. Dedique unos minutos a revisar el siguiente diagrama de flujo para comprenderlo.
Comencemos a construir este proceso de automatización.

Práctica guiada (nosotros hacemos):

Hay 4 pasos para resolver el requisito empresarial de Warren utilizando el flujo activado por registro después de guardar . Debemos:

  1. Establecer horario comercial y días festivos
  2. Cree un campo personalizado en el objeto Oportunidad para almacenar el próximo día laboral
  3. Crear clase de Apex y clase de prueba
  4. Flujo de fuerza de ventas
    1. Definir propiedades de flujo para el flujo desencadenado por registro
    2. Agregar acción: llame a NextStartDate Invocable Apex Class
    3. Agregue el elemento Actualizar registros para actualizar la oportunidad

Paso 1: Configuración del horario comercial y días festivos

  1. Haga clic en Configuración .
  2. En el cuadro Búsqueda rápida, escriba Horario comercial .
  3. Establezca el horario comercial y los días festivos , como se muestra en la siguiente captura de pantalla:

Paso 2: cree un campo personalizado en el objeto de oportunidad para almacenar el próximo día laboral

  1. Haga clic en Configuración .
  2. En el Administrador de objetos, escriba Oportunidad .
  3. Seleccione Campos y relaciones , luego haga clic en Nuevo .
  4. Seleccione Fecha/Hora como Tipo de datos, luego haga clic en Siguiente .
  5. Ingrese Etiqueta de campo y haga clic en la tecla de tabulación, se completará el Nombre de campo .
    1. Ingrese los detalles:
      1. Como práctica recomendada, introduzca siempre una descripción y un texto de ayuda .
      2. Haga clic en el botón Siguiente .
  6. Establezca la seguridad a nivel de campo para los perfiles .
  7. Agregue este campo a Diseño de página .
  8. Haga clic en Guardar .

Paso 3: Cree una clase de Apex y una clase de prueba

Ahora, tenemos que entender una nueva anotación de Apex, es decir , . @MétodoInvocable . Esta anotación nos permite usar un método de Apex como algo que se puede llamar desde Flow y Apex. Los métodos invocables se llaman con la API REST y se usan para invocar un solo método de Apex. Los métodos invocables tienen valores de entrada y salida dinámicos y admiten llamadas de descripción.

La clase NextStartDate contiene un único método que pasa la Fecha/Hora para encontrar si la fecha objetivo está dentro del horario comercial dado, se devuelve la fecha objetivo. La hora devuelta está en la zona horaria local. Cree la siguiente clase en su organización.

  1. Haga clic en Configuración .
  2. En el cuadro Búsqueda rápida, escriba Clases de Apex .
  3. Haga clic en el botón Nuevo .
  4. Copie el código de GitHub y péguelo en su clase de Apex.
  5. Haga clic en Guardar.

público sin compartir clase NextStartDate { @InvocableMethod(label = 'Encuentra la próxima fecha a partir de la fecha objetivo cuando se reabre el horario comercial' iconName='slds:custom:custom63') public static List<response> calculeNextStartDate(List<Request> requestList) { List<response> finalList = new List<response>(); BusinessHours bh = [SELECCIONE Id FROM BusinessHours WHERE IsDefault=true]; para (Solicitud de solicitud: lista de solicitudes){ respuesta resp = nueva respuesta(); resp.nextStart=Horarios.nextStartDate(bh.id, req.targetDate); finalList.add(resp); } volver listafinal; } Solicitud de clase pública{ @InvocableVariable(etiqueta = 'Fecha objetivo' requerido = verdadero) fecha y hora pública fecha de destino; } Respuesta de clase pública { @InvocableVariable (etiqueta='Siguiente Inicio') fecha y hora pública nextStart; }
}

Paso 4.1: Definir propiedades de flujo

  1. Haga clic en Configuración .
  2. En el cuadro Búsqueda rápida, escriba Flujos .
  3. Seleccione Flujos y luego haga clic en Nuevo flujo .
  4. Seleccione el flujo activado por registro opción, haga clic en Crear y configure el flujo de la siguiente manera:
    1. Objeto : Oportunidad
    2. Activar el flujo cuando : se crea un registro
    3. Establecer criterios de entrada
      1. Requisitos de condición: Ninguno
    4. Optimice el flujo para la acción y los registros relacionados
  5. Haga clic en Listo .

Paso 4.2: Adición de una acción para llamar a una clase de Apex invocable

  1. En Flow Designer, haga clic en el icono + y seleccione el elemento Acción .
  2. Seleccione la clase de Apex invocable NextStartDate .
  3. Ingrese un nombre en el campo Etiqueta : el nombre de la API se completará automáticamente.
  4. Establecer valores de entrada:
    1. Campo : Fecha objetivo
    2. Valor : {!$Record.CreatedDate}
  5. Almacenar valores de salida
    1. Campo : Siguiente inicio
    2. Valor : {!$Record.Next_Workday__c}
  6. Haga clic en Listo .

Paso 4.3: Adición de un elemento Actualizar registros para actualizar la oportunidad

El siguiente paso es actualizar el campo siguiente día laborable de la oportunidad. Usaremos los registros de actualización   elemento.

  1. En Flow Designer, haga clic en el icono + y seleccione el elemento Actualizar registros .
  2. Introduzca un nombre en el campo Etiqueta ; el nombre de la API se completará automáticamente.
  3. Para obtener información sobre cómo encontrar registros para actualizar y establecer sus valores, seleccione Usar los ID y todos los valores de campo de un registro o colección de registros.
  4. Seleccionar registro(s) para actualizar
    1. Registro o colección de registros: {!$Record}
  5. Haga clic en Listo.


Al final, Warren's Flow se verá como la siguiente captura de pantalla:


Una vez que todo se vea bien, realice los siguientes pasos:

  1. Haga clic en Guardar .
  2. Ingrese la etiqueta de flujo, el nombre de la API se completará automáticamente.
  3. Haga clic en Mostrar avanzado .
  4. Versión de API para ejecutar el flujo : 57
  5. Etiqueta de entrevista : Próxima fecha de inicio {!$Flow.CurrentDateTime}
  6. Haga clic en Guardar .

¡Casi llegamos! Una vez que todo se vea bien, haga clic en Activar .

Prueba de concepto

Evaluación formativa:

¡Quiero saber de ti!

¿Qué es una cosa que aprendiste de esta publicación? ¿Cómo imagina aplicar este nuevo conocimiento en el mundo real? Siéntase libre de compartir en los comentarios a continuación.

Esta es una traducción realizada por EGA Futura, y este es el link a la publicación original: https://automationchampion.com/2023/04/07/find-next-business-day-from-a-specified-date-2/

Categories
Developers

¡Múltiples acciones programadas dentro de un solo flujo!

Última actualización el 2 de abril de 2023 por Rakesh Gupta

Gran idea o pregunta duradera:

¿Cómo programa varios correos electrónicos con Salesforce Flow?

Objetivos:

En este artículo, el lector aprenderá lo siguiente:

  • Cómo utilizar Salesforce Flow para enviar varias alertas por correo electrónico mediante Rutas programadas
  • y mucho más

Pamela Kline trabaja como administradora de sistemas en Gurukul on Cloud (GoC). En GoC están utilizando Salesforce Flow para optimizar los procesos de ventas. Pamela recibió un requisito: tan pronto como se cierre un caso, realice las siguientes tareas:

  • Envíe un correo electrónico de seguimiento al cliente 2 días después de que se complete la Fecha de cierre del caso.
  • Envíe una encuesta de satisfacción al cliente 15 días después de la Fecha de cierre del caso.

Enfoque de Campeón de Automatización (I-do):

Salesforce Flow es una de las herramientas más poderosas proporcionadas por Salesforce para implementar requisitos comerciales de forma declarativa . Al usarlo, se puede minimizar el uso de códigos en su organización de Salesforce. ¡La mejor parte es que no tiene que escribir clases de prueba para sus flujos! La implementación de Salesforce Flow es muy fácil: crea un flujo, lo prueba y luego usa un conjunto de cambios para implementarlo en producción. Para lograr el dominio de Salesforce Flow, debe comprender sus capacidades, como llamar a una clase de Apex, etc. Hoy analizaremos una de las características de Salesforce Flow: Rutas programadas.

Con Scheduled Paths, es más fácil: (1) optimizar la capacidad de respuesta de ventas; (2) automatizar las acciones de seguimiento de Casos y Oportunidades importantes; y (3) respaldar las necesidades de su negocio, ¡todo dentro de un solo proceso!

Antes de discutir la solución, permítame mostrarle un diagrama del proceso a un alto nivel. Dedique unos minutos a revisar el siguiente diagrama de flujo para comprenderlo.

Es bastante fácil crear dos procesos para resolver el requisito comercial anterior; sin embargo, en este caso, utilizaremos un proceso para incorporar ambos requisitos.

Comencemos a construir el proceso de automatización.

Práctica guiada (nosotros hacemos):

Hay 5 pasos para resolver el requisito empresarial de Brenda utilizando el flujo activado por registro después de guardar . Debemos:

  1. Crear una plantilla de correo electrónico para el correo electrónico de seguimiento
  2. Crear una alerta de correo electrónico para el correo electrónico de seguimiento
  3. Cree una plantilla de correo electrónico para el correo electrónico de la encuesta de satisfacción
  4. Cree una alerta de correo electrónico para el correo electrónico de la encuesta de satisfacción
  5. Pasos de flujo de Salesforce:
    1. Definir propiedades de flujo para el flujo desencadenado por registro
    2. Agregar una ruta programada
    3. Agregar acción: alerta de correo electrónico de seguimiento
    4. Agregar acción: alerta de correo electrónico de la encuesta de satisfacción

Paso 1: cree una plantilla de correo electrónico para el correo electrónico de seguimiento

  1. En el Iniciador de aplicación, escriba Plantillas de correo electrónico .
  2. Hace clic en el botón Nueva plantilla de correo electrónico .
  3. Asigne un nombre a la plantilla de correo electrónico y,
    1. Seleccione la carpeta Pública para almacenarlo.
    2. Seleccione Caso para el Tipo de entidad relacionada .
  4. Agregue una línea de asunto y otra información relevante para sus destinatarios.
  5. Haga clic en Guardar .

Paso 2: cree una alerta de correo electrónico para el correo electrónico de seguimiento

  1. Haga clic en Configuración .
  2. En el cuadro Búsqueda rápida, escriba Alertas de correo electrónico .
  3. Seleccione Alertas de correo electrónico , haga clic en el botón Nueva alerta de correo electrónico .
  4. Asigne un nombre a la Alerta de correo electrónico y haga clic en el botón Tabulador. Se completará el nombre único .
  5. Para Objeto, seleccione Caso.
  6. Para la Plantilla de correo electrónico , elija Correo electrónico de seguimiento .
  7. Para Tipo de destinatario , seleccione Campo de correo electrónico: Correo electrónico de contacto.
  8. Haga clic en Guardar .

Paso 3: cree una plantilla de correo electrónico para el correo electrónico de la encuesta de satisfacción

  1. En el Iniciador de aplicación, escriba Plantillas de correo electrónico .
  2. Hace clic en el botón Nueva plantilla de correo electrónico .
  3. Asigne un nombre a la plantilla de correo electrónico y,
    1. Seleccione la carpeta Pública para almacenarlo.
    2. Seleccione Caso para el Tipo de entidad relacionada .
  4. Agregue una línea de asunto y otra información relevante para sus destinatarios.
  5. Haga clic en Guardar .

Paso 4: cree una alerta de correo electrónico para el correo electrónico de la encuesta de satisfacción

  1. Haga clic en Configuración .
  2. En el cuadro Búsqueda rápida, escriba Alertas de correo electrónico .
  3. Seleccione Alertas de correo electrónico , haga clic en el botón Nueva alerta de correo electrónico .
  4. Asigne un nombre a la Alerta de correo electrónico y haga clic en el botón Tabulador. Se completará el nombre único .
  5. Para Objeto, seleccione Caso.
  6. Para la Plantilla de correo electrónico , elija Correo electrónico de seguimiento .
  7. Para Tipo de destinatario , seleccione Campo de correo electrónico: Correo electrónico de contacto.
  8. Haga clic en Guardar .

Paso 5.1: Definir propiedades de flujo

  1. Haga clic en Configuración .
  2. En el cuadro Búsqueda rápida, escriba Flujos .
  3. Seleccione Flujos y luego haga clic en Nuevo flujo .
  4. Seleccione el flujo activado por registro opción, haga clic en Crear y configure el flujo de la siguiente manera:
    1. Objeto : Caso
    2. Activar el flujo cuando : se crea o actualiza un registro
    3. Establecer criterios de entrada
      1. Requisitos de condición: se cumplen todas las condiciones (Y)
        1. Fila 1:
          1. Campo : EstáCerrado
          2. Operador : Igual
          3. Valor : {!$ConstanteGlobal.Verdadero}
    4. Cuándo ejecutar el flujo para registros actualizados : solo cuando un registro se actualiza para cumplir con los requisitos de la condición
    5. Optimice el flujo para la acción y los registros relacionados
  5. Haga clic en Listo .

Paso 5.2: Flujo de Salesforce: agregar rutas programadas

El propósito de utilizar una ruta programada para enviar alertas por correo electrónico en diferentes días.

  1. En Inicio , seleccione Agregar rutas programadas (opcional) .
  2. En Detalles de rutas programadas ,   ingrese la etiqueta, el nombre de la API se completará automáticamente.
  3. Ingrese la siguiente información
    1. Hora Fuente: Caso: Fecha cerrada
    2. Número de compensación: 2
    3. Opciones de compensación: Días después
  4. Haga clic en + en el panel del lado izquierdo para agregar una segunda ruta programada y repita el paso 2.
  5. Ingrese la etiqueta que el nombre de la API se completará automáticamente.
  6. Ingrese la siguiente información
    1. Hora Fuente: Caso: Fecha cerrada
    2. Número de compensación: 15
    3. Opciones de compensación: Días después
  7. Opciones avanzadas
    1. Tamaño del lote : 200
  8. Haga clic en Listo .

Paso 5.3: Agregar acción: alerta de correo electrónico de seguimiento

El siguiente paso es agregar una alerta de correo electrónico de seguimiento al Flujo. Usaremos el elemento Acción.

  1. En el nodo Correo electrónico de seguimiento , seleccione Acción .
    1. Debajo de Filtrar por , seleccione Tipo .
    2. Seleccione Alerta de correo electrónico .
    3. Seleccione Alerta por correo electrónico : seguimiento del cliente en el menú desplegable (la alerta por correo electrónico que creamos en el paso n.º 2)
  2. Etiquete la nueva acción Enviar correo electrónico de seguimiento .
  3. Establecer valores de entrada
    1. {!$Registro.Id}
  4. Haga clic en Listo.

Paso 5.4: Agregar acción: alerta por correo electrónico de la encuesta de satisfacción

El siguiente paso es agregar una alerta de correo electrónico de encuesta de satisfacción al flujo. Usaremos el elemento Acción.

  1. En el nodo Encuesta de satisfacción , seleccione Acción .
    1. Debajo de Filtrar por , seleccione Tipo .
    2. Seleccione Alerta de correo electrónico .
    3. Seleccione Alerta por correo electrónico : Encuesta de satisfacción del menú desplegable (la alerta por correo electrónico que creamos en el Paso 4)
  2. Etiquete la nueva acción Enviar encuesta de satisfacción .
  3. Establecer valores de entrada
    1. {!$Registro.Id}
  4. Haga clic en Listo.

Al final, Pamela's Flow se verá como la siguiente captura de pantalla:

Una vez que todo se vea bien, realice los siguientes pasos:

  1. Haga clic en Guardar .
  2. Ingrese la etiqueta de flujo, el nombre de la API se completará automáticamente.
  3. Haga clic en Mostrar avanzado .
  4. Versión de API para ejecutar el flujo : 57
  5. Etiqueta de entrevista : Notificaciones de cierre de caso {!$Flow.CurrentDateTime}
  6. Haga clic en Guardar .

¡Casi llegamos! Una vez que todo se vea bien, haga clic en el botón Activar .

Prueba de concepto

De ahora en adelante, cuando un agente de soporte cierre un caso, los procesos se dispararán y programarán dos acciones.

  1. Vaya a Configuración (icono de engranaje) | Ambientes | Monitoreo | Flujo de trabajo basado en el tiempo .
  2. Haga clic en Buscar .
  3. Ahora busque su trabajo de flujo programado que muestra información como se muestra en la siguiente captura de pantalla:
  4. Utilice el botón Eliminar para eliminar el trabajo de flujo basado en tiempo de la cola.

Evaluación formativa:

¡Quiero saber de ti!

¿Qué es una cosa que aprendiste de esta publicación? ¿Cómo imagina aplicar este nuevo conocimiento en el mundo real? Siéntase libre de compartir en los comentarios a continuación.

Esta es una traducción realizada por EGA Futura, y este es el link a la publicación original: https://automationchampion.com/2023/04/02/multiple-scheduled-actions-within-a-single-flow/

Categories
Developers Integrations Tutoriales de Salesforce

Uso del flujo de credenciales del cliente para una autenticación API más sencilla ☁️

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.

Uso del flujo de credenciales del cliente para una autenticación API más sencilla | Blog de desarrolladores de Salesforce

Puede llegar un momento en el que necesite integrar una aplicación con su organización de Salesforce para realizar una tarea específica, como recuperar datos de cuentas o clientes potenciales de Salesforce. Para hacerlo, Salesforce proporciona un conjunto completo de API que abordan una amplia gama de casos de uso. Una vez que haya averiguado qué API desea usar, su pregunta de seguimiento probablemente será: "¿Cómo me autentico?"

Aquí es donde entra en juego OAuth. OAuth (abreviatura de "autorización abierta") es un estándar IETF para la delegación de acceso que se utiliza para que los usuarios de Internet otorguen a las aplicaciones acceso a su información en otros sitios, generalmente sin compartir sus contraseñas.

Salesforce ha admitido OAuth 2.0 y varios de sus flujos durante mucho tiempo. El flujo más popular es el otorgamiento de código de autorización , que es el que normalmente usa cuando conecta un sitio web (por ejemplo, Airbnb a su cuenta de Google) para iniciar sesión. Salesforce le permite usarlo en varias áreas, como su Páginas de inicio de sesión de Mi dominio o Experience Cloud, a través de un proveedor de autenticación .

Esto es excelente cuando desea una autenticación basada en el usuario mediante la cual desea que un sistema (su aplicación) se conecte a Salesforce en el contexto de un usuario específico .

Por qué implementar el flujo de credenciales del cliente

Sin embargo, en ocasiones, desea conectar su aplicación a las API de Salesforce fuera del contexto de un usuario en particular. Por ejemplo, su aplicación puede ser una aplicación de respaldo o una aplicación de análisis; no conoce ningún nombre de usuario y no tiene las credenciales de ningún usuario específico. Por lo tanto, cualquier otro medio de autenticación está fuera de la mesa. Aquí es donde entra en juego la "concesión de credenciales de cliente" de OAuth. RFC6749 señala lo siguiente:

El cliente puede solicitar un token de acceso utilizando solo sus credenciales de cliente (u otros medios de autenticación admitidos) cuando el cliente solicita acceso a los recursos protegidos bajo su control, o los de otro propietario de recursos que se han acordado previamente con el servidor de autorización ( cuyo método está más allá del alcance de esta especificación).

En el lenguaje de OAuth, las credenciales del cliente son el identificador del cliente y el secreto del cliente. En el lenguaje de Salesforce, los llamamos clave y secreto del consumidor. Puede encontrarlos en su aplicación conectada en la sección etiquetada API (Habilitar configuración de OAuth) como se ve en la captura de pantalla a continuación.

Haga clic en Administrar detalles del consumidor , lo que lo llevará a la siguiente captura de pantalla.

Configurando el flujo

En Configuración > Administrador de aplicaciones, cree una nueva aplicación conectada. En las pantallas de detalles, proporcione un nombre y un contacto en la sección de información básica. Lo que elijas realmente no importa allí. Centrémonos en cambio en la siguiente sección, API (Habilitar configuración de OAuth).

Seleccione la casilla de verificación junto a "Habilitar flujo de credenciales de cliente". Esto habilitará el flujo de OAuth para la aplicación conectada seleccionada y los ámbitos de OAuth. Luego, elija sus alcances; debido a que esto está destinado al acceso a la API, debe elegir el alcance solo de API.

Una vez que haya hecho eso y haya guardado su aplicación, debe ir a administrar su aplicación para editar las políticas que rigen la aplicación.

En particular, querrá elegir un usuario para que el flujo "se ejecute como". ¿Un usuario? Bueno, sí, todo en Salesforce se ejecuta en el contexto de un usuario, por lo que aunque este flujo está destinado a ejecutarse fuera del contexto de un usuario, aún debemos asignarlo a un usuario. Piense en esto como el patrón de "usuario de integración". Ese usuario puede ser un administrador o un usuario con permisos que le permitan tocar todos los datos que le interesan. En Spring '23, el usuario debe ser "Solo API", pero ese requisito se eliminará de Summer '23 en adelante. . Tenga en cuenta que las organizaciones de Developer Edition no tienen el permiso Solo API, por lo que si está en Spring '23, necesitará una edición diferente.

Probarlo todo

Usemos Postman para probar. Estamos de suerte ya que la colección API de Salesforce (presentada por el increíble Philippe Ozil) ya contiene una muestra para las credenciales de los clientes. Todo lo que necesita hacer es abrir esa muestra y asegurarse de que las bibliotecas de su colección contengan valores actualizados para:

  • client_id: puede encontrar este valor dentro de la aplicación conectada. En el menú desplegable junto a la aplicación conectada, haga clic en Ver . Luego ubique la sección API (Habilitar configuración de OAuth) y haga clic en Administrar detalles del consumidor . Esto le permitirá copiar su clave de consumidor y secreto de consumidor (también conocido como ID de cliente y secreto de cliente).
  • client_secret : Ver arriba.
  • URL: por ejemplo, su URL puede ser algo como: https://login.salesforce.com .

Invocar esta llamada devolverá un token de acceso opaco que puede usar en llamadas posteriores. Recuerde: este token de acceso se emite para el usuario "Ejecutar como". Por lo tanto, si elige un usuario con un amplio conjunto de permisos (quizás un perfil de administrador del sistema), entonces el token de acceso obtiene la misma cantidad. Esto es excelente para las integraciones, pero puede ser peligroso de lo contrario, así que trate su token con cuidado. Cree un usuario de integración dedicado y limite su acceso mediante conjuntos de permisos al subconjunto más pequeño posible de funciones necesarias.

Así es como se ve la respuesta:

Conclusión

Ahora que Salesforce agregó soporte para la concesión de credenciales de cliente de OAuth 2.0, es más fácil que nunca establecer integraciones de servidor a servidor que no necesariamente necesitan el contexto del usuario. Para obtener más información, consulte el RFC para obtener detalles esenciales o nuestra página de ayuda .

Sobre el Autor

David Brossard es el director sénior de gestión de productos para identidad en Salesforce. Se enfoca en todo lo relacionado con el SSO y la identidad del cliente. Es miembro fundador de IDPro y colaborador de estándares, como XACML y SCIM. David habla regularmente en conferencias de identidad como Identiverse.

Obtenga las últimas publicaciones de blog de desarrolladores de Salesforce y episodios de podcast a través de Slack o RSS.

Agregar a Slack Suscríbete a RSS

Esta es una traducción realizada por EGA Futura, y este es el link a la publicación original: https://developer.salesforce.com/blogs/2023/03/using-the-client-credentials-flow-for-easier-api-authentication.html

Categories
Developers Salesforce

Agregar seguidores de Chatter al registro

Última actualización el 23 de marzo de 2023 por Rakesh Gupta

Gran idea o pregunta duradera:

  • ¿Cómo puedo permitir que los usuarios agreguen fácilmente a otros como seguidores de un registro?
  • ¿Puedo incorporarlo como parte de un flujo nuevo/existente?

Objetivos:

Esta publicación de blog nos ayudará a comprender lo siguiente

  • Agregar otro usuario como seguidor de un registro específico utilizando Salesforce Flow
  • Utilice un elemento de decisión para saber si un campo contiene un valor o no.
  • Y, por último, pero no menos importante, descubra cómo usar el elemento Crear registros para crear registros.
  • y mucho más

Brenda David trabaja como administradora de sistemas en Gurukul on Cloud (GoC). Ha recibido un requisito para desarrollar una aplicación que permitirá a los usuarios con acceso de edición en el objeto de la cuenta agregar seguidores de Chatter al registro.

Enfoque de Campeón de Automatización (I-do):

Hay algunas soluciones posibles para el escenario empresarial anterior . Usaremos Record-Triggered Flow para resolver el requisito.

El flujo se puede ejecutar en modo Sistema , omitiendo los permisos del usuario en ejecución. Para obtener instrucciones sobre cómo lograr este mismo caso de uso solo con Screen Flow, consulte esta publicación: Primeros pasos con Salesforce Flow: parte 42 (Ejecución de un flujo en modo de sistema)

Antes de continuar, debe familiarizarse con el objeto EntitySubscription en Salesforce. Representa una suscripción para un usuario que sigue un registro u otro usuario. Un usuario puede suscribirse a un registro oa otro usuario.

Nombre del campo Detalles
Identificación de los padres El ID del registro o usuario que el usuario está siguiendo
Identificación de suscriptor El ID del Usuario que está siguiendo el registro o usuario

Antes de discutir la solución, permítame mostrarle un diagrama de un flujo de proceso de alto nivel. Dedique unos minutos a revisar el siguiente diagrama de flujo y comprenderlo.

Comencemos a construir este proceso de automatización.

Práctica guiada (nosotros hacemos):

Hay 2 pasos para resolver el requisito empresarial de Brenda utilizando el flujo activado por registro después de guardar . Debemos:

  1. Creación de un campo de búsqueda personalizado en la cuenta para almacenar un nuevo seguidor
  2. Pasos de flujo de Salesforce:
    1. Definir propiedades de flujo para el flujo desencadenado por registro
    2. Agregue un elemento de decisión para verificar que el valor del campo de búsqueda personalizado no sea nulo
    3. Agregue un elemento de obtención de registros para encontrar el estado del seguidor del usuario seleccionado para el registro actual
    4. Agregue un elemento de decisión para verificar si el usuario está siguiendo el registro actual o no
    5. Agregue un elemento de creación de registros para agregar un usuario al seguidor de registros

Paso 1: crear un campo de búsqueda personalizado en el objeto de cuenta para almacenar un nuevo seguidor

  1. Haga clic en Configuración .
  2. En el Administrador de objetos, escriba Cuenta .
  3. Seleccione Campos y relaciones , luego haga clic en Nuevo .
  4. Seleccione Relación de búsqueda como tipo de datos y, a continuación, haga clic en Siguiente .
  5. Seleccione Usuario relacionado con y , a continuación, haga clic en Siguiente .
  6. Ingrese Etiqueta de campo y haga clic en la tecla de tabulación, se completará el Nombre de campo .
  7. Como práctica recomendada, siempre ingrese una descripción .
  8. Configure la Seguridad a nivel de campo para los perfiles , asegúrese de configurar este campo como Solo visible .
  9. Agregue este campo a Diseño de página .
  10. Haga clic en Guardar.

Paso 2.1: Definir propiedades de flujo

  1. Haga clic en Configuración .
  2. En el cuadro Búsqueda rápida, escriba Flujos .
  3. Seleccione Flujos y luego haga clic en Nuevo flujo .
  4. Seleccione el flujo activado por registro opción, haga clic en Crear y configure el flujo de la siguiente manera:
    1. Objeto : Cuenta
    2. Activar el flujo cuando : se crea o actualiza un registro
    3. Establecer criterios de entrada
      1. Requisitos de condición: Ninguno
    4. Optimice el flujo para la acción y los registros relacionados
  5. Haga clic en Listo .

Paso 2.2: uso del elemento de decisión para comprobar que el valor del campo de búsqueda personalizado no es nulo

Ahora usaremos el elemento Decisión para verificar si el campo de búsqueda personalizado para Usuario contiene algún valor o no.

  1. En Flow Designer, haga clic en el icono + y seleccione el elemento Decisión .
  2. Introduzca un nombre en el campo Etiqueta ; el nombre de la API se completará automáticamente.
  3. En Detalles del resultado , ingrese la etiqueta que el nombre de la API se completará automáticamente.
  4. Requisitos de condición para ejecutar el resultado : se cumplen todas las condiciones (Y)
    1. Fila 1:
      1. Recurso : {!$Record.Add_Follower__c}
      2. Operador : es nulo
      3. Valor : {!$ConstanteGlobal.Falso}
  5. Cuándo ejecutar el resultado : si Solo si el registro que desencadenó la ejecución del flujo se actualiza para cumplir con los requisitos de la condición
  6. Haga clic en Listo .

Paso 2.3: Adición de un elemento Obtener registro para encontrar el estado del seguidor del usuario seleccionado para el registro actual

El siguiente paso es usar el elemento Obtener registros para encontrar el estado de seguidor del usuario seleccionado para el registro actual.

  1. En Flow Designer, debajo del nodo Agregar seguidor no es nulo , haga clic en el icono + y seleccione el elemento Obtener registros .
  2. Introduzca un nombre en el campo Etiqueta ; el nombre de la API se completará automáticamente.
  3. Seleccione el objeto Suscripción de entidad de la lista desplegable.
  4. Seleccione Se cumplen todas las condiciones (Y) .
  5. Establecer condiciones de filtro
    1. Fila 1:
      1. Campo : ID de padre
      2. Operador : Igual
      3. Valor : {!$Record.Id}
    2. Haga clic en Agregar condición
    3. Fila 2:
      1. Campo : ID de suscriptor
      2. Operador : Igual
      3. Valor : {!$Record.Add_Follower__c}
  6. Cuántos registros almacenar:
    1. seleccione Solo el primer registro
  7. Cómo almacenar datos de registro:
    1. Elija la opción para Almacenar automáticamente todos los campos .
  8. Haga clic en Listo .

Paso 2.4: uso del elemento de decisión para verificar si el usuario seleccionado está siguiendo el registro actual o no

Ahora usaremos el elemento Decisión para verificar que la variable de registro del paso 2.3 sea nula o no.

  1. En Flow Designer, haga clic en el icono + y seleccione el elemento Decisión .
  2. Introduzca un nombre en el campo Etiqueta ; el nombre de la API se completará automáticamente.
  3. En Detalles del resultado , ingrese la etiqueta que el nombre de la API se completará automáticamente.
  4. Requisitos de condición para ejecutar el resultado : se cumplen todas las condiciones (Y)
    1. Fila 1:
      1. Recurso: {!Get_Follower_Status}
      2. Operador: es nulo
      3. Valor: {!$ConstanteGlobal.True}
  5. Cuándo ejecutar Resultado : Si se cumplen los requisitos de la condición .
  6. Haga clic en Listo .

Paso 2.5: Crear registros: agregar usuarios al seguidor de registros

Para agregar un nuevo usuario a Record Follower necesitamos crear un registro en el objeto EntitySubscription . Para ello utilizaremos el elemento Create Records. Ahora sigue los pasos a continuación:

  1. En Flow Designer, debajo del nodo No , haga clic en el icono + y seleccione el elemento Crear registros .
  2. Introduzca un nombre en el campo Etiqueta ; el nombre de la API se completará automáticamente.
  3. Ingrese la siguiente información :
    1. Ingrese la etiqueta, el nombre de la API se completará automáticamente.
    2. Cuántos registros crear : uno
    3. Cómo establecer los campos de registro : use recursos separados y valores literales
    4. Objeto : EntitySubscription
    5. Establecer valores de campo para EntitySubscription
    6. Fila 1 :
      1. Campo: ParentId
      2. Valor: {!$Record.Id}
    7. Haga clic en Agregar campo
    8. Fila 2 :
      1. Campo: ID de suscriptor
      2. Valor: {!$Record.Add_Follower__c}
  4. Haga clic en Listo.

Al final, Brenda's Flow se verá como la siguiente captura de pantalla:

Una vez que todo se vea bien, realice los siguientes pasos:
  1. Haga clic en Guardar .
  2. Ingrese la etiqueta de flujo , el nombre de la API se completará automáticamente.
  3. Haga clic en Mostrar avanzado .
  4. Versión de API para ejecutar el flujo : 57
  5. Etiqueta de entrevista : Agregar seguidor de Chatter para registrar {!$Flow.CurrentDateTime}
  6. Haga clic en Guardar .

¡Casi llegamos! Una vez que todo se vea bien, haga clic en el botón Activar .

Prueba de concepto

  1. Inicie sesión como Brenda David ( Perfil asignado : – Usuario estándar, la licencia de función Force.com Flow User no está asignada a este usuario).
  2. Navegue a un registro de cuenta y complete el campo Agregar seguidor con Nushi Davoud
  3. Confirmar que el usuario ha sido agregado
    1. Cerrar sesión como Brenda .
    2. Cambiar a Clásico
    3. Navega a la cuenta y revisa los seguidores.
  4. Estás listo .

Práctica Independiente (Hacemos):

Identifique los casos de uso en los que es posible que sea necesario compartir los registros de otros objetos de una manera más manual e implemente el uso compartido con la solución anterior.

Evaluación formativa:

¡Quiero saber de ti!

¿Qué es una cosa que aprendiste de esta publicación? ¿Cómo imagina aplicar este nuevo conocimiento en el mundo real? Siéntase libre de compartir en los comentarios a continuación.

Esta es una traducción realizada por EGA Futura, y este es el link a la publicación original: https://automationchampion.com/2023/03/23/add-chatter-followers-to-record-3/

Categories
Developers

Cree una búsqueda filtrada con Choice Lookup

Última actualización el 11 de diciembre de 2022 por Rakesh Gupta

Gran idea o pregunta duradera:

  • ¿Cómo se usa el nuevo componente de búsqueda de opciones (beta) para mostrar registros filtrados?

Este blog es una continuación de mi blog anterior: seleccione varios registros en el componente de búsqueda . En el blog anterior, discutí cómo configurar el componente de pantalla de flujo de búsqueda para que los usuarios puedan buscar y seleccionar más de un registro.

Este artículo va un paso más allá y explica cómo configurar el nuevo componente de pantalla de flujo de búsqueda de opciones (beta) para mostrar registros filtrados.

Objetivos:

Después de leer este blog, podrá:

  • Cree un flujo de pantalla y agréguele un elemento de pantalla.
  • Agregue un componente de búsqueda de opciones (beta) a su elemento de pantalla
  • Mostrar registros filtrados usando el conjunto de opciones de colección
  • Mostrar registros filtrados mediante el conjunto de opciones de registro
  • Y mucho más

Edward Backhouse trabaja como administrador de sistemas en Gurukul on Cloud (GoC). Ha recibido el siguiente requerimiento por parte de la dirección:

  1. Agregue un flujo de pantalla en la página de inicio que permita a los usuarios seleccionar múltiples oportunidades
  2. Al final, actualice la oportunidad abierta seleccionada a cerrada perdida.

Enfoque de Campeón de Automatización (I-do):

Con el lanzamiento de Spring'23 , ahora es posible agregar un componente de búsqueda de filtros usando un nuevo componente de flujo de pantalla de búsqueda de opciones (beta). Con un conjunto de opciones de colección filtrado o un conjunto de opciones de registro, puede crear una búsqueda que muestre oportunidades abiertas, clientes potenciales no calificados o contactos de una cuenta previamente seleccionada en el flujo de pantalla.

Antes de continuar, comprendamos las características del componente Choice Lookup .

Atributo Descripción
Nombre de la API Un nombre de API puede incluir guiones bajos y caracteres alfanuméricos sin espacios. Debe comenzar con una letra y no puede terminar con un guión bajo. Tampoco puede tener dos guiones bajos consecutivos.
Etiqueta Texto fácil de usar que se muestra a la izquierda del componente.
Requerir Requiere que los usuarios ingresen un valor antes de poder pasar a la siguiente pantalla.
Texto del marcador Texto que aparece en el campo cuando está vacío. Use texto de marcador de posición para dar a los usuarios una pista sobre qué ingresar en el campo.
Elección Agregue al menos una opción, un conjunto de opciones de registro o un conjunto de opciones de colección a este componente. Disponible solo cuando agrega un componente de elección al componente de pantalla.
Valor por defecto Opción preseleccionada para el componente. Si la pantalla asociada no se ejecuta o no se cumplen las condiciones para la visibilidad del componente, el valor almacenado del componente es nulo.

Utilice el gráfico proporcionado por Salesforce para comprender cuándo utilizar qué componente de búsqueda.

Antes de discutir la solución, permítame mostrarle un diagrama de un flujo de proceso de alto nivel. Dedique unos minutos a repasar el siguiente diagrama de flujo y compréndalo.

Comencemos a construir este proceso de automatización.

Práctica guiada (nosotros hacemos):

Hay 4 pasos para resolver el requisito comercial de Edward usando Screen Flow . Debemos:

  1. Definir propiedades de flujo para el flujo de pantalla
  2. Agregar un elemento de pantalla
    1. Cree un conjunto de opciones de registros para generar una lista filtrada de oportunidades abiertas.
    2. Agregue un componente Choice Lookup (Beta) que permita a los usuarios seleccionar una oportunidad abierta.
  3. Agregue un elemento Actualizar registros para actualizar la Etapa de la oportunidad a Cerrada perdida.
  4. Agregue un flujo de pantalla a la página de inicio de Lightning

Paso 1: Definir propiedades de flujo

  1. Haga clic en Configuración .
  2. En el cuadro Búsqueda rápida, escriba Flujos .
  3. Seleccione Flujos, luego haga clic en Nuevo flujo .
  4. Seleccione el flujo de pantalla   opción y haga clic en Crear y configurar el flujo.
  5. Se abrirá el diseñador de flujo para usted.

Paso 2: agregue un elemento de pantalla

  1. En Flow Designer, haga clic en el icono + y seleccione el elemento Pantalla .
  2. Ingrese la siguiente información :
    1. Ingrese la etiqueta, el nombre de la API se completará automáticamente.
  3. Haga clic en Listo .

Paso 2.1: Agregar un conjunto de opciones de registro para generar una lista filtrada de oportunidades abiertas

  1. En Caja de herramientas , seleccione Administrador y, a continuación, haga clic en Nuevo recurso para crear un conjunto de opciones de registro para generar una lista filtrada de oportunidades abiertas.
  2. Ingrese la siguiente información:
    1. Tipo de recurso : Conjunto de opciones de registro
    2. Nombre de la API : recChoice_OpenOpportunities
    3. Objeto : Oportunidad
    1. Filtrar registros de oportunidades
      1. Fila 1:
        1. Campo : EstáCerrado
        2. Operador : Igual
        3. Valor : {!$ConstanteGlobal.Falso}
    2. Configurar cada opción
      1. Etiqueta de opción (Seleccione un campo que genere una etiqueta para cada opción) : Nombre
      2. Tipo de datos (Tipo de datos del valor de la elección) : Texto
      3. Valor de elección (Seleccione un campo cuyo valor desee almacenar cuando el usuario seleccione esta opción en tiempo de ejecución) : Id.
  3. Haga clic en Listo.

Paso 2.2: agregue un componente de búsqueda de opciones (Beta) para mostrar la lista filtrada mediante el conjunto de opciones de registro

  1. En la sección Entrada en Elemento de pantalla . Arrastre y suelte Choice Lookup (Beta) en la pantalla.
  2. Ingrese la siguiente información :
    1. Ingrese la etiqueta y el nombre de la API .
    2. Requerir : Seleccionado
    3. Elección : {!recChoice_OpenOpportunities}
  3. Haga clic en Listo.

Paso 3: Agregar acción: actualizar registros

El siguiente paso es actualizar la Etapa de la oportunidad seleccionada a Cerrado Perdido. Usaremos los registros de actualización   elemento.

  1. En Flow Designer, haga clic en el icono + y seleccione el elemento Actualizar registros .
  2. Introduzca un nombre en el campo Etiqueta ; el nombre de la API se completará automáticamente.
  3. Para obtener información sobre cómo encontrar registros para actualizar y establecer sus valores, seleccione Especificar condiciones para identificar registros y establecer campos individualmente.
  4. Objeto : Oportunidad
  5. Seleccione Se cumplen todas las condiciones (Y) .
  6. Establecer condiciones de filtro
    1. Fila 1:
      1. Campo : Identificación
      2. Operador : Igual
      3. Valor : {!Open_Opportunity.selectedChoiceValues}
  7. Establecer valores de campo para los registros de oportunidad
    1. Fila 1:
      1. Campo : nombre de etapa
      2. Valor : Cerrado Perdido
  8. Haga clic en Listo .

Al final, Edward's Flow se verá como la siguiente captura de pantalla:

Una vez que todo se vea bien, realice los siguientes pasos:

  1. Haga clic en Guardar .
  2. Ingrese la etiqueta de flujo, el nombre de la API se completará automáticamente.
  3. Haga clic en Mostrar avanzado .
  4. Versión de API para ejecutar el flujo : 57
  5. Etiqueta de entrevista : Ejemplo de búsqueda de opciones {!$Flow.CurrentDateTime}
  6. Haga clic en Guardar .

¡Casi ahí! Una vez que todo se vea bien, haga clic en el botón Activar .

Paso 4: agregue un flujo de pantalla a la página de inicio de Lightning

El siguiente paso es distribuir un flujo a los usuarios de la aplicación Lightning Experience o Salesforce incrustándolo en una página de inicio de Lightning.

Prueba de concepto

Evaluación formativa:

¡Quiero saber de ti!

¿Qué es una cosa que aprendiste de esta publicación? ¿Cómo imagina aplicar este nuevo conocimiento en el mundo real? Siéntase libre de compartir en los comentarios a continuación.

Esta es una traducción realizada por EGA Futura, y este es el link a la publicación original: https://automationchampion.com/2022/12/09/create-filtered-lookup-with-choice-lookup-2/

Categories
Developers

Crear búsqueda con formularios dinámicos para flujo

Última actualización el 9 de diciembre de 2022 por Rakesh Gupta

Gran idea o pregunta duradera:

  • ¿Cómo se agrega un campo de búsqueda desde el objeto con el filtro de búsqueda aplicado?

Hasta ahora hemos discutido varios usos para usar diferentes campos de componentes de búsqueda:

  1. ¿Qué? ¿Usar el campo de búsqueda en un elemento de pantalla de flujo? .
  2. Seleccionar varios registros en el componente de búsqueda
  3. Crear búsqueda filtrada con búsqueda de elección

Este artículo va un paso más allá y explica cómo configurar el campo de búsqueda de su objeto que puede tener un filtro de búsqueda.

Objetivos:

Después de leer este blog, podrá:

  • Cree un flujo de pantalla y agréguele un elemento de pantalla.
  • Agregar una búsqueda compatible con campos de registro
  • Traiga el filtro de búsqueda que ha aplicado en el campo de origen directamente en el flujo de pantalla
  • Y mucho más

Edward Backhouse trabaja como administrador de sistemas en Gurukul on Cloud (GoC). ha recibido el siguiente requerimiento por parte de la gerencia:

  1. Agregue un flujo de pantalla en la página de inicio que permita a los usuarios seleccionar una cuenta al crear una oportunidad.
  2. Aplique el mismo filtro de búsqueda al componente de búsqueda de flujo de pantalla que se aplicó a la búsqueda de cuenta en el objeto de oportunidad.

Enfoque de Campeón de Automatización (I-do):

Con el lanzamiento de Spring'23 , ahora es posible agregar los campos de búsqueda de su objeto directamente en el flujo de pantalla.

Utilice el gráfico proporcionado por Salesforce para comprender cuándo utilizar qué componente de búsqueda.

Antes de discutir la solución, permítame mostrarle un diagrama de un flujo de proceso de alto nivel. Dedique unos minutos a repasar el siguiente diagrama de flujo y comprenderlo.

Comencemos a construir este proceso de automatización.

Práctica guiada (nosotros hacemos):

Hay 4 pasos para resolver el requisito comercial de Edward usando Screen Flow . Debemos:

  1. Configurar restricciones con filtros para búsqueda de cuenta en oportunidad
  2. Definir propiedades de flujo para el flujo de pantalla
  3. Agregue una variable de registro de tipo oportunidad para ver los campos disponibles
  4. Agregar un elemento de pantalla
    1. Complete la variable de registro para agregar campos de registro a la pantalla
    2. Agregue el campo ID de cuenta en la pantalla

Paso 1: configure restricciones con filtros para la búsqueda de cuentas en la oportunidad

El gerente de ventas de GoC le pidió a Edward que restringiera a los usuarios cuando seleccionan una cuenta relacionada para una oportunidad. Configure el filtro en la búsqueda de cuentas, para que los usuarios solo puedan elegir cuentas que comiencen con A.

  1. Haga clic en Configuración | Administrador de objetos .
  2. En el cuadro Búsqueda rápida, escriba Oportunidad .
  3. Seleccione Campos y relaciones, luego haga clic en el nombre de la cuenta.
  4. Haga clic en Editar y configure el filtro como se muestra en la siguiente captura de pantalla:
  5. Haga clic en Guardar .

Paso 2: Definir propiedades de flujo

  1. Haga clic en Configuración .
  2. En el cuadro Búsqueda rápida, escriba Flujos .
  3. Seleccione Flujos, luego haga clic en Nuevo flujo .
  4. Seleccione el flujo de pantalla   opción y haga clic en Crear y configurar el flujo.
  5. Se abrirá el diseñador de flujo para usted.

Paso 3: agregue una variable de registro de tipo oportunidad

  1. En Caja de herramientas , seleccione Administrador, luego haga clic en Nuevo recurso para crear una variable de registro de tipo oportunidad para ver los campos disponibles
  2. Ingrese la siguiente información:
    1. Tipo de recurso : Variable
    2. Nombre de la API : varR_Opportunity
    3. Tipo de datos : Registro
    4. Objeto : Oportunidad
    5. Comprobar disponible para entrada
    6. Comprobar disponible para la salida
  3. Haga clic en Listo .

Paso 4: agregue un elemento de pantalla

  1. En Flow Designer, haga clic en el icono + y seleccione el elemento Pantalla .
  2. Ingrese la siguiente información :
    1. Ingrese la etiqueta, el nombre de la API se completará automáticamente.
  3. Haga clic en Listo .

Paso 4.1: Complete la variable de registro para agregar campos de registro a la pantalla

  1. En la sección Campos en Elemento de pantalla .
  2. Ingrese la siguiente información :
    1. Variable de registro : {!varR_Opportunity}

Paso 4.2: agregue el campo ID de cuenta en la pantalla

  1. En la sección Campos en Elemento de pantalla .
  2. Arrastre y suelte el ID de cuenta en la pantalla.
  3. Haga clic en Listo.

Al final, Edward's Flow se verá como la siguiente captura de pantalla:

Una vez que todo se vea bien, realice los siguientes pasos:

  1. Haga clic en Guardar .
  2. Ingrese la etiqueta de flujo, el nombre de la API se completará automáticamente.
  3. Haga clic en Mostrar avanzado .
  4. Versión de API para ejecutar el flujo : 57
  5. Etiqueta de la entrevista : Búsqueda: formulario dinámico para el flujo {!$Flow.CurrentDateTime}
  6. Haga clic en Guardar .

¡Casi ahí! Una vez que todo se vea bien, haga clic en el botón Activar .

Prueba de concepto

Evaluación formativa:

¡Quiero saber de ti!

¿Qué es una cosa que aprendiste de esta publicación? ¿Cómo imagina aplicar este nuevo conocimiento en el mundo real? Siéntase libre de compartir en los comentarios a continuación.

Esta es una traducción realizada por EGA Futura, y este es el link a la publicación original: https://automationchampion.com/2022/12/09/create-lookup-with-dynamic-forms-for-flow-2/

Categories
Developers

Archivar un canal de Slack con Flow

Última actualización el 5 de diciembre de 2022 por Rakesh Gupta

Gran idea o pregunta duradera:

  • ¿Cómo se archiva un canal de Slack con Salesforce Flow?
Los canales de Slack aportan orden y claridad al trabajo: puede crearlos para cada proyecto, tema o equipo. Cuando hay un canal para todo, puede concentrarse en las conversaciones y el trabajo que más le importan.
He escrito algunos artículos sobre Slack and Flow . ¿Por qué no echarles un vistazo mientras estás en ello?
  1. Publicar un mensaje en un canal de Slack usando Flow
  2. Enviar un mensaje directo de Slack usando Flow
  3. Crear un canal de Slack usando el flujo

En esta publicación de blog, iré un paso más allá y lo ayudaré a comprender cómo archivar canales flojos usando el flujo. Antes de leer este artículo, asegúrese de haber leído el artículo Crear un canal de Slack usando Flow .

Objetivos:

Después de leer este blog, podrá:  

  • Comprender cuándo usar la ruta Ejecutar asíncrono
  • Hacer llamadas externas a través de Flow
  • Use el elemento de decisión para verificar el valor de los campos de la cuenta
  • Archivar un canal de Slack usando el flujo
  • Y mucho más

Martin Jones trabaja como administrador de sistemas en Gurukul on Cloud (GoC) . Recientemente, GoC implementó la creación automática de un canal de Slack para una cuenta nueva. Ahora, la alta gerencia de GoC quiere implementar un proceso de archivo automático para el canal Slack de la cuenta:

  • Si una cuenta está marcada como fuera del negocio (que se puede identificar a través de un campo de casilla de verificación en el nombre de la cuenta, fuera del negocio ).

Requisitos previos:

  1. El primer paso es implementar Create A Slack Channel usando Flow .

Enfoque de Campeón de Automatización (I-do):

Agregue una ruta asincrónica a un flujo de flujo desencadenado por registro después de guardar para integrarse con un sistema externo y actualizar objetos externos sin escribir código. La ruta asíncrona se ejecuta después de que la transacción original para el registro desencadenante se confirme correctamente. Por ejemplo, utilice una ruta asincrónica para publicar un mensaje en Slack, actualizar un registro en Heroku o realizar un pedido mediante un sistema de cumplimiento de terceros.

Antes de discutir la solución, permítame mostrarle un diagrama de un flujo de proceso de alto nivel. Dedique unos minutos a repasar el siguiente diagrama de flujo y comprenderlo.

Comencemos a construir este proceso de automatización.

Práctica guiada (nosotros hacemos):

Hay 4 pasos para resolver el requisito empresarial de Martin mediante el flujo activado por registro . Debemos:

  1. Cree un campo de casilla de verificación personalizado (fuera del negocio por cuenta)
  2. Definir propiedades de flujo para el flujo desencadenado por registro
  3. Agregue un elemento de decisión para verificar el campo Id. de canal de Slack
  4. Agregar acción Archivar canal de Slack

Paso 1: crear un campo personalizado: fuera del negocio

  1. Haga clic en Configuración .
  2. En la interfaz de usuario, haga clic en Administrador de objetos .
  3. Navegar a Cuenta | Campos y relaciones y haga clic en el botón Nuevo .
  4. Haga clic en el tipo de datos Checkbox .
  5. Ingrese la etiqueta del campo, el nombre del campo se completará automáticamente.
  6. Haga clic en Desmarcado para el valor predeterminado .
  7. Agregue un campo en el diseño de página y otorgue acceso de campo a los perfiles deseados.
  8. Haga clic en Guardar .

Paso 2: Definir propiedades de flujo

  1. Haga clic en Configuración .
  2. En el cuadro Búsqueda rápida, escriba Flujos .
  3. Seleccione Flujos, luego haga clic en Nuevo flujo .
  4. Seleccione el flujo activado por registro opción, haga clic en Crear
    1. Objeto : Cuenta
    2. Activar flujo de oportunidad cuando : se crea o actualiza un registro
    3. Establecer criterios de entrada
      1. Requisitos de condición: se cumplen todas las condiciones (Y)
        1. Fila 1
          1. Campo: Fuera_del_negocio__c
          2. Operador: Igual
          3. Valor: {!$ConstanteGlobal.True}
    4. Cuándo ejecutar el flujo para registros actualizados : solo cuando un registro se actualiza para cumplir con los requisitos de la condición.
    5. Optimice el flujo para la acción y los registros relacionados
    6. Elija la opción para incluir una ruta de ejecución asincrónica para acceder a un sistema externo después de que la transacción original para el registro de activación se confirme con éxito .
  5. Haga clic en Listo .

Recuerda
  1. Las rutas asincrónicas están disponibles para los flujos desencadenados por registros que se ejecutan después de guardar el registro.
  2. Las opciones de ruta asincrónica solo están disponibles para los flujos que están configurados para ejecutarse solo cuando un registro se actualiza para cumplir con los requisitos de la condición o selecciona el operador Ha cambiado en una condición.
  3. Cuando un registro nuevo o actualizado activa su flujo para que se ejecute, una ruta asincrónica se pone en cola hasta que se ejecuta. Puede monitorear una ruta asíncrona en la página Flujo de trabajo basado en tiempo en Configuración.

Paso 3: usar el elemento de decisión para verificar el campo personalizado de ID de canal de Slack en la cuenta

Ahora usaremos el elemento Decisión para verificar si el campo Id. de canal de Slack de la cuenta está completo. Si el campo no se completa, no tomaremos más medidas.

  1. En Flow Designer, en la ruta Ejecutar asincrónicamente , haga clic en el icono + y seleccione el elemento Decisión .
  2. Introduzca un nombre en el campo Etiqueta ; el nombre de la API se completará automáticamente.
  3. En Detalles del resultado , ingrese la etiqueta que el nombre de la API se completará automáticamente.
  4. Requisitos de condición para ejecutar el resultado : se cumplen todas las condiciones (Y)
    1. Fila 1:
      1. Recurso : {!$Record.Slack_Channel_Id__c}
      2. Operador : es nulo
      3. Valor : {!$ConstanteGlobal.Falso}
  5. Cuándo ejecutar Resultado : Si se cumplen los requisitos de la condición .
  6. Haga clic en Listo .

Paso 4: Agregue la acción Archivar canal de Slack

Ahora usaremos la acción Archivar canal de Slack para archivar el canal de Slack de la cuenta.

  1. En Flow Designer, debajo del nodo , haga clic en el icono + y seleccione el elemento Acción .
  2. Busque y seleccione Archivar canal de Slack en el menú desplegable
  3. Introduzca un nombre en el campo Etiqueta ; el nombre de la API se completará automáticamente.
  4. Establecer valores de conexión para Slack
    1. Aplicación de Slack: Sales Cloud para Slack
    2. Espacio de trabajo de Slack: campeón de la automatización (su espacio de trabajo de Slack)
    3. Ejecutar acción como: aplicación Slack
  5. Establecer detalles del canal Slack
    1. ID de canal de Slack: {!$Record.Slack_Channel_Id__c}
  6. Haga clic en Listo .


Al final, Martin's Flow se verá como la siguiente captura de pantalla:

Una vez que todo se vea bien, realice los siguientes pasos:

  1. Haga clic en Guardar .
  2. Ingresar   Caudal   etiqueta ; el nombre de la API se completará automáticamente.
  3. Haga clic en Mostrar avanzado .
  4. Versión de API para ejecutar el flujo : 56
  5. Etiqueta de la entrevista : Archivar un canal de Slack con Flow {!$Flow.CurrentDateTime}
  6. Haga clic en Guardar.

¡Casi ahí! Una vez que todo se vea bien, haga clic en el botón Activar .

Prueba de concepto

A partir de ahora, si un usuario comercial crea una nueva cuenta con una calificación alta, el guardado posterior activado por registro creará automáticamente un nuevo canal de Slack.

  1. Navegue a la cuenta nueva cuenta Jardine Matheson Ltd , como se muestra en la siguiente captura de pantalla:
  2. Ahora inicie sesión en Slack y consulte el canal de Slack .
  3. El ID de canal de Slack se almacena en el campo personalizado de la cuenta.
  4. La próxima vez, cuando un usuario actualice la cuenta Out_of_business__C a True , como se muestra en la siguiente captura de pantalla:
  5. El flujo activado por registro archiva automáticamente el canal Slack de la cuenta.

Evaluación formativa:

¡Quiero saber de ti!

¿Qué es una cosa que aprendiste de esta publicación? ¿Cómo imagina aplicar este nuevo conocimiento en el mundo real? Siéntase libre de compartir en los comentarios a continuación.

Esta es una traducción realizada por EGA Futura, y este es el link a la publicación original: https://automationchampion.com/2022/12/05/archive-a-slack-channel-using-flow-3/

Categories
Developers

Implemente la gamificación en su Salesforce

Última actualización el 22 de noviembre de 2022 por Rakesh Gupta

Gran idea o pregunta duradera:

¿Cómo puedo usar la ludificación en Salesforce para impulsar las ventas? ¿Cuáles son las formas de automatizar la gamificación?

Objetivos:

Después de leer esta publicación de blog, el lector podrá:

  • Cree un flujo que publicará automáticamente una insignia
  • Aprenda a usar un elemento de decisión para averiguar si una variable de registro o una variable de colección de registros contiene un registro
  • Utilice el elemento de decisión para validar los datos
  • Publicar automáticamente en Chatter
  • y mucho más

Martin Jones trabaja como administrador de sistemas en Gurukul On Cloud (GoC) . Su organización quiere implementar la gamificación para ayudar a impulsar el canal de ventas . Recibió un requerimiento de su gerente si una Oportunidad se cierra dentro de los 7 días de su creación, haga lo siguiente:

  • Entregue una insignia de Deal Maker al propietario de la oportunidad del vicepresidente sénior de ventas y marketing (es decir, Tushar Gupta)
  • Publique esta información en el perfil de Chatter del propietario de la oportunidad (vea la captura de pantalla)

Gamificación en Salesforce

Gamificación en Salesforce

Enfoque de Campeón de Automatización (I-do):

La gamificación es la utilización de mecánicas de juego (desafíos, competición, puntuación, etc.) en otros ámbitos de actividad. En los negocios, es una forma de aprovechar el espíritu competitivo de los representantes de ventas, el impulso creativo de los especialistas en marketing y el deseo de reconocimiento y la recompensa de todos los demás . Ayuda a su organización a impulsar la adopción de Salesforce mediante la aplicación de mecánicas de juego comprobadas para recompensar a los representantes de ventas por generar resultados comerciales reales .

Los tres pilares principales de la ludificación son Desafío , Competición y Reconocimiento . Podemos implementar la gamificación en Salesforce usando clics, no código . Existen múltiples soluciones posibles para el escenario empresarial anterior . Usaremos flujo activado por registro   para resolver el requisito comercial anterior. Antes de continuar, debe comprender los objetos mencionados a continuación en Salesforce .

  1. WorkBadge : – Este objeto contiene información sobre a quién se entregó la credencial y qué credencial se entregó.
  2. WorkThanks : este objeto representa la fuente y el mensaje de una publicación de agradecimiento.

Usaremos Flow para crear registros de WorkThanks, WorkBadge y Chatter Post. Para iniciar el flujo siempre que la oportunidad se cierre y se gane.

Antes de discutir la solución, permítame mostrarle un diagrama de un flujo de proceso de alto nivel. Dedique unos minutos a repasar el siguiente diagrama de flujo y compréndalo.

Comencemos a construir este proceso de automatización.

Práctica guiada (nosotros hacemos):

Hay 4 pasos para resolver el requisito de negocio de Martin utilizando Record-Triggered Flow . Debemos:

  1. Pasos para configurar work.com
  2. Creación de una etiqueta personalizada para almacenar el ID de usuario de SVP de Ventas y Marketing
  3. Creación de una etiqueta personalizada para almacenar la identificación de la insignia
  4. Pasos de flujo de Salesforce:
    1. Definir propiedades de flujo
    2. Agregar una variable de texto para construir un mensaje de publicación de Chatter
    3. Crear una fórmula para calcular los días transcurridos
    4. Utilice un elemento de decisión para comprobar los días transcurridos
    5. Agregue un elemento de creación de registros: cree un registro de agradecimiento (WorkThanks)
    6. Agregue un elemento de creación de registros: cree un registro de insignia recibida (Insignia de trabajo)
    7. Agregue un elemento de creación de registros: publique una insignia de agradecimiento en Chatter

Paso 1: Configurar Work.com

Siga los pasos proporcionados por Salesforce para configurar work.com (algo de esto deberá hacerse en Classic).

    1. Asignar un administrador de Work.com
    2. Habilitar las funciones de Work.com
    3. Asignar conjuntos de permisos de Work.com

Paso 2: creación de una etiqueta personalizada para almacenar el ID del usuario de SVP de ventas y marketing

Para almacenar la identificación del vicepresidente sénior de ventas y marketing, necesitamos obtener la identificación de usuario **Alternativamente, podría crear una variable para la identificación del usuario específico, pero es una buena práctica no codificar las identificaciones de usuario**

  1. Haga clic en Configuración .
  2. En el cuadro Búsqueda rápida, escriba Etiquetas personalizadas .
  3. Haga clic en el botón Nueva etiqueta personalizada .
  4. Ingrese una descripción breve , el nombre se completará automáticamente.
  5. Ahora ingrese el ID de usuario de SVP Tushar en el valor .
    1. En Developer Console Query Editor, ejecute la siguiente consulta SOQL para obtener el ID de usuario de SVP de Ventas y Marketing
      1. seleccione la identificación del usuario donde userrole.Name='SVP, Sales & Marketing'
  6. Haga clic en Guardar.

Paso 3: crear una etiqueta personalizada para almacenar la identificación de la insignia

Ahora crearemos una Variable para almacenar BadgeId , en este caso, Badge Deal Maker .

  1. Haga clic en Configuración .
  2. En la interfaz de usuario, escriba Etiquetas personalizadas .
  3. Haga clic en el botón Nueva etiqueta personalizada .
  4. Ingrese una descripción breve , el nombre se completará automáticamente.
  5. Ahora ingrese la identificación de la insignia del creador de tratos en el valor .
    1. En Developer Console Query Editor, ejecute la siguiente consulta SOQL para obtener el Id. de la insignia del creador de tratos
      1. seleccione id de WorkBadgeDefinition donde Nombre = 'Deal Maker'
  6. Haga clic en Guardar.

Paso 4.1: Definir propiedades de flujo

  1. Haga clic en Configuración .
  2. En el cuadro Búsqueda rápida, escriba Flujos .
  3. Seleccione Flujos, luego haga clic en Nuevo flujo .
  4. Seleccione la opción Record-Triggered Flow , haga clic en Create y configure el flujo de la siguiente manera:
    1. Objeto: Oportunidad
    2. Activar el flujo cuando: se crea o actualiza un registro
    3. Establecer criterios de entrada
      1. Requisitos de condición: Ninguno
    4. Optimice el flujo para la acción y los registros relacionados
  5. Haga clic en Listo .

Paso 4.2: Agregue una variable de texto para crear un mensaje de publicación de Chatter

  1. En Caja de herramientas , seleccione Administrador y luego haga clic en Nuevo recurso para crear un mensaje para la publicación de Chatter. También puede utilizar la plantilla de texto.
  2. Ingrese la siguiente información:
    1. Tipo de recurso : Variable
    2. Nombre de la API : varT_Message
    3. Tipo de datos : Texto
    4. Valor predeterminado : ¡Felicitaciones! Acaba de obtener la insignia de Deal Maker por cerrar la Oportunidad “{!$Record.Name} ” dentro de los {!Day_Elapsed} días de su creación.
    5. Comprobar disponible para entrada
    6. Comprobar disponible para la salida
  3. Haga clic en Listo .

Paso 4.3: Cree una fórmula para calcular el tiempo transcurrido

  1. En Caja de herramientas , seleccione Administrador y luego haga clic en Nuevo recurso para calcular el tiempo transcurrido.
  2. Ingrese la siguiente información:
    1. Tipo de recurso : Fórmula
    2. Nombre de la API : forN_ElapsedTime
    3. Tipo de datos : Número
    4. Lugares decimales : 2
    5. Fórmula: {!$Record.LastModifiedDate} – {!$Record.CreatedDate}
  3. Haga clic en Listo .

Paso 4.4: uso del elemento de decisión para comprobar los días transcurridos

Ahora usaremos el elemento Decisión para verificar la etapa de oportunidad y el tiempo transcurrido.

  1. En Flow Designer, haga clic en el icono + y seleccione el elemento Decisión .
  2. Introduzca un nombre en el campo Etiqueta ; el nombre de la API se completará automáticamente.
  3. En Detalles del resultado , ingrese la etiqueta que el nombre de la API se completará automáticamente.
  4. Requisitos de condición para ejecutar el resultado : se cumplen todas las condiciones (Y)
    1. Fila 1:
      1. Recurso: {!forN_ElapsedTime}
      2. Operador: Menor que o Igual
      3. Valor: 7
    2. Haga clic en Agregar condición
    3. Fila 2:
      1. Recurso: {!$Record.StageName}
      2. Operador: Igual
      3. Valor: Cerrado Ganado
  5. Haga clic en Listo .

Paso 4.5: Crear registros: crear un registro de agradecimiento (WorkThanks)

Si el tiempo necesario para cerrar con éxito un trato es inferior a 7, el siguiente paso es crear un registro de WorkThanks .

  1. En Flow Designer, debajo del nodo <= 7 , haga clic en el icono + y seleccione el elemento Crear registros .
  2. Introduzca un nombre en el campo Etiqueta ; el nombre de la API se completará automáticamente.
  3. Ingrese la siguiente información :
    1. Cuántos registros crear : uno
    2. Cómo establecer los campos de registro : use recursos separados y valores literales
    3. Objeto : TrabajoGracias
    4. Establecer valores de campo para las gracias
    5. Fila 1:
      1. Campo : ID de proveedor
      2. Valor : {!$Etiqueta.SVP_Tushar_User_Id}
    6. Haga clic en Agregar fila
    7. Fila 2:
      1. Campo : Mensaje
      2. Valor : {!varT_Message}
  4. Haga clic en Listo .

Paso 4.6: Crear registros: crear un registro de credencial recibida (credencial de trabajo)

El siguiente paso es crear un registro de insignia de trabajo .

  1. En Flow Designer, haga clic en el icono + y seleccione el elemento Crear registros .
  2. Introduzca un nombre en el campo Etiqueta ; el nombre de la API se completará automáticamente.
  3. Ingrese la siguiente información :
    1. Cuántos registros crear : uno
    2. Cómo establecer los campos de registro : use recursos separados y valores literales
    3. Objeto : Insignia recibida
    4. Establecer valores de campo para la insignia recibida
    5. Fila 1:
      1. Campo : ID de definición
      2. Valor : {!$Label.Deal_Maker_Badge_Id}
    6. Haga clic en Agregar fila
    7. Fila 2:
      1. Campo : ID del destinatario
      2. Valor : {!$Record.OwnerId}
    8. Haga clic en Agregar fila
    9. Fila 3:
      1. Campo : Id . de origen
      2. Valor : { ! Create_WorkThanks_Record}
  4. Haga clic en Listo .

Paso 4.7: Crear registros: publicar la insignia de agradecimiento en Chatter

El elemento final para crear es la publicación de Chatter.

  1. En Flow Designer, haga clic en el icono + y seleccione el elemento Crear registros .
  2. Introduzca un nombre en el campo Etiqueta ; el nombre de la API se completará automáticamente.
  3. Ingrese la siguiente información :
    1. Ingrese la etiqueta , el nombre de la API se completará automáticamente.
    2. Cuántos registros crear : uno
    3. Cómo establecer los campos de registro : use recursos separados y valores literales
    4. Objeto : elemento de alimentación
    5. Establecer valores de campo para el elemento de alimentación
    6. Fila 1:
      1. Campo : Cuerpo
      2. Valor : {!varTMessage}
    7. Haga clic en Agregar fila
    8. Fila 2:
      1. Campo : Creado por ID
      2. Valor : {!$Etiqueta.SVP_Tushar_User_Id}
    9. Haga clic en Agregar fila
    10. Fila 3:
      1. Campo : ID de padre
      2. Valor : {!$Record.Id}
    11. Haga clic en Agregar fila
    12. Fila 4:
      1. Campo : ID de registro relacionado
      2. Valor : {!Create_WorkThanks_Record}
    13. Haga clic en Agregar fila
    14. Fila 5:
      1. Campo : Tipo
      2. Valor : RypplePost
  4. Haga clic en Listo .

Al final, Martin's Flow se verá como la siguiente captura de pantalla:

Una vez que todo se vea bien, realice los siguientes pasos:

  1. Haga clic en Guardar .
  2. Ingrese la etiqueta de flujo , el nombre de la API se completará automáticamente.
  3. Haga clic en Mostrar avanzado .
  4. Versión de API para ejecutar el flujo : 56
  5. Etiqueta de entrevista : Implemente la gamificación en su fuerza de ventas: flujo {!$Flow.CurrentDateTime}
  6. Haga clic en Guardar .

¡Casi ahí! Una vez que todo se vea bien, haga clic en el botón Activar .

Prueba de concepto

Supongamos que un usuario comercial actualiza la Etapa de oportunidad a Cerrada ganada. En ese caso, el flujo de activación de registro se activará automáticamente y otorgará una insignia al propietario de la oportunidad si cierra la oportunidad en menos de 7 días.

  1. La tercera fase del generador de la planta de tejido de Burlington Textiles de oportunidad está en calificación de etapa y se creó el 17/03/2015 a las 12:54 a. m., como se muestra en la siguiente captura de pantalla: Información de oportunidades antes de la actualización
  2. Ahora actualice el estado de la oportunidad a Cerrada ganada y verifique su perfil de Chatter (Actualmente, estoy conectado como Brandon Schaefer ).

Salida final

Salida final

Práctica Independiente (Tú-haces):

Cree una automatización que publique la insignia Key Win en el Feed de un usuario cuando cierre una oportunidad por más de $25,000. La credencial debe provenir de un Ejecutivo de Ventas.

Evaluación formativa:

¡Quiero saber de ti!

¿Qué es una cosa que aprendiste de esta publicación? ¿Cómo imagina aplicar este nuevo conocimiento en el mundo real? Siéntase libre de compartir en los comentarios a continuación.

Esta es una traducción realizada por EGA Futura, y este es el link a la publicación original: https://automationchampion.com/2022/11/22/implement-gamification-to-your-salesforce/

Categories
Developers

Recetas para automatizar la administración de grupos de Chatter

Última actualización el 19 de octubre de 2022 por Rakesh Gupta

Gran idea o pregunta duradera:

  • ¿Cómo utilizar el flujo activado por registros para automatizar los trabajos comunes de administración de grupos de chat para mejorar la productividad?

Objetivos:

Chatter Group es una de las mejores maneras de impulsar la colaboración en su organización. Un grupo de Chatter representa un grupo de usuarios: se pueden agregar miembros ilimitados a un grupo de Chatter , pero un usuario puede unirse a un máximo de 100 grupos.

A continuación se muestran algunas tareas relacionadas con la pertenencia a grupos de Chatter que se pueden automatizar para mejorar la productividad.

  • Envíe notificaciones por correo electrónico a los propietarios o administradores de grupos cuando alguien se una a un grupo de Chatter.
  • Envíe notificaciones por correo electrónico a los propietarios o administradores de grupos cuando alguien abandone un grupo de Chatter.
  • Actualice automáticamente la frecuencia de correo electrónico del nuevo miembro para un grupo de Chatter.
  • Ascienda a un usuario al administrador del grupo de Chatter si pertenece a una función específica.

Es posible administrar estas tareas con la ayuda de Flow. Veamos cómo comenzar a trabajar de manera más inteligente abordando un caso de uso empresarial.

Maria Coleman trabaja como administradora de sistemas en Gurukul on Cloud (GoC). En GoC, usan Chatter ampliamente para colaborar internamente. María ha recibido tres requisitos de la alta dirección:

  1. Cuando alguien se une al grupo público de Chatter 'GoC Awesome People', establezca su frecuencia de correo electrónico en – Correo electrónico en cada publicación.
  2. Notificar al propietario del grupo cuando alguien se una al grupo.
  3. Cuando un usuario se une a GoC Awesome People Group y pertenece al rol de 'Atención al cliente, internacional', ascienda automáticamente a administrador del grupo.

Enfoque de Campeón de Automatización (I-do):

Hay algunas soluciones posibles para el escenario empresarial anterior . Usaremos Record-Triggered Flow para resolver el requisito.

Antes de continuar, comprendamos las características de CollaborationGroupMember : representa a un miembro de un grupo de Chatter.

Nombre del campo Detalles
NotificaciónFrecuencia La frecuencia con la que Salesforce envía resúmenes de correos electrónicos de grupos de Chatter a este miembro. Los valores válidos son:

  • D -Diario
  • W -Semanal
  • N —Nunca
  • P —En cada publicación
ColaboraciónRol El papel de un miembro del grupo. Los valores válidos son:

  • Estándar: indica que un usuario es miembro del grupo. Los miembros pueden publicar y comentar en el grupo.
  • Admin : indica que un usuario es un administrador de grupo. Los administradores pueden publicar y comentar, cambiar las funciones de los miembros, editar la configuración del grupo, agregar y eliminar miembros, eliminar publicaciones y comentarios, y editar el campo de información del grupo.

Antes de discutir la solución, permítame mostrarle un diagrama de un flujo de proceso de alto nivel. Dedique unos minutos a repasar el siguiente diagrama de flujo y comprenderlo.

Comencemos a construir este proceso de automatización.

Práctica guiada (nosotros hacemos):

Hay 3 pasos para resolver el requisito empresarial de María utilizando el flujo activado por registros antes de guardar y después de guardar. Debemos:

  1. Crear un grupo público y un grupo de chat
  2. Pasos de flujo de Salesforce:
    1. Definir las propiedades de flujo para el flujo desencadenado por registros antes de guardar
    2. Crear una fórmula para ascender al miembro a administrador de grupo
    3. Agregar un elemento de asignación a los campos de miembros del grupo
  3. Pasos de flujo de Salesforce:
    1. Definir las propiedades de flujo para el flujo desencadenado por registros después de guardar
    2. Agregue una plantilla de texto para construir el cuerpo del correo electrónico
    3. Agregue una acción principal Enviar correo electrónico para enviar un correo electrónico

Paso 1: Cree un grupo público y un grupo de Chatter

  1. En primer lugar, cree un grupo de Chatter público GoC Awesome People .

Paso 2.1: Definir las propiedades del flujo (antes de guardar el flujo)

  1. Haga clic en Configuración .
  2. En el cuadro Búsqueda rápida, escriba Flujos .
  3. Seleccione Flujos, luego haga clic en Nuevo flujo .
  4. Seleccione la opción Record-Triggered Flow , haga clic en Create y configure el flujo de la siguiente manera:
    1. Objeto: CollaborationGroupMember
    2. Activar el flujo cuando: se crea un registro
    3. Establecer criterios de entrada
      1. Requisitos de condición: Ninguno
    4. Optimice el flujo para actualizaciones de campo rápidas
  5. Haga clic en Listo .

Paso 2.2: Cree una fórmula para promover al miembro a administrador de grupo

  1. En Caja de herramientas , seleccione Administrador y, a continuación, haga clic en Nuevo recurso para determinar la función del miembro en función de su función de usuario.
  2. Ingrese la siguiente información:
    1. Tipo de recurso : Fórmula
    2. Nombre de API : forT_MemberRole
    3. Tipo de datos : Texto
    4. Fórmula : If( {!$UserRole.DeveloperName}=”CustomerSupportInternational”, “Admin”, “Standard”)
  3. Haga clic en Listo .

Paso 2.3. Uso del elemento de asignación para actualizar el campo de oportunidad

El siguiente paso es actualizar los campos CollaborationGroupMember con nuevos valores. Usaremos la Asignación   elemento, ya que estamos usando el flujo antes de guardar .

  1. En Flow Designer, haga clic en el icono + y seleccione el elemento Asignación .
  2. Introduzca un nombre en el campo Etiqueta ; el nombre de la API se completará automáticamente.
  3. Establecer valor variable
    1. Fila 1:
      1. Campo : {!$Record.CollaborationRole}
      2. Operador : Igual
      3. Valor : {!forT_MemberRole}
    2. Haga clic en Agregar tarea
    3. Fila 2:
      1. Campo : {!$Record.NotificationFrequency}
      2. Operador : Igual
      3. Valor : P
  4. Haga clic en Listo .

Al final, Maria's Flow se verá como la siguiente captura de pantalla:

Una vez que todo se vea bien, realice los siguientes pasos:

  1. Haga clic en Guardar .
  2. Ingrese la etiqueta de flujo   el nombre de la API se completará automáticamente.
  3. Haga clic en Mostrar avanzado .
  4. Versión de API para ejecutar el flujo : 56
  5. Etiqueta de la entrevista : miembro del grupo: antes de guardar el flujo {!$Flow.CurrentDateTime}
  6. Haga clic en Guardar .

¡Casi ahí! Una vez que todo se vea bien, haga clic en el botón Activar .

Paso 3.1: Definir las propiedades del flujo (después de guardar el flujo)

  1. Haga clic en Configuración .
  2. En el cuadro Búsqueda rápida, escriba Flujos .
  3. Seleccione Flujos, luego haga clic en Nuevo flujo .
  4. Seleccione la opción Record-Triggered Flow , haga clic en Create y configure el flujo de la siguiente manera:
    1. Objeto: CollaborationGroupMember
    2. Activar el flujo cuando: se crea un registro
    3. Establecer criterios de entrada
      1. Requisitos de condición: Ninguno
    4. Optimice el flujo para la acción y los registros relacionados
  5. Haga clic en Listo .

Paso 3.2: agregue una plantilla de texto para construir el cuerpo del correo electrónico

Ahora crearemos una plantilla de correo electrónico utilizando la plantilla de texto . La plantilla de texto le permite especificar los mensajes de varias líneas. También le permite utilizar código HTML.

  1. En Caja de herramientas , seleccione Administrador y luego haga clic en Nuevo recurso para crear una plantilla de texto.
  2. Ingrese la siguiente información:
    1. Tipo de recurso : plantilla de texto
    2. Nombre de la API : textT_EmailBody
    3. Seleccione Ver como texto enriquecido
    4. Cuerpo
      1. {!$User.FirstName}& ” ” &{!$User.LastName} se une a GoC Awesome People Chatter Group.
  3. Haga clic en Listo .

Paso 3.3: Agregue la acción Enviar correo electrónico para notificar al propietario del grupo

Ahora usaremos la acción estática Enviar correo electrónico para enviar un correo electrónico al propietario del grupo de Chatter.

  1. En Flow Designer, haga clic en el icono + y seleccione el elemento Acción .
  2. Busque y seleccione Enviar correo electrónico en el menú desplegable
  3. Etiquete la nueva acción Notificar al propietario.
  4. Establecer valores de entrada
    1. Cuerpo: {!textT_EmailBody}
    2. Asunto: Alguien se une a un grupo de Chatter
    3. Direcciones de correo electrónico (separadas por comas): {!$Record.CollaborationGroup.Owner.Email}
    4. Cuerpo con formato de texto enriquecido: {!$GlobalConstant.True}
  5. Haga clic en Listo .

Al final, Maria's Flow se verá como la siguiente captura de pantalla:

Una vez que todo se vea bien, realice los siguientes pasos:

  1. Haga clic en Guardar .
  2. Ingrese la etiqueta de flujo   el nombre de la API se completará automáticamente.
  3. Haga clic en Mostrar avanzado .
  4. Versión de API para ejecutar el flujo : 56
  5. Etiqueta de la entrevista : miembro del grupo: después de guardar el flujo {!$Flow.CurrentDateTime}
  6. Haga clic en Guardar .

¡Casi ahí! Una vez que todo se vea bien, haga clic en el botón Activar .

Prueba de concepto

La próxima vez que un usuario se una a un grupo de Chatter, los flujos activados por registros se activarán y (1) actualizarán la frecuencia de los correos electrónicos; (2) activar una notificación por correo electrónico al propietario del grupo; y (3), según la función de un usuario, también actualizará su función de grupo de Chatter.

  1. Inicie sesión como usuario activo con el Rol – Customer Support, International .
  2. Localice el grupo GoC Awesome People y haga clic en Unirse al grupo .
  3. El usuario ahora se convertirá en Administrador y recibirá notificaciones por correo electrónico en Cada publicación .
  4. Se envía un correo electrónico generado automáticamente.

Espero que haya disfrutado y encontrado valor en esta publicación de blog sobre la automatización de tareas relacionadas con la pertenencia a grupos de Chatter. Dominar estas habilidades mejorará su productividad y lo impulsará a probar varias permutaciones y combinaciones para incorporar la automatización en sus procesos y procedimientos cotidianos.

Evaluación formativa:

¡Quiero saber de ti!

¿Qué es una cosa que aprendiste de esta publicación? ¿Cómo imagina aplicar este nuevo conocimiento en el mundo real? Siéntase libre de compartir en los comentarios a continuación.

Esta es una traducción realizada por EGA Futura, y este es el link a la publicación original: https://automationchampion.com/2022/10/18/getting-started-with-process-builder-part-82-email-notification-when-a-user-joins-chatter-group/

Categories
Developers Salesforce

Simplemente diga NO a la identificación codificada

Última actualización el 19 de octubre de 2022 por Rakesh Gupta

Gran idea o pregunta duradera:

  • ¿Cómo puede evitar la codificación rígida de ID en Salesforce Flow?

Objetivos:

Esta publicación de blog nos ayudará a comprender lo siguiente

  • Comprender cómo usar etiquetas personalizadas para evitar el código duro de identificación en el flujo
  • Comprender cómo usar la configuración personalizada para evitar el código duro de identificación en el flujo
  • Comprender cómo usar tipos de metadatos personalizados para evitar el código duro de ID en el flujo

Donna Serdula trabaja como administradora de sistemas en Gurukul On Cloud (GoC) . Ha recibido un requisito de la administración cada vez que se crea una cuenta para la industria sin fines de lucro , crea automáticamente un caso y lo asigna a la cola de expertos sin fines de lucro para verificar el estado sin fines de lucro de la organización.

Enfoque de Campeón de Automatización (I-do):

Sí, a veces es una buena idea codificar los valores (por ejemplo, mientras se aprende Apex o Salesforce Flow o codificar el valor circular , es decir, 3.14), pero no existe una regla simple sobre cuándo; depende completamente del contexto. Si está codificando el valor de la constante gravitacional de la tierra, a nadie le va a importar. Si codifica la ID del registro (cola, grupo o ID de registro de Salesforce, etc.), tendrá problemas.

Una y otra vez, veo código de Apex o flujos que contienen identificaciones codificadas, ya sea el campo Descripción , una identificación de usuario o incluso una identificación de grupo, etc. El problema con los ID de codificación rígida es que cualquier cambio debe realizarse en el Flujo mismo, probarse nuevamente y luego implementarse en la organización de producción.

Los ID de registro pueden cambiar, por ejemplo, entre un espacio aislado y un entorno de producción . Es posible que una cola (expertos sin fines de lucro) tenga una ID diferente en un sandbox y una organización de producción .

Ahora puede consultar la identificación de la cola de expertos sin fines de lucro mientras crea un caso a través de Salesforce Flow.

El problema con este enfoque ( ID de cola de codificación fija ) es que, si está desarrollando en Sandbox, los ID de la cola recién creada cambiarán cuando llegue a Producción y tendrá que volver a trabajar.

–> De acuerdo con las mejores prácticas de Salesforce, todos le sugerirán que no codifique las identificaciones, consulte por ellas . Siempre es bueno seguir las mejores prácticas de Salesforce cuando sea posible.

Entonces, ¿qué sigue? ¿Cómo evitar la codificación rígida de ID en los flujos?

Algunas de las formas de evitar la codificación rígida son las siguientes

  1. Etiqueta personalizada : las etiquetas personalizadas son valores de texto personalizados a los que se puede acceder desde clases de Apex, páginas de Visualforce, flujos o componentes Lightning. Al implementar una etiqueta personalizada, sus datos también se implementan. Para evitar un comportamiento inesperado, asegúrese de actualizar el valor de la etiqueta personalizada después de la implementación.
  2. Configuración personalizada : – Las configuraciones personalizadas son variables que usa en su código pero establece y modifica fuera de su código. Los ajustes personalizados se almacenan en caché. Es especialmente útil para almacenar información a la que se accederá con frecuencia desde el código Apex o Flow, ya que funcionará mejor que un objeto personalizado. No cuenta contra los límites de SOQL cuando se recupera . La configuración personalizada   no trae datos cuando los implementa.
  3. Tipo de metadatos personalizados : los tipos de metadatos personalizados son similares a la configuración personalizada. Al implementar un tipo de metadatos personalizado, sus datos también se implementan.

Antes de discutir la solución, permítame mostrarle un diagrama de un flujo de proceso de alto nivel. Dedique unos minutos a repasar el siguiente diagrama de flujo y comprenderlo.

Comencemos a construir este proceso de automatización.

Práctica guiada (nosotros hacemos):

Hay 2 pasos para resolver el requisito empresarial de Donna utilizando el flujo activado por registro después de guardar . Debemos:

  1. Crear una cola de expertos sin fines de lucro
  2. Pasos de flujo de Salesforce:
    1. Definir propiedades de flujo
    2. Fórmula para determinar si el registro se crea o actualiza
    3. Agregar un elemento de decisión para la industria de cuentas de cheques
    4. Agregue un elemento de obtención de registro para encontrar el ID de la cola
    5. Agregue un elemento de decisión para verificar la cola encontrada o no
    6. Agregue un elemento de creación de registros para crear un nuevo caso

Paso 1: Crear una cola Expertos en organizaciones sin fines de lucro

  1. Haga clic en Configuración .
  2. En la interfaz de usuario, escriba Colas .
  3. Haga clic en el botón Nuevo .
  4. Ingrese la etiqueta , el nombre de la cola se completará automáticamente.
  5. Haga clic en Guardar.

Paso 2.1: Definir propiedades de flujo

  1. Haga clic en Configuración .
  2. En el cuadro Búsqueda rápida, escriba Flujos .
  3. Seleccione Flujos, luego haga clic en Nuevo flujo .
  4. Seleccione la opción Record-Triggered Flow , haga clic en Create y configure el flujo de la siguiente manera:
    1. Objeto: Cuenta
    2. Activar el flujo cuando: se crea o actualiza un registro
    3. Establecer criterios de entrada
      1. Requisitos de condición: Ninguno
    4. Optimice el flujo para la acción y los registros relacionados
  5. Haga clic en Listo .

Paso 2.2: fórmula para determinar si el usuario está creado o actualizado

  1. En Caja de herramientas , seleccione Administrador y, a continuación, haga clic en Nuevo recurso para determinar si el registro es nuevo o antiguo.
  2. Ingrese la siguiente información :
    1. Tipo de recurso : Fórmula
    2. Nombre de API : forB_IsNew
    3. Tipo de datos : booleano
    4. Fórmula : EsNuevo()
  3. Haga clic en Listo .

Paso 2.3: agregue un elemento de decisión para verificar la industria de la cuenta

Usaremos el elemento Decisión para verificar si la industria de la cuenta no tiene fines de lucro.

  1. En Flow Designer, haga clic en el icono + y seleccione el elemento Decisión .
  2. Introduzca un nombre en el campo Etiqueta ; el nombre de la API se completará automáticamente.
  3. En Detalles del resultado , ingrese la etiqueta que el nombre de la API se completará automáticamente.
  4. Requisitos de condición para ejecutar el resultado : se cumplen todas las condiciones (Y)
    1. Fila 1:
      1. Recurso: {!$Record.Industry}
      2. Operador: Igual
      3. Valor: sin fines de lucro
    2. Haga clic en Agregar tarea
    3. Fila 2:
      1. Recurso : {!forB_IsNew}
      2. Operador : Igual
      3. Valor : {!$ConstanteGlobal.Verdadero}
  5. Cuándo ejecutar Resultado : Si se cumplen los requisitos de la condición .
  6. Haga clic en Listo .

Paso 2.4: agregue un elemento Obtener registro para encontrar el ID de cola para expertos sin fines de lucro

El siguiente paso es encontrar la Cola de expertos sin fines de lucro.

  1. En Flow Designer, debajo del nodo Sin fines de lucro , haga clic en el icono + y seleccione el elemento Obtener registros .
  2. Introduzca un nombre en el campo Etiqueta ; el nombre de la API se completará automáticamente.
  3. Seleccione el objeto Grupo de registros de la lista desplegable.
  4. Seleccione Se cumplen todas las condiciones (Y) .
  5. Establecer condiciones de filtro
    1. Fila 1:
      1. Campo : Nombre
      2. Operador : Igual
      3. Valor : Expertos en organizaciones sin fines de lucro
    2. Haga clic en Agregar condición
    3. Fila 2:
      1. Campo : Tipo
      2. Operador : Igual
      3. Valor : cola
  6. Cuántos registros almacenar:
    1. Seleccione Solo el primer registro
  7. Cómo almacenar datos de registro:
    1. Elija la opción para Almacenar automáticamente todos los campos .
  8. Haga clic en Listo .

Paso 2.5: agregue un elemento de decisión para verificar la cola desde la variable de registro

Ahora usaremos el elemento Decisión para verificar la variable de registro del paso 2.4 para encontrar si devuelve la cola o no.

  1. En Flow Designer, haga clic en el icono + y seleccione el elemento Decisión .
  2. Introduzca un nombre en el campo Etiqueta ; el nombre de la API se completará automáticamente.
  3. En Detalles del resultado , ingrese la etiqueta que el nombre de la API se completará automáticamente.
  4. Requisitos de condición para ejecutar el resultado : se cumplen todas las condiciones (Y)
    1. Fila 1:
      1. Recurso: {!Get_Queue}
      2. Operador: es nulo
      3. Valor: {!$ConstanteGlobal.Falso}
    2. Haga clic en Listo .

Paso 2.6: Crear registros: crear un caso y asignarlo a la cola sin fines de lucro

Para crear un caso y asignarlo a la cola de Expertos sin fines de lucro , usaremos el elemento Crear registros .

  1. En Flow Designer, haga clic en el icono + y seleccione el elemento Crear registros .
  2. Introduzca un nombre en el campo Etiqueta ; el nombre de la API se completará automáticamente.
  3. Ingrese la siguiente información :
    1. Cuántos registros crear : uno
    2. Cómo establecer los campos de registro : use recursos separados y valores literales
    3. Objeto : Caso
    4. Establecer valores de campo para el caso
      1. Fila 1:
        1. Campo : Estado
        2. Valor : Nuevo
      2. Haga clic en Agregar campo
      3. Fila 2:
        1. Campo : ID de propietario
        2. Valor : {!Get_Queue.Id}
      4. Haga clic en Agregar campo
      5. Fila 3:
        1. Campo : MonedaIsoCode
        2. Valor : USD
      6. Haga clic en Agregar campo
      7. Fila 4:
        1. Campo : Descripción
        2. Valor : verificar el estado sin fines de lucro de la organización
      8. Haga clic en Agregar campo
      9. Fila 5:
        1. Campo : ID de cuenta
        2. Valor : {!$Record.Id}
  4. Haga clic en Guardar .


Al final, Donna's Flow se verá como la siguiente captura de pantalla:

Una vez que todo se vea bien, realice los siguientes pasos:

  1. Haga clic en Guardar .
  2. Ingrese la etiqueta de flujo , el nombre de la API se completará automáticamente.
  3. Haga clic en Mostrar avanzado .
  4. Versión de API para ejecutar el flujo : 56
  5. Etiqueta de la entrevista : No codificar el ID {!$Flow.CurrentDateTime}
  6. Haga clic en Guardar .

¡Casi ahí! Una vez que todo se vea bien, haga clic en el botón Activar .

Prueba de concepto

A partir de ahora, si un usuario comercial crea una cuenta con Industria sin fines de lucro , el flujo activado por registro creará automáticamente un nuevo caso. Es hora de probar el proceso.

  1. Vaya a la pestaña Cuenta y cree una nueva cuenta para Industria sin fines de lucro , como se muestra en la siguiente captura de pantalla: Nueva cuenta sin fines de lucro
  2. Una vez hecho esto, haga clic en el botón Guardar n. Abrirá la página de detalles de la cuenta y verificará la lista relacionada con el caso, como se muestra en la siguiente captura de pantalla: Prueba de concepto

Evaluación formativa:

¡Quiero saber de ti!

¿Qué es una cosa que aprendiste de esta publicación? ¿Cómo imagina aplicar este nuevo conocimiento en el mundo real? Siéntase libre de compartir en los comentarios a continuación.

Esta es una traducción realizada por EGA Futura, y este es el link a la publicación original: https://automationchampion.com/2022/10/19/getting-started-with-process-builder-part-60-just-say-no-to-hard-coded-id/

Categories
Developers

Limite el número de sesiones simultáneas en Salesforce

Última actualización el 10 de octubre de 2022 por Rakesh Gupta

Gran idea o pregunta duradera:

  • ¿Cómo limitar el número de sesiones simultáneas para un usuario?

Objetivos:

Después de leer este blog, podrá:

  • Comprender las sesiones simultáneas y cómo identificarlas mediante Flow
  • Limite el número de sesiones simultáneas con flujos de inicio de sesión
  • Utilice la variable LoginFlow_ForceLogout
  • Trabajar con Obtener registros, Eliminar registros, Asignación y Elementos de pantalla
  • Y mucho más

Rachel Gillett trabaja como desarrolladora junior en Gurukul on Cloud (GoC). Ella ha recibido el siguiente requerimiento de la gerencia:

  1. Aplicar el número de sesiones simultáneas por usuario a uno.
  2. Proporcione la capacidad de eliminar su sesión anterior y comenzar una nueva sesión al iniciar sesión.

👉 demostración

Enfoque de Campeón de Automatización (I-do):

Las sesiones simultáneas de usuarios se refieren a la cantidad de sesiones interactivas basadas en la interfaz de usuario que un usuario individual puede tener abiertas y activas por cuenta de usuario. Los usuarios pueden crear varias sesiones de usuario al iniciar sesión en una cuenta desde diferentes tipos de navegadores y dispositivos.

Para mejorar la seguridad de la organización general de Salesforce, un administrador puede implementar un Flujo de inicio de sesión o usar la Política de seguridad de transacciones (requiere suscripciones complementarias de Salesforce Shield o Salesforce Event Monitoring) para limitar la cantidad de sesiones simultáneas para un usuario.

Hay algunas soluciones posibles para el escenario empresarial anterior . Usaremos Screen Flow y Login Flow para resolver el requisito.

Antes de continuar, comprendamos las características de un objeto AuthSession : representa una sesión de usuario individual en su organización.

Nombre del campo Detalles
ID de usuario Usuario
Identificación de los padres El ID de 18 caracteres para la sesión principal, si existe (por ejemplo, si la sesión actual es para una aplicación de lienzo). Si la sesión actual no tiene un padre, este valor es el ID de la sesión actual.
Tipo de sesión El tipo de sesión. Los más comunes son la interfaz de usuario, el contenido, la API y Visualforce.
Tipo de usuario El tipo de usuario para esta sesión. Los tipos incluyen Estándar, Socio, Administrador del portal de clientes, Portal de gran volumen y Solo CSN.

Antes de discutir la solución, permítame mostrarle un diagrama de un flujo de proceso de alto nivel. Dedique unos minutos a repasar el siguiente diagrama de flujo y comprenderlo.

Comencemos a construir este proceso de automatización.

Práctica guiada (nosotros hacemos):

Hay 7 pasos para resolver el requisito comercial de Rachel utilizando Screen Flow y Login Flow . Debemos:

  1. Definir propiedades de flujo para el flujo de pantalla
  2. Agregue un elemento Obtener registros para encontrar las sesiones del usuario que inició sesión
  3. Agregue un elemento de asignación para obtener el recuento de sesiones de usuarios registrados
  4. Agregue un elemento de Decisión para verificar si el conteo es mayor que 1 o no
  5. Agregue un elemento de pantalla para mostrar el mensaje y la opción de eliminar otras sesiones
  6. Agregue un elemento de decisión para verificar si el usuario desea eliminar otras sesiones
    1. Si se selecciona la opción:
      1. Agregue un elemento Obtener registros para encontrar la sesión actual del usuario que inició sesión
      2. Agregue un elemento Eliminar registros para eliminar otras sesiones
    2. Si se selecciona la opción NO:
      1. Agregue un elemento de asignación para forzar el cierre de sesión del usuario
  7. Configurar el flujo de inicio de sesión para usuarios con licencia de Salesforce Platform

👉 Considere usar tipos de metadatos personalizados para configurar la cantidad de sesiones actuales.

Paso 1: Definir propiedades de flujo

  1. Haga clic en Configuración .
  2. En el cuadro Búsqueda rápida, escriba Flujos .
  3. Seleccione Flujos, luego haga clic en Nuevo flujo .
  4. Seleccione el flujo de pantalla   opción y haga clic en Crear y configurar el flujo.
  5. Se abrirá el diseñador de flujo para usted.

Paso 2: Adición de un elemento Obtener registro para encontrar las sesiones del usuario que ha iniciado sesión

El siguiente paso es usar el objeto AuthSession para encontrar las sesiones del usuario que ha iniciado sesión.

  1. En Flow Designer, haga clic en el icono + y seleccione el elemento Obtener registros .
  2. Introduzca un nombre en el campo Etiqueta ; el nombre de la API se completará automáticamente.
  3. Seleccione el objeto Sesión de autenticación de la lista desplegable.
  4. Seleccione Se cumplen todas las condiciones (Y) .
  5. Establecer condiciones de filtro
    1. Fila 1:
      1. Campo : ID de usuario
      2. Operador : Igual
      3. Valor : {!$Usuario.Id}
    2. Haga clic en Agregar condición
    3. Fila 2:
      1. Campo : ID de padre
      2. Operador : es nulo
      3. Valor : {!$ConstanteGlobal.Verdadero}
    4. Haga clic en Agregar condición
    5. Fila 3:
      1. Campo : Tipo de sesión
      2. Operador : no es igual
      3. Valor : TempUIFrontdoor
    6. Haga clic en Agregar condición
    7. Fila 4:
      1. Campo : Tipo de sesión
      2. Operador : no es igual
      3. Valor : llamada de servicio interno
  6. Cuántos registros almacenar:
    1. Seleccionar todos los registros
  7. Cómo almacenar datos de registro:
    1. Elija la opción para Almacenar automáticamente todos los campos .
  8. Haga clic en Listo .

Paso 3: Adición de un elemento de asignación para encontrar el recuento de la sesión del usuario conectado

El siguiente paso es obtener el recuento de sesiones del usuario que ha iniciado sesión. Para ello, utilizaremos un elemento Asignación .

  1. Cree una variable numérica varN_SessionCount para almacenar el recuento.
  2. En Flow Designer, haga clic en el icono + y seleccione el elemento Asignación .
  3. Introduzca un nombre en el campo Etiqueta ; el nombre de la API se completará automáticamente.
  4. Establecer valores de variables
    1. Fila 1:
      1. Campo: {!varN_SessionCount}
      2. Operador: Igual
      3. Valor: {!Get_Sessions}
  5. Haga clic en Listo .

Paso 4: agregue un elemento de decisión para verificar si el recuento de sesiones es mayor que 1 o no

Ahora usaremos el elemento Decisión para verificar la variable numérica del paso 3 para encontrar si el conteo es mayor que 1 o no.

  1. En Flow Designer, haga clic en el icono + y seleccione el elemento Decisión .
  2. Introduzca un nombre en el campo Etiqueta ; el nombre de la API se completará automáticamente.
  3. En Detalles del resultado , ingrese la etiqueta que el nombre de la API se completará automáticamente.
  4. Requisitos de condición para ejecutar el resultado : se cumplen todas las condiciones (Y)
    1. Fila 1:
      1. Recurso : {!varN_SessionCount}
      2. Operador : mayor que
      3. Valor : 1
  5. Haga clic en Listo .

Paso 5: agregue un elemento de pantalla para mostrar el mensaje y la opción para eliminar otras sesiones

  1. En Nodo de bloque , haga clic en el icono + y seleccione el elemento Pantalla en Flow Designer.
  2. Ingrese la siguiente información :
    1. Ingrese la etiqueta , el nombre de la API se completará automáticamente.
  3. Mira el video para obtener instrucciones paso a paso y algunos consejos.

Paso 6: agregue un elemento de decisión para verificar si el usuario desea eliminar las otras sesiones o no

Ahora usaremos el elemento Decisión para comprobar si el usuario ha seleccionado la casilla Cerrar sesión en todas las demás sesiones web en el paso 5 o no.

  1. En Flow Designer, haga clic en el icono + y seleccione el elemento Decisión .
  2. Introduzca un nombre en el campo Etiqueta ; el nombre de la API se completará automáticamente.
  3. En Detalles del resultado , ingrese la etiqueta que el nombre de la API se completará automáticamente.
  4. Requisitos de condición para ejecutar el resultado : se cumplen todas las condiciones (Y)
    1. Fila 1:
      1. Recurso : {!Sign_out_all_other_web_sessions}
      2. Operador : Igual
      3. Valor : {!$ConstanteGlobal.Verdadero}
  5. Haga clic en Listo .

Paso 6.1.1: Adición de un elemento Obtener registro para encontrar la sesión actual del usuario que ha iniciado sesión

El siguiente paso es usar el objeto AuthSession para encontrar la sesión actual del usuario conectado.

  1. En Nodo , haga clic en el icono + y seleccione el elemento Obtener registros en Flow Designer.
  2. Introduzca un nombre en el campo Etiqueta ; el nombre de la API se completará automáticamente.
  3. Seleccione el objeto Sesión de autenticación de la lista desplegable.
  4. Seleccione Se cumplen todas las condiciones (Y) .
  5. Establecer condiciones de filtro
    1. Fila 1:
      1. Campo : ID de usuario
      2. Operador : Igual
      3. Valor : {!$Usuario.Id}
    2. Haga clic en Agregar condición
    3. Fila 2:
      1. Campo : ID de padre
      2. Operador : es nulo
      3. Valor : {!$ConstanteGlobal.Verdadero}
    4. Haga clic en Agregar condición
    5. Fila 3:
      1. Campo : Tipo de sesión
      2. Operador : Igual
      3. Valor : interfaz de usuario
  6. Ordenar registros de sesión de autenticación
    1. Orden de clasificación: Descendente
    2. Ordenar por: Fecha de creación
  7. Cuántos registros almacenar:
    1. Seleccione Solo el primer registro
  8. Cómo almacenar datos de registro:
    1. Elija la opción para Almacenar automáticamente todos los campos .
  9. Haga clic en Listo .

Paso 6.1.2: agregue un elemento Eliminar registros para eliminar otras sesiones

  1. En Flow Designer, haga clic en el icono + y seleccione el elemento Eliminar registros .
  2. Introduzca un nombre en el campo Etiqueta ; el nombre de la API se completará automáticamente.
  3. Para Cómo encontrar registros para eliminar, seleccione Especificar condiciones .
  4. Seleccione la sesión de autenticación   objeto de la lista desplegable.
  5. Establecer condiciones de filtro
    1. Fila 1:
      1. Campo : ID de usuario
      2. Operador : Igual
      3. Valor : {!$Usuario.Id}
    2. Haga clic en Agregar condición
    3. Fila 2:
      1. Campo : ID de padre
      2. Operador : no es igual
      3. Valor : {!Get_Most_Recent_Session.Id}
    4. Haga clic en Agregar condición
    5. Fila 3:
      1. Campo : Identificación
      2. Operador : no es igual
      3. Valor : {!Get_Most_Recent_Session.Id}
  6. Haga clic en Listo .

Paso 6.2.1: agregar un elemento de asignación para forzar el cierre de sesión del usuario

El siguiente paso es eliminar la sesión actual del usuario a la fuerza. Para ello, utilizaremos un elemento Asignación .

  1. Cree una variable booleana LoginFlow_ForceLogout. Cuando esta variable se establece en true , el usuario se desconecta inmediatamente.
  2. En Sin nodo, haga clic en el icono + y seleccione el elemento Asignación en Flow Designer.
  3. Introduzca un nombre en el campo Etiqueta ; el nombre de la API se completará automáticamente.
  4. Establecer valores de variables
    1. Fila 1:
      1. Campo: {!LoginFlow_ForceLogout}
      2. Operador: Igual
      3. Valor: {!$ConstanteGlobal.True}
  5. Haga clic en Listo .
  6. Agregue un elemento de pantalla sin contenido.

Al final, Rachel's Flow se verá como la siguiente captura de pantalla:

Una vez que todo se vea bien, realice los siguientes pasos:

  1. Haga clic en Guardar .
  2. Introducir etiqueta de flujo ; el nombre de la API se completará automáticamente.
  3. Haga clic en Mostrar avanzado .
  4. Versión de API para ejecutar el flujo : 56
  5. Etiqueta de entrevista : Sesiones concurrentes excedidas   {!$Flow.CurrentDateTime}
  6. Haga clic en Guardar .

¡Casi ahí! Una vez que todo se vea bien, haga clic en el botón Activar .

Paso 8: Configure el flujo de inicio de sesión para usuarios con licencia de la plataforma Salesforce

  1. Haga clic en Configuración .
  2. En el cuadro Búsqueda rápida, escriba Flujos de inicio de sesión .
  3. Seleccione Flujos de inicio de sesión , luego haga clic en Nuevo .
  4. Seleccione el tipo   del menú desplegable Flujo .
  5. Ingrese Sesiones Concurrentes un Nombre .
  6. El siguiente paso es seleccionar Flujo , Licencia de usuario y Perfil . Siga los pasos como se muestra en la siguiente captura de pantalla:
  7. Haga clic en Listo .

Prueba de concepto

Mira el video para ver una demostración:

Evaluación formativa:

¡Quiero saber de ti!

¿Qué es una cosa que aprendiste de esta publicación? ¿Cómo imagina aplicar este nuevo conocimiento en el mundo real? Siéntase libre de compartir en los comentarios a continuación.

Esta es una traducción realizada por EGA Futura, y este es el link a la publicación original: https://automationchampion.com/2022/10/10/limit-the-number-of-concurrent-sessions-in-salesforce-3/

Categories
Developers

Restringir usuarios al cambiar de Lightning Experience a Classic

Última actualización el 6 de septiembre de 2022 por Rakesh Gupta

Lightning Experience es una experiencia de interfaz de usuario nueva, rápida y moderna de Salesforce. Lightning Experience comprende numerosas características nuevas y páginas completamente rediseñadas. Salesforce permite a los clientes cambiar de Lightning a Classic o viceversa mediante Switcher , como se muestra en la siguiente captura de pantalla .

Cambiar a Salesforce Classic
Cambiar a Salesforce Classic

Obtenga más información sobre cómo habilitar Lightning Experience para su organización navegando por el módulo Lightning Experience Trailhead . Comencemos con un caso de uso empresarial.

Cathal Murtagh trabaja como administrador de sistemas en Gurukul on Clou (GoC). Acaban de habilitar Lightning Experience para el perfil de EMEA de los representantes de ventas. Para asegurarse de que los usuarios de EMEA de los representantes de ventas adopten la nueva experiencia, desean deshabilitar la funcionalidad Cambiar a Salesforce Classic para que se vean obligados a utilizar la nueva Lightning Experience.

Enfoque de Campeón de Automatización (I-do):

Hay algunas soluciones posibles para el escenario comercial anterior, pero actualizaré los permisos del sistema en el perfil del usuario para resolver el requisito comercial anterior.

Empecemos:

  1. Haga clic en Configuración.
  2. En el cuadro Búsqueda rápida, escriba Perfiles.
  3. Seleccione Representantes de ventas EMEA.
  4. Haga clic en Editar.
  5. Busque Ocultar opción para cambiar a Salesforce Classic y haga clic en la casilla de verificación.
  6. Haga clic en Guardar.
  7. Aparecerá un cuadro de diálogo. Revise que los permisos sean correctos antes de hacer clic en Guardar .

Prueba de concepto

¡Revisemos nuestro trabajo! Inicie sesión como un usuario al que se le ha asignado el perfil EMEA de representantes de ventas. Ya no deberían poder cambiar de Lightning a Classic en el futuro.

Evaluación formativa:

¡Quiero saber de ti!

¿Qué es una cosa que aprendiste de esta publicación? ¿Cómo imagina aplicar este nuevo conocimiento en el mundo real? Siéntase libre de compartir en los comentarios a continuación.

Esta es una traducción realizada por EGA Futura, y este es el link a la publicación original: https://automationchampion.com/2022/09/06/restrict-users-on-switching-from-lightning-experience-to-classic-2/