mcpField
H
hrsd-sentiment-analysis

hrsd-sentiment-analysis

github.com/happy-technologies-llc数据与数据库4141 次安装2 天前更新
代码仓库

关于 hrsd-sentiment-analysis

hrsd-sentiment-analysis 是面向 HR 团队的 ServiceNow 技能,可从案例、调查、聊天和反馈评估员工情绪。它结合趋势与员工生命周期信息,识别潜在离职风险及需关注的案例。

主要功能

  1. 01分析 HR 沟通中的情绪
  2. 02汇总调查与满意度趋势
  3. 03识别离职风险信号
  4. 04跟踪部门及组织趋势
  5. 05关联员工生命周期信息
  6. 06标记案例并记录备注

适用场景

  1. 01查看员工近六个月的情绪
  2. 02比较各部门的情绪趋势
  3. 03优先处理负面情绪加剧的案例
  4. 04识别可能存在离职风险的员工

MCP 相关

使用 ServiceNow MCP 工具查询 HR 案例、个人资料、调查、交互记录和日志,并记录分析结果或更新记录。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/happy-technologies-llc/happy-platform-skills --skill hrsd-sentiment-analysis

安装后在 Claude Code 中输入/hrsd-sentiment-analysis确认已加载。

详细介绍

员工情绪分析

概述

此技能分析员工在 HR 服务交付各接触点的情绪,包括案例、调查、聊天互动和反馈。它可以帮助你:

  • 评估 HR 案例沟通中的情绪倾向(积极、中性、消极)
  • 汇总调查回复和满意度评分,以分析趋势
  • 根据案例模式和情绪下降情况识别离职风险指标
  • 标记负面情绪不断升级的案例,以便管理者主动跟进
  • 跟踪部门级和组织整体的情绪趋势随时间的变化
  • 将情绪信号与员工生命周期事件(任职时间、角色变更、绩效评估)相关联

适用场景: HR 领导者需要了解员工满意度趋势、Agent 需要优先处理带有负面情绪的案例,或需要识别有离职风险的员工时。

先决条件

  • 角色: sn_hr_core.manager、sn_hr_core.case_reader 或 sn_hr_core.admin
  • 插件: com.sn_hr_service_delivery(HR Service Delivery)、com.glide.assessment(评估/调查)
  • 访问权限: 对 sn_hr_core_case、sn_hr_core_profile、sys_journal_field、interaction、asmt_assessment_instance 和 survey_response 的读取权限
  • 知识: 了解所在组织的调查周期、HR 案例类型和离职指标

操作步骤

步骤 1:检索用于情绪分析的 HR 案例

获取目标范围(个人、部门或组织)的近期 HR 案例。

使用 MCP(单个员工):

Tool: SN-Query-Table
Parameters:
  table_name: sn_hr_core_case
  query: subject_person=[employee_sys_id]^ORDERBYDESCopened_at
  fields: sys_id,number,short_description,description,state,priority,hr_service,opened_at,closed_at,contact_type,resolution_code,satisfaction_rating,reopened,reopen_count
  limit: 20

使用 MCP(整个部门):

Tool: SN-Query-Table
Parameters:
  table_name: sn_hr_core_case
  query: subject_person.department=[department_sys_id]^opened_at>=javascript:gs.beginningOfLast90Days()^ORDERBYDESCopened_at
  fields: sys_id,number,short_description,state,priority,hr_service,opened_at,subject_person,satisfaction_rating,contact_type
  limit: 100

使用 REST API:

GET /api/now/table/sn_hr_core_case?sysparm_query=subject_person.department=[department_sys_id]^opened_at>=javascript:gs.beginningOfLast90Days()^ORDERBYDESCopened_at&sysparm_fields=sys_id,number,short_description,state,priority,hr_service,opened_at,subject_person,satisfaction_rating,contact_type&sysparm_display_value=true&sysparm_limit=100
步骤 2:提取案例沟通内容以评估情绪

从案例中提取工作备注、评论和其他详细信息,以分析语言和语气。

