如何在 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 中使用客户评分混入来集成客户反馈。按照这些步骤操作,企业可以收集重要的客户见解,并采取切实可行的措施来改进服务。