Categorías
EGA Futura Academy Masterclass de Salesforce

Masterclass de Salesforce: Gestión de Errores en Flow

 

En el mundo de la tecnología y la gestión de datos, Salesforce se destaca como una plataforma poderosa para la gestión de relaciones con clientes (CRM). 

Sin embargo, su implementación eficaz requiere un manejo cuidadoso de posibles errores, especialmente en los procesos automatizados como los Flows. En una reciente masterclass de Salesforce, se exploraron técnicas avanzadas para la gestión de errores en Flow, proporcionando a los participantes herramientas valiosas para mejorar su eficiencia y efectividad en el uso de Salesforce.

La clase comenzó con una introducción animada, donde los instructores dieron la bienvenida a todos los participantes y destacaron la importancia del aprendizaje continuo en la comunidad de Salesforce. El enfoque principal de la sesión fue enseñar a los usuarios cómo manejar errores en Flows, una funcionalidad que permite automatizar procesos complejos dentro de la plataforma. La gestión de errores en Flows es crucial, ya que ayuda a prevenir interrupciones en las operaciones y mejora la experiencia del usuario final.

Durante la masterclass, se presentó un caso práctico donde los participantes aprendieron a crear un Flow que podría fallar intencionadamente para luego capturar y manejar ese error de manera efectiva. Se discutieron diferentes tipos de errores, como aquellos causados por reglas de validación o triggers de APEX, y se enseñaron técnicas para implementar un manejo de errores más robusto. La capacidad de mostrar mensajes de error personalizados a los usuarios y registrar estos errores para análisis futuros fue uno de los aspectos más apreciados de la sesión.

 

[00:00:00.18] – Hablante 1
Bien. Tancamos formalmente la clase de hoy. Francisco Morales, te doy la bienvenida. Josué Mendoza también. Bebé Corazón, que es Este, se está sumando en minutos. Recuerden que sigue vigente el sorteo de abrazos de Josué, que estaremos haciendo muy próximamente. Josué, decime algo lindo, ¿cómo estás?

[00:00:23.11] – Hablante 4
Algo lindo, vos. De segundo, ver tanta gente que se está sumando. Bienvenidos a todos. Espero que estén en dos como nosotros por…

[00:00:32.18] – Hablante 1
Okay, okay. Yesenya, bienvenida. Francisco, decime algo lindo, decime algo lindo.

[00:00:37.23] – Hablante 2
¿qué cosa es esa de pedir algo lindo? Qué fetiche.

[00:00:40.18] – Hablante 1
Muy bien. Más gente, Gustavo, bienvenido. No querés decirme algo lindo. ¿Podés decir algo lindo Josué? Josué está, pero…

[00:00:47.23] – Hablante 3
En otra vida quiero ser como Josué.

[00:00:50.14] – Hablante 2
Cuando seas grande, quiero ser como Josué.

[00:00:52.10] – Hablante 4
Okay, gracias.

[00:00:53.12] – Hablante 1
Muy bien. Nicolás, muy bienvenido a la clase. Hoy tenemos récord de registraciones. Me pongo loco de la alegría porque lo que vamos a aprender hoy es genial. No solamente genial por el tipo de funcionalidad que vamos a lograr dentro de la Salesforce org, en donde nos toque trabajar, sino también me pongo de alegría porque todos vamos a quedar como unos héroes, como unos ganadores, como unos resolucionadores de problemas, porque las soluciones que estamos enseñando son muy inteligentes porque que hacen mucho trabajo nuestro de invención y de maquinación detrás y no están en Tradeget. No están en Tradeget. Todo lo que aprendan acá no están en Tradeget y están abiertos los comentarios en el chat. Los que vean esta grabación, sorry, no van a poder ver las preguntas. Sí, le voy a pedir a Angie que, por favor, esté atenta a las preguntas en el chat. Si hay alguna pregunta técnica, nos vas avisando. La idea, que si hay una pregunta que vale la pena, la desarrollemos. Francisco, ¿por qué no me contás? ¡Llegó Bebé Corazón! ¿Qué hacés, Bebé Corazón? ¿Cómo estás? ¿Cómo bien? Pero deja que hable Bebé Corazón. ¿Cómo estás? Y sería que no se te escucha.

[00:02:11.01] – Hablante 2
Ahí sí, vos.

[00:02:12.08] – Hablante 1
Ahí sería como el Petit Short Clowny del equipo, que ya está. A partir de ahora, ahí no vamos a poner Esteba, vamos a poner Bebé Corazón. Francisco, ¿qué te parece si empezamos a tirar magia, compartimos pantalla y arrancamos? Parece que arrancamos creando un flow y lo hacemos estallar en el aire y vemos cómo ese estallamiento lo capturamos.

[00:02:37.10] – Hablante 2
Sí, vamos. Pero, perdón, ¿se escucha bien? Porque cambió el micrófono.

[00:02:40.17] – Hablante 1
Te escuchamos como onda, hermano, del corazón.

[00:02:43.12] – Hablante 2
Fijate ahí, si podés sacar de esto.

[00:02:45.01] – Hablante 5
Ahora sí… Si me desbotean, si no quieren que hablar.

[00:02:49.08] – Hablante 2
Es eso de facha y se bloquea el micrófono.

[00:02:51.13] – Hablante 5
No me voy a llamar.

[00:02:52.16] – Hablante 1
No muchas cosas para decir. Miren, lo que tienen que saber es que la plataforma que estamos usando para esta clase detecta belleza humana. Muy bien. Me pongo el loco. Bien. Vamos, Francisco.

[00:03:05.17] – Hablante 2
Voy a compartir la pantalla. Vamos a hacer entonces, haciendo como una especie de resumen. Voy a hacer un flow que explote por alguna cuestión que vamos a hacer nosotros mismos. Y esa explosión, primero vamos a ver cómo se ve, normalmente, con un flow sin manejo de errores. Y después, vamos a ver cómo se ve con una gestión de errores, digamos, ley de nivel inicial. Y después, vamos a ver cómo se ve eso con una gestión de errores un poco más avanzada. Vamos a compartir la pantalla, la poniendo en primera plana.

[00:03:35.23] – Hablante 1
Sí, es un truco maravilloso. Para los que quieran poder ver en pantalla completa. Aclaro que este truco maravilloso que nos va a compartir Josué, es solamente válido para las personas que están conectadas en vivo en este momento. Los que estén viendo la grabación en YouTube o en LinkedIn, simplemente maximice en pantalla de la manera tradicional en la que lo hace. Josué, ¿cuál es el truco que nos vas a contar?

[00:04:02.13] – Hablante 4
Bien, perfecto. Aprovecho y saluda a los chicas que van llegando. Gracias a todos por sumarse. Bien, para ver un poco más grande la pantalla de Fran, lo que vamos a hacer es, en la pantalla que está compartiendo él, olvídense del chat que va a entrar a la derecha. Y si ustedes tienen un panel izquierdo, olvídense. Está la pantalla de Fran, arriba a la derecha. Hay dos flechas que hacen así, una para arriba y una para abajo. Tocan ahí y van a poder ver en pantalla completa. ¿Podrías repetir cómo hacen las.?

[00:04:29.15] – Hablante 1
¿hacen Muy bien, muy bien. Saludos a Fede, que se acaba de conectar. Muy bien. Bienvenida, Fede. Bienvenidos a todos. Más gente, todavía me pongo loco. Seguimos, Frank. Hacen así.

