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

# Wznów kampanię wychodzącą

POST https://api.elevenlabs.io/v1/convai/outbound-campaigns/campaigns/{campaign_id}/resume

Wznów wstrzymaną kampanię wychodzącą, w tym połączenia wstrzymane przez pozycję wymagającą uwagi.

Reference: https://elevenlabs.io/docs/api-reference/campaigns/resume

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

## Request

### Path parameters

- `campaign_id` (string, required)

## Response

### 200

Pomyślna odpowiedź

- `campaign_id` (string, required)
- `call_name` (string, required) — Nazwa kampanii.
- `agent_id` (string, required)
- `channel_config` (CampaignResponseChannelConfig, required)
- `status` (enum, required) — `attention` oznacza, że otwarta pozycja wymagająca uwagi wstrzymuje część połączeń kampanii, a pozostałe są realizowane. `stopping` oznacza, że połączenia w kolejce są anulowane, a rozpoczęte połączenia są kończone.
  - Allowed values: `active`, `paused`, `stopping`, `stopped`, `completed`, `failed`, `attention`
- `policy` (CampaignPolicySnapshot, required) — Polityka przyjęta przez kampanię podczas jej tworzenia.
- `variant` (enum, required)
  - Allowed values: `simple`, `advanced`
- `source` (enum, required, nullable) — Czy kampanię utworzono w aplikacji czy przez API.
  - Allowed values: `ui`, `api`
- `outcome` (CampaignResponseOutcome, required, nullable) — Wynik uznawany za sukces połączeń kampanii.
- `created_at_unix` (integer, required)
- `scheduled_time_unix` (integer, required, nullable) — Kiedy kampania zaczyna dzwonić; pozostaw puste, aby zaczęła po utworzeniu.
- `updated_at_unix` (integer, required)
- `branch_id` (string, required, nullable) — Gałąź agenta, z którą kampania wykonuje połączenia.
- `environment` (string, required, nullable) — Środowisko, w którym rozwiązywane są zmienne środowiskowe agenta.
- `target_concurrency_limit` (integer, required, nullable) — Maksymalna liczba połączeń wykonywanych jednocześnie przez kampanię.
- `channel` (enum, required)
  - Allowed values: `phone`, `whatsapp`
- `mode` (enum, required)
  - Allowed values: `voice`, `message`
- `counts` (CampaignSummaryCounts, required)
- `agent_name` (string, required, default: )

## Errors

### 422 Unprocessable Entity Error

Błąd walidacji

- `detail` (list of ValidationError, optional)

## Types

### CampaignResponseChannelConfig

- `channel`: `phone` (PhoneChannelConfig)
  - `agent_phone_number_id` (string, required) — Numer telefonu, z którego należy dzwonić.
  - `mode_config` (PhoneVoiceConfig-Output, optional)
- `channel`: `whatsapp` (WhatsAppChannelConfig)
  - `mode_config` (WhatsAppChannelConfigModeConfig, required)
  - `whatsapp_phone_number_id` (string, required) — Numer telefonu WhatsApp, z którego wykonywane są połączenia lub wysyłane wiadomości.

### CampaignPolicySnapshot

Polityka przyjęta przez kampanię podczas jej tworzenia, przedstawiona jak przesłana `policy`.

- `timezone` (string, required)
- `retry` (RetryPolicy, required)
- `calling_periods` (list of CallingPeriodPolicy, required)
- `data_collection` (DataCollectionPolicy, required)
- `followup_context` (FollowupContextPolicy, required) — Które zmienne dynamiczne `campaign__` otrzymują połączenia kontynuacyjne.

### CampaignResponseOutcome

Wynik uznawany za sukces połączeń kampanii.

- `type`: `data_collection` (DataCollectionOutcome)
  - `data_collection_id` (string, required) — Element zbierania danych agenta ustawiany przez udane połączenie.
  - `equals` (list of CampaignResponseOutcomeDiscriminatorMappingDataCollectionEqualsItems, required) — Wartości uznawane za sukces, wszystkie tego samego typu co element.
- `type`: `evaluation_criteria` (EvaluationCriterionOutcome)
  - `criteria_id` (string, required) — Kryterium oceny agenta spełniane przez udane połączenie.

### CampaignSummaryCounts

- `leads` (integer, required)
- `terminal_leads` (integer, required) — Leady, do których nie będzie kolejnych połączeń.
- `open_attention` (integer, required) — Pozycje wymagające uwagi, które nie zostały jeszcze rozwiązane.
- `delivery` (RecipientDeliveryCounts, optional, nullable) — Liczba wiadomości, które osiągnęły każdy etap; ustawiane podczas pobierania jednej kampanii wiadomości.

### ValidationError

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

### PhoneVoiceConfig-Output

