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

# Återuppta en utgående kampanj

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

Återuppta en pausad utgående kampanj, inklusive samtal som ett uppmärksamhetsobjekt höll tillbaka.

Reference: https://elevenlabs.io/docs/eleven-agents/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

Lyckat svar

- `campaign_id` (string, required)
- `call_name` (string, required) — Kampanjens namn.
- `agent_id` (string, required)
- `channel_config` (CampaignResponseChannelConfig, required)
- `status` (enum, required) — `attention` innebär att ett öppet uppmärksamhetsobjekt håller tillbaka vissa av kampanjens samtal medan övriga fortsätter. `stopping` innebär att köade samtal avbryts och att redan uppringda samtal avslutas.
  - Allowed values: `active`, `paused`, `stopping`, `stopped`, `completed`, `failed`, `attention`
- `policy` (CampaignPolicySnapshot, required) — Den policy som kampanjen använde när den skapades.
- `variant` (enum, required)
  - Allowed values: `simple`, `advanced`
- `created_at_unix` (integer, required)
- `updated_at_unix` (integer, required)
- `channel` (enum, required)
  - Allowed values: `phone`, `whatsapp`
- `mode` (enum, required)
  - Allowed values: `voice`, `message`
- `counts` (CampaignSummaryCounts, required)
- `agent_name` (string, required, default: )
- `source` (enum, optional) — Om kampanjen skapades i appen eller via API:et.
  - Allowed values: `ui`, `api`
- `outcome` (CampaignResponseOutcome, optional) — Resultatet som räknas som lyckat för kampanjens samtal.
- `scheduled_time_unix` (integer, optional) — När kampanjen börjar ringa; lämna tomt för att starta när den har skapats.
- `branch_id` (string, optional) — Agentgrenen som kampanjen ringer med.
- `environment` (string, optional) — Miljön där agentens miljövariabler löses.
- `target_concurrency_limit` (integer, optional) — Det högsta antalet samtal kampanjen genomför samtidigt.

## Errors

### 422 Outbound Campaigns Resume Request Unprocessable Entity Error

Valideringsfel

- `detail` (list of ValidationError, optional)

## Types

### CampaignResponseChannelConfig

- `channel`: `phone`
  - `agent_phone_number_id` (string, required) — Telefonnumret att ringa från.
  - `mode_config` (PhoneVoiceConfigOutput, optional)
- `channel`: `whatsapp`
  - `mode_config` (WhatsAppChannelConfigModeConfig, required)
  - `whatsapp_phone_number_id` (string, required) — WhatsApp-telefonnumret att ringa eller skicka meddelanden från.

### CampaignPolicySnapshot

Den policy som kampanjen använde när den skapades, utformad som en inskickad `policy`.

- `timezone` (string, required)
- `retry` (RetryPolicy, required)
- `calling_periods` (list of CallingPeriodPolicy, required)
- `data_collection` (DataCollectionPolicy, required)
- `followup_context` (FollowupContextPolicy, required) — Vilka dynamiska variabler för `campaign__` som uppföljningssamtal får.

### CampaignSummaryCounts

- `leads` (integer, required)
- `terminal_leads` (integer, required) — Leads som inte kommer att ringas upp igen.
- `open_attention` (integer, required) — Uppmärksamhetsobjekt som ännu inte har lösts.
- `delivery` (RecipientDeliveryCounts, optional) — Hur många meddelanden som nådde varje steg; anges när en meddelandekampanj hämtas.

### CampaignResponseOutcome

- `type`: `data_collection`
  - `data_collection_id` (string, required) — Agentens datainsamlingsobjekt som ett lyckat samtal anger.
  - `equals` (list of DataCollectionOutcomeEqualsItem, required) — Värden som räknas som lyckade, alla av objektets typ.
- `type`: `evaluation_criteria`
  - `criteria_id` (string, required) — Agentens utvärderingskriterium som ett lyckat samtal uppfyller.

### ValidationError

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

### PhoneVoiceConfigOutput

