Reglas de automatización

Las reglas de automatización permiten la ejecución de una o varias acciones predefinidas en respuesta a un desencadenante específico, por ejemplo, crear una actividad cuando un campo se establece en un valor específico, o archivar un registro 7 días después de su última actualización.

Al crear una regla de automatización, los filtros de dominio le permiten añadir condiciones que se deben cumplir para que la regla de automatización se ejecute, por ejemplo, la oportunidad debe estar asignada a un comercial específico, o el estado del registro no debe ser Borrador.

Las reglas de automatización las proporciona el módulo Reglas de automatización (base_automation). Si el menú descrito a continuación no está disponible, vaya a la aplicación Aplicaciones, elimine el filtro Aplicaciones de la barra de búsqueda, busque Automation Rules y haga clic en Activar.

Nota

Para gestionar las reglas de automatización se requiere el modo desarrollador y los derechos de acceso de Administración / Ajustes.

Para crear una regla de automatización, siga estos pasos:

  1. Con el modo desarrollador activado, vaya a Ajustes ‣ Técnico ‣ Automatización ‣ Reglas de automatización y haga clic en Nuevo.

  2. Seleccione el Modelo al que se aplica la regla de automatización, por ejemplo, Pedido de venta.

  3. Asigne a la regla de automatización un nombre claro y significativo que identifique su finalidad.

  4. Seleccione el desencadenante y, si es necesario, complete los campos que aparecen en la pantalla según el desencadenante elegido.

  5. Haga clic en Añadir una acción, seleccione el Tipo de acción y complete los campos que aparecen en la pantalla según la acción seleccionada.

  6. Guarde la regla de automatización.

screenshot: general-automation-rules-form
menu
Settings ‣ Technical ‣ Automation ‣ Automation Rules ‣ New
shows
Automation rule form: name, Model, Trigger and Delay fields, "Actions To Do" tab with one action line and the "Add an action" button, "Notes" tab.
highlight
The Trigger field and the "Add an action" button.
data
Rule "Follow up unhappy customers" on model Sales Order, trigger "After creation", delay 3 months.
module
base_automation
notes
English UI, developer mode active, 1440px width, crop to the form sheet.

Example

Para garantizar el seguimiento de los clientes menos satisfechos, esta regla de automatización crea una actividad 3 meses después de que se cree un pedido de venta para clientes con un porcentaje de satisfacción inferior al 30 %.

screenshot: general-automation-rules-example-activity-conditions
menu
Settings ‣ Technical ‣ Automation ‣ Automation Rules
shows
Automation rule on the Sales Order model with trigger "After creation", delay 3 months, an extra condition on the customer satisfaction field lower than 30%, and a "Create Activity" action in the "Actions To Do" tab.
highlight
The Trigger/Delay block and the extra condition.
data
Rule "Follow up unhappy customers"; activity type "To-Do".
module
base_automation, sale
notes
English UI, developer mode active, crop to the form sheet.

Truco

  • Utilice la pestaña Notas para documentar la finalidad y el funcionamiento de las reglas de automatización. Esto facilita el mantenimiento de las reglas y la colaboración entre usuarios.

  • El modelo al que se dirige la regla de automatización se establece en el campo Modelo del formulario de la regla de automatización.

  • Las reglas de automatización se pueden crear desde cualquier etapa kanban haciendo clic en el icono (Ajustes) que aparece al pasar el cursor sobre el nombre de la etapa kanban, y seleccionando Automatizaciones. En este caso, el Desencadenante se establece en La etapa se establece en de forma predeterminada, pero se puede cambiar si es necesario.

    screenshot: general-automation-rules-kanban-stage
    menu
    Project ‣ (any project) kanban view
    shows
    Kanban stage header with the gear (Settings) dropdown open, showing the "Automations" entry.
    highlight
    The "Automations" dropdown entry.
    data
    Demo project "Office Design", stage "In Progress".
    module
    base_automation, project
    notes
    English UI, crop to the stage column header and dropdown.

Desencadenante

El Desencadenante se utiliza para definir qué tipo de evento debe producirse para que se ejecute la regla de automatización. Los desencadenantes disponibles dependen del modelo. En total hay cinco categorías de desencadenantes disponibles:

Añadir condiciones

Los filtros de dominio le permiten determinar los registros a los que debe dirigirse o que debe excluir una regla de automatización. Un filtrado eficiente mejora el rendimiento general, ya que evita el procesamiento innecesario de registros que no se ven afectados por la regla.