使用 MCP:

Tool: SN-Query-Table
Parameters:
  table_name: sys_journal_field
  query: element_id=[case_sys_id]^element=comments^ORelement=work_notes^ORDERBYsys_created_on
  fields: sys_id,element,value,sys_created_on,sys_created_by,element_id
  limit: 50

使用 REST API:

GET /api/now/table/sys_journal_field?sysparm_query=element_id=[case_sys_id]^element=comments^ORelement=work_notes^ORDERBYsys_created_on&sysparm_fields=sys_id,element,value,sys_created_on,sys_created_by,element_id&sysparm_limit=50
步骤 3:检索聊天和互动历史记录

获取互动记录,以分析实时对话中的情绪。

使用 MCP:

Tool: SN-Query-Table
Parameters:
  table_name: interaction
  query: opened_for=[employee_sys_id]^ORDERBYDESCopened_at
  fields: sys_id,number,type,channel,state,opened_at,closed_at,short_description,wrap_up_comment,satisfaction,direction
  limit: 25

使用 REST API:

GET /api/now/table/interaction?sysparm_query=opened_for=[employee_sys_id]^ORDERBYDESCopened_at&sysparm_fields=sys_id,number,type,channel,state,opened_at,closed_at,short_description,wrap_up_comment,satisfaction,direction&sysparm_display_value=true&sysparm_limit=25
步骤 4:检索调查和评估回复

提取员工调查回复,以获取结构化的满意度数据。

使用 MCP(评估实例):

Tool: SN-Query-Table
Parameters:
  table_name: asmt_assessment_instance
  query: user=[employee_sys_id]^metric_type.nameLIKEemployee^ORmetric_type.nameLIKEHR^ORDERBYDESCtaken_on
  fields: sys_id,metric_type,taken_on,percent,state,user,category_scores
  limit: 10

使用 MCP(单个问题的回复):

Tool: SN-Query-Table
Parameters:
  table_name: asmt_assessment_instance_question
  query: instance.user=[employee_sys_id]^instance.metric_type.nameLIKEemployee
  fields: sys_id,instance,metric,value,string_value,actual_value,category
  limit: 50

使用 REST API:

GET /api/now/table/asmt_assessment_instance?sysparm_query=user=[employee_sys_id]^metric_type.nameLIKEemployee^ORDERBYDESCtaken_on&sysparm_fields=sys_id,metric_type,taken_on,percent,state,user,category_scores&sysparm_display_value=true&sysparm_limit=10
步骤 5:获取员工档案和生命周期背景信息

检索员工 HR 档案,以便将情绪与生命周期事件相关联。

使用 MCP:

Tool: SN-Query-Table
Parameters:
  table_name: sn_hr_core_profile
  query: user=[employee_sys_id]
  fields: sys_id,user,department,location,employment_type,hire_date,manager,job_title,cost_center,last_review_date,last_promotion_date,years_in_role,employee_type
  limit: 1

使用 REST API:

GET /api/now/table/sn_hr_core_profile?sysparm_query=user=[employee_sys_id]&sysparm_fields=sys_id,user,department,location,employment_type,hire_date,manager,job_title,cost_center,last_review_date,last_promotion_date,years_in_role&sysparm_display_value=true&sysparm_limit=1
步骤 6:分析案例类型模式

检查已提交案例的类型,以识别值得关注的模式。

使用 MCP:

Tool: SN-Query-Table
Parameters:
  table_name: sn_hr_core_case
  query: subject_person=[employee_sys_id]^opened_at>=javascript:gs.beginningOfLast12Months()
  fields: sys_id,hr_service,hr_service.name,opened_at,state,priority
  limit: 50

将案例类型映射到与情绪相关的类别:

=== CASE TYPE PATTERN ANALYSIS ===

High-Risk Case Types (negative sentiment indicators):
- Workplace Complaint / Grievance
- Accommodation Request (especially repeated)
- Policy Dispute / Exception Request
- Manager Escalation
- Exit / Separation Inquiry

