# WhatsApp Broadcast

**Component Explanation :**

<table data-header-hidden><thead><tr><th>Field Name</th><th width="260.66666666666663">Description</th><th>Required</th></tr></thead><tbody><tr><td>Field Name</td><td>Description</td><td>Required</td></tr><tr><td>Authorization</td><td>Generated token id</td><td>Yes</td></tr><tr><td>name</td><td>Name of your broadcast</td><td>Yes</td></tr><tr><td>channel</td><td>Channel id of your used channel</td><td>Yes</td></tr><tr><td>sendingMode</td><td><p>The sending method you will use. <br>Currently there are 2 sending mode, i.e : send immediately (now)  and scheduled send (scheduled)</p><p></p><p>possible value: <em>Now, Scheduled</em></p></td><td>Yes</td></tr><tr><td>scheduledDate</td><td><p>The date and time scheduled for sending broadcast</p><p></p><p>Field format: "yyyy-mm-dd hh:mm:sss"</p></td><td>Yes, when sending mode is 'Scheduled'</td></tr><tr><td>templateId</td><td><p>Id of the template that you want to use for your broadcast</p><p></p><p>wa-template-id must defined first in 3Dolphins UI</p></td><td><p>Yes</p><p></p></td></tr><tr><td>recipient</td><td><p>your recipient id</p><p></p><p>acquired from creating recipient with Recipient endpoint</p></td><td>Yes</td></tr><tr><td>headerVariables</td><td>Variable object of your header</td><td>Yes, only when WhatsApp template being used has macro in Header</td></tr><tr><td>bodyVariables</td><td>Variable object of your body</td><td>Yes, only when WhatsApp template being used has macro in Body</td></tr><tr><td>content</td><td><p>the contents of your broadcast message.</p><p></p><p>Note : For WhatsApp broadcast you can only attach one media on a single broadcast</p></td><td>Yes</td></tr><tr><td>botId</td><td>your bot id when the dialog trigger is used.</td><td>No</td></tr><tr><td>dialogId</td><td>your dialog id that will be used as trigger dialog.</td><td>No</td></tr><tr><td>whatsappRecipient</td><td>your phone number's recipients.</td><td>Yes</td></tr></tbody></table>

{% hint style="info" %}
You don't need to use whatsappRecipient field if you already use recipient field. This also applies in a reverse way.
{% endhint %}

### Create Recipients

| Method     | POST                                                                                                                                                              |
| ---------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Media Type | application/json                                                                                                                                                  |
| URL        | https\://\[server]/dolphin/apiv1/graph/broadcast/upload/recipient&#xD;[&#xD;](<https://venom.3dolphins.ai:9443/dolphin/apiv1/graph/broadcast/multiple&#xD;&#xA;>) |
| Header     | Authorization : Bearer \[generatedToken]                                                                                                                          |

#### Body Create Recipients

To create recipients, you must upload your recipient number with format xlsx. You must fill the recipients data and save it with format xlsx, like image below.

![recipient-import-document.xlsx](/files/-MWXjvZ3SX6D-POV3-Px)

You can choose **form-data** format on **Body** and fill the key with 'uploadFile', change the type with file then you can click **select files** button to select recipient document on your device. Click **Send** button to upload file.

You can choose **form-data** format on **Body** and fill the key with *'uploadFile'*, change the type with *file* then you can click **select files** button to select recipient document on your device. Click ***Send*** button to upload file.

![](/files/-MWXjbTk_QuUiTntv5Sv)

#### Response

Response status: 200

Response status: 200

```
{
  "recipient_id": "[recipient id]" *generated automatically by system
}
```

### Verify Phone Number

| Method     | POST                                                                                                                                                                                      |
| ---------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Media Type | application/json                                                                                                                                                                          |
| URL        | https\://\[server]/dolphin/apiv1/graph/broadcast/verify/{your-channel-id}&#xD;[&#xD;](<https://venom.3dolphins.ai:9443/dolphin/apiv1/graph/broadcast/multiple&#xD;&#xA;>)                 |
| Header     | Authorization : Bearer \[generatedToken]                                                                                                                                                  |
| Body       | <p>\["{phone-number-1}", "{phone-number-2}" , .... ]</p><p></p><p><strong>Note</strong>: Phone number must filled with format '62' (country code) or '0',</p><p>Can't filled with '+'</p> |

