深度聚焦:潜在学员转化与流失管理——提升销售流程闭环
目录
- 1 关键状态流转:跟进状态的生命周期
- 2 核心动作一:“转化为学员”
- 2.1 准备工作:创建学员数据模型
- 2.2 封装“转化为学员”API(核心实现)
- 2.3 页面端调用“转化”API
- 3 核心动作二:“标记流失”
- 3.1 “标记流失”按钮配置
- 4 发布与测试
- 总结
在我们的教务管理系统系列博客中,我们已经成功搭建了 潜在学员管理和 跟进管理的核心模块。销售团队通过这些模块高效地记录、分配和追踪销售线索,并详细记录每一次与学员的互动。然而,销售流程的最终目标是实现转化,同时,也需要有效地管理那些未能转化的线索。
本篇博客将深入探讨潜在学员管理中的两个关键动作:“转化为学员”和“标记流失”。这两个动作不仅代表了销售线索的最终去向,更是优化销售流程、评估销售效率的关键环节。我们将详细说明如何在低代码平台中实现这些状态流转,特别是通过封装API来确保“转化”操作的稳定性和数据一致性。
1 关键状态流转:跟进状态的生命周期
在潜在学员管理中,跟进状态
是核心指标,它反映了线索的当前所处阶段和潜在价值。跟进状态
包含以下枚举值:新咨询
、首次沟通
、意向明确
、待报名
、已流失
、已转化
。
状态的改变主要通过用户在操作列的点击和自动化规则来实现。在您的潜在学员管理列表中(无论是销售经理视图还是销售顾问视图),我们将重点配置以下两个改变线索最终状态的操作。
2 核心动作一:“转化为学员”
当潜在学员最终确认报名时,我们将其从销售线索库中“转化”为正式学员。这是一个多步骤、高重要性的操作,涉及跨数据模型的数据迁移和状态更新。
2.1 准备工作:创建学员数据模型
在实现转化功能前,必须确保我们拥有一个用于存储正式学员信息的数据模型。如果尚未创建,请按以下方式在您的低代码平台中创建:
创建学员数据源
打开您的低代码平台数据建模工具,创建新的数据模型:
- 模型名称: 学员
- 标识:
Students
为Students
模型添加以下核心字段。这些字段大部分将从潜在学员信息中映射而来,确保数据能够平滑过渡:
字段名称 | 标识 | 类型 | 备注 |
---|---|---|---|
学员姓名 | student_name | 文本 | 关联自潜在学员的姓名,主列字段 |
联系电话 | phone | 电话 | 关联自潜在学员的联系电话 |
联系邮箱 | email | 邮箱 | 关联自潜在学员的联系邮箱 |
报名课程 | enrolled_courses | 文本 | 关联自潜在学员的意向课程,或在转化时重新选择 |
报名日期 | enrollment_date | 日期时间 | 记录学员正式报名的日期,通常为转化时的系统时间 |
潜在学员ID | original_lead_id | 关联 | 关联到 Leads 表的 id 字段,用于追溯学员来源 |
负责销售 | assigned_sales_id | 关联 | 关联到 SalesPersonnel 表的 sales_id 字段,记录负责该学员的销售人员 |
备注 | notes | 长文本 | 额外备注信息 |
权限配置: 确保销售经理和销售顾问对该表有创建和查看权限。
有了学员表之后,我们在潜在学员表里添加一个字段用来关联学员信息
2.2 封装“转化为学员”API(核心实现)
将“潜在学员转化为学员”的逻辑封装为一个后端 API,是实现这一复杂操作的最佳实践。这能够保证:
- 原子性: 转化操作涉及多步(创建学员记录、更新潜在学员状态),API能确保这些步骤要么全部成功,要么全部失败,避免脏数据。
- 一致性: 无论哪个页面或用户触发转化,都遵循同一套业务逻辑,确保数据的一致性。
- 复用性: 销售经理和销售顾问都能调用同一个API,避免重复开发逻辑。
- 权限集中控制: 在API层面即可精确控制谁能执行转化操作。
API 创建步骤:
- 新建API接口:
点击左侧的资源链接,点击+号创建API
选择自定义代码
输入名称和标识
输入方法的名称和标识
-
添加入参:
- API需要接收当前要转化的潜在学员的ID作为入参。
- 参数名称:
leadId
- 类型:
文本
-
编写API代码:
输入如下代码。
const ErrorCode = {SUCCESS: 0,PARAM_ERROR: 1001,NOT_FOUND: 1002,SYSTEM_ERROR: 1003,LEAD_NOT_EXISTS: 1004, // 新增:潜在学员不存在错误码LEAD_ALREADY_CONVERTED: 1005 // 新增:潜在学员已转化错误码};module.exports = async function (params, context) {console.log('转化API入参:', params);// 1. 解析并校验参数const { leadId } = params;if (!leadId) {return { code: ErrorCode.PARAM_ERROR, message: '潜在学员ID不能为空' };}try {// 2. 查询潜在学员详情const leadResult = await context.callModel({name: "Leads", // 您的潜在学员数据模型标识methodName: "wedaGetItemV2",params: {filter: {where: {_id: { $eq: leadId },}},select: {$master: true // 选择所有主字段}}});// 检查潜在学员是否存在if (!leadResult || Object.keys(leadResult).length === 0 || !leadResult._id) {return { code: ErrorCode.LEAD_NOT_EXISTS, message: '潜在学员记录不存在' };}// 检查潜在学员是否已转化(避免重复转化)if (leadResult.follow_up_status === '6') {return { code: ErrorCode.LEAD_ALREADY_CONVERTED, message: '该潜在学员已是已转化状态,无需重复操作' };}// 3. 创建学员记录const studentData = {student_name: leadResult.name, // 映射姓名phone: leadResult.phone, // 映射电话email: leadResult.email, // 映射邮箱enrolled_courses: leadResult.intended_courses, // 映射意向课程enrollment_date: Date.now(), // 报名日期为当前时间戳original_lead_id: { _id: leadResult._id }, // 关联原始潜在学员IDassigned_sales_id: { _id: leadResult.assigned_sales_id }, // 映射负责销售notes: `从潜在学员 [${leadResult.name}] 转化而来。` // 添加备注};const createStudentResult = await context.callModel({name: "Students", // 您的学员数据模型标识methodName: "wedaCreateV2",params: {data: studentData}});// 4. 更新潜在学员状态const updateLeadResult = await context.callModel({name: "Leads", // 您的潜在学员数据模型标识methodName: "wedaUpdateV2",params: {data: {follow_up_status: "6", // 更新为“已转化”converted_to_student_id: { _id: createStudentResult.id } // 关联新创建的学员ID},filter: {where: {_id: { $eq: leadId }}}}});// 5. 返回成功结果return {code: ErrorCode.SUCCESS,data: {studentId: createStudentResult.id, // 返回新学员的IDoriginalLeadId: leadId},message: '潜在学员成功转化为正式学员'};} catch (error) {console.error('转化API错误:', error);// 捕获可能发生的数据库操作错误或其他系统错误return {code: ErrorCode.SYSTEM_ERROR,message: `系统错误: ${error.message}`};}};
2.3 页面端调用“转化”API
在销售经理和销售顾问的“潜在学员管理列表”页面的操作列中,配置“转化”按钮:
配置点击事件,选择数据源方法,选择学员管理,选择学员转化方法
传入入参,传入表格的数据标识
成功后配置刷新表格
3 核心动作二:“标记流失”
并非所有线索都能转化为学员。对于那些明确表示不感兴趣、联系不上或不符合条件的潜在学员,我们需要将其“标记流失”,以便数据统计准确,并避免无效的跟进。
3.1 “标记流失”按钮配置
在销售经理和销售顾问的“潜在学员管理列表”页面的操作列中,配置“标记流失”按钮:
配置点击事件,选择数据源方法,选择潜在学员表,方法选择修改单条
查询条件配置为数据标识等于表格的所在行的数据标识
将跟进状态修改为5
成功后配置数据表格的刷新方法
4 发布与测试
完成上述配置后,请务必进行发布体验版。
- 测试“转化”功能: 尝试在一个“待报名”或“意向明确”的潜在学员上点击“转化”按钮。验证:
- 学员表是否新增了数据?
- 原潜在学员的状态是否正确更新为“已转化”?
converted_to_student_id
字段是否正确关联了新学员ID?- 是否有重复转化的错误提示?
- 测试“标记流失”功能: 尝试将一个潜在学员标记为流失。验证:
- 潜在学员的状态是否正确更新为“已流失”?
- 流失原因是否被正确记录?
- 如果配置了自动化流失规则,可以尝试等待其触发(或手动模拟)。
通过细致的测试,确保所有状态流转和数据操作都符合预期。
总结
有效地管理销售线索的生命周期是提升销售效率的关键。转化为学员和标记流失这两个动作,标志着潜在学员跟进的最终结果。通过在低代码平台中,为这些关键动作配置清晰的界面操作,并特别是通过封装后端API来处理“转化”这一复杂流程,我们不仅保障了数据操作的准确性和一致性,更构建了一个更加健壮和智能的销售流程闭环。这为教培机构的销售团队提供了强大的工具,帮助他们更高效地识别高价值线索、促成转化,并从流失线索中获取宝贵的经验。