> This is a page from the ElevenLabs documentation. For a complete page index, fetch https://elevenlabs.io/docs/llms.txt. For the full documentation in a single file, fetch https://elevenlabs.io/docs/llms-full.txt.

# Konfiguration der Outbound-Kampagne abrufen

GET https://api.elevenlabs.io/v1/convai/outbound-campaigns/config

Ruft die Outbound-Kampagnenkonfiguration des Workspaces ab: die Standardrichtlinie für neue Kampagnen und Überschreibungen pro Agent.

Reference: https://elevenlabs.io/docs/eleven-agents/api-reference/campaigns/config/get

## Servers

- `https://api.elevenlabs.io` (Production, default)
- `https://api.us.elevenlabs.io` (Production US)
- `https://api.eu.residency.elevenlabs.io` (Production EU)
- `https://api.in.residency.elevenlabs.io` (Production India)
- `https://api.sg.residency.elevenlabs.io` (Production Singapore)

## Response

### 200

Erfolgreiche Antwort

- `version` (integer, required) — Erhöht sich bei jedem Ersetzen; als `expected_version` senden.
- `config` (CampaignConfigOutput, required)

## Errors

### 422 Config Get Request Unprocessable Entity Error

Validierungsfehler

- `detail` (list of ValidationError, optional)

## Types

### CampaignConfigOutput

- `policy` (PolicyConfigOutput, optional) — Die Richtlinie, die Kampagnen verwenden, sofern sie keine eigene festlegen.
- `agent_policies` (map from string to AgentPolicyOverrideOutput, optional) — Überschreibungen von `policy`, nach Agent-ID gruppiert.
- `whatsapp_voice_policy` (AgentPolicyOverrideOutput, optional) — Überschreibungen für WhatsApp-Sprachkampagnen, die zwischen der Workspace-Richtlinie und den Überschreibungen eines Agenten angewendet werden. Nicht enthaltene Abschnitte verwenden die integrierten Standardwerte von WhatsApp Voice.

### ValidationError

- `loc` (list of ValidationErrorLocItem, required)
- `msg` (string, required)
- `type` (string, required)

### PolicyConfigOutput

- `timezone` (string, optional, default: UTC) — IANA-Zeitzone, in der die Anrufzeiträume gelesen werden.
- `retry` (RetryPolicy, optional)
- `calling_periods` (list of CallingPeriod, optional) — Die wöchentlichen Zeitfenster, in denen Anrufe getätigt werden dürfen.
- `data_collection` (DataCollectionConfig, optional) — Die Datenerfassungselemente des Agenten, die Nachfassanrufe steuern. Jedes verwendet standardmäßig das integrierte Element für seinen Zweck; `null` deaktiviert es.
- `followup_context` (FollowupContextPolicy, optional) — Welche dynamischen Variablen `campaign__` Folgeanrufe erhalten.

### AgentPolicyOverrideOutput

Jeder hier festgelegte Abschnitt ersetzt den gesamten entsprechenden Abschnitt der Richtlinie.

- `timezone` (string, optional)
- `retry` (RetryPolicy, optional)
- `calling_periods` (list of CallingPeriod, optional)
- `data_collection` (DataCollectionConfig, optional) — Die Datenerfassungselemente des Agenten, die Nachfassanrufe steuern. Jedes verwendet standardmäßig das integrierte Element für seinen Zweck; `null` deaktiviert es.
- `followup_context` (FollowupContextPolicy, optional) — Welche dynamischen Variablen `campaign__` Folgeanrufe erhalten.

### ValidationErrorLocItem

- string
- integer

### RetryPolicy

- `retry_delay_seconds` (integer, optional, default: 600) — Wie lange vor einem kurzen Wiederholungsversuch gewartet wird.
- `max_short_retries` (integer, optional, default: 1) — Wiederholungsversuche, die ein Anruffenster nach einem fehlgeschlagenen Anruf erlaubt. Sobald sie aufgebraucht sind, wartet der nächste Wiederholungsversuch auf das folgende Fenster, das erneut beginnt.
- `max_total_calls` (integer, optional, default: 6) — Die maximale Anzahl von Anrufen für einen Lead, einschließlich des ersten.
- `max_callbacks` (integer, optional, default: 2) — Die maximale Anzahl von Rückrufen, die für eine Nummer berücksichtigt wird.
- `max_redirects` (integer, optional, default: 2) — Die maximale Anzahl, wie oft ein Lead einer Anfrage folgt, eine andere Nummer anzurufen.
- `interval_placement` (enum, optional, default: start) — An welcher Stelle in einem späteren Anruffenster ein verschobener Anruf erfolgt: bei `start`, zu einem `random` Zeitpunkt oder um `rotate_step_seconds` nach der Stelle versetzt, an der der letzte Anruf in diesem Fenster fehlgeschlagen ist (`rotate`).
  - Allowed values: `start`, `random`, `rotate`
