

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

# Menghubungkan ke Pipedrive
<a name="connecting-to-pipedrive"></a>

 Pipedrive adalah saluran penjualan CRM yang dirancang untuk membantu usaha kecil mengelola prospek, melacak aktivitas penjualan, dan menutup lebih banyak penawaran. Pipedrive memungkinkan tim penjualan di bisnis kecil untuk: Merampingkan proses dan mengkonsolidasikan data penjualan dalam satu alat penjualan CRM terpadu. Jika Anda pengguna Pipedrive, Anda dapat terhubung AWS Glue ke akun Pipedrive Anda. Kemudian, Anda dapat menggunakan Pipedrive sebagai sumber data dalam Pekerjaan ETL Anda. Jalankan pekerjaan ini untuk mentransfer data antara Pipedrive dan AWS layanan atau aplikasi lain yang didukung. 

**Topics**
+ [AWS Glue dukungan untuk Pipedrive](pipedrive-support.md)
+ [Kebijakan yang berisi operasi API untuk membuat dan menggunakan koneksi](pipedrive-configuring-iam-permissions.md)
+ [Mengkonfigurasi Pipedrive](pipedrive-configuring.md)
+ [Mengkonfigurasi koneksi Pipedrive](pipedrive-configuring-connections.md)
+ [Membaca dari entitas Pipedrive](pipedrive-reading-from-entities.md)
+ [Referensi opsi koneksi Pipedrive](pipedrive-connection-options.md)
+ [Batasan](pipedrive-connector-limitations.md)

# AWS Glue dukungan untuk Pipedrive
<a name="pipedrive-support"></a>

AWS Glue mendukung Pipedrive sebagai berikut:

**Didukung sebagai sumber?**  
Ya. Anda dapat menggunakan pekerjaan AWS Glue ETL untuk menanyakan data dari Pipedrive.

**Didukung sebagai target?**  
Tidak.

**Versi Pipedrive API yang didukung**  
 v1. 

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

 Kebijakan contoh berikut menjelaskan AWS izin 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": "*"
    }
  ]
}
```

------

Anda juga dapat menggunakan kebijakan IAM terkelola berikut untuk mengizinkan akses:
+  [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 Pipedrive
<a name="pipedrive-configuring"></a>

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

## Persyaratan minimum
<a name="pipedrive-configuring-min-requirements"></a>
+  Anda memiliki akun Pipedrive. 
+  Akun Pipedrive Anda diaktifkan untuk akses API. 

 Jika memenuhi persyaratan ini, Anda siap untuk terhubung AWS Glue ke akun Pipedrive Anda. Untuk koneksi biasa, Anda tidak perlu melakukan hal lain di Pipedrive. 

# Mengkonfigurasi koneksi Pipedrive
<a name="pipedrive-configuring-connections"></a>

 Pipedrive mendukung jenis hibah AUTHORIZATION\$1CODE untuk. OAuth2 
+  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. Pengguna yang membuat koneksi mungkin secara default mengandalkan aplikasi terhubung yang AWS Glue dimiliki di mana mereka tidak perlu memberikan informasi OAuth terkait apa pun kecuali untuk instanceurl Pipedrive. AWS Glue Konsol akan mengarahkan pengguna ke Pipedrive di mana pengguna harus masuk dan mengizinkan AWS Glue izin yang diminta untuk mengakses instance PipeDrive mereka. 
+  Pengguna harus memilih untuk membuat aplikasi mereka sendiri yang terhubung di Pipedrive dan memberikan id klien dan rahasia klien mereka sendiri saat membuat koneksi melalui AWS Glue Konsol. Dalam skenario ini, mereka masih akan diarahkan ke Pipedrive untuk masuk dan mengotorisasi AWS Glue untuk mengakses sumber daya mereka. 
+  Jenis hibah ini menghasilkan token penyegaran dan token akses. Token akses aktif selama satu jam, dan dapat disegarkan secara otomatis tanpa interaksi pengguna menggunakan token penyegaran. 
+  Untuk informasi selengkapnya, lihat [dokumentasi tentang membuat aplikasi yang terhubung untuk alur AUTHORIZATION\$1CODE OAuth ](https://developers.pipedrive.com/docs/api/v1/Oauth). 

Untuk mengkonfigurasi koneksi Pipedrive:

1.  Di AWS Secrets Manager, buat rahasia dengan detail berikut. Diperlukan untuk membuat rahasia untuk setiap koneksi di AWS Glue. 

   1.  Untuk aplikasi terhubung yang dikelola pelanggan - Rahasia harus berisi aplikasi Consumer Secret yang terhubung dengan USER\$1MANAGED\$1CLIENT\$1APPLICATION\$1CLIENT\$1SECRET sebagai kunci. 

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

   1.  Di bawah Koneksi Data, pilih **Buat koneksi**. 

   1. Saat memilih **Sumber Data**, pilih Pipedrive.

   1. **Berikan InstanceURL PipeDrive Anda.**

   1.  Pilih peran IAM yang AWS Glue dapat diasumsikan 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.  Berikan Aplikasi Klien Terkelola Pengguna ClientId dari Pipedrive yang ingin Anda sambungkan. 

   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`. Pilih **Berikutnya**. 

