Saltar al contenido principal
Este es un ejemplo de cómo crear Campos de fórmula usando flujos de trabajo — específicamente cálculos de fechas.
Registrar cuándo las oportunidades ingresan a cada etapa te ayuda a identificar cuellos de botella y medir la velocidad de las oportunidades. Esta guía te muestra cómo configurar campos personalizados y un flujo de trabajo para registrar automáticamente cuándo una oportunidad pasa a cada etapa y calcular cuántos días pasó en la etapa anterior.

Paso 1: Crear campos personalizados

Necesitas dos tipos de campos para cada etapa:
  • Campos de fecha y hora: Registran cuándo la oportunidad ingresó a cada etapa
  • Campos numéricos: Almacenan cuántos días pasó la oportunidad en cada etapa

Crea los campos “Última entrada”

  1. Ve a Ajustes → Modelo de datos → Oportunidades
  2. Para cada etapa, haz clic en + Agregar campo y configura:
    • Nombre: Última entrada en [Nombre de la etapa] (p. ej., “Última entrada en Nuevo”, “Última entrada en Calificado”)
    • Tipo: Fecha y hora
    • Descripción: Marca de tiempo cuando la oportunidad ingresó a esta etapa
  3. Haga clic en Guardar
Crea estos campos:
  • Última entrada en Nuevo
  • Última entrada en Calificado
  • Última entrada en Reunión
  • Última entrada en Propuesta
  • Última entrada en Negociación
  • Última entrada en Cerrado ganado
  • Última entrada en Cerrado perdido

Crea los campos “Días en la etapa”

  1. Para cada etapa, haz clic en + Agregar campo y configura:
    • Nombre: Días en [Nombre de la etapa] (p. ej., “Días en Nuevo”, “Días en Calificado”)
    • Tipo: Número
    • Descripción: Número de días que pasó en esta etapa
  2. Haga clic en Guardar
Crea estos campos:
  • Días en Nuevo
  • Días en Calificado
  • Días en Reunión
  • Días en Propuesta
  • Días en Negociación
No necesitas campos “Días en” para Cerrado ganado y Cerrado perdido, ya que son etapas finales.

Opcional: Hacer que los campos sean de solo lectura

Si no quieres que los usuarios editen manualmente estos campos calculados:
  1. Ve a Ajustes → Roles
  2. Selecciona el rol que deseas configurar
  3. Busca el objeto Oportunidades
  4. Configura los campos “Última entrada” y “Días en” como de solo lectura

Paso 2: Crear el flujo de trabajo

Este único flujo de trabajo gestiona ambas tareas:
  • Registra la marca de tiempo al entrar en una nueva etapa
  • Calcula los días que se pasaron en la etapa anterior

Crea el flujo de trabajo

  1. Ve a Flujos de trabajo
  2. Haz clic en + Nuevo flujo de trabajo
  3. Ponle el nombre “Seguimiento del tiempo por etapa”

Configura el disparador

  1. Agrega un disparador Registro actualizado
  2. Selecciona Oportunidades como objeto
  3. Filtrar por: el campo Etapa se actualiza

Agrega ramas para cada etapa

Para crear una nueva rama, haz clic derecho en el lienzo del flujo de trabajo y haz clic en Nueva acción. Luego, vincula esta acción al nodo anterior arrastrando la flecha desde el nodo anterior hasta esta nueva acción.

Rama 1: Etapa = Nuevo (primera etapa) Como esta es la primera etapa, solo registramos la marca de tiempo de entrada; no hay una etapa anterior que calcular.
  1. Agrega un nodo Filtro: Etapa = Nuevo
  2. Agrega una acción de Código:
export const main = async (): Promise<object> => {
  return { now: new Date().toISOString() };
};
  1. Agrega una acción Actualizar registro:
    • Registro: la Oportunidad que activó el evento
    • Campo: Última entrada en Nuevo
    • Valor: now del nodo de Código

