WhatsApp Broadcast

Component Definition

Field NameDescriptionRequired

Authorization

Generated token id

Yes

name

Name of your broadcast

Yes

channel

Channel id of your used channel

Yes

sendingMode

The sending method you will use. Currently there are 2 sending mode, i.e : send immediately (now) and scheduled send (scheduled)

possible value: Now, Scheduled

Yes

scheduledDate

The date and time scheduled for sending broadcast

Field format: "yyyy-mm-dd hh:mm:sss"

Yes, when sending mode is 'Scheduled'

templateId

Id of the template that you want to use for your broadcast

wa-template-id must defined first in 3Dolphins UI

Yes

recipient

your recipient id

acquired from creating recipient with Recipient endpoint

Yes

headerVariables

Variable object of your header

Yes, only when WhatsApp template being used has macro in Header

bodyVariables

Variable object of your body

Yes, only when WhatsApp template being used has macro in Body

content

the contents of your broadcast message.

Note : For WhatsApp broadcast you can only attach one media on a single broadcast

Yes

botId

your bot id when the dialog trigger is used.

No

dialogId

your dialog id that will be used as trigger dialog.

No

whatsappRecipient

your phone number's recipients.

Yes

You don't need to use whatsappRecipient field if you already use recipient field. This also applies in a reverse way.

Create Recipients

Method

POST

Media Type

application/json

URL

https://[server]/dolphin/apiv1/graph/broadcast/upload/recipient

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 the image below.

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.

Response

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}

Header

Authorization : Bearer [generatedToken]

Body

["{phone-number-1}", "{phone-number-2}" , .... ]

Note: Phone number must filled with format '62' (country code) or '0',

Can't filled with '+'

Response

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

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

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

Method

POST

Media Type

application/json

URL

https://[server]/dolphin/apiv1/graph/broadcast

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

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

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 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 specify the sending option to be used (if you use 'schedule', you can choose the time when the notification will be sent).

Send Broadcast Video

Method

POST

Media Type

application/json

URL

https://[server]/dolphin/apiv1/graph/broadcast

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
        }
    ]
}

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

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 specify the sending option to be used (if you use 'schedule', you can choose the time when the notification will be sent).

Send Broadcast Document

Method

POST

Media Type

application/json

URL

https://[server]/dolphin/apiv1/graph/broadcast

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

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

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 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 specify the sending option to be used (if you use 'schedule', you can choose the time when the notification will be sent).

Send Broadcast Quick Reply

Method

POST

Media Type

application/json

URL

https://[server]/dolphin/apiv1/graph/broadcast

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

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

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

Method

POST

Media Type

application/json

URL

https://[server]/dolphin/apiv1/graph/broadcast

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

{
  "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:

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

In the example above, field that is 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.

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:

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

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

Method

POST

Media Type

application/json

URL

https://[server]/dolphin/apiv1/graph/broadcast

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

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

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 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 specify the sending option to be used (if you use 'schedule', you can choose the time when the notification will be sent).

Send Multiple Broadcast

Multiple broadcast allows you to create more than one broadcast at once.

Method

POST

Media Type

application/json

URL

https://[server]/dolphin/apiv1/graph/broadcast/multiple

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

{
  "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

Header

Authorization : Bearer [generatedToken]

Broadcast id: [broadcast id]

Response

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

Broadcast template id must be created first in order to use WhatsApp broadcast API.

Method

POST

Content Type

application/json

URL

https://[server]/graph/broadcast/whatsapp

Header

Authorization : Bearer [generatedToken]

Body:

{
  "name": "Broadcast",
  "recipient": "string",
  "status": "string",
  "channel": "2ada6f6e1bxxxxxxxxxxxx",
  "sendingMode": "Now",
  "templateId": "8a2d8a2a3xxxxxxxxx",
  "scheduledDate": "string",
  "botId": "string",
  "dialogId": "string",
  "content": [
    {
      "type": "string",
      "url": "string",
      "message": "string"
    }
  ],
  "headerVariables": [
    {
      "key": "string",
      "value": "string"
    }
  ],
  "bodyVariables": [
    {
      "key": "{{1}}",
      "value": "Panggilan"
    },{
      "key": "{{2}}",
      "value": "Nama"
    }
  ],
  "whatsappRecipient": [
    {
      "Recipient": "62818xxxxxxxx",
            "Panggilan": "Zulfa",
            "Nama": "Fahimah"
        
    }
  ]
}

Response:

Response Status: 200

{
 {
  "status": "success",
  "data": {
    "id": "173ae7e440xxxxxxxxxxx"
  },
  "message": "Successfully make Broadcast Item"
}

Last updated