Actualizando iniciativas en Odoo en forma masiva

Gustavo Orrillo
- 11/11/2018

Días atras nos preguntaron si era posible capturar los contenidos de un e-mail y cargarlo en Odoo. Y dijimos que sí. Dicho e-mail tenía un contenido HTML en el que habían multiples tablas, cada una listando los datos de una oportunidad. La ídea entonces era, capturar los contenidos del e-mail y por cada tabla que representaba una oportunidad; crear una oportunidad en Odoo.

Es un trabajo de múltiples etapas. Sobre todo teniendo en cuenta que uno busca automatizar esta tarea.

La primer etapa consiste en tomar como ejemplo un e-mail, descargar su contenido en formato HTML, para analizarlo. Dicho análisis consiste en desarrollar un script en Python que con BeautifulSoup, pueda extraer los datos de las múltiples oportunidades. Seguidamente con XMLRPC, se procede a actualizar las oportunidades de Odoo. Este es u primer paso de exploración por sobre todo, debido a que se debe establecer como extraer las oportunidades de los e-mails, y que cambios son necesarios hacer a la estructura de los leads en Odoo para acomodar la nueva información.

La segunda etapa consiste en establecer como hacer el matcheo de las oportunidades a los partners en Odoo. Esto no es precisamente un arte, pero es un trabajo ad-hoc cliente por cliente, debido  a que los nombres no se encuentran estandarizados. 

La tercer etapa, que muchas veces se lleva a cabo concurrentemente con la segunda, consiste en automatizar el proceso. Y aqui hay dos posibilidades y ambas involucran el desarrollo de un  módulo. La primer posbiilidad consiste en descargar un archivo de e-mail en forma manual para que luego el usuario lo cargue al sistema. La segunda es que Odoo automaticamente se conecte a una caasilla de correos, descargue el contenido y automaticamente actualice las oportunidades.

Recapitulando, es un mini-proyecto en si pero vale la pena. Dificilmente encuentre un módulo en Odoo que cumpla con sus necesidades. Precisamente porque los formatos varían de fuente de datos en fuente de datos. Pueden haber cientos de fuentes de datos diferentes (emails, archivos CSV, JSON) y sus necesidades de captura pueden ser diferentes. Es por ello que se necesita un equipo (pequeño) de desarrolladores que pueda realizar esta tarea.