Categorías
EGA Futura Academy Salesforce

Salesforce Flow » Gestión avanzada de Errores 💥

En este video te explicamos paso a paso, como dejar de sufrir los errores relacionados a Flow:

https://www.youtube.com/watch?v=l_NBTvy1o9M

 

Cuando se trata de flows en Salesforce, un error mal gestionado puede convertir una tarea sencilla en una pesadilla para el usuario.

Aquí un escenario clásico:

  • 1️⃣ Agregas nuevas reglas de validación en un objeto.
  • 2️⃣ Todo parece estar bien… hasta que un usuario ejecuta un flow relacionado.
  • 3️⃣ BOOM. Aparece un mensaje de error incomprensible.

El problema real?

Los mensajes de error no ayudan al usuario.

La solución?

  • ✅ Usar una pantalla personalizada para mostrar errores claros y accionables.
  • ✅ Crear una base de conocimiento con enlaces explicativos, para convertir un error en una oportunidad de aprendizaje.

Los errores son inevitables, pero la forma en que los manejamos define la experiencia del usuario.

No dejes de ver y guardar este video, que te servirá para implementar de manera detallada esta solución en tu empresa.

Introducción a este tutorial para administrar errores en Salesforce Flow

En el mundo de la tecnología y el desarrollo de software, el manejo de errores es una habilidad esencial para garantizar la eficiencia y la satisfacción del usuario. 

Un área clave donde esto se aplica es en la gestión de «flows» o flujos de trabajo en plataformas como Salesforce. 

En este reciente tutorial desde la Salesforce Tower, se exploró cómo manejar errores en estos flujos para evitar que los usuarios enfrenten mensajes de error confusos y frustrantes.

El tutorial se adentra en la problemática que surge cuando se implementan reglas de validación en un flujo ya en uso. 

Un escenario común es que, al agregar nuevas reglas de validación, los flujos pueden fallar, generando mensajes de error poco claros para el usuario. Francisco, uno de los participantes del tutorial, destacó que las reglas de validación y los triggers en APEX son causas frecuentes de estas fallas. El problema se agrava cuando el mensaje de error resultante no proporciona información útil al usuario.

Para abordar este desafío, se presentó una solución basada en el uso de «try-catch» en la configuración de flujos, similar a las prácticas de desarrollo tradicionales. Josué, otro experto en el tutorial, explicó cómo crear un flujo desde cero y cómo utilizar una pantalla personalizada para gestionar errores. La idea es permitir que el usuario reciba información clara sobre lo que está ocurriendo cuando algo sale mal, en lugar de dejarlo en la oscuridad.

Una de las estrategias recomendadas es la creación de una base de conocimiento que incluya enlaces a páginas explicativas sobre los errores. Esto no solo ayuda a los usuarios a entender el problema, sino que también proporciona una herramienta valiosa para los administradores al mantener actualizada la información sobre los errores. Esta práctica, como señaló uno de los participantes, mejora significativamente la experiencia del usuario al transformar una falla en una oportunidad de aprendizaje.

En resumen, el manejo de errores en flujos de trabajo es fundamental para mantener la eficiencia y la satisfacción del usuario en plataformas complejas como Salesforce. Al implementar estrategias como la gestión de errores a través de pantallas personalizadas y la creación de bases de conocimiento, los desarrolladores y administradores pueden mejorar la transparencia y efectividad de sus sistemas, asegurando que los usuarios no solo eviten el pánico, sino que también aprendan de cada experiencia.

Transcripción del video

[00:00:08.23] 
En este vídeo, hoy vamos desde la Salesforce Tower, particularmente, vamos a aprender cómo manejar errores de flow. Me van a acompañar en esta clase, en este tutorial, Esteban, Josué y Francisco. Vamos a entender [00:00:24.04] por qué es necesario administrar los errores en flow. Y voy a hacer una pequeña introducción. Construimos un flow hermoso, hacemos un deploy, empezamos a tener cientos de usuarios 

[00:00:40.07] utilizando ese flow y después viene un usuario de negocios, viene un C-level, viene un jefe y dice: Necesito un validation rule, necesito cuatro validation rules. Yo, particularmente, en un solo objeto he tenido clientes [00:00:56.01] en donde han pedido más de 10 validation Validation Rules apilándose una arriba de la otra. Pero, ¿qué pasa cuando hay flows creados con usuarios utilizando esos flows y de nuevo aparecen las validation rules? [00:01:11.13] El escenario más común es que explota el flow en la cara y el mensaje no es amistoso. Quiero preguntarle primero a Francisco, ¿cuáles son los casos más concretos que te tocó ver en relación a lo que acabo de decir [00:01:27.20] y en relación a cualquier de error que se pudo haber dado durante la ejecución de un flow.

