

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 使用早期的 CRM 与 Amazon S3 集成
<a name="custom-integration-using-amazon-s3"></a>

**重要**  
AWS 合作伙伴中心于 2024 年停止接受此类集成的新请求。本部分仅适用于使用 Amazon S3 的合作伙伴。  
要开始使用新的自定义 CRM 集成，请参阅 [AWS 合作伙伴中心 API 参考](https://docs.aws.amazon.com/partner-central/latest/APIReference/aws-partner-central-api-reference-guide.html)。

**Topics**
+ [从集成了 Amazon S3 的 CRM 升级到合作伙伴中心 API](upgrade-crm-api.md)
+ [为集成了 Amazon S3 的 CRM 配置连接器](s3-config.md)
+ [集成资源](resources.md)
+ [潜在客户共享](custom-lead-sharing.md)
+ [机会共享](custom-opportunity-sharing.md)
+ [字段映射](custom-field-mapping.md)
+ [创建同步计划](crm-connector-scheduling.md)
+ [最佳实践](best-practices.md)
+ [限额](quotas.md)
+ [版本历史记录](version-history.md)
+ [FAQs](faqs.md)

# 从集成了 Amazon S3 的 CRM 升级到合作伙伴中心 API
<a name="upgrade-crm-api"></a>

**注意**  
本节中的主题假设您已完成 AWS 合作伙伴中心集成、 AWS Marketplace 集成或两者兼而有之的先决条件。有关更多信息，请参阅本[集成先决条件](crm-integration-setting-up.md)指南[开始使用](crm-integration-getting-started.md)前面的。

以下各节中的步骤说明了如何从早期集成了 Amazon S3 的 CRM 升级到 AWS 合作伙伴中心 API。升级无需满足多个 ACE 要求，例如需要集成用户和设置同步计划。

**Topics**
+ [升级功能](api-upgrade-features.md)
+ [设置命名凭证](set-up-api-credentials.md)
+ [将 “批准状态” 按钮添加到 “机会闪电记录” 页面](add-approval-status-button.md)
+ [添加其余按钮](add-remaining-buttons.md)
+ [刷新 “解决方案选项” 选项卡](refresh-the-solutions-from-the-solution-offerings-tab.md)

# 升级功能
<a name="api-upgrade-features"></a>

此升级提供以下功能：
+ 您不再需要在 Salesforce 中设置 ACE 集成用户权限。
+ 您不再需要在 Salesforce 中为 ACE 机会创建时间表。
+ Partner Central API 还提供了一组按钮，用于在 Opportunity L **ightning Record** 页面上启用以下操作：
  + **批准状态**-接受或拒绝 AWS 推荐的机会。
**注意**  
此按钮取代了**合作伙伴接受状态**列表。您必须使用该按钮才能接受 AWS源自的机会。
  + **与之共享 AWS**-创建和更新机会。
  + **关联或取消关联** — 在整个机会生命周期中，将机会与合作伙伴解决方案、 AWS 产品和 AWS Marketplace 优惠关联或取消关联。
  + **分配**-将机会重新分配给您的合作伙伴中心账户中的其他用户。

  您可以在设置指定凭据后添加按钮。以下主题说明如何完成这些任务。

# 设置命名凭证
<a name="set-up-api-credentials"></a>

要升级到合作伙伴中心 API，您需要先设置指定凭证。CRM 连接器使用您的 Salesforce 组织凭据在合作伙伴中心进行身份验证。

**设置凭证**

1. 以系统管理员身份登录 Salesforce。

1. 在 “**命名凭据**” 下，选择 “**较早新建**”。

1. 在 “**新命名凭证**” 窗体中，输入下表中的值。    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/partner-central/latest/crm/set-up-api-credentials.html)

1.  选择**保存**。

1.  返回**AWS引导式设置**页面。在**身份验证详细信息**部分，选择**查看**并确认凭据。

# 将 “批准状态” 按钮添加到 “机会闪电记录” 页面
<a name="add-approval-status-button"></a>

以下步骤说明了如何将 “**批准状态**” 按钮添加到 Opporuntiy Lightning Record 页面。该按钮使您能够在机会通过批准流程时查看其状态。

**添加按钮**

1. 以系统管理员身份登录您的 Salesforce 组织。

1. 导航至 “**机会闪电记录**” 页面。 

1. 选择突出显示的面板以打开属性窗格。

1. 选择 “**立即升级**”。

1. 选择 “**迁移现有操作**”，然后选择要从中升级操作的页面布局。

    -或- 

   从头开始，然后手动添加操作。

1. 从 “**操作**” 列表中选择 “**批准状态**”。

1. 选择**保存**。

**注意**  
您只需要完成步骤 4 和 5 一次。
“**批准状态**” 按钮仅显示在 AWS推荐**机会的 “机会闪电记录**” 页面中。

# 添加其余按钮
<a name="add-remaining-buttons"></a>

您可以添加以下步骤中列出的部分或全部按钮。

**添加按钮**

1. 以系统管理员身份登录您的 Salesforce 组织。

1. 导航至 “**机会闪电记录” 页面**。

1. 选择突出显示的面板以打开属性窗格。

1. 选择 “**从操作中分配**”，然后选择以下部分或全部项目：
   + **与... 共享 AWS**
   + **关联或取消关联**
   + **分配**

   有关每个按钮的功能的更多信息，请参阅本[升级功能](api-upgrade-features.md)指南前面的内容。

1. 选择**保存**。

# 刷新 “解决方案选项” 选项卡
<a name="refresh-the-solutions-from-the-solution-offerings-tab"></a>

以下步骤说明如何刷新 “**解决方案产品**” 选项卡上的数据。

1.  以系统管理员身份登录您的 Salesforce 组织。

1.  导航至 “**解决方案产品**” 选项卡。

1.  选择 “**刷新解决方案**”。

# 为集成了 Amazon S3 的 CRM 配置连接器
<a name="s3-config"></a>

**重要**  
从 2024 年开始，AWS 合作伙伴中心禁止新用户使用这种集成类型。

**注意**  
本节中的主题假设您已完成 AWS 合作伙伴中心集成、 AWS Marketplace 集成或两者的先决条件。有关更多信息，请参阅本[集成先决条件](crm-integration-setting-up.md)指南[开始使用](crm-integration-getting-started.md)前面的。

已弃用的 CRM 与 Amazon S3 的集成使用 Amazon S3 存储桶来转移潜在客户和机会。我们建议使用合作伙伴中心 API 集成（如上一节所示）来创建和管理机会。但是，如果您想使用连接器在 Salesforce 中管理潜在客户，则可以使用此配置。

