Documentation

Get Started with Customer Support AI Monitor

Everything you need to integrate CSAT tracking, monitor escalations, and prove ROI from your Customer Support AI chatbot

Quick Start Guide

1. Create Your Account

Sign up at Customer Support AI Monitor to get started with a 7-day free trial. No credit card required.

2. Get Your API Key (For API Integration Only)

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!

3. Connect Your Integration

You have two options to track conversations:

Option A: Zendesk Integration (Recommended)

Connect your Zendesk account through our onboarding flow. No code required!

  1. Go to your dashboard → Integrations
  2. Click "Connect Zendesk"
  3. Enter your Zendesk subdomain, email, and API token
  4. Click "Test Connection"
  5. Click "Sync Now" to import historical tickets

💡 Tip: You can also set up webhooks for real-time updates (see Integrations section below)

Option B: Direct API Integration

Send conversation data directly via our REST API or SDKs.

See "API Reference" section below for complete documentation.

You're all set!

Your Customer Support AI conversations are now being monitored. Check your dashboard to see real-time CSAT scores, escalation patterns, and ROI metrics.

Platform Integrations

Zendesk Integration

Connect your Zendesk account to automatically track AI chatbot conversations, CSAT scores, and ticket escalations.

Method 1: Connect via Dashboard (Easiest)

  1. Go to your dashboard → Integrations
  2. Click "Connect Zendesk"
  3. Enter your Zendesk credentials:
    • Subdomain (e.g., "yourcompany" from yourcompany.zendesk.com)
    • Admin email
    • API token (from Zendesk Admin → Apps → APIs → Zendesk API)
  4. Click "Test Connection" to verify credentials
  5. Click "Sync Now" to import historical tickets (last 30 days)

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).

Method 2: Set Up Webhooks (Optional, for Real-Time Updates)

Webhooks provide instant notifications when tickets are created or updated. This is optional if you've already connected via Method 1.

  1. Go to Zendesk Admin → Apps and integrations → Webhooks
  2. Click "Create webhook"
  3. Set the endpoint URL: https://api.csmmonitor.ai/api/v1/webhooks/zendesk?org_id=YOUR_ORG_ID
  4. ⚠️ Replace YOUR_ORG_ID with your organization ID (found in Profile → Organization tab)
  5. Select trigger events: "Ticket created", "Ticket updated", "Satisfaction rating created"
  6. Set Content-Type header to: application/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"
  ]
}

Custom Integration via API

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"
}

Configuration

Environment Variables

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=INFO

API Reference

Track Conversation

Send 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)
}

Get Dashboard Metrics

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

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,
      ...
    }
  ]
}

Get Escalation Patterns

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,
      ...
    }
  ]
}

Get Cost Analysis

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,
    ...
  }
}

Get Conversations

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": {...}
}

Get Knowledge Gaps

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"
    }
  ]
}

Best Practices

Track All AI Conversations

Ensure all AI chatbot interactions are tracked to get accurate CSAT and ROI metrics. Set up webhooks for all relevant events.

Monitor CSAT Trends

Regularly review CSAT scores in your dashboard. Set up alerts for when CSAT drops below your threshold (typically 4.0/5.0).

Review Knowledge Gaps Weekly

Check the Knowledge Gaps dashboard weekly to identify topics your AI chatbot struggles with. Update your knowledge base accordingly.

Use ROI Reports for Leadership

Export ROI reports monthly to demonstrate the value of your AI chatbot investment to leadership. Show cost savings and efficiency gains.

Security & Privacy

Data Encryption

All data is encrypted in transit (TLS 1.3) and at rest (AES-256). We never store your Customer Support platform credentials.

Compliance

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

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.

Need Help?

Our team is here to help you get the most out of Customer Support AI Monitor.