

# 在 AWS Glue Studio 中连接到 Intercom
<a name="connecting-to-data-intercom"></a>

 Intercom 是一种互动操作系统，它是您的企业与客户之间的开放式渠道，可（在产品中、在当下、按照客户的要求）创建持续的对话，使您能够充分利用客户旅程中的每一次互动。

**Topics**
+ [AWS Glue 对 Intercom 的支持](intercom-support.md)
+ [包含创建和使用连接的 API 操作的策略](intercom-configuring-iam-permissions.md)
+ [配置 Intercom](intercom-configuring.md)
+ [配置 Intercom 连接](intercom-configuring-connections.md)
+ [从 Intercom 实体中读取](intercom-reading-from-entities.md)
+ [Intercom 连接选项](intercom-connection-options.md)
+ [限制](intercom-limitations.md)
+ [创建新的 Intercom 账户并配置客户端应用程序](intercom-new-account-creation.md)

# AWS Glue 对 Intercom 的支持
<a name="intercom-support"></a>

AWS Glue 对 Intercom 的支持如下：

**是否支持作为来源？**  
是。您可以使用 AWS Glue ETL 作业查询 Intercom 中的数据。

**是否支持作为目标？**  
否。

**支持的 Intercom API 版本**  
 v2.5。有关每个版本特定的实体支持，请参阅[从 Intercom 实体中读取](intercom-reading-from-entities.md)。

# 包含创建和使用连接的 API 操作的策略
<a name="intercom-configuring-iam-permissions"></a>

 以下示例策略描述了创建和使用连接所需的 IAM 权限。如果您要创建新角色，请创建包含以下内容的策略：

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

****  

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

------

您还可以使用以下托管 IAM 策略允许访问权限：
+  [AWSGlueServiceRole](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AWSGlueServiceRole)：授予对各种 AWS Glue 进程代表您运行所需的资源的访问权限。这些资源包括 AWS Glue、Amazon S3、IAM、Amazon CloudWatch Logs 和 Amazon EC2。如果您遵循此策略中指定的资源的命名约定，则 AWS Glue 进程具有所需的权限。此策略通常附加到在定义爬网程序、作业和开发终端节点时指定的角色。
+  [AWSGlueConsoleFullAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AWSGlueConsoleFullAccess)：当策略所附加到的身份使用 AWS 管理控制台时，授予对 AWS Glue 资源的完全访问权限。如果遵循此策略中指定的资源的命名约定，则用户具有完全控制台功能。此策略通常附加到 AWS Glue 控制台的用户。

# 配置 Intercom
<a name="intercom-configuring"></a>

您必须满足以下要求，才能使用 AWS Glue 从 Intercom 传输：

## 最低要求
<a name="intercom-configuring-min-requirements"></a>
+  您有一个 Intercom 账户。有关更多信息，请参阅 [创建新的 Intercom 账户并配置客户端应用程序](intercom-new-account-creation.md)。
+  您的 Intercom 账户已启用 API 访问权限。
+  您应该在 Intercom 开发者账户下创建一个应用程序，提供 AWS Glue 在对您的账户进行身份验证调用时用于安全访问数据的客户端凭证。有关更多信息，请参阅“Intercom - 新账户和客户端应用程序创建步骤”。

 如果您满足这些要求，就可以将 AWS Glue 连接到您的 Intercom 账户。

