在 NocoBase 中实现 CRM 销售漏斗可视化:线索状态进度条与阶段管理

详解如何在 NocoBase 低代码平台中构建类 Salesforce 的 CRM 销售漏斗可视化功能,包括线索状态进度条与阶段管理。通过状态驱动表单显示变化,实现线索从未达标到完成的全周期可视化跟踪,提升销售效率与转化率。适合需要优化 CRM 销售流程的企业与开发者。

1. 简介

1.1 前言

本章是 如何在 NocoBase 中实现 CRM 的线索转化 系列教程的第二部分。在上一章中,我们已经介绍了线索转化的基础知识,包括创建所需的数据集合(Collections)、配置数据管理页面以及实现线索到公司、联系人和商机的转化功能。本章将重点关注线索的跟进流程和状态管理的实现。

1.2 本章目标

在本章中,我们将一起学习如何在 NocoBase 中实现 CRM 线索转化。通过线索跟进和状态管理,您可以提升业务效率,实现更精细的销售过程控制。

1.3 最终效果预览

在上一章节中,我们讲解了如何关联管理线索与公司、联系人以及商机的数据。现在,我们聚焦于线索模块,主要探讨如何进行线索的跟进与状态管理。请先观看以下效果示例:

2. 线索 Collection 结构说明

2.1 线索 Collection 介绍

在线索跟进功能中,“状态”(status)字段扮演着至关重要的角色,不仅反映了线索的当前进展(如未达标、新线索、处理中、跟进中、交易进行中、完成),而且还驱动整个表单的显示与变化。下面的 table block 展示了线索 collection 的字段结构及其详细描述:

Field name字段显示名称Field interfaceDescription
idIdInteger主键
account_idaccount_idInteger公司表 ACCOUNT 外键
contact_idcontact_idInteger联系人表 CONTACT 外键
opportunity_idopportunity_idInteger商机表 OPPORTUNITY 外键
name线索名Single line text潜在客户的姓名
company公司名Single line text潜在客户所在的公司名称
email电子邮箱Email潜在客户的电子邮箱地址
phone联系电话Phone联系电话
status状态Single select线索当前状态, 默认为”未达标”(未达标, 新线索, 处理中, 跟进中, 交易进行中, 完成)
Account公司Many to one关联到公司
Contact联系人Many to one关联到联系人
Opportunity商机Many to one关联到商机

3. 创建 Leads 表格区块(table block)与详情区块

3.1 创建说明

首先,我们需要创建一个 “Leads” 的 table block 用于展示必要的字段。同时,在页面右侧配置一个详情区块,当您点击某条记录时,右侧会自动显示对应的详细信息。请参见下图的配置效果:

4. 配置操作按钮

4.1 按钮总体说明

为了满足各种操作需求,我们需要创建共计 10 个按钮。每个按钮都依据记录的状态(status)采用不同的显示方式(隐藏、激活或禁用),从而引导用户按照正确的业务流程操作。 20250311083825

4.2 各功能按钮详细配置

按钮样式操作联动规则
编辑按钮编辑操作当记录的 status 为 “Completed”(已完成)时自动禁用,防止不必要的编辑。
未达标 按钮(激活状态)“Unqualified >“更新记录的 status 为 “Unqualified”。默认展示;若 status 为 “Completed”,则按钮被禁用。
新线索 按钮(未激活)更新数据操作,“New >“将 status 设置为 “New”,更新成功后显示 “New” 的提示。如果记录的 status 不为 “Unqualified” 则隐藏。(即记录已处于 “New” 或之后状态,应为激活状态)
新线索 按钮(激活状态)更新数据操作,“New >“更新记录的 status 为 “New”。当 status 为 “Unqualified” 时隐藏;若 status 为 “Completed”,则按钮禁用。
处理中 按钮(未激活)更新数据操作,“Working >“将 status 更新为 “Working”,并显示 “Working” 成功提示。当记录的 status 不为 “Unqualified”、“New” 时隐藏。
处理中 按钮(激活状态)更新数据操作,“Working >“更新记录的 status 为 “Working”。当 status 为 “Unqualified”、“New” 时隐藏;若 status 为 “Completed”,则按钮禁用。
跟进中 按钮(未激活)更新数据操作,“Nurturing >“将 status 设置为 “Nurturing”,并显示 “Nurturing” 成功提示。当记录的 status 不为 “Unqualified”、“New”、“Working” 时隐藏。
跟进中 按钮(激活状态)更新数据操作,“Nurturing >“更新记录的 status 为 “Nurturing”。当 status 为 “Unqualified”、“New”、“Working” 时隐藏;若 status 为 “Completed”,则按钮禁用。
转化 按钮编辑操作 ,“transfer”,图标为”√“弹出转化表单,表单提交时,更新记录的 status 为 “Completed”。当记录的 status 为 “Completed” 时隐藏,以防重复转移。
转化完成 按钮(激活状态)查看操作,“transfered”,图标为”√“仅用于展示转化完成后的信息,不具备编辑功能。仅在记录的 status 为 “Completed” 时显示;其他状态时隐藏。
  • 联动规则示例: 处理中 (未激活) 20250311084104 处理中 (激活) 20250311083953
  • 转化表单: 转化按钮(未激活) 转化按钮(激活)
  • 转化提交时弹出提示: 20250311084638