#### Response:

Response status: 200

Response status: 200

```
{
  "status": "success",
  "data": [
    {
      "input": "phone-number-1",
      "status": "valid"
    },
    {
      "input": "phone-number-2",
      "status": "invalid"
    }
  ],
  "hasMore": false,
  "nextIndex": 0,
  "prevIndex": 0,
  "totalResults": 0
}
```

### Send Broadcast Text

| Method     | POST                                                  |
| ---------- | ----------------------------------------------------- |
| Media Type | application/json                                      |
| URL        | https\://\[server]/dolphin/apiv1/graph/broadcast&#xD; |
| Header     | Authorization: Bearer \[generatedToken]               |

#### Body:

#### Body:

```
{
    "name":"your-broadcast-name",
    "channel":"channel-used-for-broadcast",
    "sendingMode":"sending-mode",
    "scheduledDate":"2021-01-01 23:30:334",
    "templateId" : "wa-template-id", 
    "recipient": "recipient-id",  
    "content" : [
        
    ]
}
```

#### Response: 200

#### Response:

Response status: 200

```
{
  "status": "success",
  "data": {
    "id": "[broadcast-id]"
  },
  "message": "Successfully make Broadcast Item",
  "hasMore": false,
  "nextIndex": 0,
  "prevIndex": 0,
  "totalResults": 0
}
```

#### Example Send Broadcast Text

Below is a representation when using the WhatsApp broadcast API for sending a broadcast text on the 3Dolphins application.

<figure><img src="/files/cPHY0FmdK0M7UDZIT5R6" alt=""><figcaption><p>Send Broadcast Text</p></figcaption></figure>

When you enter the **channel** field using the channel id in the API, it will be like selecting an **account** on the application and the **templateId** field like selecting the **notification template**. The **name** field will also be the **title** for your notification. **SendingMode** field is like specifying the **sending option** to be used (if you use 'schedule', you can choose when the notification will be sent).

### Send Broadcast Image

#### Example Send Broadcast Text&#x20;

#### Body:

Below is a representation when using the WhatsApp broadcast API for sending a broadcast text on the 3Dolphins application.

<figure><img src="/files/PxM8QAITAI9HXTN3ByiS" alt=""><figcaption><p>Send Broadcast Text</p></figcaption></figure>

When you enter the **channel** field using the channel id in the API, it will be like selecting an **account** on the application and the **templateId** field like selecting the **notification template**. The **name** field will also be the **title** for your notification. **SendingMode** field is like specifying the **sending option** to be used (if you use 'schedule', you can choose when the notification will be sent).

### Send Broadcast Image

| Method     | POST                                                  |
| ---------- | ----------------------------------------------------- |
| Media Type | application/json                                      |
| URL        | https\://\[server]/dolphin/apiv1/graph/broadcast&#xD; |
| Header     | Authorization: Bearer \[generatedToken]               |

#### Body:

```
{
    "name":"your-broadcast-name",
    "channel":"channel-used-for-broadcast",
    "sendingMode":"sending-mode",
    "scheduledDate":"2021-01-01 23:30:334",
    "templateId" : "wa-template-id", 
    "recipient": "recipient-id",  
    "content" : [
       {     
            "type": "image",
            "url": "your-url-for-image", | url https, format jpg/png
        }
    ]
}
```

#### Response: 200

#### Response:

Response status: 200

```
{
  "status": "success",
  "data": {
    "id": "[broadcast-id]"
  },
  "message": "Successfully make Broadcast Item",
  "hasMore": false,
  "nextIndex": 0,
  "prevIndex": 0,
  "totalResults": 0
}
```

#### Example Send Broadcast Image

Below is a representation when using the WhatsApp broadcast API for sending a broadcast image on the 3Dolphins application.

<figure><img src="/files/CdjQMMu5orXJiEJgFNXE" alt=""><figcaption><p>Send Broadcast Image</p></figcaption></figure>

When you enter the **channel** field using the channel id in the API, it will be like selecting an **account** on the application and the **templateId** field like selecting the **notification template** (when using images notification template, you must fill in the 'type' field with 'image' and your image url with https format and image extension type). The **name** field will also be the **title** for your notification. **SendingMode** field is like specifying the **sending option** to be used (if you use 'schedule', you can choose when the notification will be sent).