1.  **Berikan **ConnectionName** dan pilih Next.** 

1.  Pada halaman berikutnya pilih **Buat koneksi**. Anda akan diminta untuk masuk ke Pipedrive. Berikan nama pengguna dan kata sandi Anda dan pilih **Masuk**. 

1.  Setelah Anda masuk, pilih **Lanjutkan ke Aplikasi**. Sekarang koneksi Anda siap digunakan. 

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

# Membaca dari entitas Pipedrive
<a name="pipedrive-reading-from-entities"></a>

 **Prasyarat** 
+  Objek Pipedrive yang ingin Anda baca. Lihat tabel entitas yang didukung di bawah ini untuk memeriksa entitas yang tersedia. 

 **Entitas yang didukung** 


| Entitas | Dapat disaring | Mendukung Batas | Mendukung Order By | Mendukung Pilih \$1 | Mendukung Partisi | 
| --- | --- | --- | --- | --- | --- | 
| Aktivitas | Ya | Ya | Tidak | Ya | Ya | 
| Jenis Aktivitas | Tidak | Tidak | Tidak | Ya | Tidak | 
| Log Panggilan | Tidak | Tidak | Tidak | Ya | Tidak | 
| Mata Uang | Ya | Ya | Tidak | Ya | Tidak | 
| Penawaran | Ya | Ya | Ya | Ya | Ya | 
| Prospek | Ya | Ya | Ya | Ya | Tidak | 
| Sumber Timbal | Tidak | Ya | Tidak | Ya | Tidak | 
| Label Timbal | Tidak | Tidak | Tidak | Tidak | Tidak | 
| Catatan | Ya | Ya | Ya | Ya | Ya | 
| Organisasi | Ya | Ya | Tidak | Ya | Ya | 
| Set Izin | Ya | Tidak | Tidak | Ya | Tidak | 
| Orang | Ya | Ya | Ya | Ya | Ya | 
| Alur | Tidak | Ya | Tidak | Ya | Tidak | 
| Produk | Ya | Ya | Tidak | Ya | Ya | 
| Peran | Tidak | Ya | Tidak | Ya | Tidak | 
| Tahapan | Ya | Ya | Tidak | Ya | Tidak | 
| Pengguna | Tidak | Tidak | Tidak | Ya | Tidak | 

 **Contoh** 

```
pipedrive_read= glueContext.create_dynamic_frame.from_options(
    connection_type="PIPEDRIVE",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "activites",
        "API_VERSION": "v1"
    }
```

 **Detail entitas dan bidang Pipedrive** 

 Daftar entitas: 