Truco

Active el modo desarrollador antes de crear una regla de automatización para tener la mayor flexibilidad al añadir filtros de dominio.

Según el desencadenante elegido, es posible definir una o varias condiciones que un registro debe cumplir antes y/o después de que se produzca un desencadenante.

  • El Dominio antes de la actualización define las condiciones que un registro debe cumplir antes de que se produzca el evento desencadenante, por ejemplo, el registro debe tener Type = Customer Invoice y Status = Posted.

    Con el modo desarrollador activado, haga clic en Editar dominio, si está disponible, y luego en Nueva regla.

  • Las Condiciones adicionales, o en algunos casos los filtros Aplicar en, definen las condiciones que un registro debe cumplir después de que se produzca el evento desencadenante, por ejemplo, la factura de cliente debe tener Payment Status = Partially Paid.

    Con el modo desarrollador activado si es necesario, haga clic en Añadir condiciones o Editar dominio, según corresponda, y luego en Nueva regla.

Cuando se produce un desencadenante, por ejemplo, se actualiza el estado de pago de una factura de cliente contabilizada, la regla de automatización comprueba las condiciones definidas y solo ejecuta la acción si el registro cumple esas condiciones.

Example

Si la acción automatizada debe ejecutarse cuando se establece una dirección de correo electrónico por primera vez (a diferencia de modificar una dirección de correo electrónico) en un contacto existente que es una persona física y no una empresa, utilice Email is not set y Is a Company is not set como Dominio antes de la actualización y Email is set como dominio Aplicar en.

screenshot: general-automation-rules-before-update-domain
menu
Settings ‣ Technical ‣ Automation ‣ Automation Rules
shows
Automation rule on the Contact model with trigger "On save"; Before Update Domain "Email is not set" and "Is a Company is not set"; Apply on domain "Email is set".
highlight
The Before Update Domain and Apply on fields.
data
Rule "Welcome new individual contacts".
module
base_automation, contacts
notes
English UI, developer mode active, crop to the trigger section.

Nota

El Dominio antes de la actualización no se comprueba al crear un registro.

Valores actualizados

Desencadena acciones automatizadas cuando se producen cambios específicos en la base de datos. Los desencadenantes disponibles en esta categoría dependen del modelo y se basan en cambios comunes, como añadir una etiqueta específica (por ejemplo, a una tarea) o establecer el valor de un campo (por ejemplo, establecer el campo Usuario).

Seleccione el desencadenante y, a continuación, seleccione un valor si es necesario.

Eventos de correo electrónico

Desencadena acciones automatizadas al recibir o enviar correos electrónicos:

  • Al recibir un mensaje: cuando se recibe un mensaje en el registro.

  • Al enviar un mensaje: cuando se envía un mensaje desde el registro.

Estos desencadenantes solo están disponibles para modelos que tienen chatter.

Condiciones de tiempo

Desencadena acciones automatizadas en un momento determinado en relación con un campo de fecha o con la creación o actualización de un registro. Están disponibles los siguientes desencadenantes:

  • Según el campo de fecha: la acción se desencadena un periodo de tiempo determinado antes o después de la fecha del campo de fecha seleccionado.

  • Tras la creación: la acción se desencadena un periodo de tiempo determinado después de que se cree y guarde un registro.

  • Tras la última actualización: la acción se desencadena un periodo de tiempo determinado después de que se edite y guarde un registro existente.