### Send Broadcast Video

#### Example Send Broadcast Image

#### Body:

Below is a representation when using the WhatsApp broadcast API for sending a broadcast image on the 3Dolphins application.

<figure><img src="/files/PylYZrTRv5ZFNqrWd6GO" alt=""><figcaption><p>Send Broadcast Image</p></figcaption></figure>

When you enter the **channel** field using the channel id in the API, it will be like selecting an **account** on the application and the **templateId** field like selecting the **notification template** (when using images notification template, you must fill in the 'type' field with 'image' and your image url with https format and image extension type). The **name** field will also be the **title** for your notification. **SendingMode** field is like specifying the **sending option** to be used (if you use 'schedule', you can choose when the notification will be sent).

### Send Broadcast Video

| Method     | POST                                                  |
| ---------- | ----------------------------------------------------- |
| Media Type | application/json                                      |
| URL        | https\://\[server]/dolphin/apiv1/graph/broadcast&#xD; |
| Header     | Authorization: Bearer \[generatedToken]               |

#### Body:

```
{
    "name":"your-broadcast-name",
    "channel":"channel-used-for-broadcast",
    "sendingMode":"sending-mode",
    "scheduledDate":"2021-01-01 23:30:334",
    "templateId" : "wa-template-id", 
    "recipient": "recipient-id",  
    "content" : [
        {
            "type": "video",
            "url": "your-url-for-video", | url https, format mp4
            "thumbnailUrl" : "your-url-for-thumbnail"
        }
    ]
}
```

#### Response: 200

#### Response:

Response status: 200

```
{
  "status": "success",
  "data": {
    "id": "[broadcast-id]"
  },
  "message": "Successfully make Broadcast Item",
  "hasMore": false,
  "nextIndex": 0,
  "prevIndex": 0,
  "totalResults": 0
}
```

#### Example Send Broadcast Video

Below is a representation when using the WhatsApp broadcast API for sending a broadcast video on the 3Dolphins application.

<figure><img src="/files/CY36UmD6xH1aY2N0boAA" alt=""><figcaption><p>Send Broadcast Video</p></figcaption></figure>

When you enter the **channel** field using the channel id in the API, it will be like selecting an **account** on the application, as well as the **templateId** field like selecting the **notification template** (when using video notification template, you must fill in the 'type' field with 'video' and your video url with https format and video extension type). The **name** field will also be the **title** for your notification. **SendingMode** field is like specifying the **sending option** to be used (if you use 'schedule', you can choose when the notification will be sent).

### Send Broadcast Document

#### Example Send Broadcast Video

#### Body:

Below is a representation when using the WhatsApp broadcast API for sending a broadcast video on the 3Dolphins application.

<figure><img src="/files/2Dwx1faWEog2HluswEk7" alt=""><figcaption><p>Send Broadcast Video</p></figcaption></figure>

When you enter the **channel** field using the channel id in the API, it will be like selecting an **account** on the application and the **templateId** field like selecting the **notification template** (when using video notification template, you must fill in the 'type' field with 'video' and your video url with https format and video extension type). The **name** field will also be the **title** for your notification. **SendingMode** field is like specifying the **sending option** to be used (if you use 'schedule', you can choose when the notification will be sent).

### Send Broadcast Document

| Method     | POST                                                  |
| ---------- | ----------------------------------------------------- |
| Media Type | application/json                                      |
| URL        | https\://\[server]/dolphin/apiv1/graph/broadcast&#xD; |
| Header     | Authorization : Bearer \[generatedToken]              |

#### Body:

```
{
    "name":"your-broadcast-name",
    "channel":"channel-used-for-broadcast",
    "sendingMode":"sending-mode",
    "scheduledDate":"2021-01-01 23:30:334",
    "templateId" : "wa-template-id", 
    "recipient": "recipient-id",  
    "content" : [
        {
            "type": "document",
            "url": "your-url-for-document", | url https, format pdf
        }
    ]
}
```

#### Response:

Response status: 200

Response status: 200

```
{
  "status": "success",
  "data": {
    "id": "[broadcast-id]"
  },
  "message": "Successfully make Broadcast Item",
  "hasMore": false,
  "nextIndex": 0,
  "prevIndex": 0,
  "totalResults": 0
}
```

#### Example Send Broadcast Document

