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.
…
En Invierno ’20 introdujimos la posibilidad de programar un flujo, lo que permite ejecutar un determinado flujo a diario, por ejemplo. Con la primavera del 21, damos un paso más al introducir rutas programadas dentro de un flujo. Con Rutas programadas puede desencadenar ciertos tipos de eventos basados en campos de fecha en el objeto que desencadenó el flujo. Un gran ejemplo de una ruta programada sería crear una tarea Y programar el envío de una notificación a un usuario una hora antes de la fecha de vencimiento de la tarea. En el pasado, esto requeriría mucho más trabajo pesado.
¿Cómo funcionan?
También hay que tener en cuenta que la funcionalidad sólo aparece si se utiliza el diseño Freeform en Flow. No están disponibles en el constructor de diseño automático que actualmente está en beta. Cuando hayas cumplido las condiciones anteriores y luego elijas el objeto, la opción Ruta programada aparecerá automáticamente en el paso inicial del flujo.
La interfaz de usuario para configurar las rutas programadas es similar a la creación de un paso de Decisión, pero en lugar de especificar los resultados, ahora se especifican los distintos puntos en el tiempo para ejecutar esa ruta.Para cada ruta, debe especificar el campo de fecha/hora que se utiliza para calcular la hora de inicio y luego especificar cuántas horas o días más tarde debe ejecutarse esa ruta.
Programación de recorridos de prueba
Usando la Aplicación de ejemplo de eCars podemos echar un vistazo a cómo utilizar las rutas programadas. Pulsar Motors es un fabricante de coches eléctricos. En el pasado, un cliente sólo venía al concesionario para probar los coches. Desgraciadamente, con la actual crisis de Covid-19, todo esto ha cambiado y es necesario programar las pruebas de conducción para que se tomen todas las medidas de seguridad necesarias.
Para dar soporte a esto, Pulsar Motors ha creado el objeto personalizado Test Drive para gestionar la programación de las pruebas de conducción. En este objeto se guarda la información del contacto que quiere realizar el test drive, con qué modelo y para cuándo está programado. Ante esta nueva forma de trabajar, deciden que sería una gran idea enviar algunos recordatorios a los clientes para reducir el número de inasistencias. Así que usando Flow, deciden:
- Enviar un correo electrónico de confirmación cuando se crea la prueba de conducción.
- Enviar un correo electrónico de recordatorio un día antes de que se programe la prueba de conducción.
- Enviar un SMS recordatorio una hora antes de que se programe la prueba de conducción.
Para empezar, podemos crear un flujo activado por el registro que se dispara al crear y actualizar que se ejecuta después de guardar el registro.
A continuación, debemos especificar el objeto que dispara el flujo. Aquí elegimos el objeto Test Drive y establecemos la condición de que la fecha/hora del test drive debe estar establecida.
Esto es importante porque programamos rutas que sólo estarán disponibles en este caso de uso cuando se seleccione ‘Sólo cuando se actualice un registro que cumpla los requisitos de la condición’. Una vez guardado esto, la opción Rutas programadas se hace ahora visible y podemos configurarlas.
Dos ejemplos de Rutas Programadas que podemos utilizar son:
- Configurar un recordatorio por correo electrónico que se dispare un día antes de la prueba de conducción.
- Por ejemplo, la prueba de conducción de un vehículo
- Configurar un recordatorio por SMS una hora antes de la prueba de conducción.
Nótese que en ambos ejemplos se requiere que apunten a una Fuente de Tiempo, ésta define el campo que busca el horario – y luego define el número de días u horas antes de la fuente de tiempo que se dispara la ruta.
Cada ruta puede entonces ramificarse desde el inicio del flujo para que pueda ejecutar múltiples acciones desde el único flujo basado en la programación definida.
Depuración
Una vez que el Flujo está activo puede querer echar un vistazo a lo que está programado actualmente. Hemos creado un registro de prueba de conducción con una Hora de Recogida del 19/2/2021 a las 8:30am.
Basado en nuestra definición de flujo, esperamos que el recordatorio por correo electrónico se envíe el 18/2/2021 a las 8:30am (un día antes) y el recordatorio por SMS el 19/2/2021 a las 7:30am (una hora antes). Podemos comprobar que esto se ha programado navegando a Configuración → Entornos → Monitorización → Flujo de trabajo basado en el tiempo.
Ahí podemos ver las dos rutas que se están programando para el mismo registro:
Las citas tienen la costumbre de cambiar, así que ¿qué tenemos que hacer cuando la hora cambia en el disco? La persona que hace las pruebas de conducción decide que las 8:30 es muy temprano y se cambia la hora a las 12:30. Llegados a este punto, es posible que temamos que ahora acabemos con dobles recordatorios, pero cuando miramos los flujos de trabajo basados en la hora, vemos que éstos han sido sustituidos por los nuevos valores y los antiguos han desaparecido. Así que se ha adaptado automáticamente a la nueva hora de la cita establecida.
Conclusión
Las rutas programadas son una nueva y fantástica adición a Flow que abre un montón de posibilidades sin tener que escribir código. Sólo hay que tener en cuenta que existen requisitos para poder utilizarlas y seguir la documentación adecuadamente.
Recursos
Documentación de Salesforce Flow
Automatice sus procesos de negocio con Salesforce Flow
…
Esta es una traducción realizada por EGA Futura, y este es el link a la publicación original: https://developer.salesforce.com/blogs/2021/03/schedule-your-path-in-salesforce-flow.html
Disparo | Tiempo | Sin condición | Existe una condición | |
Cada vez que se actualiza un registro y cumple los requisitos de la condición | Sólo cuando un registro se actualiza y cumple los requisitos de la condición | |||
Se crea un registro | antes de guardar | |||
después de guardar | ✔ | ✔ | ||
Se actualiza un registro | antes de guardar | |||
después de guardar | ✔ | |||
Se crea o actualiza un registro | antes de guardar | |||
después de guardar | ✔ | |||
Se elimina un registro | después de guardar |