[00:04:38.15] – Hablante 2
Vamos con las flechitas. Muy bien. Estoy parado sobre un contacto porque todo lo que hagamos hoy lo vamos a hacer sobre contactos. En este caso, me voy a usar a mí mismo de ejemplo. Vamos a crear un flow loco. El caso que voy a atacar ahora va a ser crear un contacto con los datos más básicos que pueda crear. Acá voy a buscar flows. Esta parte la voy a hacer un Un poquito rápido porque voy a dar por asumido que lo sabemos hacer. New Flow. En este caso, voy a hacer un flow de pantalla para crear un contacto.

[00:05:08.18] – Hablante 1
Un flow de pantalla. Yo te juro que es la primera vez que escucho que alguien dice: Voy a hacer un flow de pantalla. ¿Por qué no tirás Screen Flow?

[00:05:15.03] – Hablante 2
Screen Flow. Hoy, todas las quedadas que yo haga con el inglés, Angie las va a arreglar al final.

[00:05:21.18] – Hablante 1
Muy bien.

[00:05:23.19] – Hablante 2
Hacer Create, hacer Create. Arrancamos con el flow. Lo primero que voy a hacer es voy a hacer una pantalla para pedir datos. Perdón, voy a ir un paso para atrás. Voy a crear una variable, porque lo que yo quiero hacer con esta pantalla, es un ejemplo muy básico, es crear un contacto. Entonces, lo primero que voy a hacer es crear un nuevo curso, una nueva variable de tipo contacto. Me salió una alerta como que me pidieron compartir pantalla a alguien más. No sé si nos queda ahí.

[00:05:50.09] – Hablante 1
No, estamos perfectos. Solamente compartimos.

[00:05:53.12] – Hablante 2
Muy bien. Vamos a crear una variable que va a ser un tipo contacto. Vamos a poner new contact, registro, Y el objeto dijimos que va a ser… Tenemos creada nuestra variable. Ahora vamos a hacer una pantalla para crear ese contacto, para pedirle la información al usuario para crear ese contacto. Entonces, vamos a venir acá, vamos a crear una nueva pantalla.

[00:06:12.16] – Hablante 1
Qué bien ese efecto, ese efecto de zoom. ¿Está disponible en Windows? De todo uso Mac, pero ¿está disponible en Windows? ¿Es algo propio de Mac o es eso? ¿O es Google Chrome que lo permite hacer?

[00:06:25.12] – Hablante 2
No sabría. No sé si alguien que tiene Windows nos puede iluminar. En Mac es el doble clic del banco.

[00:06:31.22] – Hablante 4
Si no te lo investigo para le… Claro que sí.

[00:06:34.02] – Hablante 1
María Cecilia, ¿cómo estás? Bienvenida. María, gracias.

[00:06:37.02] – Hablante 2
Muy bien. Entonces, le vamos a poner un contacto a la pantalla, y haciendo las cosas que siempre digo que no hay que hacer. Y vamos a pedirle algunos campos de nuestra variable, la que recién creamos. Y lo primero que le vamos a pedir, creo que lo único obligatorio de caja es el apellido, se va a poner full name. Acá me salen los campos requeridos, entonces, vamos a darle el nombre completo. Y para el caso de lo que vamos a hacer ahora, también le voy a pedir el correo que de buenas a primeras, esto no es requerido, pero ahora lo vamos a hacer. Vamos a hacer que esto se rompa con una validation rule, para poder empezar a ver cómo se rompe en un flow que no tiene gestión de error.

[00:07:16.10] – Hablante 1
Yo tengo una hipótesis que quiero que me la analice Josu. Las validation rules son realmente muy potentes porque es como que están en el núcleo del objeto. Pero al mismo tiempo, son peligrosas, porque vos clavas una validation rule y si esa validation rule, intersecta Flow o APEX, rompe todo. No deberían tener algo que permitan detectar esas colisiones o conflictos, Josu.

[00:07:42.11] – Hablante 4
Estaría buenísimo que que va a que Salesforce ponga algo, pero ahí siempre está también la segunda vuelta que nosotros como consultores tenemos que ofrecer. Por ejemplo, es: Tengo que crear una validation rule para que todos mis contactos tengan mail, porque me lo están pidiendo. Listo, voy, quiero una validation rule. Quizás Fran ahora nos muestra cómo se armó una. El tema es: la creé, la pongo en producción y después se está ya todo por los aires. ¿Qué está pasando? ¿Cómo lo podemos anticipar? Primero TDD. ¿Qué es tener todas mis automatizaciones testeadas? Y segundo, yo no lo hago en producción. Por lo menos, tenés un sandbox, probálo, corre los tests y movélo. Porque con una validation rule superchiquita tiramos abajo una organización. Y me ha pasado.

[00:08:25.22] – Hablante 2
Yo tengo una historia que les quiero contar.

[00:08:31.04] – Hablante 1
Esta creo que la conté en LinkedIn muchísimo tiempo atrás. Estaba de vacaciones y un cliente me escribe un mensaje y me dice Juan Manuel: Las ventas se están calculando mal. Cientos de ventas. Eso es por tocar en producción. Para algo se inventó el sambo. Bien.

[00:08:47.12] – Hablante 2
Un aspecto de nube. Muy bien. Entonces, volviendo, tenemos una pantalla. Vamos a pedir el nombre, que es el único dato obligatorio, y vamos a pedir el correo, que no es obligatorio y que en En este caso no va a pasar nada. Una cosa que hice ahí mientras se decían cosas lindas entre Juanma y Josué, perdí el control de la pantalla.

[00:09:10.23] – Hablante 5
Te voy a dar una Después de que era el te juro.

[00:09:16.05] – Hablante 2
Después de que estaba como haciendo… Estamos haciendo cosas lindas entre ellos?

[00:09:18.12] – Hablante 5
Para no se dar cuenta.

[00:09:19.13] – Hablante 2
Ahí estamos.

[00:09:20.10] – Hablante 1
Crescer de corazón, estás como administrador de la clase. Ojo, no contada.

[00:09:24.13] – Hablante 5
O sea que eché a cinco personas sin querer.

[00:09:26.12] – Hablante 2
Ahí estamos de vuelta, ¿no? Ahí se ve. Bien, mientras decían cosas lindas y mientras este me sacaba el control, le saqué al footer el famoso botón de pausa, que un día vamos a hacer una para explicar eso, pero lo sacamos.

[00:09:40.20] – Hablante 1
En algún momento Salesforce cobraba por la cantidad de flows que tenía pausado. Es un delirio. Es un delirio. Y segundo delirio, ¿a quién se le ocurre pausar un flow? Ese botón. Yo pienso… Escuchen, voy a bardear. Pienso que tal vez algún equipo de desarrollo tuvo que justificar cierta cantidad de horas o cierto presupuesto y dijo: Che, intentemos pausar un flow. Polémico, entonces. Bien.

[00:10:05.12] – Hablante 2
Muy bien. Entonces, tenemos la pantalla nueva. Lo que deberíamos hacer ahora es… Bueno, esto va a haber una pregunta para todos y están prestando atención. ¿Qué pasa si yo este flow lo dejo así y lo Y lo guardo y lo empiezo a depurar? ¿Qué va a pasar acá? Me va a pedir el nombre, me va a pedir el correo y después, si yo apreto siguiente, ¿qué va a pasar? No lo pauso, ¿no? Apreto siguiente.

