

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Menyambung ke Zoho CRM
<a name="connecting-to-data-zoho-crm"></a>

Zoho CRM bertindak sebagai repositori tunggal untuk menyatukan aktivitas penjualan, pemasaran, dan dukungan pelanggan, serta merampingkan proses, kebijakan, dan orang-orang dalam satu platform. Zoho CRM dapat dengan mudah disesuaikan untuk memenuhi kebutuhan spesifik jenis dan ukuran bisnis apa pun.

Platform pengembang Zoho CRM menawarkan perpaduan yang tepat antara alat kode rendah dan pro-kode businesses/enterprises untuk mengotomatiskan pekerjaan, mengintegrasikan data di seluruh tumpukan perusahaan, dan membuat solusi khusus untuk web dan seluler.

**Topics**
+ [AWS Glue dukungan untuk Zoho CRM](zoho-crm-support.md)
+ [Kebijakan yang berisi operasi API untuk membuat dan menggunakan koneksi](zoho-crm-configuring-iam-permissions.md)
+ [Mengkonfigurasi Zoho CRM](zoho-crm-configuring.md)
+ [Mengkonfigurasi koneksi Zoho CRM](zoho-crm-configuring-connections.md)
+ [Membaca dari entitas Zoho CRM](zoho-crm-reading-from-entities.md)
+ [Opsi koneksi Zoho CRM](zoho-crm-connection-options.md)
+ [Keterbatasan dan catatan untuk konektor Zoho CRM](zoho-crm-connector-limitations.md)

# AWS Glue dukungan untuk Zoho CRM
<a name="zoho-crm-support"></a>

AWS Glue mendukung Zoho CRM sebagai berikut:

**Didukung sebagai sumber?**  
Ya — Sinkronisasi dan Async. Anda dapat menggunakan pekerjaan AWS Glue ETL untuk menanyakan data dari Zoho CRM.

**Didukung sebagai target?**  
Tidak.

**Versi Zoho CRM API yang didukung**  
Versi Zoho CRM API berikut didukung:
+ v7

# Kebijakan yang berisi operasi API untuk membuat dan menggunakan koneksi
<a name="zoho-crm-configuring-iam-permissions"></a>

