

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Connexion à Intercom dans AWS Glue Studio
<a name="connecting-to-data-intercom"></a>

 Intercom est le système d’exploitation d’Engagement, un canal ouvert entre votre entreprise et vos clients, sur le plan du produit, sur le moment et selon leurs conditions, qui crée un dialogue permanent qui vous permet de tirer le meilleur parti de chaque engagement tout au long du parcours client. 

**Topics**
+ [AWS Glue support pour Intercom](intercom-support.md)
+ [Politiques contenant les opérations API pour la création et l’utilisation des connexions](intercom-configuring-iam-permissions.md)
+ [Configuration d’Intercom](intercom-configuring.md)
+ [Configuration de connexions Intercom](intercom-configuring-connections.md)
+ [Lecture à partir d’entités Intercom](intercom-reading-from-entities.md)
+ [Options de connexion Intercom](intercom-connection-options.md)
+ [Limitations](intercom-limitations.md)
+ [Création d’un compte Intercom et configuration de l’application client](intercom-new-account-creation.md)

# AWS Glue support pour Intercom
<a name="intercom-support"></a>

AWS Glue prend en charge Intercom comme suit :

**Prise en charge en tant que source ?**  
Oui. Vous pouvez utiliser les tâches AWS Glue ETL pour interroger les données d'Intercom.

**Prise en charge en tant que cible ?**  
Non.

**Versions d’API Intercom prises en charge**  
 v2.5. Pour la prise en charge des entités par version spécifique, consultez [Lecture à partir d’entités Intercom](intercom-reading-from-entities.md). 

# Politiques contenant les opérations API pour la création et l’utilisation des connexions
<a name="intercom-configuring-iam-permissions"></a>

 L’exemple de politique suivant décrit les autorisations IAM requises pour créer et utiliser des connexions. Si vous créez un rôle, créez une politique contenant les éléments suivants : 

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

****  

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

------

Vous pouvez également utiliser les politiques IAM gérées suivantes pour autoriser l’accès :
+  [ AWSGlueServiceRole](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AWSGlueServiceRole)— Accorde l'accès aux ressources dont AWS Glue les différents processus ont besoin pour s'exécuter en votre nom. Ces ressources incluent AWS Glue Amazon S3, IAM et Amazon EC2. Amazon CloudWatch Logs Si vous suivez la convention de dénomination des ressources spécifiée dans cette politique, AWS Glue les processus disposent des autorisations requises. Cette politique est généralement attachée aux rôles spécifiés lorsque vous définissez les crawlers, les tâches et les points de terminaison de développement. 
+  [ AWSGlueConsoleFullAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AWSGlueConsoleFullAccess)— Accorde un accès complet aux AWS Glue ressources lorsqu'une identité à laquelle la politique est attachée utilise la console AWS de gestion. Si vous suivez la convention de dénomination pour les ressources spécifiées dans la politique, les utilisateurs bénéficient des capacités totales de la console. Cette politique s'applique généralement aux utilisateurs de la AWS Glue console. 

# Configuration d’Intercom
<a name="intercom-configuring"></a>

Avant de pouvoir AWS Glue effectuer un transfert depuis Intercom, vous devez satisfaire aux exigences suivantes :

## Configuration requise
<a name="intercom-configuring-min-requirements"></a>
+  Vous disposez d’un compte Intercom. Pour de plus amples informations, veuillez consulter [Création d’un compte Intercom et configuration de l’application client](intercom-new-account-creation.md). 
+  Votre compte Intercom est activé pour accéder à l’API. 
+  Vous devez disposer d'une application sous le compte développeur Intercom qui fournit les informations d'identification du client qui permettent AWS Glue d'accéder à vos données en toute sécurité lorsqu'il passe des appels authentifiés vers votre compte. Pour plus d’informations, consultez Intercom - Étapes de création d’un compte et d’une application client. 

 Si vous répondez à ces exigences, vous êtes prêt à vous connecter AWS Glue à votre compte Intercom. 

