Cómo crear acciones automatizadas y planificadas en Odoo
Tutorial práctico para realizar automatizaciones en Odoo

Escrito por Jesús López - Project Manager

Cómo crear acciones automatizadas en Odoo

En el entorno empresarial actual, la eficiencia y la productividad son factores clave para el éxito. Cada minuto cuenta y optimizar tus operaciones puede marcar la diferencia entre el crecimiento o estancamiento de tu empresa. Es aquí donde Odoo, el popular software de gestión empresarial de código abierto, entra en escena. 

Existen diversas formas de automatizar tareas y procesos en Odoo, tales como el envío de emails, ejecución de un script, validación de facturas, etc… En este artículo, exploraremos cómo crear acciones automatizadas y planificadas en Odoo y cómo pueden beneficiar a tu negocio.

  1. Acciones automatizadas en Odoo
  2. Acciones planificadas en Odoo

¿Quieres incorporar Odoo en tu negocio? Agenda gratis una demostración gratuita hoy mismo

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%.

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

Cada acción automatizada y planificada en Odoo 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

acciones automatizadas odoo modelos para acciones automatizadas en odoo

Para crear la acción automatizada vamos a Ajustes > Técnico > Acciones automatizadas, y hacemos clic en Crear. Ahora, 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
  • Enviar correo electrónico
  • Añadir seguidores

Además, debemos establecer cuál será la 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.

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, indicaremos el motivo de cancelación para diferenciarlos del resto de presupuestos cancelados. El motivo será "caducado" y deberemos indicar el id del valor caducado, que en este caso es el id nº 2. 

Una vez creada la acción 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". Posteriormente establecerá el motivo de presupuesto que corresponda con el id nº 2, en este caso, "caducado"

cancelar presupuestos odoo

¿Quieres incorporar Odoo en tu negocio? Agenda gratis una demostración gratuita hoy mismo

Acciones planificadas en Odoo

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

De base ya se incorporan muchas acciones planificadas en Odoo que son las responsables de que muchos procesos que tenemos normalizados, como por ejemplo, que se generen las facturas mensuales procedentes de una suscripción. 

En la siguiente imagen 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. 

ejecutar programador odoo

Además de las creadas por el sistema, nosotros también podemos crear nuestras propias acciones planificadas en Odoo 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

acciones planificadas en odoo

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.

¿Quieres incorporar Odoo en tu negocio? Agenda gratis una demostración gratuita hoy mismo


    Fuentes consultadas:

        Página oficial de Odoo

Su fragmento dinámico se mostrará aquí... Este mensaje se muestra porque no proporcionó tanto un filtro como una plantilla para usar.