Neutral Case Types:
- Benefits Enrollment / Change
- Address / Personal Info Update
- Payroll Inquiry
- General HR Question

Positive Case Types:
- Internal Mobility / Transfer Request
- Training / Development Request
- Recognition Nomination
- Promotion Processing
步骤 7:汇总情绪评估

将发现汇总为结构化的情绪报告:

=== EMPLOYEE SENTIMENT ASSESSMENT ===

Employee: Jane Smith | Engineering | Senior Software Engineer
Tenure: 4.8 years | Last Promotion: 18 months ago
Manager: Bob Johnson

--- Overall Sentiment Score ---
Composite Score: 42/100 (Declining - was 68/100 six months ago)
Trend: Negative trajectory over 3 months
Risk Level: ELEVATED

--- Case Sentiment Breakdown ---
Total Cases (12 months): 7
| Period        | Cases | Avg Sentiment | Dominant Tone     |
|---------------|-------|---------------|-------------------|
| Last 30 days  | 3     | Negative      | Frustrated        |
| 30-90 days    | 2     | Neutral       | Matter-of-fact    |
| 90-365 days   | 2     | Positive      | Appreciative      |

--- Survey Scores ---
| Survey                  | Date       | Score | Org Average |
|-------------------------|------------|-------|-------------|
| Q1 Engagement Pulse     | 2026-03-01 | 3.2/5 | 4.1/5       |
| Q4 Annual Engagement    | 2025-12-15 | 3.8/5 | 4.0/5       |
| Q3 Engagement Pulse     | 2025-09-01 | 4.2/5 | 4.1/5       |

--- Flight Risk Indicators ---
[!] Case volume increasing (3 cases in 30 days vs 2 in prior 60)
[!] Engagement survey score dropped 1.0 point in 6 months
[!] Filed policy exception request (potential dissatisfaction)
[!] No promotion in 18 months (above team average of 14 months)
[ ] No internal mobility applications detected
[ ] No exit-related case types filed

--- Sentiment Signals from Communications ---
- Case HRC0012456: "I've raised this issue multiple times..."
  Signal: Repeat frustration, unresolved concern
- Case HRC0012501: "The process seems unnecessarily complicated"
  Signal: Process dissatisfaction
- Case HRC0012523: "I need to understand my options"
  Signal: Ambiguous; may indicate exploration of alternatives

--- Recommended Actions ---
1. IMMEDIATE: Flag for manager 1-on-1 conversation
2. SHORT-TERM: Resolve open cases within SLA to rebuild trust
3. MEDIUM-TERM: Career development conversation recommended
4. TRACKING: Add to monthly sentiment watch list
步骤 8:标记需要管理者关注的案例

如果情绪分析发现风险,请添加工作备注并标记案例以供审核。

使用 MCP:

Tool: SN-Add-Work-Notes
Parameters:
  table_name: sn_hr_core_case
  sys_id: [latest_case_sys_id]
  work_notes: "SENTIMENT ALERT: Employee shows declining sentiment trend (score 42/100, down from 68). Flight risk indicators detected: increasing case volume, declining survey scores, no recent career advancement. Recommend manager outreach and career development discussion."

工具用法

MCP 工具参考
工具使用时机
SN-Query-Table查询案例、档案、调查、互动记录和日志条目
SN-Natural-Language-Search使用自然语言搜索包含特定情绪关键词的案例
SN-Get-Record检索单条记录的详细信息,以进行深入分析
SN-Add-Work-Notes在案例记录中记录情绪分析结果
SN-Update-Record更新档案中的风险指标或情绪评分
REST API 参考
端点方法用途
/api/now/table/sn_hr_core_caseGET用于情绪提取的 HR 案例
/api/now/table/sys_journal_fieldGET案例沟通记录和评论
/api/now/table/interactionGET聊天和电话互动历史
/api/now/table/asmt_assessment_instanceGET调查/评估响应数据
/api/now/table/asmt_assessment_instance_questionGET单项调查问题的响应
/api/now/table/sn_hr_core_profileGET员工生命周期背景信息
/api/now/table/sn_hr_le_case_typeGET案例类型分类

