# Skills

> Create skills such as languages or product lines, give agents a skill level from 1 to 10, and route a queue to agents with a minimum level.

Source: https://edesy.in/docs/contact-center/routing/skills

Skills tag agents with what they can handle, such as a language (`Hindi`, `Tamil`) or a topic (`Billing`, `Sales`). Each agent can hold several skills with a level from 1 to 10. A queue that uses the `skill_based` strategy rings only agents who have its required skill at or above its minimum level, when one is free.

## Facts

| Item | Detail |
|---|---|
| Skill name | 1-100 characters, unique per workspace |
| Description | Up to 500 characters |
| Agent skill level | 1-10 (proficiency) |
| Queue match | `required_skill_id` + `min_skill_level` (1-10) |
| Plan | Skill-based routing is part of Professional and Enterprise |
| API | `/v1/ccaas/skills` |

## How skill routing works

1. **Create the skill** in *Skills* or with `POST /v1/ccaas/skills`.
2. **Give agents the skill** when you create or edit them (`skill_ids`).
3. **Set the queue** to `routing_strategy: "skill_based"` with `required_skill_id` and `min_skill_level`.
4. **When a call waits,** the router takes the queue's available members who hold the skill at the minimum level or higher, and rings the one who has been idle longest.
5. **If no skilled agent is free,** the router falls back to the longest-idle available member, so the caller is not left waiting while others sit idle.

## Create a skill

```bash
curl -X POST https://voice-api.edesy.in/v1/ccaas/skills \
  -H "Authorization: Bearer sk_your_api_key" \
  -H "Content-Type: application/json" \
  -d '{"name": "Hindi", "description": "Fluent Hindi speakers"}'
```

## Endpoints

| Method | Path | Description |
|---|---|---|
| `POST` | `/ccaas/skills` | Create a skill |
| `GET` | `/ccaas/skills` | List skills |
| `GET` | `/ccaas/skills/{id}` | Get a skill |
| `PATCH` | `/ccaas/skills/{id}` | Rename, edit or deactivate (`is_active`) |
| `DELETE` | `/ccaas/skills/{id}` | Delete. Fails while agents or queues use it |

## FAQ

### Can a queue require more than one skill?
No. A queue has one required skill and a minimum level.

### Does a higher skill level get the call first?
Among agents who meet the minimum, the router picks the one idle longest. Level is a filter, not a ranking.

### What if no agent has the skill?
The call goes to the longest-idle available member of the queue instead.

### Can I delete a skill that is in use?
No. Remove it from agents and queues first, or deactivate it.

### Are skills used outside skill-based queues?
No. Other strategies ignore skills.

### How many skills can one agent have?
There is no fixed limit.