[00:10:25.11] – Hablante 4
Bueno, espero que no sea capciosa, pero creo que no va a hacer nada. No guarda nada, es como: Bueno, gracias por tu contacto.

[00:10:33.05] – Hablante 2
Prosiga. Pas de nada. Pas de nada.

[00:10:34.21] – Hablante 1
Muy bien.

[00:10:35.07] – Hablante 2
Me está faltando un elementito loco más que sea crear el registro.

[00:10:41.19] – Hablante 1
Escuchame, Nicolás, compartinos en los comentarios tu link de LinkedIn, así te felicitamos ahí, bien.

[00:10:48.01] – Hablante 2
Quiero saber cómo hizo Nicolás para ponerse el apellido, porque a todos los demás le pone una sola letra y él hackeó la matrix y le aparece el apellido, parece Nicolás, no sé si a los demás le aparece.

[00:10:58.04] – Hablante 1
Michenso también, tirá el LinkedIn, Michenso. Escuchame, tal vez, digo, y si pones el nombre y apellido en el mismo campo, no importa, siga.

[00:11:07.12] – Hablante 2
Entonces, lo vamos a poner acá, guardamos el registro, que ahí hay contacts, y new contact, vamos a ponerle, y en el registro, vamos a poner nuestro nuevo contacto. Entonces, ahora, si yo me voy a devaguear esto, lo que va a pasar es que ahora sí va a ser otra inserción, me va a pedir el nombre, me va a pedir esto primero que se puede desactivar. Acuérdese que esto se puede desactivar para que no lo pida. Text. Si yo le pongo en un correo, no no va a pasar nada, simplemente lo va a insertar.

[00:11:33.02] – Hablante 1
Yo.

[00:11:34.01] – Hablante 2
Me parece que me quedó una validation rule que la vamos a desactivar. Olvídense de que vean esto. Vamos a desactivarlo rápido.

[00:11:40.04] – Hablante 5
Mientras… No estaría bueno que Salesforce incluya una opción para de variar screen flows en modo rollback. Es decir, que todo lo que hagas no se guarde, no hace esto. Ahora, todo lo que hacés, ejecutás y chao. Sí, estaría bueno. Me contesta yo. Sí, estaría bueno.

[00:11:58.01] – Hablante 2
Obviamente.

[00:12:00.03] – Hablante 1
Ahí podés tener una respuesta oficial de: Mirá, no insistas con esto porque se supone que tenés que hacerlo en un sample. Pero bueno.

[00:12:08.18] – Hablante 5
Sí, bueno, sí, es verdad, pero igual. No sé, pero bueno.

[00:12:13.06] – Hablante 2
Estaría bueno. Está pasando algo raro. A ver si me ayudan a ver todas las validation rules están desactivadas y así todo está tirando una validación del correo.

[00:12:22.18] – Hablante 1
En la configuración del campo, ¿lo tenés como obligatorio?

[00:12:28.01] – Hablante 2
Claro, eso.

[00:12:29.06] – Hablante 1
Más gente, bienvenidos. Welsy, Santee, Francisco. No, no está como… No, okey. Yesenya, lindo nombre.

[00:12:37.23] – Hablante 2
Es acuólico como quedó esto.

[00:12:39.10] – Hablante 4
Estás usando el mismo campo en la validación y en la…

[00:12:42.04] – Hablante 2
Fíjese, hay dos validation rules, pero las dos están desactivadas.

[00:12:45.15] – Hablante 1
Sí, me dicen en los comentarios que su nombre también es lindo, claro que sí.

[00:12:49.05] – Hablante 2
Debe ingresar un email, me estás contando. Esta no es ninguna de las dos.

[00:12:53.11] – Hablante 4
Tendrás un trigger o un flow.

[00:12:54.16] – Hablante 2
Me habrá quedado algo… Sí, me habrá quedado algo…

[00:12:56.23] – Hablante 1
Probablemente tengas un trigger o alguna…

[00:12:58.15] – Hablante 2
Por rápido, a para ir viendo todas las cosas que pueden pasar acá.

[00:13:02.20] – Hablante 1
Para, tranquilo, tigre, ¿por qué no explicas qué tenés en pantalla?

[00:13:06.10] – Hablante 2
Estoy abriendo la consola y lo que quiero ver es si tengo algún trigger sobre el objeto contacto para ver si también esto me está fallando por acá.

[00:13:14.07] – Hablante 1
Pregunta para la profesora de inglés. La pronunciación correcta es developer console. ¿La agarramos distraida la profesora?

[00:13:22.10] – Hablante 3
Developer console.

[00:13:23.20] – Hablante 1
Developer console. Okey, muchas gracias.

[00:13:26.04] – Hablante 3
Con alma, qué lindo.

[00:13:27.21] – Hablante 4
Consol.

[00:13:28.16] – Hablante 5
Yo voy a decir la consola.

[00:13:29.12] – Hablante 3
Lo peor Pensé que era console. Yo creo que tanto justo.

[00:13:33.13] – Hablante 1
Consol.

[00:13:33.20] – Hablante 3
Está mal que cuando estoy dictando tengo que pronunciarlo en español porque no hay forma de que me capte el inglés.

[00:13:42.17] – Hablante 1
Bueno, Francisco, volvamos a vos.

[00:13:44.16] – Hablante 2
Sí, señor.

[00:13:45.12] – Hablante 1
Para que encontré el error.

[00:13:48.23] – Hablante 2
Entonces, tenía un trigger flow que nos quedó de otro video que hicimos, y ese trigger flow tira un customer error, si no hay email, y arrojamos este error, que es el concepto de no tirar email. Entonces, igual esto está desactivado. Hay Yo creo que quedó medio raro de alguna otra demo. Yo sé que quedó raro de alguna otra demo.

[00:14:03.02] – Hablante 1
A mí me gustaría, yo sé que quedó raro desde alguna otra demo, a mí me gustaría responder una pregunta que están haciendo en el chat. ¿Crees? Welsi nos dice: Necesito el cerebro de ustedes tres. Eso se logra cada vez que vos te metés en nuestros perfiles de LinkedIn y likeás publicaciones nuestras, hay algo telepático que empieza a ocurrir desde nuestras neuronas hacia la tuya, las tuyas y a todas las personas que nos likean. Así que ese es un buen hábito.

[00:14:35.11] – Hablante 3
Son vibras cerebrales.

[00:14:36.21] – Hablante 1
Exactamente. Tenemos Josué Mendoza, busquen en LinkedIn. Igual están todos los links hacia nuestros perfiles. Josué Mendoza, Esteban Morales, Francisco Morales, Angie Cagliolo, María Cecilia Pérez Trimboly, Juan Manuel Garrido. Busquen nuestros nombres en LinkedIn para obtener conexiones neuronales. Seguimos con vos, Francisco, y te respondí Welsy. Bien.

[00:14:59.11] – Hablante 2
Muy bien. Y aquí está este de ella. Perdón el de bagueo en vivo, pero quiero sacar esto, así podemos mostrar que creo que este sí es porque este sí está activo. Entonces, vamos a entrar acá. Vamos a agregar, dijimos, un apellido cualquiera, le vamos a dejar el un email en blanco, vamos a pasar a next, y ahora funciona. ¿Qué pasó? Teníamos de alguna otra demo que nos quedó un flow que nos pedía el correo. Entonces, ¿qué es este que está acá? Este flow, lo único que hacía es un trigger flow, que lo que estaban mirando es que cada vez que se creaba un contacto, nos arrojaba un error, un customer error. Ya deben ingresar un email.

