> ## Documentation Index
> Fetch the complete documentation index at: https://help.dingtalk.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Panduan developer aplikasi SaaS

> Panduan lengkap membangun aplikasi SaaS low-code dengan DingTalk (YiDA) Cool SaaS Factory — mulai dari prasyarat, akses workbench, desain aplikasi utama & Cool App, hingga rilis dan publikasi.

📎627 Panduan developer aplikasi DingTalk (YiDA) Cool SaaS Factory.pdf

## 1 Proses menyeluruh pengembangan aplikasi SaaS low-code

Lihat Panduan proses kemitraan - Open Platform.

### 1.1 Prasyarat

<Steps>
  <Step title="Langkah 1">
    Ajukan kualifikasi sebagai penyedia layanan produk DingTalk.
  </Step>

  <Step title="Langkah 2">
    Pelajari seluruh isi [Pusat Bantuan ISV DingTalk Open Platform](https://alidocs.dingtalk.com/i/p/KrwmPQ5g4OEAG79n/docs/3KLw95QMzkb8gGOpYEk78AjrymPeEN2q?dontjump=true).
  </Step>

  <Step title="Langkah 3">
    Aplikasi SaaS harus berbentuk Cool App. Untuk panduan konversi aplikasi Anda, lihat [Panduan desain Cool App low-code untuk DingTalk](https://alidocs.dingtalk.com/i/p/Y7kmbokZp3pgGLq2/docs/7Y36k14mK9AV35vAPyg185NqapjblR2D).
  </Step>
</Steps>

### 1.2 Cara mengakses workbench pengembangan SaaS

Setelah Organisasi Anda memperoleh verifikasi penyedia solusi produk, masuk ke YiDA. Titik masuk "Enter SaaS development workbench" akan muncul di menu atas untuk akses langsung.

Di workbench aplikasi SaaS, Anda dapat membuat aplikasi SaaS.

### 1.3 Kapabilitas platform aPaaS yang didukung

Workbench pengembangan DingTalk SaaS Factory mengikuti model interaksi YiDA yang sudah ada. Rilis ini menyediakan kapabilitas inti berikut:

* Kapabilitas platform:

Catatan: Peningkatan lanjutan seperti Konektor kustom, persiapan data, dasbor DataV, dan komponen kustom belum didukung. Fitur-fitur tersebut akan ditambahkan pada iterasi mendatang.

## 2 Desain aplikasi utama

> Setelah prasyarat terpenuhi, Anda dapat mulai membangun aplikasi SaaS. Jika Anda sudah memiliki solusi lengkap di bawah Organisasi YiDA lain dan ingin mengalihkannya langsung ke mode SaaS, hubungi tim produk dan engineering YiDA untuk meminta migrasi ke lingkungan SaaS.

1. Dengan workbench pengembangan SaaS dan kapabilitas yang saat ini disediakan platform, rancang aplikasi Anda sesuai kebutuhan bisnis, contohnya:

Alur pengembangan untuk kapabilitas di atas konsisten dengan pengembangan aplikasi internal YiDA. Hubungi tim YiDA jika Anda menemui kendala.

2. Jika produk SaaS Anda memiliki data bisnis dasar terkait dan Anda ingin pelanggan yang berlangganan melihat data contoh, masukkan "data dasar" ini dan kelola dalam satu Folder bernama "Data bisnis dasar" (lihat contoh di bawah).

## 3 Desain Cool App

Dengan workbench pengembangan SaaS, Anda dapat mengonfigurasi gaya kartu Cool App serta logika pengiriman dan pembaruan kartu di lapisan aplikasi: Manajemen Kartu / alur Integrasi & Otomatisasi. Lihat dokumen berikut untuk panduan desain terperinci:

## 4 Rilis aplikasi

<Steps>
  <Step title="Langkah 1">
    Setelah aplikasi utama dan Cool App selesai dibangun, buka layar "Release & publish" dan buat Versi baru untuk pengujian fungsional aplikasi SaaS. Setelah pengujian berhasil, kirim aplikasi untuk publikasi.
  </Step>

  <Step title="Klik Buat Versi dan isi informasi Versi aplikasi SaaS, termasuk nomor Versi dan Catatan Rilis." />
</Steps>

### 4.1 Manajemen Versi aplikasi

* Setiap kali fungsionalitas aplikasi berubah, Anda dapat membuat Versi baru. Versi baru berstatus default "Belum dipublikasikan". Klik Publikasikan untuk merilis Versi.

### 4.2 Permintaan publikasi aplikasi — tautkan Aplikasi pihak ketiga

#### Langkah 1: Tautkan Aplikasi pihak ketiga

| **Workbench pengembangan SaaS**                                                                                                                                                                                           | **DingTalk Open Platform > Aplikasi perusahaan pihak ketiga**                                                                                                   |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 1. Setelah membuat minimal satu Versi aplikasi, kirim permintaan publikasi di bawah "Publish to DingTalk App Center."<br />2. Pilih Aplikasi pihak ketiga yang telah Anda daftarkan di Open Platform dan tautkan di sini. | 1. Di DingTalk Open Platform, pada Aplikasi perusahaan pihak ketiga, buat Aplikasi mikro H5 dan isi informasi dasar aplikasi.<br />2. Buat Kredensial aplikasi. |

#### Langkah 2: Isi informasi pengembangan aplikasi SaaS

Salin URL aplikasi SaaS dan konfigurasikan informasi aplikasi.

| **Workbench pengembangan SaaS**                                                                                             | **DingTalk Open Platform > Aplikasi perusahaan pihak ketiga**                                                                                            |
| --------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 1. Setelah menyelesaikan Langkah 1, klik Salin dan tempelkan tautan di Open Platform, seperti ditunjukkan di sebelah kanan. | 1. Di DingTalk Open Platform, pada Aplikasi perusahaan pihak ketiga, pilih Aplikasi pihak ketiga yang terdaftar, klik "Development Management," dan isi: |

#### Langkah 3: Verifikasi item konfigurasi aplikasi SaaS

##### (1) Konfirmasi informasi pengembangan aplikasi

1. Di DingTalk Open Platform, pada Aplikasi perusahaan pihak ketiga, pilih Aplikasi pihak ketiga yang terdaftar dan pastikan semua item konfigurasi fungsional telah lengkap. Lengkapi item yang masih kurang.

##### (2) Kelola izin

Untuk melindungi data produk SaaS, aplikasi harus mengonfirmasi Cakupan izin dengan pengguna saat aktivasi. ISV wajib mengonfigurasi Cakupan izin yang diperlukan secara mandiri.

1. Pilih menu "Kelola izin". Produk SaaS Standar harus memilih izin berikut, lalu klik "Batch apply."

| **Kategori izin** | **Cakupan izin**                                                                                                                                                               |
| ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Kartu             | Akses tulis ke instance Kartu interaktif                                                                                                                                       |
| Izin pribadi      | Akses baca ke Profil Kontak                                                                                                                                                    |
| Manajemen Kontak  | Akses baca ke informasi Departemen Kontak<br />Akses baca ke pengguna Departemen Kontak<br />Akses untuk kueri informasi Kontak industri<br />Akses baca ke informasi pengguna |
| Tugas To-Do       | Akses tulis ke item To-Do di aplikasi To-Do<br />Akses baca ke item To-Do di aplikasi To-Do                                                                                    |
| Otorisasi App     | Izin yang diperlukan untuk memanggil API eksklusif ISV                                                                                                                         |
| Autentikasi       | Akses ke API Login senyap untuk backend Aplikasi mikro perusahaan                                                                                                              |
| Grup skenario     | Akses manajemen ke API terkait chat<br />Akses baca ke API terkait chat                                                                                                        |
| YiDA              | **Pilih semua**                                                                                                                                                                |
| Bot               | Izin bagi bot internal untuk mengirim pesan di dalam Organisasi Anda                                                                                                           |
| Penyimpanan       | Akses baca ke Ruang penyimpanan organisasi<br />Akses tulis ke File penyimpanan organisasi<br />Akses baca ke File penyimpanan organisasi                                      |

(Gambar 1: Layar konfigurasi izin)

(Gambar 2: Layar pemberitahuan Berikan izin)

2. Jika produk SaaS Anda menggunakan Konektor "DingTalk Official" di bawah "Integrasi & Otomatisasi > node Konektor," hubungi tim YiDA untuk mengonfirmasi izin Konektor first-party yang perlu Anda pilih.

Pemetaan sebagian antara Konektor dan izin:

| **Konektor**       | **Kategori izin**  | **Cakupan izin**                             |
| ------------------ | ------------------ | -------------------------------------------- |
| Ruang rapat pintar | Ruang rapat pintar | Akses tulis ke rapat di aplikasi Rapat Video |
| Manajemen proyek   | Manajemen proyek   | Akses tulis ke tugas di aplikasi Proyek      |

#### Langkah 4: Permintaan mandiri untuk melewati pemeriksaan Keamanan otomatis

1. Untuk melewati pemeriksaan otomatis, konfigurasikan "Events & callbacks" sebagai berikut:

**Langkah 1**: Untuk enkripsi Aes\_key, enkripsikan **systemToken** YiDA dengan metode **decrypt** di bawah dan atur hasilnya.

```text theme={"theme":{"light":"github-light","dark":"github-dark"}}
private static final char[] HEX_ARRAY = "0123456789abcdef".toCharArray();

public static String bytesToHex(byte[] bytes) {
        char[] hexChars = new char[bytes.length * 2];
        for (int i = 0; i < bytes.length; i++) {
            int v = bytes[i] & 0xFF;
            hexChars[i * 2] = HEX_ARRAY[v >>> 4];
            hexChars[i * 2 + 1] = HEX_ARRAY[v & 0x0F];
        }
        return new String(hexChars);
    }

private static String decrypt(String input) throws NoSuchAlgorithmException {
        MessageDigest digest = MessageDigest.getInstance("SHA-256");
        byte[] hash = digest.digest(input.getBytes(StandardCharsets.UTF_8));
        // Konversi hash menjadi string terenkripsi 43 karakter
        return bytesToHex(hash).substring(0, 43);
}
```

Ambil systemToken YiDA dari Pengaturan aplikasi YiDA > Deployment & Operations.

**Langkah 2**: Tanda tangan Token adalah systemToken YiDA di atas.

**Langkah 3**: URL Permintaan Callback ([https://www.yidaapps.com/saasAppCallback/\\\{appKey}](https://www.yidaapps.com/saasAppCallback/\\\{appKey})), dengan appKey adalah kode aplikasi YiDA, misalnya "APP\_XXX."

2. Lengkapi konten "Security review" pada pemeriksaan otomatis aplikasi. Untuk evaluasi penerimaan Keamanan, lihat 📎Panduan penerimaan Keamanan YiDA Cool SaaS - ISV.pdf.

### 4.3 Manajemen organisasi Uji Coba

Gunakan manajemen organisasi Uji Coba untuk pengujian mandiri ISV pada aplikasi utama dan Cool App, baik dalam status dipublikasikan maupun belum dipublikasikan. Setelah pengujian mandiri berhasil, kirim aplikasi untuk dipublikasikan ke DingTalk App Center dan Cool App Marketplace.

<Steps>
  <Step title="Langkah 1">
    Pilih Versi aplikasi SaaS, klik "Trial organization management," dan pilih organisasi Uji Coba. Jika belum ada, klik "Buat" untuk masuk ke Open Platform dan membuatnya.
  </Step>

  <Step title="Langkah 2">
    Setelah organisasi Uji Coba dibuat, tautkan dan berikan otorisasi pada Versi aplikasi yang ingin diuji. Setelah Otorisasi berhasil, aplikasi akan muncul di Workbench > Ungrouped pada organisasi Uji Coba tersebut.
  </Step>
</Steps>

#### 4.3.1 Uji Coba aplikasi utama

<Steps>
  <Step title="Langkah 1">
    Akses aplikasi dari workbench. Jika penguji Uji Coba bukan "Admin Kontak" atau "Super Admin aplikasi," minta admin organisasi atau admin aplikasi memberikan akses ke backend aplikasi.
  </Step>

  <Step title="Setelah Anda memiliki akses ke backend Kelola Aplikasi, tinjau konfigurasi backend aplikasi SaaS yang berlangganan. Fitur tertentu dapat dimodifikasi." />
</Steps>

**Semua fitur berikut dapat dimodifikasi:**

> Logika umum: Setelah modifikasi dilakukan dan ISV kemudian merilis Versi baru, konfigurasi lokal pelanggan diutamakan untuk fitur yang terpengaruh. Perubahan pada aplikasi utama tidak disinkronkan turun ke aplikasi anak. Jika tidak ada modifikasi, perubahan sumber daya Inkremental di aplikasi utama disinkronkan ke aplikasi anak.
>
> Logika perubahan Proses persetujuan:
>
> 1. Jika aplikasi anak berlangganan V0 dan aplikasi utama memiliki V1 yang belum dipublikasikan, V1 tidak muncul di Riwayat Versi aplikasi anak.
> 2. Jika aplikasi anak berlangganan V0 tanpa kustomisasi dan aplikasi utama kemudian diperbarui ke V1, aplikasi anak tetap menampilkan dan berjalan pada V0 yang berlangganan.
> 3. Jika aplikasi anak berlangganan V0 dan mengkustomisasinya, Versi Riwayat V0 internal dibuat bersama dengan draf V1. Setelah aplikasi anak berlangganan Versi baru, proses saat ini tidak lagi mengikuti peningkatan aplikasi utama.
> 4. Cakupan Versi di atas mencakup semua aturan bisnis dan formula di dalam Versi.

3. Secara default, data formulir "Data bisnis dasar" dari aplikasi utama diteruskan ke aplikasi anak sehingga data dasar langsung dapat digunakan. Modifikasi juga didukung.

#### 4.3.2 Uji Coba Cool App

<Steps>
  <Step title="Langkah 1">
    Setelah aplikasi utama lulus pengujian, uji Cool App. Pertama, kirim informasi Cool App. Klik "Publish to DingTalk Cool App Marketplace > Submit publication request" dan isi informasi publikasi Cool App, termasuk detail dasar, titik masuk akses (maksimum 3), metode buka, dan informasi bot.
  </Step>

  <Step title="Setelah mengisi informasi, klik Simpan dan publikasikan untuk menghasilkan coolappcode." />

  <Step title="Salin coolappcode Cool App ini, buat Grup Internal di organisasi Uji Coba saat ini, lalu instal dan uji di perangkat mobile seperti ditunjukkan di bawah." />
</Steps>

## 5 Operasional aplikasi

### 5.1 Peningkatan Versi

Setelah aplikasi SaaS yang dibangun ISV dipublikasikan ke App Marketplace dan pelanggan berlangganan, ISV dapat melakukan iterasi fitur dan, di "Workbench pengembangan SaaS YiDA > Pengaturan aplikasi > Remote operations," meluncurkan peningkatan Versi ke organisasi tertentu satu per satu maupun secara massal.

Catatan fitur:

1. Secara default, opsi peningkatan adalah iterasi terbaru yang dirilis setelah Versi yang saat ini dipublikasikan.
2. Peningkatan Versi massal ke beberapa organisasi berbayar didukung.

> Remote operations — segera hadir.

### 5.2 Halaman landing Otorisasi aktivasi aplikasi

Setelah aplikasi SaaS YiDA dipublikasikan ke DingTalk Open Platform dan App Center, Anda dapat mengkustomisasi halaman landing Otorisasi. 👉Pelajari lebih lanjut

Catatan konfigurasi:

* Unggah halaman landing Otorisasi PC dan mobile secara terpisah (hanya satu Gambar per Saluran yang didukung).

* Setelah pengunggahan, salin "URL akses Uji Coba" lalu buka Partner Self-Operation Platform > Aplikasi perusahaan pihak ketiga > Manajemen publikasi produk > Detail aplikasi > Kelola > "In-app authorization settings." Setelah integrasi selesai dan penerimaan mandiri Anda lulus (👉 pelajari lebih lanjut tentang proses penerimaan), aplikasi SaaS dapat dipromosikan di lebih banyak Saluran online DingTalk, seperti DingTalk Search.

| Tampilan mobile | Tampilan PC |
| --------------- | ----------- |

## 6 FAQ

<AccordionGroup>
  <Accordion id="q1" title="Q1: Bagaimana cara memodifikasi field formulir di aplikasi SaaS yang berlangganan?">
    A: Modifikasi terhadap fitur seperti formulir sudah didukung.
  </Accordion>

  <Accordion id="q2" title="Q2: Bisakah saya menghapus komponen dari formulir yang sudah dipublikasikan?">
    A: Menghapus komponen dari formulir Standar atau alur kerja yang telah dipublikasikan — termasuk subformulir — tidak diperbolehkan.
  </Accordion>

  <Accordion id="q3" title="Q3: Bisakah halaman kustom yang dipublikasikan membawa CorpId tetap?">
    A: Tidak ada tautan kustom yang boleh membawa CorpId tetap.
  </Accordion>

  <Accordion id="q4" title="Q4: Apa yang harus saya lakukan jika instalasi Cool App gagal?">
    A: Uji Cool App dengan menginstalnya di Grup Internal baru pada organisasi selain organisasi aplikasi utama.
  </Accordion>

  <Accordion id="q5" title="Q5: Ketika halaman kustom mengalihkan ke halaman formulir, bagaimana cara meneruskan ID grup saat ini?">
    Lihat "Panduan FAQ dan desain skenario khas Cool App."
  </Accordion>

  <Accordion id="q6" title="Q6: Bagaimana cara menyembunyikan menu dan bilah navigasi di halaman aplikasi SaaS?">
    A: Ketika halaman YiDA disematkan di sistem lain, Anda dapat menyembunyikan bilah navigasi atas dan bilah navigasi fungsi halaman di sebelah kiri. Tambahkan ?isRenderNav=false pada URL halaman yang disematkan.
  </Accordion>
</AccordionGroup>