# Configuration de connexions Intercom
<a name="intercom-configuring-connections"></a>

 Intercom prend en charge le type de `AUTHORIZATION_CODE` subvention pour OAuth 2. 

 Ce type de subvention est considéré comme « à trois étapes » OAuth car il repose sur la redirection des utilisateurs vers le serveur d'autorisation tiers pour authentifier l'utilisateur. Il est utilisé lors de la création de connexions via la AWS Glue console. La AWS Glue console redirigera l'utilisateur vers Google Ads où il devra se connecter et accorder AWS Glue les autorisations demandées pour accéder à son instance d'intercom. 

 Les utilisateurs doivent fournir leur propre identifiant client et leur propre secret client lors de la création de connexions via la AWS Glue console. Dans ce scénario, ils seront toujours redirigés vers Intercom pour se connecter et autoriser l'accès AWS Glue à leurs ressources. 

 Ce type d’autorisation donne lieu à un jeton d’actualisation et à un jeton d’accès. Le jeton d’accès est de courte durée et peut être actualisé automatiquement sans interaction de l’utilisateur à l’aide du jeton d’actualisation. 

 Pour plus d'informations sur la création d'une application connectée pour le OAuth flux de code d'autorisation, consultez la section [API des annonces](https://developers.intercom.com/building-apps/docs/setting-up-oauth). 

Pour configurer une connexion Intercom :

1.  Dans AWS Secrets Manager, créez un secret avec les informations suivantes. Il est nécessaire de créer un secret pour chaque connexion dans AWS Glue. 

   1.  Pour les applications connectées gérées par le client : le secret doit contenir le jeton d’accès à l’application connectée, le jeton d’actualisation, ainsi que les valeurs client\$1id et client\$1secret. 

1. Dans AWS Glue Glue Studio, créez une connexion sous **Data Connections** en suivant les étapes ci-dessous : 

   1. Lorsque vous sélectionnez un **type de connexion**, sélectionnez Intercom.

   1. Indiquez l’environnement Intercom.

   1.  Sélectionnez le rôle IAM qui AWS Glue peut assumer et dispose des autorisations nécessaires pour les actions suivantes : 

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

****  

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

------

   1.  Sélectionnez celui `secretName` que vous souhaitez utiliser pour cette connexion AWS Glue afin d'y placer les jetons. 

   1.  Sélectionnez les options réseau si vous souhaitez utiliser votre réseau. 

1.  Accordez au rôle IAM associé à votre AWS Glue travail l'autorisation de lire`secretName`. 

# Lecture à partir d’entités Intercom
<a name="intercom-reading-from-entities"></a>

 **Conditions préalables** 
+  Un objet Intercom à partir duquel vous souhaitez lire. Reportez-vous au tableau des entités prises en charge ci-dessous pour vérifier les entités disponibles. 

 **Entités prises en charge** 


| Entité | API\$1Vversion | Peut être filtré | Limit prise en charge | Order by prise en charge | Select prise en charge\$1 | Partitionnement pris en charge | 
| --- | --- | --- | --- | --- | --- | --- | 
| Admins | v2.5 | Non | Non | Non | Oui | Non | 
| Companies | v2.5 | Non | Oui | Non | Oui | Non | 
| Conversations | v2.5 | Oui | Oui | Oui | Oui | Oui | 
| Attributs des données | v2.5 | Non | Non | Non | Oui | Non | 
| Contacts | v2.5 | Oui | Oui | Oui | Oui | Oui | 
| Segments | v2.5 | Non | Non | Non | Oui | Non | 
| Étiquettes | v2.5 | Non | Non | Non | Oui | Non | 
| Équipes | v2.5 | Non | Non | Non | Oui | Non | 

 **Exemple** 

```
Intercom_read = glueContext.create_dynamic_frame.from_options(
    connection_type="Intercom",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "company",
        "API_VERSION": "V2.5"
    }
)
```

 **Détails des entités et des champs Intercom** 