- `ringing_timeout_secs` (integer, optional, default: 60) — Hur länge mottagaren ska ringas innan försöket avbryts, i sekunder. Observera att detta även begränsas av leverantörens egna begränsningar.
- `twilio_call_recording_enabled` (boolean, optional, default: false) — Om samtalet ska spelas in med Twilios samtalsinspelning. Ignoreras för leverantörer som inte är Twilio. Inspelningar lagras på ditt Twilio-konto.
- `twilio_machine_detection` (TwilioMachineDetectionConfig, optional) — Konfiguration för Twilios operatörsnivåbaserade detektering av telefonsvarare (AMD). Utelämna eller ange null för att inaktivera den. Ignoreras för leverantörer som inte är Twilio och för inkommande samtal. Resultatet levereras som en egen webhook-händelse, `answering_machine_detection`, vilket kräver att händelsen är aktiverad i inställningarna för workspace- eller agentwebhookar; den ingår inte i samtalet eller webhooken efter samtalet. Detekteringen körs asynkront och fördröjer därför aldrig starten av samtalet, och resultatet kan komma när som helst under samtalet – med `detect_message_end`, även efter att det har avslutats. Twilio fakturerar AMD separat.
- `mode` ("voice", optional)

### WhatsAppChannelConfigModeConfig

- `mode`: `message`
  - `template` (WhatsAppTemplate, required) — Meta-mallen som den godkändes vid inskickningen.
- `mode`: `voice`
  - `whatsapp_call_permission_request_template_language_code` (string, required) — Språkkoden för den mallen.
  - `whatsapp_call_permission_request_template_name` (string, required) — Den godkända mallen som ber kontakten om tillstånd att ringa.

### RetryPolicy

- `retry_delay_seconds` (integer, optional, default: 600) — Hur länge du ska vänta före ett kort nytt försök.
- `max_short_retries` (integer, optional, default: 1) — Nya försök som ett samtalsfönster tillåter efter ett misslyckat samtal. När de har använts väntar nästa försök på följande fönster, som börjar om från början.
- `max_total_calls` (integer, optional, default: 6) — Det högsta antalet samtal ett lead får, inklusive det första.
- `max_callbacks` (integer, optional, default: 2) — Det högsta antalet återuppringningar att hantera för ett nummer.
- `max_redirects` (integer, optional, default: 2) — Det högsta antalet gånger ett lead följer en begäran om att ringa ett annat nummer.
- `interval_placement` (enum, optional, default: start) — Var i ett senare tidsfönster för uppringning ett framflyttat samtal hamnar: vid dess `start`, vid en `random` tid eller `rotate`d `rotate_step_seconds` efter där det senaste samtalet i det fönstret misslyckades.
  - Allowed values: `start`, `random`, `rotate`
- `rotate_step_seconds` (integer, optional, default: 900) — Hur långt `rotate`-placering flyttar varje samtal. Används endast av `rotate`.
- `max_consecutive_failures_per_number` (integer, optional) — Samtal till ett nummer som får misslyckas i följd innan leadet går vidare till nästa nummer i listan, eller avslutas om det inte finns något. Ett besvarat samtal eller en omdirigering till ett nytt nummer startar om räkningen. Om det inte anges används bara `max_total_calls`.

### CallingPeriodPolicy

- `weekdays` (list of integer, required)
- `intervals` (list of CallingIntervalPolicy, required) — Tidsfönster för var och en av dessa dagar. De får inte överlappa under någon dag.

### DataCollectionPolicy

- `callback_time` (string, optional)
- `redirect_phone_number` (string, optional)
- `stop` (string, optional)
- `mappings` (map from string to string, optional) — Kopierar resultat från datainsamling till dynamiska variabler för senare samtal: varje nyckel är ett ID för ett datainsamlingsobjekt och dess värde är variabelns namn.

### FollowupContextPolicy

Vilka dynamiska variabler för `campaign__` som uppföljningssamtal får.

- `call_type` (boolean, optional, default: true) — Skicka samtalstypen som `campaign__call_type`.
- `previous_conversation_id` (boolean, optional, default: true) — Skicka den senaste konversationens ID som `campaign__previous_conversation_id`.
- `previous_summary` (boolean, optional, default: true) — Skicka den senaste konversationens sammanfattning som `campaign__previous_summary`.
- `previous_transcript` (boolean, optional, default: true) — Skicka den senaste konversationens transkription som `campaign__previous_transcript`.

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