[00:01:33.11] 
¿qué haces, Juanma? Sí, el más típico es el de las validation rules, cuando se pide validar algún campo que antes no era obligatorio y que ahora, por alguna condición, es obligatorio o que hay que pedirlo porque se pide con otro campo es decir, como un condicional, eso es lo más común. Después, lo que también pasa mucho [00:01:48.11] es que agregan validaciones en triggers de APEX o el mismo en otros flows, triggers ahora mucho, y eso también revienta. Y el problema con que reviente es que el mensaje que da el flow cuando trata de hacer un DML a la base de datos, cuando trata de [00:02:04.10] actualizar la información, es que no es para nada claro.

[00:02:06.23] 
Claro.

[00:02:08.05] 
Y el usuario viene preguntando después qué es lo que pasó. Y a veces lo deberían mitigar. Y a veces lo hacen de una manera amistosa. Eso es lo que viene a mitigar esta funcionalidad de data hat, que no es más que algo que existe en el código desde siempre, que es el famoso try-catch, trasladado a [00:02:23.09] desarrollo con float, que cada vez se parece más y tiene más herramientas parecidas al desarrollo como se hacía antes, digamos, con código.

[00:02:30.09] 
Okey. Josué, ¿a vos te tocó ver algún escenario de dolor a lo largo de tu vida? ¿Dolor de usuario? ¿Qué tal?

[00:02:37.13] 
Buenas tardes para todos. Buenos días. Sí, dolor he sentido muchas veces. Por lo general, lo que te encuentras cuando tienes procesos en pantallas que estos no usan.

[00:02:47.01] 
No estoy hablando de dolor en el corazón, dolor de usuario.

[00:02:49.17] 
No, no, no, para nada, para nada. Con usuario, donde lo que decía a friends, tienes algo ya implementado y dices: ¿Sabés qué? Se me ocurre que ahora, incluso en el ejemplo que vamos a dar, mi email va a ser desbloqueado Porque sí, ahora mis contactos tengan email. Y te pasan dos cosas. Una [00:03:04.17] es que a veces los usuarios no se enteraron, todos que ahora el email es obligatorio y está rompiendo y no sé qué pasa. O a veces que estás trabajando con registros que se crearon antes y que no tenían el mail y ahí están haciendo otra cosa. Es que me estoy olvidando. Estoy teniendo un error y no entiendo qué pasa. [00:03:20.14] Venimos a tapar eso y que: A ver, Salesforce me tiró una herramienta para que yo le pueda mostrar en pantalla qué está pasando y no sea como: Hay un error y tengo que buscar a mi administrador sistema. Si tenés ya 100 usuarios buscando el administrador de sistemas, y bueno, va a [00:03:36.00] doler. Y ha pasado.

[00:03:37.21] 
Entonces, vamos a empezar con la magia. Vamos a compartir pantalla y te vamos a explicar paso a paso cómo capturar errores de ejecución dentro de un flow.

[00:03:52.05] 
Entiendo que ya están viendo mi pantalla. Perfecto. Vamos a crear un nuevo flow. Vamos a comenzar a Scratch, va a ser un stream flow. Le vamos a dar a Crear, y bueno, acá ya tenemos [00:04:07.17] toda nuestra paleta para trabajar este flow. La idea de lo que vamos a hacer en este caso es permitirle al usuario, desde una pantalla custom, la creación de un contacto. Básicamente, es eso. Lo que vamos a hacer es crear [00:04:23.16] una variable de contacto. Contact to create. Es de tipo registro y es un contact. En este caso, solamente voy a tratar de crearlo utilizando [00:04:39.12] el email. Vamos a solicitar el email. Y por la cuestión de que no quiero que tengamos errores, una Rounds. Recuerden que la configuración de esta pantalla es totalmente amigable. Puedo yo seguir [00:04:56.05] sumando campos. En otros repitios nos veremos que podemos hacer de configuraciones extra sobre estos campos, pero básicamente, todo acá ya tengo mi formulario de creación de contacto. Y fíjense que es lo rápido que se pudo hacer. Entonces, yo voy a pedir a mis usuarios [00:05:12.00] una cuenta a la que se va a relacionar el contacto, el name un contacto y un email.

[00:05:16.23] 
Okey.