A continuación, puede definir:

  • un Retraso: especifique el número de minutos, horas, días o meses. Para que una acción se ejecute antes de la fecha del desencadenante, especifique un número negativo. Si seleccionó el desencadenante Según el campo de fecha, también debe seleccionar el campo de fecha que se utilizará para determinar el retraso.

    Nota

    De forma predeterminada, el planificador comprueba las reglas de automatización desencadenadas por tiempo cada 240 minutos, es decir, 4 horas. Esta frecuencia suele ser suficiente para retrasos como 3 meses después de la fecha del pedido o 7 días después de la última actualización.

    Para retrasos inferiores al equivalente a 2400 minutos, o 40 horas, el sistema recalcula la frecuencia de esta comprobación para garantizar que los retrasos más precisos, por ejemplo, 1 hora antes de la fecha y hora de inicio del evento, o 30 minutos después de la creación, se respeten lo más fielmente posible.

    Un mensaje en pantalla indica el posible retraso tras el desencadenamiento planificado de la regla.

    screenshot: general-automation-rules-trigger-delay-message
    menu
    Settings ‣ Technical ‣ Automation ‣ Automation Rules
    shows
    Timing trigger with a delay and the grey information message below it about the possible delay after the scheduled execution of the rule.
    highlight
    The information message.
    module
    base_automation
    notes
    English UI, crop to the trigger/delay block.

    Para ver o editar manualmente la frecuencia del planificador, con el modo desarrollador activado, vaya a Ajustes ‣ Técnico ‣ Acciones planificadas para ver todas las acciones planificadas de su base de datos.

    Introduzca Automation en la barra de búsqueda y, en la lista de resultados, haga clic en Automation Rules: check and execute. Si lo desea, actualice el valor del campo Ejecutar cada. Haga clic en Ejecutar manualmente en cualquier momento para desencadenar manualmente esta acción planificada.

  • Condiciones adicionales: haga clic en Añadir condición y especifique las condiciones que se deben cumplir para que se ejecute la regla de automatización. Haga clic en Nueva regla para añadir otra condición.

La acción se ejecuta cuando se alcanza el retraso y se cumplen las condiciones.

Example

Para enviar un correo electrónico de recordatorio 30 minutos antes del inicio de un evento de calendario, seleccione Inicio (evento de calendario) como campo de fecha para el Desencadenante y establezca el Retraso en -30 Minutos.

screenshot: general-automation-rules-timing-trigger
menu
Settings ‣ Technical ‣ Automation ‣ Automation Rules
shows
Automation rule on the Calendar Event model with trigger "Based on date field", Delay "-30 Minutes" and trigger date "Start".
highlight
The Trigger, Delay and date field.
data
Rule "Meeting reminder".
module
base_automation, calendar
notes
English UI, crop to the trigger section.

Personalizado

Desencadena acciones automatizadas:

  • Al guardar: cuando se guarda un registro.

  • Al eliminar: cuando se elimina un registro.

  • Al archivar / Al desarchivar: cuando se archiva o restaura un registro, para modelos que se pueden archivar.

  • Al cambiar la interfaz: cuando se cambia el valor de un campo en la vista de formulario, incluso antes de que se guarde el registro.

Para los desencadenantes Al guardar y Al cambiar la interfaz, debe seleccionar el o los campos que se utilizarán para desencadenar la regla de automatización en el campo Al actualizar.

Advertencia

Si no se selecciona ningún campo en el campo Al actualizar, la acción automatizada se puede ejecutar varias veces por registro.

De forma opcional, también puede definir condiciones adicionales que se deben cumplir para desencadenar la regla de automatización en el campo Aplicar en.

Example

Para desencadenar una acción automatizada al crear un registro, por ejemplo, cuando se crea un nuevo contacto, seleccione el desencadenante Al guardar y utilice ID is not set como Dominio antes de la actualización e ID is set como dominio Aplicar en. Asegúrese de que se selecciona el campo correcto en el campo Al actualizar.

Cuando se guarda un nuevo contacto, se le asigna automáticamente un ID de base de datos, lo que desencadena la regla de automatización.

screenshot: general-automation-rules-on-save-creation
menu
Settings ‣ Technical ‣ Automation ‣ Automation Rules
shows
Automation rule on the Contact model with trigger "On save", Before Update Domain "ID is not set", Apply on "ID is set" and the "When updating" field filled.
highlight
The two domains and the "When updating" field.
module
base_automation, contacts
notes
English UI, developer mode active, crop to the trigger section.

Nota

El desencadenante Al cambiar la interfaz solo se puede utilizar con la acción Ejecutar código y solo funciona cuando la modificación se realiza manualmente. La acción no se ejecuta si el campo se modifica a través de otra regla de automatización.

Externo

Desencadena acciones automatizadas basadas en un evento específico en un sistema o aplicación externos mediante un webhook.

Una vez configurado el webhook en Odoo, donde se genera la URL del webhook y se define el registro de destino, debe implementarse en el sistema externo.

Advertencia

Se recomienda encarecidamente consultar con un desarrollador, un arquitecto de soluciones u otro perfil técnico al decidir utilizar webhooks y durante todo el proceso de implementación. Si no se configuran correctamente, los webhooks pueden alterar la base de datos de Odoo y su reversión puede llevar tiempo.

