Kampanye
Alamat Endpoint
| Pusat Data | URL |
|---|---|
| Singapura | https://email.api.engagelab.cc |
| Turki | https://emailapi-tr.engagelab.com |
Saat menggunakan REST API, pastikan pusat data yang dipilih sesuai dengan base URL yang benar.
POST/v1/marketing/campaigns
Membuat
URL
https://email.api.engagelab.cc/v1/marketing/campaigns
Metode HTTP Request
POST
Content-Type
application/json; charset=utf-8
Header Permintaan
| Header | Tipe | Wajib | Deskripsi |
|---|---|---|---|
| Authorization | string | ya | Basic base64(api_user:api_key) |
Parameter Body
| Parameter | Tipe | Wajib | Deskripsi |
|---|---|---|---|
| campaign_type | integer | ya | Jenis tugas: 1 untuk uji A/B, 2 untuk kampanye reguler |
| name | string | ya | Nama tugas (maksimal 64 karakter) |
| to | object[] | ya | Penerima, saat ini hanya mendukung array dengan panjang 1 |
| reply_to | string | tidak | Alamat balasan |
| sender_id | string | * | ID pengirim (hanya untuk kampanye reguler) |
| template_invoke_name | string | * | Nama pemanggil template (hanya untuk kampanye reguler) |
| subject | string | * | Subjek email, prioritas lebih tinggi dari subjek template. Wajib jika AB test adalah uji konten |
| send_time | string | * | Waktu pengiriman (hanya untuk kampanye reguler), format: "YYYY-MM-DD HH:mm:ss" |
| time_zone | integer | * | Zona waktu default (+8 secara bawaan) |
| attachments | object[] | tidak | Lampiran email (maksimal 10 lampiran) |
| filename | string | tidak | Nama file lampiran, contoh: contoh.pdf |
| content | string | tidak | Konten lampiran dalam encoding base64 |
| ab_test | object | * | Parameter konfigurasi uji A/B (hanya untuk uji A/B) |
| google_track | object | tidak | Parameter Google Track (hanya untuk kampanye reguler) |
| warm_up | object[] | tidak | Pengaturan warm-up (hanya untuk kampanye reguler) |
Catatan:
- Total ukuran semua lampiran tidak boleh melebihi 10MB (sebelum encoding base64).
Format parameter "to":
[
{
"type": "list",
"value": ["all"]
}
]
[
{
"type": "tag",
"value": ["tag1"]
}
]
[
{
"type": "segment",
"value": ["segment1"]
}
]
Format parameter "ab_test":
| Parameter | Tipe | Wajib | Deskripsi |
|---|---|---|---|
| percent | integer | ya | Persentase uji, [1, 100]. Misal, 20 berarti 20% kontak untuk uji, sisanya untuk pemenang |
| win_condition | object | ya | Kondisi pemenang |
| time_unit | string | ya | Satuan waktu: day, hour |
| after_time | integer | ya | Berapa lama menunggu sebelum hitung pemenang. hour: [0-23], day: [0-10] |
| compare | string | ya | Bidang perbandingan: open_percent, click_percent, uni_open_percent, uni_click_percent, delivered_percent |
| template_invoke_names | string[] | * | Uji template. Nilai template_invoke_name diabaikan, subject wajib diisi |
| sender_ids | string[] | * | Uji pengirim. Nilai sender_id diabaikan |
| send_times | string[] | * | Uji waktu kirim. Nilai send_time diabaikan |
| subjects | string[] | * | Uji subjek. Nilai subject diabaikan |
Contoh:
"ab_test": {
"percent": 20,
"win_condition": {
"time_unit": "hour",
"after_time": 18,
"compare": "open_percent"
},
"subjects": []
}
Catatan:
- ab_test hanya mendukung satu jenis pengujian per permintaan.
Format parameter google_track:
| Parameter | Tipe | Wajib | Deskripsi |
|---|---|---|---|
| campaign_name | string | tidak | Nama kampanye (maksimal 64 karakter) |
| campaign_source | string | tidak | Sumber (maksimal 64 karakter) |
| campaign_medium | string | tidak | Media (maksimal 64 karakter) |
| campaign_term | string | tidak | Kata kunci (maksimal 64 karakter) |
| campaign_content | string | tidak | Konten (maksimal 64 karakter) |
Contoh:
"google_track": {
"campaign_name":"",
"campaign_source":"",
"campaign_medium":"",
"campaign_term":"",
"campaign_content":""
}
Format parameter "warm_up":
| Parameter | Tipe | Wajib | Deskripsi |
|---|---|---|---|
| domain | string | ya | Domain penerima |
| rate | integer | ya | Tingkat pengiriman |
| upgrade_value | float | ya | Ambang naik rate, nilai (0,1] |
| downgrade_value | float | ya | Ambang turun rate, nilai (0,1] |
Contoh:
"warm_up": [{
"domain": "gmail.com",
"rate": 1,
"upgrade_value": "0.95",
"downgrade_value": "0.75"
}, {
"domain": "hotmail.com",
"rate": 3,
"upgrade_value": "0.95",
"downgrade_value": "0.75"
}]
Contoh Permintaan
Membuat kampanye reguler
curl -X POST -H 'Content-Type: application/json; charset=utf-8' -H 'Authorization:Basic YXBpX3VzZXI6YXBpX2tleQ==' -i https://email.api.engagelab.cc/v1/marketing/campaigns --data '{
"campaign_type": 1,
"name": "11.11_leon_api8",
"to":[{
"type": "tag",
"value": ["tag1"]
}],
"sender_id": "53",
"reply_to": "",
"template_invoke_name": "leon2_shanshan",
"subject": "happy new year",
"run_time": "2022-10-26 17:10:20",
"time_zone":"8",
"attachments":[{
"content":"base64 content",
"file_name":"1.jpg"
},{
"content":"base64 content",
"file_name":"2.jpg"
}],
"warm_up": [{
"domain":"gmail.com",
"rate":1,
"upgrade_value":"0.95",
"downgrade_value":"0.75"
},{
"domain":"hotmail.com",
"rate":1,
"upgrade_value":"0.95",
"downgrade_value":"0.75"
}],
"google_track":{
"campaign_name":"",
"campaign_source":"",
"campaign_medium":"",
"campaign_term":"",
"campaign_content":""
}
}
'
Membuat kampanye A/B
curl -X POST -H 'Content-Type: application/json; charset=utf-8' -H 'Authorization:Basic YXBpX3VzZXI6YXBpX2tleQ==' -i https://email.api.engagelab.cc/v1/marketing/campaigns --data '{
"campaign_type": 2,
"name": "11.11_leon_api9",
"to":[{
"type": "list",
"value": ["all"]
}],
"sender_id": "53",
"reply_to": "reply@sendcloud.im",
"template_invoke_name": "leon2_shanshan",
"subject": "happy new year",
"run_time": "2022-10-26T17:10:20+0800",
"time_zone":"8",
"attachments":[{
"content":"base64 content",
"file_name":"1.jpg"
}
],
"ab_test": {
"percent": 20,
"win_condition": {
"time_unit": "hour",
"after_time": 18,
"compare": "open_percent"
},
"template_invoke_names": []
},
"google_track":{
"campaign_name":"",
"campaign_source":"",
"campaign_medium":"",
"campaign_term":"",
"campaign_content":""
}
}'
Contoh Respons
Respons-Berhasil
HttpStatus: 200
{
"result": {
"campaign_id": 34007,
"campaign_type": 2,
"name": "testddd",
"to": {
"type": "tag",
"value": ["tag1"]
},
"template_invoke_name": "leon2_shanshan",
"reply_to": "",
"status": 2,
"create_time": "2022-09-27T16:36:32+0800",
"update_time": "2022-10-12T00:00:00+0800",
"run_time": "2022-09-27T16:41:23+0800",
"complete_time": "2022-10-12T00:00:00+0800",
"time_zone": "+8",
"sender_id": 21,
"google_track": {
"campaign_name":"",
"campaign_source":"",
"campaign_medium":"",
"campaign_term":"",
"campaign_content":""
},
"warm_up": [{
"domain":"hotmail.com",
"rate":1,
"upgrade_value":"0.95",
"downgrade_value":"0.75"
},{
"domain":"hotmail.com",
"rate":1,
"upgrade_value":"0.95",
"downgrade_value":"0.75"
}]
}
}
Contoh respons kampanye a/b test
{
"result": {
"campaign_id": 34009,
"campaign_type": 2,
"name": "testddd",
"to":[{
"type": "list",
"value": ["all"]
}],
"template_invoke_name": "leon2_shanshan",
"reply_to": "",
"status": 0,
"create_time": "2022-09-27T16:36:32+0800",
"update_time": "2022-10-12T00:00:00+0800",
"run_time": "2022-09-27T16:41:23+0800",
"complete_time": "2022-10-12T00:00:00+0800",
"time_zone": "+8",
"sender_id": 21,
"ab_test": {
"percent": 20,
"win_condition": {
"time_unit": "hour",
"after_time": 18,
"compare": "open_percent"
},
"template_invoke_names": []
},
"google_track": {
"campaign_name":"",
"campaign_source":"",
"campaign_medium":"",
"campaign_term":"",
"campaign_content":""
}
}
}
Respons-Gagal
HttpStatus: 401
{
"code": 32112,
"message": "name tidak boleh kosong"
}
Hapus
URL
https://email.api.engagelab.cc/v1/marketing/campaigns/{campaign_id}
Metode HTTP Request
DELETE
Content-Type
application/x-www-form-urlencoded;charset=utf-8
Header Permintaan
| Header | Tipe | Wajib | Deskripsi |
|---|---|---|---|
| Authorization | string | ya | Basic base64(api_user:api_key) |
Contoh Permintaan
curl -X DELETE -H 'Authorization:Basic YXBpX3VzZXI6YXBpX2tleQ==' -i https://email.api.engagelab.cc/v1/marketing/campaigns/8
Contoh Respons
Respons-Berhasil
HttpStatus: 200
{
"count": 1
}
Respons-Gagal
HttpStatus: 401
{
"code": 30000,
"message": "Autentikasi gagal"
}
Perbarui
URL
https://email.api.engagelab.cc/v1/marketing/campaigns/{campaign_id}
Metode HTTP Request
PUT
Content-Type
application/json; charset=utf-8
Header Permintaan
| Header | Tipe | Wajib | Deskripsi |
|---|---|---|---|
| Authorization | string | ya | Basic base64(api_user:api_key) |
Parameter Body
| Parameter | Tipe | Wajib | Deskripsi |
|---|---|---|---|
| campaign_type | integer | ya | Jenis kampanye: 1 untuk uji A/B, 2 untuk kampanye reguler |
| name | string | ya | Nama kampanye (maksimal 64 karakter) |
| to | object[] | ya | Penerima, saat ini hanya mendukung array dengan ukuran 1 |
| reply_to | string | tidak | Alamat balasan |
| sender_id | string | * | ID pengirim (hanya untuk kampanye reguler) |
| template_invoke_name | string | * | Nama template email yang dipanggil (hanya untuk kampanye reguler) |
| subject | string | * | Subjek email (wajib untuk uji A/B) |
| send_time | string | * | Waktu pengiriman (hanya untuk kampanye reguler), format: YYYY-MM-DD HH:mm:ss |
| time_zone | integer | * | Zona waktu default, biasanya +8 |
| attachments | object[] | tidak | Lampiran email (maksimal 10 lampiran) |
| filename | string | tidak | Nama file lampiran, contoh: contoh.pdf |
| content | text | tidak | Konten lampiran yang telah dienkode base64 |
| ab_test | object | * | Parameter konfigurasi untuk uji A/B (hanya untuk uji A/B) |
| google_track | object | tidak | Parameter konfigurasi Google tracking |
| warm_up | object[] | tidak | Pengaturan warm-up (hanya untuk kampanye reguler) |
Contoh Permintaan:
curl -X PUT -H 'application/json; charset=utf-8' -H 'Authorization:Basic YXBpX3VzZXI6YXBpX2tleQ==' -i https://email.api.engagelab.cc/v1/marketing/campaigns/8 --data '{
"name":"11.11_leon_api8"
}'
Contoh Respons
Respons-Berhasil
HttpStatus: 200
{
"count": 1
}
Respons-Gagal
{
"code": 32110,
"message": "Kampanye saat ini telah dijalankan dan tidak dapat diubah"
}
Daftar Kampanye
URL
https://email.api.engagelab.cc/v1/marketing/campaigns
Metode HTTP Request
GET
Content-Type
application/x-www-form-urlencoded;charset=utf-8
Header Permintaan
| Header | Tipe | Wajib | Deskripsi |
|---|---|---|---|
| Authorization | string | ya | Basic base64(api_user:api_key) |
Parameter Query
| Parameter | Tipe | Wajib | Deskripsi |
|---|---|---|---|
| campaign_type | integer | tidak | Jenis kampanye: 1. Kampanye A/B, 2. kampanye reguler |
| status | integer | tidak | Status kampanye: 0. Menunggu, 1. Berjalan, 2. Selesai, -1. Gagal |
| name | string | tidak | Nama kampanye |
| limit | integer | tidak | Jumlah hasil yang diambil, rentang [1-100], default 10 |
| offset | integer | tidak | Posisi awal query, rentang [0-], default 0 |
Contoh Permintaan
curl -X GET -H 'Authorization:Basic YXBpX3VzZXI6YXBpX2tleQ==' -i https://email.api.engagelab.cc/v1/marketing/campaigns?&status=2
Contoh Respons
Respons-Berhasil
HttpStatus:200
{
"result": [
{
"campaign_id": 34007,
"campaign_type": 1,
"name": "testddd",
"to":[{
"type": "list",
"value": ["all"]
}],
"template_invoke_name": "leon2_shanshan",
"reply_to": "",
"status": 2,
"google_track": null,
"create_time": "2022-09-27T16:36:32+0800",
"update_time": "2022-10-12T00:00:00+0800",
"run_time": "2022-09-27T16:41:23+0800",
"complete_time": "2022-10-12T00:00:00+0800",
"time_zone": "+8",
"warm_up": [],
"sender_id": 21,
"from_email": "xjmfc23@legendnovel.com",
"from_name": "aaaa",
"ab_test": {
"percent": 20,
"win_condition": {
"time_unit": "hour",
"after_time": 18,
"compare": "open_percent"
},
"template_invoke_names": []
}
],
"total": 2
}
Respons-Gagal
{
"code": 30000,
"message": "Autentikasi gagal"
}
Detail Kampanye
URL
https://email.api.engagelab.cc/v1/marketing/campaigns/{campaign_id}
Metode HTTP Request
GET
Content-Type
application/x-www-form-urlencoded;charset=utf-8
Header Permintaan
| Header | Tipe | Wajib | Deskripsi |
|---|---|---|---|
| Authorization | string | ya | Basic base64(api_user:api_key) |
Contoh Permintaan
curl -X GET -H 'Authorization:Basic YXBpX3VzZXI6YXBpX2tleQ==' -i https://email.api.engagelab.cc/v1/marketing/campaigns/33761
Parameter Respons
| Parameter | Tipe | Deskripsi |
|---|---|---|
| name | string | Nama kampanye |
| to | object[] | Penerima, hanya mendukung array panjang 1 |
| campaign_id | integer | ID kampanye |
| campaign_type | integer | Jenis kampanye: 1 uji A/B, 2 reguler |
| template_invoke_name | string | Nama pemanggil template |
| reply_to | string | Alamat balasan |
| status | integer | Status kampanye (0: menunggu, 1: berjalan, 2: selesai, -1: gagal) |
| from_email | string | Alamat email pengirim |
| from_name | string | Nama pengirim |
| sender_id | integer | ID pengirim |
| create_time | string | Waktu pembuatan (UTC+8) |
| update_time | string | Waktu pembaruan (UTC+8) |
| run_time | string | Waktu pelaksanaan (UTC+8) |
| time_zone | integer | Zona waktu |
| complete_time | string | Waktu selesai (UTC+8) |
| google_track | object | Parameter Google Track |
| warm_up | array[object] | Parameter warm-up (hanya untuk kampanye reguler) |
| ab_test | object | Konfigurasi uji A/B |
Contoh Respons
Respons-Berhasil
HttpStatus: 200
{
"result": {
"campaign_id": 34007,
"campaign_type": 1,
"name": "testddd",
"to":[{
"type": "list",
"value": ["all"]
}],
"from_email": "xjmfc23@legendnovel.com",
"from_name": "aaaa",
"template_invoke_name": "leon2_shanshan",
"reply_to": "",
"status": 2,
"google_track": null,
"create_time": "2022-09-27T16:36:32+0800",
"update_time": "2022-10-12T00:00:00+0800",
"run_time": "2022-09-27T16:41:23+0800",
"complete_time": "2022-10-12T00:00:00+0800",
"time_zone": "+8",
"warm_up": null,
"sender_id": 21,
"ab_test": {
"percent": 20,
"win_condition": {
"time_unit": "hour",
"after_time": 18,
"compare": "open_percent"
},
"template_invoke_names": []
}
}
}
Respons-Gagal
{
"code": 30000,
"message": "Autentikasi gagal"
}










