Skip to Content
Odoo Meniu
  • Autentificare
  • Try it free
  • Aplicații
    Finanțe
    • Contabilitate
    • Facturare
    • Cheltuieli
    • Spreadsheet (BI)
    • Documente
    • Semn
    Vânzări
    • CRM
    • Vânzări
    • POS Shop
    • POS Restaurant
    • Abonamente
    • Închiriere
    Site-uri web
    • Constructor de site-uri
    • eCommerce
    • Blog
    • Forum
    • Live Chat
    • eLearning
    Lanț Aprovizionare
    • Inventar
    • Producție
    • PLM
    • Achiziție
    • Maintenance
    • Calitate
    Resurse Umane
    • Angajați
    • Recrutare
    • Time Off
    • Evaluări
    • Referințe
    • Flotă
    Marketing
    • Social Marketing
    • Marketing prin email
    • SMS Marketing
    • Evenimente
    • Automatizare marketing
    • Sondaje
    Servicii
    • Proiect
    • Foi de pontaj
    • Servicii de teren
    • Centru de asistență
    • Planificare
    • Programări
    Productivitate
    • Discuss
    • Aprobări
    • IoT
    • VoIP
    • Knowledge
    • WhatsApp
    Aplicații Terțe Odoo Studio Platforma Odoo Cloud
  • Industrii
    Retail
    • Book Store
    • Magazin de îmbrăcăminte
    • Magazin de Mobilă
    • Magazin alimentar
    • Magazin de materiale de construcții
    • Magazin de jucării
    Food & Hospitality
    • Bar and Pub
    • Restaurant
    • Fast Food
    • Guest House
    • Distribuitor de băuturi
    • Hotel
    Proprietate imobiliara
    • Real Estate Agency
    • Firmă de Arhitectură
    • Construcție
    • Estate Managament
    • Grădinărit
    • Asociația Proprietarilor de Proprietăți
    Consultanta
    • Firma de Contabilitate
    • Partener Odoo
    • Agenție de marketing
    • Law firm
    • Atragere de talente
    • Audit & Certification
    Producție
    • Textil
    • Metal
    • Mobilier
    • Mâncare
    • Brewery
    • Cadouri corporate
    Health & Fitness
    • Club Sportiv
    • Magazin de ochelari
    • Centru de Fitness
    • Wellness Practitioners
    • Farmacie
    • Salon de coafură
    Trades
    • Handyman
    • IT Hardware and Support
    • Asigurare socială de stat
    • Cizmar
    • Servicii de curățenie
    • HVAC Services
    Altele
    • Organizație nonprofit
    • Agenție de Mediu
    • Închiriere panouri publicitare
    • Fotografie
    • Închiriere biciclete
    • Asigurare socială
    Browse all Industries
  • Comunitate
    Învăță
    • Tutorials
    • Documentație
    • Certificări
    • Instruire
    • Blog
    • Podcast
    Empower Education
    • Program Educațional
    • Scale Up! Business Game
    • Visit Odoo
    Obține Software-ul
    • Descărcare
    • Compară Edițiile
    • Lansări
    Colaborați
    • Github
    • Forum
    • Evenimente
    • Translations
    • Devino Partener
    • Services for Partners
    • Înregistrează-ți Firma de Contabilitate
    Obține Servicii
    • Găsește un Partener
    • Găsiți un contabil
    • Meet an advisor
    • Servicii de Implementare
    • Referințe ale clienților
    • Suport
    • Actualizări
    Github Youtube Twitter Linkedin Instagram Facebook Spotify
    +1 (650) 691-3277
    Obține un demo
  • Prețuri
  • Ajutor

Odoo is the world's easiest all-in-one management software.
It includes hundreds of business apps:

  • CRM
  • e-Commerce
  • Contabilitate
  • Inventar
  • PoS
  • Proiect
  • MRP
All apps
Trebuie să fiți înregistrat pentru a interacționa cu comunitatea.
All Posts Oameni Insigne
Etichete (View all)
odoo accounting v14 pos v15
Despre acest forum
Trebuie să fiți înregistrat pentru a interacționa cu comunitatea.
All Posts Oameni Insigne
Etichete (View all)
odoo accounting v14 pos v15
Despre acest forum
Suport

customize the auto lead creation through incoming emails

Abonare