- `ringing_timeout_secs` (integer, optional, default: 60) — Jak długo dzwonić do odbiorcy przed zakończeniem próby, w sekundach. Ograniczenia dostawcy również mają zastosowanie.
- `twilio_call_recording_enabled` (boolean, optional, default: false) — Czy nagrywać rozmowę za pomocą nagrywania połączeń Twilio. Ignorowane w przypadku dostawców innych niż Twilio. Nagrania są przechowywane na twoim koncie Twilio.
- `twilio_machine_detection` (TwilioMachineDetectionConfig, optional, nullable) — Konfiguracja wykrywania automatycznej sekretarki (AMD) Twilio na poziomie operatora. Pomiń ją lub ustaw na null, aby ją wyłączyć. Jest ignorowana dla dostawców innych niż Twilio oraz połączeń przychodzących. Wynik jest dostarczany jako osobne zdarzenie webhooka `answering_machine_detection`, które musi być włączone w ustawieniach webhooków obszaru roboczego lub agenta; nie jest częścią rozmowy ani webhooka po połączeniu. Wykrywanie działa asynchronicznie, więc nigdy nie opóźnia rozpoczęcia rozmowy, a wynik może nadejść w dowolnym momencie połączenia — przy `detect_message_end` nawet po jego zakończeniu. Twilio nalicza osobną opłatę za AMD.
- `mode` ("voice", optional, default: voice)

### WhatsAppChannelConfigModeConfig

- `mode`: `message` (WhatsAppMessageConfig)
  - `template` (WhatsAppTemplate, required) — Szablon Meta w wersji zatwierdzonej podczas przesyłania.
- `mode`: `voice` (WhatsAppVoiceConfig)
  - `whatsapp_call_permission_request_template_language_code` (string, required) — Kod języka tego szablonu.
  - `whatsapp_call_permission_request_template_name` (string, required) — Zatwierdzony szablon, który prosi kontakt o zgodę na połączenie.

### RetryPolicy

- `retry_delay_seconds` (integer, optional, default: 600) — Jak długo czekać przed krótką ponowną próbą.
- `max_short_retries` (integer, optional, default: 1) — Liczba ponownych prób dozwolonych przez okno połączeń po nieudanym połączeniu. Po wykorzystaniu limitu kolejna próba czeka na następne okno, które zaczyna się od nowa.
- `max_total_calls` (integer, optional, default: 6) — Maksymalna liczba połączeń z leadem, wliczając pierwsze.
- `max_callbacks` (integer, optional, default: 2) — Maksymalna liczba oddzwonień do obsłużenia dla jednego numeru.
- `max_redirects` (integer, optional, default: 2) — Maksymalna liczba razy, gdy lead realizuje prośbę o połączenie z innym numerem.
- `interval_placement` (enum, optional, default: start) — Gdzie w późniejszym oknie połączeń trafi przełożone połączenie: na jego `start`, w `random` czasie lub `rotate`d o `rotate_step_seconds` od miejsca, w którym nie powiodło się ostatnie połączenie w tym oknie.
  - Allowed values: `start`, `random`, `rotate`
- `rotate_step_seconds` (integer, optional, default: 900) — O ile umieszczenie `rotate` przesuwa każde połączenie. Używane tylko przez `rotate`.
- `max_consecutive_failures_per_number` (integer, optional, nullable) — Liczba kolejnych nieudanych połączeń z jednym numerem, zanim lead przejdzie do następnego numeru na liście lub zakończy się, jeśli go nie ma. Odebrane połączenie lub przekierowanie na nowy numer resetuje licznik. Brak wartości pozostawia tylko `max_total_calls`.

### CallingPeriodPolicy

- `weekdays` (list of integer, required)
- `intervals` (list of CallingIntervalPolicy, required) — Okna w każdym z tych dni. Nie mogą nakładać się w żadnym dniu.

### DataCollectionPolicy

- `callback_time` (string, optional, nullable)
- `redirect_phone_number` (string, optional, nullable)
- `stop` (string, optional, nullable)
- `mappings` (map from string to string, optional) — Kopiuje wyniki zbierania danych do zmiennych dynamicznych na potrzeby późniejszych połączeń: każdy klucz to ID elementu zbierania danych, a jego wartość to nazwa zmiennej.

### FollowupContextPolicy

Które zmienne dynamiczne `campaign__` otrzymują połączenia kontynuacyjne.

- `call_type` (boolean, optional, default: true) — Przekaż typ połączenia jako `campaign__call_type`.
- `previous_conversation_id` (boolean, optional, default: true) — Przekaż ID ostatniej rozmowy jako `campaign__previous_conversation_id`.
- `previous_summary` (boolean, optional, default: true) — Przekaż podsumowanie ostatniej rozmowy jako `campaign__previous_summary`.
- `previous_transcript` (boolean, optional, default: true) — Przekaż transkrypcję ostatniej rozmowy jako `campaign__previous_transcript`.

### CampaignResponseOutcomeDiscriminatorMappingDataCollectionEqualsItems

- string
- integer
- double
- boolean

### RecipientDeliveryCounts

- `sent` (integer, optional, default: 0)
- `delivered` (integer, optional, default: 0)
- `read` (integer, optional, default: 0)
- `replied` (integer, optional, default: 0)
- `failed` (integer, optional, default: 0)

### ValidationErrorLocItems

