Loading...
Loading...
Compare original and translation side by side
if (clarification_attempts >= 2) {
escalate("I want to make sure you get the right help.
Let me connect you with a team member.")
}if (clarification_attempts >= 2) {
escalate("我希望确保您获得正确的帮助。
让我为您对接团队成员。")
}HUMAN_REQUEST:
- "talk to human"
- "real person"
- "agent"
- "representative"
- "speak to someone"
FRUSTRATION:
- "this is ridiculous"
- "waste of time"
- "doesn't help"
- profanity_listif (messages_without_resolution > 5) → escalate
if (sentiment_score < -0.5) → escalate
if (repeated_question_count >= 2) → escalateHUMAN_REQUEST:
- "talk to human"
- "real person"
- "agent"
- "representative"
- "speak to someone"
FRUSTRATION:
- "this is ridiculous"
- "waste of time"
- "doesn't help"
- profanity_listif (messages_without_resolution > 5) → escalate
if (sentiment_score < -0.5) → escalate
if (repeated_question_count >= 2) → escalateHANDOFF SUMMARY
Customer: Sarah Johnson, Acme Corp
Channel: Chat → Phone requested
Escalation reason: Complex pricing question
Key points:
- Looking for enterprise pricing
- Has 500+ employees
- Evaluating 3 vendors
- Decision timeline: 2 weeks
Sentiment: Neutral → slightly frustrated at response speed
Questions answered: Product features, basic pricing
Unanswered: Volume discounts, custom integrationsHANDOFF SUMMARY
Customer: Sarah Johnson, Acme Corp
Channel: Chat → Phone requested
Escalation reason: Complex pricing question
Key points:
- Looking for enterprise pricing
- Has 500+ employees
- Evaluating 3 vendors
- Decision timeline: 2 weeks
Sentiment: Neutral → slightly frustrated at response speed
Questions answered: Product features, basic pricing
Unanswered: Volume discounts, custom integrationsfunction routeHandoff(context) {
// Priority 1: Existing relationship
if (context.assigned_rep && context.assigned_rep.available) {
return context.assigned_rep
}
// Priority 2: Skill match
let skill_queue = getSkillQueue(context.escalation_type)
let available_agents = skill_queue.filter(a => a.available)
// Priority 3: Load balancing
if (available_agents.length > 0) {
return available_agents.sort(by_queue_length)[0]
}
// Fallback: Callback queue
return "callback_queue"
}function routeHandoff(context) {
// Priority 1: Existing relationship
if (context.assigned_rep && context.assigned_rep.available) {
return context.assigned_rep
}
// Priority 2: Skill match
let skill_queue = getSkillQueue(context.escalation_type)
let available_agents = skill_queue.filter(a => a.available)
// Priority 3: Load balancing
if (available_agents.length > 0) {
return available_agents.sort(by_queue_length)[0]
}
// Fallback: Callback queue
return "callback_queue"
}