# Teaser API

## Get List Teaser Management

<mark style="color:$success;">`GET`</mark> \[server] /dolphin/apiv1/graph/teaser

API ini digunakan untuk memperoleh daftar seluruh teaser yang tersedia.&#x20;

**Headers**

| Name          | Value              |
| ------------- | ------------------ |
| Content-Type  | `application/json` |
| Authorization | `Bearer <token>`   |

**Response**

{% tabs %}
{% tab title="200" %}

```json
{
  "status": "success",
  "data": [
    {
      "id": "[teaser_id]",
      "spell": [
        "[title]",
        "Saat ini terjadi kendala pembelian atau pendaftaran voucher internet. Kendala ini sedang dalam penanganan. Mohon ditunggu ya."
      ],
      "owner": "[system_id]",
      "createdDate": 1757412141056,
      "createdBy": "[user/system_id]",
      "modifiedDate": 1757412141056,
      "modifiedBy": "[user/system_id]",
      "partial": null,
      "category": "Alert",
      "title": "[title]",
      "description": "Saat ini terjadi kendala pembelian atau pendaftaran voucher internet. Kendala ini sedang dalam penanganan. Mohon ditunggu ya.",
      "channels": [
        "9f4b9d9764adc4541978abdca27fb38d"
      ],
      "status": "active",
      "pictureLink": "null",
      "picturePublicLink": null,
      "iconLink": null,
      "iconPublicLink": null,
      "publishedDateInfo": 1757412141056,
      "publishedDate": null,
      "publishedEndDate": null,
      "color": "#FDB934",
      "showDialog": false,
      "dialogMessage": null,
      "dialogTimeout": 0,
      "dialogTheme": null,
      "deleted": null,
      "name": "1",
      "popupBannerTimeout": 5
    }
  ]
}
```

{% endtab %}

{% tab title="401" %}

```json
{ 
  "status": 401, 
  "title": "Invalid token", 
  "message": "Last unit does not have enough valid bits", 
  "path": "/dolphin/apiv1/graph/teaser" 
}
```

{% endtab %}
{% endtabs %}

Berikut penjelasan mengenai field pada body response komponen:

<table><thead><tr><th width="293.44439697265625">Name</th><th>Description </th></tr></thead><tbody><tr><td>status</td><td>Menunjukkan hasil permintaan yang terdapat di dalam body request. </td></tr><tr><td>data</td><td>Menunjukkan daftar array data teaser.</td></tr><tr><td>id</td><td>Menunjukkan pengenal unik untuk setiap teaser.</td></tr><tr><td>spell</td><td>Judul dan isi teaser.</td></tr><tr><td>owner</td><td>ID pemilik yang membuat teaser.</td></tr><tr><td>createdDate</td><td>Waktu pembuatan dalam satuan milidetik.</td></tr><tr><td>createdBy</td><td>ID pengguna pembuat. </td></tr><tr><td>modifiedDate</td><td>Waktu terakhir diubah dalam satuan milidetik.</td></tr><tr><td>modifiedBy</td><td>ID pengguna dari orang terakhir yang mengubah template.</td></tr><tr><td>partial</td><td>Jika disetel ke true, artinya hanya field tertentu yang diperbarui, bukan seluruh data.</td></tr><tr><td>hash</td><td>Nilai unik yang berfungsi sebagai pengenal untuk memastikan bahwa data tetap tidak berubah.</td></tr><tr><td>category</td><td>Kategori teaser.</td></tr><tr><td>title</td><td>Mewakili header teaser yang akan ditampilkan.</td></tr><tr><td>description</td><td>Deskripsi teaser.<br><br><strong>Catatan:</strong><br>Maks. 350 karakter kata</td></tr><tr><td>channels</td><td>Daftar ID channel yang terkait dengan teaser. </td></tr><tr><td>status</td><td>Status teaser.</td></tr><tr><td>pictureLink</td><td><p>Link internal ke aset gambar.</p><p></p><p><strong>Catatan:</strong><br>Rasio gambar untuk pop-up banner adalah 5:2</p></td></tr><tr><td>picturePublicLink</td><td>URL publik untuk gambar.</td></tr><tr><td>iconLink</td><td>Link internal ke aset ikon.</td></tr><tr><td>iconPublicLink</td><td>URL publik untuk ikon. </td></tr><tr><td>publishDateInfo</td><td>Menunjukkan tanggal saat teaser diterbitkan.</td></tr><tr><td>publishedDate</td><td>Menunjukkan tanggal mulai ketika teaser akan diaktifkan. </td></tr><tr><td>publishedEndDate</td><td>Menunjukkan tanggal mulai ketika teaser akan dinonaktifkan.</td></tr><tr><td>color</td><td>Warna tema yang digunakan untuk tampilan teaser. </td></tr><tr><td>showDialog</td><td>Untuk menampilkan notifikasi pop-up ketika konsumen menutup teaser.</td></tr><tr><td>dialogMessage</td><td>Pesan yang ditampilkan di dialog (jika diaktifkan).</td></tr><tr><td>dialogTimeout</td><td>Durasi timeout untuk dialog.</td></tr><tr><td>dialogTheme</td><td>Warna tema yang digunakan untuk tampilan dialog teaser.</td></tr><tr><td>deleted</td><td>Menunjukkan apakah teaser ini sudah dihapus atau belum (penghapusan sementara dari antarmuka pengguna).</td></tr><tr><td>name</td><td>Ini merepresentasikan nama teaser yang berfungsi sebagai nama unik atau pengenal bagi teaser dalam sistem.</td></tr><tr><td>popupBannerTimeout</td><td>Menunjukkan durasi (dalam detik) yang menentukan berapa lama banner popup akan ditampilkan di layar sebelum pengguna menekan tombol ‘Lanjut Chat’ atau ‘End Chat’.</td></tr></tbody></table>

