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

# Utgående meddelanden och mallar

## Översikt

En agent kan bara skicka WhatsApp-meddelanden i fritt format i en aktiv konversation. För att kontakta en användare först — för notiser, återengagemang eller schemalagda samtal — skickar du en Meta-godkänd **meddelandemall**. Den här sidan beskriver hur du skapar mallar, skickar utgående meddelanden och samtal samt kör dem i stor skala.

## Skapa mallar i WhatsApp Manager

Mallar skapas och godkänns i [WhatsApp Manager](https://business.facebook.com/latest/whatsapp_manager/message_templates), inte i ElevenLabs.

När du skapar en mall:

* Välj en kategori: **Utility** för transaktionsmeddelanden, **Marketing** för marknadsföringsmeddelanden eller **Authentication** för verifieringskoder. Meta har olika priser och begränsningar för varje kategori — se [WhatsApp-priser](https://developers.facebook.com/documentation/business-messaging/whatsapp/pricing).
* Välj ett parameterformat: positionsbaserat (`{{1}}`, `{{2}}`) eller namngivet (`{{customer_name}}`). Namngivna parametrar kräver `parameter_name` för varje värde du skickar.
* Skicka in för godkännande. Godkännandet tar vanligtvis från några minuter till några timmar. En mall som väntar på godkännande eller har avvisats kan inte skickas — API:et godtar begäran, men Meta levererar aldrig meddelandet.

> **Note**
>
> Meta begränsar hur många [marknadsföringsmallar ](https://developers.facebook.com/documentation/business-messaging/whatsapp/templates/marketing-templates/per-user-limits)
> en enskild användare kan ta emot under en viss period. Om en marknadsföringsmall tyst inte levereras
> är denna gräns en vanlig orsak (Meta-fel 131049).

## Skicka ett utgående meddelande

Att skicka ett mallmeddelande startar en ny konversation. Agenten är tyst tills användaren svarar — mallen är i sig det första meddelandet, och inga konversationstimers startar förrän användaren svarar.

#### Instrumentpanel

Gå till [WhatsApp-sidan](https://elevenlabs.io/app/agents/whatsapp), välj ditt konto och klicka på knappen ***Utgående -> Meddelande***. Välj en agent, ange ett WhatsApp-användar-ID och välj meddelandemallen och dess parametrar:

![Dialogruta för utgående WhatsApp-meddelande](/docs/_fern-img/13913c2ccc1d92cb59e7332b6fdb4a8c8c64760a334d1a311fa2007831eeb986.webp)

#### Python

```python
from elevenlabs import ElevenLabs

elevenlabs = ElevenLabs()

elevenlabs.conversational_ai.whatsapp.outbound_message(
    whatsapp_phone_number_id="524029457612345",
    whatsapp_user_id="12213231492",
    template_name="welcome",
    template_language_code="en",
    template_params=[
        {
            "type": "body",
            "parameters": [
                {
                    "type": "text",
                    "parameter_name": "name",
                    "text": "Daniele",
                }
            ],
        }
    ],
    agent_id="agent_9201kwcrbq9qfxaa2t8nnnkqf2w9",
    conversation_initiation_client_data={
        "dynamic_variables": {"customer_name": "Daniele"},
    },
)
```

#### TypeScript

```typescript
import { ElevenLabsClient } from "@elevenlabs/elevenlabs-js";

const elevenlabs = new ElevenLabsClient();

await elevenlabs.conversationalAi.whatsapp.outboundMessage({
  whatsappPhoneNumberId: "524029457612345",
  whatsappUserId: "12213231492",
  templateName: "welcome",
  templateLanguageCode: "en",
  templateParams: [
    {
      type: "body",
      parameters: [
        {
          type: "text",
          parameterName: "name",
          text: "Daniele",
        },
      ],
    },
  ],
  agentId: "agent_9201kwcrbq9qfxaa2t8nnnkqf2w9",
  conversationInitiationClientData: {
    dynamicVariables: { customer_name: "Daniele" },
  },
});
```

#### cURL

```bash
curl -X POST https://api.elevenlabs.io/v1/convai/whatsapp/outbound-message \
  -H "xi-api-key: $ELEVENLABS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "whatsapp_phone_number_id": "524029457612345",
    "whatsapp_user_id": "12213231492",
    "template_name": "welcome",
    "template_language_code": "en",
    "template_params": [
      {
        "type": "body",
        "parameters": [
          {"type": "text", "parameter_name": "name", "text": "Daniele"}
        ]
      }
    ],
    "agent_id": "agent_9201kwcrbq9qfxaa2t8nnnkqf2w9",
    "conversation_initiation_client_data": {
      "dynamic_variables": {"customer_name": "Daniele"}
    }
  }'
```

Se [API-referensen](/docs/sv/api-reference/whats-app/outbound-message) för det fullständiga begärandeschemat.

> **Tip**
>
> En AI-assistent kan anpassa dessa exempel till din mall. Hänvisa den till ElevenLabs-dokumentationens
> [llms.txt](/docs/sv/llms.txt) (eller den mer detaljerade [llms-full.txt](/docs/sv/llms-full.txt)), klistra in din
> malldefinition från WhatsApp Manager och be om begäran — då skapas ett cURL-
> kommando eller SDK-anrop med rätt `template_params` för din mall.

### Mallparametrar

`template_params` är en lista med **komponent**objekt, ett för varje mallkomponent som har parametrar:

* `{"type": "body", "parameters": [...]}` för platshållare i brödtexten
* `{"type": "header", "parameters": [...]}` för en parameteriserad rubrik (text, bild, dokument eller plats)
* `{"type": "button", "sub_type": ..., "index": ..., "parameters": [...]}` för knapp-parametrar

Varje post i `parameters` är ett värdeobjekt, till exempel `{"type": "text", "text": "Daniele"}`. För mallar med namngivna parametrar ska `parameter_name` inkluderas för varje värde. Att utelämna komponentomslutningen — till exempel genom att skicka `{"type": "text", ...}` direkt i `template_params` — avvisas.

### Mottagarens nummerformat

`whatsapp_user_id` får bara innehålla siffror: landskoden följt av numret, utan `+`, mellanslag eller bindestreck. Till exempel `14155552671`, inte `+1 (415) 555-2671`.

> **Warning**
>
> I vissa länder skiljer sig det ID som WhatsApp använder för en person från deras uppringda nummer —
> till exempel har mexikanska nummer en extra `1` efter landskoden (`521...`), och brasilianska
> nummer kan innehålla eller utelämna en nionde siffra. Om användaren har skickat meddelanden till dig tidigare bör du använda
> `whatsapp_user_id` från den tidigare konversationen, som du kan kopiera från konversations-
> historiken.

### Dynamiska variabler, grenar och miljöer

Fältet `conversation_initiation_client_data` låter dig ange [dynamiska variabler](/docs/sv/eleven-agents/customization/personalization/dynamic-variables) för konversationen och låsa den till en specifik [agentgren](/docs/sv/eleven-agents/operate/versioning) och [miljö](/docs/sv/eleven-agents/integrate/environment-variables):

```json
{
  "dynamic_variables": { "customer_name": "Daniele" },
  "branch_id": "agtbrch_8721kwarbs83e233mg1fzkaf9pg0",
  "environment": "staging"
}
```

Dessa inställningar består för konversationen: när användaren svarar återupptar agenten konversationen på den begärda grenen och i den begärda miljön. Grenen och miljön valideras först — om någon av dem inte finns misslyckas begäran med ett fel och inget meddelande skickas.

Detta begärandefält är hur utgående konversationer får dynamiska variabler; inkommande konversationer får dem i stället från en webhook för konversationsinitiering — se [initieringskontext](/docs/sv/eleven-agents/whatsapp#initialization-context).

> **Note**
>
> Mallparametrar fyller bara i malltexten — de exponeras inte för agenten. Om
> agenten behöver ett värde från mallen (till exempel kundens namn) skickar du det igen i
> `dynamic_variables`.

### Efter att du har skickat

En lyckad begäran returnerar ett `conversation_id` och konversationen visas i historiken med den återgivna mallen som första meddelande. Agenten körs inte förrän användaren svarar. Att skicka mallen startar varken timern för maximal varaktighet eller inaktivitetstimern; båda startar när konversationen återupptas. Ett `200`-svar betyder att ElevenLabs godkände begäran — Meta kan fortfarande neka leverans efteråt. Om meddelandet aldrig kommer fram, se [Felsökning](/docs/sv/eleven-agents/whatsapp/troubleshooting).

## Schemalägga ett utgående samtal

Utgående WhatsApp-samtal kräver användarens tillstånd — se [användarens samtalstillstånd](https://developers.facebook.com/documentation/business-messaging/whatsapp/calling/user-call-permissions). Skapa en meddelandemall med en komponent för **begäran om samtalstillstånd** i [WhatsApp Manager](https://business.facebook.com/latest/whatsapp_manager/message_templates). När du schemalägger ett samtal kontrollerar ElevenLabs tillståndsstatusen:

* Tillståndet har redan beviljats: samtalet kopplas upp direkt.
* Tillstånd har ännu inte begärts: mallen för tillståndsbegäran skickas, och samtalet kopplas upp så snart användaren godkänner.
* Tillståndet avvisades: konversationen registreras som misslyckad med orsaken `User declined the call permission request.`

#### Instrumentpanel

Gå till [WhatsApp-sidan](https://elevenlabs.io/app/agents/whatsapp), välj ditt konto och klicka på knappen ***Utgående -> Samtal***. Välj en agent, ange ett WhatsApp-användar-ID och välj mallen för begäran om samtalstillstånd:

![Dialogruta för utgående WhatsApp-samtal](/docs/_fern-img/1fcf7968f1651ce8e9474e770aad4dce4e702c69b4522f5bcc65efcd8bf8a3e4.webp)

#### Python

```python
from elevenlabs import ElevenLabs

elevenlabs = ElevenLabs()

elevenlabs.conversational_ai.whatsapp.outbound_call(
    whatsapp_phone_number_id="524029457612345",
    whatsapp_user_id="12213231492",
    whatsapp_call_permission_request_template_name="call_permission",
    whatsapp_call_permission_request_template_language_code="en",
    agent_id="agent_9201kwcrbq9qfxaa2t8nnnkqf2w9",
    conversation_initiation_client_data={
        "dynamic_variables": {"customer_name": "Daniele"},
    },
)
```

#### TypeScript

```typescript
import { ElevenLabsClient } from "@elevenlabs/elevenlabs-js";

const elevenlabs = new ElevenLabsClient();

await elevenlabs.conversationalAi.whatsapp.outboundCall({
  whatsappPhoneNumberId: "524029457612345",
  whatsappUserId: "12213231492",
  whatsappCallPermissionRequestTemplateName: "call_permission",
  whatsappCallPermissionRequestTemplateLanguageCode: "en",
  agentId: "agent_9201kwcrbq9qfxaa2t8nnnkqf2w9",
  conversationInitiationClientData: {
    dynamicVariables: { customer_name: "Daniele" },
  },
});
```

#### cURL

```bash
curl -X POST https://api.elevenlabs.io/v1/convai/whatsapp/outbound-call \
  -H "xi-api-key: $ELEVENLABS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "whatsapp_phone_number_id": "524029457612345",
    "whatsapp_user_id": "12213231492",
    "whatsapp_call_permission_request_template_name": "call_permission",
    "whatsapp_call_permission_request_template_language_code": "en",
    "agent_id": "agent_9201kwcrbq9qfxaa2t8nnnkqf2w9",
    "conversation_initiation_client_data": {
      "dynamic_variables": {"customer_name": "Daniele"}
    }
  }'
```

Se [API-referensen](/docs/sv/api-reference/whats-app/outbound-call) för det fullständiga begärandeschemat. Precis som för utgående meddelanden anger `conversation_initiation_client_data` dynamiska variabler och låser konversationen till en gren och miljö, och en okänd gren eller miljö avvisas innan samtalet schemaläggs.

> **Note**
>
> Meta tar betalt för utgående samtal och för begäranden om samtalstillstånd som skickas utanför ett [kundtjänstfönster ](https://developers.facebook.com/documentation/business-messaging/whatsapp/messages/send-messages#customer-service-windows).
> Lägg till en betalningsmetod i WhatsApp Manager innan du schemalägger samtal.

## Kampanjer och batchning

För att ringa många användare använder du [batchsamtal](/docs/sv/eleven-agents/phone-numbers/batch-calls) med `whatsapp_params`: ange telefonnummer-ID och mallen för begäran om samtalstillstånd en gång, samt ett `whatsapp_user_id` per mottagare.

Det finns ännu ingen inbyggd batchslutpunkt för utgående meddelanden. För mallkampanjer anropar du [slutpunkten för utgående meddelanden](/docs/sv/api-reference/whats-app/outbound-message) en gång per mottagare och håller dig inom Metas meddelandegränser för ditt nummer — se [meddelandegränser](https://developers.facebook.com/documentation/business-messaging/whatsapp/messages/messaging-limits).