

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

# Menghubungkan ke Freshdesk
<a name="connecting-to-data-freshdesk"></a>

Freshdesk adalah perangkat lunak dukungan pelanggan berbasis cloud yang kaya fitur dan mudah digunakan. Dengan beberapa saluran dukungan yang tersedia, termasuk obrolan langsung, email, telepon, dan media sosial, Anda dapat membantu pelanggan melalui metode komunikasi pilihan mereka. Jika Anda adalah pengguna Freshdesk, Anda dapat terhubung AWS Glue ke akun Freshdesk Anda. Anda dapat menggunakan Freshdesk sebagai sumber data dalam pekerjaan ETL Anda. Jalankan pekerjaan ini untuk mentransfer data dari Freshdesk ke AWS layanan atau aplikasi lain yang didukung.

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

# AWS Glue dukungan untuk Freshdesk
<a name="freshdesk-support"></a>

AWS Glue mendukung Freshdesk sebagai berikut:

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

**Didukung sebagai target?**  
Tidak.

**Versi Freshdesk API yang didukung**  
Versi Freshdesk API berikut didukung:
+ v2

# Kebijakan yang berisi operasi API untuk membuat dan menggunakan koneksi
<a name="freshdesk-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 Freshdesk
<a name="freshdesk-configuring"></a>

Sebelum Anda dapat menggunakan AWS Glue untuk mentransfer data dari Freshdesk, Anda harus memenuhi persyaratan ini:

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

Berikut ini adalah persyaratan minimum:
+ Akun Freshdesk. Anda dapat memilih dari edisi Gratis, Pertumbuhan, Pro atau Perusahaan.
+ Kunci API pengguna Freshdesk.

# Mengkonfigurasi koneksi Freshdesk
<a name="freshdesk-configuring-connections"></a>

Freshdesk mendukung otentikasi kustom.

Untuk dokumentasi Freshdesk publik tentang pembuatan kunci API yang diperlukan untuk otorisasi kustom, lihat otentikasi [Freshdesk](https://developer.freshdesk.com/api/#authentication).

Berikut ini adalah langkah-langkah untuk mengkonfigurasi koneksi Freshdesk:
+ Di AWS Secrets Manager, buat rahasia dengan detail berikut:
  + Untuk aplikasi terkoneksi yang dikelola pelanggan — rahasianya harus berisi kunci API aplikasi yang terhubung dengan `apiKey` sebagai kunci. Perhatikan bahwa Anda harus membuat rahasia per koneksi di AWS Glue.
+ Dalam AWS Glue Studio, buat koneksi di bawah **Koneksi Data** dengan mengikuti langkah-langkah di bawah ini:
  + Saat memilih **sumber Data**, pilih Freshdesk.
  + Berikan contoh Freshdesk yang ingin Anda sambungkan. `INSTANCE_URL`
  + 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": "*"
        }
      ]
    }
    ```

------
  + Pilih `secretName` yang ingin Anda gunakan untuk koneksi ini AWS Glue untuk memasukkan token.
  + Pilih opsi jaringan jika Anda ingin menggunakan jaringan Anda.
+ Berikan peran IAM yang terkait dengan izin AWS Glue pekerjaan Anda untuk membaca`secretName`.
+ Dalam konfigurasi AWS Glue pekerjaan Anda, berikan `connectionName` sebagai **koneksi jaringan tambahan**.

# Membaca dari entitas Freshdesk
<a name="freshdesk-reading-from-entities"></a>

**Prasyarat**

Objek Freshdesk 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 | 
| --- | --- | --- | --- | --- | --- | 
| Agen | Ya | Ya | Tidak | Ya | Ya | 
| Jam Kerja | Tidak | Ya | Tidak | Ya | Ya | 
| Perusahaan | Ya | Ya | Tidak | Ya | Ya | 
| Kontak  | Ya | Ya | Tidak | Ya | Ya | 
| Percakapan | Tidak | Ya | Tidak | Ya | Tidak | 
| Konfigurasi Email | Tidak | Ya | Tidak | Ya | Tidak | 
| Kotak Masuk Email | Ya | Ya | Ya | Ya | Tidak | 
| Kategori Forum | Tidak | Ya | Tidak | Ya | Tidak | 
| Forum | Tidak | Ya | Tidak | Ya | Tidak | 
| Grup | Tidak | Ya | Tidak | Ya | Tidak | 
| Produk | Tidak | Ya | Tidak | Ya | Tidak | 
| Peran | Tidak | Ya | Tidak | Ya | Tidak | 
| Peringkat Kepuasan | Ya | Ya | Tidak | Ya | Tidak | 
| Keterampilan | Tidak | Ya | Tidak | Ya | Tidak | 
| Solusi | Ya | Ya | Tidak | Ya | Tidak | 
| Survei | Tidak | Ya | Tidak | Ya | Tidak | 
| Tiket | Ya | Ya | Ya | Ya | Ya | 
| Entri Waktu | Ya | Ya | Tidak | Ya | Tidak | 
| Topik | Tidak | Ya | Tidak | Ya | Tidak | 
| Komentar Topik | Tidak | Ya | Tidak | Ya | Tidak | 

**Entitas yang didukung untuk sumber Async**:


| Entitas | Versi API | Dapat disaring | Mendukung batas | Mendukung Pesanan oleh | Mendukung Pilih \$1 | Mendukung partisi | 
| --- | --- | --- | --- | --- | --- | --- | 
| Perusahaan | v2 | Tidak | Tidak | Tidak | Tidak | Tidak | 
| Kontak  | v2 | Tidak | Tidak | Tidak | Tidak | Tidak | 

**Contoh:**

```
freshdesk_read = glueContext.create_dynamic_frame.from_options(
    connection_type="freshdesk",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "entityName",
        "API_VERSION": "v2"
    }