[00:05:20.02] 
De momento, creo que no necesitamos más que dejar un nombre ahí en los footers. Yo simplemente por costumbre, siempre saco en vez de pausar.

[00:05:30.15] 
Sí, esa es un excelente. Habrá que hacer todo un video de por qué sacar pausa.

[00:05:35.04] 
Totalmente. Totalmente de acuerdo.

[00:05:37.05] 
Eso lo veremos en otro futuro. Por default debería estar absolutamente prohibido y tendré que ser uno muy consciente de por qué permitir en un Screen Flow pausar todo ese proceso.

[00:05:50.05] 
Totalmente de acuerdo. Bien, continuando con el ejemplo, una vez que yo ya tengo la variable y mi pantalla para la captura de datos, lo que voy a hacer es un create record. Esto es nada más que Create Contact. Y lo que voy a utilizar acá [00:06:05.16] es desde mi Contact to Create, que es la variable que yo utilice, para poder generar ese contacto. Vamos a guardar esto como demo_contact_creation. Bien. Antes [00:06:21.12] de activarlo, yo siempre sugiero también tip de bubear, porque si no creo activo, voy a probar y después tengo 50 versiones del con pequeñas diferencias entre una versión de Ad. Claro. Bien. Entonces, ahora [00:06:37.08] esto sería una visual del formulario que yo armé. Recuerden que para los formularios tenemos section, podemos armar un call de unas En este caso, Farra, que digamos es de lo más simple. Acá podría buscar alguna de las cuentas que tengo en mi [00:06:52.18] ambiente. Bien, yo puedo seleccionar esta cuenta. Claro. Le quiero asociar el Client, el contacto, por favor. Señor, pastor, long name, nomical. Y acá vendría la prueba que vamos a utilizar. [00:07:08.21] Hacemos una pequeña pausa y les cuento que nuestras bambalinas me creé una validation call Muy bien.

[00:07:15.22] 
Vamos a a aforizar por las dudas.

[00:07:17.14] 
Esa es la validation rule que va a romper el flow, ¿verdad?

[00:07:22.06] 
Correcto. La idea es que en algún momento me dicen: Che, yo cuando quiero contactos, necesito que siempre tenga el email. ¿Qué hace un administrador de Salesforce, viene y dice: Okey, listo. Creo una variation rules donde evalúa si el email está en blanco. Vamos [00:07:37.18] a lanzar un error con el mensajito de que el email is mandated. En este momento, lo que yo voy a hacer es activar mi regla de terminación, porque lo tiene inactiva, y vamos a tratar de submitir el cambio que teníamos de este lado para [00:07:53.09] que genere un nivel contact. Si bien la cámara me acompaña, acá ocurrió un error y esto es lo que vería un Y acá fíjense que el usuario entraría en crisis, que ocurrió un error que no está controlado en el flow. En [00:08:09.08] pánico, en crisis.

[00:08:11.13] 
En pánico y en un ataque de enlace.

[00:08:14.07] 
Y en un ataque de violencia contra los administradores del sitef o a veces.

[00:08:18.15] 
El famoso admin, ¿no?

[00:08:20.10] 
Correcto. Fíjense que acá no me dice nada. Ocurrió un error cuando se estaba procesando el flujo. Por favor, contacte a su sistema administrator para más información. Esto es lo que queríamos mostrar que venimos a salvar. ¿Qué [00:08:35.16] vamos a hacer con nuestro flujo para que el usuario entienda qué es lo que está pasando? Vamos a volver a nuestro flujo y acá, dentro del conector de Create RAPIDM, que es lo que estábamos utilizando, lo que vamos a hacer es añadir un path [00:08:51.10] en caso de fallo. Exacto. Este sería nuestro truco para poder hacer manejo de errores. En el ejemplo que vamos a trabajar en este momento, lo único que vamos a hacer es agregar una pantalla donde vamos a hacer visible para el usuario [00:09:07.01] lo que está sucediendo. Sepamos que en ese manejo de errores podemos tener muchos otros comportamientos, como hacer un envío de email, enviarlos a otra pantalla para tomar el dato diferente. En este caso, lo único que queremos hacer es decirle al usuario: Mira, está pasando esto. Por [00:09:22.05] lo menos para que entienda qué tiene que hacer. Entonces, esta pantalla se va a llamar error, ándula.

[00:09:29.16] 
Lo La otra puntuación mientras mostrás eso, es que entonces la magia de nosotros como desarrolladores o como admins es entender todos los puntos donde puede haber una falla y tratar de, por lo menos, atajarlas primero genéricamente y después, específicamente.

