Парсинг входящего письма
Встала примерно следующая задача настройки OpenERP.
На почту приходят заявки от клиентов по определённой форме. Пример тела сообщения:
Решение:
Спасибо за помощь форумчанам по работе с записью: http://www.openerp.com/forum/topic32200.html
Так же я кратно описал решение здесь: http://www.openerp.com/forum/topic31871.html (сначала я сам его искал, но ни кто не ответил, я уж сам всё решил)
Некто «fhe» на форуме говорит(Ссылка на сообщение), что скоро выйдет модуль «fetchmail_pattern», который будет отлично решать такую задачу, но я не нашел подробной информации по нему.
На почту приходят заявки от клиентов по определённой форме. Пример тела сообщения:
Имя: ИвановТак как все письма присылают по похожей форме, было бы удобно, чтобы в системе автоматически создавался кандидат с данными, полученными из письма. Основные поля: ФИО, телефон, почта.
Фамилия: Иван
Отчество: Иванович
Год рождения: 1978
Ваш уровень образования: Неоконченное высшее
Город: Томск
Контактный телефон: +100500
E-mail: [email protected]
Решение:
- Для сервера входящей почты настроить действие «Создать новую запись» — crm.lead.
- Создать «Server Action». Параметры: объект — «crm.lead», тип «python code».
- Далее необходимо написать функцию парсинга. Небольшой пример:
def parse_description(description): fields=[u'имя',u'телефон'] _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] _dict['name']=pre_dict.get(u'имя') _dict['phone']=pre_dict.get(u'телефон') 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')})
Спасибо за помощь форумчанам по работе с записью: http://www.openerp.com/forum/topic32200.html
Так же я кратно описал решение здесь: http://www.openerp.com/forum/topic31871.html (сначала я сам его искал, но ни кто не ответил, я уж сам всё решил)
Некто «fhe» на форуме говорит(Ссылка на сообщение), что скоро выйдет модуль «fetchmail_pattern», который будет отлично решать такую задачу, но я не нашел подробной информации по нему.
4 комментария
1. Чтоб создавался, не партнер первоначально, а кандидат.
2. Требуемое поле тема(тема письма), почтовый ящик (надо чтоб было условие проверки на наличии почтового адреса в системе), имя, телефон и другие атрибуты выбрать если их явно можно выбрать.
3. Тело письма пусть выкладывается в заметки.
Такую функцию есть в vTigerCRM и называется Заявки, а уже с Заявок можно было вроде создать Кандидата или использовался Партнер если он присутствует в системе.
Можно выполнить в виде Заявка --> Кандидат --> Предложение --> Партнер или если существующий Партнер то Заявка --> Предложение для существующего Партнера.