Kebijakan contoh berikut menjelaskan izin AWS IAM yang diperlukan untuk membuat dan menggunakan koneksi. Jika Anda membuat peran baru, buat kebijakan yang berisi hal-hal berikut:

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "glue:ListConnectionTypes",
        "glue:DescribeConnectionType",
        "glue:RefreshOAuth2Tokens",
        "glue:ListEntities",
        "glue:DescribeEntity"
      ],
      "Resource": "*"
    }
  ]
}
```

------

Jika Anda tidak ingin menggunakan metode di atas, gunakan kebijakan IAM terkelola berikut ini:
+ [AWSGlueServiceRole](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AWSGlueServiceRole)— Memberikan akses ke sumber daya yang diperlukan berbagai AWS Glue proses untuk dijalankan atas nama Anda. Sumber daya ini termasuk AWS Glue, Amazon S3, IAM, CloudWatch Log, dan Amazon. EC2 Jika Anda mengikuti konvensi penamaan untuk sumber daya yang ditentukan dalam kebijakan ini, AWS Glue proses memiliki izin yang diperlukan. Kebijakan ini biasanya dilampirkan pada peran yang ditentukan saat menentukan crawler, tugas, dan titik akhir pengembangan.
+ [AWSGlueConsoleFullAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AWSGlueConsoleFullAccess)— Memberikan akses penuh ke AWS Glue sumber daya saat identitas yang dilampirkan kebijakan menggunakan Konsol AWS Manajemen. Jika Anda mengikuti konvensi penamaan untuk sumber daya yang ditentukan dalam kebijakan ini, maka pengguna memiliki kemampuan konsol penuh. Kebijakan ini biasanya dilampirkan ke pengguna AWS Glue konsol.

# Mengkonfigurasi Zoho CRM
<a name="zoho-crm-configuring"></a>

Sebelum dapat digunakan AWS Glue untuk mentransfer data dari Zoho CRM, Anda harus memenuhi persyaratan berikut:

## Persyaratan minimum
<a name="zoho-crm-configuring-min-requirements"></a>

Berikut ini adalah persyaratan minimum:
+ Anda memiliki akun Zoho CRM.
+ Akun Zoho CRM Anda diaktifkan untuk akses API.
+ Anda memiliki klien API terdaftar di bawah Konsol API untuk mendapatkan OAuth Kredensial.

# Mengkonfigurasi koneksi Zoho CRM
<a name="zoho-crm-configuring-connections"></a>

Jenis hibah menentukan cara AWS Glue berkomunikasi dengan Zoho CRM untuk meminta akses ke data Anda. Pilihan Anda memengaruhi persyaratan yang harus Anda penuhi sebelum membuat koneksi. Zoho CRM hanya mendukung jenis hibah AUTHORIZATION\$1CODE untuk 2.0. OAuth 
+ Jenis hibah ini dianggap “berkaki tiga” OAuth karena bergantung pada pengalihan pengguna ke server otorisasi pihak ketiga untuk mengautentikasi pengguna. Ini digunakan saat membuat koneksi melalui AWS Glue konsol. AWS Glue Konsol akan mengarahkan pengguna ke Zoho CRM di mana pengguna harus masuk dan mengizinkan Glue izin yang diminta untuk mengakses instance Zoho CRM mereka.
+ Pengguna masih dapat memilih untuk membuat aplikasi tersambung mereka sendiri di Zoho CRM dan memberikan ID klien, URL Auth, URL Token, dan URL Instance mereka sendiri saat membuat koneksi melalui konsol. AWS Glue Dalam skenario ini, mereka masih akan diarahkan ke Zoho CRM untuk masuk dan memberi wewenang AWS Glue untuk mengakses sumber daya mereka.
+ Jenis hibah ini menghasilkan token penyegaran dan token akses. Token akses akan tetap berlaku selama satu jam, dan dapat disegarkan secara otomatis tanpa interaksi pengguna menggunakan token penyegaran.
+ [Untuk dokumentasi Zoho CRM publik tentang cara membuat aplikasi yang terhubung untuk OAuth alur Kode Otorisasi, lihat Otentikasi.](https://www.zoho.com/crm/developer/docs/api/v7/oauth-overview.html)

Untuk mengonfigurasi koneksi Zoho CRM:

1. Di AWS Glue Glue Studio, buat koneksi di bawah **Koneksi Data** dengan mengikuti langkah-langkah di bawah ini:

   1. Saat memilih **jenis Koneksi**, pilih Zoho CRM.

   1. Berikan instance Zoho CRM yang ingin Anda sambungkan. `INSTANCE_URL`

   1. Berikan ID klien aplikasi klien pengguna.

   1. Pilih **URL Auth** yang sesuai dari dropdown.

   1. Pilih **URL Token** yang sesuai dari dropdown.

   1. Pilih peran AWS IAM yang AWS Glue dapat mengasumsikan dan memiliki izin untuk tindakan berikut:

------
#### [ JSON ]

****  

      ```
      {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Action": [
              "secretsmanager:DescribeSecret",
              "secretsmanager:GetSecretValue",
              "secretsmanager:PutSecretValue",
              "ec2:CreateNetworkInterface",
              "ec2:DescribeNetworkInterfaces",
              "ec2:DeleteNetworkInterface"
            ],
            "Resource": "*"
          }
        ]
      }
      ```

------

   1. Pilih `secretName` yang ingin Anda gunakan untuk koneksi ini AWS Glue untuk memasukkan token.

   1. Pilih opsi jaringan jika Anda ingin menggunakan jaringan Anda.

1. Berikan peran IAM yang terkait dengan izin AWS Glue pekerjaan Anda untuk membaca`secretName`.

1. Dalam konfigurasi AWS Glue pekerjaan Anda, berikan `connectionName` sebagai **koneksi jaringan tambahan**.

# Membaca dari entitas Zoho CRM
<a name="zoho-crm-reading-from-entities"></a>

**Prasyarat**

Objek Zoho CRM yang ingin Anda baca. Anda akan membutuhkan nama objek.

**Entitas yang didukung untuk sumber Sinkronisasi**:


| Entitas | Dapat disaring | Mendukung batas | Mendukung Pesanan oleh | Mendukung Pilih \$1 | Mendukung partisi | 
| --- | --- | --- | --- | --- | --- | 
| Produk | Ya | Ya | Ya | Ya | Ya | 
| Kutipan | Ya | Ya | Ya | Ya | Ya | 
| Pesanan Pembelian | Ya | Ya | Ya | Ya | Ya | 
| Solusi | Ya | Ya | Ya | Ya | Ya | 
| Panggilan | Ya | Ya | Ya | Ya | Ya | 
| Tugas | Ya | Ya | Ya | Ya | Ya | 
| Peristiwa | Ya | Ya | Ya | Ya | Ya | 
| Faktur | Ya | Ya | Ya | Ya | Ya | 
| Akun | Ya | Ya | Ya | Ya | Ya | 
| Kontak | Ya | Ya | Ya | Ya | Ya | 
| Penjual | Ya | Ya | Ya | Ya | Ya | 
| Kampanye | Ya | Ya | Ya | Ya | Ya | 
| Kesepakatan | Ya | Ya | Ya | Ya | Ya | 
| Prospek | Ya | Ya | Ya | Ya | Ya | 
| Modul Kustom | Ya | Ya | Ya | Ya | Ya | 
| Pesanan Penjualan | Ya | Ya | Ya | Ya | Ya | 
| Harga Buku | Ya | Ya | Ya | Ya | Ya | 
| Kasus | Ya | Ya | Ya | Ya | Ya | 

**Contoh:**

```
zoho_read = glueContext.create_dynamic_frame.from_options(
    connection_type="ZOHO",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "entityName",
        "API_VERSION": "v7",
        "INSTANCE_URL": "https://www.zohoapis.in/"
    }
