🤖 飞书机器人客资收集服务

基于 Flask + 飞书开放平台 + Seatable 的智能客资管理系统

服务运行中 飞书连接正常 Seatable连接正常

📝 Web表单录入

提供网页版表单,支持录入客资(含其他电话)和上传图片,支持新建/更新模式

🔍 客资查重

独立的查重系统,支持通过联系方式和其它电话在 MySQL 库中检索重复记录

📁 项目结构

项目采用模块化设计,代码结构清晰,便于维护和扩展:

project/
├── app.py # 主应用文件
├── config.py # 配置导出
├── configs/ # 配置模块
│ ├── base.py # 基础配置(飞书、MySQL、Seatable)
│ └── constants.py # 常量与语料库
├── data_manager.py # 数据管理器
├── routes/ # 路由模块模块
│ ├── feishu_routes.py # 飞书事件 Webhook
│ ├── system_routes.py # 健康检查与文档
│ └── web_routes.py # Web 表单与查重接口
├── services/ # 业务逻辑服务
│ ├── message_service.py # 飞书消息解析
│ ├── leads_service.py # 客资处理逻辑
│ └── session_manager.py # 会话状态持久化 (MySQL)
├── clients/ # 客户端模块
│ ├── feishu_client.py # 飞书 API 封装
│ ├── seatable_client.py # Seatable API 封装
│ └── mysql_client.py # MySQL 业务库查重客户端
├── templates/ # 模板文件
│ ├── docs.html # 本说明文档
│ ├── form.html # 客资录入表单
│ └── query.html # 客资查重界面
└── utils/ # 工具类
└── logger.py # Emoji 彩色日志

🏗️ 模块说明

🚀 核心服务

  • leads_service - 负责查重、分流、备注追加
  • session_manager - 管理飞书上下文关联
  • data_manager - 智能校正来源、小区等信息

📊 数据库层

  • System DB - 存储飞书会话状态
  • Customer DB - 核心业务客资查重库
  • Seatable - 云端协作展示与跟进

🌐 API 接口文档

GET 服务首页
http://feishubot.sys8.net/

显示此说明文档页面

POST 飞书 Webhook
http://feishubot.sys8.net/webhook/feishu

接收飞书消息、图片及其它事件订阅推送

GET Web 表单页面
http://feishubot.sys8.net/form

录入/更新客资,支持 其他电话 字段与图片附件

GET 客资查重页面
http://feishubot.sys8.net/query

可视化查重界面,支持手机号与其它电话多条件过滤

POST 查重 API
http://feishubot.sys8.net/api/check_duplicate

底层 MySQL 查重接口,返回匹配的客资详情

🔧 调用示例

# 执行查重查询
import requests
payload = {"mobile": "13800138000", "tel": "029-88888888"}
response = requests.post("http://feishubot.sys8.net/api/check_duplicate", json=payload)
print(response.json())
# 命令行快速查重
curl -X POST "http://feishubot.sys8.net/api/check_duplicate" \
  -H "Content-Type: application/json" \
  -d '{"mobile": "13800138000"}'
// 前端调用示例
const res = await fetch('/api/check_duplicate', {
  method: 'POST',
  body: JSON.stringify({ mobile: '13800138000' })
});
console.log(await res.json());

📝 核心功能说明

1. 查重规则 (MySQL)

系统会同时检索 mobiletel 字段。只要任一号码匹配,即判定为重复,并返回该客户的归属部门、分配时间及对应的 Sea ID。

2. 信息自动补充 (Seatable)

当识别到重复客资时,系统不会简单丢弃,而是会将新获取的信息(如不同的小区、备注、图片)自动追加到原记录的”重复信息”字段中,并标记 --- 补充信息 --- 分隔符。

3. 智能小区/来源校正

基于 data/ 目录下的语料库,系统会对用户输入的模糊小区名(如“融创”)自动校正为标准名(如“融创南长安街壹号”)。

🔧 技术架构