**Topics**
+ [输入连接身份验证详细信息](#apn-s3-authentication-details)
+ [进入系统配置设置](#apn-s3-config-settings)
+ [测试 连接](#apn-s3-testing)
+ [发送和接收机会和线索](#sending-receiving-opportunities-leads)
+ [制作清单](ace-production-checklist.md)
+ [将 AWS Partner CRM 连接器升级到新的数据模型](connector-upgrade-plan.md)
+ [使用自定义 ACE 机会和 ACE 潜在客户对象进行沙盒测试](custom-ace-opportunity.md)
+ [将 AWS Marketplace 私人优惠与 ACE 机会联系起来](#linking-private-offers-to-ace)

## 输入连接身份验证详细信息
<a name="apn-s3-authentication-details"></a>

合作伙伴通过输入连接其 Amazon S3 终端节点所需的详细信息开始集成过程。按照列出的顺序执行每组步骤，完成每组步骤，然后再继续下一组。

以下任务是通过**AWS 引导式设置**选项卡执行的。有关使用该选项卡的信息，请参阅本指南[使用引导式设置](use-guided-setup.md)前面部分。

**输入身份验证详细信息**

1. 在 Salesforce 中，打开引**AWS 导式设置**选项卡。有关打开该选项卡的信息，请参阅本指南[使用引导式设置](use-guided-setup.md)前面部分。

1. 展开 “**步骤 1： AWS 连接身份验证详细信息**”，然后选择 “**开始”。**

1. 在 “已**命名凭据**” 页面上，选择 “**先前新建**”。

1. 在 “**新命名凭证**” 窗体中，输入下表中的值。


| **Field** | **Value** | 
| --- | --- | 
| 标签 | APN API 连接  | 
| URL | [https://s3.us-west-2.amazonaws.com](https://s3.us-west-2.amazonaws.com) | 
| 身份类型 | 指定校长  | 
| 身份验证协议 | AWS 签名版本 4  | 
| AWS 访问密钥 ID | Cloud-Ops 在先决条件步骤中提供 ID  | 
| AWS 私有访问密钥 | Cloud-Ops 在先决步骤中提供访问密钥  | 
| AWS 区域 | us-west-2  | 
| AWS service | S3  | 
| 生成授权标头 | checked  | 
| 允许在 HTTP 标头中合并字段 | 未选中  | 
| 允许在 HTTP 正文中合并字段 | 未选中  | 

1. 选择**保存**。

1. 返回**AWS引导式设置**页面。在**身份验证详细信息**部分，选择**查看**并确认凭据。

1. 保持 “**AWS引导式设置**” 页面处于打开状态，然后继续执行后续步骤。

## 进入系统配置设置
<a name="apn-s3-config-settings"></a>

以下步骤说明了如何为集成输入正确的系统配置设置。

1. 展开 “**步骤 2：系统配置设置”**，然后选择 “**开始”。**

1. 找到**AWS 合作伙伴 CRM 连接器设置**，然后选择**管理**。

1. 选择 “**新建**”，然后输入下表中的所需值。    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/partner-central/latest/crm/s3-config.html)

1. 选择**保存**。

1. 返回**AWS引导式设置**页面。在**身份验证详细信息**部分，选择**查看**并确认凭据。

## 测试 连接
<a name="apn-s3-testing"></a>

在测试连接之前，请确保完成前几节中的步骤。

**测试 连接**

1. 展开**步骤 3：测试 APN API 的配置**。

1. 选择**测试**。

如果连接成功，您将收到一条确认消息。

## 发送和接收机会和线索
<a name="sending-receiving-opportunities-leads"></a>

您可以通过将机会和潜在客户与 Partner Central 同步，来发送和接收这些机会和潜在客户。要同步机会或潜在客户，必须将 “**与合作伙伴中心同步**” 字段设置为 **True**。其他需要整合的关键字段包括 “**上次 APN 同步日期**” 和 “**有资格与 APN 同步**” 字段。

这些字段包含在标准机会和潜在客户中。但是，您必须为任何自定义源对象创建和映射它们。
+ **与 Partner Central 同步** — 包含在应用程序中，用于标准机会和潜在客户。如果 AWS Partner 选择映射到自定义对象，则必须分别在机会映射和潜在客户映射中创建和映射自定义布尔字段。
+ **与 APN 的上次同步日期** — 表示上次成功向 APN 发送记录或从 APN 接收记录的时间。当记录成功发送到 APN 或收到来自 APN 的更新时，将自动设置此字段。
+ **有资格与 APN 同步** — 一个公式字段，用于确定是否在下一个计划任务中将记录发送到 APN。计算依据的是自上次运行出站日程表以来记录是否被修改，以及该记录是否由该 AWS Partner组织的指定集成用户以外的用户更新。

# 制作清单
<a name="ace-production-checklist"></a>

按照以下步骤完成 AWS Partner CRM 连接器的生产安装。

1. 确认您已完成 CRM 集成的[入职流程](https://docs.aws.amazon.com/partner-central/latest/crm/crm-integration-getting-started.html)。在此过程的[第 6 阶段](https://docs.aws.amazon.com/partner-central/latest/crm/stage-6-production-approval.html)，您将设置生产环境并执行数据迁移，这样您就可以通过集成管理机会和潜在客户。

1. 安装和配置 CRM 连接器。有关更多信息，请参阅[安装连接器](install-connector.md)。

1.  通过选择以下映射选项之一，映射机会和潜在客户对象。如需参考，请参阅上的此[必填字段](https://github.com/aws-samples/partner-crm-integration-samples/blob/main/opportunity-samples/Opportunity-Fields.csv)列表 GitHub。
   + 使用 AWS Partner CRM 连接器提供的 AWS ACE 机会自定义对象来记录机会并与之共享 AWS。使用此选项，您可以自动将 AWS 字段映射到 Salesforce 字段。
   + 使用标准的 Salesforce 对象并映射必填 AWS 字段。
   + 使用 ACE 自定义机会对象。您首先创建一个工作流程来填充 ACE 机会对象的中间表，然后将 Salesforce 字段映射到。 AWS

1. 有关映射选项的更多详细信息和指导，请参阅[映射 ACE 对象](crm-connector-mapping.md)。

1. （可选）在 AWS Partner 网络和 Salesforce 之间设置入站和出站同步计划。有关详细信息，请参阅[创建同步计划](crm-connector-scheduling.md)。

1. 要验证合作伙伴发起的生产机会，请在您的合作伙伴中心账户中向合作伙伴中心运营部 (PCO) 提出[支持案例](https://docs.aws.amazon.com/partner-central/latest/crm/crm-integration-faq.html#troubleshooting)。在此过程中，您将创建一个虚拟机会，将其与之同步 AWS，然后要求 AWS 支持代理确认 AWS 已收到机会。在测试结束时，请您的 AWS 支持代理拒绝机会请求，这样您就可以将其从自己身边删除。

1. （可选）执行数据回填。此流程可确保在 future 更新期间可以识别出 AWS 源和源自合作伙伴的机会推荐。有关更多信息，请参阅 CRM 入职流程中的[第 6 阶段：生产批准](https://docs.aws.amazon.com/partner-central/latest/crm/stage-6-production-approval.html)。

1. 激活生产集成以允许通过 Amazon S3 存储桶交换文件。有关详细信息，请参阅[第 7 阶段：启动](https://docs.aws.amazon.com/partner-central/latest/crm/stage-7-launch.html)。

# 将 AWS Partner CRM 连接器升级到新的数据模型
<a name="connector-upgrade-plan"></a>

**重要**  
在升级生产环境之前，在沙箱 Salesforce 组织中测试并批准新的数据模型升级。有关新数据模型以及新旧模型之间的更改，请参阅以下 [aws-sam partner-crm-integration-samples](https://github.com/aws-samples/partner-crm-integration-samples/tree/main/opportunity-samples) ples/ 上的内容： GitHub  
**机会-FieldsAndStandardValues-DiffWithPrevVersion-v14.3.xlsx**
**Opportunity-Fields.xlsx**
**Opportunity\$1 StandardValues-\$1 .xlsx**

## 先决条件
<a name="connector-upgrade-prereqs"></a>
+ 在 ACE CRM 集成的新数据模型指南中使用字段定义，并将所有必需的空缺机会和潜在客户迁移到新的数据模型。
+ 在自定义对象或标准对象（映射中使用的对象）中添加或删除列。
+ 确保您使用的是 2.0 版或更高版本的 AWS Partner CRM 连接器。

**升级到新的数据模型**

1. 以系统管理员身份登录您的 Salesforce 组织。

1. 停用所有有效的日程安排。

1. 选择 “**设置**”、**“自定义设置”**、“**AWS Partner CRM 连接器设置”**，然后将版本更新到 **2.0** 或更高版本。
**注意**  
从版本 2.0 开始，“**版本**” 字段为必填字段。此字段指定合作伙伴用于与 CRM 集成交互的有效负载版本。当合作伙伴迁移到 2.0 版时，他们必须完全采用其规范。不允许恢复到以前的版本。

1. 选择 **ACE 映射**选项卡。

1. 创建、查看和更新所有必填字段映射和详细信息。对于沙盒测试，请使用自定义 ACE 机会和 ACE 潜在客户来测试新的数据模型功能。有关更多信息，请参阅[使用自定义 ACE 机会和 ACE 潜在客户对象进行沙盒测试](custom-ace-opportunity.md)。

1. 激活机会和潜在客户的时间表。

1. 查看 ACE 同步日志中是否存在同步错误并进行更正。

1. 审查同步的机会和潜在客户，以确保数据转换的准确性。或者，在 ACE 中查看机会和潜在客户，以确保准确捕捉新的数据模型变化。

1. 按照您的产品部署流程将更改迁移到生产 Salesforce 环境。
**注意**  
如果您需要帮助，请参阅[获取帮助](getting-help.md)。

# 使用自定义 ACE 机会和 ACE 潜在客户对象进行沙盒测试
<a name="custom-ace-opportunity"></a>

**注意**  
如果您是 CRM 连接器的现有用户，请参阅[将 AWS Partner CRM 连接器升级到新的数据模型](connector-upgrade-plan.md)。

1. 以系统管理员身份登录您的 Salesforce 组织。

1. 选择 “**设置**”、**“自定义设置”、“AWS Partner ****CRM 连接器设置”**，然后将版本更新为 **2**。

1. 选择 **ACE 映射**选项卡。

1. 对于 O **pp** ortunity，将其映射到 **ACE 机会**自定义对象。

1. 选择**自动映射 ACE 对象**。
**注意**  
如果要升级到新版本的 CRM 连接器，并希望使用连接器中的自定义 ACE 机会和 ACE 潜在客户对象进行沙盒测试，我们建议您在使用 Auto Map ACE `Field Mapping Details` 对象功能之前手动从数据库中删除`Field Mappings`和对象中的所有可用记录。你只需要这样做一次。

1. 查看选择列表和多选列表的字段映射和字段映射值。

1. 激活机会和潜在客户的时间表。

1. 查看 ACE Sync Logs 中是否存在同步错误，并进行任何必要的更正。

1. 查看同步的机会和潜在客户，以确保数据转换的准确性。或者，查看 ACE 中的机会和潜在客户，以确保准确捕捉到新的数据模型变化。

## 查看 ACE 机会的同步日志详细记录
<a name="sync-log-detail-records"></a>

 您可以在 ACE 机会记录的 “**相关**” 选项卡上查看 AWS已交付的 ACE 机会的同步日志详细信息。

**注意**  
这些步骤仅适用于 AWS已交付的 ACE 机会对象。如果您映射到 Salesforce 组织中的标准对象或自定义对象，则可以在 **ACE 同步日志选项卡上查看同步日志**的详细信息。

1. 登录到你的 Salesforce 组织。

1. 在**应用程序启动器**中，选择 **AWS Partner CRM 连接器**。

1. 选择 **ACE 机会**选项卡。

1. 选择 ACE 机会记录。

1. 选择 “**相关**” 选项卡可查看详细信息，包括**同步日志名称**、**状态**、**错误消息**和**创建日期**。

## 将 AWS Marketplace 私人优惠与 ACE 机会联系起来
<a name="linking-private-offers-to-ace"></a>

您可以直接从 AWS 已交付的 ACE 机会记录页面链接私人报价。

1. 登录到你的 Salesforce 组织。

1. 在**应用程序启动器**中，选择 **AWS Partner CRM 连接器**。

1. 选择 **ACE 机会**选项卡。

1. 选择 ACE 机会记录。

1. 选择 “**链接私人优惠**”。

1. 在选**件编号查询**中，选择私密报价。

1. 选择**保存**。

# 集成资源
<a name="resources"></a>

AWS 提供了以下资源来帮助您创建自定义集成。

**Topics**
+ [字段定义](#custom-field-definitions)
+ [标准值](#standard-values)
+ [入站文件示例](#sample-inbound-files)
+ [出站文件示例](#sample-outbound-files)
+ [处理结果示例](#sample-processed-results)
+ [示例测试用例](#sample-test-cases)
+ [示例代码片段](#sample-code-snippets)

## 字段定义
<a name="custom-field-definitions"></a>

以下各节中的链接列出了所有字段，解释了它们的数据类型、用法以及适用的任何限制或格式规则。它们可以作为参考，以确保在合作伙伴和 AWS 交换数据时，数据格式正确且易于理解。

以下链接将带您前往 GitHub。
+ [Opportunity](https://github.com/aws-samples/partner-crm-integration-samples/blob/main/opportunity-samples/Opportunity-Fields.csv)
+ [铅](https://github.com/aws-samples/partner-crm-integration-samples/blob/main/lead-samples/Leads-Fields.csv)

## 标准值
<a name="standard-values"></a>

这些列表概述了各个字段的标准值和枚举。它们有助于保持交换数据的一致性，并确保双方对所使用的值有共同的理解。

以下链接将带您前往 GitHub。
+ [Opportunity](https://github.com/aws-samples/partner-crm-integration-samples/blob/main/opportunity-samples/Opportunity_-_StandardValues.csv)
+ [铅](https://github.com/aws-samples/partner-crm-integration-samples/blob/main/lead-samples/Lead_-_StandardValues.csv)

## 入站文件示例
<a name="sample-inbound-files"></a>

以下示例文件显示了从合作伙伴发送到的文件的 JSON 负载结构 AWS。

以下链接将带您前往 GitHub。
+ [Opportunity](https://github.com/aws-samples/partner-crm-integration-samples/blob/main/opportunity-samples/Opportunity-Create-Inbound-Sample.json)
+ [铅](https://github.com/aws-samples/partner-crm-integration-samples/blob/main/lead-samples/Lead-Update-Inbound-Sample.json)

## 出站文件示例
<a name="sample-outbound-files"></a>

以下示例文件显示了从合作伙伴发送的文件的 JSON 有效负载 AWS 的结构。

以下链接将带您前往 GitHub。
+ [Opportunity](https://github.com/aws-samples/partner-crm-integration-samples/blob/main/opportunity-samples/Opportunity-Outbound-Sample.json)
+ [铅](https://github.com/aws-samples/partner-crm-integration-samples/blob/main/lead-samples/Lead-Outbound-Sample.json)

## 处理结果示例
<a name="sample-processed-results"></a>

以下文件显示了 AWS 处理合作伙伴发送的有效负载后的典型结果。

以下链接将带您前往 GitHub。
+ [Opportunity](https://github.com/aws-samples/partner-crm-integration-samples/blob/main/opportunity-samples/Opportunity-Results-Success-Sample.json)
+ [铅](https://github.com/aws-samples/partner-crm-integration-samples/blob/main/lead-samples/Lead-Results-Success-Sample.json)

## 示例测试用例
<a name="sample-test-cases"></a>

以下链接将带您前往 GitHub。
+ [Opportunity](https://github.com/aws-samples/partner-crm-integration-samples/blob/main/opportunity-samples/Opportunity%20-%20Testing%20Scenarios.xlsx)
+ [铅](https://github.com/aws-samples/partner-crm-integration-samples/blob/main/lead-samples/Lead%20-%20Testing%20Scenarios.xlsx)

## 示例代码片段
<a name="sample-code-snippets"></a>

以下链接将带您前往 GitHub。
+ [ace\$1read\$1s3.py](https://github.com/aws-samples/partner-crm-integration-samples/blob/main/code-snippets/ace_read_s3.py)
+ [apex\$1sample\$1rest\$1 ode.cls API\$1C](https://github.com/aws-samples/partner-crm-integration-samples/blob/main/code-snippets/Apex_Sample_REST_API_Code.cls)
+ [s3\$1authentication.cls](https://github.com/aws-samples/partner-crm-integration-samples/blob/main/code-snippets/S3_Authentication.cls)
+ [Sample\$1 .cls AceOutboundBatch](https://github.com/aws-samples/partner-crm-integration-samples/blob/main/code-snippets/Sample_AceOutboundBatch.cls)
+ [SFDC apex s3 sample.txt](https://github.com/aws-samples/partner-crm-integration-samples/blob/main/code-snippets/SFDC_apex_s3_sample.txt)
+ [apex\$1get\$1files\$1from\$1s3\$1ace\$1partner\$1test.cls](https://github.com/aws-samples/partner-crm-integration-samples/blob/main/code-snippets/Apex_get_files_from_s3_ace_partner_test.cls)
+ [s3\$1ace\$1partner\$1test.cls](https://github.com/aws-samples/partner-crm-integration-samples/blob/main/code-snippets/s3_ace_partner_test.cls)

# 潜在客户共享
<a name="custom-lead-sharing"></a>

## AWS 股票如何领先
<a name="how-aws-shares-leads"></a>

1. **增量导出**：Amazon Web Services (AWS) 每小时导出所 AWS提及的新潜在客户（和更新）。

1. **文件创建**： AWS 生成符合特定格式的潜在客户文件。有关详细的文件规格，请参阅[字段定义](resources.md#custom-field-definitions)。

1. **文件上传**：潜在客户文件上传到`lead-outbound`文件夹。

## 消耗来自的潜在客户 AWS
<a name="consuming-leads-from-aws"></a>

要有效地利用来自的潜在客户 AWS，请使用以下功能构建自定义集成。

1. **文件检索**：
   + 按照您选择的时间间隔使用计划作业定期扫描`lead-outbound`文件夹。
   + 检索潜在客户文件进行处理。

1. **数据转换和映射**：
   +  阅读每个文件的内容后，转换数据并将其映射到客户关系管理 (CRM) 系统中的潜在客户记录。
   + 有关字段映射的指导，请参阅[字段映射](custom-field-mapping.md)。

1. **线索识别**：
   + 使用`partnerCrmLeadId`或对每个潜在客户进行唯一标识`apnCrmUniqueIdentifier`。
   + 如果`partnerCrmLeadId`为空且`apnCrmUniqueIdentifier`存在，则潜在客户是 AWS Partner Network (APN) 客户互动 (ACE) 的新推荐人。
   + 如果两个标识符都存在，则该记录将被视为来自 ACE 的更新。

1. **铅摄入：**
   + 在 CRM 系统中获取新的潜在客户或更新现有潜在客户。

1. **文件管理**：
   + 成功处理每条线索和完整文件数据后，从出站文件夹中删除文件。
   + 每个文件都会自动存档到该`lead-outbound-archive`文件夹中。

**集成和代码参考**：
+ 要读取上传到亚马逊简单存储服务 (Amazon S3) 存储桶的文件， AWS Lambda 您可以使用您的 CRM 系统或直接从 CRM 系统读取。
+ 使用以下 Lambda 和 Salesforce REST API 的示例代码来验证和更新 CRM 记录。
  + **用于验证文件的 Lambda**[：ace\$1read\$1s3.py。](https://github.com/aws-samples/partner-crm-integration-samples/blob/main/code-snippets/ace_read_s3.py)
  + **Salesforce REST API**：[apex API\$1C](https://github.com/aws-samples/partner-crm-integration-samples/blob/main/code-snippets/Apex_Sample_REST_API_Code.cls) \$1sample\$1rest\$1 ode.cls
+ 如果您使用的是 Salesforce 以外的 CRM 系统，则必须提供特定于您的系统的代码来更新数据。

## 与分享潜在客户的最新动态 AWS
<a name="sharing-updates-on-leads-with-aws"></a>

1. **识别潜在客户**：找到要与之共享的最新消息的潜在客户 AWS。

1. **数据转**换：将数据转换为 AWS 格式，如中所述[字段定义](resources.md#custom-field-definitions)。

1. **文件创建**：
   + 生成 JSON 格式的潜在客户文件。
   + 为每个文件附加时间戳，确保所有文件名都是唯一的，并遵循以下格式：。`{name}_MMDDYYYY24HHMMSS.json`

1. **进行身份验证并上传**：
   + 向 ACE Amazon S3 存储桶进行身份验证。
   + 将文件上传到文件`lead-inbound`夹。与之共享的所有文件 AWS 都会自动存档`lead-inbound-archive`到该文件夹中。
   + 将文件上传到 S3 时，请确保向存储桶所有者提供完全访问权限。

     ```
     aws s3 cp example.jpg s3://awsexamplebucket --acl bucket-owner-full-control
     ```

     在 “结果示例 [file.json” 中查看运行此命令的示例结果](https://github.com/aws-samples/partner-crm-integration-samples/blob/main/lead-samples/Lead-Results-Success-Sample.json)。

1. **文件处理**：
   + 收到文件后， AWS 会自动处理文件。
   + 处理结果将上传到 Amazon S3 存储桶中的`lead-inbound-processed-results`文件夹。这包括成功和错误的状态，以及每条潜在客户的任何错误消息。
   + 这些处理后的结果也存档在`lead-inbound-processed-results-archive`文件夹中。
   + 有关更多信息，请参阅[技术常见问题解答——线索和机会](technical-faq-leads-and-opps.md)。

1. **响应处理**：
   + 您必须开发使用这些响应的逻辑，查看错误记录，更正所有错误，然后将数据重新发送给 ACE。
   + 您可以在 “常见问题解答” 和 “疑难解答” 部分找到错误示例。
   + 要从 CRM 将文件上传到 Amazon S3，请执行以下操作：
     + 引用 AWS 签名的版本。
     + 使用 HTTPS 请求上传文件。
   + 作为参考，请使用以下文件将文件上传到 Amazon S3 存储桶：
     + **用于对 S3 存储桶进行身份验证：s3\$1** [authentication.cls](https://github.com/aws-samples/partner-crm-integration-samples/blob/main/code-snippets/S3_Authentication.cls)
     + **要将文件上传到 S3 存储桶：S** [ample AceOutboundBatch](https://github.com/aws-samples/partner-crm-integration-samples/blob/main/code-snippets/Sample_AceOutboundBatch.cls) \$1 .cls
   + **注意：**文件大小不得超过 1 MB，并且不会处理重复的文件。

# 机会共享
<a name="custom-opportunity-sharing"></a>

## 如何 AWS 分享机会
<a name="how-aws-shares-opportunities"></a>

1. **增量导出**：Amazon Web Services (AWS) 每小时导出所 AWS提及的新机会（和更新）。

1. **文件创建**： AWS 生成符合特定格式的机会文件。有关详细的文件规范，请参阅[机会字段定义](https://github.com/aws-samples/partner-crm-integration-samples/blob/main/opportunity-samples/Opportunity-Fields.csv)。

1. **文件上传**：机会文件上传到`opportunity-outbound`文件夹。

## 消费来自的机会 AWS
<a name="consuming-opportunities-from-aws"></a>

为了有效地利用机会 AWS，您需要与这些功能建立自定义集成。

1. **文件检索**：
   + 使用计划作业按您选择的时间间隔定期扫描`opportunity-outbound`文件夹。
   + 检索机会文件进行处理。

1. **数据转换和映射**：
   + 阅读每个文件的内容后，转换数据并将其映射到客户关系管理 (CRM) 系统中的机会记录。
   + 有关字段映射的指导，请参阅[字段映射](custom-field-mapping.md)。

1.  **机会识别**：
   + 使用`partnerCrmOpportunityId`或唯一标识每个机会`apnCrmUniqueIdentifier`。
   + 如果`partnerCrmOpportunityId`为空且`apnCrmUniqueIdentifier`存在，则机会是来自 AWS Partner Network (APN) 客户参与 (ACE) 的新推荐。
   + 如果两个标识符都存在，则该记录将被视为来自 ACE 的更新。

1. **机会摄取**：在 CRM 系统中挖掘新机会或更新现有机会。

1. **文件管理**：
   + 成功处理每个机会和完整文件数据后，将文件从出站文件夹中删除。
   + 每个文件都会自动存档到该`opportunity-outbound-archive`文件夹中。

**集成和代码参考**：
+  要读取上传到亚马逊简单存储服务 (Amazon S3) 存储桶的文件， AWS Lambda 您可以使用您的 CRM 系统或直接从 CRM 系统读取。
+ 使用以下 Lambda 和 Salesforce REST API 的示例代码来验证和更新 CRM 记录。
  + **用于验证文件的 Lambda**[：ace\$1read\$1s3.py。](https://github.com/aws-samples/partner-crm-integration-samples/blob/main/code-snippets/ace_read_s3.py)
  + **Salesforce REST API**：[apex API\$1C](https://github.com/aws-samples/partner-crm-integration-samples/blob/main/code-snippets/Apex_Sample_REST_API_Code.cls) \$1sample\$1rest\$1 ode.cls。
+ 如果您使用的是 Salesforce 以外的 CRM 系统，则必须提供特定于您的系统的代码来更新数据。

## 与分享机会的最新信息 AWS
<a name="sharing-updates-to-opportunities-with-aws"></a>

1. **识别机会**：找到机会并与之共享 AWS。

1. **数据转**换：将数据转换为 AWS 格式，如中所述[字段定义](resources.md#custom-field-definitions)。

1.  **文件创建**：
   + 生成 JSON 格式的机会文件。
   + 为每个文件附加时间戳，确保所有文件名都是唯一的，并遵循以下格式：。`{name}_MMDDYYYY24HHMMSS.json`

1.  **进行身份验证并上传**：
   + 向 ACE Amazon S3 存储桶进行身份验证。
   + 将文件上传到文件`opportunity-inbound`夹。与之共享的所有文件 AWS 都会自动存档`opportunity-inbound-archive`到该文件夹中。
   + 将文件上传到 S3 时，请确保向存储桶所有者提供完全访问权限：

     ```
     aws s3 cp example.jpg s3://awsexamplebucket --acl bucket-owner-full-control
     ```

      在 Opportunity Results [成功示例.json 中查看运行此命令的示例结果](https://github.com/aws-samples/partner-crm-integration-samples/blob/main/opportunity-samples/Opportunity-Results-Success-Sample.json)。

1. **文件处理**：
   + 收到文件后， AWS 自动处理文件。
   + 处理结果将上传到 Amazon S3 存储桶中的`lead-inbound-processed-results`文件夹。这包括成功和错误的状态，以及每个机会的所有错误消息。
   + 这些处理后的结果也存档在`opportunity-inbound-processed-results-archive`文件夹中。
   + 有关更多信息，请参阅[技术常见问题解答——线索和机会](technical-faq-leads-and-opps.md)。

1. **响应处理**：
   + 您必须开发使用这些响应的逻辑，查看错误记录，更正所有错误，然后将数据重新发送给 ACE。
   + 您可以在 “常见问题解答” 和 “疑难解答” 部分找到错误示例。
   + 要从 CRM 将文件上传到 Amazon S3，请执行以下操作：
     + 引用 AWS 签名的版本。
     + 使用 HTTPS 请求上传文件。
   + 作为参考，请使用以下文件将文件上传到 Amazon S3 存储桶：
     + **用于对 S3 存储桶进行身份验证：s3\$1** [authentication.cls](https://github.com/aws-samples/partner-crm-integration-samples/blob/main/code-snippets/S3_Authentication.cls)
     + **要将文件上传到 S3 存储桶：S** [ample AceOutboundBatch](https://github.com/aws-samples/partner-crm-integration-samples/blob/main/code-snippets/Sample_AceOutboundBatch.cls) \$1 .cls
   + **注意：**文件大小不得超过 1 MB，并且不会处理重复的文件。

# 字段映射
<a name="custom-field-mapping"></a>

现场映射是集成过程中的一个重要步骤，在此过程中，合作伙伴将其客户关系管理 (CRM) 系统的字段与 Amazon Web Services (AWS) 定义的字段保持一致。这样可以确保双方准确地交换和理解数据。以下是帮助完成此过程的指南。

## 必填字段映射
<a name="mandatory-field-mapping"></a>
+ 将每个必填字段映射到 CRM 系统中的相应字段。确保映射所有必填字段时，这对于成功进行数据交换至关重要。有关更多信息，请参阅 [字段定义](resources.md#custom-field-definitions)。
  + [Opportunity](https://github.com/aws-samples/partner-crm-integration-samples/blob/main/opportunity-samples/Opportunity-Fields.csv)
  + [铅](https://github.com/aws-samples/partner-crm-integration-samples/blob/main/lead-samples/Leads-Fields.csv)

## 处理可选字段
<a name="handling-optional-fields"></a>
+ 了解可选字段在集成过程中的作用。决定是否要根据业务需求映射这些字段，并注意未映射它们可能产生的任何影响。

## 值映射
<a name="value-mapping"></a>
+ 将 CRM 中的每个字段值与所需 AWS Partner Network (APN) 客户参与度 (ACE) 列表值对齐，如中所[字段定义](resources.md#custom-field-definitions)述。这对于维护数据的一致性和完整性非常重要。

## 数据类型和格式验证
<a name="data-type-and-format-validation"></a>
+ 验证 CRM 系统中字段的数据类型和格式是否与 AWS *字段定义*中指定的数据类型和格式一致。必须保持数据类型和格式的一致性，以防止数据损坏并确保无缝集成。

## 字段长度和限制
<a name="field-length-and-limitations"></a>
+ 请注意字段长度限制和其他限制。确保来自 CRM 系统的数据符合中的相应字段， AWS 而不会被截断或导致错误。

## 数据类型和格式验证
<a name="data-type-and-format-validation-1"></a>
+ 验证 CRM 系统中的字段数据类型和格式是否与中指定的数据类型和格式一致[字段定义](resources.md#custom-field-definitions)。防止数据损坏并确保无缝集成以及数据类型和格式的一致性至关重要。

## 定期审查和更新
<a name="periodic-review-and-update"></a>
+ 定期检查和更新您的字段映射，以适应 CRM 系统或 AWS 要求的变化。这种积极主动的方法可确保持续的数据交换的准确性和效率。

## 字段映射文档
<a name="field-mapping-documentation"></a>
+ 维护全面的字段映射文档。这种做法有助于进行故障排除、future 更新，并确保系统之间数据的传输方式清晰明了。

## 测试和验证
<a name="testing-and-validation"></a>
+ 进行全面的字段映射测试，以验证数据的传输和转换是否准确。立即解决任何差异或问题，以确保数据完整性。

## 处理不必要的覆盖
<a name="handling-unwanted-overwrites"></a>
+ 为防止 AWS 数据覆盖特定的 CRM 字段，请考虑以下事项：
  + 为您要保护的数据创建自定义 CRM 字段。
  + 让销售代表审核此自定义字段。
  + 自定义字段获得批准后，将其添加到机会记录和渠道中。
+ 这对于像`MRR`或这样的领域尤其重要`Stage`，特别是如果它们表示产品已经推出。

## 管理下游依赖关系
<a name="managing-downstream-dependencies"></a>
+ 如果您的系统中存在依赖于数据交换的下游依赖关系，请考虑以下几点：
  + 在 CRM 中创建新字段以容纳 AWS 数据。
  + 根据需要重新调整业务流程，以确保无缝集成和数据流动。

# 创建同步计划
<a name="crm-connector-scheduling"></a>

**注意**  
本节中的主题假设您已完成 AWS 合作伙伴中心集成、 AWS Marketplace 集成或两者兼而有之的先决条件。有关更多信息，请参阅本[集成先决条件](crm-integration-setting-up.md)指南[开始使用](crm-integration-getting-started.md)前面的。

您可以在 Salesforce 和 AWS 合作伙伴中心之间创建入站和出站同步计划。以下各节中的步骤说明了操作方法。

**Topics**
+ [先决条件](#scheduling-prerequisites)
+ [创建计划](#creating-a-schedule)
+ [停用计划作业](#deactivating-a-scheduled-job)
+ [查看所有日程安排](#viewing-all-schedules)

## 先决条件
<a name="scheduling-prerequisites"></a>

在创建同步计划之前，请确保完成以下操作：
+ 将所有必填字段@@ [映射](crm-connector-mapping.md)到至少一个对象、机会或潜在客户上。
+ 在 Salesforce 中创建[系统集成用户](#system-integration-user)。

### 创建系统集成用户
<a name="system-integration-user"></a>

在创建同步计划之前，必须使用 Salesforce 创建具有 APN 集成权限的系统集成用户。要创建同步计划，您必须以系统集成用户身份登录 Salesforce。在没有 APN 集成用户权限的情况下创建计划可能会中断 APN 集成。

**创建系统集成用户**

1. 以系统管理员身份登录您的 Salesforce 组织。

1. 在你的 Salesforce 组织中创建一个用户。为有权访问您的 Salesforce 组织中所需对象的用户分配个人资料。有关更多信息，请参阅[添加单个用户](https://help.salesforce.com/s/articleView?id=sf.adding_new_users.htm)。

1. 为用户分配 **APN 集成用户**权限集。有关更多信息，请参阅[向用户分配权限集](https://help.salesforce.com/s/articleView?id=sf.assign_permission_set_to_user.htm)。

## 创建计划
<a name="creating-a-schedule"></a>

完成[先决条件](#scheduling-prerequisites)后，您可以在 Salesforce 和 APN 之间创建同步计划。

**使用 APN 创建同步计划**

1. 以具有系统集成用户权限的用户身份登录 Salesforce。

1. 在 “**计划**” 选项卡上，选择 “**新建**”。

1. 选择要安排的对象。您可以为潜在客户和机会或单个对象设置时间表。

1. 选择计划频率，从最少每五分钟到每天最多一次。

1. 选择 **Schedule**。

**注意**  
每个对象一次只能有一个计划处于活动状态。为同一对象创建新计划会停用现有计划。
要在创建计划时禁用入站集成，请选择 “**禁用入站集成”、“计划**”。
在没有 APN 集成用户权限的情况下创建计划可能会中断 APN 集成。

## 停用计划作业
<a name="deactivating-a-scheduled-job"></a>

1. 在 “**计划**” 页面上，选择 “**停用所有作业**” 以关闭所有活动的计划。

1. 继续浏览确认屏幕以停用同步计划。

## 查看所有日程安排
<a name="viewing-all-schedules"></a>

 **在 “**计划**” 选项卡中，使用列表视图筛选器在 “活动”、“**非活动**” 和 “**全部” 同步**计划之间切换。**

# 最佳实践
<a name="best-practices"></a>

 使用这些最佳实践来优化您的自定义集成开发和维护。

## 一般最佳实践
<a name="general-best-practices"></a>

1. 映射所有*必填*字段，因为它们是 AWS Partner Network (APN) 客户参与 (ACE) 提交表单中的必填字段。

1. 联系你当前的 ACE Pipeline Manager 用户，了解流程是什么样子。捕捉任何独特的 processes/field 用途，这样你就可以将其融入你的体验中。

1. 考虑为 Amazon Web Services (AWS) 报告的销售阶段创建单独的销售渠道阶段（例如：阶段、目标截止日期、预计每月 AWS 收入、后续步骤）。如果我们有不同的阶段定义，我们可能会覆盖您的销售阶段。当你创建单独的销售阶段时，它允许你适当地管理你的渠道，但仍然可以看到 AWS 正在预测的内容。

1. 对于合作伙伴推荐的机会，在我们接受任何更新之前，ACE 团队必须先提供 approve/reject 这些机会。

1. 对于 AWS 推荐的机会，合作伙伴必须接受或拒绝机会。

## 数据交换协议
<a name="data-exchange-protocols"></a>

1. **输入惯例**：用分号分隔多选选项列表条目，省略空格。

1. **注意细节**：字段名称和值区分大小写，因此请保持准确性。

1. **删除程序**：通过传输所选字段`null`的值来执行字段删除。

1. **同步**：同步过程每小时运行一次，这可能会导致数据反射延迟。更新最多 AWS 可能需要一小时才能反映在 AWS 客户关系管理 (CRM) 中。避免每小时发送多个文档。

## 特定领域的最佳实践
<a name="field-specific-best-practices"></a>

1. **入站修改**：为保护数据的完整性，请禁用对`stage``closedDate`、和等字段的修改`closedLostReason`。要在不影响本地 Salesforce AWS 值的情况下跟踪值，请使用以下只读字段：`awsStage``awsCloseDate`、和`awsClosedLostReason`。

1. **客户映射和验证**：确保客户网站的准确性，因为它对于 AWS CRM 映射至关重要。将其与客户名称配对，以获得卓越的 CRM 账户映射。

1. **项目描述清晰度**：提供清晰的描述，详细说明客户面临的挑战和解决方案的调整。 AWS 使用它来验证机会。

1. **配置**：（可选）当您配置最终客户联系人详细信息时，它可以 AWS 追溯潜在客户和营销活动。这导致资金裁决得到加强。

## 其他最佳实践
<a name="additional-best-practices"></a>

1. 遵守最新的有效载荷字段定义指南。

1. 保持沙箱存储桶命名与指定格式的一致性。

1. 使用生产存储桶的推荐命名模式。

1. 在实际部署之前优先考虑沙盒环境测试。

1. 为与合作伙伴之间的 AWS 记录保留不同的标识符 CRMs。

1. 经过处理后，删除出站的亚马逊简单存储服务 (Amazon S3) Service 文件夹中的文件。原件仍保存在档案中。

1. 为防止出错，请在源头设置字段级验证。

# 限额
<a name="quotas"></a>

## Amazon Web Services 的入库文件 (AWS)
<a name="inbound-file-to-aws"></a>


| 操作 | 限制 | 
| --- | --- | 
| 最大化机会 | 每个文件 500 | 
| 最大文件大小 | 1 MB | 
| 同步频率 | 近乎实时 | 
| 提交文件的最大数量 | 每 24 小时为 10,000 | 

## 向合作伙伴发送出站文件
<a name="outbound-file-to-partner"></a>


| 操作 | 限制 | 
| --- | --- | 
| 最大文件大小 | 5MB | 
| 同步频率 | 每小时 | 

# 版本历史记录
<a name="version-history"></a>

当前字段版本：14（2023 年 11 月 15 日）

下表描述了 2020 年之后潜在客户和机会的自定义集成字段的重要变化。要获取 future 更新的通知，请订阅 RSS feed。


| 更改 | 版本 | 日期 | 
| --- | --- | --- | 
|  更新 Amazon S3 配额  | 14 | 2024 年 1 月 17 日 | 
|  **对整合机会字段的更改：** [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/partner-central/latest/crm/version-history.html)  | 14 | 11/15/2023 | 
|  **对整合机会字段的更改：** [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/partner-central/latest/crm/version-history.html)  | 13 | 03/29/2023 | 
|  **对整合机会字段的更改：** [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/partner-central/latest/crm/version-history.html) **机会标准值的变更：** [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/partner-central/latest/crm/version-history.html)  | 12 | 09/01/2022 | 
|  **对整合机会字段的更改：** [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/partner-central/latest/crm/version-history.html) **对机会字段标准值的更改：** [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/partner-central/latest/crm/version-history.html)  | 11 | 03/21/2022 | 
|  **对整合机会字段的更改：** [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/partner-central/latest/crm/version-history.html) **机会标准值的变更：** [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/partner-central/latest/crm/version-history.html)  | 10 | 01/26/2022 | 
|  **对潜在客户字段标准值的更改：** [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/partner-central/latest/crm/version-history.html) **对整合线索字段的更改：** [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/partner-central/latest/crm/version-history.html) **对整合机会字段的更改：** [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/partner-central/latest/crm/version-history.html)  | 9 | 9/16/2021 | 
|  更新已关闭丢失原因代码  | 8 | 2021 年 6 月 24 日 | 

# FAQs
<a name="faqs"></a>

 使用这些常见问题和答案来帮助进行自定义集成。

**Topics**
+ [一般常见问题解答](general-faq.md)
+ [技术常见问题解答—字段](technical-faq-fields.md)
+ [技术常见问题解答—亚马逊 S3](technical-faq-s3.md)
+ [技术常见问题解答——线索和机会](technical-faq-leads-and-opps.md)
+ [技术常见问题解答—版本控制和向后兼容性](technical-faq-versioning.md)

# 一般常见问题解答
<a name="general-faq"></a>

## 整合是如何运作的？
<a name="how-does-the-integration-work"></a>

 **问：我能否访问用于发送和接收文件的亚马逊简单存储服务 (Amazon S3) 存储桶？**

是。合作伙伴可以使用有权访问 Amazon S3 存储桶的 AWS Identity and Access Management (IAM) 的 secret/access 密钥以编程方式访问 Amazon S3 存储桶。合作伙伴无法通过控制台访问 Amazon S3 存储桶，因为这些存储桶位于亚马逊 Web Services (AWS) 自己的账户中。

 **问：合作伙伴的开发者需要什么技能？**

合作伙伴的开发人员需要熟悉他们的客户关系管理 (CRM) 系统和 Amazon S3。

 **问：示例代码文件是否包含完整的代码，还是必须由合作伙伴编写代码？**

合作伙伴需要根据提供的示例代码文件编写代码。

 **问：如果合作伙伴使用 Python、Golang 或任何其他语言开发解决方案，那么 AWS Partner Network (APN) 客户互动 (ACE) 是否会为此集成提供这些语言的任何软件开发套件 (SDK)？**

否。

 **问：从 Amazon S3 存储桶到内部 ACE 的同步过程是什么？**

每隔一小时，就会运行一个批处理过程来提取文件并同步信息。 AWS 销售团队在记录中进行的任何更新最多可能需要一小时才能发送到合作伙伴的存储桶。合作伙伴可能会立即收到有关更新的电子邮件通知，但更新 AWS 可能仍会延迟一小时。

 **问：ACE 上传潜在客户和机会文件的频率是多少？**

ACE 每隔一小时发送一次潜在客户和机会数据。

 **问：ACE 有沙盒环境吗？**

是。我们确实有 ACE 的沙盒环境，但出于安全原因，我们无法向合作伙伴提供访问权限。如果您想获得新的机会或潜在客户，请在 Partner Central 上提出支持案例。

 **问：我们如何维护合作伙伴的 CRM 和 APN 中的标识符？**

为了给我们的合作伙伴提供更大的灵活性，我们在系统中使用了两组标识符。

1.  `apnCrmUniqueIdentifier`: AWS 管理此标识符。首先是`OXXXXXX`机会和`LXXXXXX`潜在客户。

1.  `PartnerCrmUniqueIdentifier`/`partnerCrmLeadId`：合作伙伴在其 CRM 中分别管理机会和潜在客户的此标识符。合作伙伴应添加此标识符，同时获取新的机会，将更新追溯到其 CRM。

 如果在没有`apnCrmUniqueIdentifier`或的情况下发送机会`partnerCrmUniqueIdentifier`，则将其 AWS 视为新机会`apnCrmUniqueIdentifier`并为该机会分配新的机会。

 使用`apnCrmUniqueIdentifier`或发送机会时`partnerCrmUniqueIdentifier`，将其 AWS 视为更新操作，并使用有效载荷数据更新现有机会。

 **问：如何防止在两个系统中创建重复记录？**

在合作伙伴 CRM 方面，发送给 ACE 的每条记录都必须有一个唯一的标识符，该标识符被称为`partnerCrmUniqueIdentifier`。同样，ACE 还为每条记录维护一个唯一的标识符，该标识符被称为`apnCrmUniqueIdentifier`。发送数据时，ACE 和合作伙伴都必须包含这两个字段，这有助于确定记录是新商机（如果为空）还是现有机会（如果已填写）。

# 技术常见问题解答—字段
<a name="technical-faq-fields"></a>

 **问：集成是否支持 CSV 格式？**

不是。 该集成仅接受 JSON 文件格式。

 **问：什么时候必须从出站文件夹中删除文件？**

只有在成功处理文件后才将其删除。

 **问：如果我不小心从出站文件夹中删除了文件，在哪里可以找到原始文件？**

这些文件位于`opportunity-outbound-archive`和`lead-outbound-archive`文件夹中。

 **问：在开发过程中，我该怎么做才能获得支持？**

如需开发期间的帮助，请通过合作伙伴中心与 AWS Partner Network (APN) 支持部门联系。

 **问：`opportunityOwnerName`和有什么区别`opportunityOwnerEmail`？**
+ `opportunityOwnerName`：机会所有者在合作伙伴组织中的姓名。这必须是合作伙伴中心用户。
+ `opportunityOwnerEmail`：合作伙伴组织中机会所有者的电子邮件。这必须是合作伙伴中心用户。如果未提供，则机会由合作伙伴中心联盟负责人作为所有者创建。

 **问：所有日期字段（`targetCloseDate`、`lastModifiedDate``createdDate`、和`acceptBy`）的时区是什么？**

日期字段的时区为格林威治标准时间 (GMT)。

 **问：入站 JSON 文件是否有版本控制？**

不是。 Amazon Web Services (AWS) 不支持文件的版本控制。APN 客户参与 (ACE) 在收到文件后立即处理文件，然后在成功处理后删除该文件。如果我们再次收到相同的文件名，则该文件名将被拒绝。

 **问：亚马逊简单存储服务 (Amazon S3) Simple Storage JSON 文件中的哪些字段表示特定销售线索和机会的创建和最新更新日期？**

`createdDate` 和 `lastModifiedDate` 

 **问：如何确定机会是新的还是现有的？**

该字段`PartnerCrmUniqueIdentifier`是我们要求合作伙伴提供的每个机会的唯一标识符。此标识符必须在合作伙伴系统的源 CRM 中定义。我们用它来确定中是否存在机会 AWS。如果存在，我们会使用共享的信息更新机会。如果没有，我们就会创造一个新的机会。

 当我们向合作伙伴发送数据时，我们会同时包含`PartnerCrmUniqueIdentifier`和`apnCrmUniqueIdentifier`。如果分享的机会 AWS 是首次发送的，则您将看不到任何价值`PartnerCrmUniqueIdentifier`。这可以帮助你把这个机会当作 ACE 的新机会对待。一旦你将其摄取到你的 CRM 中，你就会将更新`PartnerCrmUniqueIdentifier`和`apnCrmUniqueIdentifier`同时发送回给我们。

 **问：Amazon S3 中是否可以有多个出站和结果 JSON 文件？**

 是。有时我们可能会在出站文件夹中生成更多文件。同样，如果您将文件发送到入站文件夹，我们会对其进行处理并将结果文件保留在结果文件夹中。处理后必须标记或删除结果文件。

 **问：出站文件是否包含多条记录？**

是。出站文件可以包含多条记录。

 **问：如果在 “机会” 部分下的单个输入 JSON 文件中发送了 20 个入站机会，而其中一个机会不符合 APN 标准，会发生什么？**

如果格式不正确，无论情况如何，整个文件都会被拒绝。如果格式正确，但我们这边只有一个机会无法处理，则结果文件将包含所有 20 个机会及其状态，以及失败机会的错误消息。

 **问：如果成功处理 JSON 文件，需要验证的关键属性有哪些？**

这些是帮助您了解 JSON 文件是否成功处理的关键属性。

```
{
  "inboundApiResults": [
    {
      "warnings": null,  // no warnings
      "partnerCrmUniqueIdentifier": "XXXX", //uniqueId from Partner side 
      "isSuccess": true, // file successfully processed
      "errors": null, //no errors reported 
      "apnCrmUniqueIdentifier": "OXXXX" //uniqueId from AWS side
    }
  ]
}
```

 **问：如果我发送的 JSON 无效会怎样？**

您会收到以下错误响应：“`[{input JSON}]`不属于类型`object`”。

 **问：单个入站 JSON 文件中可以包含多少 lead/opportunity 条记录？**

一个文件中最多可以有 50 条记录。

# 技术常见问题解答—亚马逊 S3
<a name="technical-faq-s3"></a>

 **问：在哪里可以获得亚马逊简单存储服务 (Amazon S3) Simple Service REST API 文档？**

有关更多信息，请参阅 [Amazon S3 REST API 简介](https://docs.aws.amazon.com/AmazonS3/latest/API/Welcome.html)。

 **问：如何获取 Amazon Web Services AWS Key Management Service (AWS KMS) 密钥详细信息以进行身份验证以访问 Amazon S3 存储桶？**

AWS Partner Network (APN) 共享包含密钥名称的策略。

 **问：如何通过 Salesforce.com (SFDC) 对亚马逊 S3 进行身份验证？**

使用示例代码文件 [s3\$1authentication.cls 对 SFDC 中的 Amazon S3 进行](https://github.com/aws-samples/partner-crm-integration-samples/blob/main/code-snippets/S3_Authentication.cls)身份验证。

 **问：如何将文件从 AWS 软件开发套件 (SDK) 上传到 S3？**

使用以下 AWS CLI 命令将文件上传到 S3。

```
aws s3 cp example.json s3://awsexamplebucket/opportunity- inbound/filename.json --acl bucket-owner-full-control
```

 示例代码文件 [Sample\$1 AceOutboundBatch .cls 包含用于从 SF](https://github.com/aws-samples/partner-crm-integration-samples/blob/main/code-snippets/Sample_AceOutboundBatch.cls) DC 上传数据文件的代码。

 **问：谁拥有亚马逊 S3 存储桶？**

AWS 拥有并管理 Amazon S3 存储桶。您可以通过 AWS Identity and Access Management (IAM) 用户以编程方式访问自己的 Amazon S3 存储桶。

 **问：是否有单独的文件夹或存储桶用于接收和发送文件？**

有一个存储桶，里面有不同的文件夹，用于接收和发送文件。有关这些文件夹的更多详细信息，请参阅用户指南。

 **问：我需要使用访问Amazon S3存储桶 AWS Lambda，还是可以使用客户关系管理 (CRM) 系统直接访问它？**

您可以通过两种方式访问它。

 **问：Amazon S3 存储桶是安全还是加密？**

是。我们启用了 Amazon S3 提供的默认加密机制。

 **问：是否可以启用亚马逊简单通知服务 (Amazon SNS) Simple Notification Service 监听 Amazon S3 存储桶，这样我就只能对事件采取行动，而不必定期进行轮询？**

不是。 目前，APN 客户互动 (ACE) 不支持此功能。

 **问：我可以访问哪些文件夹？每个文件夹的用途是什么？**

您可以在中找到 Amazon S3 文件夹的列表[集成先决条件](crm-integration-setting-up.md)。

# 技术常见问题解答——线索和机会
<a name="technical-faq-leads-and-opps"></a>

## 发送和接收潜在客户和机会
<a name="send-and-receive-leads-and-opportunities"></a>

 **问：有文件命名约定吗？**

每个文件名都必须是唯一的。我们建议使用文件名`PartnerProvided FileName+{timestamp}.json`。

 **问：结果的结构是什么？**

可以从以下位置下载结果（成功和错误）的示例文件：
+  [领先业绩成功示例 sample.json](https://github.com/aws-samples/partner-crm-integration-samples/blob/main/lead-samples/Lead-Results-Success-Sample.json) 
+  [机会结果成功示例 sample.json](https://github.com/aws-samples/partner-crm-integration-samples/blob/main/opportunity-samples/Opportunity-Results-Success-Sample.json) 
+  [有错误的潜在业绩 sample.json](https://github.com/aws-samples/partner-crm-integration-samples/blob/main/lead-samples/Lead-Results_With-Errors-Sample.json) 
+  [存在错误的机会结果 sample.json](https://github.com/aws-samples/partner-crm-integration-samples/blob/main/opportunity-samples/Opportunity-Results_With-Errors-Sample.json) 

 **问：结果的命名惯例是什么？**

`PartnerProvidedFileName_result.json` 

 **问：如果我提交第二个同名的 JSON 文件会怎样？**

我们不会处理该文件，文件将移至存档文件夹。

 **问：入站文件的大小限制是多少？**

入站文件大小限制为 1MB。

 **问：可以批处理到一个 JSON 文件中的机会和潜在客户数量是否有上限？**

鉴于 1MB 的限制，我们建议您为每个文件提供一个机会或潜在客户。

 **问：我收到了拒绝访问的错误消息，所以我无法上传文件。我应该怎么办？**

合作伙伴收到*拒绝访问*消息的原因有两个。

1.  您已将文件上传到文件`outbound`夹，而不是`inbound`文件夹。将文件上传到该文件`inbound`夹。

1.  您需要提供访问控制列表 (ACL)。使用以下 Amazon Web Services (AWS) CLI 命令上传数据文件：

```
aws s3 cp example.json s3://awsexamplebucket --acl bucket-owner-full-control
```

 **问：如果上传了扩展名为`.pdf``.docx`、或其他扩展名的文件，`.json`会发生什么？**

我们拒绝这些文件并生成包含原因详细信息的`*.error.json`文件。

 **问：在生产环境中收到数据问题错误消息后我该怎么做？**

1. 如果需要在合作伙伴的客户关系管理 (CRM) 系统中更正数据，请在更正数据后，将修改后的文件发送到亚马逊简单存储服务 (Amazon S3) Simple S3 Service。

1. 如果需要对数据进行任何澄清，请联系您的合作伙伴开发经理 (PDM)。

1. 如需任何其他技术支持，请在 APN 门户网站上提出 AWS Partner Network (APN) 支持案例。

 **问：我在哪里可以找到结果文件以及它们有多长时间可用？**

结果文件位于`lead-inbound-results`和`opportunity-inbound-results`文件夹中。在您删除它们之前，它们一直可用。成功拉取后，您可以删除文件。

 **问：如果我需要在删除结果文件后找到它，在哪里可以找到它？**

您可以在`lead-inbound-results-archive/YYYY/MM/DD`和`opportunity-inbound-results-archive/YYYY/MM/DD`文件夹中找到结果文件。

 **问：如果 APN 处理文件时出现任何故障，如何通知我？**

APN 有警报，可自动创建 Sev2 票证以跟踪处理错误。我们会审核、解决这些问题并将其传达给合作伙伴。

 **问：机会启动后可以更新哪些字段？**

以下字段只能由独立软件供应商 (ISV) Accelerate 合作伙伴更新：
+ `isThisForMarketplace` 
+ `isNetNewBusinessForCompany` 
+ `deliveryModel` 
+ `awsFieldEngagement` 
+ `additionalComments` 

 **问：我收到了 “*记录不可编辑*” 错误。这是什么意思？**

当您向合作伙伴发送推荐的新机会时，该机会将通过验证流程，APN 客户参与 (ACE) 团队必须批准或拒绝该机会。当机会正在审核中且尚未通过验证时，您无法更新记录，并且会收到此错误。

 **问：如果我这边没有活动（例如：我没有处理文件或没有发送任何入库机会），会发生什么？**

如果您没有发送任何信息或没有处理我们提供的文件，则我们目前没有机制来提醒您。我们鼓励您监控您的系统，以确保信息流向 APN。

 **问：提交 new/updated 入站机会/潜在客户后，JSON 结果多久才会出现在结果文件夹中？**

处理几乎是实时的。您应该在不到五分钟的时间内收到文件。

 **问：如果我发送的入站机会 CRM 不符合 APN 标准的 format/length 限制，系统将如何处理？ 它会生成错误报告吗？**

如果文件不是字段定义格式，则 APN 的结果文件会调用该文件。

 **问：启动时我还没有 AWS 账户 ID。我该怎么办？**

按照 ACE 流程，`Launched`表示工作负载已完成并开始计费。这需要一个 AWS 账户 ID。有关更多信息，请参阅 [ACE 计划 FAQs](https://partnercentral.awspartner.com/partnercentral2/s/resources?Id=0690h000003xjjXAAQ)。

 **问：在用户验收测试 (UAT) 之后，在转向生产的过程中应如何处理历史数据？**

默认情况下，当 ACE 中发生任何更新时，我们会将这些机会发送到 Amazon S3 存储桶。对于您不想处理的历史数据，您需要为提供虚拟值，例如`X0001, X0002….X000N`在数据提取中为不想在系统中处理的内容提供虚拟值。`partnerCrmUniqueIdentifier`你需要编写代码来识别这些标识符并相应地处理它们。其余的机会提供了正确的`partnerCrmUniqueIdentifier`价值。这可确保您完全控制系统中要处理的内容和不处理的内容。

 **问：出站文件是否包含多条记录？**

是。出站文件可以包含多条记录。

 **问：为什么某些字段的数据会发送 “*接受” 以供查看*？**

对于 AWS 推荐的机会或销售线索，所有 PII 字段都标有 “*接受” 标签以供查看*，直到您接受机会或潜在客户。接受后，您将在下一个同步周期中收到所有数据字段。

 **问：首次同步新的 AWS 推荐机会或潜在客户时，我该怎么做？**

首次同步新的机会或潜在客户时，您需要接受或拒绝以获取更多数据（例如：客户联系人）。

## 创建和更新机会/潜在客户
<a name="creating-and-updating-opportunitiesleads"></a>

 **问：如何通过整合将新的*合作伙伴推荐（源自）*机会引入 ACE？**

要通过集成在 ACE 中创造新的机会，您需要将定义的 JSON 格式的所需机会信息提取到该`opportunity-inbound`文件夹中。 AWS 处理此信息，在 ACE 中创建新机会，并在`opportunity-inbound-processed-results`文件夹中共享 successful/failed 创建操作的结果。

 **问：整合如何区分新机会提交和更新？**

每个机会`PartnerCrmUniqueIdentifier`上的字段都是必填的唯一标识符。此标识符必须在您的系统源 CRM 中定义。 AWS 使用它来确定 ACE 中是否已存在机会。如果在 ACE 中可用，我们会使用共享的信息来更新机会，但如果 ACE 中没有，我们会使用共享的信息来创造新的机会。

 **问：如果我已经通过集成实现了更新功能，我需要做些什么才能使用集成提交（创造）新的机会？**

您需要对现有集成进行以下更改：

1.  开始在文件夹中获取新的创建机会。`opportunity-inbound`在同一文件夹中提供更新。

1.  确保创建所需的必填字段在共享的机会 JSON 中可用。

1.  确认每个新机会都有 ACE/Partn `PartnerCrmUniqueIdentifier` er Central 中不存在的唯一机会。一个重要的上线最佳实践是将 ACE 中的现有数据映射并更新到您的 CRM `PartnerCrmUniqueIdentifier` 中的每个数据，这样我们就不会在收到更新时创建重复数据。如需帮助，请联系 ACE。

 **问：作为上线流程的一部分，如何使用我的 ACE 更新现有机会？`PartnerCrmUniqueIdentifier`** 

 ACE 团队为您提供所有开放机会的清单，以帮助您为产品发布做准备。您必须将 ACE 中的这些现有机会映射到相应的机会`PartnerCrmUniqueIdentifier`，并将更新后的文件返回给 ACE，以便集成到 AWS的 CRM 中。

 如果您选择仅同步机会 AWS 提供的子集，则必须开发逻辑来绕过任何您不想处理的机会的 AWS 更新。这种方法还应应用于 future 入职后的机会。对于需要在两者之间`partnerCrmUniqueIdentifier`进行协调的机会，您必须提供相关信息 CRMs。此外，您还应指明哪些机会不会更新（例如：标记已关闭或已关闭的机会），以将其排除在更新之外。必须为所有 AWS 共享且您接受的未平仓/活跃机会分配一个。`partnerCrmUniqueIdentifier`

 **问：我能否仅更新机会或潜在客户中的特定字段？**

是。您只能提供需要更新的字段以及必要的标识符。

 **问：是否可以更改 *ApnCrmUniqueIdentifier***？

不是。 对于每个机会，此标识符保持不变 AWS ，并唯一标识每个机会。

 **问：如果我提供的*partnerCrmUnique标识符*不正确**怎么办？

如果您提供的标识符不正确，则会创建一个新的机会。确保准确性以避免数据重复。

 **问：我能否更新已 AWS 提交的商机？**

是。您可以使用正确的方法更新 AWS 提交的机会`partnerCrmUniqueIdentifier`。

 **问：我预计多久能收到已提交的机会的结果？**

处理几乎是实时的，通常在几分钟之内即可在`opportunity-inbound-processed-results`文件夹中获得结果。

 **问：如果提交的机会出现处理错误，我该怎么办？**

查看结果文件中的错误详情，解决问题，并向 ACE 支持团队寻求进一步帮助。

 **问：我能否通过整合删除机会？**

不是。 不支持直接删除。您可以更新机会以反映 “*已关闭*” 状态。

 **问：“*记录不可编辑*” 错误是什么意思？**

如果您尝试在 ACE 审核中更新机会，则会发生此错误。只有经过验证，才能编辑这些机会。

 **问：如果不发送更新或新机会怎么办？**

如果您不通过集成发送更新或新机会，则不会收到和处理任何新数据。

 **问：结果文件有多长时间可用？**

结果文件在合理的时间内可用。您应该及时检索并管理它们。

# 技术常见问题解答—版本控制和向后兼容性
<a name="technical-faq-versioning"></a>

 **问：Amazon Web Services (AWS) 数据交换中的有效载荷是什么？**

有效负载是采用 JSON 格式的结构化数据，发送到入站 AWS 或出站发送 AWS。此 JSON 结构中的每个键都被称为一个*字段*，每个字段都有一个关联的*值。*

 **问：有效载荷版本是如何确定的？**

负载版本是在有效载荷本身的`version`字段中指定的。符合字段定义 v13 的有效载荷被视为有效载荷版本 1.0，而遵循字段定义 v14 或更高版本中定义的格式的负载被称为 Payload 版本 2.0。

 **问：在这种情况下，向后兼容意味着什么？它是如何处理的？**

向后兼容性可确保在较新的有效载荷版本中引入新的和必填字段时，现有机会不会失败。 AWS 通过为新版本中必填的字段自动分配默认值来维护这一点。您可能会注意到 AWS Partner Network (APN) 客户互动 (ACE) 用户界面中没有通过客户关系管理 (CRM) 集成明确提供的值。每个字段的详细信息和条件在字段描述或有关该字段的其他详细信息中进行了说明。

 **问：向后兼容性是一项永久性功能吗？**

不是。 向后兼容性是有时限的，旨在为您提供计划和实施即将到来的变更的灵活性。它将在规定的截止日期之后停止工作，该截止日期将在今年晚些时候作为更广泛发布的一部分宣布。

 **问：当我开始发送 2.0 版本的有效载荷时会发生什么？**

发送版本为 2.0 的有效负载后，系统会假设所有必要的更改都已实现，并且新有效载荷版本的验证适用于所有后续更改。必须不要在 1.0 版和 2.0 版有效负载之间部分实现功能。

 **问：更新到 2.0 版后，我能否恢复到有效载荷版本 1.0？**

不是。 过渡到有效载荷版本 2.0 是一个单向过程。更新到 2.0 版后，就无法恢复到有效负载的 1.0 版。