Everything you need to integrate CSAT tracking, monitor escalations, and prove ROI from your Customer Support AI chatbot
Sign up at Customer Support AI Monitor to get started with a 7-day free trial. No credit card required.
If you're using the direct API integration (not Zendesk), you'll need your API key. After signing up, navigate to your dashboard → Profile/Settings to copy your API key.
API Key: amo_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx💡 Note: If you're using Zendesk integration, you don't need an API key for tracking - it's all automatic!
You have two options to track conversations:
Connect your Zendesk account through our onboarding flow. No code required!
💡 Tip: You can also set up webhooks for real-time updates (see Integrations section below)
Send conversation data directly via our REST API or SDKs.
See "API Reference" section below for complete documentation.
Your Customer Support AI conversations are now being monitored. Check your dashboard to see real-time CSAT scores, escalation patterns, and ROI metrics.
Connect your Zendesk account to automatically track AI chatbot conversations, CSAT scores, and ticket escalations.
✅ That's it! Your Zendesk conversations will now be tracked automatically. For real-time updates, you can optionally set up webhooks (see Method 2 below).
Webhooks provide instant notifications when tickets are created or updated. This is optional if you've already connected via Method 1.
https://api.csmmonitor.ai/api/v1/webhooks/zendesk?org_id=YOUR_ORG_IDapplication/json💡 Note: Authentication is handled via the org_id in the URL. No API key header needed for webhooks.
{
"webhook_url": "https://api.csmmonitor.ai/api/v1/webhooks/zendesk?org_id=YOUR_ORG_ID",
"method": "POST",
"headers": {
"Content-Type": "application/json"
},
"triggers": [
"ticket.created",
"ticket.updated",
"satisfaction_rating.created"
]
}Don't use Zendesk? Use our REST API to send conversation data directly.
POST https://api.csmmonitor.ai/api/v1/conversations
Headers:
X-API-Key: your-api-key
Content-Type: application/json
Body:
{
"conversation_id": "conv_123",
"platform": "custom",
"customer_id": "cust_456",
"ai_agent_id": "agent_789",
"messages": [
{
"sender_type": "customer",
"content": "Hello, I need help",
"timestamp": "2026-01-15T10:30:00Z"
},
{
"sender_type": "ai",
"sender_id": "agent_789",
"content": "Hi there! How can I help?",
"timestamp": "2026-01-15T10:30:05Z"
}
],
"csat_score": 5,
"escalated": false,
"topic": "billing",
"sentiment": "positive"
}If using our API directly, configure these environment variables:
# Required
CSM_MONITOR_API_KEY=your-api-key-here
# Optional
CSM_MONITOR_ENDPOINT=https://api.csmmonitor.ai
CSM_MONITOR_ENVIRONMENT=production
CSM_MONITOR_LOG_LEVEL=INFOSend conversation data to track CSAT, escalations, and ROI.
POST /api/v1/conversations
Headers:
X-API-Key: your-api-key
Content-Type: application/json
Body:
{
"conversation_id": "string (required)",
"platform": "zendesk|intercom|freshdesk|custom|sdk (required)",
"customer_id": "string (optional)",
"ai_agent_id": "string (optional)",
"messages": [
{
"sender_type": "customer|ai|human_agent|bot|system (required)",
"content": "string (required)",
"timestamp": "ISO 8601 (optional)",
"sender_id": "string (optional)",
"message_id": "string (optional)",
"metadata": "object (optional)"
}
],
"csat_score": 1-5 (optional),
"sentiment": "positive|neutral|negative|frustrated (optional)",
"escalated": boolean (optional, default: false),
"escalation_reason": "string (optional)",
"resolution_time_seconds": number (optional),
"first_contact_resolution": boolean (optional),
"ai_handled": boolean (optional, default: false),
"topic": "string (optional)",
"subtopic": "string (optional)",
"priority": "low|medium|high|urgent (optional)",
"cost_usd": number (optional),
"metadata": "object (optional)",
"tags": ["string"] (optional)
}Retrieve comprehensive dashboard metrics including CSAT, escalations, and ROI.
GET /api/v1/cs-metrics/dashboard
Headers:
X-API-Key: your-api-key
OR
Authorization: Bearer {jwt_token}
Query params:
- time_range: number (hours, default: 24)
Response:
{
"success": true,
"metrics": {
"total_conversations": 1000,
"avg_csat_score": 4.5,
"escalation_rate": 15.2,
"cost_savings": 2500.00,
...
}
}Get CSAT trends over time comparing AI vs Human performance.
GET /api/v1/cs-metrics/csat-trends
Headers:
X-API-Key: your-api-key
OR
Authorization: Bearer {jwt_token}
Query params:
- time_range: number (hours, default: 168 = 7 days)
Response:
{
"success": true,
"csat_trends": [
{
"date": "2026-01-15",
"ai_avg_csat": 4.3,
"human_avg_csat": 4.6,
...
}
]
}Identify which topics trigger escalations to human agents.
GET /api/v1/cs-metrics/escalation-patterns
Headers:
X-API-Key: your-api-key
OR
Authorization: Bearer {jwt_token}
Query params:
- time_range: number (hours, default: 168 = 7 days)
Response:
{
"success": true,
"escalation_patterns": [
{
"topic": "billing",
"total_conversations": 150,
"escalation_rate": 25.5,
...
}
]
}Calculate ROI and cost savings from using AI vs human agents.
GET /api/v1/cs-metrics/cost-analysis
Headers:
X-API-Key: your-api-key
OR
Authorization: Bearer {jwt_token}
Query params:
- time_range: number (hours, default: 720 = 30 days)
Response:
{
"success": true,
"cost_analysis": {
"total_ai_cost": 500.00,
"total_estimated_human_cost": 3000.00,
"cost_savings": 2500.00,
"roi_percentage": 500.0,
...
}
}Retrieve conversation data with filtering and pagination.
GET /api/v1/conversations
Headers:
X-API-Key: your-api-key
OR
Authorization: Bearer {jwt_token}
Query params:
- platform: zendesk|intercom|freshdesk|custom|sdk (optional)
- topic: string (optional)
- sentiment: positive|neutral|negative|frustrated (optional)
- escalated: boolean (optional)
- ai_handled: boolean (optional)
- csat_min: 1-5 (optional)
- csat_max: 1-5 (optional)
- start_date: ISO 8601 date (optional)
- end_date: ISO 8601 date (optional)
- search: string (optional)
- limit: number (default: 50, max: 500)
- offset: number (default: 0)
Response:
{
"success": true,
"conversations": [...],
"count": 50,
"filters": {...}
}Retrieve identified knowledge gaps from conversations.
GET /api/v1/conversations/knowledge-gaps
Headers:
X-API-Key: your-api-key
OR
Authorization: Bearer {jwt_token}
Query params:
- resolved: boolean (optional, filter by resolution status)
- topic: string (optional, filter by topic)
- min_occurrences: number (default: 2, minimum times question appeared)
- limit: number (default: 20, max: 100)
Response:
{
"success": true,
"knowledge_gaps": [
{
"id": 1,
"question": "What is your refund policy?",
"topic": "billing",
"occurrence_count": 25,
"resolved": false,
"first_seen_at": "2026-01-01T00:00:00Z",
"last_seen_at": "2026-01-15T00:00:00Z"
}
]
}Ensure all AI chatbot interactions are tracked to get accurate CSAT and ROI metrics. Set up webhooks for all relevant events.
Regularly review CSAT scores in your dashboard. Set up alerts for when CSAT drops below your threshold (typically 4.0/5.0).
Check the Knowledge Gaps dashboard weekly to identify topics your AI chatbot struggles with. Update your knowledge base accordingly.
Export ROI reports monthly to demonstrate the value of your AI chatbot investment to leadership. Show cost savings and efficiency gains.
All data is encrypted in transit (TLS 1.3) and at rest (AES-256). We never store your Customer Support platform credentials.
We follow security best practices aligned with SOC 2 and GDPR requirements. Enterprise plans can include custom security reviews and BAA agreements upon request.
Data retention varies by plan: Free (7 days), Starter (30 days), Professional (90 days), Enterprise (1 year). Delete data at any time through the dashboard.
Our team is here to help you get the most out of Customer Support AI Monitor.