```

**Entitas yang didukung untuk sumber Async**:


| Entitas | Dapat disaring | Mendukung batas | Mendukung Pesanan oleh | Mendukung Pilih \$1 | Mendukung partisi | 
| --- | --- | --- | --- | --- | --- | 
| Produk | Ya | Tidak | Tidak | Ya | Tidak | 
| Kutipan | Ya | Tidak | Tidak | Ya | Tidak | 
| Pesanan Pembelian | Ya | Tidak | Tidak | Ya | Tidak | 
| Solusi | Ya | Tidak | Tidak | Ya | Tidak | 
| Panggilan | Ya | Tidak | Tidak | Ya | Tidak | 
| Tugas | Ya | Tidak | Tidak | Ya | Tidak | 
| Peristiwa | Ya | Tidak | Tidak | Ya | Tidak | 
| Faktur | Ya | Tidak | Tidak | Ya | Tidak | 
| Akun | Ya | Tidak | Tidak | Ya | Tidak | 
| Kontak | Ya | Tidak | Tidak | Ya | Tidak | 
| Penjual | Ya | Tidak | Tidak | Ya | Tidak | 
| Kampanye | Ya | Tidak | Tidak | Ya | Tidak | 
| Kesepakatan | Ya | Tidak | Tidak | Ya | Tidak | 
| Prospek | Ya | Tidak | Tidak | Ya | Tidak | 
| Modul Kustom | Ya | Tidak | Tidak | Ya | Tidak | 
| Pesanan Penjualan | Ya | Tidak | Tidak | Ya | Tidak | 
| Harga Buku | Ya | Tidak | Tidak | Ya | Tidak | 
| Kasus | Ya | Tidak | Tidak | Ya | Tidak | 

**Contoh:**

```
zoho_read = glueContext.create_dynamic_frame.from_options(
    connection_type="ZOHO",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "entityName",
        "API_VERSION": "v7",
        "INSTANCE_URL": "https://www.zohoapis.in/",
        "TRANSFER_MODE": "ASYNC"
    }
