Recorrer registros relacionados
Cada cuenta muestra cuánto suma lo que sigue abierto con ella: una automation trae sus oportunidades, las recorre con un loop y guarda el total.
Hasta ahora cada automation trabajó con un registro: el que disparó el evento. Para un total hacen falta muchos: todas las oportunidades de la cuenta. El patrón tiene tres piezas:
- Obtener registro en modo lista trae los registros y los guarda en una variable.
- Loop los recorre de a uno. Su salida body es lo que se hace con cada elemento; cuando el último nodo del body termina, el flujo vuelve solo al loop. Su salida end es lo que sigue cuando no quedan elementos.
- Una variable acumula el resultado mientras el loop gira.
Antes de empezar: el campo en la cuenta
ConfiguraciónConstructor de appEntidadesAccountCamposNuevo campo → Label Pipeline abierto, Tipo Currency. Revisá que el API Name sea pipeline_abierto y hacé clic en Crear campo.
Para verlo al abrir una cuenta, sumalo a su página: en Record Pages, abrí Default, seleccioná el bloque Record Details, usá + Add field… para agregar Pipeline abierto y hacé clic en Save.
Creá la automation
ConfiguraciónAutomatizaciónProcesosNuevoEvento de registro, Label Pipeline abierto de la cuenta, Entidad Opportunity. Operación: Crear, Actualizar y Eliminar: el total cambia en los tres casos. Momento: Después. Nueva automation.
La variable que acumula
Ícono Variables de la barra superior → desplegá la sección Variables → Agregar variable: Nombre total, Tipo Número, Valor por defecto 0. Guardar.
¿Tiene cuenta?
Arrastrá una Condición. Nombre ¿Tiene cuenta?, dos ramas:
sin_cuenta: camporecord.account, Está vacío.cuenta_borrada: camporecord.account, Igual a, y el valor vacío.
En las dos ramas escribí record.account completo y cerrá la lista con Esc: si lo elegís de las sugerencias, como account es una relación, el editor le agrega un punto (record.account.) para seguir a los campos de la cuenta, y esa rama no compara lo que querés.
No conectes ninguna de las dos: si la oportunidad no tiene cuenta, el flujo termina ahí. Todo lo demás sigue por Default, que acá es el camino principal.
Esta guarda no es un detalle: el filtro del paso siguiente, cuando su valor queda vacío, no filtra, y traería las oportunidades de todas las cuentas.
Traé las oportunidades de la cuenta
Arrastrá Obtener registro. En el inspector:
- Nombre del nodo:
Oportunidades de la cuenta. - Entidad: Opportunity.
- Resultado: Lista de registros.
- Filtro (opcional): a la izquierda del
=, el API nameaccount; a la derecha,{{record.account}}. El campo de la izquierda es muy angosto y no muestra lo que escribís: escribilo igual. - Límite:
50, el valor que viene. - Guardar como variable:
oportunidades.
Conectá la salida default de ¿Tiene cuenta? a este nodo.

El loop
Arrastrá Loop (grupo Lógica). Nombre Recorrer oportunidades:
- Lista a iterar:
{{oportunidades}}. - Nombre de la variable de iteración:
opp. Dentro del loop,oppes la oportunidad de esa vuelta. - Nombre de la variable de índice: dejalo vacío.
Conectá Oportunidades de la cuenta al loop. La tarjeta del loop tiene dos salidas: body y end.
El campo de la lista puede pintarse de rojo: el editor no reconoce los nombres que guarda Obtener registro. Si el nombre coincide con el de Guardar como variable, funciona igual.
Dentro del loop: ¿sigue abierta?
Arrastrá una Condición. Nombre ¿Sigue abierta?, rama abierta: campo opp.stage, No es ninguno de, valor Won, Lost. Conectá la salida body del loop a esta condición.
Dentro del loop: sumar
Arrastrá Asignar valor. Nombre Sumar al total:
- Modo: Asignar valor. Nombre de la variable:
total. - Valor, en Fórmula:
{{total}} + {{opp.amount}}.
Conectá la salida abierta a este nodo y no le conectes nada a la salida: al terminar, el flujo vuelve al loop por la próxima oportunidad. La salida default de ¿Sigue abierta? tampoco se conecta: una oportunidad cerrada no suma y el loop sigue.
Después del loop: guardar en la cuenta
Arrastrá Obtener registro. Nombre La cuenta: Entidad Account, Resultado Un registro, Buscar por ID, Valor {{record.account}}, Guardar como variable cuenta. Conectá la salida end del loop a este nodo.
Buscar por ya aparece en ID, pero hoy esa opción no queda guardada hasta que la elegís: sin eso, el nodo falla con invalid field name "undefined". Hacé clic en Campo y de nuevo en ID.
Arrastrá Actualizar registro. Nombre Guardar el total:
- Registro a actualizar: Variable. Nombre de la variable:
cuenta. - Campos a actualizar: con +, campo
pipeline_abierto, valor{{total}}. Las sugerencias de campo muestran los de Opportunity, así que el API name de la cuenta se escribe a mano.
Conectá La cuenta a Guardar el total y hacé clic en Guardar.

Límites que conviene conocer
- Obtener registro en modo lista trae hasta lo que diga Límite (50 si no lo cambiás, 200 como máximo). Si una cuenta tiene más oportunidades, las que quedan afuera no suman.
- Un loop da como máximo 100 vueltas y después sigue por
endsin avisar. - Un flujo puede hacer hasta 20 búsquedas con Obtener registro por ejecución: no pongas uno adentro de un loop largo.
- Si una oportunidad se pasa a otra cuenta, esta automation recalcula la cuenta nueva, no la anterior. Para eso haría falta repetir el cálculo con
old.account.

Cómo saber que te salió
- El total se calcula cuando cambia una oportunidad, así que hasta acá la cuenta no lo tiene. Creá
Renovación 2028para Lácteos del Sur, amount20000, stage Proposal. - Abrí Lácteos del Sur: Pipeline abierto dice 50.000, en el formato de moneda de tu workspace. Es Renovación 2028 más Implementación (30.000); las demás oportunidades de los capítulos anteriores están en Won y no suman. Si tu cuenta tiene otras abiertas, el número es otro: siempre es la suma de las que no están en Won ni en Lost.
- Abrí Renovación 2028, con el lápiz de Details pasala a Lost y hacé clic en Save. Recargá la cuenta: vuelve a 30.000.
¿Llegaste al resultado de arriba?