[00:15:35.11] – Hablante 1
Entonces… Fran, ¿puede ser que esto es algo que hicimos en una clase que vimos en la Salesforce Tower, en el piso 66? No. Escuchen, hay clases que grabamos hace muy poco atrás, desde el piso 61 en la Salesforce Tower, en esas clases en nuestros perfiles de LinkedIn, que están publicadas y están buenísimas. Muy bien.

[00:15:54.18] – Hablante 2
Entonces, nos había quedado en este flow que nos arrojaba un error, cuando lo desactivamos, funciona bien. Dos lecciones aprendidas para todos. Ver todas las cosas que pueden tirar error, que creo que nos sirvió para verlo. Por ejemplo, puede ser un trigger de APEX, puede ser un flow, puede ser una validation rule. Nos sirvió para ver las tres cosas que nos pueden dar error. Y la otra, para mí, no usar el mismo torro que ya está quemadísimo de cosas. Porque hay muchas cosas que se pisan y que son iguales, pero bueno, es super. Ahora, nosotros ya tenemos nuestro flow. Vamos a ver el percoso, vamos a dejarlo un poquito más simple. Que nos pide el nombre, nos pida un correo y funciona. Lo que vamos a hacer ahora es vamos a crear una validation rule para hacer el caso que nos decía Josué reciente, que alguien vino y nos agrega una validation rule sobre el objeto contact, me voy a copiar este texto loco porque me va a servir.

[00:16:46.18] – Hablante 1
Te sigue sumando más gente. Hola, Humberto. Bienvenidos a todo.

[00:16:49.14] – Hablante 2
Vamos a crear una nueva. Así es como se llena el entorno de cosas. Le vamos a poner, necesita email, vamos a poner una descripción, le dejamos guardar un contacto sin un email. Y en la validation rule, le vamos a hacer un copy paste de que si es nuevo y si el email está en blanco, recuerden que siempre las validation rule son una expresión booleana, es decir, algo que nos va a devolver verdadero o falso, y el error lo va a arrojar siempre que esto se dé como verdadero, siempre que se evalúe como verdadero. La condición que se da acá, si da bien, falla. Eso es como medio contraceptivo, al menos a mí me costó al principio entenderlo.

[00:17:23.23] – Hablante 1
A mí también. ¿Cómo si da bien tiene que fallar?

[00:17:27.01] – Hablante 2
Claro, es como un fallo exitoso, digamos. Si la condición que está acá se cumple, vas a tirar un error.

[00:17:32.03] – Hablante 1
Tengo tres fotos. Estaban en San Francisco. ¿Esto qué se habrá construido? Por 2002, 2003. O sea, si Salesforce se funda en 1999, las validation rules, ¿cuándo habrán aterrizado? Ponele 2002.

[00:17:45.23] – Hablante 2
Claro, cuando nací a este.

[00:17:47.10] – Hablante 1
Exacto. Los tipos estaban ahí en San Francisco y dijeron: No, déjalo así. Dejalo así. Beignofe está en otra. Y quedó. Tenemos un chiste, pero como esto está quedando grabado, no podemos decir No lo podemos decir.

[00:18:01.10] – Hablante 2
En la última. Cuando vamos en la última, tenemos que contar- Sepan que estas clases también las vamos a hacer físicas y vamos a invitar a muchos de ustedes.

[00:18:12.04] – Hablante 1
Nos vamos a invitar a dónde, a las oficinas, a las oficinas de Salesforce en Buenos Aires y a las oficinas de Ega Futura también en Buenos Aires. No vamos a poder invitar a toda la gente que se registra, pero sí a un grupo de selectos. Y ahí sí, tal vez podemos, claro, ¿Está muy bien? Claro que sí. Welsy, si estás en Buenos Aires, podés venir, claro.

[00:18:34.13] – Hablante 2
Que no, Esti estaba en Barilocha, ahí que pregunta uno si están todos en Buenos Aires. Esty estaba en Barilocha. ¿Le puedo mostrar un poquito ahí a Esty?

[00:18:41.02] – Hablante 5
Emo, sí. No se ve mucho, pero…

[00:18:44.03] – Hablante 1
¿y te lo puedes compartir, Francisco, un poco? ¿Estás compartido? Contanos dónde estás, Esti.

[00:18:48.16] – Hablante 5
Ahora estoy en un café, pero sí, estoy en Bariloche.

[00:18:51.16] – Hablante 1
Ahí está Ana, con un árbol.

[00:18:53.10] – Hablante 5
Atrás es el náhuatl wapi, no se ve mucho, pero bueno, ahí lo tengo a los árboles.

[00:18:57.22] – Hablante 1
Sí, está allí, no lo he visto. Tenemos que a profesar de ti. Tuvimos a vos antes, sí. Tuvimos hablando de vos y vas mucho a Bariloche. Estamos sospechando que tenés algún amor oculto. Ese es el motivo de tantos viajes.

[00:19:12.10] – Hablante 3
Me voy a empezar pitufina.

[00:19:14.12] – Hablante 5
Pero Mi único amor es como dijo ahí Francisco, quizás la cervecería y la cerveza, pero nada más que eso.

[00:19:20.18] – Hablante 1
Okay, bueno, pará.

[00:19:22.11] – Hablante 2
Guillermo, perdón.

[00:19:23.09] – Hablante 1
Acción al chat. A ver la cultura inglés, ¿puede leer lo del comentario que está haciendo Guillermo?

[00:19:29.04] – Hablante 3
Francisco, ¿Qué validas new?

[00:19:31.11] – Hablante 2
Lo que nosotros vamos a validar acá es si se está creando un nuevo contacto y si el correo está vacío. Y les explico por qué es importante este is new. Nosotros no deberíamos, esto como regla general, no deberíamos tocar o no deberíamos meter reglas de validación para lo que ya está en la base de datos. Deberíamos tratar de validar todo lo que va a ingresar nuevo. En este caso particular. ¿Por qué? Porque si nosotros empezamos a validar todo lo que ya está en la base de datos, cada vez que alguien haga un cambio, suponganete que tienes un contacto que movió la cámara. Suponganete que tienes un contacto que ya está en la base de datos y que no tiene correo, si vos le metés esta validación, cualquier cambio que le hagan, cambia el nombre, cambia la dirección, lo que sea, les va a explotar la cara que necesitan un correo. Entonces, para no hacer eso, estamos poniendo solamente a los nuevos validables que tengan correos. Los que ya están en la base de datos, dejamos así. Es una cuestión de simplificar el ejemplo. No vamos a meternos con todo lo que ya está en la base de datos.

[00:20:22.15] – Hablante 2
Si está mal, está mal.

[00:20:23.18] – Hablante 1
Algo que sí me gustaría que me valide Josué, yo estimo que la respuesta es sí. Un validation rule se va a aplicar desde la app móvil de Salesforce, desde la interfaz web. Si estamos queriendo importar registros con el asistente de exportación de datos de Salesforce o con alguna herramienta como MuleSoft o con cualquier conexión API, ¿verdad? Es decir, no importa como yo le esté, no importa cómo yo esté haciendo el proceso de escritura en base de datos, la Validation Rule se va a disparar igual. ¿Es cierto esto, Josué?

