

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 Zoho CRM
<a name="connecting-to-data-zoho-crm"></a>

Zoho CRM funge da archivio unico per riunire le attività di vendita, marketing e assistenza clienti e per ottimizzare processi, policy e risorse umane in un'unica piattaforma. Zoho CRM può essere facilmente personalizzato per soddisfare le specifiche esigenze delle aziende di qualsiasi tipo e dimensione.

La piattaforma per sviluppatori di Zoho CRM offre il giusto mix di strumenti low-code e pro-code per businesses/enterprises automatizzare il lavoro, integrare i dati nello stack aziendale e creare soluzioni personalizzate per web e dispositivi mobili.

**Topics**
+ [AWS Glue supporto per Zoho CRM](zoho-crm-support.md)
+ [Policy contenenti le operazioni API per creare e utilizzare le connessioni](zoho-crm-configuring-iam-permissions.md)
+ [Configurazione di Zoho CRM](zoho-crm-configuring.md)
+ [Configurazione delle connessioni Zoho CRM](zoho-crm-configuring-connections.md)
+ [Lettura dalle entità Zoho CRM](zoho-crm-reading-from-entities.md)
+ [Opzioni di connessione Zoho CRM](zoho-crm-connection-options.md)
+ [Limitazioni e note per il connettore Zoho CRM](zoho-crm-connector-limitations.md)

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

AWS Glue supporta Zoho CRM come segue:

**Supportato come origine?**  
Sì, sincrona e asincrona. Puoi utilizzare i job AWS Glue ETL per interrogare i dati da Zoho CRM.

**Supportato come destinazione?**  
No.

**Versioni dell'API Zoho CRM supportate**  
Sono supportate le seguenti versioni delle API di Zoho CRM:
+ v7

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