[00:09:44.19] 
Sí, Y voy a tirar un concepto que es superimportante que todos los puedan implementar, que es crear una pequeña knowledge base con cualquier herramienta que tranquilamente podría ser [00:10:00.06] Confluence, por ejemplo, y en los mensajes de error, no solamente poner el mensaje de error, sino poner un link a esa página específica de Confluence en donde se explique por qué motivo estamos teniendo la pantalla. Y [00:10:15.20] eso, al tenerlo de manera totalmente externa, la configuración del flow, le da mucha independencia a los admins e incluso a los usuarios de negocios que puedan haber cambiado algo [00:10:31.08] para mantener actualizada esa página de Confluence que explique por qué ese error está apareciendo.

[00:10:38.18] 
Excelente. Yo me fui adelantando un poquito, fui armando una pantalla con un poco de mensaje a mi que nosotros podemos sumar como texto que va a estar… Como texto fijo que va a estar en la pantalla, pero fíjense que, además de escribir o [00:10:53.19] que ha ocurrido un error, aquí hay un poco de información, los flujos tienen una variable interna que se se llama fold message. El fold message sería el error que encontró Salesforce durante el procesamiento del flujo y vos la vas [00:11:08.21] a poder mostrar en pantalla.

[00:11:10.12] 
Muy bien.

[00:11:12.21] 
Incluso, yo he visto que en algunos casos de los otros, me ponen el texto en rojo. Una sugerencia mía es no usar en rojo porque asusta a los usuarios. Quizás pongan algo más bonito, pero en rojo es como señal de alarma. En fin, entonces, en [00:11:29.05] este Cierto. Entonces, vamos a guardar este flujo con este nuevo manejo de errores y vamos a devolvirlo. Vamos a arrancar a crear nuevamente nuestro [00:11:45.13] Bueno, le dejamos a la cuenta. Señor Ángel. Y en este caso, voy a volver a desear el email vacío para forzar que se vuelva a ejecutar nuestra nueva regla de validación. Y le damos a Y fíjense [00:12:00.23] que acá ya aparece un poco más de información de qué sucedió con nuestro contacto. Está el texto que pusimos nosotros como constante o no, ocurrió un error. Habrá habido un error, aquí hay un poco de información acerca del error y [00:12:16.16] esto es el valor que está en esa variable que les contaba. Básicamente, es el mensaje de error que tiene el flujo. Y lo que nos está diciendo que ocurrió cuando el flujo intentó crear un registro, saltó una validation rule, Y fíjense que acá tiene el mensaje de [00:12:32.03] la validation rule que yo e-mail y se manda.

[00:12:38.15] 
Excelente, Josué. Excelente. ¿Qué es lo que hay que hacer con este video? Número uno, vos Lo dejo a mirar. Número dos, ir poniéndolo en pausa para que a medida que vayas [00:12:53.19] replicando esto en tu flow, tengas la posibilidad de recrear lo que Osoé nos acaba de mostrar. Y antes de invitarlos a todos a nuestras clases en vivo de los jueves, 16 [00:13:09.22] horas, horario Buenos Aires, que es todos los jueves de por medio, antes de esa invitación, Josué ¿Nos querés contar algo más en relación a esto?

[00:13:18.16] 
No, creo que estamos.

[00:13:20.14] 
Yo tengo un tip que es tratar de entender que esto de atajar los errores, por lo general lo van a hacer en las operaciones de ML, o sea, cada vez que tengamos que actualizar insertar un registro en la base, muy importante tener esto en cuenta, porque si no, puede pasar eso de que falle [00:13:37.11] estrepitosamente. Por lo menos acá, falla exitosamente y lo atajamos. Muy importante eso.

[00:13:45.16] 
Es muy lindo el concepto de fallar exitosamente. Bueno, desde egafutura. Com/selfords, vas a tener la posibilidad de ver todo el esquema de clases en vivo. Estamos dando con Josué, con Fran [00:14:01.08] y con Esti. Jueves de por medio, 16 horas, horario Buenos Aires, y espero que te haya gustado y nos vemos en el próximo video.

Desde EGA Futura ayudamos a empresas usando Salesforce

  • A bajar costos y a aumentar facturación.
  • A digitalizar procesos.
  • A crear y poner en funcionamiento Agentes de IA.
  • A implementar nuestro ERP 100% nativo para Salesforce.

Contáctanos ahora: