← Back to Skills Marketplace
perrykono-debug

C+服务需求匹配

by perrykono-debug · GitHub ↗ · v1.0.0 · MIT-0
cross-platform ⚠ suspicious
16
Downloads
0
Stars
0
Active Installs
1
Versions
Install in OpenClaw
/install service-matching
Description
C+服务需求匹配技能。基于真实Excel台账(美兰中心C+服务.xlsx)挖掘企业需求,匹配C+服务资源。触发场景:(1) 管家上传走访记录,(2) 定时任务每日10:00分析昨日走访记录,(3) 手动触发服务匹配(@企服助手 服务匹配)。
README (SKILL.md)

C+服务需求匹配技能 (Service Matching Skill)

功能概述

本技能用于从走访记录中自动挖掘企业需求,基于中集金地美兰中心真实Excel台账,根据企业类型和画像匹配适合的C+服务,生成推荐方案供管家确认。


数据源配置

数据文件: /Users/mac/美兰中心C+服务.xlsx

工作表映射:

功能模块 工作表名 用途
C+服务记录 C+服务记录 主数据源(走访记录、需求描述)
客户画像 customer-management技能 企业画像(企业类型、等级、经营范围)

数据接口(依赖 customer-management 技能)

核心依赖

本技能依赖 customer-management 技能获取企业画像数据:

# 调用示例
customer_profile = call_skill("customer-management", {
    "action": "query_customer",
    "tenant_name": "上海铭尤力食品有限公司"
})

# 获取企业画像数据
enterprise_type = customer_profile.get("企业类型", "")
level = customer_profile.get("等级", "")
business_scope = customer_profile.get("经营范围", "")
tax_qualification = customer_profile.get("纳税人资质", "")

Excel工作表字段映射

C+服务记录表(10字段)

Excel列序号 字段名 用途
1 租户名 关联客户管理表
2 走访时间 时间
3 走访管家 人员
4 客户情绪 满意/一般/不满意
5 成交情况 是/否
6 服务类别 室内保洁/商务接待等
7 成交金额 金额
8 详情记录 企业需求描述
9 月份 月份
10 备注 备注

核心逻辑

1. 需求挖掘(NLP提取)

def extract_needs_from_visit(detail_record):
    """
    从走访记录中提取企业需求
    
    Args:
        detail_record: 走访详情文本
    
    Returns:
        list: 需求列表
    """
    # NLP关键词匹配
    needs_keywords = {
        "保洁需求": ["清洁", "卫生", "保洁", "打扫"],
        "商务接待": ["接待", "会议室", "访客", "客人"],
        "室内维修": ["维修", "修理", "更换", "安装"],
        "环境优化": ["空气", "绿植", "噪音", "光线"],
        "能源管理": ["电费", "水费", "节能", "空调"],
        "证照服务": ["许可证", "执照", "审批", "证照"],
        "企业服务": ["注册", "变更", "年检", "税务"]
    }
    
    needs = []
    for need_type, keywords in needs_keywords.items():
        for keyword in keywords:
            if keyword in detail_record:
                needs.append(need_type)
                break
    
    return needs

2. 企业画像获取(调用customer-management)

def get_enterprise_profile(tenant_name):
    """
    调用 customer-management 技能获取企业画像
    
    Args:
        tenant_name: 租户名
    
    Returns:
        dict: 企业画像
    """
    customer_profile = call_skill("customer-management", {
        "action": "query_customer",
        "tenant_name": tenant_name
    })
    
    if not customer_profile:
        return None
    
    return {
        "租户名": customer_profile.get("租户名", ""),
        "企业类型": customer_profile.get("企业类型", ""),
        "等级": customer_profile.get("等级", ""),
        "经营范围": customer_profile.get("经营范围", ""),
        "纳税人资质": customer_profile.get("纳税人资质", ""),
        "天眼评分": customer_profile.get("天眼评分", 0)
    }

3. 服务推荐算法

def recommend_services(enterprise_profile, needs):
    """
    根据企业画像和需求推荐服务
    
    Args:
        enterprise_profile: 企业画像
        needs: 需求列表
    
    Returns:
        list: 推荐服务列表
    """
    # 服务匹配规则库
    service_rules = {
        "餐饮配套": {
            "优先服务": ["卫生许可证提醒", "固废清运", "室内保洁", "能源管理"],
            "优惠政策": "首月9折"
        },
        "制造业": {
            "优先服务": ["固废清运", "环境检测", "安全生产培训"],
            "优惠政策": "包年8折"
        },
        "商务配套": {
            "优先服务": ["商务接待", "会议室预定", "室内保洁", "绿植租赁"],
            "优惠政策": "首次免费体验"
        },
        "科技企业": {
            "优先服务": ["企业注册变更", "知识产权服务", "政策申报"],
            "优惠政策": "代办服务9折"
        }
    }
    
    enterprise_type = enterprise_profile.get("企业类型", "商务配套")
    level = enterprise_profile.get("等级", "B")
    
    # 获取匹配规则
    rules = service_rules.get(enterprise_type, service_rules["商务配套"])
    
    recommendations = []
    
    # 1. 基于企业类型的推荐
    for service in rules["优先服务"]:
        recommendations.append({
            "服务名称": service,
            "推荐理由": f"适合{enterprise_type}企业",
            "优先级": "高" if level == "A" else "中",
            "优惠政策": rules["优惠政策"],
            "跟进状态": "待确认",
            "跟进时间": None,
            "跟进结果": None
        })
    
    # 2. 基于需求的推荐
    for need in needs:
        if need not in [r["服务名称"] for r in recommendations]:
            recommendations.append({
                "服务名称": need,
                "推荐理由": "走访需求匹配",
                "优先级": "高",
                "优惠政策": rules["优惠政策"],
                "跟进状态": "待确认",
                "跟进时间": None,
                "跟进结果": None
            })
    
    return recommendations

4. 服务跟踪闭环功能

def track_service_followup(tenant_name, service_name, followup_status, notes=""):
    """
    跟踪服务跟进状态
    
    Args:
        tenant_name: 租户名
        service_name: 服务名称
        followup_status: 跟进状态(待确认/已推荐/已拒绝/已成交)
        notes: 跟进说明
    
    Returns:
        bool: 是否更新成功
    """
    wb = openpyxl.load_workbook('/Users/mac/美兰中心C+服务.xlsx')
    ws_service = wb['C+服务记录']
    
    today = datetime.now().date()
    
    # 1. 查找匹配的服务记录
    for row in ws_service.iter_rows(min_row=2):
        if row[0].value == tenant_name and service_name in str(row[5].value):  # 服务类别匹配
            # 2. 更新跟进状态(需要扩展Excel列)
            # 假设新增列:跟进状态、跟进时间、跟进结果
            row[10].value = followup_status  # 跟进状态
            row[11].value = today.strftime("%Y年%m月%d日")  # 跟进时间
            row[12].value = notes  # 跟进结果/说明
            
            wb.save('/Users/mac/美兰中心C+服务.xlsx')
            
            # 3. 发送跟进通知
            send_followup_notification({
                "租户名": tenant_name,
                "服务名称": service_name,
                "跟进状态": followup_status,
                "跟进时间": today.strftime("%Y年%m月%d日"),
                "说明": notes
            })
            
            return True
    
    return False

5. 跟进提醒机制