La seguente policy di esempio descrive le autorizzazioni AWS IAM 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": "*"
    }
  ]
}
```

------

In alternativa, se non desideri utilizzare il metodo precedente, utilizza le seguenti policy IAM gestite:
+ [AWSGlueServiceRole](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AWSGlueServiceRole)— Garantisce l'accesso alle risorse che AWS Glue i vari processi richiedono per l'esecuzione per conto dell'utente. Queste risorse includono AWS Glue Amazon S3, 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 richieste. 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 Zoho CRM
<a name="zoho-crm-configuring"></a>

Prima di poterli utilizzare AWS Glue per trasferire dati da Zoho CRM, devi soddisfare questi requisiti:

## Requisiti minimi
<a name="zoho-crm-configuring-min-requirements"></a>

I requisiti minimi sono i seguenti:
+ Possedere un account Zoho CRM.
+ L'account Zoho CRM è abilitato per l'accesso all'API.
+ Hai un client API registrato nella console API per ottenere OAuth le credenziali.

# Configurazione delle connessioni Zoho CRM
<a name="zoho-crm-configuring-connections"></a>

Il tipo di concessione determina il modo in cui AWS Glue comunica con Zoho CRM per richiedere l'accesso ai tuoi dati. La scelta influisce sui requisiti da soddisfare prima di creare la connessione. Zoho CRM supporta solo il tipo di concessione AUTHORIZATION\$1CODE per 2.0. OAuth 
+ Questo tipo di concessione è considerato «a tre gambe» in OAuth quanto si basa sul reindirizzamento degli utenti a un server di autorizzazione di terze parti per autenticare l'utente. Viene utilizzato durante la creazione di connessioni tramite la console. AWS Glue La AWS Glue console reindirizzerà l'utente a Zoho CRM, dove l'utente deve effettuare il login e consentire a Glue le autorizzazioni richieste per accedere alla propria istanza Zoho CRM.
+ Gli utenti possono comunque scegliere di creare la propria app connessa in Zoho CRM e fornire il proprio ID client, URL di autenticazione, URL del token e URL dell'istanza durante la creazione di connessioni tramite la console. AWS Glue In questo scenario, verranno comunque reindirizzati a Zoho CRM per accedere e autorizzare l'accesso alle proprie risorse. AWS Glue 
+ Questo tipo di concessione genera un token di aggiornamento e uno di accesso. Il token di accesso rimarrà valido per un'ora e potrebbe essere aggiornato automaticamente senza l'interazione dell'utente utilizzando il token di aggiornamento.
+ [Per la documentazione pubblica di Zoho CRM sulla creazione di un'app connessa per il flusso del codice di autorizzazione, consulta Autenticazione. OAuth ](https://www.zoho.com/crm/developer/docs/api/v7/oauth-overview.html)

Per configurare una connessione Zoho CRM:

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

   1. In **Tipo di connessione** selezionare Zoho CRM.

   1. Specificare l'`INSTANCE_URL` dell'istanza di Zoho CRM a cui si desidera connettersi.

   1. Specificare l'ID del client dell'applicazione dell'utente.

   1. Selezionare l'**URL Auth** appropriato dal menu a discesa.

   1. Selezionare l'**URL del token** appropriato dal menu a discesa.

   1. Seleziona il ruolo AWS 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. 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.

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

# Lettura dalle entità Zoho CRM
<a name="zoho-crm-reading-from-entities"></a>

**Prerequisito**

Oggetti Zoho CRM da cui si desidera leggere. Sarà necessario il nome dell'oggetto.

**Entità supportate come origine Sync**:


| Entità | Può essere filtrato | Supporta limite | Supporta Ordina per | Supporta Seleziona \$1 | Supporta il partizionamento | 
| --- | --- | --- | --- | --- | --- | 
| Prodotto | Sì  | Sì | Sì | Sì | Sì | 
| Quote | Sì  | Sì | Sì | Sì | Sì | 
| Ordine di acquisto | Sì  | Sì | Sì | Sì | Sì | 
| Soluzione | Sì  | Sì | Sì | Sì | Sì | 
| Esegui una chiamata a | Sì  | Sì | Sì | Sì | Sì | 
| Operazione | Sì  | Sì | Sì | Sì | Sì | 
| Event | Sì  | Sì | Sì | Sì | Sì | 
| Fattura | Sì  | Sì | Sì | Sì | Sì | 
| Account | Sì  | Sì | Sì | Sì | Sì | 
| Contatti | Sì  | Sì | Sì | Sì | Sì | 
| Fornitori | Sì  | Sì | Sì | Sì | Sì | 
| Campagna | Sì  | Sì | Sì | Sì | Sì | 
| Offerta | Sì  | Sì | Sì | Sì | Sì | 
| Lead | Sì  | Sì | Sì | Sì | Sì | 
| Modulo personalizzato | Sì  | Sì | Sì | Sì | Sì | 
| Ordine di vendita | Sì  | Sì | Sì | Sì | Sì | 
| Prezzari | Sì  | Sì | Sì | Sì | Sì | 
| Caso | Sì  | Sì | Sì | Sì | Sì | 

**Esempio**:

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

**Entità supportate come origine Async**:


| Entità | Può essere filtrato | Supporta limite | Supporta Ordina per | Supporta Seleziona \$1 | Supporta il partizionamento | 
| --- | --- | --- | --- | --- | --- | 
| Prodotto | Sì | No | No | Sì | No | 
| Quote | Sì | No | No | Sì | No | 
| Ordine di acquisto | Sì | No | No | Sì | No | 
| Soluzione | Sì | No | No | Sì | No | 
| Esegui una chiamata a | Sì | No | No | Sì | No | 
| Operazione | Sì | No | No | Sì | No | 
| Event | Sì | No | No | Sì | No | 
| Fattura | Sì | No | No | Sì | No | 
| Account | Sì | No | No | Sì | No | 
| Contatti | Sì | No | No | Sì | No | 
| Fornitori | Sì | No | No | Sì | No | 
| Campagna | Sì | No | No | Sì | No | 
| Offerta | Sì | No | No | Sì | No | 
| Lead | Sì | No | No | Sì | No | 
| Modulo personalizzato | Sì | No | No | Sì | No | 
| Ordine di vendita | Sì | No | No | Sì | No | 
| Prezzari | Sì | No | No | Sì | No | 
| Caso | Sì | No | No | Sì | No | 

**Esempio**:

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

**Dettagli del campo Zoho CRM**:

Zoho CRM fornisce endpoint per recuperare i metadati in modo dinamico per le entità supportate. Pertanto, il supporto dell'operatore viene acquisito a livello di tipo di dati.

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

## Query di partizionamento
<a name="zoho-crm-reading-partitioning-queries"></a>

Il partizionamento non è supportato in modalità asincrona.

**Partizionamento basato su filtri (modalità sincrona)**:

È possibile fornire le opzioni Spark aggiuntive `PARTITION_FIELD`, `LOWER_BOUND`, `UPPER_BOUND` e `NUM_PARTITIONS` se si desidera utilizzare la concorrenza in Spark. 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 il campo Datetime accettiamo il formato di timestamp Spark utilizzato nelle query SQL di Spark.

  Esempi di valori validi:

  ```
  "2024-09-30T01:01:01.000Z"
  ```
+ `UPPER_BOUND`: un valore limite superiore **esclusivo** del campo di partizione scelto.
+ `NUM_PARTITIONS`: il numero di partizioni.

Esempio:

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

# Opzioni di connessione Zoho CRM
<a name="zoho-crm-connection-options"></a>

Le seguenti sono le opzioni di connessione per Zoho CRM:
+ `ENTITY_NAME`(String): (obbligatorio) utilizzato per la lettura. Il nome dell'oggetto in Zoho CRM.
+ `API_VERSION`(String): (obbligatorio) utilizzato per la lettura. La versione dell'API Zoho CRM Rest che si desidera utilizzare.
+ `SELECTED_FIELDS`(Elenco<Stringa>): predefinito: vuoto (SELEZIONA \$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.
+ `INSTANCE_URL`(Stringa): (obbligatorio) utilizzato per la lettura. Un URL di istanza Zoho CRM valido.
+ `TRANSFER_MODE`(Stringa): utilizzato per indicare se la query deve essere eseguita in modalità asincrona.

# Limitazioni e note per il connettore Zoho CRM
<a name="zoho-crm-connector-limitations"></a>

Di seguito sono riportate le limitazioni o le note per il connettore Zoho CRM:
+ Con la versione API v7 è possibile recuperare un massimo di 100.000 record. Consultare la [documentazione di Zoho](https://www.zoho.com/crm/developer/docs/api/v7/get-records.html).
+ Per l'entità Evento, l'etichetta “Riunione” viene visualizzata come indicato nella [documentazione di Zoho](https://www.zoho.com/crm/developer/docs/api/v7/modules-api.html).
+ Per la funzionalità Seleziona tutto:
  + È possibile recuperare un massimo di 50 campi da SaaS sia per la chiamata GET che per quella POST.
  + Se si desidera avere dati per un campo specifico che non appartiene ai primi 50 campi, sarà necessario fornire manualmente l'elenco dei campi selezionati.
  + Se vengono selezionati più di 50 campi, tutti i campi oltre i 50 verranno tagliati e conterranno dati nulli in Amazon S3. 
  + Nel caso di un'espressione di filtro, se l'elenco di 50 campi fornito dall'utente non include “id” e “Created\$1Time”, verrà presentata un'eccezione personalizzata per richiedere all'utente di includere questi campi.
+ Gli operatori di filtro possono variare field-to-field nonostante abbiano lo stesso tipo di dati. Pertanto, è necessario specificare manualmente un operatore diverso per ciascun campo che genera un errore nella piattaforma SaaS. 
+ Per la funzionalità Ordina per:
  + I dati possono essere ordinati solo in base a un singolo campo senza un'espressione di filtro, mentre possono essere ordinati in base a più campi quando viene applicata un'espressione di filtro.
  + Se non viene specificato alcun tipo di ordinamento per il campo selezionato, i dati verranno recuperati in ordine crescente per impostazione predefinita. 
+ Le aree supportate per il connettore Zoho CRM sono Stati Uniti, Europa, India, Australia e Giappone.
+ [Limitazioni](https://www.zoho.com/crm/developer/docs/api/v7/bulk-read/limitations.html) della funzionalità di lettura asincrona:
  + Il limite Ordina per e il partizionamento non sono supportati nella modalità asincrona. 
  + In modalità asincrona possiamo trasferire dati fino a 500 pagine con 200.000 record per pagina.
  + Per un intervallo di un minuto è consentito il download di solo 10 richieste. Quando si supera il limite di download, il sistema restituisce un errore HTTP 429 e sospende tutte le richieste di download per un minuto prima che l'elaborazione possa riprendere.
  + Dopo aver completato il processo in blocco, è possibile accedere al file scaricabile solo per un periodo di un giorno. Dopodiché, non è possibile accedere al file tramite endpoint.
  + È possibile fornire un massimo di 200 campi di selezione tramite un endpoint. Se si specificano più di 200 campi di selezione in un endpoint, il sistema esporterà automaticamente tutti i campi disponibili per quel modulo.
  + I campi esterni creati in qualsiasi modulo non sono supportati in Bulk Read APIs.
  + L'ordinamento e le clausole `Group_by` non sono supportati tramite questo endpoint API.
  + I valori dei campi con dati sanitari sensibili verranno recuperati solo quando l'opzione **Limita l'accesso ai dati tramite API** nelle impostazioni di conformità è **disabilitata**. Se l'opzione è abilitata, il valore sarà **vuoto** nel risultato.
  + Limiti di Filtri/Criteri
    + Il numero massimo di criteri che possono essere utilizzati in una query è 25.
    + I Filtri/Criteri sui campi di testo multiriga non sono supportati.