Primiți o notificare când există activitate la acestă postare

Această întrebare a fost marcată
mailmessagingcrmfetchmail
4 Răspunsuri
29326 Vizualizări
Imagine profil
RU3IX PTY LTD

Hi,

I have requirement to customize the subject of the lead which is automatically created when the emails are fetched, is their anyway in the server action I could control what needs to have in the subject field when a new lead is created.

Thanks

2
Imagine profil
Abandonează
Lucio

I am not sure what are you asking. The only thing you want to do is to change the name of the lead being created, no matter what?

Imagine profil
Lucio
Cel mai bun răspuns

The function that is being called when a message arrives is message_new that is present in mail_thread, but in many cases is re-implemented by modules that need to create objects from mails.

def message_new(self, cr, uid, msg_dict, custom_values=None, context=None):
...
    if custom_values and isInstance(custom_values,dict):
        data.update(custom_values)
    res_id = model.pool.create(cr, uid, data, context=context)
    return res_id

as you can see, you have the parameter msg_dict. Of course, in there is where you get 'the mail' as a dictionary with the different values (e.g. the body, email_from, subject). By updating custom_values.update({'name': 'whatever you want'})

If you choose to re-implement this method, you can put in a dictionary called custom_values all values that are going to be used in the creation of the new object (if any). As key you must use the name of the columns of the object being created (in this case, the lead). After this, you could even call the method message_new defined in mail_thread or not, depending in your particular requirements.

Also, when a message for an object already created arrives, the function that is being called is message_update. In there, with a similar functionality as the ut supra explained, you can put the values that you want to update for the existing object (in this case, a dictionary called update_vals is where you need to put the new values).

def message_update(self, cr, uid, ids, msg_dict, update_vals=None, context=None):
    if update_vals:
        self.write(cr, uid, ids, update_vals, context=context)
5
Imagine profil
Abandonează
Imagine profil
Anton
Cel mai bun răspuns

I solved in this way:

  1. First of all - setup "incoming mail server".

  2. Setup "Create a new record" - crm.lead.

  3. Create new server action with type "python code".

  4. There is python code example:

    def parse_description(description):
      '''
       there is parse function
       It is example for parsing messages like this:
    
       Name: John
       Phone: +100500
      '''
      fields=['name','phone']
      _dict={}
      description=description.lower()
      for line in description.split('\n'):
        for field in fields:
            if field in line:
                split_line=line.split(':')
                if len(split_line)>1:
                    pre_dict[field]=line.split(':')[1]
      return  dict
    
lead=self.browse(cr,uid,context['active_id'],context=context)
description=lead['description']
_dict=parse_description(description)
self.write(cr,uid,context['active_id'],{
                        'partner_name':_dict.get('name'),
                        'contact_name':_dict.get('name'),
                        'phone':_dict.get(u'phone'),
                        'mobile':_dict.get(u'phone')})

Of couse for good results you should know python language - the main place is "parse_description" function.

2
Imagine profil
Abandonează
Arun

My requirement is to fetch mails and create leads in crm_lead :-)

I Configured Incoming Server :-) http://Pop.gmail.com With All info :-)

But How to proceed Further

Vaibhav

Thanks .... Anton Lavrenov :)

Atul Kumar jain

Atul : I got these traceback while i am fetching mail 2014-07-01 13:39:40,188 4992 INFO v8_demo openerp.addons.mail.mail_thread: Routing mail from Atul Jain <jain.atul43@gmail.com> to jain.atul10@hotmail.com with Message-Id <CAG=2G76_SRthL3ybGGyx2Lai5H=RMNxUOjRRR=+5-ODrcgtEZw@mail.gmail.com>: fallback to model:crm.lead, thread_id:False, custom_values:None, uid:1 2014-07-01 13:39:40,445 4992 ERROR v8_demo openerp.addons.fetchmail.fetchmail: Failed to fetch mail from imap server Gmail. Traceback (most recent call last): File "/home/atul/openerp-8/openerp/addons/fetchmail/fetchmail.py", line 206, in fetch_mail action_pool.run(cr, uid, [server.action_id.id], {'active_id': res_id, 'active_ids' :[res_id], 'active_model': context.get("thread_model", server.object_id.model)}) File "/home/atul/openerp-8/openerp/addons/base/ir/ir_actions.py", line 967, in run res = func(cr, uid, action, eval_context=eval_context, context=run_context) File "/home/atul/openerp-8/openerp/addons/base/ir/ir_actions.py", line 805, in run_action_code_multi eval(action.code.strip(), eval_context, mode="exec", nocopy=True) # nocopy allows to return 'action' File "/home/atul/openerp-8/openerp/tools/safe_eval.py", line 254, in safe_eval return eval(c, globals_dict, locals_dict) File "", line 14, in File "", line 4, in parse_description ValueError: "'bool' object has no attribute 'lower'" while evaluating