Below is a representation when using the WhatsApp broadcast API for sending a broadcast document on the 3Dolphins application.

<figure><img src="/files/xIE2qTxykNrg9itnq1I5" alt=""><figcaption><p>Send Broadcast Document</p></figcaption></figure>

When you enter the **channel** field using the channel id in the API, it will be like selecting an **account** on the application and the **templateId** field like selecting the **notification template** (when using document notification template, you must fill in the 'type' field with 'document' and your document url with https format and document extension type). The **name** field will also be the **title** for your notification. **SendingMode** field is like specifying the **sending option** to be used (if you use 'schedule', you can choose when the notification will be sent).

### Send Broadcast Quick Reply

#### Example Send Broadcast Document

#### Body:

Below is a representation when using the WhatsApp broadcast API for sending a broadcast document on the 3Dolphins application.

<figure><img src="/files/KCsRXZGYppFnjNtjziEE" alt=""><figcaption><p>Send Broadcast Document</p></figcaption></figure>

When you enter the **channel** field using the channel id in the API, it will be like selecting an **account** on the application snd the **templateId** field like selecting the **notification template** (when using document notification template, you must fill in the 'type' field with 'document' and your document url with https format and document extension type). The **name** field will also be the **title** for your notification. **SendingMode** field is like specifying the **sending option** to be used (if you use 'schedule', you can choose when the notification will be sent).

### Send Broadcast Quick Reply

| Method     | POST                                                  |
| ---------- | ----------------------------------------------------- |
| Media Type | application/json                                      |
| URL        | https\://\[server]/dolphin/apiv1/graph/broadcast&#xD; |
| Header     | Authorization : Bearer \[generatedToken]              |

#### Body:

```
{
    "name":"your-broadcast-name",
    "channel":"channel-used-for-broadcast",
    "sendingMode":"sending-mode",
    "scheduledDate":"2021-01-01 23:30:334",
    "templateId" : "wa-template-id", 
    "recipient": "recipient-id",  
    "content" : [ 
    
    ]
}
```

#### Response:

Response status: 200

Response status: 200

```
{
  "status": "success",
  "data": {
    "id": "[broadcast-id]"
  },
  "message": "Successfully make Broadcast Item",
  "hasMore": false,
  "nextIndex": 0,
  "prevIndex": 0,
  "totalResults": 0
}
```

#### Example Send Broadcast Quick Reply

Below is a representation when using the WhatsApp broadcast API for sending a broadcast quick reply on the 3Dolphins application.

<figure><img src="/files/xZJzHiqc506GIfSDSRTj" alt=""><figcaption><p>Send Broadcast Quick Reply</p></figcaption></figure>

When you enter the **channel** field using the channel id in the API, it will be like selecting an **account** on the application and the **templateId** field like selecting the **notification template**. The **name** field will also be the **title** for your notification. **SendingMode** field is like specifying the **sending option** to be used (if you use 'schedule', you can choose when the notification will be sent).

### Send Broadcast Macro in Body

#### Example Send Broadcast Quick Reply

#### Body:

Below is a representation when using the WhatsApp broadcast API for sending a broadcast quick reply on the 3Dolphins application.

<figure><img src="/files/ooZm8si3ChJxoJ0c2IIx" alt=""><figcaption><p>Send Broadcast Quick Reply</p></figcaption></figure>

When you enter the **channel** field using the channel id in the API, it will be like selecting an **account** on the application and the **templateId** field like selecting the **notification template**. The **name** field will also be the **title** for your notification. **SendingMode** field is like specifying the **sending option** to be used (if you use 'schedule', you can choose when the notification will be sent).

### Send Broadcast Macro in Body

| Method     | POST                                                  |
| ---------- | ----------------------------------------------------- |
| Media Type | application/json                                      |
| URL        | https\://\[server]/dolphin/apiv1/graph/broadcast&#xD; |
| Header     | Authorization : Bearer \[generatedToken]              |

#### Body:

```
{
    "name":"your-broadcast-name",
    "channel":"channel-used-for-broadcast",
    "sendingMode":"sending-mode",
    "scheduledDate":"2021-01-01 23:30:334",
    "templateId" : "wa-template-id", 
    "recipient": "recipient-id",  
    "bodyVariables" : [ 
        {
            "type": "personalized", 
            "key": "{{1}}", 
            "value": "Nama"
        },  
        {
            "type": "personalized", 
            "key": "{{2}}", 
            "value": "Title"
        }
    ],
    "content" : [ 
    
    ]
}
```