最佳实践

  • 使用多种信号: 切勿依赖单一数据点;结合案例情绪、调查评分和互动语气,以提高准确性
  • 建立基准: 将个人情绪与部门及组织平均水平进行比较,以获得有意义的背景信息
  • 追踪趋势,而非快照: 持续下降的趋势比单个负面案例更值得关注
  • 尊重隐私: 情绪数据属于敏感信息;仅与获授权的 HR 人员及员工的直属管理链分享
  • 避免评分偏差: 关注可观察到的模式(案例频率、调查评分),而非对孤立评论进行主观解读
  • 校准离职风险阈值: 与 HR 领导层协作,确定触发特定干预措施的评分阈值
  • 考虑生命周期背景: 入职未满 90 天的新员工可能呈现出与资深员工不同的模式;请据此调整分析
  • 记录方法: 记录所用的评分标准和数据来源,以确保结果可复现且可审计

故障排除

“未找到调查响应”

原因: 调查可能使用了不同的评估类型名称,也可能存储在单独的调查插件中
解决方案: 查询 asmt_metric_type 以列出可用的评估类型。另请检查 survey_response 表,确认是否有其他存储位置

“日志条目返回的数据过多”

原因: 高流量案例可能包含数百条日志条目
解决方案: 使用 sys_created_on>=javascript:gs.daysAgo(90) 按日期范围筛选,并限制为 element=comments,以获取面向员工的沟通内容

“满意度评分字段为空”

原因: 并非所有案例类型都会收集 CSAT;该数据可能在案例关闭后采集
解决方案: 检查 sn_hr_core_case 中的 close_notes,并确认是否会在案例关闭时通过 asmt_assessment_instance 触发单独的满意度调查

“部门级查询超时”

原因: 规模较大的部门在 12 个月内产生的大量案例可能会超出查询限制
解决方案: 将查询拆分为按月执行的多个查询,或使用 sysparm_query=subject_person.department=[id]^opened_at>=YYYY-MM-DD^opened_at<=YYYY-MM-DD 并启用分页

示例

示例 1:员工个人情绪检查

输入:“分析员工 Jane Smith 过去 6 个月的情绪”

步骤:

  1. 从 sn_hr_core_profile 中查找员工的 sys_id
  2. 查询案例、互动和调查
  3. 根据沟通内容评估情绪
  4. 汇总个人情绪报告
示例 2:部门情绪仪表板

输入:“显示 Engineering 部门的情绪趋势”

Tool: SN-Query-Table
Parameters:
  table_name: sn_hr_core_case
  query: subject_person.department.name=Engineering^opened_at>=javascript:gs.beginningOfLast12Months()
  fields: number,subject_person,hr_service,opened_at,satisfaction_rating,state,priority
  limit: 200

按月份和案例类型汇总,以生成趋势可视化数据。

示例 3:面向 HR 领导层的离职风险报告

输入:“识别离职风险指标最高的员工”

Tool: SN-Query-Table
Parameters:
  table_name: sn_hr_core_case
  query: hr_service.nameLIKEexit^ORhr_service.nameLIKEseparation^ORhr_service.nameLIKEresignation^opened_at>=javascript:gs.daysAgo(90)
  fields: number,subject_person,hr_service,opened_at,state,subject_person.department
  limit: 50

与调查评分下降和案例数量增加的情况交叉比对,以确定优先级。

相关技能

  • hrsd/case-summarization - 为被标记为情绪异常的案例提供详细背景信息
  • hrsd/chat-reply-recommendation - 根据情绪分析调整回复语气
  • hrsd/persona-assistant - 为有风险的员工提供个性化支持
  • reporting/trend-analysis - 可视化情绪随时间变化的趋势
  • reporting/executive-dashboard - 面向高管的情绪指标

评论

支持 Markdown