# 飞书多维表格配置指南

## 一、创建飞书多维表格

### 1.1 创建多维表格

1. 登录飞书
2. 进入「工作台」→ 搜索「多维表格」
3. 点击「新建多维表格」→ 选择「空白数据表」
4. 将多维表格命名为「官网客户咨询」

### 1.2 设置字段

在数据表中创建以下字段：

| 序号 | 字段名称 | 字段类型 | 说明 |
|------|---------|---------|------|
| 1 | 编号 | 自动编号 | 系统自动生成 |
| 2 | 姓名 | 文本 | 客户姓名 |
| 3 | 手机 | 电话号码 | 客户手机 |
| 4 | 邮箱 | 邮箱 | 客户邮箱 |
| 5 | 当前使用系统 | 多选 | 物业系统/资管系统/CRM/其他 |
| 6 | 系统名称 | 文本 | 其他系统名称 |
| 7 | 咨询内容 | 长文本 | 客户留言 |
| 8 | 咨询时间 | 创建时间 | 自动记录 |
| 9 | 处理状态 | 单选 | 待联系/已联系/已转化/无效线索 |
| 10 | 处理备注 | 文本 | 客服跟进记录 |
| 11 | 处理人 | 成员 | 负责客服 |
| 12 | 跟进时间 | 修改时间 | 最后更新时间 |

### 1.3 获取多维表格信息

1. 在浏览器中打开创建的多维表格
2. URL 格式：`https://xxx.feishu.cn/bitable/appbXXXXXXXXXXXXXX/baselXXXXXXXXXXXXXX`
3. `appbXXXXXXXXXXXXXX` 就是 **BITABLE_APP_TOKEN**
4. 点击数据表右上角「...」→「关于此数据表」→「数据表 ID」
5. 或者进入数据表后，URL 中的 `tbl` 后面的字符串就是 **BITABLE_TABLE_ID**

## 二、创建飞书应用

### 2.1 创建应用