Rama 2: Etapa = Calificado Al pasar a Calificado, registra la hora de entrada Y calcula los días que se pasaron en Nuevo.
  1. Agrega un nodo Filtro: Etapa = Calificado
  2. Agrega una acción de Código:
export const main = async (params: {
  lastEnteredPreviousStage: Date;
}): Promise<object> => {
  const { lastEnteredPreviousStage } = params;

  const now = new Date();
  const entryDate = new Date(lastEnteredPreviousStage);
  const diffTime = Math.abs(now.getTime() - entryDate.getTime());
  const daysInPreviousStage = Math.ceil(diffTime / (1000 * 60 * 60 * 24));

  return {
    now: now.toISOString(),
    daysInPreviousStage: daysInPreviousStage
  };
};
  1. Configura la entrada del nodo de Código: mapea lastEnteredPreviousStage al campo Última entrada en Nuevo
  2. Agrega una acción Actualizar registro:
    • Registro: la Oportunidad que activó el evento
    • Campos a actualizar:
      • Última entrada en Calificado = now
      • Días en Nuevo = daysInPreviousStage

Rama 3: Etapa = Reunión Al pasar a Reunión, registra la hora de entrada Y calcula los días que se pasaron en Calificado.
  1. Agrega un nodo Filtro: Etapa = Reunión
  2. Agrega una acción de Código:
export const main = async (params: {
  lastEnteredPreviousStage: Date;
}): Promise<object> => {
  const { lastEnteredPreviousStage } = params;

  const now = new Date();
  const entryDate = new Date(lastEnteredPreviousStage);
  const diffTime = Math.abs(now.getTime() - entryDate.getTime());
  const daysInPreviousStage = Math.ceil(diffTime / (1000 * 60 * 60 * 24));

  return {
    now: now.toISOString(),
    daysInPreviousStage: daysInPreviousStage
  };
};
  1. Configura la entrada del nodo de Código: mapea lastEnteredPreviousStage al campo Última entrada en Calificado
  2. Agrega una acción Actualizar registro:
    • Registro: la Oportunidad que activó el evento
    • Campos a actualizar:
      • Última entrada en Reunión = now
      • Días en Calificado = daysInPreviousStage

Continúa con las etapas restantes:
EtapaRegistrosCalcula
PropuestaÚltima entrada en PropuestaDías en Reunión
NegociaciónÚltima entrada en NegociaciónDías en Propuesta
Cerrado ganadoÚltima entrada en Cerrado ganadoDías en Negociación
Cerrado perdidoÚltima entrada en Cerrado perdidoDías en Negociación
Las ramas no necesitan volver a unirse; cada una se ejecuta de forma independiente cuando se cumple su condición de etapa.

Paso 3: Analizar el tiempo en la etapa

Con las marcas de tiempo y los recuentos de días registrados, ahora puedes analizar la velocidad de las oportunidades.

Crea una vista “Oportunidades lentas”

  1. Crea una vista de tabla de Oportunidades
  2. Agrega columnas: Nombre, Etapa, Días en [etapa anterior], Importe
  3. Ordena por el campo “Días en” (descendente)
  4. Filtra por Etapa para centrarte en una etapa a la vez
Las oportunidades en la parte superior pasaron más tiempo en la etapa anterior.

Usa agregaciones

En tu vista Kanban del pipeline:
  1. Haz clic en el número junto al nombre de una Etapa
  2. Selecciona Promedio
  3. Elige un campo “Días en”
Esto muestra el tiempo promedio que las oportunidades pasan en cada etapa.

Resumen

ComponentePropósito
Campos “Última entrada”Almacenan cuándo la oportunidad ingresó a cada etapa
Campos “Días en”Almacenan cuántos días se pasaron en cada etapa
Flujo de trabajoRegistra la marca de tiempo Y calcula los días en una sola pasada
Vistas y agregacionesAnaliza la velocidad de las oportunidades e identifica cuellos de botella

Relacionado