def check_followup_reminders():
    """
    检查需要跟进的服务推荐
    
    Returns:
        dict: 需要跟进的服务清单
    """
    wb = openpyxl.load_workbook('/Users/mac/美兰中心C+服务.xlsx')
    ws_service = wb['C+服务记录']
    
    today = datetime.now().date()
    reminders = {
        "今日需跟进": [],
        "逾期未完成": [],
        "本周计划跟进": []
    }
    
    for row in ws_service.iter_rows(min_row=2, values_only=True):
        tenant_name = row[0]
        service_type = row[5]  # 服务类别
        followup_status = row[10] if len(row) > 10 else None  # 跟进状态
        followup_time = row[11] if len(row) > 11 else None  # 跟进时间
        
        if followup_status == "待确认":
            # 判断是否需要提醒
            if followup_time:
                followup_date = parse_excel_date(followup_time)
                days_pending = (today - followup_date).days
                
                if days_pending == 0:
                    reminders["今日需跟进"].append({
                        "租户名": tenant_name,
                        "服务名称": service_type,
                        "待跟进天数": days_pending
                    })
                elif days_pending > 3:  # 超过3天未跟进
                    reminders["逾期未完成"].append({
                        "租户名": tenant_name,
                        "服务名称": service_type,
                        "逾期天数": days_pending
                    })
            else:
                # 没有跟进时间,加入本周计划
                reminders["本周计划跟进"].append({
                    "租户名": tenant_name,
                    "服务名称": service_type
                })
    
    return reminders

6. 服务效果评估

def evaluate_service_effectiveness(tenant_name, service_name):
    """
    评估服务效果
    
    Args:
        tenant_name: 租户名
        service_name: 服务名称
    
    Returns:
        dict: 服务效果评估结果
    """
    wb = openpyxl.load_workbook('/Users/mac/美兰中心C+服务.xlsx')
    ws_service = wb['C+服务记录']
    
    # 获取服务记录
    service_record = None
    for row in ws_service.iter_rows(min_row=2, values_only=True):
        if row[0] == tenant_name and service_name in str(row[5]):
            service_record = {
                "走访时间": row[1],
                "客户情绪": row[3],
                "成交情况": row[4],
                "服务类别": row[5],
                "成交金额": row[6]
            }
            break
    
    if not service_record:
        return {'效果': '无记录', '评分': 0}
    
    # 计算效果评分
    score = 0
    
    # 1. 成交情况(权重50%)
    if service_record["成交情况"] == "是":
        score += 50
        # 成交金额加分
        amount = float(service_record["成交金额"] or 0)
        if amount > 5000:
            score += 20
    
    # 2. 客户情绪(权重30%)
    if service_record["客户情绪"] == "满意":
        score += 30
    elif service_record["客户情绪"] == "一般":
        score += 15
    
    # 3. 跟进及时性(权重20%)
    # 这里需要跟进时间数据,暂时简化处理
    score += 20
    
    # 确定效果等级
    effect_level = "差"
    if score >= 80:
        effect_level = "优"
    elif score >= 60:
        effect_level = "良"
    elif score >= 40:
        effect_level = "中"
    
    return {
        "效果等级": effect_level,
        "评分": min(score, 100),
        "成交情况": service_record["成交情况"],
        "客户情绪": service_record["客户情绪"],
        "成交金额": service_record["成交金额"]
    }

执行流程

Step 1 → 读取Excel C+服务记录表
         工作表:C+服务记录
         筛选:昨日走访记录 或 指定时间范围

Step 2 → NLP需求提取
         从详情记录中提取关键词,识别需求类型

Step 3 → 调用 customer-management 技能
         获取企业画像(企业类型、等级、经营范围)

Step 4 → 服务匹配
         根据企业类型 + 需求 → 匹配服务规则库

Step 5 → 生成推荐方案
         包含:服务名称、推荐理由、优先级、优惠政策

Step 6 → 推送企微
         发送给管家确认

推送模板

━━━━━━━━━━━━━━━
【C+服务推荐】

🏢 企业:{tenant_name}
📍 单元:{unit_no}
━━━ 企业画像 ━━━
类型:{enterprise_type}
等级:{level}
经营范围:{business_scope}

━━━ 走访需求 ━━━
{needs}

━━━ 推荐服务 ━━━
{recommendations}

💡 建议:{suggestion}

⚡ 操作链接:[腾讯文档-C+服务]
━━━━━━━━━━━━━━━

定时任务配置

