

# Conexão com o Intercom no AWS Glue Studio
<a name="connecting-to-data-intercom"></a>

 O Intercom é o Engagement OS, um canal aberto entre sua empresa e seus clientes no produto, no momento e nos termos deles, criando um diálogo contínuo que permite que você aproveite ao máximo cada envolvimento ao longo da jornada do cliente. 

**Topics**
+ [Suporte do AWS Glue para o Intercom](intercom-support.md)
+ [Políticas que contêm as operações de API para criar e usar conexões](intercom-configuring-iam-permissions.md)
+ [Configuração do Intercom](intercom-configuring.md)
+ [Configuração de conexões do Intercom](intercom-configuring-connections.md)
+ [Leitura de entidades do Intercom](intercom-reading-from-entities.md)
+ [Opções de conexão do Intercom](intercom-connection-options.md)
+ [Limitações](intercom-limitations.md)
+ [Criação de uma conta do Intercom e configuração da aplicação cliente](intercom-new-account-creation.md)

# Suporte do AWS Glue para o Intercom
<a name="intercom-support"></a>

O AWS Glue oferece suporte ao Intercom da seguinte maneira:

**Compatível como fonte?**  
Sim. Você pode usar trabalhos de ETL do AWS Glue para consultar dados do Intercom.

**Compatível como destino?**  
N.º

**Versões compatíveis da API do Intercom**  
 v2.5. Para suporte de entidades por versão específica, consulte [Leitura de entidades do Intercom](intercom-reading-from-entities.md). 

# Políticas que contêm as operações de API para criar e usar conexões
<a name="intercom-configuring-iam-permissions"></a>

 O exemplo de política a seguir descreve as permissões necessárias do IAM para criar e usar conexões. Se você estiver criando um novo perfil, crie uma política que contenha o seguinte: 

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

****  

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

------

É possível usar as seguintes políticas gerenciadas do IAM para permitir acesso:
+  [AWSGlueServiceRole](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AWSGlueServiceRole): concede acesso a recursos que vários processos do AWS Glue exigem para serem executados em seu nome. Esses recursos incluem AWS Glue, Amazon S3, IAM, Amazon CloudWatch Logs e Amazon EC2. Se você seguir a convenção de nomenclatura para os recursos especificados nesta política, os processos do AWS Glue terão as permissões necessárias. Esta política geralmente é anexada a funções especificadas durante a definição de crawlers, trabalhos e endpoints de desenvolvimento. 
+  [AWSGlueConsoleFullAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AWSGlueConsoleFullAccess): concede acesso total aos recursos do AWS Glue quando uma identidade à qual a política está anexada usa o Console de Gerenciamento da AWS. Se você seguir a convenção de nomenclatura para os recursos especificados nesta política, os usuários poderão acessar todos os recursos do console. Esta política geralmente é anexada aos usuários do console do AWS Glue. 

# Configuração do Intercom
<a name="intercom-configuring"></a>

Antes de poder usar o AWS Glue para transferir dados do Intercom, você precisa atender aos seguintes requisitos:

## Requisitos mínimos
<a name="intercom-configuring-min-requirements"></a>
+  Ter uma conta do Intercom. Para obter mais informações, consulte [Criação de uma conta do Intercom e configuração da aplicação cliente](intercom-new-account-creation.md). 
+  A conta do Intercom precisa estar habilitada para acesso à API. 
+  Você deve ter uma aplicação no desenvolvedor do Intercom que fornece as credenciais que o AWS Glue usa para acessar seus dados com segurança quando faz chamadas autenticadas para sua conta. Para obter mais informações, consulte Intercom - New Account and Client App Creation Steps. 

 Se você atender a esses requisitos, poderá conectar o AWS Glue à conta do Intercom. 

