

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

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

 Pipedrive è un CRM per la gestione della pipeline di vendita progettato per aiutare le piccole imprese a gestire i lead, monitorare le attività di vendita e concludere più affari. Pipedrive permette ai team di vendita delle piccole imprese di semplificare i processi e consolidare i dati di vendita in un unico strumento CRM unificato. Se sei un utente Pipedrive, puoi connetterti AWS Glue al tuo account Pipedrive. Quindi, puoi usare Pipedrive come origine dati nei tuoi processi ETL. Esegui questi lavori per trasferire dati tra Pipedrive e AWS servizi o altre applicazioni supportate. 

**Topics**
+ [AWS Glue supporto per Pipedrive](pipedrive-support.md)
+ [Policy contenenti le operazioni API per creare e utilizzare le connessioni](pipedrive-configuring-iam-permissions.md)
+ [Configurazione di Pipedrive](pipedrive-configuring.md)
+ [Configurazione delle connessioni Pipedrive](pipedrive-configuring-connections.md)
+ [Lettura da entità Pipedrive](pipedrive-reading-from-entities.md)
+ [Indicazioni di riferimento alle opzioni di connessione a Pipedrive](pipedrive-connection-options.md)
+ [Limitazioni](pipedrive-connector-limitations.md)

# AWS Glue supporto per Pipedrive
<a name="pipedrive-support"></a>

AWS Glue supporta Pipedrive come segue:

**Supportato come origine?**  
Sì. Puoi utilizzare i job AWS Glue ETL per interrogare i dati da Pipedrive.

**Supportato come destinazione?**  
No.

**Versioni API Pipedrive supportate**  
 v1. 

# Policy contenenti le operazioni API per creare e utilizzare le connessioni
<a name="pipedrive-configuring-iam-permissions"></a>

 La seguente politica di esempio descrive le AWS autorizzazioni richieste per la creazione e l'utilizzo delle connessioni. Se si sta creando un nuovo ruolo, creare una policy che contenga quanto segue: 

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

****  

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

------

È anche possibile utilizzare le seguenti policy IAM per autorizzare l'accesso:
+  [AWSGlueServiceRole](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AWSGlueServiceRole)— Garantisce l'accesso alle risorse che diversi AWS Glue processi richiedono per l'esecuzione per conto dell'utente. Queste risorse includono Amazon S3 AWS Glue, IAM, CloudWatch Logs e Amazon EC2. Se segui la convenzione di denominazione delle risorse specificata in questa politica, AWS Glue i processi dispongono delle autorizzazioni necessarie. Questa policy è in genere collegata ai ruoli specificati quando si definiscono crawler, processi ed endpoint di sviluppo. 
+  [AWSGlueConsoleFullAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AWSGlueConsoleFullAccess)— Concede l'accesso completo alle AWS Glue risorse quando un'identità a cui è allegata la policy utilizza la AWS console di gestione. Se si segue la convenzione per la denominazione per le risorse specificate nella policy, gli utenti hanno la piena funzionalità della console. Questa policy è in genere associata agli utenti della AWS Glue console. 

# Configurazione di Pipedrive
<a name="pipedrive-configuring"></a>

Prima di poter utilizzare AWS Glue per trasferire dati da Pipedrive, devi soddisfare questi requisiti:

## Requisiti minimi
<a name="pipedrive-configuring-min-requirements"></a>
+  Avere un account Pipedrive. 
+  L'account Pipedrive è abilitato per l'accesso alle API. 

 Se soddisfi questi requisiti, sei pronto per connetterti AWS Glue al tuo account Pipedrive. Per le connessioni tipiche, non è necessario fare nient'altro in Pipedrive. 

# Configurazione delle connessioni Pipedrive
<a name="pipedrive-configuring-connections"></a>

 Pipedrive supporta il tipo di concessione AUTHORIZATION\$1CODE per. OAuth2 