+  Kegiatan: [https://developers.pipedrive.com/docs/api/v1/Activities](https://developers.pipedrive.com/docs/api/v1/Activities) 
+  Jenis Kegiatan: [https://developers.pipedrive.com/docs/api/v1/ActivityTypes](https://developers.pipedrive.com/docs/api/v1/ActivityTypes) 
+  Log Panggilan: [https://developers.pipedrive.com/docs/api/v1/CallLogs](https://developers.pipedrive.com/docs/api/v1/CallLogs) 
+  Mata uang: [https://developers.pipedrive.com/docs/api/v1/Currencies](https://developers.pipedrive.com/docs/api/v1/Currencies) 
+  Penawaran: [https://developers.pipedrive.com/docs/api/v1/Deals](https://developers.pipedrive.com/docs/api/v1/Deals) 
+  Memimpin: [https://developers.pipedrive.com/docs/api/v1/Leads](https://developers.pipedrive.com/docs/api/v1/Leads) 
+  Sumber Utama: [https://developers.pipedrive.com/docs/api/v1/LeadSources](https://developers.pipedrive.com/docs/api/v1/LeadSources) 
+  Label Timbal: [https://developers.pipedrive.com/docs/api/v1/LeadLabels](https://developers.pipedrive.com/docs/api/v1/LeadLabels) 
+  Catatan: [https://developers.pipedrive.com/docs/api/v1/Notes](https://developers.pipedrive.com/docs/api/v1/Notes) 
+  Organizations: [https://developers.pipedrive.com/docs/api/v1/Organizations](https://developers.pipedrive.com/docs/api/v1/Organizations) 
+  Set Izin: [https://developers.pipedrive.com/docs/api/v1/PermissionSets](https://developers.pipedrive.com/docs/api/v1/PermissionSets) 
+  Orang: [https://developers.pipedrive.com/docs/api/v1/Persons](https://developers.pipedrive.com/docs/api/v1/Persons) 
+  Pipa: [https://developers.pipedrive.com/docs/api/v1/Pipelines](https://developers.pipedrive.com/docs/api/v1/Pipelines) 
+  Produk: [https://developers.pipedrive.com/docs/api/v1/Products](https://developers.pipedrive.com/docs/api/v1/Products) 
+  Peran: [https://developers.pipedrive.com/docs/api/v1/Roles](https://developers.pipedrive.com/docs/api/v1/Roles) 
+  Tahapan: [https://developers.pipedrive.com/docs/api/v1/Stages](https://developers.pipedrive.com/docs/api/v1/Stages) 
+  Pengguna: [https://developers.pipedrive.com/docs/api/v1/Users](https://developers.pipedrive.com/docs/api/v1/Users) 


| Entitas | Tipe data | Operator yang Didukung | 
| --- | --- | --- | 
| Aktivitas, Penawaran, Catatan, Organisasi, Orang dan Produk. | Date | '=' | 
|  | Bilangan Bulat | '=' | 
|  | String | '=' | 
|  | Boolean | '=' | 

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

 Di Pipedrive, hanya satu bidang (due\$1date) dari entitas Aktivitas yang mendukung partisi berbasis lapangan. Ini adalah bidang Tanggal. 

 Opsi percikan tambahan`PARTITION_FIELD`,, `LOWER_BOUND``UPPER_BOUND`, `NUM_PARTITIONS` dapat diberikan 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 percikan secara bersamaan. 
+  `PARTITION_FIELD`: nama bidang yang akan digunakan untuk mempartisi kueri. 
+  `LOWER_BOUND`: nilai batas bawah inklusif dari bidang partisi yang dipilih. 

   Untuk tanggal, kami menerima format tanggal Spark yang digunakan dalam kueri Spark SQL. Contoh nilai yang valid:`"2024-02-06"`. 
+  `UPPER_BOUND`: nilai batas atas eksklusif dari bidang partisi yang dipilih. 
+  `NUM_PARTITIONS`: jumlah partisi. 

 **Contoh** 

```
pipedrive_read = glueContext.create_dynamic_frame.from_options(
    connection_type="PIPEDRIVE",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "activites",
        "API_VERSION": "v1",
        "PARTITION_FIELD": "due_date"
        "LOWER_BOUND": "2023-09-07T02:03:00.000Z"
        "UPPER_BOUND": "2024-05-07T02:03:00.000Z"
        "NUM_PARTITIONS": "10"
    }
```

# Referensi opsi koneksi Pipedrive
<a name="pipedrive-connection-options"></a>

Berikut ini adalah opsi koneksi untuk Pipedrive:
+  `ENTITY_NAME`(String) - (Diperlukan) Digunakan untuk Baca/Tulis. Nama Objek Anda di Pipedrive. 
+  `API_VERSION`(String) - (Diperlukan) Digunakan untuk Baca/Tulis. Versi Pipedrive Rest API yang ingin Anda gunakan. Contoh: v1. 
+  `INSTANCE_URL`(String) - (Diperlukan) URL dari contoh di mana pengguna ingin menjalankan operasi. Contoh: v1. 
+  `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. 

# Batasan
<a name="pipedrive-connector-limitations"></a>

Berikut ini adalah batasan untuk konektor Pipedrive:
+ Pipedrive mendukung partisi berbasis bidang hanya untuk satu entitas (Aktivitas).
+ Pipedrive mendukung partisi berbasis rekaman untuk entitas Aktivitas, Penawaran, Catatan, Orang, Organizations, dan Produk.
+ Di entitas Penawaran, bidang status sebagai filter akan mengembalikan semua catatan jika nilai filter nilai tidak valid digunakan.
+ Di entitas Deals, pemesanan dengan beberapa bidang tidak didukung.
+ Untuk mendapatkan data kinerja, kami menggunakan AWS akun lokal. Namun, karena keterbatasan menyegarkan token akses secara lokal, AWS Glue pekerjaan untuk memproses 1 GB data gagal. Akibatnya, kami telah mengoptimalkan uji kinerja dengan 179 MB data, dan hasil di atas didasarkan pada pengoptimalan ini. Namun demikian, kami telah mengamati bahwa dengan meningkatnya jumlah partisi, titik akhir SaaS membutuhkan lebih banyak waktu dibandingkan dengan satu partisi. Kami telah berkonsultasi dengan tim dukungan Pipedrive mengenai perilaku ini, dan mereka memberi tahu kami bahwa Pipedrive diam-diam membatasi permintaan dan menunda respons. Oleh karena itu, saat menjalankan AWS Glue pekerjaan dengan kumpulan data besar atau memanggil titik akhir API yang sama beberapa kali, ini dapat mengakibatkan masalah batas waktu karena implementasi Pipedrive API. Namun, waktu respons konektor dan shim menurun seperti yang diharapkan dengan peningkatan jumlah partisi.