- string
- integer

### TwilioMachineDetectionConfig

Jak uruchomić wykrywanie automatycznej sekretarki (AMD) Twilio na poziomie operatora podczas połączenia.

- `mode` (enum, optional, default: enable) — Jak dokładne ma być wykrywanie. `enable` zwraca wynik, gdy tylko Twilio rozpozna człowieka lub maszynę. `detect_message_end` czeka też na zakończenie powitania poczty głosowej, co pozwala uzyskać wyniki `machine_end_*`, ale zwraca rezultat później.
  - Allowed values: `enable`, `detect_message_end`
- `actions` (list of TwilioMachineDetectionRule, optional) — Działania do wykonania podczas połączenia dla każdego werdyktu AMD. Każde działanie może wystąpić najwyżej w jednej regule, dlatego wymień razem wszystkie odpowiadające mu werdykty. Werdykty bez reguły nie kończą połączenia.

### WhatsAppTemplate

- `name` (string, required)
- `language` (string, required) — https://developers.facebook.com/documentation/business-messaging/whatsapp/templates/supported-languages
- `components` (list of WhatsAppTemplateComponent, required)
- `parameter_format` (enum, optional, default: POSITIONAL)
  - Allowed values: `POSITIONAL`, `NAMED`
- `category` (string, optional, nullable) — https://developers.facebook.com/docs/graph-api/reference/whats-app-business-account/message_templates/

### CallingIntervalPolicy

- `start` (string, required) — Lokalna godzina rozpoczęcia w formacie `HH:MM`.
- `end` (string, required) — Lokalna godzina zakończenia w formacie `HH:MM`; `24:00` oznacza północ.

### TwilioMachineDetectionRule

Działanie do wykonania podczas aktywnego połączenia dla danych werdyktów AMD.

- `action` (enum, required)
  - Allowed values: `hang_up`
- `answered_by` (list of enum, required) — Werdykty wywołujące działanie.
  - Allowed values: `human`, `fax`, `unknown`, `machine_start`, `machine_end_beep`, `machine_end_silence`, `machine_end_other`

### WhatsAppTemplateComponent

- `type` (string, required)
- `format` (string, optional, nullable)
- `text` (string, optional, nullable)
- `buttons` (list of WhatsAppTemplateComponentButton, optional, nullable)

### WhatsAppTemplateComponentButton

- `type` (string, required)
- `text` (string, optional, nullable)
- `url` (string, optional, nullable)

## Examples

**Response**

```json
{
  "campaign_id": "string",
  "call_name": "string",
  "agent_id": "string",
  "channel_config": {
    "channel": "phone",
    "agent_phone_number_id": "string",
    "mode_config": {
      "ringing_timeout_secs": 60,
      "twilio_call_recording_enabled": false,
      "twilio_machine_detection": {
        "mode": "enable",
        "actions": [
          {
            "action": "hang_up",
            "answered_by": [
              "human"
            ]
          }
        ]
      },
      "mode": "voice"
    }
  },
  "status": "active",
  "policy": {
    "timezone": "string",
    "retry": {
      "retry_delay_seconds": 600,
      "max_short_retries": 1,
      "max_total_calls": 6,
      "max_callbacks": 2,
      "max_redirects": 2,
      "interval_placement": "start",
      "rotate_step_seconds": 900,
      "max_consecutive_failures_per_number": 1
    },
    "calling_periods": [
      {
        "weekdays": [
          1
        ],
        "intervals": [
          {
            "start": "string",
            "end": "string"
          }
        ]
      }
    ],
    "data_collection": {
      "callback_time": "string",
      "redirect_phone_number": "string",
      "stop": "string",
      "mappings": {}
    },
    "followup_context": {
      "call_type": true,
      "previous_conversation_id": true,
      "previous_summary": true,
      "previous_transcript": true
    }
  },
  "variant": "simple",
  "source": "ui",
  "outcome": {
    "type": "evaluation_criteria",
    "criteria_id": "string"
  },
  "created_at_unix": 1,
  "scheduled_time_unix": 1,
  "updated_at_unix": 1,
  "branch_id": "string",
  "environment": "string",
  "target_concurrency_limit": 1,
  "channel": "phone",
  "mode": "voice",
  "counts": {
    "leads": 1,
    "terminal_leads": 1,
    "open_attention": 1,
    "delivery": {
      "sent": 0,
      "delivered": 0,
      "read": 0,
      "replied": 0,
      "failed": 0
    }
  },
  "agent_name": ""
}
```

**SDK Code**

```python
import requests

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

response = requests.post(url)

print(response.json())
```

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

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/campaigns/campaign_id/resume"

	req, _ := http.NewRequest("POST", 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/campaigns/campaign_id/resume")

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

request = Net::HTTP::Post.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.post("https://api.elevenlabs.io/v1/convai/outbound-campaigns/campaigns/campaign_id/resume")
  .asString();
```

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

$client = new \GuzzleHttp\Client();

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

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

```csharp
using RestSharp;

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

```swift
import Foundation

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

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()
```