Las soluciones tecnológicas solicitadas por los clientes para mantener y aprovechar el crecimiento empresarial a largo plazo hacen que uno de los requerimientos más comunes cuando se usa un proceso de negocio (o Business Process Flow) sea la medición de tiempos en cada fase.
De sistema, podemos ver el tiempo que un registro está en la fase actual:
Sin embargo, no podemos acceder a esa información una vez salido de la fase ni tampoco hay un historial disponible. Hoy vamos a ver como podemos capturar la entrada y salida en una fase y calcular la duración del tiempo.
Como primer paso, debemos crear una solución sobre la cual trabajamos, en nuestro caso la llamamos SalesStageHistory. Y dentro de la solución creamos una nueva tabla, llamada Sales Stage History:
Ahora creamos una serie de campos:
- Un campo de tipo Lookup hacía Oportunidad, que es donde tenemos nuestro proceso de negocio.
- En Fase desde en formato Date and Time para grabar la fecha y hora en la que entra en la fase
- En Fase hasta igual como el anterior, pero para grabar la fecha y hora de salida de la fase
- Fase actual para escribir el nombre de la fase
- Fase Previa para escribir el nombre de la fase anterior
- Duración (en días) es un campo calculado, en ese caso queremos conocer la duración en días, sin embargo, podríamos cambiarlo a horas, minutos, etc. sin ninguna dificultad. El cálculo para ello es el siguiente:
En el siguiente paso creamos una vista nueva llamada Process Stage Histories en ese caso y ordenamos las columnas para que tengan un formato lógico.
Esa vista la aprovecharemos dentro de la entidad que usa el proceso de negocio, en nuestro caso la oportunidad. Para ello, nos vamos a la entidad y añadimos un Tab al formulario:
Dentro del Tab agregamos un Subgrid con referencía a Sales Stage Histories, es importante que seleccionemos Show related records para únicamente ver los eventos relacionados (para que funcione nos debemos asegurar que esté creada la relación):
Una vez creado todo eso, nos vamos a Power Automate para crear el Flow que nos genera los datos necesarios:
Primero, como siempre, configuramos el Trigger, en nuestro caso es cuando se cambia una oportunidad de fase (se considera buena practica renombrar los pasos para que se entienda que se está haciendo en cada uno). Para que el Flow se ejecute únicamente cuando haya un cambio en el campo stepname, seleccionamos Show Advanced Options y añadimos el filtro de columna:
Después se añade una condición para diferenciar si es la primera vez que entra en la fase (empieza el proceso) o no (cambia de fase dentro del proceso).
En caso que si, entonces tenemos que crear un nuevo registro dentro de la tabla Sales Stage Histories y actualizar el campo lookup de la oportunidad para relacionarla con ese Sales Stage History.
En caso que no es la primera vez, debemos primero actualizar nuestra Sales Stage History actual con la Fecha y hora de salida:
Después debemos crear la siguiente línea del Sales Stage History, indicando fecha y hora como entrada en fase, el nombre de la fase nueva (un campo en Dataverse) y el nombre de la fase previa (el que viene como fase actual en el trigger):
Y como último, debemos actualizar la oportunidad nuevamente:
Una vez configurado todo, podemos crear una nueva Oportunidad y moverla por las distintas fases. En el tab asociado se verá la información actualizada:
Esa información luego se podría aprovechar para hacer análisis adicional con Power BI para identificar áreas de mejora o establecer tiempos como objetivos.