## Get Teaser Active

<mark style="color:$success;">`GET`</mark> \[server] /dolphin/apiv1/graph/teaser/active

API ini digunakan untuk memperoleh daftar teaser yang aktif berdasarkan kategori dan ID channel.

**Headers**

| Name          | Value              |
| ------------- | ------------------ |
| Content-Type  | `application/json` |
| Authorization | `Bearer <token>`   |

**Query Parameter**

| Name      | Type      | Description                                                                           |
| --------- | --------- | ------------------------------------------------------------------------------------- |
| category  | string    | Kolom ini digunakan untuk memfilter teaser aktif berdasarkan kategorinya.             |
| channelId | string ID | Kolom ini digunakan untuk memfilter teaser aktif berdasarkan channel yang ditentukan. |

**Response**

{% tabs %}
{% tab title="200" %}

```json
{
  "status": "success",
  "data": [
    {
      "id": "[teaser_id]",
      "spell": null,
      "owner": "[system_id]",
      "createdDate": 1694412868982,
      "createdBy": "[user/system_id]",
      "modifiedDate": null,
      "modifiedBy": "[user/system_id]",
      "partial": null,
      "category": "Alert",
      "title": "Gangguan Layanan Voice",
      "description": "<p>Saat ini sedang terjadi kendala pada layanan telepon. Mohon kesabarannya selama kendala ini dalam penanganan ya.</p>",
      "channels": null,
      "status": null,
      "pictureLink": null,
      "picturePublicLink": null,
      "iconLink": null,
      "iconPublicLink": null,
      "publishedDateInfo": null,
      "publishedDate": null,
      "publishedEndDate": null,
      "color": "#FF0000",
      "showDialog": false,
      "dialogMessage": null,
      "dialogTimeout": 0,
      "dialogTheme": null,
      "deleted": null,
      "name": "Teaser Alert 2",
      "popupBannerTimeout": 1
    }
  ]
}
```

{% endtab %}

{% tab title="401" %}

```json
{
  "status": 401, 
  "title": "Invalid token", 
  "message": "Last unit does not have enough valid bits", 
  "path": "/dolphin/apiv1/graph/teaser" 
}
```

{% endtab %}
{% endtabs %}

Berikut penjelasan mengenai field pada body response komponen:

<table><thead><tr><th width="293.44439697265625">Name</th><th>Description </th></tr></thead><tbody><tr><td>status</td><td>Menunjukkan hasil permintaan yang terdapat di dalam body request. </td></tr><tr><td>data</td><td>Menunjukkan daftar array data teaser.</td></tr><tr><td>id</td><td>Menunjukkan pengenal unik untuk setiap teaser.</td></tr><tr><td>spell</td><td>Judul dan isi teaser.</td></tr><tr><td>owner</td><td>ID pemilik yang membuat teaser.</td></tr><tr><td>createdDate</td><td>Waktu pembuatan dalam satuan milidetik.</td></tr><tr><td>createdBy</td><td>ID pengguna pembuat. </td></tr><tr><td>modifiedDate</td><td>Waktu terakhir diubah dalam satuan milidetik.</td></tr><tr><td>modifiedBy</td><td>ID pengguna dari orang terakhir yang mengubah template.</td></tr><tr><td>partial</td><td>Jika disetel ke true, artinya hanya field tertentu yang diperbarui, bukan seluruh data.</td></tr><tr><td>hash</td><td>Nilai unik yang berfungsi sebagai pengenal untuk memastikan bahwa data tetap tidak berubah.</td></tr><tr><td>category</td><td>Kategori teaser.</td></tr><tr><td>title</td><td>Mewakili header teaser yang akan ditampilkan.</td></tr><tr><td>description</td><td>Deskripsi teaser.<br><br><strong>Catatan:</strong> <br>Maks. 350 karakter kata</td></tr><tr><td>channels</td><td>Daftar ID channel yang terkait dengan teaser. </td></tr><tr><td>status</td><td>Status teaser.</td></tr><tr><td>pictureLink</td><td><p>Link internal ke aset gambar (jika ada).</p><p></p><p><strong>Catatan:</strong><br>Rasio gambar untuk pop-up banner adalah 5:2</p></td></tr><tr><td>picturePublicLink</td><td>URL publik untuk gambar (jika ada).</td></tr><tr><td>iconLink</td><td>Link internal ke aset ikon (jika ada).</td></tr><tr><td>iconPublicLink</td><td>URL publik untuk ikon (jika ada). </td></tr><tr><td>publishDateInfo</td><td>Menunjukkan tanggal saat teaser diterbitkan.</td></tr><tr><td>publishedDate</td><td>Menunjukkan tanggal mulai ketika teaser akan diaktifkan. </td></tr><tr><td>publishedEndDate</td><td>Menunjukkan tanggal mulai ketika teaser akan dinonaktifkan.</td></tr><tr><td>color</td><td>Warna tema yang digunakan untuk tampilan teaser. </td></tr><tr><td>showDialog</td><td>Untuk menampilkan notifikasi pop-up ketika konsumen menutup teaser.</td></tr><tr><td>dialogMessage</td><td>Pesan yang ditampilkan di dialog (jika diaktifkan).</td></tr><tr><td>dialogTimeout</td><td>Durasi timeout untuk dialog.</td></tr><tr><td>dialogTheme</td><td>Warna tema yang digunakan untuk tampilan dialog teaser.</td></tr><tr><td>deleted</td><td>Menunjukkan apakah teaser ini sudah dihapus atau belum (penghapusan sementara dari antarmuka pengguna).</td></tr><tr><td>name</td><td>Ini merepresentasikan nama teaser yang berfungsi sebagai nama unik atau pengenal bagi teaser dalam sistem.</td></tr><tr><td>popupBannerTimeout</td><td>Menunjukkan durasi (dalam detik) yang menentukan berapa lama banner popup akan ditampilkan di layar sebelum pengguna menekan tombol ‘Lanjut Chat’ atau ‘End Chat’.</td></tr></tbody></table>