| Entité | Champ | Type de données | Opérateurs pris en charge | 
| --- | --- | --- | --- | 
| Admins | type | String | NA | 
| Admins | id | String | NA | 
| Admins | avatar | Struct | NA | 
| Admins | name | String | NA | 
| Admins | e-mail | String | NA | 
| Admins | away\$1mode\$1enabled | Booléen | NA | 
| Admins | away\$1mode\$1reassign | Booléen | NA | 
| Admins | has\$1inbox\$1seat | Booléen | NA | 
| Admins | teams\$1ids | List | NA | 
| Admins | job\$1title | String | NA | 
| Companies | type | String | NA | 
| Companies | id | String | NA | 
| Companies | app\$1id | String | NA | 
| Companies | created\$1at | DateTime | NA | 
| Companies | remote\$1created\$1at | DateTime | NA | 
| Companies | updated\$1at | DateTime | NA | 
| Companies | last\$1request\$1at | DateTime | NA | 
| Companies | plan | Struct | NA | 
| Companies | company\$1id | String | NA | 
| Companies | name | String | NA | 
| Companies | custom\$1attributes | Struct | NA | 
| Companies | session\$1count | Entier | NA | 
| Companies | monthly\$1spend | Entier | NA | 
| Companies | user\$1count | Entier | NA | 
| Companies | industry | String | NA | 
| Companies | size | Entier | NA | 
| Companies | website | String | NA | 
| Companies | tags | Struct | NA | 
| Companies | segments | Struct | NA | 
| Contacts | id | String | EQUAL\$1TO.NOT\$1EQUAL\$1TO | 
| Contacts | type | String | NA | 
| Contacts | workspace\$1id | String | NA | 
| Contacts | external\$1id | String | CONTAINS, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| Contacts | rôle | String | EQUAL\$1TO.NOT\$1EQUAL\$1TO | 
| Contacts | e-mail | String | CONTAINS, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| Contacts | phone | String | CONTAINS, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| Contacts | name | String | CONTAINS, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| Contacts | avatar | String | NA | 
| Contacts | owner\$1id | Entier | EQUAL\$1TO, NOT\$1EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| Contacts | social\$1profiles | Struct | NA | 
| Contacts | has\$1hard\$1bounced | Booléen | EQUAL\$1TO | 
| Contacts | marked\$1email\$1as\$1spam | Booléen | EQUAL\$1TO | 
| Contacts | unsubscribed\$1from\$1emails | Booléen | EQUAL\$1TO | 
| Contacts | created\$1at | DateTime | EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| Contacts | updated\$1at | DateTime | EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| Contacts | signed\$1up\$1at | DateTime | EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| Contacts | last\$1seen\$1at | DateTime | EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| Contacts | last\$1replied\$1at | DateTime | EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| Contacts | last\$1contacted\$1at | DateTime | EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| Contacts | last\$1email\$1opened\$1at | DateTime | EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| Contacts | last\$1email\$1clicked\$1at | DateTime | EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| Contacts | language\$1override | String | CONTAINS, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| Contacts | browser | String | CONTAINS, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| Contacts | browser\$1version | String | CONTAINS, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| Contacts | browser\$1language | String | CONTAINS, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| Contacts | os | String | CONTAINS, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| Contacts | location | Struct | NA | 
| Contacts | location\$1country | String | CONTAINS, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| Contacts | location\$1region | String | CONTAINS, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| Contacts | location\$1city | String | CONTAINS, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| Contacts | android\$1app\$1name | String | CONTAINS, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| Contacts | android\$1app\$1version | String | NA | 
| Contacts | android\$1device | String | NA | 
| Contacts | android\$1os\$1version | String | NA | 
| Contacts | android\$1sdk\$1version | String | CONTAINS, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| Contacts | android\$1last\$1seen\$1at | Date | NA | 
| Contacts | ios\$1app\$1name | String | CONTAINS, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| Contacts | ios\$1app\$1version | String | NA | 
| Contacts | ios\$1device | String | NA | 
| Contacts | ios\$1os\$1version | String | CONTAINS, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| Contacts | ios\$1sdk\$1version | String | CONTAINS, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| Contacts | ios\$1last\$1seen\$1at | DateTime | NA | 
| Contacts | custom\$1attributes | Struct | NA | 
| Contacts | tags | Struct | NA | 
| Contacts | notes | Struct | NA | 
| Contacts | companies | Struct | NA | 
| Contacts | unsubscribed\$1from\$1sms | Booléen | NA | 
| Contacts | sms\$1consent | Booléen | NA | 
| Contacts | opted\$1out\$1subscription\$1types | Struct | NA | 
| Contacts | referrer | String | NA | 
| Contacts | utm\$1campaign | String | NA | 
| Contacts | utm\$1content | String | NA | 
| Contacts | utm\$1medium | String | NA | 
| Contacts | utm\$1source | String | NA | 
| Contacts | utm\$1term | String | NA | 
| Conversations | type | String | NA | 
| Conversations | id | Entier | EQUAL\$1TO, NOT\$1EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| Conversations | created\$1at | DateTime | EQUAL\$1TO, NOT\$1EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| Conversations | updated\$1at | DateTime | EQUAL\$1TO, NOT\$1EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| Conversations | source | Struct | NA | 
| Conversations | source\$1id | String | EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| Conversations | source\$1type | String | EQUAL\$1TO, NOT\$1EQUAL\$1TO, | 
| Conversations | source\$1delivered\$1as | String | EQUAL\$1TO, NOT\$1EQUAL\$1TO, | 
| Conversations | source\$1subject | String | CONTAINS, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| Conversations | source\$1body | String | CONTAINS, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| Conversations | source\$1author\$1id | String | CONTAINS, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| Conversations | source\$1author\$1type | String | CONTAINS, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| Conversations | source\$1author\$1name | String | CONTAINS, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| Conversations | source\$1author\$1email | String | CONTAINS, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| Conversations | source\$1url | String | CONTAINS, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| Conversations | contacts | Struct | NA | 
| Conversations | teammates | Struct | NA | 
| Conversations | title | String | NA | 
| Conversations | admin\$1assignee\$1id | Entier | EQUAL\$1TO, NOT\$1EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| Conversations | team\$1assignee\$1id | Entier | CONTAINS, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| Conversations | custom\$1attributes | Struct | NA | 
| Conversations | ouvrir | Booléen | EQUAL\$1TO | 
| Conversations | state | String | CONTAINS, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| Conversations | lire | Booléen | EQUAL\$1TO | 
| Conversations | waiting\$1since | DateTime | EQUAL\$1TO, NOT\$1EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| Conversations | snoozed\$1until | DateTime | EQUAL\$1TO, NOT\$1EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| Conversations | tags | Struct | NA | 
| Conversations | first\$1contact\$1reply | Struct | NA | 
| Conversations | priority | String | EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| Conversations | topics | Struct | NA | 
| Conversations | sla\$1applied | Struct | NA | 
| Conversations | conversation\$1rating | Struct | NA | 
| Conversations | conversation\$1rating\$1requested\$1at | DateTime | EQUAL\$1TO, NOT\$1EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| Conversations | conversation\$1rating\$1replied\$1at | DateTime | EQUAL\$1TO, NOT\$1EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| Conversations | conversation\$1rating\$1score | Entier | EQUAL\$1TO, NOT\$1EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| Conversations | conversation\$1rating\$1remark | String | CONTAINS, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| Conversations | conversation\$1rating\$1contact\$1id | String | CONTAINS, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| Conversations | conversation\$1rating\$1admin\$1id | String | CONTAINS, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| Conversations | statistics | Struct | NA | 
| Conversations | statistics\$1time\$1to\$1assignment | Entier | EQUAL\$1TO, NOT\$1EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| Conversations | statistics\$1time\$1to\$1admin\$1reply | Entier | EQUAL\$1TO, NOT\$1EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| Conversations | statistics\$1time\$1to\$1first\$1close | Entier | EQUAL\$1TO, NOT\$1EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| Conversations | statistics\$1time\$1to\$1last\$1close | Entier | EQUAL\$1TO, NOT\$1EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| Conversations | statistics\$1median\$1time\$1to\$1reply | Entier | EQUAL\$1TO, NOT\$1EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| Conversations | statistics\$1first\$1contact\$1reply\$1at | DateTime | EQUAL\$1TO, NOT\$1EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| Conversations | statistics\$1first\$1assignment\$1at | DateTime | EQUAL\$1TO, NOT\$1EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| Conversations | statistics\$1first\$1admin\$1reply\$1at | DateTime | EQUAL\$1TO, NOT\$1EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| Conversations | statistics\$1first\$1close\$1at | DateTime | EQUAL\$1TO, NOT\$1EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| Conversations | statistics\$1last\$1assignment\$1at | DateTime | EQUAL\$1TO, NOT\$1EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| Conversations | statistics\$1last\$1assignment\$1admin\$1reply\$1at | DateTime | EQUAL\$1TO, NOT\$1EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| Conversations | statistics\$1last\$1contact\$1reply\$1at | DateTime | EQUAL\$1TO, NOT\$1EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| Conversations | statistics\$1last\$1admin\$1reply\$1at | DateTime | EQUAL\$1TO, NOT\$1EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| Conversations | statistics\$1last\$1close\$1at | DateTime | EQUAL\$1TO, NOT\$1EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| Conversations | statistics\$1last\$1closed\$1by\$1id | String | CONTAINS, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| Conversations | statistics\$1count\$1reopens | Entier | EQUAL\$1TO, NOT\$1EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| Conversations | statistics\$1count\$1assignments | Entier | EQUAL\$1TO, NOT\$1EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| Conversations | statistics\$1count\$1conversation\$1parts | Entier | EQUAL\$1TO, NOT\$1EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| Conversations | conversation\$1parts | List | NA | 
| Attributs des données | id | Entier | NA | 
| Attributs des données | type | String | NA | 
| Attributs des données | modèle | String | NA | 
| Attributs des données | name | String | NA | 
| Attributs des données | full\$1name | String | NA | 
| Attributs des données | étiquette | String | NA | 
| Attributs des données | description | String | NA | 
| Attributs des données | data\$1type | String | NA | 
| Attributs des données | options | List | NA | 
| Attributs des données | api\$1writable | Booléen | NA | 
| Attributs des données | ui\$1writable | Booléen | NA | 
| Attributs des données | personnalisé | Booléen | NA | 
| Attributs des données | archived | Booléen | NA | 
| Attributs des données | created\$1at | Booléen | NA | 
| Attributs des données | updated\$1at | DateTime | NA | 
| Attributs des données | admin\$1id | String | NA | 
| Segments | type | String | NA | 
| Segments | id | String | NA | 
| Segments | name | String | NA | 
| Segments | created\$1at | DateTime | NA | 
| Segments | updated\$1at | DateTime | NA | 
| Segments | person\$1type | String | NA | 
| Segments | count | Entier | NA | 
| Étiquettes | type | String | NA | 
| Étiquettes | id | String | NA | 
| Étiquettes | name | String | NA | 
| Équipes | type | String | NA | 
| Équipes | id | String | NA | 
| Équipes | name | String | NA | 
| Équipes | admin\$1ids | List | NA | 

 **Requêtes de partitionnement** 

 Les options Spark supplémentaires `PARTITION_FIELD`, `LOWER_BOUND`, `UPPER_BOUND` et `NUM_PARTITIONS` peuvent être indiquées si vous souhaitez utiliser la simultanéité dans Spark. Avec ces paramètres, la requête d’origine serait divisée en `NUM_PARTITIONS` nombres de sous-requêtes pouvant être exécutées simultanément par les tâches Spark. 
