

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 在 AWS Glue Studio 中連線至 Intercom
<a name="connecting-to-data-intercom"></a>

 Intercom 是互動作業系統，是您的企業和客戶之間的開放管道 (在產品內部、關鍵時刻，並始終尊重客戶的意願)，從而創造一種持續的對話，讓您充分利用客戶旅程中的每次互動。

**Topics**
+ [AWS Glue 對內部通訊的支援](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 對內部通訊的支援
<a name="intercom-support"></a>

AWS Glue 支援內部通訊，如下所示：

**支援作為來源？**  
是。您可以使用 AWS Glue ETL 任務從內部通訊查詢資料。

**支援作為目標？**  
否。

**支援的 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 Amazon CloudWatch Logs、IAM 和 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 傳輸：

## 最低需求
<a name="intercom-configuring-min-requirements"></a>
+  您擁有一個 Intercom 帳戶。如需詳細資訊，請參閱[建立新的 Intercom 帳戶並設定用戶端應用程式](intercom-new-account-creation.md)。
+  您的 Intercom 帳戶已啟用 API 存取。
+  您應該在內部通訊開發人員帳戶下擁有應用程式，提供用戶端登入資料，該登入資料可在對您的帳戶進行驗證呼叫時， AWS Glue 使用 安全地存取您的資料。如需詳細資訊，請參閱「Intercom - 新帳戶和用戶端應用程式建立步驟」。

 如果您符合這些要求，就可以 AWS Glue 連線到您的內部通訊帳戶。

# 設定 Intercom 連線
<a name="intercom-configuring-connections"></a>

 Intercom 支援 OAuth 2 的 `AUTHORIZATION_CODE` 授權類型。

 此授權類型被視為「三條腿的」OAuth，因為其依賴將使用者重新導向至第三方授權伺服器來驗證使用者。在透過 AWS Glue 主控台建立連線時使用。 AWS Glue 主控台會將使用者重新導向至 Google Ads，使用者必須在其中登入 AWS Glue ，並允許請求的許可存取其內部通訊執行個體。

 透過 AWS Glue 主控台建立連線時，使用者應提供自己的用戶端 ID 和用戶端秘密。在此案例中，它們仍會重新導向至內部通訊以登入並授權 AWS Glue 存取其資源。

 此授權類型會產生重新整理字符和存取字符。存取字符是短期存留的，可以使用重新整理字符自動重新整理，而無需使用者互動。

 如需有關為授權碼 OAuth 流程建立連線應用程式的詳細資訊，請參閱 [Ads API](https://developers.intercom.com/building-apps/docs/setting-up-oauth)。

若要設定 Intercom 連線：

1.  在 AWS Secrets Manager 中，使用下列詳細資訊建立秘密。必須為 AWS Glue中的每個連線建立機密。

   1.  對於客戶管理的連線應用程式，機密應包含連線的應用程式存取字符、重新整理字符、用戶端 ID 和用戶端機密。

1. 在 AWS Glue Glue Studio 中，依照下列步驟在 **Data Connections** 下建立連線：

   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.  選取您要用於此連線`secretName`的 AWS Glue ，以放置字符。

   1.  如果想要使用您的網路，請選取網路選項。

1.  授予與您的 AWS Glue 任務相關聯的 IAM 角色讀取 的許可`secretName`。

# 從 Intercom 實體中讀取
<a name="intercom-reading-from-entities"></a>

 **先決條件** 
+  您想要從中進行讀取的 Intercom 物件。請參閱以下支援的實體表格，以檢查可用實體。

 **支援的實體** 


| 實體 | API\$1Version | 可以篩選 | 支援限制 | 支援排序依據 | 支援選取 \$1 | 支援分區 | 
| --- | --- | --- | --- | --- | --- | --- | 
| 管理員 | v2.5 | 否 | 否 | 否 | 是 | 否 | 
| 公司 | v2.5 | 否 | 是 | 否 | 是 | 否 | 
| 對話 | v2.5 | 是 | 是 | 是 | 是 | 是 | 
| 資料屬性 | v2.5 | 否 | 否 | 否 | 是 | 否 | 
| 聯絡人 | v2.5 | 是 | 是 | 是 | 是 | 是 | 
| 客群 | v2.5 | 否 | 否 | 否 | 是 | 否 | 
| Tags (標籤) | 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 實體和欄位詳細資訊** 


| 實體 | 欄位 | 資料類型 | 支援的運算子 | 
| --- | --- | --- | --- | 
| 管理員 | type | String | NA | 
| 管理員 | id | String | NA | 
| 管理員 | avatar | Struct | NA | 
| 管理員 | name | String | NA | 
| 管理員 | email | String | NA | 
| 管理員 | away\$1mode\$1enabled | Boolean | NA | 
| 管理員 | away\$1mode\$1reassign | Boolean | NA | 
| 管理員 | has\$1inbox\$1seat | Boolean | NA | 
| 管理員 | team\$1ids | 清單 | NA | 
| 管理員 | job\$1title | String | NA | 
| 公司 | type | String | NA | 
| 公司 | id | String | NA | 
| 公司 | app\$1id | String | NA | 
| 公司 | created\$1at | DateTime | NA | 
| 公司 | remote\$1created\$1at | DateTime | NA | 
| 公司 | updated\$1at | DateTime | NA | 
| 公司 | last\$1request\$1at | DateTime | NA | 
| 公司 | plan | Struct | NA | 
| 公司 | company\$1id | String | NA | 
| 公司 | name | String | NA | 
| 公司 | custom\$1attributes | Struct | NA | 
| 公司 | session\$1count | Integer | NA | 
| 公司 | monthly\$1spend | Integer | NA | 
| 公司 | user\$1count | Integer | NA | 
| 公司 | industry | String | NA | 
| 公司 | size | Integer | NA | 
| 公司 | website | String | NA | 
| 公司 | 標籤 | Struct | NA | 
| 公司 | segments | Struct | NA | 
| 聯絡人 | id | String | EQUAL\$1TO.NOT\$1EQUAL\$1TO | 
| 聯絡人 | type | String | NA | 
| 聯絡人 | workspace\$1id | String | NA | 
| 聯絡人 | external\$1id | String | CONTAINS, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| 聯絡人 | role | String | EQUAL\$1TO.NOT\$1EQUAL\$1TO | 
| 聯絡人 | email | String | CONTAINS, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| 聯絡人 | phone | String | CONTAINS, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| 聯絡人 | name | String | CONTAINS, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| 聯絡人 | avatar | String | NA | 
| 聯絡人 | owner\$1id | Integer | EQUAL\$1TO, NOT\$1EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| 聯絡人 | social\$1profiles | Struct | NA | 
| 聯絡人 | has\$1hard\$1bounced | Boolean | EQUAL\$1TO | 
| 聯絡人 | marked\$1email\$1as\$1spam | Boolean | EQUAL\$1TO | 
| 聯絡人 | unsubscribed\$1from\$1emails | Boolean | EQUAL\$1TO | 
| 聯絡人 | created\$1at | DateTime | EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| 聯絡人 | updated\$1at | DateTime | EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| 聯絡人 | signed\$1up\$1at | DateTime | EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| 聯絡人 | last\$1seen\$1at | DateTime | EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| 聯絡人 | last\$1replied\$1at | DateTime | EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| 聯絡人 | last\$1contacted\$1at | DateTime | EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| 聯絡人 | last\$1email\$1opened\$1at | DateTime | EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| 聯絡人 | last\$1email\$1clicked\$1at | DateTime | EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| 聯絡人 | language\$1override | String | CONTAINS, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| 聯絡人 | browser | String | CONTAINS, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| 聯絡人 | browser\$1version | String | CONTAINS, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| 聯絡人 | 瀏覽器\$1語言 | String | CONTAINS, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| 聯絡人 | os | String | CONTAINS, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| 聯絡人 | location | Struct | NA | 
| 聯絡人 | location\$1country | String | CONTAINS, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| 聯絡人 | location\$1region | String | CONTAINS, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| 聯絡人 | location\$1city | String | CONTAINS, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| 聯絡人 | android\$1app\$1name | String | CONTAINS, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| 聯絡人 | android\$1app\$1version | String | NA | 
| 聯絡人 | android\$1device | String | NA | 
| 聯絡人 | android\$1os\$1version | String | NA | 
| 聯絡人 | android\$1sdk\$1version | String | CONTAINS, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| 聯絡人 | android\$1last\$1seen\$1at | Date | NA | 
| 聯絡人 | ios\$1app\$1name | String | CONTAINS, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| 聯絡人 | ios\$1app\$1version | String | NA | 
| 聯絡人 | ios\$1device | String | NA | 
| 聯絡人 | ios\$1os\$1version | String | CONTAINS, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| 聯絡人 | ios\$1sdk\$1version | String | CONTAINS, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| 聯絡人 | ios\$1last\$1seen\$1at | DateTime | NA | 
| 聯絡人 | custom\$1attributes | Struct | NA | 
| 聯絡人 | 標籤 | Struct | NA | 
| 聯絡人 | notes | Struct | NA | 
| 聯絡人 | 公司 | Struct | NA | 
| 聯絡人 | unsubscribed\$1from\$1sms | Boolean | NA | 
| 聯絡人 | sms\$1consent | Boolean | NA | 
| 聯絡人 | opted\$1out\$1subscription\$1types | Struct | NA | 
| 聯絡人 | referrer | String | NA | 
| 聯絡人 | utm\$1campaign | String | NA | 
| 聯絡人 | utm\$1content | String | NA | 
| 聯絡人 | utm\$1medium | String | NA | 
| 聯絡人 | utm\$1source | String | NA | 
| 聯絡人 | utm\$1term | String | NA | 
| 對話 | type | String | NA | 
| 對話 | id | Integer | EQUAL\$1TO, NOT\$1EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| 對話 | created\$1at | DateTime | EQUAL\$1TO, NOT\$1EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| 對話 | updated\$1at | DateTime | EQUAL\$1TO, NOT\$1EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| 對話 | source | Struct | NA | 
| 對話 | source\$1id | String | EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| 對話 | source\$1type | String | EQUAL\$1TO, NOT\$1EQUAL\$1TO, | 
| 對話 | source\$1delivered\$1as | String | EQUAL\$1TO, NOT\$1EQUAL\$1TO, | 
| 對話 | source\$1subject | String | CONTAINS, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| 對話 | source\$1body | String | CONTAINS, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| 對話 | source\$1author\$1id | String | CONTAINS, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| 對話 | source\$1author\$1type | String | CONTAINS, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| 對話 | source\$1author\$1name | String | CONTAINS, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| 對話 | source\$1author\$1email | String | CONTAINS, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| 對話 | source\$1url | String | CONTAINS, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| 對話 | 聯絡人 | Struct | NA | 
| 對話 | 隊友 | Struct | NA | 
| 對話 | 標題 | String | NA | 
| 對話 | admin\$1assignee\$1id | Integer | EQUAL\$1TO, NOT\$1EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| 對話 | team\$1assignee\$1id | Integer | CONTAINS, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| 對話 | custom\$1attributes | Struct | NA | 
| 對話 | 開啟 | Boolean | EQUAL\$1TO | 
| 對話 | state | String | CONTAINS, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| 對話 | 讀取 | Boolean | EQUAL\$1TO | 
| 對話 | waiting\$1since | DateTime | EQUAL\$1TO, NOT\$1EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| 對話 | snoozed\$1until | DateTime | EQUAL\$1TO, NOT\$1EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| 對話 | 標籤 | Struct | NA | 
| 對話 | first\$1contact\$1reply | Struct | NA | 
| 對話 | priority | String | EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| 對話 | topics | Struct | NA | 
| 對話 | sla\$1applied | Struct | NA | 
| 對話 | conversation\$1rating | Struct | NA | 
| 對話 | conversation\$1rating\$1requested\$1at | DateTime | EQUAL\$1TO, NOT\$1EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| 對話 | conversation\$1rating\$1replied\$1at | DateTime | EQUAL\$1TO, NOT\$1EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| 對話 | conversation\$1rating\$1score | Integer | EQUAL\$1TO, NOT\$1EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| 對話 | conversation\$1rating\$1remark | String | CONTAINS, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| 對話 | conversation\$1rating\$1contact\$1id | String | CONTAINS, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| 對話 | conversation\$1rating\$1admin\$1id | String | CONTAINS, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| 對話 | 統計資訊 | Struct | NA | 
| 對話 | statistics\$1time\$1to\$1assignment | Integer | EQUAL\$1TO, NOT\$1EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| 對話 | statistics\$1time\$1to\$1admin\$1reply | Integer | EQUAL\$1TO, NOT\$1EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| 對話 | statistics\$1time\$1to\$1first\$1close | Integer | EQUAL\$1TO, NOT\$1EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| 對話 | statistics\$1time\$1to\$1last\$1close | Integer | EQUAL\$1TO, NOT\$1EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| 對話 | statistics\$1median\$1time\$1to\$1reply | Integer | EQUAL\$1TO, NOT\$1EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| 對話 | statistics\$1first\$1contact\$1reply\$1at | DateTime | EQUAL\$1TO, NOT\$1EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| 對話 | statistics\$1first\$1assignment\$1at | DateTime | EQUAL\$1TO, NOT\$1EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| 對話 | statistics\$1first\$1admin\$1reply\$1at | DateTime | EQUAL\$1TO, NOT\$1EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| 對話 | statistics\$1first\$1close\$1at | DateTime | EQUAL\$1TO, NOT\$1EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| 對話 | statistics\$1last\$1assignment\$1at | DateTime | EQUAL\$1TO, NOT\$1EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| 對話 | statistics\$1last\$1assignment\$1admin\$1reply\$1at | DateTime | EQUAL\$1TO, NOT\$1EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| 對話 | statistics\$1last\$1contact\$1reply\$1at | DateTime | EQUAL\$1TO, NOT\$1EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| 對話 | statistics\$1last\$1admin\$1reply\$1at | DateTime | EQUAL\$1TO, NOT\$1EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| 對話 | statistics\$1last\$1close\$1at | DateTime | EQUAL\$1TO, NOT\$1EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| 對話 | statistics\$1last\$1closed\$1by\$1id | String | CONTAINS, EQUAL\$1TO, NOT\$1EQUAL\$1TO | 
| 對話 | statistics\$1count\$1reopens | Integer | EQUAL\$1TO, NOT\$1EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| 對話 | statistics\$1count\$1assignments | Integer | EQUAL\$1TO, NOT\$1EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| 對話 | statistics\$1count\$1conversation\$1parts | Integer | EQUAL\$1TO, NOT\$1EQUAL\$1TO, GREATER\$1THAN, LESS\$1THAN | 
| 對話 | conversation\$1parts | 清單 | NA | 
| 資料屬性 | id | Integer | NA | 
| 資料屬性 | type | String | NA | 
| 資料屬性 | 模型 | String | NA | 
| 資料屬性 | name | String | NA | 
| 資料屬性 | full\$1name | String | NA | 
| 資料屬性 | label | String | NA | 
| 資料屬性 | 描述 | String | NA | 
| 資料屬性 | data\$1type | String | NA | 
| 資料屬性 | options | 清單 | NA | 
| 資料屬性 | api\$1writable | Boolean | NA | 
| 資料屬性 | ui\$1writable | Boolean | NA | 
| 資料屬性 | 自訂 | Boolean | NA | 
| 資料屬性 | archived | Boolean | NA | 
| 資料屬性 | created\$1at | Boolean | NA | 
| 資料屬性 | updated\$1at | DateTime | NA | 
| 資料屬性 | admin\$1id | String | NA | 
| 客群 | type | String | NA | 
| 客群 | id | String | NA | 
| 客群 | name | String | NA | 
| 客群 | created\$1at | DateTime | NA | 
| 客群 | updated\$1at | DateTime | NA | 
| 客群 | person\$1type | String | NA | 
| 客群 | count | Integer | NA | 
| Tags (標籤) | type | String | NA | 
| Tags (標籤) | id | String | NA | 
| Tags (標籤) | name | String | NA | 
| 團隊 | type | String | NA | 
| 團隊 | id | String | NA | 
| 團隊 | name | String | NA | 
| 團隊 | admin\$1ids | 清單 | NA | 

 **分區查詢** 

 如果想要在 Spark 中使用並行，可以提供其他 Spark 選項 `PARTITION_FIELD`、`LOWER_BOUND`、`UPPER_BOUND`、`NUM_PARTITIONS`。使用這些參數，原始查詢會分區為可由 Spark 任務並行執行的子查詢的 `NUM_PARTITIONS` 數目。
+  `PARTITION_FIELD`：用來分區查詢的欄位名稱。
+  `LOWER_BOUND`：所選分區欄位的包含下限值。

   對於日期，我們接受 Spark SQL 查詢中使用的 Spark 日期格式。有效值的範例：`"2024-02-06"`。
+  `UPPER_BOUND`：所選分區欄位的唯一上限值。
+  `NUM_PARTITIONS`：分區數目。

 實體分區欄位支援詳細資訊如下表所示。


| 實體名稱 | 分區欄位 | 資料類型 | 
| --- | --- | --- | 
| 聯絡人 | created\$1at, updated\$1at,last\$1seen\$1at | DateTime | 
| 對話 | id | Integer | 
| 對話 | created\$1at, updated\$1at | DateTime | 

 **範例** 

```
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`(String) - (必要) 用於讀取。Intercom 中物件的名稱。
+  `API_VERSION`(String) - (必要) 用於讀取。您要使用的 Intercom Rest API 版本。範例：v2.5。
+  `SELECTED_FIELDS`(List<String>) - 預設：empty(SELECT \$1)。用於讀取。您要為物件選取的資料欄。
+  `FILTER_PREDICATE`(String) - 預設：空白。用於讀取。其應該為 Spark SQL 格式。
+  `QUERY`(String) - 預設：空白。用於讀取。完整的 Spark SQL 查詢。
+  `PARTITION_FIELD`(String) - 用於讀取。用於分區查詢的欄位。
+  `LOWER_BOUND`(String) - 用於讀取。所選分區欄位的包含下限值。
+  `UPPER_BOUND`(String) - 用於讀取。所選分區欄位的唯一上限值。
+  `NUM_PARTITIONS`(Integer) - 預設：1。用於讀取。要讀取的分區數目。
+  `INSTANCE_URL`(String) - 使用者想要執行操作之執行個體的 URL。例如：[https://api.intercom.io](https://api.intercom.io)。

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

以下是 Intercom 連接器的限制：
+  使用公司實體時，最多可傳回 10,000 家公司。如需詳細資訊，請參閱[列出所有的公司 API](https://developers.intercom.com/docs/references/2.5/rest-api/companies/list-companies)。
+  套用排序依據時，**聯絡人**和**對話**實體都必須進行篩選。
+  SaaS 提供商支援 MCA。不過，根據文件中提到的 API 速率限制，我們不會在 上託管 MCA， AWS Glue 因為這可能會影響其他工作負載，並可能導致資源爭用造成效能問題。

# 建立新的 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** 和**用戶端機密**。