### DataCollectionOutcomeEqualsItem

- string
- integer
- double
- boolean

### ValidationErrorLocItem

- string
- integer

### TwilioMachineDetectionConfig

Hur Twilios operatörsnivåidentifiering av telefonsvarare (AMD) ska köras i ett samtal.

- `mode` (enum, optional, default: enable) — Hur noggrann identifieringen ska vara. `enable` returnerar ett besked så snart Twilio kan skilja en människa från en maskin. `detect_message_end` väntar också tills röstmeddelandets hälsning är klar, vilket ger beskeden `machine_end_*`, men returnerar ett resultat senare.
  - Allowed values: `enable`, `detect_message_end`
- `actions` (list of TwilioMachineDetectionRule, optional) — Åtgärder som ska vidtas i samtalet för varje AMD-bedömning. Varje åtgärd får förekomma i högst en regel, så ange alla dess bedömningar tillsammans. Bedömningar utan en regel låter samtalet fortsätta.

### 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) — https://developers.facebook.com/docs/graph-api/reference/whats-app-business-account/message_templates/

### CallingIntervalPolicy

- `start` (string, required) — Lokal starttid, som `HH:MM`.
- `end` (string, required) — Lokal sluttid, som `HH:MM`; `24:00` avslutas vid midnatt.

### TwilioMachineDetectionRule

Åtgärd som ska vidtas i ett pågående samtal för de angivna AMD-bedömningarna.

- `action` ("hang_up", required)
- `answered_by` (list of enum, required) — Bedömningar som utlöser åtgärden.
  - Allowed values: `human`, `fax`, `unknown`, `machine_start`, `machine_end_beep`, `machine_end_silence`, `machine_end_other`

### WhatsAppTemplateComponent

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

### WhatsAppTemplateComponentButton

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

## Examples

**Response**

```json
{
  "campaign_id": "campaign_id",
  "call_name": "call_name",
  "agent_id": "agent_id",
  "channel_config": {
    "channel": "phone",
    "agent_phone_number_id": "agent_phone_number_id",
    "mode_config": {
      "ringing_timeout_secs": 1,
      "twilio_call_recording_enabled": true,
      "mode": "voice"
    }
  },
  "status": "active",
  "policy": {
    "timezone": "timezone",
    "retry": {
      "retry_delay_seconds": 1,
      "max_short_retries": 1,
      "max_total_calls": 1,
      "max_callbacks": 1,
      "max_redirects": 1,
      "interval_placement": "start",
      "rotate_step_seconds": 1,
      "max_consecutive_failures_per_number": 1
    },
    "calling_periods": [
      {
        "weekdays": [
          1
        ],
        "intervals": [
          {
            "start": "start",
            "end": "end"
          }
        ]
      }
    ],
    "data_collection": {
      "callback_time": "callback_time",
      "redirect_phone_number": "redirect_phone_number",
      "stop": "stop",
      "mappings": {
        "key": "value"
      }
    },
    "followup_context": {
      "call_type": true,
      "previous_conversation_id": true,
      "previous_summary": true,
      "previous_transcript": true
    }
  },
  "variant": "simple",
  "created_at_unix": 1,
  "updated_at_unix": 1,
  "channel": "phone",
  "mode": "voice",
  "counts": {
    "leads": 1,
    "terminal_leads": 1,
    "open_attention": 1,
    "delivery": {
      "sent": 1,
      "delivered": 1,
      "read": 1,
      "replied": 1,
      "failed": 1
    }
  },
  "agent_name": "agent_name",
  "source": "ui",
  "outcome": {
    "type": "data_collection",
    "data_collection_id": "data_collection_id",
    "equals": [
      "equals"
    ]
  },
  "scheduled_time_unix": 1,
  "branch_id": "branch_id",
  "environment": "environment",
  "target_concurrency_limit": 1
}
```

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