# Configuração de conexões do Intercom
<a name="intercom-configuring-connections"></a>

 O Intercom é compatível com o tipo de concessão `AUTHORIZATION_CODE` para OAuth 2. 

 Esse tipo de concessão é considerado um OAuth de “três pernas”, pois conta com o redirecionamento dos usuários para o servidor de autorização de terceiros para autenticar o usuário. Ele é usado na criação de conexões por meio do Console do AWS Glue. O Console do AWS Glue redirecionará o usuário para o Google Ads, onde ele deverá fazer login e dar autorização para que as permissões solicitadas pelo AWS Glue acessem a instância do Intercom. 

 Os usuários devem fornecer seus próprios ID e segredo do cliente quando criarem conexões por meio do Console do AWS Glue. Nesse cenário, eles ainda serão redirecionados para o Intercom para fazer login e autorizar o acesso do AWS Glue aos recursos. 

 Esse tipo de concessão resulta em um token de atualização e um token de acesso. O token de acesso tem vida curta e pode ser atualizado automaticamente sem a interação do usuário usando o token de atualização. 

 Para obter mais informações sobre como criar uma aplicação conectada para o fluxo de código de autorização do OAuth, consulte a [API do Amazon Ads](https://developers.intercom.com/building-apps/docs/setting-up-oauth). 

Para configurar uma conexão do Intercom:

1.  No AWS Secrets Manager, crie um segredo com os detalhes a seguir. É necessário criar um segredo para cada conexão no AWS Glue. 

   1.  Para a aplicação conectada gerenciado pelo cliente, o segredo deve conter o token de acesso à aplicação conectada, o token de atualização, o client\$1id e o client\$1secret. 

1. No AWS Glue Glue Studio, crie uma conexão em **Conexões de dados** seguindo estas etapas: 

   1. Ao selecionar um **Tipo de conexão**, selecione Intercom.

   1. Forneça o ambiente do Intercom.

   1.  Selecione o perfil do IAM que o AWS Glue pode assumir e tem permissões para as seguintes ações: 

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

****  

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

------

   1.  Selecione o `secretName` que você deseja usar para essa conexão no AWS Glue para colocar os tokens. 

   1.  Selecione as opções de rede se quiser usar sua rede. 

1.  Conceda permissão ao perfil do IAM associado ao seu trabalho do AWS Glue para ler `secretName`. 

# Leitura de entidades do Intercom
<a name="intercom-reading-from-entities"></a>

 **Pré-requisitos** 
+  Um objeto do Intercom do qual você deseja ler. Consulte a tabela de entidades compatíveis abaixo para verificar as entidades disponíveis. 

 **Entidades compatíveis** 


| Entidade | API\$1Version | Pode ser filtrada | Oferece suporte a limite | Oferece suporte a Ordenar por | Oferece suporte a Selecionar \$1 | Oferece suporte a particionamento | 
| --- | --- | --- | --- | --- | --- | --- | 
| Admins | v2.5 | Não | Não | Não | Sim | Não | 
| Empresas | v2.5 | Não | Sim | Não | Sim | Não | 
| Conversas | v2.5 | Sim | Sim | Sim | Sim | Sim | 
| Atributos de dados | v2.5 | Não | Não | Não | Sim | Não | 
| Contatos | v2.5 | Sim | Sim | Sim | Sim | Sim | 
| Segmentos | v2.5 | Não | Não | Não | Sim | Não | 
| Tags | v2.5 | Não | Não | Não | Sim | Não | 
| Equipes | v2.5 | Não | Não | Não | Sim | Não | 

 **Exemplo** 

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

 **Detalhes das entidades e dos campos do Intercom** 


| Entidade | Campo | Tipo de dado | Operadores com suporte | 
| --- | --- | --- | --- | 
| Admins | type | String | NA | 
| Admins | id | String | NA | 
| Admins | avatar | Struct | NA | 
| Admins | nome | String | NA | 
| Admins | email | String | NA | 
| Admins | away\$1mode\$1enabled | Booleano | NA | 
| Admins | away\$1mode\$1reassign | Booleano | NA | 
| Admins | has\$1inbox\$1seat | Booleano | NA | 
| Admins | teams\$1ids | Lista | NA | 
| Admins | job\$1title | String | NA | 
| Empresas | type | String | NA | 
| Empresas | id | String | NA | 
| Empresas | app\$1id | String | NA | 
| Empresas | created\$1at | DateTime | NA | 
| Empresas | remote\$1created\$1at | DateTime | NA | 
| Empresas | updated\$1at | DateTime | NA | 
| Empresas | last\$1request\$1at | DateTime | NA | 
| Empresas | planejar | Struct | NA | 
| Empresas | company\$1id | String | NA | 
| Empresas | nome | String | NA | 
| Empresas | custom\$1attributes | Struct | NA | 
| Empresas | session\$1count | Inteiro | NA | 
| Empresas | monthly\$1spend | Inteiro | NA | 
| Empresas | user\$1count | Inteiro | NA | 
| Empresas | setor | String | NA | 
| Empresas | size | Inteiro | NA | 
| Empresas | site | String | NA | 
| Empresas | tags | Struct | NA | 
| Empresas | segmentos | Struct | NA | 
| Contatos | id | String | EQUAL\$1TO.NOT\$1EQUAL\$1TO | 
| Contatos | type | String | NA | 
| Contatos | workspace\$1id | String | NA | 
| Contatos | external\$1id | String | CONTAINS, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| Contatos | perfil | String | EQUAL\$1TO.NOT\$1EQUAL\$1TO | 
| Contatos | email | String | CONTAINS, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| Contatos | phone | String | CONTAINS, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| Contatos | nome | String | CONTAINS, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| Contatos | avatar | String | NA | 
| Contatos | owner\$1id | Inteiro | EQUAL\$1TO, NOT\$1EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| Contatos | social\$1profiles | Struct | NA | 
| Contatos | has\$1hard\$1bounced | Booleano | EQUAL\$1TO | 
| Contatos | marked\$1email\$1as\$1spam | Booleano | EQUAL\$1TO | 
| Contatos | unsubscribed\$1from\$1emails | Booleano | EQUAL\$1TO | 
| Contatos | created\$1at | DateTime | EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| Contatos | updated\$1at | DateTime | EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| Contatos | signed\$1up\$1at | DateTime | EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| Contatos | last\$1seen\$1at | DateTime | EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| Contatos | last\$1replied\$1at | DateTime | EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| Contatos | last\$1contacted\$1at | DateTime | EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| Contatos | last\$1email\$1opened\$1at | DateTime | EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| Contatos | last\$1email\$1clicked\$1at | DateTime | EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| Contatos | language\$1override | String | CONTAINS, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| Contatos | navegador | String | CONTAINS, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| Contatos | browser\$1version | String | CONTAINS, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| Contatos | browser\$1language | String | CONTAINS, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| Contatos | os | String | CONTAINS, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| Contatos | local | Struct | NA | 
| Contatos | location\$1country | String | CONTAINS, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| Contatos | location\$1region | String | CONTAINS, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| Contatos | location\$1city | String | CONTAINS, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| Contatos | android\$1app\$1name | String | CONTAINS, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| Contatos | android\$1app\$1version | String | NA | 
| Contatos | android\$1device | String | NA | 
| Contatos | android\$1os\$1version | String | NA | 
| Contatos | android\$1sdk\$1version | String | CONTAINS, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| Contatos | android\$1last\$1seen\$1at | Data | NA | 
| Contatos | ios\$1app\$1name | String | CONTAINS, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| Contatos | ios\$1app\$1version | String | NA | 
| Contatos | ios\$1device | String | NA | 
| Contatos | ios\$1os\$1version | String | CONTAINS, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| Contatos | ios\$1sdk\$1version | String | CONTAINS, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| Contatos | ios\$1last\$1seen\$1at | DateTime | NA | 
| Contatos | custom\$1attributes | Struct | NA | 
| Contatos | tags | Struct | NA | 
| Contatos | notes | Struct | NA | 
| Contatos | empresas | Struct | NA | 
| Contatos | unsubscribed\$1from\$1sms | Booleano | NA | 
| Contatos | sms\$1consent | Booleano | NA | 
| Contatos | opted\$1out\$1subscription\$1types | Struct | NA | 
| Contatos | indicador | String | NA | 
| Contatos | utm\$1campaign | String | NA | 
| Contatos | utm\$1content | String | NA | 
| Contatos | utm\$1medium | String | NA | 
| Contatos | utm\$1source | String | NA | 
| Contatos | utm\$1term | String | NA | 
| Conversas | type | String | NA | 
| Conversas | id | Inteiro | EQUAL\$1TO, NOT\$1EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| Conversas | created\$1at | DateTime | EQUAL\$1TO, NOT\$1EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| Conversas | updated\$1at | DateTime | EQUAL\$1TO, NOT\$1EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| Conversas | origem | Struct | NA | 
| Conversas | source\$1id | String | EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| Conversas | source\$1type | String | EQUAL\$1TO, NOT\$1EQUAL\$1TO, | 
| Conversas | source\$1delivered\$1as | String | EQUAL\$1TO, NOT\$1EQUAL\$1TO, | 
| Conversas | source\$1subject | String | CONTAINS, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| Conversas | source\$1body | String | CONTAINS, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| Conversas | source\$1author\$1id | String | CONTAINS, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| Conversas | source\$1author\$1type | String | CONTAINS, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| Conversas | source\$1author\$1name | String | CONTAINS, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| Conversas | source\$1author\$1email | String | CONTAINS, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| Conversas | source\$1url | String | CONTAINS, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| Conversas | contacts | Struct | NA | 
| Conversas | colegas de equipe | Struct | NA | 
| Conversas | título | String | NA | 
| Conversas | admin\$1assignee\$1id | Inteiro | EQUAL\$1TO, NOT\$1EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| Conversas | team\$1assignee\$1id | Inteiro | CONTAINS, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| Conversas | custom\$1attributes | Struct | NA | 
| Conversas | aberto | Booleano | EQUAL\$1TO | 
| Conversas | estado | String | CONTAINS, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| Conversas | leitura | Booleano | EQUAL\$1TO | 
| Conversas | waiting\$1since | DateTime | EQUAL\$1TO, NOT\$1EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| Conversas | snoozed\$1until | DateTime | EQUAL\$1TO, NOT\$1EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| Conversas | tags | Struct | NA | 
| Conversas | first\$1contact\$1reply | Struct | NA | 
| Conversas | priority | String | EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| Conversas | tópicos | Struct | NA | 
| Conversas | sla\$1applied | Struct | NA | 
| Conversas | conversation\$1rating | Struct | NA | 
| Conversas | conversation\$1rating\$1requested\$1at | DateTime | EQUAL\$1TO, NOT\$1EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| Conversas | conversation\$1rating\$1replied\$1at | DateTime | EQUAL\$1TO, NOT\$1EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| Conversas | conversation\$1rating\$1score | Inteiro | EQUAL\$1TO, NOT\$1EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| Conversas | conversation\$1rating\$1remark | String | CONTAINS, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| Conversas | conversation\$1rating\$1contact\$1id | String | CONTAINS, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| Conversas | conversation\$1rating\$1admin\$1id | String | CONTAINS, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| Conversas | estatísticas | Struct | NA | 
| Conversas | statistics\$1time\$1to\$1assignment | Inteiro | EQUAL\$1TO, NOT\$1EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| Conversas | statistics\$1time\$1to\$1admin\$1reply | Inteiro | EQUAL\$1TO, NOT\$1EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| Conversas | statistics\$1time\$1to\$1first\$1close | Inteiro | EQUAL\$1TO, NOT\$1EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| Conversas | statistics\$1time\$1to\$1last\$1close | Inteiro | EQUAL\$1TO, NOT\$1EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| Conversas | statistics\$1median\$1time\$1to\$1reply | Inteiro | EQUAL\$1TO, NOT\$1EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| Conversas | statistics\$1first\$1contact\$1reply\$1at | DateTime | EQUAL\$1TO, NOT\$1EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| Conversas | statistics\$1first\$1assignment\$1at | DateTime | EQUAL\$1TO, NOT\$1EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| Conversas | statistics\$1first\$1admin\$1reply\$1at | DateTime | EQUAL\$1TO, NOT\$1EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| Conversas | statistics\$1first\$1close\$1at | DateTime | EQUAL\$1TO, NOT\$1EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| Conversas | statistics\$1last\$1assignment\$1at | DateTime | EQUAL\$1TO, NOT\$1EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| Conversas | statistics\$1last\$1assignment\$1admin\$1reply\$1at | DateTime | EQUAL\$1TO, NOT\$1EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| Conversas | statistics\$1last\$1contact\$1reply\$1at | DateTime | EQUAL\$1TO, NOT\$1EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| Conversas | statistics\$1last\$1admin\$1reply\$1at | DateTime | EQUAL\$1TO, NOT\$1EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| Conversas | statistics\$1last\$1close\$1at | DateTime | EQUAL\$1TO, NOT\$1EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| Conversas | statistics\$1last\$1closed\$1by\$1id | String | CONTAINS, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| Conversas | statistics\$1count\$1reopens | Inteiro | EQUAL\$1TO, NOT\$1EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| Conversas | statistics\$1count\$1assignments | Inteiro | EQUAL\$1TO, NOT\$1EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| Conversas | statistics\$1count\$1conversation\$1parts | Inteiro | EQUAL\$1TO, NOT\$1EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| Conversas | conversation\$1parts | Lista | NA | 
| Atributos de dados | id | Inteiro | NA | 
| Atributos de dados | type | String | NA | 
| Atributos de dados | modelo | String | NA | 
| Atributos de dados | nome | String | NA | 
| Atributos de dados | full\$1name | String | NA | 
| Atributos de dados | rótulo | String | NA | 
| Atributos de dados | description | String | NA | 
| Atributos de dados | data\$1type | String | NA | 
| Atributos de dados | options | Lista | NA | 
| Atributos de dados | api\$1writable | Booleano | NA | 
| Atributos de dados | ui\$1writable | Booleano | NA | 
| Atributos de dados | personalizado | Booleano | NA | 
| Atributos de dados | archived | Booleano | NA | 
| Atributos de dados | created\$1at | Booleano | NA | 
| Atributos de dados | updated\$1at | DateTime | NA | 
| Atributos de dados | admin\$1id | String | NA | 
| Segmentos | type | String | NA | 
| Segmentos | id | String | NA | 
| Segmentos | nome | String | NA | 
| Segmentos | created\$1at | DateTime | NA | 
| Segmentos | updated\$1at | DateTime | NA | 
| Segmentos | person\$1type | String | NA | 
| Segmentos | contagem | Inteiro | NA | 
| Tags | type | String | NA | 
| Tags | id | String | NA | 
| Tags | nome | String | NA | 
| Equipes | type | String | NA | 
| Equipes | id | String | NA | 
| Equipes | nome | String | NA | 
| Equipes | admin\$1ids | Lista | NA | 

 **Particionamento de consultas** 

 Podem ser fornecidas as opções adicionais do Spark `PARTITION_FIELD`, `LOWER_BOUND`, `UPPER_BOUND` e `NUM_PARTITIONS` se você quiser utilizar a simultaneidade no Spark. Com esses parâmetros, a consulta original seria dividida em `NUM_PARTITIONS` subconsultas, que poderiam ser executadas pelas tarefas do Spark simultaneamente. 
+  `PARTITION_FIELD`: o nome do campo a ser usado para particionar a consulta. 
+  `LOWER_BOUND`: um valor limite inferior inclusivo do campo de partição escolhido. 

   Na data, aceitamos o formato de data do Spark usado em consultas SQL do Spark. Exemplo de valores válidos: `"2024-02-06"`. 
+  `UPPER_BOUND`: um valor limite superior exclusivo do campo de partição escolhido. 
+  `NUM_PARTITIONS`: número de partições. 

 Os detalhes do suporte do campo de particionamento relativo às entidades são capturados na tabela a seguir. 


| Entity Name | Campo de particionamento | Tipo de dado | 
| --- | --- | --- | 
| Contatos | created\$1at, updated\$1at,last\$1seen\$1at | DateTime | 
| Conversas | id | Inteiro | 
| Conversas | created\$1at, updated\$1at | DateTime | 

 **Exemplo** 

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

# Opções de conexão do Intercom
<a name="intercom-connection-options"></a>

Estas são as opções de conexão do Intercom:
+  `ENTITY_NAME`(string): (obrigatório) usado para leitura. O nome do seu objeto no Intercom. 
+  `API_VERSION`(string): (obrigatório) usado para leitura. Versão da API Rest do Intercom que você deseja usar. Exemplo: v2.5. 
+  `SELECTED_FIELDS`(Lista<String>): padrão: vazio(SELECIONE \$1). Usado para leitura. Colunas que deseja selecionar para o objeto. 
+  `FILTER_PREDICATE`(string): padrão: vazio. Usado para leitura. Deve estar no formato Spark SQL. 
+  `QUERY`(String): padrão: vazia. Usado para leitura. Consulta completa do Spark SQL. 
+  `PARTITION_FIELD`(string): usado para leitura. Campo a ser usado para particionar a consulta. 
+  `LOWER_BOUND`(string): usado para leitura. Um valor limite inferior inclusivo do campo de partição escolhido. 
+  `UPPER_BOUND`(string): usado para leitura. Um valor limite superior exclusivo do campo de partição escolhido. 
+  `NUM_PARTITIONS`(Inteiro): padrão: 1. Usado para leitura. Número de partições para leitura. 
+  `INSTANCE_URL`(String): URL da instância em que o usuário deseja executar as operações. Por exemplo: [https://api.intercom.io](https://api.intercom.io). 

# Limitações
<a name="intercom-limitations"></a>

Estas são as limitações do conector do Intercom:
+  Quando a entidade Empresa é usada, existe um limite de 10 mil empresas que podem ser retornadas. Para obter mais informações, consulte [API da lista de todas as empresas](https://developers.intercom.com/docs/references/2.5/rest-api/companies/list-companies). 
+  Ao ser aplicado ordenar por, o filtro é obrigatório para as entidades **Contato** e **Conversa**. 
+  O Contrato de Cliente da Microsoft (MCA) é suportado pelo provedor de SaaS. No entanto, com base nos limites de taxa de API mencionados na documentação, não hospedaremos o MCA no AWS Glue, pois isso poderá afetar outras workloads e potencialmente causar problemas de desempenho devido à contenção de recursos. 

# Criação de uma conta do Intercom e configuração da aplicação cliente
<a name="intercom-new-account-creation"></a>

**Criação de uma conta do Intercom**

1. Escolha o [URL do Intercom](https://app.intercom.com/) e escolha **Iniciar avaliação gratuita** no canto superior direito da página.

1. Escolha o **botão Experimentar gratuitamente** no canto superior direito da página.

1. Escolha o tipo de empresa necessário. 

1. Insira todas as informações solicitadas na página.

1. Depois de inserir todas as informações, escolha **Registrar**.



**Criação de uma aplicação de desenvolvedor do Intercom**

Para obter o **Id do cliente** e o **Segredo do cliente**, crie uma conta de desenvolvedor.

1. Navegue até [https://app.intercom.com/](https://app.intercom.com/).

1. Digite o ID do e-mail e a Senha/Faça login usando o Google.

1. Selecione **perfil do usuário** no canto inferior esquerdo e escolha as configurações.

1. Escolha **Aplicações e integração**.

1. Escolha a guia **Hub do desenvolvedor** em **Aplicações e integração**.

1. Escolha **Nova aplicação** e crie a aplicação aqui.

1. Forneça o nome da aplicação e escolha **Criar** aplicação.

1. Dentro da aplicação, navegue até a seção **Autenticação**.

1. Escolha os URIs de **edição** e de adição de redirecionamento. Adicione o URL de redirecionamento específico da sua região, como `https://<aws-region>.console.aws.amazon.com/gluestudio/oauth`. Por exemplo, adicione `https://us-east-1.console.aws.amazon.com/gluestudio/oauth for the us-east-1 region`.

1. Obtenha o **Id do cliente** e o **Segredo do cliente** gerados na seção Informações básicas.