[00:20:57.15] – Hablante 4
Sí, señor. Tal cual lo decís vos. Dejo un Un pequeño paréntesis porque creo que hay alguna herramienta en Data Loader donde le podés pedir que nos corra variaciones. No sé si sigue existiendo eso, pero sí, cualquier cosa que quieras hacer, la validation rules van a acordarte siempre.

[00:21:09.22] – Hablante 2
Te leo una cosa sobre eso. Hay una buena práctica sobre validation rules, que es agregar a una metadata o un label o algo que lo que te permite hacer sea como desactivarlas. Entonces, cuando vos corres con esa metadata en true o… Suponete que tenés una metadata que sea no correr validation rules en true, le agregás esto o al perfil admin, por decir algo, le agregas una condición más. Entonces, atás toda la ejecución de la validation rules a una condición más, que puede ser, ya te digo, que el perfil sea de un tipo en particular o, claro, eso, es exactamente ese link para bypassar las validation rules. Bonito que vos tenés que hacer una migración masiva de otro sistema, porque esto es para lo que es útil, y en ese sistema ya todos los contactos no tienen correo, algunos tienen y otros no, igual no te querés poner a luchar contra todas las validation rules que ya tenés en tu entorno, porque tenés que migrar masivamente. Lo que hacés es Aplicas alguna política para buypasear eso. Entonces, todo lo nuevo que entre en sale por chat va a estar validado, pero todo lo que vos te migraste de otro lado, te lo podés migrar tranquilamente.

[00:22:12.03] – Hablante 2
Es polémico, no es de todo aconsejable, pero se puede hacer. En el caso de que le expliques.

[00:22:16.14] – Hablante 3
Perdón, ahí Fran te pone Federico, algo así te referís a eso.

[00:22:20.11] – Hablante 2
Exacto, sí, me refiero a ese link que pasó ahí Fede.

[00:22:24.02] – Hablante 1
Escúchame, Fran, vos el link a todas las personas que estén mirando esto grabado en YouTube o en LinkedIn, les comentamos. En la caja de chat que estamos teniendo esta clase en vivo, Federico nos compartió un link. ¿Vos, Francisco, quisieses abrir una pestaña y pegar el link de Federico?. Exacto. Y lo pueden buscar googleando el título de ese artículo que Francisco está mostrando en pantalla. Y voy a sumar algo más. Quien no entienda a qué hizo referencia Francisco recién con metadata, vamos a repasar un concepto conceptos que pueden googlear o que pueden preguntar en perplexity o en ChatGPT, que son custommetadata-type.

[00:23:06.17] – Hablante 2
Igual para hacer bien la explicación, lo hacemos con un permission set especial y acá nos dice cómo crear el permission set y cómo aplicar una validation rule para que si esto no está, si no tiene ese permission set, ejecute la Valation Rule. Si tenés ese permission set para bypassiarla, esto la va a bypassiar.

[00:23:23.04] – Hablante 1
Eso sería más cómodo.

[00:23:24.08] – Hablante 2
Mucho más cómodo, sí, mala mía. Yo lo tenía como que se podía hacer igual con una custom metadata, pero esto está mucho mejor.

[00:23:31.06] – Hablante 1
Eso está mucho mejor y quiero ordenar el concepto, porque es muy valioso todo lo que estamos diciendo. El gasto de metadata types, que es relativamente nuevo en el ecosistema Salesforce, nos da la posibilidad de grabar en metadata. Recordemos que dentro de una Salesforce org, toda la información, me gustaría que este valide lo que voy a decir ahora. Dentro de una selfforce. Org, toda la información se puede clasificar en dos grandes grupos: data y metadata. La data es todo lo que reside dentro de cualquier objeto y la metadata es todo lo que está atrás en el backend. Y que, por supuesto, la metadata, cuando uno duplica o crea un sandbox, se propaga. Con un custom metadata types, se pueden administrar datos que pueden ser utilizados para configuraciones. Y una de las cosas que dijo Francisco, que estuvo bien, lo que dijo Francisco estuvo bien. Obviamente que eso está mejor, pero lo que dijo Francisco, estuvo bien. Se puede incluir en custom metadata type un valor booleano por sí o por no, y que si está por no, no se ejecuten los validation rules. Pero con un permission set, que es lo que nos compartió Federico, muchas gracias, Fede, es la posibilidad de hacerlo por usuario.

[00:24:50.13] – Hablante 1
¿Estamos okay? ¿Este bebé corazón con esto que acabamos de decir.

[00:24:54.15] – Hablante 5
Total, es así como lo dijiste. Igual hay una valoración. No es con un permission set, es con un custom permission, dentro de un permission set.

[00:25:02.15] – Hablante 1
Claro. Perfecto.

[00:25:04.09] – Hablante 2
Muy bien.

[00:25:05.01] – Hablante 5
Primero el custom permission y después viene el permission set. Y después el usuario, son esos tres niveles.

[00:25:09.23] – Hablante 2
Muy bien. Esto está bueno para hacer otra y mostrar cómo lo hacemos.

[00:25:13.08] – Hablante 1
Y a eso vamos a hacer una clase.

[00:25:14.22] – Hablante 2
Muy bien. Entonces, perdón, y Angie, no sé si quería decir algo con la pronunciación, que capaz que estamos diciendo cualquier cosa.

[00:25:20.17] – Hablante 1
Profesora es metadata…

[00:25:24.03] – Hablante 3
No, ninguna de las dos.

[00:25:33.07] – Hablante 2
Creo que todos tenemos esa tendencia de decir la data.

[00:25:36.10] – Hablante 1
Profesora, es delta, ¿okey? Muy bien. Sáquese la gorra, profe. Vamos.

[00:25:42.07] – Hablante 2
Guardamos la validation rule. Se nos hizo un poquito tarde, vamos a ver.

[00:25:46.20] – Hablante 1
Vamos a darle un poco de velocidad.

[00:25:48.12] – Hablante 2
Entonces, tenemos la validation rule que a partir de ahora necesitamos ingresar el correo si estamos creando un contacto nuevo. Entonces, si yo me vuelvo a mi flow loco, voy a cerrar un poco esto para que más accesible.

[00:26:01.09] – Hablante 1
Hoy la profesora está distraída porque le pedimos que nos diga los-Sí, perdón.

[00:26:05.09] – Hablante 3
Acá Francisco, te interrumpo un minuto. Acá, Welsy, dice que con la custom setting sirve para algunos escenarios específicos. Ejemplo, necesito solo que un solo perfil no se le active. Federico M, yo lo uso mucho para mostrar componentes en la landing page, el custom permission dentro del PS.

[00:26:25.03] – Hablante 2
Bueno, ahí Fede, si te animás a dar una con eso, estaría buenísimo. Sí, tal cual. Yo uso, en el caso por ahí, en el que más lo he usado es migraciones pasivas. Entonces, más que para un perfil, es para en un momento dado, saltear todas las validation rules y meter data. Pero sí, es tal cual. Entonces, si nosotros les gustamos ahora que tenemos la validation rule, nuestro flow, lo que va a pasar es que va a explotar y va a explotar desordenadamente. Nos va a mostrar un mensaje que es el mensaje que Salesforce nos va a mostrar cuando quiera hacer el DML y no lo puede hacer porque hay alguna cuestión que se lo impide. Id, que puede ser, como vieron recién, que por suerte lo del principio sirvió para esto, puede ser una validation rule o un trigger de APEX o un flow trigger.

