Creando acciones automatizadas en Odoo 16

Pequeño tutorial para crear acciones automatizadas en tu Odoo 16 ERP


En este blog aprenderemos:
-Activar la consola de desarrollador en Odoo 16.
-Crear acciones automatizadas sobre el modelo Mensaje que vengan en Lead/Oportunidad.
-Agregar código en python al evento de creación.
-Revisar los Registros para revisar errores o pintar "Logs".

Activar modo desarrollador
Nos vamos a ajustes  y en la parte inferior damos click en "Activar modo de desarrollador" hasta que veamos la imagen de un insecto pintarse en la esquina superior derecha y se desplieguen nuevos menús.


Crear una nueva acción planificada
En el menú "Técnico" que ahora es visible hacer click en la opción "Acciones automatizadas"
y oprimimos el botón de "Crear".


El nombre es a discreción del usuario
El modelo escogemos "Mensaje" que son los mensajes de tipo "Mail" que llegan de las campañas a un nuevo "Lead/Oportunidad" y el disparador será la "Al crear".



En "Aplicar en: " pusimos un filtro para que nuestro modelo o documento relacionado sean los "Leads/Oportunidades" que llegan con mensajes de correo, que no vengan de un remitente de chatbot y que los mensajes en efecto sean del tipo "email".


En "Acción a realizar" escogemos "Ejecutar el código python" y escribimos nuestro código.


12: log('BODY: '+record.body, level='info')
13: idx_begin = record.body.find('Page URL: ')
14: idx_ends = record.body.find('User Agent: ')
15: if idx_begin>-1:
16: url_campaña= record.body[idx_begin+10:idx_ends-3]
17: log('Page URL: '+url_campaña,level='info')
18: lead = env['crm.lead'].search([('id','=', record.res_id)])
19: lead.write({'x_url_campaña': url_campaña})

La linea 12 es un "log" o registro para saber si entra al disparador, son simples representaciones en texto de nuestro código log() para darnos idea de que esta pasando en nuestro código.
Y estos se revisan en Menú -> Técnico -> Registros



Las lineas  13 y 14  son para ubicar dentro del correo la info que necesitamos, en mi caso requiero que busque la url de la campaña dentro del cuerpo del correo.

13: idx_begin = record.body.find('Page URL: ')
14: idx_ends = record.body.find('User Agent: ')


Si hay coincidencia, obtengo el texto desde las posiciones de inicio y fin para guardar  la url de la campaña en lineas 16 y 17 .

15: if idx_begin>-1:
16: url_campaña= record.body[idx_begin+10:idx_ends-3]

Aquí en las lineas 18 y 19 obtengo a que lead/oportunidad pertenece esta nota de correo electrónico y le asigno el valor a un campo personalizado la url de la campaña encontrada en el body y lo escribo en lead.

18:  lead = env['crm.lead'].search([('id','=', record.res_id)])
19: lead.write({'x_url_campaña': url_campaña})


Resultado:
Correo original:

Lead con campo personalizado:




Conclusion: esta solución fue personalizada pero en realidad así puedes leer cualquier linea del cuerpo de correo electrónico que se genera en los Leads/Oportunidades y asignarlas a cualquier campo sea personalizado o no. 

Si tienes comentarios o preguntas no dudes en contactar a los expertos, tus amigos de Conectika.tech

 Contactanos





en Odoo
Administración Conéctika.Tech 1 de junio de 2023
Compartir
Categorías
Nuestros blogs
Iniciar sesión dejar un comentario
Implementando Conectika ERP
Aquí te dejamos una descripción sencilla de los 6 pasos para implementar el sistema Conéctika.Tech ERP (Planificador de Recursos Empresariales):