#### Response:

Response status: 200

Response status: 200

```
{
  "status": "success",
  "data": {
    "id": "[broadcast-id]"
  },
  "message": "Successfully make Broadcast Item",
  "hasMore": false,
  "nextIndex": 0,
  "prevIndex": 0,
  "totalResults": 0
}
```

| Field            | Description                                                                                             |
| ---------------- | ------------------------------------------------------------------------------------------------------- |
| Variables Object | Variables Object is required object for template that has macro. The object has key and value component |
| Key              | This key refer to macro that available in broadcast template, example : {0}, {1}, {2}                   |
| Value            | Value refer to field we define in recipient file, as shown below                                        |

Example of macro variable:

![Macro Variable](/files/-MWTfEdCbL19QtKXYrfg)

Example of recipient file (must be .xlsx format) :

![recipient-file.xlsx](/files/-MWTfUyr_dVQAtknoDX6)

In example above, field that being defined is Nama and Title. We can use this field on our Header Variables/Body Variables.

#### Example Send Broadcast Macro in Body

Below is a representation when using the WhatsApp broadcast API for sending a broadcast macro in the notification body.

<figure><img src="/files/yyOkr463c4BBOFATxGw0" alt=""><figcaption><p>Send Broadcast Macro in Body</p></figcaption></figure>

When you enter the **channel** field using the channel id in the API, it will be like selecting an **account** on the application and the **templateId** field like selecting the **notification template**. The **name** field will also be the **title** for your notification. The **template variables** field for the body will appear when you use a broadcast macro to fill in the values for the **key, type,** and **value** fields. **SendingMode** field is like specifying the **sending option** to be used (if you use 'schedule', you can choose when the notification will be sent).

### Send Broadcast Macro in Header and Body

#### Example Send Broadcast Macro in Body

Below is a representation when using the WhatsApp broadcast API for sending a broadcast macro in the notification body.

<figure><img src="/files/rqpacIDRrhAyeLcr1jwo" alt=""><figcaption><p>Send Broadcast Macro in Body</p></figcaption></figure>

When you enter the **channel** field using the channel id in the API, it will be like selecting an **account** on the application, as well as the **templateId** field like selecting the **notification template**. The **name** field will also be the **title** for your notification. The **template variables** field for the body will appear when you use a broadcast macro to fill in the values for the **key, type,** and **value** fields. **SendingMode** field is like specify the **sending option** to be used (if you use 'schedule', you can choose the time when the notification will be sent).

### Send Broadcast Macro in Header and Body

**Component Explanation:**

| Field            | Description                                                                                             |
| ---------------- | ------------------------------------------------------------------------------------------------------- |
| Variables Object | Variables Object is required object for template that has macro. The object has key and value component |
| Key              | This key refer to macro that available in broadcast template, example : {0}, {1}, {2}                   |
| Value            | Value refer to field we define in recipient file, as shown below                                        |

Example of macro variable:

![Macro Variable](/files/-MWTfEdCbL19QtKXYrfg)

Example of recipient file (must be .xlsx format) :

![recipient-file.xlsx](/files/-MWTfUyr_dVQAtknoDX6)

In example above, field that being defined is Nama and Title. We can use this field on our Header Variables/Body Variables.

#### Body:

| Method     | POST                                                  |
| ---------- | ----------------------------------------------------- |
| Media Type | application/json                                      |
| URL        | https\://\[server]/dolphin/apiv1/graph/broadcast&#xD; |
| Header     | Authorization : Bearer \[generatedToken]              |

#### Body:

```
{
    "name":"your-broadcast-name",
    "channel":"channel-used-for-broadcast",
    "sendingMode":"sending-mode",
    "scheduledDate":"2021-01-01 23:30:334",
    "templateId" : "wa-template-id", 
    "recipient": "recipient-id",  
    
    "headerVariables" : [ 
        {"key": "{{1}}", "value": "Nama"}
     ],
    "bodyVariables" : [
        {"key": "{{1}}", "value": "Nama"},  
        {"key": "{{2}}", "value": "Tanggal"}
     ],
    "content" : [ 
    
    ]
}
```

