AI insights use cases
This guide provides complete, industry-specific examples of AI Insights implementations. Each use case includes insight configurations, group organization, webhook integration, and best practices.
Healthcare
Use case: Patient call quality & compliance
Business Need: Ensure regulatory compliance (HIPAA) while monitoring patient interaction quality and identifying follow-up needs.
Insight configurations
1. HIPAA compliance check (structured)
Name: HIPAA Compliance Verification
Instructions: Verify HIPAA compliance requirements were met during this call.
Parameters:
1. disclosures_made
- Type: boolean
- Required: Yes
- Description: Were required privacy disclosures made at the start of the call?
2. consent_obtained
- Type: boolean
- Required: Yes
- Description: Was patient consent obtained before discussing PHI?
3. phi_handled_properly
- Type: boolean
- Required: Yes
- Description: Was Protected Health Information handled according to HIPAA guidelines?
4. violations
- Type: array
- Required: No
- Description: List any potential HIPAA violations or concerns
5. compliant
- Type: boolean
- Required: Yes
- Description: Overall assessment: was this call HIPAA compliant?
2. Patient care quality (structured)
Name: Patient Care Assessment
Instructions: Evaluate the quality of patient care and interaction.
Parameters:
1. empathy_score
- Type: number
- Required: Yes
- Description: Rate the assistant's empathy from 1-5 (1=robotic, 5=highly empathetic)
2. clarity_score
- Type: number
- Required: Yes
- Description: Rate explanation clarity from 1-5 (1=confusing, 5=very clear)
3. questions_answered
- Type: boolean
- Required: Yes
- Description: Were all patient questions adequately answered?
4. follow_up_needed
- Type: boolean
- Required: Yes
- Description: Does this patient require follow-up contact?
5. urgency_level
- Type: string
- Required: Yes
- Description: Urgency classification: "routine", "moderate", "urgent", "emergency"
3. Appointment summary (unstructured)
Name: Call Summary for Patient Record
Instructions: Create a concise summary for the patient's medical record. Include:
- Reason for call.
- Symptoms or concerns discussed.
- Instructions provided.
- Any appointments scheduled.
- Follow-up requirements.
Keep summary professional and factual for medical record inclusion.
Insight group configuration
Name: Healthcare Patient Calls
Webhook URL: https://ehr.healthcorp.com/api/webhooks/ai-insights
Insights:
- HIPAA Compliance Verification
- Patient Care Assessment
- Call Summary for Patient Record
Webhook integration example
@app.route('/api/webhooks/ai-insights', methods=['POST'])
def handle_patient_call_insights():
data = request.json
conversation_id = data['conversation_id']
insights = {i['insight_name']: i['result'] for i in data['insights']}
# Check compliance
compliance = insights.get('HIPAA Compliance Verification', {})
if not compliance.get('compliant'):
# Alert compliance team
alert_compliance_team(
conversation_id=conversation_id,
violations=compliance.get('violations', [])
)
# Check if urgent follow-up needed
care = insights.get('Patient Care Assessment', {})
if care.get('urgency_level') in ['urgent', 'emergency']:
# Create urgent task
create_urgent_followup(
conversation_id=conversation_id,
urgency=care['urgency_level']
)
# Store summary in EHR
summary = insights.get('Call Summary for Patient Record')
if summary:
ehr.add_patient_note(
conversation_id=conversation_id,
note=summary,
note_type='ai_assistant_call'
)
return jsonify({'status': 'processed'}), 200
Expected results
{
"insights": [
{
"insight_name": "HIPAA Compliance Verification",
"result": {
"disclosures_made": true,
"consent_obtained": true,
"phi_handled_properly": true,
"violations": [],
"compliant": true
}
},
{
"insight_name": "Patient Care Assessment",
"result": {
"empathy_score": 5,
"clarity_score": 4,
"questions_answered": true,
"follow_up_needed": true,
"urgency_level": "routine"
}
},
{
"insight_name": "Call Summary for Patient Record",
"result": "Patient called regarding follow-up on recent lab results. Explained test findings indicating normal thyroid function. Patient had questions about medication dosing which were addressed. Scheduled 6-month follow-up appointment. No immediate concerns noted."
}
]
}
Customer support
Use case: Support ticket automation & quality monitoring
Business Need: Automatically categorize and route support calls, monitor agent performance, and ensure customer satisfaction.
Insight configurations
1. Ticket classification (structured)
Name: Support Ticket Classifier
Instructions: Classify and triage the support request for ticket creation.
Parameters:
1. issue_type
- Type: string
- Required: Yes
- Description: Primary issue category: "technical", "billing", "account", "feature_request", "bug_report", "general"
2. product_area
- Type: string
- Required: No
- Description: Which product or service is affected?
3. priority
- Type: string
- Required: Yes
- Description: Priority level: "critical", "high", "medium", "low"
4. resolved
- Type: boolean
- Required: Yes
- Description: Was the issue completely resolved during this call?
5. resolution_time_minutes
- Type: number
- Required: No
- Description: If resolved, approximately how many minutes did resolution take?
6. tags
- Type: array
- Required: No
- Description: Relevant tags (e.g., "password_reset", "refund_request", "api_error")
2. Customer satisfaction (structured)
Name: Customer Satisfaction Score
Instructions: Assess customer satisfaction from the conversation.
Parameters:
1. csat_score
- Type: number
- Required: Yes
- Description: Customer satisfaction from 1-5 (1=very dissatisfied, 5=very satisfied)
2. sentiment
- Type: string
- Required: Yes
- Description: Overall sentiment: "positive", "neutral", "negative"
3. frustration_level
- Type: number
- Required: Yes
- Description: Customer frustration from 1-5 (1=not frustrated, 5=extremely frustrated)
4. likely_to_churn
- Type: boolean
- Required: Yes
- Description: Based on the conversation, is the customer likely to cancel service?
5. positive_feedback
- Type: array
- Required: No
- Description: Specific things the customer praised or appreciated
3. Agent performance (structured)
Name: Agent Quality Assessment
Instructions: Evaluate the AI assistant's performance in handling this support request.
Parameters:
1. professionalism_score
- Type: number
- Required: Yes
- Description: Professional tone and communication from 1-5
2. problem_solving_score
- Type: number
- Required: Yes
- Description: Effectiveness in solving the issue from 1-5
3. efficiency_score
- Type: number
- Required: Yes
- Description: How efficiently was the issue handled from 1-5
4. escalation_needed
- Type: boolean
- Required: Yes
- Description: Should this have been escalated to human agent?
5. improvement_areas
- Type: array
- Required: No
- Description: Areas where the assistant could improve
Insight group configuration
Name: Support Call Analytics
Webhook URL: https://support.mycompany.com/api/webhooks/ai-insights
Insights:
- Support Ticket Classifier
- Customer Satisfaction Score
- Agent Quality Assessment
Webhook integration example
app.post('/api/webhooks/ai-insights', async (req, res) => {
res.status(200).send('OK');
const { conversation_id, insights } = req.body;
const insightMap = Object.fromEntries(
insights.map(i => [i.insight_name, i.result])
);
const classification = insightMap['Support Ticket Classifier'];
const satisfaction = insightMap['Customer Satisfaction Score'];
const performance = insightMap['Agent Quality Assessment'];
// Create ticket if unresolved
if (!classification.resolved) {
await ticketing.create({
conversation_id,
type: classification.issue_type,
priority: classification.priority,
product: classification.product_area,
tags: classification.tags,
customer_sentiment: satisfaction.sentiment
});
}
// Alert on potential churn
if (satisfaction.likely_to_churn) {
await alerts.send({
type: 'churn_risk',
conversation_id,
csat_score: satisfaction.csat_score,
frustration: satisfaction.frustration_level
});
}
// Log agent performance metrics
await analytics.track('agent_performance', {
conversation_id,
professionalism: performance.professionalism_score,
problem_solving: performance.problem_solving_score,
efficiency: performance.efficiency_score,
escalation_needed: performance.escalation_needed
});
});
Sales
Use case: Lead qualification & pipeline management
Business Need: Automatically qualify inbound leads, score opportunities, and route to appropriate sales representatives.
Insight configurations
1. Lead qualification (structured)
Name: Sales Lead Qualifier
Instructions: Assess the quality and readiness of this sales lead.
Parameters:
1. budget_discussed
- Type: boolean
- Required: Yes
- Description: Did the prospect discuss budget or pricing?
2. budget_range
- Type: string
- Required: No
- Description: Budget range if mentioned: "under_10k", "10k_50k", "50k_100k", "over_100k", "not_disclosed"
3. decision_timeframe
- Type: string
- Required: Yes
- Description: When will they decide: "immediate", "this_month", "this_quarter", "next_quarter", "exploring", "unknown"
4. authority_level
- Type: string
- Required: Yes
- Description: Decision-making authority: "decision_maker", "influencer", "end_user", "researcher", "unknown"
5. pain_points
- Type: array
- Required: Yes
- Description: Specific problems or needs mentioned by the prospect
6. competitor_mentions
- Type: array
- Required: No
- Description: Names of competing solutions mentioned
7. lead_score
- Type: number
- Required: Yes
- Description: Overall qualification score from 1-10 based on BANT criteria
8. recommended_action
- Type: string
- Required: Yes
- Description: Next step: "immediate_followup", "schedule_demo", "send_proposal", "nurture", "disqualify"
2. Product interest (structured)
Name: Product Interest Tracking
Instructions: Identify which products or features the prospect showed interest in.
Parameters:
1. products_mentioned
- Type: array
- Required: Yes
- Description: List of products discussed during the call
2. primary_interest
- Type: string
- Required: Yes
- Description: The product they seemed most interested in
3. feature_priorities
- Type: array
- Required: No
- Description: Specific features they asked about or emphasized
4. use_case
- Type: string
- Required: Yes
- Description: Brief description of their intended use case
5. integration_requirements
- Type: array
- Required: No
- Description: Systems they need to integrate with
3. Objections & concerns (unstructured)
Name: Sales Objections Analysis
Instructions: Identify any objections, concerns, or hesitations the prospect expressed. Include:
- Price/budget concerns.
- Feature gaps or limitations.
- Competitive comparisons.
- Implementation concerns.
- Trust or credibility questions.
Provide actionable insights for sales team to address these objections.
Insight group configuration
Name: Sales Call Intelligence
Webhook URL: https://crm.salesteam.com/api/webhooks/leads
Insights:
- Sales Lead Qualifier
- Product Interest Tracking
- Sales Objections Analysis
Webhook integration example
app.post('/api/webhooks/leads', async (req, res) => {
res.status(200).send('OK');
const { conversation_id, insights } = req.body;
const insightMap = Object.fromEntries(
insights.map(i => [i.insight_name, i.result])
);
const qualification = insightMap['Sales Lead Qualifier'];
const interest = insightMap['Product Interest Tracking'];
const objections = insightMap['Sales Objections Analysis'];
// Create or update lead in CRM
const lead = await crm.leads.upsert({
source: 'ai_assistant',
conversation_id,
score: qualification.lead_score,
budget_range: qualification.budget_range,
timeframe: qualification.decision_timeframe,
authority: qualification.authority_level,
pain_points: qualification.pain_points,
primary_interest: interest.primary_interest,
products: interest.products_mentioned,
use_case: interest.use_case,
objections: objections
});
// Route high-quality leads immediately
if (qualification.lead_score >= 8) {
const rep = await assignSalesRep(interest.primary_interest);
await crm.tasks.create({
assigned_to: rep,
lead_id: lead.id,
type: 'immediate_followup',
priority: 'high',
notes: `High-quality lead (score: ${qualification.lead_score}). ${qualification.recommended_action}`
});
// Send Slack notification
await slack.notify({
channel: '#sales',
message: `🔥 Hot lead! Score: ${qualification.lead_score}/10. Assigned to ${rep.name}.`
});
}
// Add to appropriate nurture campaign
if (qualification.recommended_action === 'nurture') {
await marketing.addToCampaign(lead.email, {
campaign: `nurture_${qualification.decision_timeframe}`,
interests: interest.products_mentioned
});
}
});
E-commerce
Use case: Customer service & order management
Business Need: Handle order inquiries, identify dissatisfaction early, and capture product feedback.
Insight configurations
1. Order inquiry classification (structured)
Name: Order Support Classifier
Instructions: Classify the type of order-related inquiry or issue.
Parameters:
1. inquiry_type
- Type: string
- Required: Yes
- Description: Type of inquiry: "order_status", "return_request", "product_question", "shipping_issue", "payment_problem", "cancel_order", "modify_order"
2. order_number
- Type: string
- Required: No
- Description: Order number if mentioned
3. urgency
- Type: string
- Required: Yes
- Description: Urgency level: "urgent", "moderate", "low"
4. resolution_provided
- Type: boolean
- Required: Yes
- Description: Was a resolution or answer provided?
5. compensation_offered
- Type: boolean
- Required: No
- Description: Was any compensation (refund, discount, credit) offered?
6. next_action
- Type: string
- Required: Yes
- Description: Required next step: "none", "process_return", "issue_refund", "escalate", "ship_replacement", "cancel_order"
2. Customer sentiment (structured)
Name: E-commerce Customer Sentiment
Instructions: Gauge customer satisfaction with their shopping experience.
Parameters:
1. satisfaction_level
- Type: string
- Required: Yes
- Description: Overall satisfaction: "very_satisfied", "satisfied", "neutral", "dissatisfied", "very_dissatisfied"
2. likely_to_repurchase
- Type: boolean
- Required: Yes
- Description: Based on the conversation, is customer likely to purchase again?
3. likely_to_recommend
- Type: number
- Required: Yes
- Description: NPS score from 0-10: How likely to recommend to a friend?
4. complaint_severity
- Type: string
- Required: No
- Description: If complaining, severity: "minor", "moderate", "major"
5. praise_areas
- Type: array
- Required: No
- Description: What aspects did they appreciate or praise?
3. Product feedback (unstructured)
Name: Product Feedback Collection
Instructions: Capture any product feedback, suggestions, or quality issues mentioned. Include:
- Specific products mentioned.
- Positive feedback or features they loved.
- Negative feedback or problems encountered.
- Feature requests or suggestions.
- Quality concerns.
Focus on actionable insights for product and marketing teams.
Insight group configuration
Name: E-commerce Customer Insights
Webhook URL: https://api.shop.com/webhooks/customer-insights
Insights:
- Order Support Classifier
- E-commerce Customer Sentiment
- Product Feedback Collection
Webhook integration example
app.post('/webhooks/customer-insights', async (req, res) => {
res.status(200).send('OK');
const { conversation_id, insights } = req.body;
const insightMap = Object.fromEntries(
insights.map(i => [i.insight_name, i.result])
);
const orderClassification = insightMap['Order Support Classifier'];
const sentiment = insightMap['E-commerce Customer Sentiment'];
const feedback = insightMap['Product Feedback Collection'];
// Process order actions
switch (orderClassification.next_action) {
case 'process_return':
await orders.initiateReturn(orderClassification.order_number);
break;
case 'issue_refund':
await orders.processRefund(orderClassification.order_number);
break;
case 'cancel_order':
await orders.cancel(orderClassification.order_number);
break;
case 'ship_replacement':
await orders.shipReplacement(orderClassification.order_number);
break;
}
// Alert on poor experiences
if (sentiment.satisfaction_level === 'very_dissatisfied') {
await alerts.send({
type: 'customer_dissatisfaction',
conversation_id,
order_number: orderClassification.order_number,
severity: orderClassification.complaint_severity,
nps_score: sentiment.likely_to_recommend
});
}
// Collect product feedback
if (feedback) {
await productFeedback.create({
conversation_id,
feedback: feedback,
source: 'ai_assistant',
sentiment: sentiment.satisfaction_level
});
}
// Segment for marketing
if (!sentiment.likely_to_repurchase) {
await marketing.addToWinBackCampaign({
conversation_id,
reason: orderClassification.inquiry_type
});
}
});
Financial services
Use case: Fraud detection & compliance
Business Need: Identify potential fraud, ensure regulatory compliance, and categorize financial inquiries.
Insight configurations
1. Fraud risk assessment (structured)
Name: Fraud Risk Detector
Instructions: Assess potential fraud risk indicators in this conversation.
Parameters:
1. risk_level
- Type: string
- Required: Yes
- Description: Overall risk: "no_risk", "low", "medium", "high", "critical"
2. risk_indicators
- Type: array
- Required: No
- Description: Specific fraud indicators detected (e.g., "urgency_pressure", "unusual_request", "inconsistent_info", "social_engineering_attempt")
3. verification_requested
- Type: boolean
- Required: Yes
- Description: Did the caller request account changes or sensitive actions?
4. authentication_status
- Type: string
- Required: Yes
- Description: Authentication status: "verified", "partially_verified", "not_verified", "failed_verification"
5. recommended_action
- Type: string
- Required: Yes
- Description: Recommended action: "approve", "additional_verification", "escalate_to_fraud_team", "block_immediately"
6. confidence_score
- Type: number
- Required: Yes
- Description: Confidence in risk assessment from 0-100%
2. Compliance check (structured)
Name: Financial Compliance Verification
Instructions: Verify regulatory compliance requirements for financial services.
Parameters:
1. required_disclosures_made
- Type: boolean
- Required: Yes
- Description: Were all required financial disclosures made?
2. customer_consent_obtained
- Type: boolean
- Required: No
- Description: Was consent obtained for account changes or data sharing?
3. pii_handled_properly
- Type: boolean
- Required: Yes
- Description: Was Personally Identifiable Information handled securely?
4. recording_disclosure
- Type: boolean
- Required: Yes
- Description: Was call recording disclosure made?
5. compliance_violations
- Type: array
- Required: No
- Description: Any potential compliance violations or concerns
6. compliant
- Type: boolean
- Required: Yes
- Description: Overall compliance status
3. Inquiry categorization (structured)
Name: Financial Inquiry Classifier
Instructions: Categorize the type of financial inquiry or request.
Parameters:
1. inquiry_category
- Type: string
- Required: Yes
- Description: Primary category: "account_balance", "transaction_dispute", "card_activation", "fraud_report", "account_opening", "loan_inquiry", "investment_advice", "general_question"
2. account_type
- Type: string
- Required: No
- Description: Account type involved: "checking", "savings", "credit_card", "loan", "investment", "multiple"
3. transaction_amount
- Type: number
- Required: No
- Description: Dollar amount if transaction-related inquiry
4. resolution_status
- Type: string
- Required: Yes
- Description: Resolution status: "resolved", "pending", "escalated", "requires_callback"
5. callback_required
- Type: boolean
- Required: Yes
- Description: Does customer need a callback from specialist?
Insight group configuration
Name: Financial Services Security & Compliance
Webhook URL: https://api.bank.com/webhooks/insights
Insights:
- Fraud Risk Detector
- Financial Compliance Verification
- Financial Inquiry Classifier
Webhook integration example
@app.route('/webhooks/insights', methods=['POST'])
def handle_financial_insights():
data = request.json
conversation_id = data['conversation_id']
insights = {i['insight_name']: i['result'] for i in data['insights']}
fraud_risk = insights.get('Fraud Risk Detector', {})
compliance = insights.get('Financial Compliance Verification', {})
inquiry = insights.get('Financial Inquiry Classifier', {})
# Handle high fraud risk immediately
if fraud_risk.get('risk_level') in ['high', 'critical']:
fraud_team.alert({
'conversation_id': conversation_id,
'risk_level': fraud_risk['risk_level'],
'indicators': fraud_risk['risk_indicators'],
'recommended_action': fraud_risk['recommended_action'],
'confidence': fraud_risk['confidence_score']
})
# Block if critical
if fraud_risk['risk_level'] == 'critical':
security.block_account_temporarily(conversation_id)
# Handle compliance violations
if not compliance.get('compliant'):
compliance_team.alert({
'conversation_id': conversation_id,
'violations': compliance['compliance_violations'],
'severity': 'high'
})
# Log for audit
audit_log.create({
'event': 'compliance_violation',
'conversation_id': conversation_id,
'details': compliance
})
# Route inquiry to appropriate team
if inquiry.get('callback_required'):
routing.create_callback({
'conversation_id': conversation_id,
'category': inquiry['inquiry_category'],
'account_type': inquiry.get('account_type'),
'priority': 'high' if fraud_risk['risk_level'] != 'no_risk' else 'normal'
})
return jsonify({'status': 'processed'}), 200
Best practices across use cases
1. Start with core insights
Begin with 2-3 essential insights:
- ✅ Sentiment/satisfaction.
- ✅ Primary classification.
- ✅ Action required.
Add more specialized insights once core metrics are validated.
2. Balance structured and unstructured
Use structured insights for:
- Metrics and scores.
- Categories and classifications.
- Boolean flags.
Use unstructured insights for:
- Summaries and context.
- Open-ended feedback.
- Nuanced analysis.
3. Configure appropriate webhooks
- Real-time action required → Webhook to operational system.
- Analytics only → Webhook to analytics platform.
- Manual review → No webhook, use Portal.
4. Test with real conversations
Before production:
- Test insights on 10-20 real conversations.
- Review accuracy of classifications.
- Validate webhook integration.
- Adjust instructions based on results.
5. Monitor and iterate
Track these metrics:
- Insight accuracy.
- Webhook delivery success rate.
- False positive/negative rates for classifications.
- Time to process insights.
Refine instructions monthly based on performance.
6. Secure sensitive data
For regulated industries:
- Use HTTPS for all webhooks.
- Implement proper authentication.
- Encrypt data at rest.
- Maintain audit logs.
- Follow industry-specific compliance requirements.
Related resources
- Voice Assistant Quickstart - Set up your AI assistant.
- Memory API - Use insights in conversation memory.
- API Reference - Programmatic insights access.