[00:27:08.03] – Hablante 1
¿oson, podés explicar que es un DML? Bien.

[00:27:10.18] – Hablante 4
Cualquier escritura que yo quiero guardar en la base, lo dije muy técnico. Cualquier info que yo quiero guardar en Salesforce. Si estoy creando algo, cuando quiero preguntar en list new, cuando estoy creando algo, mi contacto es novito, es un DML de actualización. Y si estoy modificando, agarré un contacto ya tenía, le estoy poniendo el mail y le estoy guardando, es un DML de actualización.

[00:27:29.21] – Hablante 1
Okey.

[00:27:30.13] – Hablante 4
Tienes borrado, básicamente, cualquier escritura que querés hacer para no ser una larga.

[00:27:34.12] – Hablante 1
Muchas gracias, profe. Seguimos con vos, profe. Vamos a un next.

[00:27:37.22] – Hablante 2
Esto nos va a fallar y nos va a tirar seguramente un mensaje rojo diciendo… Lo dos, básicamente. Un mensaje en rojo que es clotó. No lo dice demasiado, lo dice solamente que contactemos a nuestro System Administrator for more information, en este caso, para que no se enoje Angie. Y no tenemos nada más, no tenemos ninguna información de qué es lo que pasó. Si se fijan, nosotros en nuestro validation rule habíamos puesto un mensaje que queríamos que se le mueste al usuario diciendo qué es lo que pasa, que necesitamos un proyecto. Ni siquiera él nos lo está mostrando. Entonces, una buena práctica, vamos a volver a nuestro editor de Flow, y un poco lo que queremos mostrar en esta clase de hoy es agregar errores. Entonces, manejo de errores. ¿Cómo vamos a hacer eso? Cada vez que nosotros detectemos un elemento que sea crítico, que pueda haber algún fallo, que un poco dándoles una pista de qué puede ser eso, es cada vez que nosotros vayamos a buscar información en la base de datos, o sea, cada vez que nosotros tengamos un records, por ejemplo, es una posibilidad de fallo, porque nosotros ahí podemos tener condiciones que no se cumplan nunca y que eso después haga que todo lo demás reviente o mismo que vayamos a buscar un registro que estemos confiados de que va a estar en la base de datos y que efectivamente no esté.

[00:28:43.23] – Hablante 2
Y después todo lo que decías Josué, todo lo que es DML, todo lo que es transformación en la base de datos puede ser susceptible a errores. Si nosotros tenemos que actualizar algo, nos puede pasar que lo estemos actualizando mal porque el usuario ingresó un valor que no es válido o hay una validación que no tuvimos en cuenta que podía va a pasar, etcétera. Cada vez que queramos crear un registro, por ejemplo, en este caso, que no tenga correo. Entonces, eso lo podemos atajar de muchas maneras, pero lo que podemos hacer genéricamente para decir: Si este elemento falla, tengamos un plan de contigencia, es decir, hagamos algo más, es decir, agreguemos un camino de fallo. Es decir, si esto falla, vamos a ejecutar otro camino del flow, que es este que se nos abre acá. Cuando le digo que lo puedo manejar de distintas maneras, es porque se me imaginan que nosotros podemos haber hecho que acá el email sea obligatorio, podemos hacer que el email sea obligatorio en la base de datos. Tenemos varias formas de hacerlo para que nos salga acá, pero en este caso lo que hacemos es decir: Nos vamos a atajar de cualquier error que pueda ocurrir al escribir esto en la base de datos.

[00:29:44.13] – Hablante 2
Olvídense del ejemplo concreto del mail, porque por ahí podríamos tener otras formas. Lo que yo quiero es que piensen en todas las cosas que podrían salir mal acá al crear el registro. Entonces, lo que vamos a hacer cuando agregamos un camino de error es decir: Vamos a estar preparados. Si algo sale mal acá, no vamos a mostrarle al usuario el mensaje ese rojo o mal diciéndole escribir al administrador, sino que vamos a hacer otras cosas. Por ejemplo, le podemos mostrar una pantalla que tenga un error, vamos a poner un texto acá y que se ha ocurrido un error, por ejemplo, al escribir en la base de datos, con su administrador, con la siguiente información. Vamos a hacer un ejemplo muy básico, el primero, quizás el más básico, y acá vamos a agregar, a ver si tengo la variable que muestra el error.

[00:30:30.19] – Hablante 1
Tampoco es amigable esa variable.

[00:30:32.17] – Hablante 2
No, porque es cruda, digamos. O sea, viene sin ningún tipo de paseo ni nada. Lo que falla y viene de la base de datos, nos lo va a devolver Salesforce así. Pero… Primera pro. Ya no vamos a dejarlo librado al azar, sino que ahora capturamos eso en una pantalla y le mostramos un mensaje más lindo al usuario y directamente mostramos el mensaje de error.

[00:30:52.18] – Hablante 1
¿tendría sentido hacer una escritura en algún objeto en particular para en algún momento hacer auditorías?

[00:30:58.14] – Hablante 2
Ahora vamos a ver eso. Mostrarles como el primer paso, que es: Ya no vamos a atajar la primera… No vamos a dejar lo librado de la tabla, sino que vamos a mostrar.

[00:31:07.11] – Hablante 1
La teacher no le está dando pelota a los comentarios del chat y Pablo está preguntando.

[00:31:12.07] – Hablante 3
No, lo primero dice: Lo que dice el Me lo había gustado, pero era el anterior que justo Francisco lo hizo. Y lo podemos ver en la orden.

[00:31:20.21] – Hablante 2
¿cómo se refiere?

[00:31:21.12] – Hablante 4
Se refiere a si puedo encontrar rastreo. Hacer la prueba. A ver, lo que podés hacer, por un lado, la buena práctica de deboovear, lo que está haciendo Fren ahora. Y después también lo que tiene Salesforce, cuando vas a la configuración, es un apartado que se llama entrevista de flujo con fallo. Si vos ingresas ahí, vas a ver en la lista todos los flujos que fallaron cuando un usuario estuvo haciendo algo y vas a tener un poco de info. No sé si es eso a lo que se refería.

[00:31:49.15] – Hablante 1
Pablito, en algún momento querés subir al escenario y compartir pantalla, quizás en el chat es algo que podemos hacer. Y para cualquier persona también. Bueno, digamos…

[00:31:58.15] – Hablante 3
Metalia dice que creo que se refiere a probar el flow directamente en la ORD, a ver si le salta el error?

[00:32:04.06] – Hablante 2
Lo podemos hacer. No lo quiero hacer ahora porque tendría que activar el flow, tendría que agregar el flow en algún lado, tendría que ir y ejecutarlo. Y para saltear de todo eso y dejarlo solamente a los efectos prácticos de ver cómo funciona el flow, prefiero de vaguear. Además, es que es buena práctica. Uno va construyendo y va devagueando sin tener que agregarlo en algún lado concreto todavía. Entonces, si ahora me voy a hacer el debug, vamos a poner esta prueba falla mejor, lo voy a dejar sin correo para que falle. Y si ven, en vez de tirar ese mensaje de error todo en rojo, me dicen: Ha ocurrido un error al escribir la base de datos, contacte ese administrador con la siguiente información. Y ahora podemos ver que, además de este mensaje feo que nos tira acá al principio, que es lo que decíamos recién, nos tira el error que el usuario le daba puesto en la validation rules, que es intentar meter un mail y decir cosas limpias. Y después te tira otra parte del error que es más técnico. Pero, por lo menos, ya el usuario puede ver que algo mucho más manejado, y eso calma mucho la ansiedad a la hora de entrar los Entonces, vamos a darle-Los que definitivamente queremos hacer son dos cosas.

