Chanl

Default Personas

Retrieve system-provided default personas for common customer archetypes.

Default personas are pre-built, tested persona templates that can be used immediately or as starting points for custom personas.

Request
curl -X GET "https://api.chanl.ai/api/v1/workspaces/ws_123/personas/defaults" \
  -H "Authorization: Bearer <access_token>"
const response = await fetch(`https://api.chanl.ai/api/v1/workspaces/${workspaceId}/personas/defaults`, {
  headers: {
    'Authorization': 'Bearer ' + accessToken
  }
});

const { data } = await response.json();
console.log('Default personas:', data.personas);
import requests

response = requests.get(
    f'https://api.chanl.ai/api/v1/workspaces/{workspace_id}/personas/defaults',
    headers={'Authorization': f'Bearer {access_token}'}
)

default_personas = response.json()['data']['personas']
Response
{
  "success": true,
  "data": {
    "personas": [
      {
        "id": "default_polite",
        "name": "Polite Customer",
        "language": "en",
        "description": "A courteous customer who is patient and follows instructions well",
        "emotion": "neutral",
        "difficulty": "easy",
        "category": "customer_service",
        "tags": ["polite", "patient", "easy"]
      },
      {
        "id": "default_frustrated",
        "name": "Frustrated Customer",
        "language": "en",
        "description": "A customer who is upset about an ongoing issue and wants quick resolution",
        "emotion": "frustrated",
        "difficulty": "medium",
        "category": "customer_service",
        "tags": ["frustrated", "impatient", "medium"]
      },
      {
        "id": "default_confused",
        "name": "Confused Customer",
        "language": "en",
        "description": "A customer who needs extra help understanding technology or processes",
        "emotion": "confused",
        "difficulty": "medium",
        "category": "customer_service",
        "tags": ["confused", "needs_help", "medium"]
      },
      {
        "id": "default_price_sensitive",
        "name": "Price-Sensitive Buyer",
        "language": "en",
        "description": "A prospect focused on getting the best value and price",
        "emotion": "cautious",
        "difficulty": "medium",
        "category": "sales",
        "tags": ["sales", "price_focused", "cautious"]
      },
      {
        "id": "default_tech_savvy",
        "name": "Tech-Savvy User",
        "language": "en",
        "description": "An advanced user who provides detailed technical information",
        "emotion": "analytical",
        "difficulty": "easy",
        "category": "technical_support",
        "tags": ["technical", "advanced", "analytical"]
      }
    ],
    "categories": [
      {
        "name": "customer_service",
        "display_name": "Customer Service",
        "count": 3
      },
      {
        "name": "sales",
        "display_name": "Sales",
        "count": 1
      },
      {
        "name": "technical_support",
        "display_name": "Technical Support",
        "count": 1
      }
    ]
  }
}

Create Persona from Default

To create a custom persona based on a default template:

curl -X POST "https://api.chanl.ai/api/v1/workspaces/ws_123/personas" \
  -H "Authorization: Bearer <access_token>" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "My Polite Customer",
    "template_id": "default_polite",
    "customizations": {
      "backgroundNoise": "office",
      "tags": ["polite", "patient", "office_environment"]
    }
  }'
const response = await fetch(`https://api.chanl.ai/api/v1/workspaces/${workspaceId}/personas`, {
  method: 'POST',
  headers: {
    'Authorization': `Bearer ${accessToken}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    name: 'My Polite Customer',
    template_id: 'default_polite',
    customizations: {
      backgroundNoise: 'office',
      tags: ['polite', 'patient', 'office_environment']
    }
  })
});

const data = await response.json();
import requests

response = requests.post(
    f'https://api.chanl.ai/api/v1/workspaces/{workspace_id}/personas',
    headers={'Authorization': f'Bearer {access_token}'},
    json={
        'name': 'My Polite Customer',
        'template_id': 'default_polite',
        'customizations': {
            'backgroundNoise': 'office',
            'tags': ['polite', 'patient', 'office_environment']
        }
    }
)

data = response.json()

Query Parameters

categorystring

Filter by persona category (customer_service, sales, technical_support)

languagestring

Filter by language code (currently only "en" available)

difficultystring

Filter by difficulty level (easy, medium, hard)

Default Persona Categories

Customer Service

  • Polite Customer - Courteous and patient
  • Frustrated Customer - Upset but reasonable
  • Confused Customer - Needs extra guidance
  • Impatient Customer - Wants quick resolution
  • Elderly Customer - Needs simple explanations

Sales

  • Price-Sensitive Buyer - Focused on value and cost
  • Feature-Focused Buyer - Interested in capabilities
  • Skeptical Prospect - Needs convincing
  • Ready-to-Buy - Quick decision maker

Technical Support

  • Tech-Savvy User - Provides detailed information
  • Beginner User - Needs step-by-step help
  • Frustrated IT Manager - Time-sensitive technical issues

On this page