#### Response:

Response status: 200

Response status: 200

```
{
  "status": "success",
  "data": {
    "id": "[broadcast-id]"
  },
  "message": "Successfully make Broadcast Item",
  "hasMore": false,
  "nextIndex": 0,
  "prevIndex": 0,
  "totalResults": 0
}
```

The example of headerVariables above has a meaning, you mapping value of field Name into macro {1} The example of bodyVariables above has a meaning, you mapping value of field Name into macro {1} and value of field Tanggal into macro {2}.

When broadcast being send into the recipient macro {1} and {2} would be replaced with the value from recipient file. In this example, the macro would be replaced with M.Ridwan and 22-04-2021. So the end result would be like this:

When broadcast being send into the recipient macro {1} and {2} would replaced with the value from recipient file. On this example, the macro would replaced with M.Ridwan and 22-04-2021. So the end result would be like this:

> Halo, M.Ridwan
>
> Terima kasih sudah mendaftarkan diri anda. Berikut lampiran datanya Nama: M. Ridwan Tanggal keberangkatan: 22-04-2021

#### Example Send Broadcast Macro in Header and Body

Below is a representation when using the WhatsApp broadcast API for sending a broadcast macro in the notification header and body.

<figure><img src="/files/Zg2SlJG2af2GPMLTk22Q" alt=""><figcaption><p>Example Send Broadcast Macro in Header and Body</p></figcaption></figure>

When you enter the **channel** field using the channel id in the API, it will be like selecting an **account** on the application and the **templateId** field like selecting the **notification template**. The **name** field will also be the **title** for your notification. The **template variables** field for header and body will appear when you use a broadcast macro to fill in the values for the **key, type,** and **value** fields. **SendingMode** field is like specifying the **sending option** to be used (if you use 'schedule', you can choose when the notification will be sent).

### Send Multiple Broadcast

#### Example Send Broadcast Macro in Header and Body

Below is a representation when using the WhatsApp broadcast API for sending a broadcast macro in the notification header and body.

#### Body for Multiple Broadcast:

<figure><img src="/files/cHo7115Pk00yrgh5IrSV" alt=""><figcaption><p>Send Broadcast Macro in Header and Body</p></figcaption></figure>

When you enter the **channel** field using the channel id in the API, it will be like selecting an **account** on the application and the **templateId** field like selecting the **notification template**. The **name** field will also be the **title** for your notification. The **template variables** field for header and body will appear when you use a broadcast macro to fill in the values for the **key, type,** and **value** fields. **SendingMode** field is like specifying the **sending option** to be used (if you use 'schedule', you can choose when the notification will be sent).

### Send Multiple Broadcast

Multiple broadcast allows you to create more than one broadcast at once.&#x20;

| Method     | POST                                                                                                                                                      |
| ---------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Media Type | application/json                                                                                                                                          |
| URL        | https\://\[server]/dolphin/apiv1/graph/broadcast/multiple&#xD;[&#xD;](<https://venom.3dolphins.ai:9443/dolphin/apiv1/graph/broadcast/multiple&#xD;&#xA;>) |
| Header     | Authorization: Bearer \[generatedToken]                                                                                                                   |

#### Body for Multiple Broadcast:

```
[ 
*code for first broadcast request
{ 
   "name":"your-broadcast-name", 
   "channel":"channel-used-for-broadcast", 
   "sendingMode":"sending-mode",
   "scheduledDate":"2021-01-01 23:30:334",
   "content" : [ 
     { 
        "type" : "text", 
        "message": "First broadcast" 
      } 
   ] 
},
*code for second broadcast request
{ 
   "name":"your-broadcast-name", 
   "channel":"channel-used-for-broadcast", 
   "sendingMode":"sending-mode",
   "scheduledDate":"2021-01-01 23:30:334",
   "content" : [ 
     { 
        "type" : "text", 
        "message": "Second broadcast" 
      } 
   ] 
}
]
```

#### Response:

Response status: 200

Response status: 200

```
{
  "status": "success",
  "data": [
    {
      "id": "[id]",
      "message": "Successfully make Broadcast Item",
      "status": "success"
    },
     {
      "id": "[id]",
      "message": "Successfully make Broadcast Item",
      "status": "success"
    }
  ],
  "hasMore": false,
  "nextIndex": 0,
  "prevIndex": 0,
  "totalResults": 0
}
```