```

Detail **bidang Zoho CRM**:

Zoho CRM menyediakan titik akhir untuk mengambil metadata secara dinamis untuk entitas yang didukung. Oleh karena itu, dukungan operator ditangkap pada tingkat tipe data.

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/zoho-crm-reading-from-entities.html)

## Mempartisi kueri
<a name="zoho-crm-reading-partitioning-queries"></a>

Partisi tidak didukung dalam mode Async.

**Partisi berbasis filter (Mode sinkronisasi)**:

Anda dapat memberikan opsi Spark tambahan`PARTITION_FIELD`,, `LOWER_BOUND``UPPER_BOUND`, dan `NUM_PARTITIONS` jika Anda ingin memanfaatkan konkurensi di Spark. Dengan parameter ini, kueri asli akan dibagi menjadi `NUM_PARTITIONS` sejumlah sub-kueri yang dapat dijalankan oleh tugas Spark secara bersamaan.
+ `PARTITION_FIELD`: nama bidang yang akan digunakan untuk mempartisi kueri.
+ `LOWER_BOUND`: nilai batas bawah **inklusif** dari bidang partisi yang dipilih.

  Untuk bidang Datetime, kami menerima format stempel waktu Spark yang digunakan dalam kueri Spark SQL.

  Contoh nilai valid:

  ```
  "2024-09-30T01:01:01.000Z"
  ```
+ `UPPER_BOUND`: nilai batas atas **eksklusif** dari bidang partisi yang dipilih.
+ `NUM_PARTITIONS`: jumlah partisi.

Contoh:

```
zoho_read = glueContext.create_dynamic_frame.from_options(
    connection_type="zohocrm",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "entityName",
        "API_VERSION": "v7",
        "PARTITION_FIELD": "Created_Time"
        "LOWER_BOUND": "2022-01-01T01:01:01.000Z"
        "UPPER_BOUND": "2024-01-01T01:01:01.000Z"
        "NUM_PARTITIONS": "10"
    }