[00:33:04.08] – Hablante 1
Uno: Bajarle un cambio, bajarle la ansiedad del usuario. Dos: tener algún mecanismo que a nosotros, los developers, los admins, que estamos atrás de todo eso, proactivamente nos permita enterarnos cuando pasa algo. ¿Verdad, Frank?

[00:33:19.06] – Hablante 2
Sí, que ese es el siguiente paso, si quieres, porque ahora nosotros lo único que hacemos, si se fijan, es le mostramos un mensaje de error al usuario. O sea, no estamos… Saliendo viniendo de la pantalla, digamos. El usuario está viendo un mensaje mucho más amigable, pero no hay un admin enterándose, porque fíjense que lo único que estamos haciendo es proponiéndole que contacte al admin, pero no hay alguien enterándose ni hay una gestión proactiva, digamos, de la error. Entonces, lo que podemos hacer acá, además de esto, es, como decíamos recién, es agregar algún registro en algún lado para que nos quede un error. Además de lo que dice Josu, que está bien de decir: Podemos ver las entrevistas fallidas, nosotros podremos tener un objeto, por ejemplo, medida, custom object, que sirva para guardar errores de flow. Y después, poder tener un reporte de eso y hacer todo lo que Salesforce ya permite de caja con un objeto. Muy bien. Entonces, una cosa que hicimos acá para poder mostrarles esto más rápidamente, y ya con esto, si quieren, terminamos para ver un poquito la clase de inglés, es nosotros creamos un objeto que se llama error log, que es un custom object, que si se fijan en los campos que tiene un nombre, tiene un mensaje de error, tiene un proceso que básicamente qué lo desencadenó y tiene un usuario, que es al usuario el que le explotó, básicamente.

[00:34:36.11] – Hablante 2
Con esto después el admin va a poder reportear eso y va a poder saber qué error estamos teniendo, porque ya ahí nos metemos más en la cuestión de tema calidad. Decir, si hay un flow que está siempre rompiendo en el mismo lugar, evidentemente tenemos que ir a arreglarlo. Nos permite ponderar los errores que estamos teniendo, saber si lo que más la estamos quedando es en flow, o es en trigger, si las integraciones se caen todo el tiempo. Pienso en toda la calidad que da esos análisis. Estuviendo que hay algunos comentarios, ustedes me interrumpen si…

[00:35:06.15] – Hablante 1
En la segunda vez le estábamos tirando.

[00:35:08.02] – Hablante 3
No, es que se borró. Iba a leer algo que habían puesto, pero se borró.

[00:35:11.20] – Hablante 5
Se movió a preguntas y respuestas.

[00:35:14.12] – Hablante 3
Okey. Gracias, gracias. ¿Es una práctica habitual, Fran, tener un objeto que capture los errores?

[00:35:20.02] – Hablante 2
Es un framework cada vez más habitual y es también una buena práctica tenerlo. Ahí los chicos me van a saber complementar mejor de que es algo que cada vez se hace más y sobre todo que se hace framework y que se implementa… Cuando digo que se hace framework, lo tenemos con buena práctica a nivel empresa, decir cada vez que arrancamos un proyecto nuevo, vamos y aplicamos una metodología que, por ejemplo, puede ser crear este objeto y cada vez que tenemos un flow que puede fallar en algún lado, le creamos un registro o llamamos a un subflow que crea un registro en ese objeto.

[00:35:53.18] – Hablante 1
La apuesta sería tener un subflow tiempo.

[00:35:56.05] – Hablante 2
No nos va a dar el tiempo, pero el próximo paso que sigue a esto Me lo voy a mostrar muy rápido. Yo lo próximo que voy a hacer acá es crear un registro de ese objetito que les mostré recién.

[00:36:09.23] – Hablante 1
Me están preguntando en el WhatsApp mío si la teacher está en Tinder o está prestando atención a los mensajes del chat.

[00:36:19.11] – Hablante 3
Están faltando de atención, pero hasta ahora no hay nada nuevo.

[00:36:22.06] – Hablante 2
Vamos a crear entonces el objeto con el error.

[00:36:26.02] – Hablante 1
Bebé Corazón acaba de tirar lo del Nebula Loger, el que me gustaría que en un ratito nos lo cuente Cefix.

[00:36:33.07] – Hablante 2
Perdón, porque ya termino con esto y ya liberamos, porque creo que el concepto… Me interesa que se entienda el concepto. Lo que vamos a hacer acá es asignamos todo lo que queramos meter en el registro y después ya hacemos la inserción del registro propiamente dicho. Y si se fijan, acá ya tenemos algo bastante divertido, que es que tenemos algo que se podría empaquetar, porque piénsalo cada vez que falle un flow o falle un trigger, incluso, de APEX o falle una pantalla, lo que sea, nosotros ya podemos llamar a un subflow que haga siempre de estas mismas tres acciones. Es decir, agarre lo que vino del error, lo guarda en un registro y muentre una pantalla o mande un mail, por ejemplo. Entonces, ya tenemos algo que podemos empaquetar en un subflow, como decíamos recién, se está cayendo el cielo.

[00:37:14.03] – Hablante 1
Y es algo que podemos, de nuevo, meter en un subflow y después aplicarlo a todos los lugares donde tengamos algún camino crítico.

[00:37:22.04] – Hablante 2
Nos queda mucho más empaquetado, mucho más lindo, muchísimo más reutilizable. Y práctico. Entonces, ahí creo que termino el concepto para que ya después hablamos estos minutitos que quedan. Si en este, no se cae todo el mundo.

[00:37:34.00] – Hablante 1
Si es que el mundo no explota. Ok. Bien. Nicolás pregunta si esto se puede invocar desde APEX.

[00:37:40.16] – Hablante 2
Si nosotros hacemos un subflow acá, se podría invocar desde APEX.

[00:37:44.03] – Hablante 1
Bueno, Escuchen, estamos casi en horario, casi en horario. Esti, Josué, Cecilia, ¿alguien quiere hacer algún aporte, pregunta o comentario?

[00:37:55.00] – Hablante 4
Sí, por ahí, nada, mencionar que esto, si bien parece algo supersencillo, yo creo que quizá varios lo conocían, en tomar el framework y esta costumbre, que por lo menos mi experiencia no está todavía la costumbre de agregar un camino de fallo a los flows, empodera mucho al usuario y a nosotras también nos baja la ansiedad, porque ver una pantalla con el mismo error siempre. Dice: Ese error está en todas partes, y la verdad que, capaz que en un lado es una validation rule, en otro lado, capaz que te equivocaste en algo que vos desarrollaste, pero tener más información empodera al usuario, baja la densidad, porque acá, capaz que ni te llaman: Me lo voy a en el mail, vuelvo a la pantalla, pongo el link y nunca te enteraste. Empodera mucho al usuario y baja la ansiedad. Sí.

[00:38:35.21] – Hablante 1
Sí. O sea, está el usuario que bardea feo y después está el usuario que es silencioso, no dice nada. Y esta es una manera de poder capturar absolutamente todo. Bien, cuatro minutos. Vamos a usar cuatro minutos. Yo voy a compartir pantalla con un material y vamos a tener una micro, micro, mini clase de inglés para Salesforce. ¿Qué les parece? La teacher me va a decir en qué… Tengo varias tarjetas. ¿En qué tarjeta me paro? ¿Nos puede explicar algo? Y… A mí me gustaría…