screenshot: general-automation-rules-webhook-trigger
menu
Settings ‣ Technical ‣ Automation ‣ Automation Rules
shows
Automation rule with trigger "On webhook": the generated webhook URL with copy button, the "Target Record" field, the "Log Calls" option and an "Update Record" action.
highlight
The webhook URL field.
module
base_automation
notes
English UI, developer mode active; blur the UUID part of the URL.

Nota

También es posible configurar una acción automatizada que envíe datos al webhook de un sistema externo cuando se produzca un evento en su base de datos de Odoo.

Acciones

Una vez que haya definido el desencadenante de la regla de automatización, haga clic en Añadir una acción en la pestaña Acciones por realizar para definir la acción que se va a ejecutar.

Truco

Puede definir varias acciones para la misma regla de automatización. De forma predeterminada, las acciones se ejecutan en el orden en que se definieron.

Esto significa, por ejemplo, que si define una acción Actualizar registro y luego una acción Enviar correo electrónico en la que el correo hace referencia al campo que se actualizó, el correo utiliza los valores actualizados. Sin embargo, si la acción Enviar correo electrónico se define antes que la acción Actualizar registro, el correo utiliza los valores establecidos antes de que se actualice el registro.

Para cambiar el orden de las acciones definidas, haga clic en el icono (controlador de arrastre) situado junto a una acción y arrástrelo hasta la posición deseada.

Actualizar registro

Esta acción actualiza uno de los campos (relacionados) del registro. Haga clic en el campo Actualizar y, en la lista que se abre, seleccione o busque el campo que desea actualizar. Si es necesario, haga clic en el icono (flecha derecha) junto al nombre del campo para acceder a la lista de campos relacionados.

Si seleccionó un campo many2many, elija si el campo debe actualizarse Añadiendo, Eliminando o Estableciéndolo en el valor seleccionado, o Vaciándolo.

Example

Si desea que la acción automatizada elimine una etiqueta del registro del cliente, establezca el campo Actualizar en Cliente > Etiquetas, seleccione Eliminando y, a continuación, seleccione la etiqueta.

screenshot: general-automation-rules-update-record-tags
menu
Settings ‣ Technical ‣ Automation ‣ Automation Rules ‣ Add an action
shows
Action dialog with Type "Update Record", Update field "Customer > Tags", "by Removing" selected and one tag chosen.
highlight
The Update field and the by Adding/Removing/Setting it to/Clearing it choice.
module
base_automation
notes
English UI, crop to the dialog.

Truco

También puede establecer el campo de un registro de forma dinámica mediante código Python. Para ello, seleccione Calcular en lugar de Actualizar e introduzca el código que se utilizará para calcular el valor del campo. Por ejemplo, si desea que la regla de automatización calcule un campo de fecha y hora personalizado cuando la prioridad de una tarea se establece en High (marcando la tarea con una estrella), puede definir el desencadenante La prioridad se establece en en High y definir la acción Actualizar registro de la siguiente manera:

screenshot: general-automation-rules-update-record-compute
menu
Settings ‣ Technical ‣ Automation ‣ Automation Rules ‣ Add an action
shows
Action dialog with Type "Update Record", "Compute" selected instead of "Update", a custom datetime field of the Task model and a short Python expression.
highlight
The Compute toggle and the expression.
module
base_automation, project
notes
English UI, developer mode active, crop to the dialog.

Crear actividad

Esta acción se utiliza para planificar una nueva actividad vinculada al registro. Seleccione un Tipo de actividad, introduzca un Título y una descripción, especifique cuándo desea que se planifique la actividad en el campo Fecha límite en y seleccione un Tipo de usuario:

  • Para asignar siempre la actividad al mismo usuario, seleccione Usuario específico y añada el usuario en el campo Responsable;

  • Para dirigirse a un usuario vinculado al registro de forma dinámica, seleccione Usuario dinámico (según el registro) y cambie el Campo de usuario si es necesario.

Example

Tras convertir una iniciativa en una oportunidad, desea que la acción automatizada configure una llamada para el usuario responsable de la iniciativa. Para ello, establezca el Tipo de actividad en Llamada y el Tipo de usuario en Usuario dinámico (según el registro).

