如何在 Odoo 18 中打造智能化客户反馈闭环
客户服务数字化的决胜关键
在当今竞争激烈的商业环境中,对于一个组织而言,优质的客户服务是必不可少的。提升客户满意度的最佳方式是将客户反馈和评分纳入业务流程中。Odoo 提供了一种简便高效的方式来收集客户反馈。Odoo 18通过评分混入(Rating Mixin)技术,打造智能化客户反馈闭环系统,帮助企业实现优质客户服务。
在 Odoo 18 中添加客户评分混入
评分混入功能允许你发送请求客户反馈的电子邮件,在看板(Kanban)流程中实现自动转换,并根据评分收集统计数据。
三步实现评分系统深度集成
第一步:模型继承与字段配置
要在你的模型中启用客户评分功能,只需在自定义模型中继承 rating.mixin 模型即可。以下是实现方法的示例:
class TestModel(models.Model): _name = 'test.model' _description = 'Test Model' _inherit = ['rating.mixin', 'mail.thread']# 双继承评分与消息追踪 name = fields.Char(string='Name', required=True) description = fields.Text(string='Description') date_order = fields.Date(string='Date') state = fields.Selection([ ('draft', '草稿'), ('in_progress', '进行中'), ('done', '已完成') ], string='状态', default='draft') activity_state = fields.Selection([ ('overdue', '逾期'), ('today', '今日'), ('planned', '计划中') ], string='活动状态') # 必配关联字段 service_owner = fields.Many2one('res.users', string='专属顾问') client = fields.Many2one('res.partner', string='服务对象')
通过继承 rating.mixin,你的模型现在将支持评分功能。
只要模型中存在 partner_id 字段,rating.rating 记录就会自动链接到该字段。如果你希望使用除 partner_id 之外的其他字段,比如我的模型中运用的是client字段,可以通过实现 rating_get_partner_id() 函数来覆盖此默认行为。
def _rating_get_partner(self): if 'client' in self and self.client: return self.client return self.env['res.partner']
同样,rating.rating 记录将连接到与模型中 user_id 字段相关联的合作伙伴(即被评分的合作伙伴)。如果你使用的不是 user_id 字段,可以通过覆盖 rating_get_rated_partner_id() 函数来自定义此行为。请注意,此函数必须返回一个 res.partner 记录,因为系统会自动获取与 user_id 关联的合作伙伴。
此外,如果你的模型继承自 mail.thread,评分事件将记录在聊天记录中。
第二步:智能评价邮件模板开发
为了收集客户反馈,你可以发送一封包含链接的电子邮件,客户点击链接即可提供评分。以下是创建用于此目的的电子邮件模板的示例:
<record id="test_model_rating_email_template" model="mail.template"> <field name="name">评价邀请</field> <field name="subject">评价调研</field> <field name="model_id" ref="test_model.model_test_model"/> <field name="email_from">{{ object._rating_get_operator().email_formatted or user.email_formatted }}</field> <field name="partner_to">{{ object._rating_get_partner().id }}</field> <field name="body_html" type="html"> <div> <t t-set="access_token" t-value="object._rating_get_access_token()"/> <t t-set="partner" t-value="object._rating_get_partner()"/> <p>您好!<t t-out="partner.name or ''"/>,<br/><br/>感谢您使用我们的系统!请点击下方表情为本系统评分:</p> <table> <tr> <td><a t-attf-href="/rate/{{ access_token }}/5"><img src="/rating/static/src/img/rating_5.png" alt="Excellent"/></a></td> <td><a t-attf-href="/rate/{{ access_token }}/3"><img src="/rating/static/src/img/rating_3.png" alt="Average"/></a></td> <td><a t-attf-href="/rate/{{ access_token }}/1"><img src="/rating/static/src/img/rating_1.png" alt="Poor"/></a></td> </tr> </table> </div> </field> <field name="auto_delete" eval="False"/> </record>
此模板生成的电子邮件允许客户以交互方式提供反馈。当他们点击评分图标(例如,优秀、一般或差)时,将被引导至一个网页,在那里他们可以提交评分。
发送评分请求
要向客户发送评分请求,你可以从模型中触发以下方法:
def action_send_rating_mail(self): template = self.env.ref('test_model.test_model_rating_email_template') template.send_mail(self.id, force_send=True)
技术亮点:
- 动态令牌生成确保评价安全性。
- 响应式布局适配多终端。
- 表情评分替代传统表单。
第三步:可视化分析看板搭建
为了让用户能够查看与你的模型相关的所有客户评分,你可以在自定义模块的表单视图中定义一个操作和一个按钮。这将以各种视图模式(如看板、表单、透视表或图表)显示评分:
<!-- 动作定义 --> <record id="rating_rating_action_test_model" model="ir.actions.act_window"> <field name="name">系统评分</field> <field name="res_model">rating.rating</field> <field name="view_mode">kanban,pivot,graph</field> <field name="domain">[('res_model', '=', 'test.model'), ('consumed', '=', True)]</field> </record> <!-- 表单按钮集成 --> <record id="test_model_view_form_inherit_rating" model="ir.ui.view"> <field name="name">test.model.view.form.inherit.rating</field> <field name="model">test.model</field> <field name="inherit_id" ref="test_model.view_test_model_form"/> <field name="arch" type="xml"> <xpath expr="//div[@name='button_box']" position="inside"> <button name="%(rating_rating_action_test_model)d" type="action" class="oe_stat_button" string="查看评分" icon="fa-smile-o"> </button> </xpath> </field> </record> <!-- test_model模型的form视图设置了一个发送评分邀请按钮--> <record id="view_test_model_form" model="ir.ui.view"> <field name="name">test.model.form</field> <field name="model">test.model</field> <field name="arch" type="xml"> <form string="Test"> <sheet> <div class="oe_button_box" name="button_box"> <button name="action_send_rating_mail" type="object" string="发送评分邀请" class="btn-primary"/> </div> <group> <group> <field name="name" string="姓名"/> <field name="description" string="介绍"/> </group> <group> <field name="date_order" string="生日"/> </group> <group> <field name="service_owner" string="专属顾问" /> <field name="client" string="服务对象" /> </group> </group> </sheet> <chatter/> </form> </field> </record>
这些配置将创建一个菜单项,用户可以通过该菜单项导航到一个页面,在该页面上他们可以查看与你的模型相关的所有客户评分。可用的默认视图(如看板、透视表和图表)可快速概览客户反馈。
我们可以看到以下结果:
点击评分链接时,它会重定向到网站并显示如下页面:
评分完成后显示或者点击查看评分按钮显示如下:
本指南概述了如何在 Odoo 18 中使用客户评分混入来集成客户反馈。按照这些步骤操作,企业可以收集重要的客户见解,并采取切实可行的措施来改进服务。