[00:39:08.11] – Hablante 3
Primero preguntarles si quieren, porque por ahí pueden aprovechar, obvia, ¿okey?

[00:39:11.18] – Hablante 1
Te gustaría: ¿Has ido, has ido elegir si Josué, Esteban, Francisco o Cecilia van a cumplir el rol de alumnos y vamos a tener corrección en vivo de la pronunciación.

[00:39:28.05] – Hablante 3
Bien. La primera, por favor. Desde la primera, sí, un poquito más grande. La teacher es un poquito más vieja. Lo voy a usar en primera medida. Este o los que quieren en el chat también pueden hacerlo, porque está en Bariloche y está relajado y lo quiero dejar. Primero, en Primera medida, son cinco minutos después lo que vamos a hacer, probablemente quedamos para 15 días, por qué no, una clase gratuita de inglés para Salesforce. Es difícil, yo sé que muchos tienen diferentes niveles, probablemente uno sea advanced, intermediate, beginner, pero Bueno, la idea es con tips y con cosas prácticas poder ir mejorando y ustedes por su cuenta, por supuesto, hacerlo, ¿no? Profe, acá me dice: Bueno, la diferencia entre I’m working in Salesforce since last year. ¿Por qué está mal decir I’m working in? ¿Por qué? Porque cuando hablamos de experiencias que conectamos desde el pasado hasta ahora, lo que estamos todavía haciendo, pero comenzamos hace un tiempo atrás, se usa lo que mucha gente odia, que es en gramática el present perfect continuas, que es have o has been y el verbo con ING. Entonces, por lo tanto, lo correcto es decir I have been working with Salesforce since last year.

[00:40:41.03] – Hablante 1
Okey, es el momento en donde se va a pronunciar la frase correcta y vamos a tener una corrección en vivo de pronunciación.

[00:40:50.06] – Hablante 3
Este, por favor, repétime lo correcto.

[00:40:52.19] – Hablante 5
I have been working with Salesforce since last year.

[00:40:57.03] – Hablante 3
Perfecto. Es: work with, cuando hablamos de herramientas, no work in. Ahora es working. I have been working, porque es que todavía lo estoy haciendo. Es un proceso que… Desaprobado, acá me dijo Francisco. Todavía está sucediendo. Se puede decir I have worked with Salesforce, Siemens, pero como todavía lo estoy haciendo, es más correcto todavía usar el continuous que con ING. ¿Sí? Pasamos a la próxima, por favor.

[00:41:26.17] – Hablante 1
¿cómo no, profesora? Muy bien.

[00:41:28.18] – Hablante 3
I have five O sea, me sale el correcto, pero es acá el incorrecto, que son errores de alumnos que tuve, por eso que lo tomé. Son errores comunes. I have five years experience on sales cloud.

[00:41:44.21] – Hablante 1
Vamos, Josu.

[00:41:45.12] – Hablante 3
O decime, what other experience you have.

[00:41:49.01] – Hablante 4
I have three years with experience with a service cloud.

[00:41:53.17] – Hablante 3
Agree. Algo típico decir: I am agree with. Never, never, cross. Es: I agree, she agrees. Acuérdense de las aes en la tercera persona, he, she, it. She agrees with the road map, she agrees with the project, she agrees.

[00:42:13.04] – Hablante 1
¿y cómo sabemos cuándo es agree? O sea, ¿cuál es el concepto mental que tenemos que entender para saber cuándo le agregamos la aes?

[00:42:21.04] – Hablante 3
Cuando hablamos de la tercera persona en singular, que sería he. Por ejemplo, Fran o cualquier persona, hablamos de una persona en particular. Sí. Salesforce developers agreed on validation rules, por ejemplo. Puede ser también agree on, ¿sí? Pero cuando hablamos de objetos es agree with o agreed with a person también. Sí, I agree with you, pero no I am agree, nunca. Vamos con la última. Vamos para la última. ¿Es la última? Bueno, quiero ver todas. Un contexto. Perdón. Can you explain me the new workflow? Siempre explain requiere el to, va seguido del to. Es: Can you explain qué cosa the new workflow to me? Siempre es: explain algo to somebody, alguien. Acá me pone: Can she, he o it? Guillermo No entendí la pregunta. Con she. No, está bien, me estaba lo que estaba preguntando Juan Mariah. Y la última, una bonus track. Me quedaron muchísimas cosas por decir, por eso que… Incorrecto. I will assign the lead to Maria to follow up. Sie siempre, hay mucha diferencia, mucha confusión con el for o el to. I will assign the lead to Maria for follow up. Assign something to a person. Siempre algo a una persona.

[00:43:44.23] – Hablante 3
Okey, esa es la última.

[00:43:46.10] – Hablante 1
Tenemos… Ya está, estamos ahí. Ahí, igual. Los espero.

[00:43:50.23] – Hablante 3
Vamos a tratar, si quieren, thank you, acá me dice Federico. Vamos a tratar de si me escriben al LinkedIn y a ver quién está interesado, vamos a hacer, así como está esta clase, hacer clases gratuitas de inglés para Sally Force.

[00:44:05.17] – Hablante 1
Bueno, señoras, muchas gracias, teachers. Le vamos a solicitar a la teacher o a la persona que esté encargada de monitorear los comentarios en el chat, que se ponga media fila en la próxima clase. Y, muy bien, Francisco tirando magia. ¿Cómo se hace para.? No, mirar Francisco tirando. Yo también quiero tirar magia. ¿Cómo tiras magia? A ver, puedo tirar magia, magia, magia. No sé tirar magia, muchacho. Mirá, Mira, mira, mira, Esteban. Bueno, señoras y señores, muchas gracias por la participación de esta clase de hoy. Voy con un spoiler de la próxima clase que es Salesforce Foundations. Salesforce Foundations, nadie entiende una goma de qué es Salesforce Foundations y de cómo goma se activa en una Salesforce Board. Salesforce Foundations tiene un montón de capacidad, un montón de funcionalidad y eso es lo que vamos a ver en la próxima clase. Y los esperamos en nuestros perfiles de LinkedIn. Un fuerte y gigantesco abrazo para todos. Nos vemos en la próxima. Chao, amigos.
 

Un punto clave de la masterclass fue la introducción de un framework para el manejo de errores que puede ser reutilizado en diferentes proyectos dentro de Salesforce. Este enfoque no solo ayuda a los administradores y desarrolladores a resolver problemas de manera más rápida, sino que también empodera a los usuarios al proporcionarles información clara sobre lo que salió mal y cómo solucionarlo. La creación de un objeto personalizado para registrar errores y la posibilidad de generar reportes detallados sobre estos incidentes fueron algunas de las soluciones prácticas discutidas.

Finalmente, la sesión concluyó con una discusión sobre la importancia de las pruebas y la documentación en la implementación de Flows en Salesforce. Los participantes fueron alentados a adoptar prácticas de desarrollo ágil y a utilizar herramientas de depuración para garantizar que sus automatizaciones funcionen sin problemas. Esta masterclass no solo brindó conocimientos técnicos avanzados, sino que también promovió una cultura de colaboración y aprendizaje continuo entre los profesionales de Salesforce.