> For the complete documentation index, see [llms.txt](https://docs.pascom.net/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.pascom.net/setup/acd/skill-based-routing.md).

# Skill Based Routing

Skill Based Routing - dient der Verteilung von Anrufern anhand Benutzern zugewiesenen Fähigkeiten

## Trainingsvideo

{% embed url="<https://www.youtube.com/watch?v=sImKR9HUBnE>" %}

## Konzept

*Skill Based Routing* ermöglicht die Verteilung von Anrufern anhand von Fähigkeiten der Benutzer.

Funktionen:

* Definition von Fähigkeiten für Agenten eines Team;
* Warteschlagen mit *Skill Based Routing*-Unterstützung;
* Inline Skripte (Einzeilige Skripte, die in einer Aktion vorher/nachher durch Hinzufügen integriert werden können);
* Generische Labels (Labels, die für einen Anrufer gesetzt werden, z. B. als Information für den Agenten, Priorisierung eines Anrufers...)
* Anrufverteiler (prüft Bedingungen und löst Aktionen aus)
* Funktioniert bei Team Rufstrategien: Alle, Nacheinander, Zufällig.

[PASCOM Contact Center Lösungen](https://www.pascom.net/call-contact-center/)

## Beispiel 1

### Übersicht

Der Anrufer muss über ein IVR-Menü die Sprache auswählen, anschließend gelangt er zum Team Support. Es klingelt nur bei den Agenten, die den Support in der ausgewählten Sprache anbieten.

<figure><img src="https://1983379169-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FLe82Z891Z9TUVDeTD5WX%2Fuploads%2Fgit-blob-aafaa25916634c20a6e43f04aa751b50c917703c%2Fsample-1.de.png?alt=media" alt="Skill Based Routing" width="80%"><figcaption></figcaption></figure>

### Konfiguration

#### 1. Fähigkeiten anlegen

Als erstes müssen Fähigkeiten für die Sprachen definieren werden: **Anruferverteilung** > **Anruf Labels** > **Hinzufügen**. Als Label wählen Sie *Fähigkeit*:

| Parameter                | Beschreibung                                                                                                                      |
| ------------------------ | --------------------------------------------------------------------------------------------------------------------------------- |
| Label Name               | Vergeben Sie einen Namen für das Label                                                                                            |
| In der App anzeigen      | Ja/Nein - legt fest, ob die App-Benutzer das Label sehen oder nicht.                                                              |
| Aktionsbedingung anlegen | Ja/Nein - legt fest, ob eine Aktionsbedingung angelegt wird. Falls ja, kann diese Aktionsbedingung bei Aktionen verwendet werden. |

#### 2. Benutzer zuweisen

Im Tab **Benutzerfähigkeiten** kann das neu angelegte Label Benutzern zugewiesen werden.

Die Fähigkeiten können auch über die Benutzerverwaltung zugewiesen werden: **Benutzer** > **Benutzerliste** > **Benutzer auswählen** > **Bearbeiten** im Tab **Fähigkeiten**.

Damit in einem Team Fähigkeiten berücksichtigt werden, muss beim Anlegen des Teams das schon vorhandene Skript "Skill based routing" ausgewählt werden: **Benutzer** > **Teams** > **Warteschlange auswählen** > **Bearbeiten** -> im Tab **Basisdaten**, das vierte Auswahlfeld "Routing Skript".

{% hint style="info" %}
Die Verwendung von Fähigkeiten hat den Vorteil, dass z. B. nur eine Warteschlange angelegt werden muss, obwohl man Anrufer hat, die verschiedene Sprachen sprechen. Es werden nur die Agenten angeklingelt, die die benötigte Fähigkeit haben.
{% endhint %}

#### 3. IVR für Sprachauswahl

Für die Sprachauswahl erstellen wir ein [IVR-Menü](/setup/acd/ivr.md): **Anrufverteilung** > **IVR** > **Hinzufügen**. Ist das IVR angelegt, müssen noch die Einträge angelegt werden und für diese: das gerade angelegte IVR markieren und auf **Einträge** klicken.

Legen Sie am besten drei weitere Einträge an: Nummer **1** für *deutsch*, Nummer **2** für *englisch*, Nummer **3** für *französisch*.\
**i** für *invalid* (Ungültige Eingabe) und **t** für *timeout* (Zeit ist abgelaufen) sind bereits angelegt und müssen nur noch bearbeitet werden.

Nun müssen die Einträge bearbeitet und mit Aktionen befüllt werden. Als Beispiel sehen wir hier den Eintrag *deutsch*:

<figure><img src="https://1983379169-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FLe82Z891Z9TUVDeTD5WX%2Fuploads%2Fgit-blob-3f3b9c4e09c454f5fe7d8a45c96a86bb7316dd09%2Fivr-entry.de.png?alt=media" alt="IVR-Einträge Aktionen konfigurieren" width="80%"><figcaption></figcaption></figure>

Zuerst wird das Label gesetzt: **Hinzufügen** > **Label setzen**: Als Name wählen Sie die Fähigkeit *deutsch*. Der Ausdruck gibt das kleine Level an, dass der Agent, der den Anruf bekommt, haben soll.

Sie können eine Channel-Sprache angeben, damit der Anrufer sonstige Ansagen in seiner ausgewählten Sprache hört.

{% hint style="info" %}
Wird für einen Anrufer ein Label gesetzt, gilt das Label bis zur Beendigung des Anrufs.
{% endhint %}

{% hint style="info" %}
Labels werden (falls so eingestellt) einem Warteschlangen-Agenten als Information in der App angezeigt. Es können beliebig viele Labels pro Anrufer gesetzt werden.
{% endhint %}

## Beispiel 2

### Übersicht

Nun wird das vorherige Beispiel erweitert. Nach der Sprachauswahl wird die Kundennummer abgefragt um zwischen VIP- und Nicht-VIP-Kunden zu unterscheiden. VIP-Kunden werden gleich zum Team Support weiterlgeleitet, bei Nicht-VIP-Kunden werden Geschäftszeiten geprüft. ![Skill Based Routing](https://1983379169-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FLe82Z891Z9TUVDeTD5WX%2Fuploads%2Fgit-blob-d0684696b7d2f1727d82e5c9f1e3c102d419017e%2Fsample-2.de.png?alt=media)

### Konfiguration

#### 1. Generisches Label für Kundennummer

Nach der Sprachauswahl muss der Anrufer seine Kundennummer eingeben. Das wird mit einem *Generischen Label* realsiert: unter **Anruferverteilung** > **Anruf Labels** > **Hinzufügen** > **Generisches Label**.

<figure><img src="https://1983379169-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FLe82Z891Z9TUVDeTD5WX%2Fuploads%2Fgit-blob-3eb84a64b868133e92f5f5bc7eedd2f17b5e03df%2Flabel-generic.de.png?alt=media" alt="Generiches Label" width="80%"><figcaption></figcaption></figure>

Das *Generische Label* hat eine **Kanalvariable** (in diesem Fall MDC\_LABEL-9), die wir uns für die weitere Konfiguration merken müssen. Den Variablennamen erhalten wir durch markieren des Labels in der Übersicht und Klick auf Bearbeiten:

<figure><img src="https://1983379169-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FLe82Z891Z9TUVDeTD5WX%2Fuploads%2Fgit-blob-6ba9b512598f7c6cbca6dcd9320b752d4e39c61f%2Fgeneric-label.de.png?alt=media" alt="Variablennamen" width="80%"><figcaption></figcaption></figure>

#### 2. Aktionsbedingung VIP-Kunde

Zur Unterscheidung von VIP- und Nicht-VIP-Kunden verwenden wir ein Generisches Label mit Aktionsbedingung: **Anruferverteilung** > **Anruf Labels** > **Hinzufügen** > **Generisches Label** > Aktionsbedingung anlegen auf JA setzten.

<figure><img src="https://1983379169-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FLe82Z891Z9TUVDeTD5WX%2Fuploads%2Fgit-blob-80728bc75e36ee9a1b93c946db76cd1e59f97223%2Flabel-condition.de.png?alt=media" alt="Aktionsbedingung" width="80%"><figcaption></figcaption></figure>

#### 3. Kundennummer abfragen

Bei den IVR-Einträgen wird nun nicht mehr gleich auf die Warteschlage Support abgeworfen. Es muss vorher noch die Kundennummer abgefragt werden. Der Anrufverteiler übernimmt diese Funktion.

<figure><img src="https://1983379169-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FLe82Z891Z9TUVDeTD5WX%2Fuploads%2Fgit-blob-3f3b9c4e09c454f5fe7d8a45c96a86bb7316dd09%2Fivr-entry.de.png?alt=media" alt="IVR mit Skill based Routing" width="80%"><figcaption></figcaption></figure>

#### 4. Bedingung prüfen mit dem Anrufverteiler

Der Anrufverteiler wird allgemein verwendet um Bedingungen zu prüfen und Aktionen auszulösen. Als erstes wird mit einem *Inline Skript* die Kundennummer abgefragt.

{% hint style="info" %}
Ein Inline Skript erlaubt es einzeilige Asterisk-Skripte gleich in Aktionen einzubinden.
{% endhint %}

Mit Hilfe z. B. eines Skripts kann die eingegeben Kundennummer überprüft werden, es setzt somit die Labels *VIP-Kunde* und *Nicht-VIP-Kunde*. Ein Anrufer mit dem Label und der daraus entstehende Aktionsbedingung VIP-Kunde würde dann gleich zum Support weitergeleitet werden. Für Anrufer mit dem Label Nicht-VIP-Kunde müssen noch Geschäftszeiten geprüft werden.

<figure><img src="https://1983379169-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FLe82Z891Z9TUVDeTD5WX%2Fuploads%2Fgit-blob-7e647edf1d45cbb11bbd47131ac6fec813375b61%2Fcall-router-2.de.png?alt=media" alt="Aktionsbedingung" width="80%"><figcaption></figcaption></figure>

Die Geschäftszeiten-Prüfung wird ebenfalls mit einem Anrufverteiler realisiert:

<figure><img src="https://1983379169-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FLe82Z891Z9TUVDeTD5WX%2Fuploads%2Fgit-blob-1a2e9b4ba84e436b733b3b67b818bc74ec8ad792%2Fcall-router-1.de.png?alt=media" alt="Geschäftszeiten-Prüfung" width="80%"><figcaption></figcaption></figure>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.pascom.net/setup/acd/skill-based-routing.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `build a script that syncs our docs to a CMS` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