+  Questo tipo di concessione è considerato «a tre gambe» in OAuth quanto si basa sul reindirizzamento degli utenti al server di autorizzazione di terze parti per autenticare l'utente. Viene utilizzato durante la creazione di connessioni tramite la console. AWS Glue Per impostazione predefinita, l'utente che crea una connessione può fare affidamento su un'app connessa AWS Glue di proprietà in cui non è necessario fornire alcuna informazione OAuth correlata ad eccezione dell'url dell'istanza di Pipedrive. La AWS Glue Console reindirizzerà l'utente a Pipedrive dove l'utente deve effettuare il login e consentire AWS Glue le autorizzazioni richieste per accedere alla propria istanza Pipedrive. 
+  Gli utenti devono scegliere di creare la propria app connessa in Pipedrive e fornire il proprio ID client e il segreto del client quando creano connessioni tramite la Console. AWS Glue In questo scenario, verranno comunque reindirizzati a Pipedrive per accedere e AWS Glue autorizzare l'accesso alle proprie risorse. 
+  Questo tipo di concessione genera un token di aggiornamento e uno di accesso. Il token di accesso è attivo per un'ora e può essere aggiornato automaticamente senza l'interazione dell'utente utilizzando il token di aggiornamento. 
+  Per ulteriori informazioni, consulta la [documentazione sulla creazione di un'app connessa](https://developers.pipedrive.com/docs/api/v1/Oauth) per il flusso AUTHORIZATION\$1CODE. OAuth 

Per configurare una connessione a Pipedrive:

1.  In AWS Secrets Manager, crea un segreto con i seguenti dettagli. È necessario creare un segreto per ogni connessione in AWS Glue. 

   1.  Per l'app connessa gestita dal cliente, il segreto deve contenere l'app connessa Consumer Secret con USER\$1MANAGED\$1CLIENT\$1APPLICATION\$1CLIENT\$1SECRET come chiave. 

1. In AWS Glue Studio, crea una connessione in **Connessioni dati** seguendo i passaggi seguenti: 

   1.  In Connessioni dati, scegliere **Crea connessione**. 

   1. Quando si seleziona una **Origine dati**, selezionare Pipedrive.

   1. Fornire **instanceURL** di Pipedrive.

   1.  Seleziona il ruolo IAM che AWS Glue può assumere e dispone delle autorizzazioni per le seguenti azioni: 

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

****  

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

------

   1.  Fornisci l'applicazione client gestita dagli utenti ClientId del Pipedrive a cui desideri connetterti. 

   1.  Seleziona quello `secretName` che desideri utilizzare per questa connessione per AWS Glue inserire i token. 

   1.  Selezionare le opzioni di rete se si desidera utilizzare la propria rete. 

1.  Concedi il permesso di lettura `secretName` al ruolo IAM associato al tuo AWS Glue lavoro. Scegli **Next (Successivo)**. 

1.  Fornire **connectionName** e scegliere **Successivo**. 

1.  Nella pagina successiva, scegliere **Crea connessione**. Si dovrà accedere a Pipedrive. Fornire nome utente e password e scegliere **Accedi**. 

1.  Una volta effettuato l'accesso, scegliere **Continua sull'app**. Ora la connessione è pronta per essere utilizzata. 

1.  Nella configurazione del AWS Glue lavoro, fornisci `connectionName` una **connessione di rete aggiuntiva**. 

# Lettura da entità Pipedrive
<a name="pipedrive-reading-from-entities"></a>

 **Prerequisiti** 
+  Un oggetto di Pipedrive da cui si desidera leggere. Consultare la tabella delle entità supportate qui di seguito per verificare quelle disponibili. 

 **Entità supportate** 


| Entità | Può essere Filtrato | Supporta Limite | Supporta Ordina per | Supporta Seleziona \$1 | Supporta Partizionamento | 
| --- | --- | --- | --- | --- | --- | 
| Attività | Sì  | Sì | No | Sì | Sì | 
| Tipo di attività | No | No | No | Sì | No | 
| Log delle chiamate | No | No | No | Sì | No | 
| Valute | Sì  | Sì | No | Sì | No | 
| Offerte | Sì  | Sì | Sì | Sì | Sì | 
| Lead | Sì  | Sì | Sì | Sì | No | 
| Fonti di lead | No | Sì | No | Sì | No | 
| Etichette di lead | No | No | No | No | No | 
| Note | Sì  | Sì | Sì | Sì | Sì | 
| Organizzazione | Sì  | Sì | No | Sì | Sì | 
| Set di autorizzazioni | Sì | No | No | Sì | No | 
| Persone | Sì  | Sì | Sì | Sì | Sì | 
| Pipelines | No | Sì | No | Sì | No | 
| Prodotti | Sì  | Sì | No | Sì | Sì | 
| Roles | No | Sì | No | Sì | No | 
| Stage | Sì  | Sì | No | Sì | No | 
| Utenti | No | No | No | Sì | No | 

 **Esempio** 

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

 **Dettagli dell'entità e del campo di Pipedrive** 

 Elenco delle entità: 
+  Attività: [https://developers.pipedrive.com/docs/api/v1/Activities](https://developers.pipedrive.com/docs/api/v1/Activities) 
+  Tipo di attività: [https://developers.pipedrive.com/docs/api/v1/ActivityTypes](https://developers.pipedrive.com/docs/api/v1/ActivityTypes) 
+  Registri delle chiamate: [https://developers.pipedrive.com/docs/api/v1/CallLogs](https://developers.pipedrive.com/docs/api/v1/CallLogs) 
+  Valute: [https://developers.pipedrive.com/docs/api/v1/Currencies](https://developers.pipedrive.com/docs/api/v1/Currencies) 
+  Offerte: [https://developers.pipedrive.com/docs/api/v1/Deals](https://developers.pipedrive.com/docs/api/v1/Deals) 
+  Conduce: [https://developers.pipedrive.com/docs/api/v1/Leads](https://developers.pipedrive.com/docs/api/v1/Leads) 
+  Fonti di piombo: [https://developers.pipedrive.com/docs/api/v1/LeadSources](https://developers.pipedrive.com/docs/api/v1/LeadSources) 
+  Etichette di piombo: [https://developers.pipedrive.com/docs/api/v1/LeadLabels](https://developers.pipedrive.com/docs/api/v1/LeadLabels) 
+  Note: [https://developers.pipedrive.com/docs/api/v1/Notes](https://developers.pipedrive.com/docs/api/v1/Notes) 
+  Organizzazioni: [https://developers.pipedrive.com/docs/api/v1/Organizations](https://developers.pipedrive.com/docs/api/v1/Organizations) 
+  Set di autorizzazioni: [https://developers.pipedrive.com/docs/api/v1/PermissionSets](https://developers.pipedrive.com/docs/api/v1/PermissionSets) 
+  Persone: [https://developers.pipedrive.com/docs/api/v1/Persons](https://developers.pipedrive.com/docs/api/v1/Persons) 
+  Condutture: [https://developers.pipedrive.com/docs/api/v1/Pipelines](https://developers.pipedrive.com/docs/api/v1/Pipelines) 
+  Prodotti: [https://developers.pipedrive.com/docs/api/v1/Products](https://developers.pipedrive.com/docs/api/v1/Products) 
+  Ruoli: [https://developers.pipedrive.com/docs/api/v1/Roles](https://developers.pipedrive.com/docs/api/v1/Roles) 
+  Fasi: [https://developers.pipedrive.com/docs/api/v1/Stages](https://developers.pipedrive.com/docs/api/v1/Stages) 
+  Utenti: [https://developers.pipedrive.com/docs/api/v1/Users](https://developers.pipedrive.com/docs/api/v1/Users) 


| Entità | Tipo di dati | Operatori supportati | 
| --- | --- | --- | 
| Attività, Offerte, Note, Organizzazione, Persone e Prodotti. | Data | '=' | 
|  | Numero intero | '=' | 
|  | Stringa | '=' | 
|  | Booleano | '=' | 

## Query di partizionamento
<a name="pipedrive-partitioning-queries"></a>

 In Pipedrive, solo un campo (due\$1date) dell'entità Attività supporta il partizionamento basato sul campo. È un campo Data. 

 Se si desidera utilizzare la simultaneità in Spark, possono essere fornite opzioni Spark `PARTITION_FIELD`, `LOWER_BOUND`, `UPPER_BOUND`, `NUM_PARTITIONS` aggiuntive. Con questi parametri, la query originale viene suddivisa in `NUM_PARTITIONS` query secondarie che possono essere eseguite contemporaneamente dalle attività Spark. 
+  `PARTITION_FIELD`: il nome del campo da utilizzare per partizionare la query. 
+  `LOWER_BOUND`: un valore limite inferiore inclusivo del campo di partizione scelto. 

   Per la data, accettiamo il formato di data di Spark utilizzato nelle query di Spark SQL. Esempio di valori validi: `"2024-02-06"`. 
+  `UPPER_BOUND`: un valore limite superiore esclusivo del campo di partizione scelto. 
+  `NUM_PARTITIONS`: numero di partizioni. 

 **Esempio** 

```
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"
    }
```

# Indicazioni di riferimento alle opzioni di connessione a Pipedrive
<a name="pipedrive-connection-options"></a>

Di seguito sono riportate le opzioni di connessione per Pipedrive:
+  `ENTITY_NAME`(String): (obbligatorio) utilizzato per la lettura/scrittura. Il nome dell'oggetto in Pipedrive. 
+  `API_VERSION`(String): (obbligatorio) utilizzato per la lettura/scrittura. Versione dell'API Rest di Pipedrive da utilizzare. Esempio: v1. 
+  `INSTANCE_URL`(String): (obbligatorio) URL dell'istanza in cui l'utente desidera eseguire le operazioni. Ad esempio: v1. 
+  `SELECTED_FIELDS`(List<String>): predefinito, vuoto (SELECT \$1). Utilizzato per la lettura. Colonne da selezionare per l'oggetto. 
+  `FILTER_PREDICATE`(Stringa): predefinito: vuoto. Utilizzato per la lettura. Dev'essere in formato Spark SQL. 
+  `QUERY`(Stringa): predefinito: vuoto. Utilizzato per la lettura. Query Spark SQL completa. 
+  `PARTITION_FIELD`(Stringa): utilizzato per la lettura. Campo da utilizzare per partizionare la query. 
+  `LOWER_BOUND`(Stringa): utilizzato per la lettura. Un valore limite inferiore inclusivo del campo di partizione scelto. 
+  `UPPER_BOUND`(Stringa): utilizzato per la lettura. Un valore limite superiore esclusivo del campo di partizione scelto. 
+  `NUM_PARTITIONS`(Numero intero): predefinito: 1. Utilizzato per la lettura. Numero di partizioni da leggere. 

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

Di seguito sono riportate le limitazioni per il connettore di Pipedrive:
+ Pipedrive supporta il partizionamento basato sul campo solo per un'entità (Attività).
+ Pipedrive supporta il partizionamento basato su record per le entità Attività, Offerte, Note, Persone, Organizzazioni e Prodotti.
+ Nell'entità Offerte, il campo dello stato come filtro restituirà tutti i record se viene utilizzato un valore di filtro con valore non valido.
+ Nell'entità Offerte, gli ordini con più campi non sono supportati.
+ Per ottenere dati sulle prestazioni, utilizziamo un AWS account locale. Tuttavia, a causa della limitazione dell'aggiornamento locale del token di accesso, il AWS Glue processo di elaborazione di 1 GB di dati non riesce. Di conseguenza, abbiamo ottimizzato il test delle prestazioni con 179 MB di dati e i risultati sopra riportati si basano su questa ottimizzazione. Tuttavia, abbiamo osservato che con un numero crescente di partizioni, l'endpoint SaaS impiega più tempo rispetto a una singola partizione. Abbiamo consultato il team di supporto di Pipedrive in merito a questo comportamento e ci hanno informato che Pipedrive sta limitando silenziosamente le richieste e ritardando la risposta. Pertanto, quando si esegue il AWS Glue processo con set di dati di grandi dimensioni o si chiama più volte lo stesso endpoint API, potrebbe verificarsi un problema di timeout dovuto all'implementazione dell'API Pipedrive. Tuttavia, i tempi di risposta del connettore e dello shim stanno diminuendo come previsto con l'aumento del numero di partizioni.