如何在 NocoBase 中实现 CRM 的线索转化
1. 引言
本教程将一步一步地引导您如何在 NocoBase 中实现 CRM 的商机转化(Opportunity Conversion)功能。我们将介绍如何创建所需的 collections(数据表)、配置数据管理页面、设计转化流程以及设置关联管理,从而帮助您顺利构建整个业务流程。
2. 准备工作:创建所需的 Collections
在开始之前,我们需要准备以下 4 个 collections,并配置它们之间的关联关系。
2.1 LEAD Collection(线索)
这是用于存储潜在客户信息的 collection,其字段定义如下:
| Field name | 字段显示名称 | Field interface | Description |
|---|---|---|---|
| id | Id | Integer | 主键 |
| account_id | account_id | Integer | ACCOUNT 外键 |
| contact_id | contact_id | Integer | CONTACT 外键 |
| opportunity_id | opportunity_id | Integer | OPPORTUNITY 外键 |
| name | 线索名 | Single line text | 潜在客户的姓名 |
| company | 公司名 | Single line text | 潜在客户所在的公司名称 |
| 电子邮箱 | 潜在客户的电子邮箱地址 | ||
| phone | 联系电话 | Phone | 联系电话 |
| status | 状态 | Single select | 线索当前状态(未达标, 新线索, 处理中, 跟进中, 交易进行中, 完成) |
| Account | 公司 | Many to one | 关联到公司 Collection |
| Contact | 联系人 | Many to one | 关联到联系人 Collection |
| Opportunity | 商机 | Many to one | 关联到商机 Collection |
2.2 ACCOUNT Collection(公司)
用于保存公司的详细信息,其字段配置如下:
| Field name | 字段显示名称 | Field interface | Description |
|---|---|---|---|
| name | 名称 | Single line text | 账户名称(公司或组织名称) |
| industry | 行业 | Single select | 账户所属行业 |
| phone | 电话 | Phone | 账户联系电话 |
| website | 网站 | URL | 账户官方网站地址 |
2.3 CONTACT Collection(联系人)
存储联系人信息的 collection,包含以下字段:
| Field name | 字段显示名称 | Field interface | Description |
|---|---|---|---|
| name | 名称 | Single line text | 联系人的姓名 |
| 电子邮箱 | 联系人的电子邮箱地址 | ||
| phone | 电话 | Phone | 联系人的联系电话 |
2.4 OPPORTUNITY Collection(商机)
用于记录商机信息,其字段定义如下:
| Field name | 字段显示名称 | Field interface | Description |
|---|---|---|---|
| name | 名称 | Single line text | 商机的名称 |
| stage | 阶段 | Single select | 商机所处阶段(资格审查, 需求, 提案, 谈判, 交易关闭, 成功, 失败) |
| amount | 金额 | Number | 商机的金额 |
| close_date | 关闭日期 | Datetime | 商机预计的关闭日期 |
3. 理解商机转化流程
3.1 正常转化流程概述
一个商机从线索转化为正式商机一般会经历如下流程:

3.2 关联关系说明
假设您已经成功创建上述 4 个 collections,并映射配置好它们之间的业务关系:

4. 创建数据管理页面
在 NocoBase 的工作区中,为各个 collections 创建数据管理页面,并随机新增一些线索数据以便后续测试。

5. 实现商机转化功能
本章节重点讲解如何将一个线索转化为公司、联系人及商机数据,并确保转化操作不会被重复触发。
5.1 创建“转化”编辑操作
在对应的线索详情界面中,创建一个编辑操作,命名为“转化”。在转化弹窗内,进行如下配置:
5.1.1 展示线索基本信息
以只读方式展示当前线索的基本信息,确保用户不会误修改原数据。
5.1.2 显示关联关系字段
在弹窗中展示以下三个关联字段,并为每个字段开启“快速创建”功能,以便在未找到匹配数据时,可以即时创建新数据。

5.1.3 配置快速创建的默认映射
在“快速创建”弹窗的设置中,为各关联字段配置默认值,从而将线索信息自动映射到目标 collection。映射规则如下:
- 线索/线索名 → 公司/名称
- 线索/电子邮箱 → 公司/电子邮箱
- 线索/联系电话 → 公司/电话
- 线索/线索名 → 联系人/名称
- 线索/电子邮箱 → 联系人/电子邮箱
- 线索/联系电话 → 联系人/电话
- 线索/线索名 → 商机/名称
- 线索/状态 → 商机/阶段
配置示例截图:

接下来,我们给提交操作再加一个友好的反馈:


提交效果:

5.1.4 查看转化效果
配置完成后,执行转化操作时,系统将根据映射关系创建并关联新的公司、联系人以及商机数据。效果示例如下:


5.2 防止重复转化
为避免同一线索被多次转化,可以通过以下方式进行控制:
5.2.1 更新线索状态
在转化表单的提交操作中,增加一个数据自动更新的步骤,将线索状态修改为“已转化”。
配置截图:


效果演示:

5.2.2 设置按钮联动规则
为转化按钮添加联动规则:当线索状态为“已转化”时,自动隐藏转化按钮,从而避免重复操作。
配置截图:



6. 配置详情页面的关联管理区块
为了让用户在各个 Collection 的详情页面中查看关联数据,您需要配置相应的 list 区块或详情区块。
6.1 配置公司 Collection 详情页面
在公司的详情页面(例如,在联系人的编辑/详情弹窗中),分别添加以下 list 区块:
- 联系人 list
- 商机 list
- 线索 list
示例截图:

6.2 添加筛选条件
为每个 list 区块增加筛选规则,确保只显示关联到当前公司 ID 的数据。
配置截图:


6.3 配置联系人与商机详情页面
在联系人 Collection 的详情弹窗中,添加以下区块:
- 商机 list
- 公司详情
- 线索 list(并按照 ID 进行筛选)
截图:

在商机详情页面,同样添加:
- 联系人 list
- 公司详情
- 线索 list(按 ID 过滤)
截图:

7. 总结
通过以上步骤,您已成功实现一个简单的 CRM 商机转化功能,并配置了联系人、公司与线索之间的关联管理。希望本教程能够以清晰、循序渐进的方式,帮助您掌握整个业务流程的构建,从而为您的项目带来便利和高效的操作体验。
若在操作过程中遇到任何问题,欢迎前往NocoBase社区交流或查阅官方文档。希望本指南能帮助您根据实际需求顺利实现用户注册审核,并根据需要灵活扩展。祝您使用顺利,项目成功!
相关文章:
如何在 NocoBase 中实现 CRM 的线索转化
1. 引言 本教程将一步一步地引导您如何在 NocoBase 中实现 CRM 的商机转化(Opportunity Conversion)功能。我们将介绍如何创建所需的 collections(数据表)、配置数据管理页面、设计转化流程以及设置关联管理,从而帮助…...
StarRocks-fe工程在Cursor中不能识别为Java项目
SR简介 StarRocks 是一款高性能分析型数据库,支持实时、多维度、高并发的数据分析。本指南旨在解决在使用 VSCode 或 Cursor 开发 StarRocks 后端项目时遇到的模块识别问题。 问题描述 使用 Cursor 或 VSCode 打开 StarRocks 的后端工程 fe 时,spark-…...
影刀RPA开发拓展--SQL常用语句全攻略
前言 SQL(结构化查询语言)是数据库管理和操作的核心工具,无论是初学者还是经验丰富的数据库管理员,掌握常用的 SQL 语句对于高效管理和查询数据都至关重要。本文将系统性地介绍最常用的 SQL 语句,并为每个语句提供详细…...
05类加载机制篇(D6_方法调用和方法执行)
目录 一、字节码指令集 二、基本数据类型 1. 加载和存储指令 2. const系列 3. push系列 4. ldc系列 5. load系列 load系列A load系列B 6. store系列 store系列A store系列B 7. pop系列 8. 栈顶元素数学操作及移位操作系列 9. 运算指令 10. 类型转换指令 11. 宽…...
视音频数据处理入门:颜色空间(二)---ffmpeg
目录 概述 流程 相关流程 初始化方法 初始化代码 转换方法 转换代码 释放方法 整体代码介绍 代码路径 概述 本篇简单说一下基于FFmpeg的libswscale的颜色空间转换;Libswscale里面实现了各种图像像素格式的转换,例如:YUV与RGB之间的…...
从零开始:H20服务器上DeepSeek R1 671B大模型部署与压力测试全攻略
前言 最近,我有幸在工作中接触到了DeepSeek R1 671B模型,这是目前中文开源领域参数量最大的高质量模型之一。DeepSeek团队在2024年推出的这款模型,以其惊人的6710亿参数量和出色的推理性能,引起了业界广泛关注。 作为一名AI基础…...
【FAQ】HarmonyOS SDK 闭源开放能力 —Map Kit(5)
1.问题描述: 提供两套标准方案,可根据体验需求选择: 1.地图Picker(地点详情) 用户体验:①展示地图 ②标记地点 ③用户选择已安装地图应用 接入文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-guide…...
Leetcode 3469. Find Minimum Cost to Remove Array Elements
Leetcode 3469. Find Minimum Cost to Remove Array Elements 1. 解题思路2. 代码实现 题目链接:3469. Find Minimum Cost to Remove Array Elements 1. 解题思路 这一题我没啥特别好的思路,就只能动态规划了,倒是也能过,不过总…...
Excel的行高、列宽单位不统一?还是LaTeX靠谱
想要生成田字格、米字格、带拼音标准,方便小学生书法和练字。Word,Excel之类所见即所得是最容易相当的方式。但它们处理带田字格之类背景时,如果没有专用模板、奇奇怪怪的插件,使用起来会碰到各种问题。比如,Word里面用…...
(新版本onenet)stm32+esp8266/01s mqtt连接onenet上报温湿度和远程控制(含小程序)
物联网实践教程:微信小程序结合OneNET平台MQTT实现STM32单片机远程智能控制 远程上报和接收数据——汇总 前言 之前在学校获得了一个新玩意:ESP-01sWIFI模块,去搜了一下这个小东西很有玩点,远程控制LED啥的,然后我就想…...
告别GitHub连不上!一分钟快速访问方案
一、当GitHub抽风时,你是否也这样崩溃过? 😡 npm install卡在node-sass半小时不动😭 git clone到90%突然fatal: early EOF🤬 改了半天hosts文件,第二天又失效了... 根本原因:传统代理需要复杂…...
迷你世界脚本对象库接口:ObjectLib
对象库接口:ObjectLib 迷你世界 更新时间: 2023-04-26 20:21:09 具体函数名及描述如下: 序号 函数名 函数描述 1 getAreaData(...) 获取区域数据 2 getPositionData(...) 获取位置数据 3 getLivingData(...) 获取生物数据 4 getItemDat…...
数据库事务、乐观锁及悲观锁
参考:node支付宝支付及同步、异步通知、主动查询支付宝订单状态 以下容结合上述链接查看 1. 什么是数据库事务? 1.1. 连续执行数据库操作 在支付成功后,我们在自定义的paidSuccess里,依次更新了订单状态和用户信息。也就说这里…...
蓝桥王国--dij模板
#include <bits/stdc.h> // 万能头 using namespace std; typedef pair<long long ,int> PII; int n,m; long long d[300011]; struct edge///邻接表 {int v;long long w; }; int vis[300011]; vector<edge> mp[300011];///邻接表 void dij(int s)///dij单源…...
Java基础关键_017_集合(一)
目 录 一、概述 二、Collection 关系结构 1.概览 2.说明 三、Collection 接口 1.通用方法 (1)add(E e) (2)size() (3)addAll(Collection c) (4)contains(Object o) &#…...
Rust编程实战:Rust实现简单的Web服务,单线程性能问题
知识点 tcp 服务多线程处理 实现功能 启动web服务,访问链接获取页面内容。 单线程web服务 TcpListener 使用 TcpListener 开启服务端口 let listener TcpListener::bind("127.0.0.1:7878").unwrap();处理客户端连接: for stream in lis…...
GitLab 密钥详解:如何安全地使用 SSH 密钥进行身份验证
目录 一、什么是 GitLab SSH 密钥?二、为什么要使用 SSH 密钥?三、如何生成 SSH 密钥?1. Linux/macOS2. Windows 四、将公钥添加到 GitLab五、配置 SSH 客户端六、常见问题及解决方案七、总结 GitLab 是一个功能强大的 Git 仓库管理平台&…...
《论数据分片技术及其应用》审题技巧 - 系统架构设计师
论数据分片技术及其应用写作框架 一、考点概述 本论题“论数据分片技术及其应用”主要考察的是软件工程中数据分片技术的理解、应用及其实际效果分析。考点涵盖以下几个方面: 首先,考生需对数据分片的基本概念有清晰的认识,理解数据分片是…...
【C++】当一个类A中没有声明任何成员变量和成员函数,sizeof(A)是多少?
在 C 中,即使一个类没有任何数据成员(即空类),它的大小也不会是 0,而是 1。这主要有以下几个原因: 地址唯一性要求 C 标准规定,每个对象都必须有唯一的地址。如果空类的大小为 0,那么…...
Maven 私服的搭建与使用(一)
一、引言 在 Java 项目开发中,Maven 作为强大的项目管理和构建工具,极大地提高了开发效率,而 Maven 私服在开发过程中也扮演着至关重要的角色。私服是一种特殊的远程仓库,架设在局域网内,代理广域网上的远程仓库&…...
利用最小二乘法找圆心和半径
#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …...
MPNet:旋转机械轻量化故障诊断模型详解python代码复现
目录 一、问题背景与挑战 二、MPNet核心架构 2.1 多分支特征融合模块(MBFM) 2.2 残差注意力金字塔模块(RAPM) 2.2.1 空间金字塔注意力(SPA) 2.2.2 金字塔残差块(PRBlock) 2.3 分类器设计 三、关键技术突破 3.1 多尺度特征融合 3.2 轻量化设计策略 3.3 抗噪声…...
三维GIS开发cesium智慧地铁教程(5)Cesium相机控制
一、环境搭建 <script src"../cesium1.99/Build/Cesium/Cesium.js"></script> <link rel"stylesheet" href"../cesium1.99/Build/Cesium/Widgets/widgets.css"> 关键配置点: 路径验证:确保相对路径.…...
MFC内存泄露
1、泄露代码示例 void X::SetApplicationBtn() {CMFCRibbonApplicationButton* pBtn GetApplicationButton();// 获取 Ribbon Bar 指针// 创建自定义按钮CCustomRibbonAppButton* pCustomButton new CCustomRibbonAppButton();pCustomButton->SetImage(IDB_BITMAP_Jdp26)…...
【Redis技术进阶之路】「原理分析系列开篇」分析客户端和服务端网络诵信交互实现(服务端执行命令请求的过程 - 初始化服务器)
服务端执行命令请求的过程 【专栏简介】【技术大纲】【专栏目标】【目标人群】1. Redis爱好者与社区成员2. 后端开发和系统架构师3. 计算机专业的本科生及研究生 初始化服务器1. 初始化服务器状态结构初始化RedisServer变量 2. 加载相关系统配置和用户配置参数定制化配置参数案…...
最新SpringBoot+SpringCloud+Nacos微服务框架分享
文章目录 前言一、服务规划二、架构核心1.cloud的pom2.gateway的异常handler3.gateway的filter4、admin的pom5、admin的登录核心 三、code-helper分享总结 前言 最近有个活蛮赶的,根据Excel列的需求预估的工时直接打骨折,不要问我为什么,主要…...
将对透视变换后的图像使用Otsu进行阈值化,来分离黑色和白色像素。这句话中的Otsu是什么意思?
Otsu 是一种自动阈值化方法,用于将图像分割为前景和背景。它通过最小化图像的类内方差或等价地最大化类间方差来选择最佳阈值。这种方法特别适用于图像的二值化处理,能够自动确定一个阈值,将图像中的像素分为黑色和白色两类。 Otsu 方法的原…...
Reasoning over Uncertain Text by Generative Large Language Models
https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829 1. 概述 文本中的不确定性在许多语境中传达,从日常对话到特定领域的文档(例如医学文档)(Heritage 2013;Landmark、Gulbrandsen 和 Svenevei…...
C++.OpenGL (20/64)混合(Blending)
混合(Blending) 透明效果核心原理 #mermaid-svg-SWG0UzVfJms7Sm3e {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-SWG0UzVfJms7Sm3e .error-icon{fill:#552222;}#mermaid-svg-SWG0UzVfJms7Sm3e .error-text{fill…...
搭建DNS域名解析服务器(正向解析资源文件)
正向解析资源文件 1)准备工作 服务端及客户端都关闭安全软件 [rootlocalhost ~]# systemctl stop firewalld [rootlocalhost ~]# setenforce 0 2)服务端安装软件:bind 1.配置yum源 [rootlocalhost ~]# cat /etc/yum.repos.d/base.repo [Base…...