{
  "name": "C+服务需求分析",
  "schedule": {
    "kind": "cron",
    "expr": "0 10 * * *",
    "tz": "Asia/Shanghai"
  },
  "payload": {
    "kind": "agentTurn",
    "message": "分析昨日C+服务走访记录,提取企业需求,匹配服务资源,生成推荐方案"
  },
  "sessionTarget": "isolated"
}

手动触发方式

  1. 企微 @提及: @企服助手 服务匹配
  2. OpenClaw指令: 分析服务需求

配置参数

{
  "service_matching": {
    "excel_path": "/Users/mac/美兰中心C+服务.xlsx",
    "auto_recommend": true,
    "wecom_webhook": "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=xxx"
  }
}

使用示例

用户输入: @企服助手 服务匹配 上海铭尤力

输出:

━━━━━━━━━━━━━━━
【C+服务推荐】上海铭尤力食品有限公司

━━━ 企业画像 ━━━
类型:食品制造业
等级:B级
经营范围:食品生产销售

━━━ 推荐服务 ━━━
1. 卫生许可证提醒(高优先级)
   理由:适合食品制造业
   优惠:首月9折

2. 固废清运(高优先级)
   理由:适合食品制造业
   优惠:首月9折

3. 室内保洁(中优先级)
   理由:适合食品制造业
   优惠:首月9折

⚡ 操作链接:[腾讯文档-C+服务]
━━━━━━━━━━━━━━━

当前状态: 技能已调整,依赖customer-management技能获取企业画像。

核心改进: 从独立的知识库查询 → 改为调用 customer-management 技能 + Excel C+服务记录表。

Usage Guidance
Review before installing. Use this only with permission to access the specified Excel ledger and customer-management data. Confirm where the WeCom webhook posts, who can read that channel, and whether tenant/business details should be redacted. Treat ledger updates as a separate operator-approved action, with backups or audit logging, rather than letting routine analysis silently modify production records.
Capability Assessment
Purpose & Capability
Reading the C+ service Excel ledger, querying customer profiles, extracting needs, and recommending services all fit the stated service-matching purpose.
Instruction Scope
The artifact includes a follow-up function that writes status, time, and notes back to the real Excel ledger and sends a notification; this is purpose-related but not clearly separated from read-only analysis or gated by explicit confirmation.
Install Mechanism
No package dependencies or substantive executable installer are present; the included script is a placeholder and static scan/VirusTotal are clean.
Credentials
The skill uses a fixed local Excel path, tenant profile data from another skill, and a WeCom webhook, which are proportionate to the workflow but involve sensitive business and tenant information.
Persistence & Privilege
A daily scheduled task and auto-recommend setting are disclosed, but recurring analysis plus outbound notifications and possible ledger mutation need clear operator control and audit expectations.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install service-matching
  3. After installation, invoke the skill by name or use /service-matching
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.0.0
初始发布:走访记录挖掘、企业画像匹配、服务推荐
Metadata
Slug service-matching
Version 1.0.0
License MIT-0
All-time Installs 0
Active Installs 0
Total Versions 1
Frequently Asked Questions

What is C+服务需求匹配?

C+服务需求匹配技能。基于真实Excel台账(美兰中心C+服务.xlsx)挖掘企业需求,匹配C+服务资源。触发场景:(1) 管家上传走访记录,(2) 定时任务每日10:00分析昨日走访记录,(3) 手动触发服务匹配(@企服助手 服务匹配)。 It is an AI Agent Skill for Claude Code / OpenClaw, with 16 downloads so far.

How do I install C+服务需求匹配?

Run "/install service-matching" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is C+服务需求匹配 free?

Yes, C+服务需求匹配 is completely free, licensed under MIT-0. You can download, install and use it at no cost.

Which platforms does C+服务需求匹配 support?

C+服务需求匹配 is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created C+服务需求匹配?

It is built and maintained by perrykono-debug (@perrykono-debug); the current version is v1.0.0.

💬 Comments