+  `PARTITION_FIELD` : le nom du champ à utiliser pour partitionner la requête. 
+  `LOWER_BOUND` : une valeur limite inférieure inclusive du champ de partition choisi. 

   Pour le champ Date, nous acceptons le format de date Spark utilisé dans les requêtes SQL Spark. Exemples de valeurs valides : `"2024-02-06"`. 
+  `UPPER_BOUND` : une valeur limite supérieure exclusive du champ de partition choisi. 
+  `NUM_PARTITIONS` : nombre de partitions. 

 Les détails relatifs à la prise en charge des champs de partitionnement par entité sont présentés dans le tableau suivant. 


| Nom de l'entité | Champ de partitionnement | Type de données | 
| --- | --- | --- | 
| Contacts | created\$1at, updated\$1at,last\$1seen\$1at | DateTime | 
| Conversations | id | Entier | 
| Conversations | created\$1at, updated\$1at | DateTime | 

 **Exemple** 

```
Intercom_read = glueContext.create_dynamic_frame.from_options(
    connection_type="Intercom",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "conversation",
        "API_VERSION": "V2.5",
        "PARTITION_FIELD": "created_at"
        "LOWER_BOUND": "2022-07-13T07:55:27.065Z"
        "UPPER_BOUND": "2022-08-12T07:55:27.065Z"
        "NUM_PARTITIONS": "2"
    }
)
```

