Cómo crear acciones automatizadas y planificadas en Odoo

Tutorial práctico para realizar automatizaciones en Odoo

En Odoo existen diversas formas de automatizar tareas y procesos, tales como el envío de emails, ejecución de un script, validación de facturas, etc…

Como administradores de Odoo, disponemos de dos funcionalidades para automatizar tareas: acciones automáticas o acciones planificadas y las dos las tenemos disponibles en el menú de  Ajustes > Técnico > Acciones automatizadas / Acciones planificadas, siempre habiendo activado el modo desarrollador previamente (debug).

Acciones automatizadas en Odoo


Las acciones automatizadas son tareas que se ejecutan dependiendo de un evento. En el sistema estableceremos el activador que va a hacer "disparar" esa acción.  Por ejemplo, establecer una actividad de llamada automática cuando la satisfacción de los clientes que llevan al menos 1 mes con nosotros baja de un 30%.

Cada acción automatizada y planificada se realiza sobre un modelo: presupuesto, venta periódica, proyecto. El listado de modelos puede visualizarse completo en Ajustes > Técnico > Estructura de la base de datos > Modelos

Odoo • Text and Image


Para crear la acción automatizada vamos a Ajustes > Técnico > Acciones automatizadas, hacemos clic en Crear. Vamos a suponer que queremos cancelar automáticamente los presupuestos que han pasado la fecha de caducidad del presupuesto .  Indicaremos los siguientes datos: 

Modelo: indicamos el modelo sobre el que va a aplicar la acción, en este caso presupuesto. 

Después debemos añadir la acción a realizar entre las disponibles: 

  • Ejecutar un código python

  • Crear un registro

  • Actualizar un registro: en este caso seleccionaríamos esta opción ya que queremos actualizar ese presupuesto para pasar a un nuevo estado. 

  • Ejecutar varias acciones: ejecutar otra acción automatizada (o varias)  que ya esté creada

  • Enviar correo electrónico

  • Añadir seguidores

Condición desencadenante:

  • Al crear

  • Al actualizar

  • Al crear y actualizar

  • Al eliminar

  • En base a una modificación de formulario

  • En base a una condición de tiempo: en este caso seleccionaremos basado en una condición de tiempo ya que la acción se realizará pasada una fecha en concreto. 

Aplicar sobre: aquí segmentamos los campos del modelo en los que queremos que se realice la acción. Por ejemplo: estado “draft” y ·sent” del modelo “presupuesto”, que serían los presupuestos que se encuentren en estado en proceso o presupuesto, excluyendo a los presupuestos que ya están en estado pedido de venta y que no queremos que se cancelen. 

Dependiendo de la condición desencadenante los siguientes parámetros pueden variar:

  • Basado en una condición de tiempo = fecha activación / retraso después de la fecha de activación

  • Basado en una modificación de formulario = activar campos a modificar

  • Al actualizar = debes indicar cómo está el registro antes de actualizar el dominio y después. Por ejemplo: enviar un correo electrónico cuando un registro pasa del estado “X” al estado “Y”.

En nuestro caso al haber seleccionado "basado en una condición de tiempo", el sistema nos indica que debemos seleccionar la fecha de activación y retraso en la activación. 

En fecha de activación seleccionaremos "Fecha de caducidad (sale.order) y nos aparecerá la opción retraso después de la fecha de activación para que indiquemos, si lo necesitásemos, los días que deben de pasar tras esa fecha para que se realice la acción. En este caso indicaremos 1 día tras la fecha de caducidad.

Data to write

En este apartado indicaremos los campos que deben actualizarse una vez que llegue la fecha de activación. En este caso indicaremos el "Estado" del presupuesto, indicándole el nuevo valor que será 'cancel' (cancelado) y, en este caso además, indicaremos el motivo de cancelación para diferenciarlos del resto de presupuestos cancelados. El motivo será 'caducado', deberemos indicar el id del valor caducado, que en este caso es el id nº 2. 

Una vez creada la acción y activa el sistema realizará las siguientes comprobaciones: 

  • Comprobará los presupuestos en estado "presupuesto" y "presupuesto enviado"

  • Comprobará la fecha de activación (fecha de caducidad)

  • 1 día después de la fecha de activación actualizará el registro: 

    • Pasará del estado "presupuesto" o "presupuesto enviado" a "cancelado" caducidad del presupuesto

    • Establecerá el motivo de presupuesto que corresponda con el id 2, en este caso, "caducado"



Acciones planificadas en Odoo

Las acciones planificadas son tareas que se ejecutan periódicamente. Por ejemplo, enviar un correo electrónico cada X tiempo, validar todas las facturas que están en estado borrador el día X de cada mes.

De base Odoo ya incorpora muchas acciones planificadas que son las responsables de muchos procesos que tenemos normalizamos en Odoo por ejemplo, que se generen las facturas mensuales procedentes de una suscripción y esto ocurre gracias a las acciones planificadas por defecto. 

En la imagen de la derecha podemos ver la configuración interna de la acción planificada que genera las órdenes de reabastecimiento cuando tenemos un stock por debajo de lo establecido. 

Odoo • Text and Image

Además de las creadas por el sistema,  nosotros también podemos crear nuestras propias acciones planificadas para que el sistema compruebe periódicamente (el tiempo que hayamos establecido) si se cumplen las condiciones para disparar las acciones que deseamos. 

  • Modelo: indicamos el modelo sobre el que va a aplicar la acción, en este caso suscripciones. 

  • Usuario del planificador: usuario que ejecuta la acción

  • Ejecutar cada: indicamos cada cuanto tiempo va a ejecutarse la acción, cada día, cada mes, cada hora.. 

  • Activo: check para indicar si la acción se activa o se desactiva. 

  • Siguiente fecha de ejecución: fecha en la que va a tener lugar la próxima acción. 

  • Número de ejecuciones: nº de veces que se llama al método. Si se establece un número negativo el nº es ilimitado. 

  • Prioridad: prioridad con la que queremos que se realice la acción, 0 es la prioridad más alta y 10 la más baja. 

  • Repetir perdidos: si hay una caída del sistema y quedan registros sin completar la acción, estos registros se ejecutarán cuando el servidor se reinicie. 

En la pestaña de Código Python podremos escribir directamente el código o indicar el modelo en nuestra base de datos al que debe llamar el sistema. 

Ejemplo: Generar facturas recurrentes y pagos desde suscripciones. 


Si necesitamos forzar la acción podemos hacerlo desde el botón “Ejecutar manualmente” y no tendremos que esperar hasta la siguiente fecha de ejecución. 

Es muy importante tener en cuenta que podemos forzar la ejecución aunque la acción no esté activa (no tenga el check de activo marcado), ya que igualmente se ejecutará. 

Esperamos que hayas aprendido un poco más sobre acciones automatizadas y planificadas en Odoo y puedas ponerlo en práctica en tu negocio. Si aún no utilizas Odoo en tu empresa y estás planteándote implantar un ERP completo pero a la vez sencillo de usar, no dudes en contactar con nosotros y te informaremos sin ningún compromiso. ¡También si ya dispones de Odoo pero necesitas que te echemos una mano con cualquier funcionalidad!  

Y si te ha gustado el post, ¡no olvides compartirlo en tus redes sociales!