screenshot: general-automation-rules-create-activity
menu
Settings ‣ Technical ‣ Automation ‣ Automation Rules ‣ Add an action
shows
Action dialog with Type "Create Activity", Activity Type "Call", User Type "Dynamic User (based on record)" and User Field "Salesperson".
highlight
The Activity Type and User Type fields.
module
base_automation, mail, crm
notes
English UI, crop to the dialog.

Enviar correo electrónico y Enviar SMS

Estas acciones se utilizan para enviar un correo electrónico o un mensaje de texto a un contacto vinculado a un registro específico. Para ello, seleccione o cree una Plantilla de correo electrónico o una Plantilla de SMS y, a continuación, en el campo Enviar correo electrónico como o Enviar SMS como, elija cómo desea enviar el correo electrónico o el mensaje de texto:

  • Correo electrónico: para enviar el mensaje como un correo electrónico a los destinatarios de la Plantilla de correo electrónico.

  • Mensaje: para publicar el mensaje en el registro y notificar a los seguidores del registro.

  • Nota: para enviar el mensaje como una nota interna visible para los usuarios internos en el chatter.

  • SMS (sin nota): para enviar el mensaje como un mensaje de texto a los destinatarios de la Plantilla de SMS.

  • SMS (con nota): para enviar el mensaje como un mensaje de texto a los destinatarios de la Plantilla de SMS y publicarlo como una nota interna en el chatter.

  • Solo nota: para publicar el mensaje únicamente como una nota interna en el chatter.

Añadir seguidores y Eliminar seguidores

Esta acción se utiliza para suscribir o dar de baja a contactos existentes en el registro.

Crear registro

Esta acción se utiliza para crear un nuevo registro en cualquier modelo.

Seleccione el modelo requerido en el campo Registro a crear; de forma predeterminada, contiene el modelo actual. Especifique un Nombre para el registro y, si desea crear el registro en otro modelo, seleccione un campo en Campo de enlace para vincular el registro que desencadenó la creación del nuevo registro.

Nota

La lista desplegable relacionada con el campo Campo de enlace solo contiene los campos one2many existentes en el modelo actual que están vinculados a un campo many2one en el modelo de destino.

Truco

Puede crear otra regla de automatización con acciones Actualizar registro para actualizar los campos del nuevo registro si es necesario. Por ejemplo, puede utilizar una acción Crear registro para crear una nueva tarea de proyecto y, a continuación, asignarla a un usuario específico mediante una acción Actualizar registro.

Ejecutar código

Importante

El código personalizado se ejecuta con los derechos de la regla de automatización y no está cubierto por las actualizaciones estándar. Solicite a un desarrollador que lo escriba y lo mantenga.

Esta acción se utiliza para ejecutar código Python. Puede escribir su código en la pestaña Código utilizando las siguientes variables:

  • env: entorno en el que se desencadena la acción

  • model: modelo del registro en el que se desencadena la acción; es un conjunto de registros vacío

  • record: registro en el que se desencadena la acción; puede estar vacío

  • records: conjunto de registros de todos los registros en los que se desencadena la acción en modo múltiple; puede dejarse vacío

  • time, datetime, dateutil, timezone: bibliotecas de Python útiles

  • float_compare: función de utilidad para comparar números de punto flotante según una precisión específica

  • log(message, level='info'): función de registro para guardar información de depuración en la tabla ir.logging

  • _logger.info(message): registrador para emitir mensajes en los registros del servidor

  • UserError: clase de excepción para generar mensajes de advertencia dirigidos al usuario

  • Command: espacio de nombres de comandos x2many

  • action = {...}: para devolver una acción

Truco

Las variables disponibles se describen tanto en la pestaña Código como en la pestaña Ayuda.

Enviar notificación de webhook

Esta acción se utiliza para enviar una solicitud de API POST con los valores de los Campos seleccionados a la URL del webhook especificada en el campo URL.

El Payload de ejemplo proporciona una vista previa de los datos incluidos en la solicitud, utilizando los datos de un registro aleatorio o datos ficticios si no hay ningún registro disponible.

Nota

También es posible configurar una acción automatizada que utilice un webhook para recibir datos de un sistema externo cuando se produzca un evento predefinido en dicho sistema.

Ejecutar acciones existentes

Esta acción se utiliza para desencadenar varias acciones (vinculadas al modelo actual) al mismo tiempo. Para ello, haga clic en Añadir una línea y, en la ventana emergente Añadir: acciones secundarias, seleccione una acción existente o haga clic en Nuevo para crear una nueva.