- `rotate_step_seconds` (integer, optional, default: 900) — Um wie viele Positionen die Platzierung `rotate` jeden Anruf verschiebt. Wird nur von `rotate` verwendet.
- `max_consecutive_failures_per_number` (integer, optional) — Anrufe an eine Nummer, die nacheinander fehlschlagen dürfen, bevor der Lead zur nächsten angegebenen Nummer wechselt oder endet, falls keine weitere vorhanden ist. Ein angenommener Anruf oder eine Weiterleitung an eine neue Nummer setzt die Zählung zurück. Wenn nicht gesetzt, gilt nur `max_total_calls`.

### CallingPeriod

- `weekdays` (list of integer, required) — Tage, an denen die Intervalle gelten, von `0` (Montag) bis `6` (Sonntag).
- `intervals` (list of CallingIntervalPolicy, required) — Zeitfenster an jedem dieser Tage. Sie dürfen sich an keinem Tag überschneiden.

### DataCollectionConfig

Die Datenerfassungselemente des Agenten, die Nachfassanrufe steuern. Jedes verwendet standardmäßig das integrierte Element für seinen Zweck; `null` deaktiviert es.

- `callback_time` (string, optional) — Das Element, das den von der Kontaktperson gewünschten Rückrufzeitpunkt enthält.
- `redirect_phone_number` (string, optional) — Das Element, das eine andere Nummer enthält, unter der die Kontaktperson angerufen werden möchte.
- `stop` (string, optional) — Das Element, das wahr ist, wenn die Kontaktperson darum gebeten hat, nicht erneut angerufen zu werden.
- `mappings` (map from string to string, optional) — Kopiert Ergebnisse der Datenerfassung in dynamische Variablen für spätere Anrufe: Jeder Schlüssel ist eine Datenerfassungselement-ID, sein Wert der Name der Variablen.

### FollowupContextPolicy

Welche dynamischen Variablen `campaign__` Folgeanrufe erhalten.

- `call_type` (boolean, optional, default: true) — Übergeben Sie den Anruftyp als `campaign__call_type`.
- `previous_conversation_id` (boolean, optional, default: true) — Übergeben Sie die ID des letzten Gesprächs als `campaign__previous_conversation_id`.
- `previous_summary` (boolean, optional, default: true) — Übergeben Sie die Zusammenfassung des letzten Gesprächs als `campaign__previous_summary`.
- `previous_transcript` (boolean, optional, default: true) — Übergeben Sie das Transkript des letzten Gesprächs als `campaign__previous_transcript`.

### CallingIntervalPolicy

- `start` (string, required) — Lokale Startzeit im Format `HH:MM`.
- `end` (string, required) — Lokale Endzeit im Format `HH:MM`; `24:00` endet um Mitternacht.

## Examples

**Response**

```json
{
  "version": 1,
  "config": {
    "policy": {
      "timezone": "timezone",
      "calling_periods": [
        {
          "weekdays": [
            1
          ],
          "intervals": [
            {
              "start": "start",
              "end": "end"
            }
          ]
        }
      ]
    },
    "agent_policies": {
      "key": {}
    },
    "whatsapp_voice_policy": {
      "timezone": "timezone",
      "calling_periods": [
        {
          "weekdays": [
            1
          ],
          "intervals": [
            {
              "start": "start",
              "end": "end"
            }
          ]
        }
      ]
    }
  }
}
```

**SDK Code**

```python
import requests

url = "https://api.elevenlabs.io/v1/convai/outbound-campaigns/config"

response = requests.get(url)

print(response.json())
```

```javascript
const url = 'https://api.elevenlabs.io/v1/convai/outbound-campaigns/config';
const options = {method: 'GET'};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go
package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://api.elevenlabs.io/v1/convai/outbound-campaigns/config"

	req, _ := http.NewRequest("GET", url, nil)

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby
require 'uri'
require 'net/http'

url = URI("https://api.elevenlabs.io/v1/convai/outbound-campaigns/config")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
```

```java
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.get("https://api.elevenlabs.io/v1/convai/outbound-campaigns/config")
  .asString();
```

```php
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('GET', 'https://api.elevenlabs.io/v1/convai/outbound-campaigns/config');

echo $response->getBody();
```

```csharp
using RestSharp;

var client = new RestClient("https://api.elevenlabs.io/v1/convai/outbound-campaigns/config");
var request = new RestRequest(Method.GET);
IRestResponse response = client.Execute(request);
```

```swift
import Foundation

let request = NSMutableURLRequest(url: NSURL(string: "https://api.elevenlabs.io/v1/convai/outbound-campaigns/config")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```