### Get Broadcast Detail by ID

| Method     | GET                                                                                                                                                     |
| ---------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Media Type | application/json                                                                                                                                        |
| URL        | https\://\[server]/dolphin/apiv1/graph/broadcast/detail&#xD;[&#xD;](<https://venom.3dolphins.ai:9443/dolphin/apiv1/graph/broadcast/multiple&#xD;&#xA;>) |
| Header     | <p>Authorization : Bearer \[generatedToken]</p><p>Broadcast id: \[broadcast id]</p>                                                                     |

#### Response:

Response status: 200

Response status: 200

```
{
    "status": "success",
    "data": {
        "id": "your-broadcast-id",
        "spell": [
            "New Notification",
            "{\"header\":[],\"body\":[{\"type\":\"static\",\"key\":\"{{1}}\",\"value\":\"{value}\"},{\"type\":\"static\",\"key\":\"{{2}}\",\"value\":\"{value}\"}]}"
        ],
        "owner": "owner-id",
        "createdDate": 1614657234000,
        "createdBy": "created-by-id",
        "modifiedDate": 1614657340548,
        "modifiedBy": "system",
        "templateId": "template-id",
        "actionDate": 1614657339000,
        "name": "New Notification",
        "message": "{\"header\":[],\"body\":[{\"type\":\"static\",\"key\":\"{{1}}\",\"value\":\"{value}\"},{\"type\":\"static\",\"key\":\"{{2}}\",\"value\":\"{value}\"}]}",
        "recipient": [
            "{\"type\":\"contact\",\"id\":\"{recipient-id}\",\"phone\":\"{phone-number}\",\"selected\":true}"
        ],
        "status": "Sent",
        "channel": "your-channel-id",
        "channelType": "your-channel-type",
        "sendingMode": "Now",
        "scheduledDate": 1614657339000,
        "scheduledTime": "10:55"
    },
    "hasMore": false,
    "nextIndex": 0,
    "prevIndex": 0,
    "totalResults": 0
}
```

### Create Broadcast WhatsApp

{% hint style="info" %}
Broadcast template id must be created first in order to use WhatsApp broadcast API.
{% endhint %}

| Method       | POST                                                                                                                                        |
| ------------ | ------------------------------------------------------------------------------------------------------------------------------------------- |
| Content Type | application/json                                                                                                                            |
| URL          | https\://\[server]/graph/broadcast/whatsapp&#xD;[&#xD;](<https://venom.3dolphins.ai:9443/dolphin/apiv1/graph/broadcast/multiple&#xD;&#xA;>) |
| Header       | Authorization : Bearer \[generatedToken]                                                                                                    |

#### Body:

```
{
  "name": "string",
  "recipient": "string",
  "status": "string",
  "channel": "string",
  "sendingMode": "string",
  "templateId": "string",
  "scheduledDate": "string",
  "botId": "string",
  "dialogId": "string",
  "content": [
    {
      "type": "string",
      "url": "string",
      "message": "string",
      "thumbnailUrl": "string"
    }
  ],
  "headerVariables": [
    {
      "key": "string",
      "value": "string"
    }
  ],
  "bodyVariables": [
    {
      "key": "string",
      "value": "string"
    }
  ],
  "whatsappRecipient": [
    {
      "Recipient": "string"
    }
  ]
}
```

#### Response:

Response Status: 200

```
{
    "name": "your-broadcast-name",
    "channel": "channel-used-for-broadcast",
    "sendingMode": "Now",
    "templateId": "wa-template-id",
    
    "bodyVariables": [
        {
            "type": "personalized",
            "key": "{{1}}",
            "value": "Nama"
        },
        {
            "type": "personalized",
            "key": "{{2}}",
            "value": "Title"
        }
    ],
    "content": [
        
    ],
    "whatsappRecipient": [
        {
            "Recipient": 6282xxxxxxxxx,
            "Nama": "ardian",
            "Title": "kak"
        },
        {
            "Recipient": 6282xxxxxxxxx,
            "Nama": "doni aprr",
            "Title": "kak"
        }
    ]
}
```


---

# Agent Instructions: 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 current page URL with the `ask` query parameter:

```
GET https://docs.3dolphins.ai/api/service-api/marketing-api/create-whatsapp-broadcast.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