1. 进入 [飞书开放平台](https://open.feishu.cn/)
2. 点击「创建企业自建应用」
3. 填写应用名称和描述
4. 创建后，进入应用详情页

### 2.2 获取凭证

1. 进入「凭证与基础信息」
2. 获取 **App ID** 和 **App Secret**

### 2.3 配置权限

1. 进入「权限管理」
2. 搜索并添加以下权限：
   - `bitable:app` - 多维表格权限
   - `contact:user.id:readonly` - 通讯录只读权限
   - `bitable:table:readonly` - 数据表只读
   - `bitable:record:create` - 创建记录
   - `bitable:record:update` - 更新记录

### 2.4 发布应用

1. 进入「版本管理与发布」
2. 创建新版本
3. 填写版本信息
4. 提交审核（如果是企业自建应用，通常无需审核直接发布）

### 2.5 添加应用到多维表格

1. 打开创建的多维表格
2. 点击右上角「...」→「添加应用」
3. 搜索并添加刚创建的应用
4. 确保应用有「查看和编辑」权限

## 三、获取 Webhook（可选）

### 3.1 创建群机器人

1. 在飞书中创建一个专用群组（如「官网咨询处理群」）
2. 点击群设置 → 群机器人 → 添加机器人
3. 选择「自定义机器人」
4. 设置机器人名称，点击添加
5. 复制 Webhook 地址

### 3.2 Webhook 地址格式

```
https://open.feishu.cn/open-apis/bot/v2/hook/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
```

## 四、环境变量配置

复制 `.env.example` 为 `.env`，填写配置：

```bash
# 飞书应用凭证
FEISHU_APP_ID=cli_xxxxxxxxxxxxxxxx
FEISHU_APP_SECRET=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

# 多维表格信息
FEISHU_BITABLE_APP_TOKEN=appbXXXXXXXXXXXXXX
FEISHU_BITABLE_TABLE_ID=tblXXXXXXXXXXXXXX

# Webhook（可选）
FEISHU_WEBHOOK_URL=https://open.feishu.cn/open-apis/bot/v2/hook/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
```

## 五、启动服务

### 5.1 安装依赖

```bash
# 仅需要 Python 3.7+（标准库，无需额外安装）
python3 --version
```

### 5.2 启动服务

```bash
# 方法一：直接运行
python3 consult-service.py

# 方法二：使用环境变量
FEISHU_APP_ID=xxx FEISHU_APP_SECRET=xxx python3 consult-service.py

# 方法三：使用 .env 文件
# 安装 python-dotenv（可选）
pip3 install python-dotenv

# 启动服务
python3 consult-service.py
```

### 5.3 验证服务

```bash
# 健康检查
curl http://localhost:4001/api/consult/health

# 测试提交
curl -X POST http://localhost:4001/api/consult \
  -H "Content-Type: application/json" \
  -d '{
    "name": "测试用户",
    "phone": "13812345678",
    "email": "test@example.com",
    "current_system": ["物业系统", "CRM"],
    "message": "测试咨询内容"
  }'
```

## 六、配置 Nginx 反向代理（生产环境）

```nginx
server {
    listen 443 ssl;
    server_name your-domain.com;

    location /ai/api/consult {
        proxy_pass http://127.0.0.1:4001;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

        # 限制请求体大小
        client_max_body_size 50k;
    }
}
```

## 七、数据流程

```
┌─────────────┐
│   用户提交  │
│   表单数据  │
└──────┬──────┘
       │
       ▼
┌─────────────┐
│  前端验证   │
│  (HTML5 +  │
│   JavaScript)│
└──────┬──────┘
       │
       ▼
┌─────────────┐
│  后端 API   │
│ /api/consult│
└──────┬──────┘
       │
       ├─────────────────┐
       │                 │
       ▼                 ▼
┌─────────────┐   ┌─────────────┐
│  本地存储   │   │ 飞书多维    │
│   JSON 文件 │   │   表格      │
└─────────────┘   └──────┬──────┘
                         │
                         ▼
                  ┌─────────────┐
                  │ 飞书通知    │
                  │ (Webhook)   │
                  └─────────────┘
```

## 八、故障排查

### 8.1 常见问题

**Q: 飞书多维表格写入失败**
- 检查 APP_ID 和 APP_SECRET 是否正确
- 确认应用已发布并添加到多维表格
- 检查权限是否包含 `bitable:record:create`

**Q: Webhook 通知发送失败**
- 确认 Webhook 地址正确
- 检查网络是否可访问外网

**Q: CORS 跨域问题**
- 确认后端服务正常运行
- 检查 Nginx 配置是否正确转发

### 8.2 日志查看

服务运行时会输出详细日志：

```
[2026-05-19 10:00:00] ✓ 飞书 access_token 获取成功
[2026-05-19 10:00:01] ✓ 本地保存成功: /opt/ai-landing/data/2026-05.json
[2026-05-19 10:00:02] ✓ 飞书多维表格记录创建成功: recXXXXXXXXXXXXXX
[2026-05-19 10:00:03] ✓ 飞书通知发送成功
```

## 九、后续扩展

### 9.1 自动分配处理人

在 `consult-service.py` 中添加逻辑，根据不同条件自动分配处理人：

```python
def _auto_assign_handler(self, record):
    # 根据系统类型分配
    system = record.get("current_system", "")
    if "物业" in system:
        return "张三"
    elif "资管" in system:
        return "李四"
    else:
        return "王五"
```

### 9.2 自动发送邮件通知

添加邮件通知功能：

```python
import smtplib
from email.mime.text import MIMEText

def send_email_notification(self, record):
    # 配置邮件服务器
    smtp_server = os.getenv("SMTP_SERVER")
    smtp_port = int(os.getenv("SMTP_PORT", 587))
    smtp_user = os.getenv("SMTP_USER")
    smtp_password = os.getenv("SMTP_PASSWORD")

    msg = MIMEText(f"新咨询：{record['name']} - {record['phone']}", 'plain')
    msg['Subject'] = '官网新咨询通知'
    msg['From'] = smtp_user
    msg['To'] = 'sales@example.com'

    with smtplib.SMTP(smtp_server, smtp_port) as server:
        server.starttls()
        server.login(smtp_user, smtp_password)
        server.send_message(msg)
```

### 9.3 数据统计

定期统计咨询数据：

```python
def get_statistics(self):
    """获取统计数据"""
    # 按月统计
    # 按处理状态统计
    # 按来源统计
    pass
```

## 十、联系支持

如有问题，请联系技术支持。