# Options de connexion Intercom
<a name="intercom-connection-options"></a>

Les options de connexion pour Intercom sont les suivantes :
+  `ENTITY_NAME`(Chaîne) - (Obligatoire) Utilisé pour la lecture. Le nom de votre objet dans Intercom. 
+  `API_VERSION`(Chaîne) - (Obligatoire) Utilisé pour la lecture. Version d’API Rest Intercom que vous souhaitez utiliser. Exemple : v2.5. 
+  `SELECTED_FIELDS`(Liste<Chaîne>) - Par défaut : vide (SELECT \$1). Utilisé pour la lecture. Colonnes que vous souhaitez sélectionner pour l’objet. 
+  `FILTER_PREDICATE`(Chaîne) - Par défaut : vide. Utilisé pour la lecture. Doit être au format SQL Spark. 
+  `QUERY`(Chaîne) - Par défaut : vide. Utilisé pour la lecture. Requête Spark SQL complète. 
+  `PARTITION_FIELD`(Chaîne) - Utilisé pour la lecture. Champ à utiliser pour partitionner la requête. 
+  `LOWER_BOUND`(Chaîne) - Utilisé pour la lecture. Une valeur limite inférieure inclusive du champ de partition choisi. 
+  `UPPER_BOUND`(Chaîne) - Utilisé pour la lecture. Une valeur limite supérieure exclusive du champ de partition choisi. 
+  `NUM_PARTITIONS`(Entier) - Par défaut : 1. Utilisé pour la lecture. Nombre de partitions pour la lecture. 
+  `INSTANCE_URL`(Chaîne) - URL de l’instance sur laquelle l’utilisateur souhaite exécuter les opérations. Par exemple : [https://api.intercom.io](https://api.intercom.io). 

# Limitations
<a name="intercom-limitations"></a>

Les restrictions du connecteur Intercom sont les suivantes :
+  Lorsque vous utilisez l’entité Company, il existe une limite de 10 000 entreprises pouvant être renvoyées. Pour plus d’informations, consultez [List all companies API](https://developers.intercom.com/docs/references/2.5/rest-api/companies/list-companies). 
+  Lors de l’application de la clause Order by, le filtre est obligatoire pour les entités **Contact** et **Conversation**. 
+  MCA est pris en charge par le fournisseur de SaaS. Cependant, sur la base des limites de débit des API mentionnées dans la documentation, nous n'hébergerons pas MCA sur d'autres charges de travail AWS Glue car cela pourrait avoir un impact sur d'autres charges de travail et entraîner des problèmes de performances en raison de la contention des ressources. 

# Création d’un compte Intercom et configuration de l’application client
<a name="intercom-new-account-creation"></a>

**Création d’un compte Intercom**

1. Choisissez l’[URL Intercom](https://app.intercom.com/) et choisissez **Commencer mon essai gratuit** dans le coin supérieur droit de la page.

1. Cliquez sur le bouton **Essayer gratuitement** dans le coin supérieur droit de la page.

1. Choisissez le type d’activité dont vous avez besoin. 

1. Sur la page, saisissez toutes les informations demandées.

1. Après avoir saisi toutes les informations, choisissez **Enregistrer**.



**Création d’une application de développeur Intercom**

Pour obtenir l’**ID client** et le **secret client**, vous devez créer un compte développeur.

1. Accédez à [https://app.intercom.com/](https://app.intercom.com/).

1. Saisissez l’adresse e-mail et le mot de passe/Ouvrez une session à l’aide de Google et connectez-vous.

1. Choisissez le **profil utilisateur** dans le coin inférieur gauche et choisissez les paramètres.

1. Choisissez **Applications et intégration**.

1. Choisissez l’onglet **Hub développeur** sous **Applications et intégration**.

1. Choisissez **Nouvelle application** et créez l’application ici.

1. Indiquez le nom de l’application et choisissez **Créer l’application**.

1. Dans l’application, accédez à la section **Authentification**.

1. Choisissez l'**édition** et ajoutez une redirection URIs. Ajoutez l’URL de redirection spécifique à votre région en tant que `https://<aws-region>.console.aws.amazon.com/gluestudio/oauth`. Par exemple, ajoutez `https://us-east-1.console.aws.amazon.com/gluestudio/oauth for the us-east-1 region`.

1. Obtenez l’**ID client** et le **secret client** générés dans la section Informations de base.