## Get Teaser By ID

<mark style="color:$success;">`GET`</mark> \[server]/ dolphin/apiv1/graph/teaser/\[teaser\_id]

API ini digunakan untuk memperoleh teaser berdasarkan ID teaser.

**Headers**

| Name          | Value              |
| ------------- | ------------------ |
| Content-Type  | `application/json` |
| Authorization | `Bearer <token>`   |

**Query Parameter**

| Name     | Type      | Description                                                     |
| -------- | --------- | --------------------------------------------------------------- |
| teaserId | string ID | ID unik yang digunakan untuk merepresentasikan teaser tertentu. |

**Response**

{% tabs %}
{% tab title="200" %}

```json
{
  "status": "success",
  "data": {
    "id": "[teaser_id]",
    "spell": null,
    "owner": "[system_id]",
    "createdDate": 1757412141056,
    "createdBy": "[user/system_id]",
    "modifiedDate": 1757412141056,
    "modifiedBy": "[user/system_id]",
    "partial": null,
    "category": "Alert",
    "title": "[title]",
    "description": "Saat ini terjadi kendala pembelian atau pendaftaran voucher internet. Kendala ini sedang dalam penanganan. Mohon ditunggu ya.",
    "channels": [
      "9f4b9d9764adc4541978abdca27fb38d"
    ],
    "status": "active",
    "pictureLink": "null",
    "picturePublicLink": null,
    "iconLink": null,
    "iconPublicLink": null,
    "publishedDateInfo": 1757412141056,
    "publishedDate": null,
    "publishedEndDate": null,
    "color": "#FDB934",
    "showDialog": false,
    "dialogMessage": null,
    "dialogTimeout": 0,
    "dialogTheme": null,
    "deleted": null,
    "name": "1",
    "popupBannerTimeout": 5
    }
  }
}
```

{% endtab %}

{% tab title="401" %}

<pre class="language-json"><code class="lang-json">{ 
  "status": 401, 
<strong>  "title": "Invalid token", 
</strong>  "message": "Last unit does not have enough valid bits", 
  "path": "/dolphin/apiv1/graph/teaser/9617f02fcac3060d3be3ee79b4157827" 
} 
</code></pre>

{% endtab %}

{% tab title="404" %}

```json
{ 
  "status": "error", 
  "data": null, 
  "message": "Teaser not found" 
}
```

{% endtab %}
{% endtabs %}

Berikut penjelasan mengenai field pada body response komponen:

<table><thead><tr><th width="293.44439697265625">Name</th><th>Description </th></tr></thead><tbody><tr><td>status</td><td>Menunjukkan hasil permintaan yang terdapat di dalam body request. </td></tr><tr><td>data</td><td>Menunjukkan daftar array data teaser.</td></tr><tr><td>id</td><td>Menunjukkan pengenal unik untuk setiap teaser.</td></tr><tr><td>spell</td><td>Judul dan isi teaser.</td></tr><tr><td>owner</td><td>ID pemilik yang membuat teaser.</td></tr><tr><td>createdDate</td><td>Waktu pembuatan dalam satuan milidetik.</td></tr><tr><td>createdBy</td><td>ID pengguna pembuat. </td></tr><tr><td>modifiedDate</td><td>Waktu terakhir diubah dalam satuan milidetik.</td></tr><tr><td>modifiedBy</td><td>ID pengguna dari orang terakhir yang mengubah template.</td></tr><tr><td>partial</td><td>Jika disetel ke true, artinya hanya field tertentu yang diperbarui, bukan seluruh data.</td></tr><tr><td>hash</td><td>Nilai unik yang berfungsi sebagai pengenal untuk memastikan bahwa data tetap tidak berubah.</td></tr><tr><td>category</td><td>Kategori teaser.</td></tr><tr><td>title</td><td>Mewakili header teaser yang akan ditampilkan.</td></tr><tr><td>description</td><td>Deskripsi teaser.<br><br><strong>Catatan:</strong><br>Maks. 350 karakter kata</td></tr><tr><td>channels</td><td>Daftar ID channel yang terkait dengan teaser. </td></tr><tr><td>status</td><td>Status teaser.</td></tr><tr><td>pictureLink</td><td><p>Link internal ke aset gambar .</p><p></p><p><strong>Catatan:</strong><br>Rasio gambar untuk pop-up banner adalah 5:2</p></td></tr><tr><td>picturePublicLink</td><td>URL publik untuk gambar.</td></tr><tr><td>iconLink</td><td>Link internal ke aset ikon.</td></tr><tr><td>iconPublicLink</td><td>URL publik untuk ikon. </td></tr><tr><td>publishDateInfo</td><td>Menunjukkan tanggal saat teaser diterbitkan.</td></tr><tr><td>publishedDate</td><td>Menunjukkan tanggal mulai ketika teaser akan diaktifkan. </td></tr><tr><td>publishedEndDate</td><td>Menunjukkan tanggal mulai ketika teaser akan dinonaktifkan.</td></tr><tr><td>color</td><td>Warna tema yang digunakan untuk tampilan teaser. </td></tr><tr><td>showDialog</td><td>Untuk menampilkan notifikasi pop-up ketika konsumen menutup teaser.</td></tr><tr><td>dialogMessage</td><td>Pesan yang ditampilkan di dialog (jika diaktifkan).</td></tr><tr><td>dialogTimeout</td><td>Durasi timeout untuk dialog.</td></tr><tr><td>dialogTheme</td><td>Warna tema yang digunakan untuk tampilan dialog teaser.</td></tr><tr><td>deleted</td><td>Menunjukkan apakah teaser ini sudah dihapus atau belum (penghapusan sementara dari antarmuka pengguna).</td></tr><tr><td>name</td><td>Ini merepresentasikan nama teaser yang berfungsi sebagai nama unik atau pengenal bagi teaser dalam sistem.</td></tr><tr><td>popupBannerTimeout</td><td>Menunjukkan durasi (dalam detik) yang menentukan berapa lama banner popup akan ditampilkan di layar sebelum pengguna menekan tombol ‘Lanjut Chat’ atau ‘End Chat’.</td></tr></tbody></table>

## Add Teaser Management

<mark style="color:$success;">`POST`</mark> \[server]/ dolphin/apiv1/graph/teaser/add

API ini digunakan untuk menambahkan atau membuat teaser baru.&#x20;

**Headers**

| Name          | Value              |
| ------------- | ------------------ |
| Content-Type  | `application/json` |
| Authorization | `Bearer <token>`   |

**Body**

```json
{
  "category": "string",
  "channels": "string",
  "color": "string",
  "deleted": true,
  "description": "string",
  "dialogMessage": "string",
  "dialogTheme": "string",
  "dialogTimeout": 0,
  "iconLink": "string",
  "name": "string",
  "pictureLink": "string",
  "popupBannerTimeout": 0,
  "publishedDate": "string",
  "publishedDateInfo": "string",
  "publishedEndDate": "string",
  "showDialog": true,
  "status": "string",
  "title": "string"
}
```

Berikut penjelasan mengenai field pada body request komponen:

<table><thead><tr><th width="222">Name</th><th width="204">Type</th><th>Description</th></tr></thead><tbody><tr><td>category</td><td>enum</td><td>Masukkan kategori teaser. </td></tr><tr><td>channels </td><td>Array of String</td><td>Masukkan ID channel yang akan ditautkan dengan teaser.</td></tr><tr><td>color</td><td>string</td><td>Tema warna yang digunakan pada tampilan teaser. </td></tr><tr><td>description</td><td>string</td><td>Masukkan deskripsi teaser. <br><br><strong>Catatan:</strong><br>Maks. 350 karakter kata </td></tr><tr><td>dialogMessage</td><td>string</td><td>Masukkan pesan yang ditampilkan pada dialog. <br><br><strong>Note:</strong> Jika field show dialog bernilai true.</td></tr><tr><td>dialogTheme</td><td>string</td><td>Warna tema yang digunakan pada tampilan  dialog pesan. <br><br><strong>Note:</strong> Jika field showDialog bernilai true. </td></tr><tr><td>dialogTimeout</td><td>integer</td><td>Durasi timeout untuk  dialog pesan. </td></tr><tr><td>name</td><td>string</td><td>Nama teaser yang berfungsi sebagai nama unik atau sebagai identifier untuk setiap teaser di dalam sistem. </td></tr><tr><td>pictureLink</td><td>string/null</td><td><p>Link internal ke aset gambar .</p><p></p><p><strong>Catatan:</strong><br>Rasio gambar untuk pop-up banner adalah 5:2</p></td></tr><tr><td>popupBannerTimeout</td><td>integer</td><td>Menunjukkan durasi (dalam detik) yang menentukan berapa lama banner popup akan ditampilkan di layar sebelum pengguna menekan tombol ‘Lanjut Chat’ atau ‘End Chat’.</td></tr><tr><td>publishedDate</td><td>integer</td><td>Menunjukkan tanggal mulai ketika teaser akan diaktifkan. </td></tr><tr><td>publishedDateInfo</td><td>integer</td><td>Menunjukkan tanggal saat teaser diterbitkan</td></tr><tr><td>publishedEndDate</td><td>integer</td><td>Menunjukkan tanggal mulai ketika teaser akan dinonaktifkan.</td></tr><tr><td>showDialog</td><td>boolean</td><td>Untuk menampilkan notifikasi pop-up ketika konsumen menutup teaser.</td></tr><tr><td>status</td><td>string</td><td>Status teaser.</td></tr><tr><td>title</td><td>string</td><td>Mewakili header teaser yang akan ditampilkan.</td></tr></tbody></table>

**Response**

{% tabs %}
{% tab title="200" %}

```json
{
  "status": "success",
  "data": {
    "id": "[teaser_id]",
    "spell": null,
    "owner": "[system_id]",
    "createdDate": 1757412141056,
    "createdBy": "[user/system_id]",
    "modifiedDate": 1757412141056,
    "modifiedBy": "[user/system_id]",
    "partial": null,
    "category": "Alert",
    "title": "info gangguan terkini",
    "description": "Maaf sedang terjadi gangguan",
    "channels": [
      "9f4b9d9764adc4541978abdca27fb38d"
    ],
    "status": "active",
    "pictureLink": "null",
    "picturePublicLink": null,
    "iconLink": null,
    "iconPublicLink": null,
    "publishedDateInfo": 1757412141056,
    "publishedDate": null,
    "publishedEndDate": null,
    "color": "#FFFF00",
    "showDialog": true,
    "dialogMessage": "Terima kasih sudah menghubungi kami",
    "dialogTimeout": 3,
    "dialogTheme": "#00DAA5",
    "deleted": null,
    "name": "gangguan 24 jam",
    "popupBannerTimeout": 0
  }
}
```

{% endtab %}

{% tab title="401" %}

```json
{ 
  "status": 401, 
  "title" : "invalid token",
  "message" : "Expected a ',' or '}' at 27 [character 28 line 1]",
  "path": "/dolphin/apiv1/graph/teaser/add"
} 
```

{% endtab %}

{% tab title="404" %}

```json
{ 
  "status": "error", 
  "data": null, 
  "message": "Only one field attachment can be filled at a time." 
}
```

{% endtab %}
{% endtabs %}

Berikut penjelasan mengenai field pada body response komponen:

<table><thead><tr><th width="293.44439697265625">Name</th><th>Description </th></tr></thead><tbody><tr><td>status</td><td>Menunjukkan hasil permintaan yang terdapat di dalam body request. </td></tr><tr><td>data</td><td>Menunjukkan daftar array data teaser.</td></tr><tr><td>id</td><td>Menunjukkan pengenal unik untuk setiap teaser.</td></tr><tr><td>spell</td><td>Judul dan isi teaser.</td></tr><tr><td>owner</td><td>ID pemilik yang membuat teaser.</td></tr><tr><td>createdDate</td><td>Waktu pembuatan dalam satuan milidetik.</td></tr><tr><td>createdBy</td><td>ID pengguna pembuat. </td></tr><tr><td>modifiedDate</td><td>Waktu terakhir diubah dalam satuan milidetik.</td></tr><tr><td>modifiedBy</td><td>ID pengguna dari orang terakhir yang mengubah template.</td></tr><tr><td>partial</td><td>Jika disetel ke true, artinya hanya field tertentu yang diperbarui, bukan seluruh data.</td></tr><tr><td>hash</td><td>Nilai unik yang berfungsi sebagai pengenal untuk memastikan bahwa data tetap tidak berubah.</td></tr><tr><td>category</td><td>Kategori teaser.</td></tr><tr><td>title</td><td>Mewakili header teaser yang akan ditampilkan.</td></tr><tr><td>description</td><td>Deskripsi teaser.<br><br><strong>Catatan:</strong><br>Maks. 350 karakter kata.</td></tr><tr><td>channels</td><td>Daftar ID channel yang terkait dengan teaser. </td></tr><tr><td>status</td><td>Status teaser.</td></tr><tr><td>pictureLink</td><td><p>Link internal ke aset gambar .</p><p></p><p><strong>Catatan:</strong><br>Rasio gambar untuk pop-up banner adalah 5:2</p></td></tr><tr><td>picturePublicLink</td><td>URL publik untuk gambar.</td></tr><tr><td>iconLink</td><td>Link internal ke aset ikon.</td></tr><tr><td>iconPublicLink</td><td>URL publik untuk ikon. </td></tr><tr><td>publishDateInfo</td><td>Menunjukkan tanggal saat teaser diterbitkan.</td></tr><tr><td>publishedDate</td><td>Menunjukkan tanggal mulai ketika teaser akan diaktifkan. </td></tr><tr><td>publishedEndDate</td><td>Menunjukkan tanggal mulai ketika teaser akan dinonaktifkan.</td></tr><tr><td>color</td><td>Warna tema yang digunakan untuk tampilan teaser. </td></tr><tr><td>showDialog</td><td>Untuk menampilkan notifikasi pop-up ketika konsumen menutup teaser.</td></tr><tr><td>dialogMessage</td><td>Pesan yang ditampilkan di dialog (jika diaktifkan).</td></tr><tr><td>dialogTimeout</td><td>Durasi timeout untuk dialog.</td></tr><tr><td>dialogTheme</td><td>Warna tema yang digunakan untuk tampilan dialog teaser.</td></tr><tr><td>deleted</td><td>Menunjukkan apakah teaser ini sudah dihapus atau belum (penghapusan sementara dari antarmuka pengguna).</td></tr><tr><td>name</td><td>Ini merepresentasikan nama teaser yang berfungsi sebagai nama unik atau pengenal bagi teaser dalam sistem.</td></tr><tr><td>popupBannerTimeout</td><td>Menunjukkan durasi (dalam detik) yang menentukan berapa lama banner popup akan ditampilkan di layar sebelum pengguna menekan tombol ‘Lanjut Chat’ atau ‘End Chat’.</td></tr></tbody></table>

## Edit Teaser Management

<mark style="color:$success;">`PUT`</mark> \[server]/ dolphin/apiv1/graph/teaser/edit/\[teaser\_id]

API ini digunakan untuk mengedit manajemen teaser yang sudah ada. API ini juga mendukung pengaktifan dan penonaktifan teaser yang telah tersedia. Dalam request body, Anda dapat mengedit field tertentu sesuai kebutuhan.

**Headers**

| Name          | Value              |
| ------------- | ------------------ |
| Content-Type  | `application/json` |
| Authorization | `Bearer <token>`   |

**Query Parameter**

<table><thead><tr><th width="199">Name</th><th width="155">Type</th><th>Description</th></tr></thead><tbody><tr><td>teaserId</td><td>string</td><td>Pengenal unik dalam bentuk string yang digunakan untuk merepresentasikan entitas teaser tertentu dalam sistem.</td></tr></tbody></table>

**Body**&#x20;

```json
{
  "category": "string",
  "channels": "string",
  "color": "string",
  "deleted": true,
  "description": "string",
  "dialogMessage": "string",
  "dialogTheme": "string",
  "dialogTimeout": 0,
  "iconLink": "string",
  "name": "string",
  "pictureLink": "string",
  "popupBannerTimeout": 0,
  "publishedDate": "string",
  "publishedDateInfo": "string",
  "publishedEndDate": "string",
  "showDialog": true,
  "status": "string",
  "title": "string"
}
```

Berikut penjelasan mengenai field pada body request komponen:

<table><thead><tr><th width="225.33331298828125">Name</th><th width="184.8333740234375">Type</th><th>Description</th></tr></thead><tbody><tr><td>category</td><td>string</td><td>Permintaan untuk memperbarui kategori teaser berdasarkan teaserId. </td></tr><tr><td>channel</td><td>Array of string</td><td>Permintaan untuk memperbarui  channel teaser berdasarkan teaserId. </td></tr><tr><td>color</td><td>string</td><td>Permintaan untuk memperbarui  warna utama teaser berdasarkan teaserId.</td></tr><tr><td>deleted</td><td>Boolean/null</td><td>Menunjukkan apakah teaser ini sudah dihapus atau belum.</td></tr><tr><td>description</td><td>string</td><td>Permintaan untuk memperbarui  deskripsi teaser berdasarkan teaserId. <br><br><strong>Catatan:</strong><br>Maks. 350 karakter kata</td></tr><tr><td>dialogMessage</td><td>string</td><td>Permintaan untuk memperbarui  pesan dialog yang ditampilkan dalam teaser berdasarkan teaserId. </td></tr><tr><td>dialogTheme</td><td>string</td><td>Permintaan untuk memperbarui  tema dialog pada teaser. </td></tr><tr><td>dialogTimeout</td><td>integer</td><td>Permintaan untuk memperbarui  durasi dialog (dalam hitungan detik) berdasarkan teaserId.</td></tr><tr><td>iconLink</td><td>string/null</td><td>Permintaan untuk memperbarui  ikon teaser (URL) berdasarkan teaserId.</td></tr><tr><td>name</td><td>string</td><td>Permintaan untuk memperbarui  nama teaser berdasarkan teaserId yang berfungsi sebagai nama unik atau pengenal bagi teaser dalam sistem.</td></tr><tr><td>pictureLink</td><td>string/null</td><td>Permintaan untuk memperbarui  gambar teaser (URL) berdasarkan teaserId.<br><br><strong>Note:</strong><br>Rasio gambar pada banner pop-up adalah 5:2.</td></tr><tr><td>popupBannerTimeout</td><td>integer</td><td>Permintaan untuk memperbarui  durasi banner pop-up (dalam detik) berdasarkan teaserId.</td></tr><tr><td>publishedDate</td><td>integer</td><td>Permintaan untuk memperbarui  tanggal mulai publikasi teaser berdasarkan teaserId.</td></tr><tr><td>publishedDateInfo</td><td>integer</td><td>Menunjukkan tanggal ketika teaser dipublikasikan.</td></tr><tr><td>publishedEndDate</td><td>integer</td><td>Permintaan untuk memperbarui  tanggal berakhir publikasi teaser berdasarkan teaserId.</td></tr><tr><td>showDialog</td><td>Boolean</td><td>Permintaan untuk memperbarui  status apakah teaser ditampilkan sebagai dialog pop-up berdasarkan teaserId.</td></tr><tr><td>status</td><td>string</td><td>Permintaan untuk memperbarui status teaser berdasarkan teaserId.</td></tr><tr><td>title</td><td>string</td><td>Permintaan untuk memperbarui header teaser berdasarkan teaserId yang akan ditampilkan.</td></tr></tbody></table>

**Response**

{% tabs %}
{% tab title="200" %}

```json
{
  "status": "success",
  "data": {
      "id": "[teaser_id]",
      "spell": [
        "Pemberitahuan Gangguan Jaringan",
        "<p>Gangguan jaringan sementara di wilayah Anda. Tim kami sedang bekerja memperbaiki.</p>"
      ],
      "owner": "[system_id]",
      "createdDate": 1755599593771,
      "createdBy": "[user/system_id]",
      "modifiedDate": 1755668189488,
      "modifiedBy": "[user/system_id]",
      "partial": null,
      "category": "Alert",
      "title": "Pemberitahuan Gangguan Jaringan",
      "description": "<p>Gangguan jaringan sementara di wilayah Anda. Tim kami sedang bekerja memperbaiki.</p>",
      "channels": [
        "f592b319b4b8dd2aa221cfba3c8f84c2"
      ],
      "status": "active",
      "pictureLink": "{\"fileName\":\"teaser_1755599545667_Alert.png\",\"fileSize\":\"1005Kb\",\"fileType\":\"image/png\",\"fileLink\":\"https://minioxldev.3dolphins.ai:9000/teaser/teaser_1755599545667_Alert.png?X-Amz-Algorithm\\u003dAWS4-HMAC-SHA256\\u0026X-Amz-Credential\\u003dFAKCZ3B3ZP1WJ4G0I6BP%2F20250819%2Fus-east-1%2Fs3%2Faws4_request\\u0026X-Amz-Date\\u003d20250819T103225Z\\u0026X-Amz-Expires\\u003d604800\\u0026X-Amz-SignedHeaders\\u003dhost\\u0026X-Amz-Signature\\u003d7f815035f278e62ab8bb8ae4ba358f98cf0d60fae62d1ce717bc2834726e4224\",\"bucketName\":\"teaser\"}",
      "picturePublicLink": null,
      "iconLink": null,
      "iconPublicLink": null,
      "publishedDateInfo": 1755599593771,
      "publishedDate": null,
      "publishedEndDate": null,
      "color": "#03A6FF",
      "showDialog": false,
      "dialogMessage": "",
      "dialogTimeout": 0,
      "dialogTheme": "",
      "deleted": null,
      "name": "Teaser Alert 1",
      "popupBannerTimeout": 3
    }
}
```

{% endtab %}

{% tab title="401" %}

```json
{
  "status": 401, 
  "title": "Invalid token", 
  "message": "Expected a ':' after a key at 14 [character 15 line 1]", 
  "path": "/dolphin/apiv1/graph/teaser/edit/9617f02fcac3060d3be3ee79b4157827" 
}
```

{% endtab %}

{% tab title="404" %}

```json
{ 
    "status": "error", 
    "data": null, 
    "message": "Popup banner timeout must not be empty" 
}
```

{% endtab %}
{% endtabs %}

Berikut penjelasan mengenai field pada body response komponen:

<table><thead><tr><th width="293.44439697265625">Name</th><th>Description </th></tr></thead><tbody><tr><td>status</td><td>Menunjukkan hasil permintaan yang terdapat di dalam body request. </td></tr><tr><td>data</td><td>Menunjukkan daftar array data teaser.</td></tr><tr><td>id</td><td>Menunjukkan pengenal unik untuk setiap teaser.</td></tr><tr><td>spell</td><td>Judul dan isi teaser.</td></tr><tr><td>owner</td><td>ID pemilik yang membuat teaser.</td></tr><tr><td>createdDate</td><td>Waktu pembuatan dalam satuan milidetik.</td></tr><tr><td>createdBy</td><td>ID pengguna pembuat. </td></tr><tr><td>modifiedDate</td><td>Waktu terakhir diubah dalam satuan milidetik.</td></tr><tr><td>modifiedBy</td><td>ID pengguna dari orang terakhir yang mengubah template.</td></tr><tr><td>partial</td><td>Jika disetel ke true, artinya hanya field tertentu yang diperbarui, bukan seluruh data.</td></tr><tr><td>hash</td><td>Nilai unik yang berfungsi sebagai pengenal untuk memastikan bahwa data tetap tidak berubah.</td></tr><tr><td>category</td><td>Kategori teaser.</td></tr><tr><td>title</td><td>Mewakili header teaser yang akan ditampilkan.</td></tr><tr><td>description</td><td>Deskripsi teaser.<br><br><strong>Catatan:</strong><br>Maks. 350 karakter kata</td></tr><tr><td>channels</td><td>Daftar ID channel yang terkait dengan teaser. </td></tr><tr><td>status</td><td>Status teaser.</td></tr><tr><td>pictureLink</td><td><p>Link internal ke aset gambar .</p><p></p><p><strong>Catatan:</strong><br>Rasio gambar untuk pop-up banner adalah 5:2</p></td></tr><tr><td>picturePublicLink</td><td>URL publik untuk gambar.</td></tr><tr><td>iconLink</td><td>Link internal ke aset ikon.</td></tr><tr><td>iconPublicLink</td><td>URL publik untuk ikon. </td></tr><tr><td>publishDateInfo</td><td>Menunjukkan tanggal saat teaser diterbitkan.</td></tr><tr><td>publishedDate</td><td>Menunjukkan tanggal mulai ketika teaser akan diaktifkan. </td></tr><tr><td>publishedEndDate</td><td>Menunjukkan tanggal mulai ketika teaser akan dinonaktifkan.</td></tr><tr><td>color</td><td>Warna tema yang digunakan untuk tampilan teaser. </td></tr><tr><td>showDialog</td><td>Untuk menampilkan notifikasi pop-up ketika konsumen menutup teaser.</td></tr><tr><td>dialogMessage</td><td>Pesan yang ditampilkan di dialog (jika diaktifkan).</td></tr><tr><td>dialogTimeout</td><td>Durasi timeout untuk dialog.</td></tr><tr><td>dialogTheme</td><td>Warna tema yang digunakan untuk tampilan dialog teaser.</td></tr><tr><td>deleted</td><td>Menunjukkan apakah teaser ini sudah dihapus atau belum (penghapusan sementara dari antarmuka pengguna).</td></tr><tr><td>name</td><td>Ini merepresentasikan nama teaser yang berfungsi sebagai nama unik atau pengenal bagi teaser dalam sistem.</td></tr><tr><td>popupBannerTimeout</td><td>Menunjukkan durasi (dalam detik) yang menentukan berapa lama banner popup akan ditampilkan di layar sebelum pengguna menekan tombol ‘Lanjut Chat’ atau ‘End Chat’.</td></tr></tbody></table>

## Delete Teaser

<mark style="color:$success;">`DELETE`</mark> \[server]/ dolphin/apiv1/graph/teaser/delete/\[teaser\_id]

API ini digunakan untuk menghapus teaser yang telah dibuat sebelumnya.

**Headers**

| Name          | Value              |
| ------------- | ------------------ |
| Content-Type  | `application/json` |
| Authorization | `Bearer <token>`   |

**Query Parameter**

| Name     | Type   | Description                                                                                                    |
| -------- | ------ | -------------------------------------------------------------------------------------------------------------- |
| teaserId | string | Pengenal unik dalam bentuk string yang digunakan untuk merepresentasikan entitas teaser tertentu dalam sistem. |

**Response**

{% tabs %}
{% tab title="200" %}

```json
 {
  "status": "success",
  "data": "Delete Success"
}
```

{% endtab %}

{% tab title="401" %}

```json
{ 
  "status": 401, 
  "title": "Invalid token", 
  "message": "Illegal escape. at 17 [character 18 line 1]", 
  "path": "/dolphin/apiv1/graph/teaser/delete/e848dd78319f2542751d6316552b532a" 
}
```

{% endtab %}

{% tab title="404" %}

```json
{ 
  "status": "error", 
  "data": null, 
  "message": "not found" 
} 
```

{% endtab %}
{% endtabs %}

Berikut penjelasan mengenai field pada body response komponen:

| Name   | Description                                             |
| ------ | ------------------------------------------------------- |
| status | Menunjukkan hasil dari permintaan di dalam requst body. |
| data   | Menunjukkan keterangan status delete berhasil.          |