# 配置 Intercom 连接
<a name="intercom-configuring-connections"></a>

 Intercom 支持 OAuth 2 的 `AUTHORIZATION_CODE` 授权类型。

 此授权类型被视为“三足型”OAuth，因为它依赖于将用户重定向到第三方授权服务器来对用户进行身份验证。它用于通过 AWS Glue 控制台创建连接。AWS Glue 控制台会将用户重定向到 Google Ads，用户必须登录并向 AWS Glue 授予所请求的权限，以访问其 Intercom 实例。

 用户在通过 AWS Glue 控制台创建连接时，应提供自己的客户端 ID 和客户端密钥。在这种情况下，他们仍会重定向到 Intercom，以便登录并授权 AWS Glue 访问其资源。

 此授权类型会生成刷新令牌和访问令牌。访问令牌的有效期很短，可以通过刷新令牌在不需要用户干预的情况下自动刷新。

 有关为授权码 OAuth 流程创建关联应用程序的更多信息，请参阅 [Ads API](https://developers.intercom.com/building-apps/docs/setting-up-oauth)。

要配置 Intercom 连接：

1.  在 AWS Secrets Manager 中，创建一个包含以下详细信息的密钥。需要为 AWS Glue 中的每个连接创建一个密钥。

   1.  对于客户托管的关联应用程序：密钥应包含关联应用程序的访问令牌、刷新令牌、client\$1id 和 client\$1secret。

1. 在 AWS Glue Glue Studio 中，按照以下步骤在**数据连接**下创建连接：

   1. 选择**连接类型**时，请选择 Intercom。

   1. 提供 Intercom 环境。

   1.  选择 AWS Glue 可以代入并有权执行以下操作的 IAM 角色：

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

****  

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

------

   1.  在 AWS Glue 中选择您要用于此连接的 `secretName`，然后放置令牌。

   1.  如果要使用网络，请选择网络选项。

1.  向与您的 AWS Glue 作业关联的 IAM 角色授予读取 `secretName` 的权限。

# 从 Intercom 实体中读取
<a name="intercom-reading-from-entities"></a>

 **先决条件** 
+  您要从中读取内容的 Intercom 对象。请参阅下方支持的实体表，查看可用的实体。

 **支持的实体** 


| 实体 | API\$1Version | 可以筛选 | 支持限制 | 支持排序依据 | 支持 Select \$1 | 支持分区 | 
| --- | --- | --- | --- | --- | --- | --- | 
| Admins | v2.5 | 否 | 否 | 否 | 是 | 否 | 
| 公司 | v2.5 | 否 | 是 | 否 | 是 | 否 | 
| 对话 | v2.5 | 支持 | 是 | 是 | 是 | 是 | 
| 数据属性 | v2.5 | 否 | 否 | 否 | 是 | 否 | 
| 联系人 | v2.5 | 支持 | 是 | 是 | 是 | 是 | 
| Segments | v2.5 | 否 | 否 | 否 | 是 | 否 | 
| 标签 | v2.5 | 否 | 否 | 否 | 是 | 否 | 
| 团队 | v2.5 | 否 | 否 | 否 | 是 | 否 | 

 **示例** 

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

 **Intercom 实体和字段详细信息** 


| 实体 | 字段 | 数据类型 | 支持的运算符 | 
| --- | --- | --- | --- | 
| Admins | type | 字符串 | NA | 
| Admins | id | 字符串 | NA | 
| Admins | avatar | 结构体 | NA | 
| Admins | 名称 | 字符串 | NA | 
| Admins | 电子邮件 | 字符串 | NA | 
| Admins | away\$1mode\$1enabled | 布尔值 | NA | 
| Admins | away\$1mode\$1reassign | 布尔值 | NA | 
| Admins | has\$1inbox\$1seat | 布尔值 | NA | 
| Admins | teams\$1ids | 列表 | NA | 
| Admins | job\$1title | 字符串 | NA | 
| 公司 | type | 字符串 | NA | 
| 公司 | id | 字符串 | NA | 
| 公司 | app\$1id | 字符串 | NA | 
| 公司 | created\$1at | 日期时间 | NA | 
| 公司 | remote\$1created\$1at | 日期时间 | NA | 
| 公司 | updated\$1at | 日期时间 | NA | 
| 公司 | last\$1request\$1at | 日期时间 | NA | 
| 公司 | 计划 | 结构体 | NA | 
| 公司 | company\$1id | 字符串 | NA | 
| 公司 | 名称 | 字符串 | NA | 
| 公司 | custom\$1attributes | 结构体 | NA | 
| 公司 | session\$1count | 整数 | NA | 
| 公司 | monthly\$1spend | 整数 | NA | 
| 公司 | user\$1count | 整数 | NA | 
| 公司 | industry | 字符串 | NA | 
| 公司 | size | 整数 | NA | 
| 公司 | 网站 | 字符串 | NA | 
| 公司 | tags | 结构体 | NA | 
| 公司 | segments | 结构体 | NA | 
| 联系人 | id | 字符串 | EQUAL\$1TO.NOT\$1EQUAL\$1TO | 
| 联系人 | type | 字符串 | NA | 
| 联系人 | workspace\$1id | 字符串 | NA | 
| 联系人 | external\$1id | 字符串 | CONTAINS, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| 联系人 | 角色 | 字符串 | EQUAL\$1TO.NOT\$1EQUAL\$1TO | 
| 联系人 | 电子邮件 | 字符串 | CONTAINS, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| 联系人 | phone | 字符串 | CONTAINS, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| 联系人 | 名称 | 字符串 | CONTAINS, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| 联系人 | avatar | 字符串 | NA | 
| 联系人 | owner\$1id | 整数 | EQUAL\$1TO, NOT\$1EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| 联系人 | social\$1profiles | 结构体 | NA | 
| 联系人 | has\$1hard\$1bounced | 布尔值 | EQUAL\$1TO | 
| 联系人 | marked\$1email\$1as\$1spam | 布尔值 | EQUAL\$1TO | 
| 联系人 | unsubscribed\$1from\$1emails | 布尔值 | EQUAL\$1TO | 
| 联系人 | created\$1at | 日期时间 | EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| 联系人 | updated\$1at | 日期时间 | EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| 联系人 | signed\$1up\$1at | 日期时间 | EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| 联系人 | last\$1seen\$1at | 日期时间 | EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| 联系人 | last\$1replied\$1at | 日期时间 | EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| 联系人 | last\$1contacted\$1at | 日期时间 | EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| 联系人 | last\$1email\$1opened\$1at | 日期时间 | EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| 联系人 | last\$1email\$1clicked\$1at | 日期时间 | EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| 联系人 | language\$1override | 字符串 | CONTAINS, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| 联系人 | 浏览器 | 字符串 | CONTAINS, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| 联系人 | browser\$1version | 字符串 | CONTAINS, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| 联系人 | browser\$1language | 字符串 | CONTAINS, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| 联系人 | os | 字符串 | CONTAINS, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| 联系人 | location | 结构体 | NA | 
| 联系人 | location\$1country | 字符串 | CONTAINS, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| 联系人 | location\$1region | 字符串 | CONTAINS, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| 联系人 | location\$1city | 字符串 | CONTAINS, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| 联系人 | android\$1app\$1name | 字符串 | CONTAINS, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| 联系人 | android\$1app\$1version | 字符串 | NA | 
| 联系人 | android\$1device | 字符串 | NA | 
| 联系人 | android\$1os\$1version | 字符串 | NA | 
| 联系人 | android\$1sdk\$1version | 字符串 | CONTAINS, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| 联系人 | android\$1last\$1seen\$1at | 日期 | NA | 
| 联系人 | ios\$1app\$1name | 字符串 | CONTAINS, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| 联系人 | ios\$1app\$1version | 字符串 | NA | 
| 联系人 | ios\$1device | 字符串 | NA | 
| 联系人 | ios\$1os\$1version | 字符串 | CONTAINS, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| 联系人 | ios\$1sdk\$1version | 字符串 | CONTAINS, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| 联系人 | ios\$1last\$1seen\$1at | 日期时间 | NA | 
| 联系人 | custom\$1attributes | 结构体 | NA | 
| 联系人 | tags | 结构体 | NA | 
| 联系人 | notes | 结构体 | NA | 
| 联系人 | companies | 结构体 | NA | 
| 联系人 | unsubscribed\$1from\$1sms | 布尔值 | NA | 
| 联系人 | sms\$1consent | 布尔值 | NA | 
| 联系人 | opted\$1out\$1subscription\$1types | 结构体 | NA | 
| 联系人 | referrer | 字符串 | NA | 
| 联系人 | utm\$1campaign | 字符串 | NA | 
| 联系人 | utm\$1content | 字符串 | NA | 
| 联系人 | utm\$1medium | 字符串 | NA | 
| 联系人 | utm\$1source | 字符串 | NA | 
| 联系人 | utm\$1term | 字符串 | NA | 
| 对话 | type | 字符串 | NA | 
| 对话 | id | 整数 | EQUAL\$1TO, NOT\$1EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| 对话 | created\$1at | 日期时间 | EQUAL\$1TO, NOT\$1EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| 对话 | updated\$1at | 日期时间 | EQUAL\$1TO, NOT\$1EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| 对话 | 源 | 结构体 | NA | 
| 对话 | source\$1id | 字符串 | EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| 对话 | source\$1type | 字符串 | EQUAL\$1TO, NOT\$1EQUAL\$1TO, | 
| 对话 | source\$1delivered\$1as | 字符串 | EQUAL\$1TO, NOT\$1EQUAL\$1TO, | 
| 对话 | source\$1subject | 字符串 | CONTAINS, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| 对话 | source\$1body | 字符串 | CONTAINS, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| 对话 | source\$1author\$1id | 字符串 | CONTAINS, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| 对话 | source\$1author\$1type | 字符串 | CONTAINS, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| 对话 | source\$1author\$1name | 字符串 | CONTAINS, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| 对话 | source\$1author\$1email | 字符串 | CONTAINS, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| 对话 | source\$1url | 字符串 | CONTAINS, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| 对话 | 联系人 | 结构体 | NA | 
| 对话 | teammates | 结构体 | NA | 
| 对话 | 删除实例快照 | 字符串 | NA | 
| 对话 | admin\$1assignee\$1id | 整数 | EQUAL\$1TO, NOT\$1EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| 对话 | team\$1assignee\$1id | 整数 | CONTAINS, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| 对话 | custom\$1attributes | 结构体 | NA | 
| 对话 | 打开 | 布尔值 | EQUAL\$1TO | 
| 对话 | 状态 | 字符串 | CONTAINS, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| 对话 | read | 布尔值 | EQUAL\$1TO | 
| 对话 | waiting\$1since | 日期时间 | EQUAL\$1TO, NOT\$1EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| 对话 | snoozed\$1until | 日期时间 | EQUAL\$1TO, NOT\$1EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| 对话 | tags | 结构体 | NA | 
| 对话 | first\$1contact\$1reply | 结构体 | NA | 
| 对话 | priority | 字符串 | EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| 对话 | topics | 结构体 | NA | 
| 对话 | sla\$1applied | 结构体 | NA | 
| 对话 | conversation\$1rating | 结构体 | NA | 
| 对话 | conversation\$1rating\$1requested\$1at | 日期时间 | EQUAL\$1TO, NOT\$1EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| 对话 | conversation\$1rating\$1replied\$1at | 日期时间 | EQUAL\$1TO, NOT\$1EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| 对话 | conversation\$1rating\$1score | 整数 | EQUAL\$1TO, NOT\$1EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| 对话 | conversation\$1rating\$1remark | 字符串 | CONTAINS, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| 对话 | conversation\$1rating\$1contact\$1id | 字符串 | CONTAINS, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| 对话 | conversation\$1rating\$1admin\$1id | 字符串 | CONTAINS, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| 对话 | statistics | 结构体 | NA | 
| 对话 | statistics\$1time\$1to\$1assignment | 整数 | EQUAL\$1TO, NOT\$1EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| 对话 | statistics\$1time\$1to\$1admin\$1reply | 整数 | EQUAL\$1TO, NOT\$1EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| 对话 | statistics\$1time\$1to\$1first\$1close | 整数 | EQUAL\$1TO, NOT\$1EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| 对话 | statistics\$1time\$1to\$1last\$1close | 整数 | EQUAL\$1TO, NOT\$1EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| 对话 | statistics\$1median\$1time\$1to\$1reply | 整数 | EQUAL\$1TO, NOT\$1EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| 对话 | statistics\$1first\$1contact\$1reply\$1at | 日期时间 | EQUAL\$1TO, NOT\$1EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| 对话 | statistics\$1first\$1assignment\$1at | 日期时间 | EQUAL\$1TO, NOT\$1EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| 对话 | statistics\$1first\$1admin\$1reply\$1at | 日期时间 | EQUAL\$1TO, NOT\$1EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| 对话 | statistics\$1first\$1close\$1at | 日期时间 | EQUAL\$1TO, NOT\$1EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| 对话 | statistics\$1last\$1assignment\$1at | 日期时间 | EQUAL\$1TO, NOT\$1EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| 对话 | statistics\$1last\$1assignment\$1admin\$1reply\$1at | 日期时间 | EQUAL\$1TO, NOT\$1EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| 对话 | statistics\$1last\$1contact\$1reply\$1at | 日期时间 | EQUAL\$1TO, NOT\$1EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| 对话 | statistics\$1last\$1admin\$1reply\$1at | 日期时间 | EQUAL\$1TO, NOT\$1EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| 对话 | statistics\$1last\$1close\$1at | 日期时间 | EQUAL\$1TO, NOT\$1EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| 对话 | statistics\$1last\$1closed\$1by\$1id | 字符串 | CONTAINS, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| 对话 | statistics\$1count\$1reopens | 整数 | EQUAL\$1TO, NOT\$1EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| 对话 | statistics\$1count\$1assignments | 整数 | EQUAL\$1TO, NOT\$1EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| 对话 | statistics\$1count\$1conversation\$1parts | 整数 | EQUAL\$1TO, NOT\$1EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| 对话 | conversation\$1parts | 列表 | NA | 
| 数据属性 | id | 整数 | NA | 
| 数据属性 | type | 字符串 | NA | 
| 数据属性 | 模型 | 字符串 | NA | 
| 数据属性 | 名称 | 字符串 | NA | 
| 数据属性 | full\$1name | 字符串 | NA | 
| 数据属性 | label | 字符串 | NA | 
| 数据属性 | description | 字符串 | NA | 
| 数据属性 | data\$1type | 字符串 | NA | 
| 数据属性 | options | 列表 | NA | 
| 数据属性 | api\$1writable | 布尔值 | NA | 
| 数据属性 | ui\$1writable | 布尔值 | NA | 
| 数据属性 | 自定义 | 布尔值 | NA | 
| 数据属性 | archived | 布尔值 | NA | 
| 数据属性 | created\$1at | 布尔值 | NA | 
| 数据属性 | updated\$1at | 日期时间 | NA | 
| 数据属性 | admin\$1id | 字符串 | NA | 
| Segments | type | 字符串 | NA | 
| Segments | id | 字符串 | NA | 
| Segments | 名称 | 字符串 | NA | 
| Segments | created\$1at | 日期时间 | NA | 
| Segments | updated\$1at | 日期时间 | NA | 
| Segments | person\$1type | 字符串 | NA | 
| Segments | count | 整数 | NA | 
| 标签 | type | 字符串 | NA | 
| 标签 | id | 字符串 | NA | 
| 标签 | 名称 | 字符串 | NA | 
| 团队 | type | 字符串 | NA | 
| 团队 | id | 字符串 | NA | 
| 团队 | 名称 | 字符串 | NA | 
| 团队 | admin\$1ids | 列表 | NA | 

 **对查询进行分区** 

 如果您想在 Spark 中利用并发，可以提供附加 Spark 选项 `PARTITION_FIELD`、`LOWER_BOUND`、`UPPER_BOUND` 和 `NUM_PARTITIONS`。使用这些参数，原始查询将被拆分为 `NUM_PARTITIONS` 个子查询，这些子查询可以由 Spark 任务同时执行。
+  `PARTITION_FIELD`：用于对查询进行分区的字段的名称。
+  `LOWER_BOUND`：所选分区字段的包含下限值。

   对于日期，我们接受 Spark SQL 查询中使用的 Spark 日期格式。有效值示例：`"2024-02-06"`。
+  `UPPER_BOUND`：所选分区字段的排除上限值。
+  `NUM_PARTITIONS`：分区的数量。

 基于实体的分区字段支持详细信息如下表中所示。


| 实体名称 | 分区字段 | 数据类型 | 
| --- | --- | --- | 
| 联系人 | created\$1at, updated\$1at,last\$1seen\$1at | 日期时间 | 
| 对话 | id | 整数 | 
| 对话 | created\$1at, updated\$1at | 日期时间 | 

 **示例** 

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

# Intercom 连接选项
<a name="intercom-connection-options"></a>

以下是 Intercom 的连接选项：
+  `ENTITY_NAME`（字符串）：（必填）用于读取。Intercom 中对象的名称。
+  `API_VERSION`（字符串）：（必填）用于读取。您想要使用的 Intercom Rest API 版本。示例：v2.5。
+  `SELECTED_FIELDS`（列表<字符串>）–默认：empty(SELECT \$1)。用于读取。您想要为对象选择的列。
+  `FILTER_PREDICATE`（字符串）– 默认：空。用于读取。应采用 Spark SQL 格式。
+  `QUERY`（字符串）– 默认：空。用于读取。完整的 Spark SQL 查询。
+  `PARTITION_FIELD`（字符串）– 用于读取。用于分区查询的字段。
+  `LOWER_BOUND`（字符串）– 用于读取。所选分区字段的包含下限值。
+  `UPPER_BOUND`（字符串）– 用于读取。所选分区字段的排除上限值。
+  `NUM_PARTITIONS`（整数）– 默认：1。用于读取。要读取的分区数。
+  `INSTANCE_URL`（字符串）：用户要在其中运行操作的实例的 URL。例如：[https://api.intercom.io](https://api.intercom.io)。

# 限制
<a name="intercom-limitations"></a>

以下是 Intercom 连接器的限制：
+  使用公司实体时，可返回的公司数量上限为 10000 家。如需了解更多信息，请参阅 [List all companies API](https://developers.intercom.com/docs/references/2.5/rest-api/companies/list-companies)。
+  在应用排序依据时，**联系人**和**对话**实体都必须进行筛选。
+  MCA 由 SaaS 提供商提供支持。但是，根据文档中提到的 API 速率限制，我们不会在 AWS Glue 上托管 MCA，因为其可能会影响其他工作负载，并可能因资源争用而导致性能问题。

# 创建新的 Intercom 账户并配置客户端应用程序
<a name="intercom-new-account-creation"></a>

**创建 Intercom 账户**

1. 选择 [Intercom URL](https://app.intercom.com/)，然后选择页面右上角的**开始我的免费试用**。

1. 选择页面右上角的**免费试用按钮**。

1. 选择所需的企业类型。

1. 输入页面上所需的所有信息。

1. 输入所有信息后，选择**注册**。



**创建 Intercom 开发者应用程序**

要获取**客户端 ID** 和**客户端密钥**，您需要创建一个开发者账户。

1. 导航到 [https://app.intercom.com/](https://app.intercom.com/)。

1. 输入电子邮件 ID 和密码/使用 Google 登录，然后登录。

1. 选择左下角的**用户个人资料**，然后选择设置。

1. 选择**应用程序和集成**。

1. 选择**应用程序和集成**下的**开发者中心**选项卡。

1. 选择**新应用程序**，然后在此处创建应用程序。

1. 提供应用程序名称，然后选择**创建**应用程序。

1. 在应用程序中，导航到**身份验证**部分。

1. 选择**编辑**并添加重定向 URI。将您的区域特定重定向 URL 添加为 `https://<aws-region>.console.aws.amazon.com/gluestudio/oauth`。例如，添加 `https://us-east-1.console.aws.amazon.com/gluestudio/oauth for the us-east-1 region`。

1. 在基本信息部分获取生成的**客户端 ID** 和**客户端密钥**。