4.3 按钮配置总结

  • 每项功能均提供未激活和激活状态下的不同按钮样式。
  • 利用联动规则,根据记录的 status 动态控制按钮的显示(隐藏或禁用),从而引导销售人员按照正确的工作流程进行操作。

5. 表单联动规则设置

5.1 规则 1:仅展示名称

  • 当记录未确认时,只展示名称。

5.2 规则 2:“新线索” 状态下的显示优化

  • 在 status 为 “新线索” 时,页面将隐藏公司名,并展示联系方式。

6. 页面 Markdown 规则与 Handlebars 语法

6.1 动态文案展示

在页面中,我们使用 Handlebars 语法根据记录的状态动态展示不同的提示信息。以下是各状态下的示例代码:

当状态为 “未达标” 时:

{{#if (eq $nRecord.status "未达标")}}
**跟踪你那些不合格线索的相关信息。**  
如果你的线索对产品不感兴趣或已离开相关公司,则可能是不合格的。  
- 记录经验教训以供今后参考  
- 保存外联细节和联系方式  
{{/if}}

当状态为 “新线索” 时:

{{#if (eq $nRecord.status "新线索")}}
**收集更多关于这条线索的信息。**  
- 了解潜在客户的需求和兴趣点
- 收集基础联系资料和公司背景
- 确定后续跟进的优先级和方式
{{/if}}

当状态为 “处理中” 时:

{{#if (eq $nRecord.status "处理中")}}
**主动联系线索并初步评估需求。**  
- 通过电话/邮件与潜在客户建立联系
- 了解客户面临的问题和挑战
- 初步判断客户的需求与公司产品/服务的匹配度
{{/if}}

当状态为 “跟进中” 时:

{{#if (eq $nRecord.status "跟进中")}}
**深入挖掘客户需求,进行线索培育。**  
- 提供相关产品资料或解决方案建议
- 回答客户的问题,消除顾虑
- 评估线索的转化可能性
{{/if}}

当状态为 “转化完成” 时:

{{#if (eq $nRecord.status "转化完成")}}
**线索已成功转化为客户。**  
- 确认已创建相关的公司和联系人记录
- 创建商机记录,设置跟进计划
- 将相关资料和沟通记录传递给负责的销售人员
{{/if}}

7. 展示转化完成后的关联对象及跳转链接

7.1 关联对象说明

在转化完成后,我们希望展示相关的关联对象(公司、联系人、商机),并能够直接跳转至详情页面。 这个时候随便找一个详情弹窗,比如公司,然后复制链接。 20250311085502 注意:在其他弹窗或页面中,详情链接格式的最后部分(filterbytk 后的数字)代表当前对象的 id,例如:

{Base URL}/admin/w3yyu23uro0/popups/ki0wcnfruj6/filterbytk/{id}

7.2 使用 Handlebars 生成关联链接

公司:

{{#if (eq $nRecord.status "已完成")}}
**公司:**
[{{$nRecord.account.name}}](w3yyu23uro0/popups/ki0wcnfruj6/filterbytk/{{$nRecord.account_id}})
{{/if}}

联系人:

{{#if (eq $nRecord.status "已完成")}}
**联系人:**
[{{$nRecord.contact.name}}](1oqybfwrocb/popups/8bbsqy5bbpl/filterbytk/{{$nRecord.contact_id}})
{{/if}}

商机:

{{#if (eq $nRecord.status "已完成")}}
**商机:**
[{{$nRecord.opportunity.name}}](si0io9rt6q6/popups/yyx8uflsowr/filterbytk/{{$nRecord.opportunity_id}})
{{/if}}

8. 隐藏关联对象但保留值

为确保在转化完成后正常展示关联信息,需要将 “公司”、 “联系人” 和 “商机” 的状态设置为 “隐藏(保留值)“。这样,尽管这些字段不在表单中显示,但其值依然会被记录和传递。

9. 防止转化完成后状态修改

为了防止转化完成后意外更改状态,我们为所有按钮添加了一个判断条件:在状态为 “已完成” 时,所有按钮将被禁用。

10. 结束语

完成以上所有步骤后,您的线索跟进转化功能就大功告成啦!通过本章的分步讲解,希望您能更清晰地理解 NocoBase 中状态表单变化联动的实现方式。祝您操作顺利,使用愉快!

× View Image