```

**Entitas Freshdesk dan detail bidang**:


| Entitas | Bidang | 
| --- | --- | 
| Agen | https://developers.freshdesk.com/api/\$1list\$1all\$1agents | 
| Jam kerja | https://developers.freshdesk.com/api/\$1list\$1all\$1business\$1hours | 
| Komentar | https://developers.freshdesk.com/api/\$1comment\$1attributess | 
| Perusahaan | https://developers.freshdesk.com/api/\$1companies | 
| Kontak  | https://developers.freshdesk.com/api/\$1list\$1all\$1contacts | 
| Percakapan | https://developers.freshdesk.com/api/\$1list\$1all\$1ticket\$1notes | 
| Konfigurasi email | https://developers.freshdesk.com/api/\$1list\$1all\$1email\$1configs | 
| Kotak masuk email | https://developers.freshdesk.com/api/\$1list\$1all\$1email\$1mailboxes | 
| Forum-kategori | https://developers.freshdesk.com/api/\$1category\$1attributes | 
| Forum | https://developers.freshdesk.com/api/\$1forum\$1attributes | 
| Grup | https://developers.freshdesk.com/api/\$1list\$1all\$1groups | 
| Produk | https://developers.freshdesk.com/api/\$1list\$1all\$1products | 
| Peran | https://developers.freshdesk.com/api/\$1list\$1all\$1roles | 
| Peringkat kepuasan | https://developers.freshdesk.com/api/\$1view\$1all\$1satisfaction\$1ratingss | 
| Keterampilan | https://developers.freshdesk.com/api/\$1list\$1all\$1skills | 
| Solusi | https://developers.freshdesk.com/api/\$1solution\$1content | 
| Survei | https://developers.freshdesk.com/api/\$1list\$1all\$1survey | 
| Tiket | https://developers.freshdesk.com/api/\$1list\$1all\$1tickets | 
| Entri waktu | https://developers.freshdesk.com/api/\$1list\$1all\$1time\$1entries | 
| Topik | https://developers.freshdesk.com/api/\$1topic\$1attributes | 

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

Partisi **berbasis filter**:

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:

```
freshDesk_read = glueContext.create_dynamic_frame.from_options(
     connection_type="freshdesk",
     connection_options={
         "connectionName": "connectionName",
         "ENTITY_NAME": "entityName",
         "API_VERSION": "v2",
         "PARTITION_FIELD": "Created_Time"
         "LOWER_BOUND": " 2024-10-27T23:16:08Z“
         "UPPER_BOUND": " 2024-10-27T23:16:08Z"
         "NUM_PARTITIONS": "10"
     }
```

# Opsi koneksi Freshdesk
<a name="freshdesk-connection-options"></a>

Berikut ini adalah opsi koneksi untuk Freshdesk:
+ `ENTITY_NAME`(String) - (Diperlukan) Digunakan untuk Baca. Nama objek Anda di Freshdesk.
+ `API_VERSION`(String) - (Diperlukan) Digunakan untuk Baca. Versi Freshdesk 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 instance Freshdesk yang valid.
+ `TRANSFER_MODE`(String) - Digunakan untuk menunjukkan apakah jenis pengolahan seperti `SYNC` atau `ASYNC` diatur ke secara `SYNC` default. (Opsional)

# Keterbatasan dan catatan untuk konektor Freshdesk
<a name="freshdesk-connector-limitations"></a>

Berikut ini adalah batasan atau catatan untuk konektor Freshdesk:
+ `Tickets`Entitas `Company``Contacts`,, dan dengan filtrasi memiliki batasan pagination. Mereka hanya mengembalikan 30 catatan per halaman dan nilai halaman dapat diatur hingga maksimum 10 (mengambil maksimum 300 catatan).
+ `Tickets`Entitas tidak mengambil catatan yang lebih lama dari 30 hari.
+ `Tickets`Entitas `Company``Contacts`,, dan mendukung tipe data 'Tanggal' dalam filtrasi. Anda harus memilih frekuensi pemicu 'Harian' dan seterusnya untuk ketiga entitas ini. Memilih 'Menit' atau 'Per Jam' dapat menyebabkan duplikat data. Juga, saat memilih bidang ini untuk filtrasi, hanya nilai tanggal yang harus dipilih, karena hanya akan mempertimbangkan bagian tanggal dari stempel waktu yang dipilih.
+ Jumlah panggilan API per menit didasarkan pada paket Anda. Batas ini diterapkan secara luas akun terlepas dari faktor-faktor seperti jumlah agen atau alamat IP yang digunakan untuk melakukan panggilan. Untuk semua pengguna uji coba, ada batas API default 50 panggilan/menit. Untuk lebih jelasnya, lihat [Freshdesk](https://developer.freshdesk.com/api/#ratelimit)
+ Untuk entitas apa pun, hanya satu Export/Async Job yang diproses dalam satu waktu. Pekerjaan baru hanya akan diproses setelah pekerjaan yang ada berhasil atau gagal. Untuk lebih jelasnya, lihat [Freshdesk](https://developers.freshdesk.com/api/#export_contact)
+ Bidang berikut didukung untuk panggilan API Sinkronisasi, tetapi tidak supported/allowed boleh diteruskan di badan permintaan API Async.
  + id
  + dibuat\$1at
  + updated\$1at
  + diperbarui\$1sejak
  + aktif
  + perusahaan\$1id
  + other\$1companies
  + avatar
  + view\$1all\$1tickets
  + dihapus
  + email lainnya\$1
  + status
  + tanda
  + tag