Imagine profil
Jaysinh Shukla (jsh)
Cel mai bun răspuns

When the lead is created automatically through an email automation, the lead name it gets created is subject of an email which I want to customise it, currently I dont see any option to manipulate email objects before the leads gets created.

0
Imagine profil
Abandonează
Jaysinh Shukla (jsh)

Can u pls explain where u had used this function lines in your python coding lead=self.browse(cr,uid,context['active_id'],context=context) description=lead['description'] _dict=parse_description(description) self.write(cr,uid,context['active_id'],{ 'partner_name':_dict.get('name'), 'contact_name':_dict.get('name'), 'phone':_dict.get(u'phone'), 'mobile':_dict.get(u'phone')})

Kurt Haselwimmer

It appears that in early 2013 the codebase was changed so the email content is no longer put into the description field of the created lead. The email that creates the lead is stored as a message that is attached to the lead and I am still working on how to extract information from this.

Imagine profil
Haresh Kansara
Cel mai bun răspuns

When email created then it will fill name-email, subject etc.

This video will helpful to generate lead/opportunity etc from incoming emails. It is also possible to customise that it will read email body and fill data in document fields.

#Odoo #CreateOpportunityFromIncomingEmail #OdooIncomingEmailToOpportunity #OdooOpportunity #OdooLeadGeneration #OdooAutomaticLeadGeneration

https://youtu.be/ruJ8_txhwYw​


0
Imagine profil
Abandonează
Enjoying the discussion? Don't just read, join in!

Create an account today to enjoy exclusive features and engage with our awesome community!

Înscrie-te
Related Posts Răspunsuri Vizualizări Activitate
How can I manage my emails related to leads and opportunities?
mail messaging crm v7
Imagine profil
1
mar. 15
18881
Connect different Zoho Mails to Odoo CRM
mail crm
Imagine profil
Imagine profil
1
sept. 25
908
How to stop receiving unwanted mails from OpenERP? Rezolvat
mail messaging
Imagine profil
Imagine profil
2
apr. 23
9619
FR - Incoming mail to ... nowhere?
mail crm
Imagine profil
0
feb. 23
2304
How to be in a document's followers ? Rezolvat
project follower mail messaging crm
Imagine profil
Imagine profil
3
mar. 16
12718
Comunitate
  • Tutorials
  • Documentație
  • Forum
Open Source
  • Descărcare
  • Github
  • Runbot
  • Translations
Servicii
  • Hosting Odoo.sh
  • Suport
  • Actualizare
  • Custom Developments
  • Educație
  • Găsiți un contabil
  • Găsește un Partener
  • Devino Partener
Despre Noi
  • Compania noastră
  • Active de marcă
  • Contactați-ne
  • Locuri de muncă
  • Evenimente
  • Podcast
  • Blog
  • Clienți
  • Aspecte juridice • Confidențialitate
  • Securitate
الْعَرَبيّة Català 简体中文 繁體中文 (台灣) Čeština Dansk Nederlands English Suomi Français Deutsch हिंदी Bahasa Indonesia Italiano 日本語 한국어 (KR) Lietuvių kalba Język polski Português (BR) română русский язык Slovenský jazyk slovenščina Español (América Latina) Español ภาษาไทย Türkçe українська Tiếng Việt

Odoo este o suită de aplicații de afaceri open source care acoperă toate nevoile companiei dvs.: CRM, comerț electronic, contabilitate, inventar, punct de vânzare, management de proiect etc.

Propunerea de valoare unică a Odoo este să fie în același timp foarte ușor de utilizat și complet integrat.

Website made with

Odoo Experience on YouTube

1. Use the live chat to ask your questions.
2. The operator answers within a few minutes.

Live support on Youtube
Watch now