```

# Opsi koneksi Zoho CRM
<a name="zoho-crm-connection-options"></a>

Berikut ini adalah opsi koneksi untuk Zoho CRM:
+ `ENTITY_NAME`(String) - (Diperlukan) Digunakan untuk Baca. Nama objek Anda di Zoho CRM.
+ `API_VERSION`(String) - (Diperlukan) Digunakan untuk Baca. Versi Zoho CRM Rest API yang ingin Anda gunakan.
+ `SELECTED_FIELDS`(Daftar<String>) - Default: kosong (SELECT \$1). Digunakan untuk Baca. Kolom yang ingin Anda pilih untuk objek.
+ `FILTER_PREDICATE`(String) - Default: kosong. Digunakan untuk Baca. Itu harus dalam format Spark SQL.
+ `QUERY`(String) - Default: kosong. Digunakan untuk Baca. Kueri SQL Spark penuh.
+ `PARTITION_FIELD`(String) - Digunakan untuk Baca. Bidang yang akan digunakan untuk mempartisi kueri.
+ `LOWER_BOUND`(String) - Digunakan untuk Baca. Nilai batas bawah inklusif dari bidang partisi yang dipilih.
+ `UPPER_BOUND`(String) - Digunakan untuk Baca. Nilai batas atas eksklusif dari bidang partisi yang dipilih.
+ `NUM_PARTITIONS`(Integer) - Default: 1. Digunakan untuk Baca. Jumlah partisi untuk dibaca.
+ `INSTANCE_URL`(String) - (Diperlukan) Digunakan untuk Baca. URL instans Zoho CRM yang valid.
+ `TRANSFER_MODE`(String) - Digunakan untuk menunjukkan apakah query harus dijalankan pada modus Async.

# Keterbatasan dan catatan untuk konektor Zoho CRM
<a name="zoho-crm-connector-limitations"></a>

Berikut ini adalah batasan atau catatan untuk konektor Zoho CRM:
+ Dengan API versi v7, Anda dapat mengambil maksimal 100.000 catatan. Lihat [dokumentasi Zoho](https://www.zoho.com/crm/developer/docs/api/v7/get-records.html).
+ Untuk entitas Event, label “Rapat” ditampilkan seperti yang disebutkan dalam [dokumentasi Zoho](https://www.zoho.com/crm/developer/docs/api/v7/modules-api.html).
+ Untuk Select All fungsionalitas:
  + Anda dapat mengambil maksimal 50 bidang dari SaaS untuk panggilan GET dan POST.
  + Jika Anda ingin memiliki data untuk beberapa bidang tertentu yang tidak termasuk dalam 50 bidang pertama, Anda harus memberikan daftar bidang yang dipilih secara manual.
  + Jika lebih dari 50 bidang dipilih, bidang apa pun di luar 50 bidang akan dipangkas dan akan berisi data nol di Amazon S3. 
  + Dalam kasus ekspresi filter, jika daftar 50 bidang yang disediakan pengguna tidak menyertakan “id” dan “Created\$1Time,” pengecualian khusus akan dimunculkan untuk meminta pengguna memasukkan bidang ini.
+ Operator filter dapat bervariasi dari field-to-field meskipun memiliki tipe data yang sama. Oleh karena itu, Anda harus secara manual menentukan operator yang berbeda untuk bidang apa pun yang memicu kesalahan di platform SaaS. 
+ Untuk fungsionalitas Urutkan Berdasarkan:
  + Data hanya dapat diurutkan berdasarkan satu bidang tanpa ekspresi filter, sedangkan data dapat diurutkan berdasarkan beberapa bidang saat ekspresi filter diterapkan.
  + Jika tidak ada urutan pengurutan yang ditentukan untuk bidang yang dipilih, data akan diambil dalam urutan menaik secara default. 
+ Wilayah yang didukung untuk konektor Zoho CRM adalah AS, Eropa, India, Australia, dan Jepang.
+ [Batasan fungsionalitas baca asinkron:](https://www.zoho.com/crm/developer/docs/api/v7/bulk-read/limitations.html)
  + Batas urutan oleh dan partisi tidak didukung dalam mode Async. 
  + Dalam mode Async kita dapat mentransfer data hingga 500 halaman dengan 200.000 catatan per halaman.
  + Untuk interval satu menit, hanya 10 permintaan yang diizinkan untuk diunduh. Ketika Anda melebihi batas unduhan, sistem mengembalikan kesalahan HTTP 429 dan menjeda semua permintaan unduhan selama satu menit sebelum pemrosesan dapat dilanjutkan.
  + Setelah menyelesaikan pekerjaan massal, Anda dapat mengakses file yang dapat diunduh hanya untuk jangka waktu satu hari. Setelah itu, Anda tidak dapat mengakses file melalui titik akhir.
  + Maksimal 200 bidang pilih dapat diberikan melalui titik akhir. Jika Anda menentukan lebih dari 200 bidang pilih di titik akhir, sistem akan secara otomatis mengekspor semua bidang yang tersedia untuk modul itu.
  + Bidang eksternal yang dibuat dalam modul apa pun tidak didukung dalam Pembacaan Massal APIs.
  + Penyortiran dan `Group_by` klausa tidak didukung melalui titik akhir API ini.
  + **Nilai bidang dengan data kesehatan sensitif akan diambil hanya jika opsi Batasi **akses Data melalui API di pengaturan kepatuhan dinonaktifkan**.** Jika opsi diaktifkan, nilainya akan **kosong** di hasilnya.
  + Batas Filtrasi/Kriteria
    + Jumlah maksimum kriteria yang dapat digunakan dalam kueri adalah 25.
    + Filtrasi/Kriteria pada bidang teks multiline tidak didukung.