应用许可证(3)管理您的功能

学习目标

完成本单元后,您将能够:

  • 定义特征参数并描述其目的。
  • 确定您用于管理功能参数的工具。
  • 解释为什么特征参数数据类型有限。

灵活管理功能

作为Salesforce的合作伙伴,您可以使用与Salesforce一样的平台,以及所有的fixin。这包括经营自己的业务组织,并在AppExchange上销售您的解决方案 – 但不止于此。实际上,您可以像Salesforce一样运行您的业务,使用我们所做的相同工具将货物交付给客户。

您可能已经注意到,Salesforce对我们在我们平台上发布的功能拥有很多控制权。例如,我们可以选择性地为高级用户启用精巧的功能,而不会影响其他人。我们还可以对功能进行“黑暗启动”,为将来的版本实施并将其停用。

这些工具为我们部署和管理功能提供了很大的灵活性。现在,使用功能参数,您可以获得相同的灵活性。

我们仅向AppExchange合作伙伴提供功能参数。当您准备好尝试时,请在Salesforce合作伙伴社区中打开支持案例。

早些时候

并不总是如此。在功能参数出现之前,许多合作伙伴都制定了自己的方案,以便在托管软件包中选择性启用功能。通常情况下,他们使用受保护的自定义设置来启用和禁用功能。

它的工作原理如下:使用LMA登录访问功能(我们将在下一单元中介绍)登录到单个客户组织,并更新受保护的自定义设置以启用特定功能。这个系统复杂而脆弱。我们的AppExchange合作伙伴梦想有一天他们可以像使用许可证管理应用程序(LMA)一样管理许可证,轻松管理各项功能。

那一天来了。现在,功能参数允许您从安装LMA的相同组织管理应用的功能。对于个人用户,您可以选择哪些功能可见,并将您的选择立即传达给客户的用户组织。

而且因为你已经耐心等待特征参数,所以我们已经投入了一些额外的东西。除个别功能外,功能参数还可以管理自定义对象。根据您定义的特征参数,您可以隐藏或显示自定义对象。

传递数据,请

通过功能管理应用程序(FMA)管理每个客户的功能参数。 FMA扩展了LMA,使您可以像LMA管理许可证一样管理您的功能设置。

您的许可证管理组织(LMO)和您的客户订户组织使用功能参数相互通信。每个特征参数的值都在两个方向中的一个方向上传输:

  • 从您的LMO到订户的组织
  • 从订户的组织到您的LMO

您的FMA将特征参数值从一个组织传递给另一个组织。您可以使用FMA查看和修改与每个客户相关的功能参数。

功能参数的外观如何?实际上这很简单。特征参数由标识参数的名称,值和数据流方向组成。该值可以是以下任何一种类型:

  • Boolean
  • 整数
  • 日期

数据流向是LMO到订户或订户到LMO。换句话说,每个特征参数都知道它在哪里以及它在哪里。要素参数中的数据会被写入组织所在的组织中 – 接收组织的组织只能读取其值。这保证了特征参数的信息仅在一个方向上流动。

通过它们自身,特征参数非常有限 – 不允许字符串值 – 这是故意的。由于这些参数在客户组织之间传递,我们不希望他们包含任何个人身份信息。

简单的功能参数的另一个好处是它们可以存储其他类型的数据,例如使用量或激活度量。当然,您必须编写一些代码来收集指标,但在此之后,其余部分很容易。 FMA从您的用户单位自动收集指标。还有一件事你不必担心。

灵活管理功能

这里看看涉及的组织和他们交换的数据。

A diagram showing how feature parameters are passed between the LMO, subscriber orgs, and your packaging org using the FMA
  • 您可以在包装组织中定义特征参数。
  • 客户从AppExchange安装您的软件包。
  • 在订户组织中的软件包安装过程中,在LMO中会为您定义的每个功能参数(除非这样的记录已经存在)出现记录并由FMA管理。
  • 联合对象记录也出现在改性活生物体中。此联结对象将特征参数与用户组织的许可证关联。什么是联结对象?基本上,它是一个具有两种主从关系的自定义对象:一个用于特征参数,另一个用于许可证。联合对象存储特征参数的值,因为它存在于订阅者组织中。创建联结对象时,其特征参数采用由包装组织指定的默认值。
  • 改变从改性活生物体到订户单位的数据流。同时,改性活生物体从订户组织收集指标。

有关功能参数如何工作的更详细说明,请查看ISVforce指南。

定义一个特征参数

  1. 导航到您的软件包并选择功能参数选项卡。
  2. 选择您想要添加的参数的类型。
    The Feature Parameters tab of the Package Manager, where you define a feature parameter
  3. 输入新功能参数的信息:其名称,标识它的标签及其流向(LMO至订户或订户到LMO)。
    The Feature Parameters tab of the Package Manager, where you define a feature parameter
  4. 就像您为应用定义的任何其他自定义元数据一样,将参数添加到您的包中。

将数据从您的LMO移动到订户

从LMO转移到订户的特征参数只能在订户组织中的LMO中创建或修改 – 它们是只读的。例如,您可以使用LMO到订户的功能参数来:

  • 隐藏或揭示新功能
  • 控制您的订户可以使用的资源
  • 使功能在有限的试用期内可用

天空是极限。

将值分配给LMO到订户的特征参数:

  1. 在您的LMO中,打开许可证管理应用程序(LMA)。
  2. 选择要查看或修改其功能参数的客户的许可证。
    A license record window, where you view and modify feature parameters
  3. 单击要更改的参数旁边的向下箭头以编辑或删除它。

从订户收集指标

使用订户到LMO功能参数来跟踪订户组织中的活动。这些功能参数的值源于订户的一端,然后前往您的LMO。要收集这些值:

  1. 在您的LMO中,打开LMA。
  2. 选择要检查其值的功能参数的许可证。
    A license record window, where you can view feature parameter values
  3. 您可以在特征参数值字段中找到任何订户到LMO特征参数的值。

借助功能参数,您可以通过更多方式塑造客户的体验,并且可以更仔细地管理新功能的发布。但是LMA并不止于此。请继续阅读,了解如何使用支持控制台让您的客户满意。

应用许可证(2)管理许可证

学习目标

完成本单元后,您将能够:

  • 定义许可证管理应用程序及其目的。
  • 解释如何设置许可证管理应用程序。
  • 确定许可证管理应用程序的主要功能。

符合许可证管理应用程序

你已经创建了你的惊人的应用程序,并且你已经学习了许可的基础知识。也许你甚至已经决定使用什么样的许可证。现在是时候进行设置,以便您可以在AppExchange上销售应用并跟踪下载。

这就是许可证管理应用程序(LMA)的来源.LMA保留安装和许可证的记录,并提供帮助您支持客户的基本工具。 Salesforce将其作为通常驻留在业务组织中的托管软件包进行分发。

当您配置LMA时,记录许可证很简单。每当潜在客户安装您的应用程序时,LMA会在安装它的组织中创建两条记录:

  1. 确定潜在客户的潜在客户记录
  2. 根据您的应用的许可条款,该潜在客户的许可记录

LMA还提供支持控制台,帮助您与客户取得联系,帮助他们解决问题。控制台允许您查找安装应用程序的组织。它甚至可以让您登录到客户组织并调试问题,前提是客户已授予您访问权限。我们在下一个单元中更详细地讨论客户支持。

听起来很棒,不是吗?那么,你如何获得这款美妙的应用程序?只需在Salesforce合作伙伴社区记录一个案例,即可请求访问LMA。确保你签署了合作伙伴协议,然后再执行此操作。

如果您经历了作为合作伙伴注册的正常流程并获得了合作伙伴业务组织(PBO),LMA将已安装。您可以通过单击应用程序启动器App Launcher并在应用程序启动器中查找来验证是否安装了LMA。

App Launcher showing LMA

请求访问LMA

  1. 从Salesforce合作伙伴社区中选择 Support.
  2. 点击 New Case.
  3. 在AppExchange Partner(ISV)Technology下,选择 License Management Application (LMA).
  4. 子主题和说明字段预填充。填写主题。在说明字段中,提供您的业务组织的ID并提及您签署的合作伙伴合同。
    提交案件以获得LMA

    Submission of case to get LMA
  5. 点击 Submit Case.

合作伙伴运营团队会审核您的案例并通过电子邮件向您发送安装链接

安装LMA

  1. 登录到您的企业组织。通常,这是Salesforce在成为合作伙伴时为您创建的组织,通常包含您的Environment Hub。
    点击您从合作伙伴运营团队收到的电子邮件中的LMA安装链接。选择业务组织中需要访问LMA的用户。
  2. 确认LMA已安装。点击应用启动器,然后在应用启动器中查找它。

    App Launcher showing LMA

为您的应用程序设置和配置LMA

现在您已将LMA安装到您的业务组织中,您可以将其连接到您的应用程序。在你做这件事之前:

  • 您必须有权访问发布控制台。为此,您需要管理列表权限。请查看如何在我们的Salesforce合作伙伴社区模块中申请此权限。
  • 您的包装组织必须连接到发布控制台。有关连接包装组织的进一步信息,请参阅ISVforce指南。

将您的应用程序连接到LMA

  1. 从Salesforce合作伙伴社区中,选择 Publishing.
  2. 选择 Packages 以查看包装组织中的软件包。
  3. 找到您的应用程序包并在其条目旁边选择 Manage License
  4. 选择 Register 并登录到包含您的LMA的组织(通常是您的业务组织)。
  5. 选择默认使用此应用程序的许可证,然后单击 Save.

将应用程序包连接到LMA后,不需要再次执行此操作 – 稍后版本的包会自动连接到LMA。

配置LMA

像任何应用程序一样,LMA具有多种可配置设置,包括角色分配和访问权限。潜在客户和许可证为您提供关于您的收入来源的重要信息,因此值得花些时间了解这些设置。

设置对象权限

许可证 组织中的大多数用户不需要任何权限。 查看许可证的用户需要读取权限。 修改许可证记录的用户需要读取和编辑权限。
只有分配牵头经理的用户需要编辑权限。 其他用户具有读取权限或无权限。
软件包版本 所有用户都具有读取权限或无权限,因为他们不需要创建,修改或删除这些记录。

在配置文件或权限集中设置字段级安全性

许可证 您的设置取决于您希望如何管理组织中不同用户的这些字段。
使所有字段为只读。
软件包版本 使所有字段为只读。

有关配置LMA的详细信息,请查看ISVforce指南。

了解LMA自定义对象

LMA安装并维护多个自定义对象。

自定义对象 它能做什么 它如何使用
代表AppExchange上的托管软件包(用于应用程序或Lightning组件) 将客户与特定应用程序和组件关联
软件包版本 代表特定软件包的版本号 告诉您哪些客户正在使用您的应用的哪个版本
许可证 强制执行应用程序和组件的许可限制 允许您管理特定客户组织内的应用程序或组件许可证

修改您的许可证

您已经使用您的应用程序设置了LMA,并且客户正在安装它。大!如果您的应用程序足够大,则必须在以下情况下对许可证进行调整:

  • 使用免费试用版的客户需要切换到完整版本的应用程序。
  • 支付客户需要更多的许可证席位,以便他们的所有员工都能从您的工作中受益。

幸运的是,进行这些更改很容易。

修改许可证

  1. 从您的企业组织中,点击应用启动器。 App Launcher.
  2. 选择 License Management App.
  3. 在LMA中,导航到 Licenses.
  4. 选择要修改的客户许可证记录,然后单击 Modify License. 不要点击编辑 – 这是不同的。如果您没有看到 Modify License 请将其添加到页面布局中。
  5. 现在通过更改相应字段中的值来修改许可证记录。
    The License record, where you modify the terms of a customer’s license

以下是您可以在许可证记录中修改的字段的简要说明:

字段 描述
到期 这是您的应用到期的日期。在此字段中的日期之后,客户不再可以使用您的应用程序。如果您不希望许可证过期,请选择不过期。
席位 该字段定义许可席位的数量,或可以使用应用程序的客户组织中的用户数量。您可以分配多达99,000,000个座位,并且客户的管理员将这些座位分配给用户。或者,选择“站点许可”以允许客户组织中的所有用户使用您的应用。
状态 该字段控制客户是否可以访问您的应用程序。从选取列表中选择一个值:

Trial
允许客户试用您的产品长达90天。如果您将试用许可证转换为活动许可证,则无法将其更改回试用版。
Active
允许客户根据许可协议使用您的产品。
Suspended
禁止客户访问您的产品。

当客户卸载您的应用时,“状态”字段将设置为“卸载”,并且无法修改许可证。

跟踪安装获得幻想

由于LMA是构建在Salesforce平台上的托管软件包,因此它具有您期望的所有功能和灵活性。使用一点点的手肘润滑脂,您可以根据自己的需求进行定制。例如,您可以:

  • 在设置LMA之前,或者在不同组织中安装LMA之前,为安装了您的应用的客户同步许可证和潜在客户记录。
  • 创建控制Lead记录创建方式的Apex触发器,并在许可证过期或应用程序安装或卸载时通知您的团队成员。看看我们的最佳实践清单,以便记住这些事情。

例如,您可以在客户卸载您的应用程序时通知您的销售团队,或者在客户的许可证即将到期时通知您的销售代表。这有助于您与客户保持联系,并防止许可中断他们的工作 – 或与他们的关系。

简而言之,这就是授权。此时,您知道为什么我们按照我们的方式命名了许可证管理应用程序。但正如我们所提到的,LMA可以以其他方式帮助您。在下一个单元中,我们将介绍一些新工具,让您决定如何为您的应用发布新功能。

应用许可证(1)了解许可证

学习目标

完成本单元后,您将能够:

  • 解释Salesforce许可与AppExchange应用程序许可之间的区别。
  • 确定不同的许可选项。
  • 列出客户生命周期中的阶段。

你已经建立你的应用程序 – 现在许可它!

这一直很顺利,您和您的团队有很多值得骄傲的事情 – 您的应用程序已准备就绪,可以开展业务!现在该出售它了。

您如何在Salesforce平台上销售您的应用程序?这是一个沉重的话题,涉及从营销策略到销售的所有内容。对于业务内容,请查看我们的AppExchange App Selling模块。

在这里,我们专注于如何通过向您的潜在客户出售许可证来创造有利可图的业务,并将其转化为付费客户。 Salesforce为您提供管理许可证和跟踪安装应用程序的前景的工具。

稍后在本单元中,我们将讨论如何为付费客户提供支持,让他们感到满意,并建立您作为卓越AppExchange合作伙伴的声誉。我们为您提供一些漂亮的工具,使您可以更轻松地排除故障,并让客户在创纪录的时间内恢复运作。

每个合作伙伴的许可证

当潜在客户或客户安装包含应用程序的托管软件包时,根据许可证条款,该软件包的内容可供该客户组织中的用户使用。这些条款规定谁可以使用您的应用,以及他们可以继续使用它多久。

您已完成我们的AppExchange应用程序策略模块,对吗?在那里我们讨论AppExchange合作伙伴的不同类型:

  • ISVforce合作伙伴开发在Salesforce平台上运行的解决方案,并仅向Salesforce客户出售。
  • OEM合作伙伴将Salesforce平台嵌入到自己的专业解决方案中,向Salesforce以外的客户销售。

当您在Salesforce上听到许可时,它可能表示以下任何一种情况:

  • ISVforce和OEM应用程序都带有用户许可证,可授予其创建者分发的托管软件包的访问权限。
  • OEM应用程序还在每个托管软件包许可证中嵌入了Salesforce平台许可证。
  • 签署Salesforce合作伙伴协议时,您可以为您的业务许可使用Salesforce技术。该许可协议影响您向客户许可产品的方式,但这是您与Salesforce之间的单独协议。

在本模块中,我们仅讨论第一个项目符号中的用户许可证:您授予客户的许可证以允许他们使用您的应用程序。

A fancy holographic license deed

如果您对更一般的许可详细信息感兴趣,则Salesforce合作伙伴社区拥有ISVforce和OEM许可证的低谷(需要登录)。

探索许可选项

您的授权计划确定您的收入来源。每个人的商业模式都不尽相同,因此Salesforce为您提供了几种可以为客户提供的许可选项。

Per-User Licenses
您可以将访问权限授予客户组织中给定数量的用户(席位)。该组织的管理员将席位分配给组织中的特定用户。如果更多用户需要访问,则可以为他们提供更多席位。
Site Licenses
您的应用程序可供客户组织中的所有用户使用。

在决定许可方式时,考虑如何让您的应用程序可用,以及您的客户是谁。座位许可证是否合理,或者组织中的每个人都想使用您的应用程序?

当客户安装您的应用程序时,他们默认获得应用程序附带的许可证。无论您选择什么类型的默认授权,您都可以稍后为特定客户进行调整。假设一个客户决定让你的应用程序旋转并购买五个用户许可证。当他们意识到你的应用有多棒以后,他们决定将其推广到全部员工中。因为他们只有五个许可证,所以额外的45个用户在授予他们更多许可证之前不能使用您的应用程序。

我们为您提供工具与您的客户合作以满足他们的需求,并在适当时调整许可条款。我们会告诉你如何在下一个单位。

免费试用和时间限制

我们为您提供各种管理客户许可证的选项。除了控制谁可以使用您的应用程序,您可以设置许可证在给定的持续时间后过期。这可以让您的客户免费试用您的应用,以便他们决定是否需要付费许可证。

与许可证类型一样,您可以调整这些时间限制以适应个别客户的需求。如果您想限制在客户组织中访问您的应用程序,您也可以临时暂停许可证。

免费应用

如果您正在发布免费应用程序(我们的意思是“免费”,如“免费”),您的应用程序仍然附带许可证。大多数免费应用程序分发有网站许可证,以保持简单。

如果您的“免费”应用程序是您销售的解决方案的一部分,但是,它不是真的免费。例如,如果您已经销售非平台解决方案,并且您构建了一个免费应用程序来同步Salesforce与付费解决方案之间的数据,则数据同步程序不是免费的,其许可证与您的解决方案相关联。

有关免费应用程序的更多详细信息,请参阅Salesforce合作伙伴社区提供的Salesforce合作伙伴计划政策文档。

合作伙伴Giveth的合作伙伴Giveth的合法授权

在一个完美的世界里,每个人都支付账单。但我们并不总是生活在这个世界上。如果您需要为尚未付款的客户吊销许可证,则可以。

管理新功能

作为AppExchange合作伙伴,您可以在Salesforce平台上的功能通常可用(GA)之前对其进行特殊访问。如果您可以向您自己的客户提供相同的“新功能预览”,该怎么办?

从2017年10月中旬开始,您可以使用功能参数让您的高级用户独享使用产品中最前沿的功能。我们为您提供三种不同的选择。

  1. Pilot features—有时候功能不是GA,但它对一个或多个无畏的客户仍然有用。试点功能是一项功能,您可以推送给特定用户以查看他们如何使用它。
  2. Dark launches—如果您发布的是新版本的产品,但功能尚未准备好迎接黄金时段,请不要将其从代码中剥离出来。随着黑暗的推出,您可以发布禁用功能的应用程序,并在您准备就绪后启用它。这种方式使得更多的连续性和更少的戏剧性。
  3. Two-step enablement—如果您的产品的新版本具有可显着改变客户使用方式的功能,请让他们选择何时启用该功能。两步启用为客户提供了新功能,但在客户选择开始使用该功能之前,该功能会一直处于禁用状态。

我们稍后在模块中详细说明这些选项。

客户支持生命周期

当客户安装您的应用时,您与客户的关系就开始了。如果他们喜欢,他们会为您支付执照。作为回报,你可以为他们提供一个有效的产品,当他们需要帮助时,让他们感到特别特别。

您与客户的关系遵循我们的客户支持生命周期:

客户成功规划
从安装应用程序开始,定义客户的体验,并确定帮助他们实现目标的方法。
客户支持
在Salesforce平台上培训您的支持人员,让他们与客户交流。
故障排除
与您的客户合作,了解他们在其组织中遇到的任何问题。在这个模块中,我们给你提供使这个过程更简单的工具。
发布管理
为您的客户制定发布更新的计划。您正在使用推送升级,还是您的客户需要手动升级?您如何向客户传达升级流程?有关更多详细信息,请参阅我们的App升级AppExchange模块。
当您计划和实施新功能,接纳新员工,发展您的营销策略并拓展业务时,此循环会重复进行。

现在你已经拥有了这片土地,让我们来谈谈工具。在下一个单元中,我们将向您介绍许可证管理应用程序,该应用程序正如其所说的那样。

应用升级(3)发布升级

学习目标

完成本单元后,您将能够:

  • 解释Salesforce如何帮助您在不中断客户的情况下提供更新。
  • 列出可以向客户提供升级的不同方式。
  • 描述可用于使客户更容易升级的工具。

最新版本,请!

在最后一个单元中,您了解了软件包版本号,该软件包标识了托管软件包的唯一版本。

相同包的不同版本可以是不同的。应用程序中的主要版本更改可能会大幅改变其行为。即使是轻微的版本更改也可以在后面修改几件事情。软件包版本号帮助您通过强制您考虑更改对他们的影响来保护您的客户免受破坏性更改。

正如我们所提到的,维护您的产品的不同版本并不理想。尽量让您的所有客户都保留在您的产品的单一版本(最新版本)上。这为每个人提供了相同的体验,最新的错误修复以及所有最酷的功能。

让我们看看如何完成。

推动升级给你的客户

如果您真的希望您的客户使用您的产品的最新版本,有一个简单的方法可以确保他们:使用推送升级。在推送升级中,您可以将最新版本的产品推送给客户。他们不需要做任何事情来完成升级 – 他们只要使用新版本就可以完成升级。

您可以对升级(主要或次要)和补丁使用推送升级。推送升级完成后,客户会在其产品的“包装详细信息”页面上看到新的版本号。当然,他们也会看到你所有的酷炫新功能。

沟通,沟通,沟通

我们希望到现在为止,我们已推销推送升级。现在您可以将这个词传递给您的客户 – 他们当然希望在获得它之前了解即将推出的推送升级!

在升级中,与大多数活动一样,通信至关重要。有关管理预期和最小化影响的一整套指导方针,请查阅ISVforce指南。

如何成为推手

以下是推送升级的工作原理:

  • 您选择一个或多个客户组织进行升级。
  • 您选择要在这些组织上安装的产品版本。
  • 您计划给定日期和时间的升级。
  • 您可以跟踪升级的进度。检查它是否成功完成,或者如果要重新计划,请中止待定的升级。

这是高层次的观点。您可以决定升级如何工作 – 哪些组织会先更新,以及每个组织会发生什么情况。

拥有权利的同时也被赋予了重大的责任

推送升级可以让您控制。您可以分发任何内容,从简单的修补程序到对产品进行大修。您可以升级单个客户或全部客户。

正确完成,推送升级可以无缝 – 每个人都可以获得新版本并使用它。做得不好,呃……每个使用电脑的人都知道一个拙劣的升级是什么样的。

使用你的判断。如果您添加了许多功能或组件,请考虑影响:

  • 这些组件是否适用于现有的安装?
  • 您的升级是否会影响常见的定制?
  • 您的升级是否以破坏性的方式修改客户数据?

新功能易于管理 – 您的客户在升级之前不会使用它们。现有的功能更棘手。尝试保持事物的运作方式,让您的客户保持高效。

AppExchange合作伙伴需要特殊权限才能推送升级。在Salesforce合作伙伴社区中记录案例以请求推送主要升级和修补程序权限。

大国不是绝对权力

推送升级有其局限性:

  • 升级的权限集不包含选项卡可见性设置。
  • 安装后无法自动激活远程站点设置。

当您计划部署时,请牢记这些 – 您必须与客户协调这些类型的升级。

自动化细节

升级比全新安装更复杂,因为它们会对现有系统进行更改。谁知道客户组织中发生了什么?

有时您需要在安装后执行安装后的工作任务。例如,您可以修改客户数据以适应更新的公式或解决不一致问题。使用我们新的Apex元数据API,您可以在向包中添加新的自定义字段时更新页面布局。

Salesforce允许您为安装后工作编写一个Apex类。在升级安装到组织中后,此类将执行其工作。

这样的班级是什么样的?这里有一个简单的例子:

    global class PostInstallClass implements InstallHandler {
      global void onInstall(InstallContext context) {
        if(context.previousVersion() == null) {
          //这意味着该软件包是第一次安装
          // 执行首次安装所需的活动
          Account a = new Account(name='NewAccount');
          insert(a);      
        }
        else if(context.previousVersion().compareTo(new Version(1,0)) == 0) {
          // 这意味着以前的版本是1.0 
        }
        if(context.isUpgrade()) {
          // 这意味着软件包正在升级
          // 执行包升级所需的活动
        }
        if(context.isPush()) {
          //这意味着该软件包正在被推送
          //执行推送升级所需的活动
        }
      }
    }
   
每个新的Apex类都需要一个测试类,所以这里是我们的例子:
    @isTest
    static void testInstallScript() {
      PostInstallClass postinstall = new PostInstallClass();
      Test.testInstall(postinstall, null);
      Test.testInstall(postinstall, new Version(1,0), true);
      List<Account> a = [Select id, name from Account where name ='NewAccount'];
      System.assertEquals(a.size(), 1, 'Account not found');
    }
   
使用Test类的testInstall方法来测试PostInstall类。什么进入该方法?你决定!

周到的自动化

自动化在工作时很棒。考虑如何最好地使用它与现有的和新的功能。

要增强现有功能,请使用安装后类自动将功能组件的任何新权限分配给现有用户。这样,每个人都可以不间断地使用软件包。

不要使用安装后的Apex脚本为新功能自动分配组件权限。相反,请提醒客户管理员注意这些功能,并让他们弄清楚细节。

安排您的升级

现在您已经定义了升级,现在是时间安排了。谁获得升级,什么时候?您可以交互式部署升级,或使用企业API自动升级客户。

以交互方式安排推送升级:

  1. 登录到您的包装组织。
  2. 从“设置”中,在快速查找框中输入软件包,然后选择 Packages.
  3. 选择要推送的托管软件包的名称。
  4. 在Package Details页面上,选择Versions并点击Push Upgrades。
    The Package Detail page, where you select Versions and Push            Upgrades.
  5. 点击 Schedule Push Upgrade.
    The Push Upgrade History section, where you click Schedule Push            Upgrade.
  6. 从 Patch Version 选择列表中选择一个软件包版本。
  7. 如果要安排开始日期,请在“计划开始日期”字段中输入日期。
    The Schedule Push Upgrade section, where you select a package            version and a start date for a push upgrade.
  8. 在“选择目标组织”部分中,选择要升级的组织。您已经升级的组织不会出现在此列表中。点击 Schedule.
    The Select Target Organizations section, where you use filters            to generate a list of orgs you want to update.

使用过滤器来选择要更新的组织列表。您可以通过以下方式过滤orgs:

  • 他们的部分或全名,或通过组织ID
  • 无论他们是沙箱还是生产组织
  • 他们已安装的软件包版本

使用企业API调度升级

当您根据各种规则和过滤器一次升级很多客户时,交互式调度变得困难。 Enterprise API允许您以编程方式安排和控制升级,并跟踪他们的进度。通过企业级API,您可以:

  • 使用SOQL查询查找使用您的软件包的客户
  • 计划推送升级到这些客户
  • 监视升级状态,并检查错误

该API为您部署升级提供了充分的灵活性。例如,您可以创建一个允许客户升级到新版本的Web表单。点击表单上的按钮可以安排这些客户的推送升级。

我们在这里没有描述如何使用企业级API–它涉及更多一点。 ISVforce指南有详细的步骤和代码示例,您可以使用它们来安排自己的推送升级。

跟踪更改

在您向客户发送更新时,您可以跟踪已经拥有最新版本软件包的用户。要查找收到推送升级的客户,请执行以下操作:

  1. 从您的开发组织中,单击 Setup.
  2. 在快速查找框中输入软件包并选择Packages.
  3. 点击包装的名称,然后点击 Push Upgrades.
  4. 单击目标的名称以查看“推送升级历史记录”页面。
    The Push Upgrade History page, where you select a org that you            are upgrading.
  5. 此页面包含有关推送升级的信息:其状态,任何计划开始日期,完成需要多长时间等等。
  6. 导航到组织部分,其中显示了所有要升级的组织的列表。
  7. 使用搜索框将组织过滤到您要搜索其升级状态的客户列表。
    The Job Details page, where you select the orgs you want to            track.

要筛选组织,请在搜索框中输入一个表达式。搜索部分或全部组织的名称或完整的组织ID。您还可以使用选取列表按推送升级的状态进行搜索。

改变:唯一不变

当你开发软件时,事情就会改变。 错误得到修复,功能被添加,算法和结构发展。 您已经在自己的开发团队中处理了更改。 现在您已经看到了如何将这些更改提供给您的客户。

Salesforce可以帮助您:

  • 通过为您提供两种机制来实现它们来构建您的更改:修补程序和升级
  • 通过合理的版本编号系统管理客户对变更的期望
  • 通过推送升级保持客户最新状态,从而简化维护工作

使用这些工具为您的客户提供及时和无缝的更新。 作为Salesforce的客户,他们期望软件即服务的所有好处。 保持SaaS的承诺,你可以让他们高兴。

应用升级(3)发布升级

学习目标

完成本单元后,您将能够:

  • 解释Salesforce如何帮助您在不中断客户的情况下提供更新。
  • 列出可以向客户提供升级的不同方式。
  • 描述可用于使客户更容易升级的工具。

最新版本,请!

在最后一个单元中,您了解了软件包版本号,该软件包标识了托管软件包的唯一版本。

相同包的不同版本可以是不同的。应用程序中的主要版本更改可能会大幅改变其行为。即使是轻微的版本更改也可以在后面修改几件事情。软件包版本号帮助您通过强制您考虑更改对他们的影响来保护您的客户免受破坏性更改。

正如我们所提到的,维护您的产品的不同版本并不理想。尽量让您的所有客户都保留在您的产品的单一版本(最新版本)上。这为每个人提供了相同的体验,最新的错误修复以及所有最酷的功能。

让我们看看如何完成。

推动升级给你的客户

如果您真的希望您的客户使用您的产品的最新版本,有一个简单的方法可以确保他们:使用推送升级。在推送升级中,您可以将最新版本的产品推送给客户。他们不需要做任何事情来完成升级 – 他们只要使用新版本就可以完成升级。

您可以对升级(主要或次要)和补丁使用推送升级。推送升级完成后,客户会在其产品的“包装详细信息”页面上看到新的版本号。当然,他们也会看到你所有的酷炫新功能。

沟通,沟通,沟通

我们希望到现在为止,我们已推销推送升级。现在您可以将这个词传递给您的客户 – 他们当然希望在获得它之前了解即将推出的推送升级!

在升级中,与大多数活动一样,通信至关重要。有关管理预期和最小化影响的一整套指导方针,请查阅ISVforce指南。

如何成为推手

以下是推送升级的工作原理:

  • 您选择一个或多个客户组织进行升级。
  • 您选择要在这些组织上安装的产品版本。
  • 您计划给定日期和时间的升级。
  • 您可以跟踪升级的进度。检查它是否成功完成,或者如果要重新计划,请中止待定的升级。

这是高层次的观点。您可以决定升级如何工作 – 哪些组织会先更新,以及每个组织会发生什么情况。

拥有权利的同时也被赋予了重大的责任

推送升级可以让您控制。您可以分发任何内容,从简单的修补程序到对产品进行大修。您可以升级单个客户或全部客户。

正确完成,推送升级可以无缝 – 每个人都可以获得新版本并使用它。做得不好,呃……每个使用电脑的人都知道一个拙劣的升级是什么样的。

使用你的判断。如果您添加了许多功能或组件,请考虑影响:

  • 这些组件是否适用于现有的安装?
  • 您的升级是否会影响常见的定制?
  • 您的升级是否以破坏性的方式修改客户数据?

新功能易于管理 – 您的客户在升级之前不会使用它们。现有的功能更棘手。尝试保持事物的运作方式,让您的客户保持高效。

AppExchange合作伙伴需要特殊权限才能推送升级。在Salesforce合作伙伴社区中记录案例以请求推送主要升级和修补程序权限。

大国不是绝对权力

推送升级有其局限性:

  • 升级的权限集不包含选项卡可见性设置。
  • 安装后无法自动激活远程站点设置。

当您计划部署时,请牢记这些 – 您必须与客户协调这些类型的升级。

自动化细节

升级比全新安装更复杂,因为它们会对现有系统进行更改。谁知道客户组织中发生了什么?

有时您需要在安装后执行安装后的工作任务。例如,您可以修改客户数据以适应更新的公式或解决不一致问题。使用我们新的Apex元数据API,您可以在向包中添加新的自定义字段时更新页面布局。

Salesforce允许您为安装后工作编写一个Apex类。在升级安装到组织中后,此类将执行其工作。

这样的班级是什么样的?这里有一个简单的例子:

    global class PostInstallClass implements InstallHandler {
      global void onInstall(InstallContext context) {
        if(context.previousVersion() == null) {
          //这意味着该软件包是第一次安装
          // 执行首次安装所需的活动
          Account a = new Account(name='NewAccount');
          insert(a);      
        }
        else if(context.previousVersion().compareTo(new Version(1,0)) == 0) {
          // 这意味着以前的版本是1.0 
        }
        if(context.isUpgrade()) {
          // 这意味着软件包正在升级
          // 执行包升级所需的活动
        }
        if(context.isPush()) {
          //这意味着该软件包正在被推送
          //执行推送升级所需的活动
        }
      }
    }
   
每个新的Apex类都需要一个测试类,所以这里是我们的例子:
    @isTest
    static void testInstallScript() {
      PostInstallClass postinstall = new PostInstallClass();
      Test.testInstall(postinstall, null);
      Test.testInstall(postinstall, new Version(1,0), true);
      List<Account> a = [Select id, name from Account where name ='NewAccount'];
      System.assertEquals(a.size(), 1, 'Account not found');
    }
   
使用Test类的testInstall方法来测试PostInstall类。什么进入该方法?你决定!

周到的自动化

自动化在工作时很棒。考虑如何最好地使用它与现有的和新的功能。

要增强现有功能,请使用安装后类自动将功能组件的任何新权限分配给现有用户。这样,每个人都可以不间断地使用软件包。

不要使用安装后的Apex脚本为新功能自动分配组件权限。相反,请提醒客户管理员注意这些功能,并让他们弄清楚细节。

安排您的升级

现在您已经定义了升级,现在是时间安排了。谁获得升级,什么时候?您可以交互式部署升级,或使用企业API自动升级客户。

以交互方式安排推送升级:

  1. 登录到您的包装组织。
  2. 从“设置”中,在快速查找框中输入软件包,然后选择 Packages.
  3. 选择要推送的托管软件包的名称。
  4. 在Package Details页面上,选择Versions并点击Push Upgrades。
    The Package Detail page, where you select Versions and Push            Upgrades.
  5. 点击 Schedule Push Upgrade.
    The Push Upgrade History section, where you click Schedule Push            Upgrade.
  6. 从 Patch Version 选择列表中选择一个软件包版本。
  7. 如果要安排开始日期,请在“计划开始日期”字段中输入日期。
    The Schedule Push Upgrade section, where you select a package            version and a start date for a push upgrade.
  8. 在“选择目标组织”部分中,选择要升级的组织。您已经升级的组织不会出现在此列表中。点击 Schedule.
    The Select Target Organizations section, where you use filters            to generate a list of orgs you want to update.

使用过滤器来选择要更新的组织列表。您可以通过以下方式过滤orgs:

  • 他们的部分或全名,或通过组织ID
  • 无论他们是沙箱还是生产组织
  • 他们已安装的软件包版本

使用企业API调度升级

当您根据各种规则和过滤器一次升级很多客户时,交互式调度变得困难。 Enterprise API允许您以编程方式安排和控制升级,并跟踪他们的进度。通过企业级API,您可以:

  • 使用SOQL查询查找使用您的软件包的客户
  • 计划推送升级到这些客户
  • 监视升级状态,并检查错误

该API为您部署升级提供了充分的灵活性。例如,您可以创建一个允许客户升级到新版本的Web表单。点击表单上的按钮可以安排这些客户的推送升级。

我们在这里没有描述如何使用企业级API–它涉及更多一点。 ISVforce指南有详细的步骤和代码示例,您可以使用它们来安排自己的推送升级。

跟踪更改

在您向客户发送更新时,您可以跟踪已经拥有最新版本软件包的用户。要查找收到推送升级的客户,请执行以下操作:

  1. 从您的开发组织中,单击 Setup.
  2. 在快速查找框中输入软件包并选择Packages.
  3. 点击包装的名称,然后点击 Push Upgrades.
  4. 单击目标的名称以查看“推送升级历史记录”页面。
    The Push Upgrade History page, where you select a org that you            are upgrading.
  5. 此页面包含有关推送升级的信息:其状态,任何计划开始日期,完成需要多长时间等等。
  6. 导航到组织部分,其中显示了所有要升级的组织的列表。
  7. 使用搜索框将组织过滤到您要搜索其升级状态的客户列表。
    The Job Details page, where you select the orgs you want to            track.

要筛选组织,请在搜索框中输入一个表达式。搜索部分或全部组织的名称或完整的组织ID。您还可以使用选取列表按推送升级的状态进行搜索。

改变:唯一不变

当你开发软件时,事情就会改变。 错误得到修复,功能被添加,算法和结构发展。 您已经在自己的开发团队中处理了更改。 现在您已经看到了如何将这些更改提供给您的客户。

Salesforce可以帮助您:

  • 通过为您提供两种机制来实现它们来构建您的更改:修补程序和升级
  • 通过合理的版本编号系统管理客户对变更的期望
  • 通过推送升级保持客户最新状态,从而简化维护工作

使用这些工具为您的客户提供及时和无缝的更新。 作为Salesforce的客户,他们期望软件即服务的所有好处。 保持SaaS的承诺,你可以让他们高兴。

应用升级(2)决定提供什么

学习目标

完成本单元后,您将能够:

  • 定义补丁和升级并给出每个例子。
  • 解释包版本号的重要性。
  • 描述如何创建补丁和升级。

生意兴隆!下一步是什么?

作为PartnerX的首席开发人员,您很自豪地报告说您的AppX在AppExchange上很受欢迎。您可以从客户那里获得反馈,并集思广益您的后续步骤。关于如何改进AppX的想法并不少见。

那么您优先考虑什么,以及您如何提供改进?回答这些问题需要计划。您的客户已经在使用您的解决方案,因此部分更改很难部署。理想情况下,您可以让AppX的升级过程像客户的其他体验一样令客户满意。

计划您的更新

您对产品所做的更新有两种:

  • Patches—轻微更改,如整形UX更新或错误修复,这些更改不会影响产品的行为。
  • Upgrades—对功能进行新的或重大的改变,改变产品的行为以及客户与之交互的方式。

假设你找到了你想修复的不一致的标签。或者,也许你只是在更新客户数据的公式中修复一个小故障。这些变化使得很多补丁。

对于您向客户承诺的令人惊叹的新功能,请使用升级。通过升级,可以进行重大更改,例如引入更好的工作流程或更改数据模型。

在我们进一步讨论之前,让我们看看一个简单的工具,用于向客户传达有关更改的信息:版本号。

软件包版本

我们都看到了软件版本号。广义而言,数字越大意味着更好的产品。无论如何,这就是希望!

Salesforce为版本化产品包提供了一个不错的简单格式。我们来看看最新版本的AppX:

AppX版本2.1.3

此版本号有三个部分:

  • 主版本号(2)。主要版本号的变化表明对产品进行大规模的全面更改。
  • 次要版本号(1)。当您添加功能或更改产品中的明显内容时,次要版本号会发生变化,但情况仍然与以前基本相同。
  • 补丁版本号(3)。每次使用修补程序更新产品时,修补程序版本号都会更改。

修补程序版本号易于管理 – 每次为包创建修补程序时它们都会自动更改。

当您对产品进行升级时,主版本号和次版本号会发生变化。主要和次要版本之间最大的区别在于,客户在进行次要版本升级时通常不需要改变他们使用应用的方式。

您的升级是重大更改还是次要升级?你决定。使用版本号来管理客户的期望。

你如何改变你的包装?我们先从补丁开始,因为它们是最简单的。

创建一个补丁

当您做出不影响底层数据模型或业务逻辑的更改时使用修补程序。修补程序只能在主要版本中创建,并且只能用于托管软件包。
当你创建一个补丁时,你需要在补丁开发组织中完成这项工作。这是一个特殊的组织,只允许不会破坏现有安装的更改。如果您是AppExchange合作伙伴,则可以在Salesforce合作伙伴社区中记录案例以获得正确权限后创建修补程序开发组织。

当您在补丁开发组织中工作时,您不能:

  • 添加新的软件包组件,Web服务或依赖项
  • 删除现有的软件包组件或弃用任何Apex方法
  • 更改API或动态Apex访问控制

有关限制的完整列表,请参阅ISVforce指南。

您使用包装组织创建补丁程序开发组织,而不是环境中心。创建后,您可以将修补程序组织连接到环境中心。

要创建补丁组织:

  1. 从包装组织中的设置中,在快速查找框中输入软件包,然后选择 Packages.
  2. 点击您的托管软件包,然后点击修补程序组织选项卡,然后点击New.
  3. 从“修补主要版本”选择列表中选择要修补的软件包版本。发布类型必须为“Managed – Released.
  4. 输入登录到您的补丁组织的用户名和相关的电子邮件地址。选择版本后会生成用户名(请参见下面的截图),但您可以更改它。电子邮件地址应该是您收到组织登录名和密码重置的主要电子邮件地址。这些特定于您的补丁程序开发组织。
    The Create Patch Development Organization section of the Package            Manager, where you enter a username and email address for your new            patch development org.
  5. 点击 Save.

修补程序开发周期

假设您正在对您的应用的2.0版进行更改。您创建一个补丁组织并在那里创建两个补丁,版本2.0.1和2.0.2。之后,您将这些修补程序合并到版本3.0中,您将其作为升级版本进行分发。

A patch is created from a major version, developed within a            patch development org, and merged back into the main development org            for a major or minor upgrade.

将修补程序合并到版本3.0中时,您已完成此修补程序组织。为3.0版的任何补丁创建另一个补丁组织。

有关详细信息,请参阅ISVforce指南。

创建升级

您已经对作品进行了重大更改 – 新的对象和业务逻辑,Lightning组件 – 并且您希望您的客户获得它们。为此,您可以为您的软件包创建升级。您只能升级托管软件包。

某些组件无法升级。 ISVforce指南提供有关哪些组件可升级的信息。

创建您的软件包的新版本

在开始之前,请确定您的升级是否值得主要或次要版本更改。这会提醒您的客户他们在做什么。

如果您要从软件包中删除组件,请在Salesforce合作伙伴社区中记录支持案例,以启用包装组织中的组件删除权限。您只能删除某些组件,详情请参阅ISVforce指南。

按照创建新托管软件包的方式创建升级:

  1. 在开发组织中的设置中,在快速查找框中输入软件包,然后选择软件包管理器。然后从可用软件包列表中选择软件包。
    The      Package Manager page, where you select your package.
  2. 您更改的任何组件都会显示在“组件”子选项卡中,以及任何新的依赖关系。要手动添加组件,请单击Add.
    The Package Detail      page, where you add components to your package.
  3. 选择适当的组件类型,选中所需组件旁边的复选框,然后单击添加 Add to Package. 下面我们添加活动和客户优先级自定义字段。
    The bottom of the Package Detail page, where you add custom components      and fields to your package.
  4. 准备好创建软件包时,请单击 Upload 以创建软件包的新版本。这将打开上传包页面。
    The Upload Package page, where you enter the details of your             package before uploading it.
  5. 在“版本名称”字段中,将该版本的软件包命名为与以前版本一致。版本号字段包含您可以覆盖的建议版本号。
  6. 再次单击 Upload 以完成软件包创建。
  7. 您将收到一封电子邮件,其中包含AppExchange上的软件包链接。与想要手动安装此升级的客户共享此链接。使用许可证管理应用程序中安装的用户列表来传播这个词。

简化,简化

软件包管理器允许您弃用软件包的旧版本。这样可以防止客户安装这些版本,尽管现有安装仍在继续。这使得维护更容易。

The Package Detail page, where you can deprecate older versions            of your app.

我们将在下一个单元恢复维护。

整理起来

您已做出所有要做的更改,严格测试它们,并上传您的托管软件包。你刚刚完成。在您将货物交付给客户之前,只剩下几件事情要做。

安全评论

如果您在AppExchange上拥有产品,那么您知道信任是Salesforce的首要任务。毕竟,您的应用通过我们的安全审查流程完成。您的修补程序和升级必须符合与您的应用程序相同的安全标准。

现在有一个好消息:您不必为每个补丁或升级都进行完整的安全审查。当您更新产品列表时,Salesforce安全操作团队会在24小时内审核您的代码。

要进一步了解我们的安全审查流程,请查看AppExchange安全审查模块。

更新您的应用列表

现在,您的闪亮新产品已准备就绪,现在可以更新您的AppExchange列表。

  1. 从Salesforce合作伙伴社区,导航到 Publishing. 然后选择你的列表。
    The Listings tab of the Publishing Console, where you select             your app’s listing.
  2. 导航到应用程序选项卡。在 “What package do you want to link to this listing?” 下,单击 Package.
    The App tab of the Publishing Console, where you update              your app’s listing.
  3. 从列表中选择您的软件包。
    The list of available packages that you select from.
  4. 点击 Save.
    The App tab of the Publishing Console, where you click             Save.

更新您的免费试用版

您正在使用Test Drive或Trialforce为您的客户提供免费试用产品,对吗?当然你是!让我们在试用期间更新您的试用版。你如何做到这一点取决于你提供的试用类型。

  • Installable Trial—您的客户在自己的组织中安装试用版。确保您的列表是最新的,并且您的客户可以简单地安装您的新版本。
  • Test Drive or Trialforce—在试用版组织中安装新版本,并创建一个新的试用模板。不要忘记更新任何测试数据并提交您的模板进行安全审查。

如果您没有向客户提供免费试用版,请前往AppExchange App试用版管理模块了解它们。

就是这样! 您的产品的新版本已准备就绪。 现在让我们来看看如何将更新分发给客户,SaaS风格。

应用升级(1)提供SaaS

学习目标

完成本单元后,您将能够:

  • 描述SaaS如何改变客户对软件更新的期望。
  • 讨论部署和维护单一版本产品的好处。
  • 列出一些您可以做的准备更新产品的事情。

平台的承诺

Salesforce客户知道他们有很好的表现。他们不必维护服务器和操作系统。他们不必知道如何设计,运行或优化关系数据库。他们甚至不需要备份自己的数据。

他们每年都会获得三个主要软件版本,并具有新功能和性能改进。他们获得了丰富的发行说明和培训材料(例如此工厂的Trailhead模块)。他们获得了AppExchange,这是一个与Salesforce无缝配合的产品市场。他们做生意所需的一切都在那里供他们使用。

伟大的期望

看到?企业软件不一定非常痛苦。它真的可以“只是工作”。这就是软件即服务(SaaS)的承诺。几年来,Salesforce已经向客户承诺了50多个成功的发布。即使是Salesforce平台的重大升级通常也会平稳安静地进行。

The logos of the myriad Salesforce releases that have shown our customers the promise of SaaS.

您的客户对我们平台上的产品有很高的期望。嘿,那就是成功的感觉!因此,当您更新产品时,您如何以保持SaaS承诺的方式将其提供给客户?

选择您的更新策略

更新有各种形式。修补程序是最小的一种更新 – 它们修复错误并对您的产品进行微调。升级是进行更大更改的更新。我们在下一个单元讨论补丁和升级。

当您更新产品时,您可以选择客户获得新版本的方式。有两种方法可以将它们放到他们手中:

  • Manual install—您的客户决定何时需要新版本并使用您提供的URL进行安装。
  • Automatic Install— 您将更新推送给客户,以便他们始终拥有最新版本的产品,并且每个人始终使用相同的版本。我们称之为推升级。

此时,您可能想知道为什么我们提供自助服务选项。这不是Salesforce自己发布版本的方式,它当然也不是“无缝”。为什么不用Salesforce的方式做事情,并以锁步方式更新每个人?

现实情况是:Salesforce在成功的低戏剧升级方面拥有悠久的历史记录。客户相信Salesforce可以正确执行发布,并快速解决流程中可能发生的任何问题。但是,这些相同的客户在适应AppExchange合作伙伴的自动更新之前需要更多的说服力。

让我们来谈谈推送升级的好处,以便传播良好的词汇。

推升级保持简单

我们建议您尽可能使用推送升级来分发您的产品的新版本,并仅对坚持使用它的客户使用自助更新。

推送升级使您的所有客户都保持在同一版本的应用程序上。这对您和您的客户都有好处。为什么?考虑另一种方法:支持应用程序的多个活动版本。当你维护多个版本时,事情变得复杂:

  • 您的支持团队必须跟踪每个版本的功能和修复情况,以便他们可以针对客户问题做出适当的回应。
  • 您需要维护多个版本的文档和培训材料。
  • 当你修复一个bug时,你可能不得不将它移植到多个版本。

相反,当您使用推送升级来让客户保持最新状态时,您可以避免所有额外的工作。

不要违背你的承诺

不言而喻,但我们仍然会说:不要破坏你的应用程序或你的客户的组织。当然,在不损坏客户的情况下更新产品可能会非常棘手。 Salesforce为您提供了一些便利的工具和一些边界,可以帮助您走上正确的道路。

自动化过程

有时,更新要求您在安装新产品版本时,在客户的组织中完成一些工作。也许你想在安装之后验证一些数据或在组织中进行一些清理。

你可以在你的应用中包含一个按钮来完成这项工作,但如果客户没有按下它,工作就不会发生。我们建议您在安装过程中自动完成工作,而不是牵涉到客户。当你设置你的软件包时,包括脚本来做到这一点。这些脚本可以更新数据和某些元数据。

例如,假设您在某个Apex代码中发现了一个计算存储在字段中的值的错误。作为更新的一部分,您可以修复该错误并运行脚本,该脚本还修复了修复之前生成的所有错误值。

保留现有行为

当您开始使用托管软件包时,可能您注意到无法删除已添加到软件包的某些组件(请参阅ISVforce指南以获取列表)。如果您将自定义对象或字段添加到包中,然后将该包上传到AppExchange,那么您现在就坚持使用它。

这看起来令人沮丧。但通过阻止您删除组件,Salesforce可帮助您将SaaS承诺保留给客户。他们知道他们可以依靠一定的稳定性 – 他们可以定制和构建您的解决方案,而不用担心突然的变化。

假设Salesforce不会阻止您删除组件。作为应用程序更新的一部分,您可以从托管软件包中删除自定义对象。如果您的任何客户在报告中使用该自定义对象,或者已经使用新字段进行扩展,那么它们会带来一个粗暴的惊喜。他们收到你的更新,自定义对象消失,东西破裂。混沌!

另一方面,我们知道情况发生了变化 – 尤其是在软件方面。有时最好删除一个组件,无论是修剪功能还是重新设计应用。别担心,我们不会站在你和你的目标之间。有许多方法可以让你做出任何需要的更改 – 甚至删除自定义对象。我们会在稍后的单元中向您展示这些。

一点准备工作要走很长的路

我们提到了Salesforce在低电视剧发布和更新方面令人印象深刻的记录。我们的秘密是什么?细致的测试。这不是太令人兴奋,但确实有效。更多的测试意味着少戏剧。

有时,合作伙伴非常关注他们出色的新功能,以便在测试更新时掩饰一些细节。以下是一个不完整测试过程的示例:您将升级后的应用安装在新创建的空测试组织上。如果它在那里有效,那很好,对吧?如果你的所有顾客都是从新鲜起家开始的,是的。

但是,大多数现实世界的客户在任何时候都处于业务中间。他们已经将升级安装到一个已经有一百万个组件的组织中。因此,测试您的凌乱,真实的组织和原始升级。

无缝无忧地部署您的更新

当您的软件自行更新时,您的客户不能只按“暂停”他们的业务。这不是SaaS承诺的一部分。无法保证任何事情都不会失败,但通过考虑更新如何影响客户,您可以最大限度地减少混乱。

  • 考虑你的更新的影响。您是否在改变客户使用产品的方式?
  • 首先在内部测试您的更改。使用各种各样的组装测试组织,而不仅仅是空的测试组织。
  • 考虑在你的部署中使用层:你的高级用户首先得到更新,其次是其他人。 Salesforce使用此流程,它有助于我们理解对真实客户的影响。

现在我们来看看您可以提供更新的不同方式。

试用版管理(5)提供试用版

学习目标

完成本单元后,您将能够:

  • 列出您可以部署免费试用版的方式。
  • 解释如何创建注册请求。
  • 描述托管试验的好处。

 

选择您的Trialforce Delivery Method

您选择了Trialforce,因为您想向每个人展示您的最佳作品。而且您已经投入时间创造身临其境的体验并将其打包到模板中。现在是时候让它们面向全世界了。你有三个交付选项。您可以:

  • 将免费试用版放在AppExchange上,供用户直接下载。
  • 根据他们的要求向前景提供试验。
  • 建立一个定制的网页表单,按需提供托管试验。

AppExchange选项是最简单的方法。另外两个可以让你与你的潜在客户进行互动。让我们从最简单的开始。

在AppExchange上进行试用

正如我们所说,这是最简单的选择,但它也是最有限的。例如,您一次只能提供一个Trialforce模板。此外,您错过了注册请求,这是一个非常酷的功能,可以捕获有关您的潜在客户的更多信息。更多关于这一分钟。但是,如果你只有一个模板,并且你只想在那里得到你的试用,这个方法可以做到这一点。

您可以通过从AppExchange列表中启用Trialforce来使您的试用版可用。为此,请将您的Trialforce模板链接到您的AppExchange列表。

  1. 登录到Salesforce合作伙伴社区。
  2. 在发布控制台上,单击 Listings.
  3. 找到您的物品并点击它。
  4. 在试用标签上,选择 Offer a free trial organization 然后点击 Change Template.
    Select Offer a free trial organization on your Listing
  5. 按照屏幕上的提示将试用模板添加到列表中。
  6. 点击 Save.

现在,当客户访问您的列表时,他们可以选择免费试用安装您的应用。

Install in a new free trial button

我们为开始AppExchange试用的潜在客户收集联系信息。我们要求他们同意您的条款和条件,以及我们的总体订购协议。每位提供此信息的潜在客户都会收到一封电子邮件,其中附有试用组织的链接。如果您使用Trialforce Management组织设置电子邮件品牌,则该电子邮件来自您。

正如我们所提到的,Trialforce试验组织是一个功能完善的Salesforce组织。前景可以使用你的应用程序,并可以安装额外的应用程序,因为他们认为适合在试用期内。

其他两种方法要求您在提交试用前从您的潜在客户那里获取信息。此信息由注册请求收集。

通过注册请求提供您的试用

如果您有多个模板,或者希望潜在客户在给他们试用之前提供更多信息,则注册请求可帮助您向他们发送定制试用版。

注册请求是用于使用Trialforce模板生成试验的自定义对象。每个注册请求都包含有关潜在客户和相关模板的基本信息。新的合作伙伴业务组织随附安装的注册请求功能。如果您的合作伙伴业务组织没有,您可以打开支持案例来索取。

您可以通过输入新记录手动创建注册请求对象,也可以通过注册请求API自动创建注册请求对象。我们向您展示两种方法。

注册请求对象包含关于您的潜在客户的重要信息:他们的姓名,公司,电子邮件和试用用户名。它还标识了Trialforce模板用于他们的试用。每个注册请求还包含一个包含试用状态和供应信息的历史记录。

Signup Request object and history

根据要求提供试验

有时候,你想在给他们一个试验,合格他们,验证他们的联系信息,或者就他们的需求采访他们之前,与潜在客户进行交流。

如果您想在向他们交付试用产品之前先与您的潜在客户谈话:

  1. 登录到Salesforce合作伙伴社区。
  2. 在发布控制台上,单击 Listings.
  3. 点击您的列表。
  4. 点击应用,然后在 “How should customers install your app,” 选择 They should contact us to install it.
Listing page: settings for providing trials on request

前景看到您的AppExchange列表上免费试用的链接。当他们点击它时,他们会看到提示,提供他们的联系信息,然后通过电子邮件收到。您可以联系他们讨论他们的需求或验证他们的信息。然后通过添加注册请求记录为他们创建试用版。

创建新的注册请求记录:

  1. 点击 Signup Requests.
  2. 点击 New.
  3. 选择潜在客户的公司,或者如果您没有看到它的列表,请输入名称。
  4. 填写潜在客户的名字和姓氏。
  5. 选择Salesforce中唯一的用户名,因为很难知道潜在客户的电子邮件地址是否已经在另一个组织中使用。与所有Salesforce用户名一样,它必须采用有效的电子邮件格式。例如,如果您的潜在客户的名称是Pat Jones,并且您的公司名称是AcmeApps,请使用类似Pat_Jones@AcmeApps.Demo.Org的内容。如果您选择Salesforce中其他位置存在的名称,则会在注册请求历史记录中看到错误。
    Signup Request form, filled out per request
  6. 为您的试用选择一个模板。您创建的每个模板都有唯一的ID。您可以在Trialforce Source Org(TSO)中找到您的模板的ID。
    1. 在单独的浏览器窗口或选项卡中,登录到您的TSO。
    2. 在安装程序中,将试用版键入快速查找框,然后选择 Trialforce Templates.
      Copying template IDs from Trialforce Templates page

      现在将要使用的模板的ID复制并粘贴到其他窗口的“注册请求”对话框中的“模板”字段中。

如果您需要在潜在客户看到它之前做任何特别的事情来配置Trialforce组织,请选择 Suppress signup email. 这可以防止Trialforce自动发送电子邮件,并且可以让您在设置事件时联系潜在客户。

因为它给你很多控制权,所以这种方法是为内部用户创建演示组织的好方法。您也可以将其用作对外销售的一部分,为潜在客户提供不请自来的试用。

回应免费试用版的每一个请求都会给你很多控制权,但它也需要你很多时间。如果您有很多客户,请谨慎使用此方法,并确保快速跟进他们的请求。

按需托管试验

如果您想要自定义和自动化,请提供托管试用版。这是您从您自己的网站部署的试用版:

  1. 登录到Salesforce合作伙伴社区。
  2. 在发布页面上,单击 Listings.
  3. 点击您的列表。
  4. 点击 App, 然后在 “How should customers install your app,” 选择 From Your Website.
  5. 为您的网站提供一个网址。
  6. 点击 Save.

然后你在你自己的网站上提供一个网页表单。当潜在客户填写此表单申请免费试用时,该请求会使用API​​调用生成注册请求记录。该记录为该潜在客户创建了一个试用版。

要创建Web表单,您可以使用传统的HTML表单:您可以创建一个选项列表,显示与模板ID对应的用户友好模板名称。这让您的潜在客户选择他们自己的体验。

当您构建表单时,请包含Salesforce主订阅协议的链接以及让潜在客户接受其条款的复选框。

您还可以将自定义字段添加到表单中以收集更多信息,但保持简单 – 毕竟,您希望潜在客户实现目标!您的网络表单必须与注册请求对象具有相同的字段,因此请确保它们匹配。

如果您对按需设置托管测试有疑问,请查看ISVForce指南。它描述了如何做到这一点。

把你的产品放在那里

让我们回顾一下Salesforce为您将潜在客户变为付费客户所提供的工具:

  • Installable trials::对您的产品进行试用,直接放入客户现有的组织中,这是让您的应用程序自行销售的好方法
  • Test Drive:只要您可以在没有前台操纵数据的情况下出售您的产品,就可以在自己的组织中启动简单的免费试用版的最简单方法
  • Trialforce:为您的客户量身打造的沉浸式体验的完整框架。销售团队喜欢它!

你从试用版中得到什么取决于你放入的内容。您计划在免费试用版中展示产品的方式越多,您可能从该试用版中获得的客户就越多。我们提供执行计划所需的工具。

让我们向大家展示他们为什么需要你提供的东西!

试用版管理(5)提供试用版

学习目标

完成本单元后,您将能够:

  • 列出您可以部署免费试用版的方式。
  • 解释如何创建注册请求。
  • 描述托管试验的好处。

 

选择您的Trialforce Delivery Method

您选择了Trialforce,因为您想向每个人展示您的最佳作品。而且您已经投入时间创造身临其境的体验并将其打包到模板中。现在是时候让它们面向全世界了。你有三个交付选项。您可以:

  • 将免费试用版放在AppExchange上,供用户直接下载。
  • 根据他们的要求向前景提供试验。
  • 建立一个定制的网页表单,按需提供托管试验。

AppExchange选项是最简单的方法。另外两个可以让你与你的潜在客户进行互动。让我们从最简单的开始。

在AppExchange上进行试用

正如我们所说,这是最简单的选择,但它也是最有限的。例如,您一次只能提供一个Trialforce模板。此外,您错过了注册请求,这是一个非常酷的功能,可以捕获有关您的潜在客户的更多信息。更多关于这一分钟。但是,如果你只有一个模板,并且你只想在那里得到你的试用,这个方法可以做到这一点。

您可以通过从AppExchange列表中启用Trialforce来使您的试用版可用。为此,请将您的Trialforce模板链接到您的AppExchange列表。

  1. 登录到Salesforce合作伙伴社区。
  2. 在发布控制台上,单击 Listings.
  3. 找到您的物品并点击它。
  4. 在试用标签上,选择 Offer a free trial organization 然后点击 Change Template.
    Select Offer a free trial organization on your Listing
  5. 按照屏幕上的提示将试用模板添加到列表中。
  6. 点击 Save.

现在,当客户访问您的列表时,他们可以选择免费试用安装您的应用。

Install in a new free trial button

我们为开始AppExchange试用的潜在客户收集联系信息。我们要求他们同意您的条款和条件,以及我们的总体订购协议。每位提供此信息的潜在客户都会收到一封电子邮件,其中附有试用组织的链接。如果您使用Trialforce Management组织设置电子邮件品牌,则该电子邮件来自您。

正如我们所提到的,Trialforce试验组织是一个功能完善的Salesforce组织。前景可以使用你的应用程序,并可以安装额外的应用程序,因为他们认为适合在试用期内。

其他两种方法要求您在提交试用前从您的潜在客户那里获取信息。此信息由注册请求收集。

通过注册请求提供您的试用

如果您有多个模板,或者希望潜在客户在给他们试用之前提供更多信息,则注册请求可帮助您向他们发送定制试用版。

注册请求是用于使用Trialforce模板生成试验的自定义对象。每个注册请求都包含有关潜在客户和相关模板的基本信息。新的合作伙伴业务组织随附安装的注册请求功能。如果您的合作伙伴业务组织没有,您可以打开支持案例来索取。

您可以通过输入新记录手动创建注册请求对象,也可以通过注册请求API自动创建注册请求对象。我们向您展示两种方法。

注册请求对象包含关于您的潜在客户的重要信息:他们的姓名,公司,电子邮件和试用用户名。它还标识了Trialforce模板用于他们的试用。每个注册请求还包含一个包含试用状态和供应信息的历史记录。

Signup Request object and history

根据要求提供试验

有时候,你想在给他们一个试验,合格他们,验证他们的联系信息,或者就他们的需求采访他们之前,与潜在客户进行交流。

如果您想在向他们交付试用产品之前先与您的潜在客户谈话:

  1. 登录到Salesforce合作伙伴社区。
  2. 在发布控制台上,单击 Listings.
  3. 点击您的列表。
  4. 点击应用,然后在 “How should customers install your app,” 选择 They should contact us to install it.
Listing page: settings for providing trials on request

前景看到您的AppExchange列表上免费试用的链接。当他们点击它时,他们会看到提示,提供他们的联系信息,然后通过电子邮件收到。您可以联系他们讨论他们的需求或验证他们的信息。然后通过添加注册请求记录为他们创建试用版。

创建新的注册请求记录:

  1. 点击 Signup Requests.
  2. 点击 New.
  3. 选择潜在客户的公司,或者如果您没有看到它的列表,请输入名称。
  4. 填写潜在客户的名字和姓氏。
  5. 选择Salesforce中唯一的用户名,因为很难知道潜在客户的电子邮件地址是否已经在另一个组织中使用。与所有Salesforce用户名一样,它必须采用有效的电子邮件格式。例如,如果您的潜在客户的名称是Pat Jones,并且您的公司名称是AcmeApps,请使用类似Pat_Jones@AcmeApps.Demo.Org的内容。如果您选择Salesforce中其他位置存在的名称,则会在注册请求历史记录中看到错误。
    Signup Request form, filled out per request
  6. 为您的试用选择一个模板。您创建的每个模板都有唯一的ID。您可以在Trialforce Source Org(TSO)中找到您的模板的ID。
    1. 在单独的浏览器窗口或选项卡中,登录到您的TSO。
    2. 在安装程序中,将试用版键入快速查找框,然后选择 Trialforce Templates.
      Copying template IDs from Trialforce Templates page

      现在将要使用的模板的ID复制并粘贴到其他窗口的“注册请求”对话框中的“模板”字段中。

如果您需要在潜在客户看到它之前做任何特别的事情来配置Trialforce组织,请选择 Suppress signup email. 这可以防止Trialforce自动发送电子邮件,并且可以让您在设置事件时联系潜在客户。

因为它给你很多控制权,所以这种方法是为内部用户创建演示组织的好方法。您也可以将其用作对外销售的一部分,为潜在客户提供不请自来的试用。

回应免费试用版的每一个请求都会给你很多控制权,但它也需要你很多时间。如果您有很多客户,请谨慎使用此方法,并确保快速跟进他们的请求。

按需托管试验

如果您想要自定义和自动化,请提供托管试用版。这是您从您自己的网站部署的试用版:

  1. 登录到Salesforce合作伙伴社区。
  2. 在发布页面上,单击 Listings.
  3. 点击您的列表。
  4. 点击 App, 然后在 “How should customers install your app,” 选择 From Your Website.
  5. 为您的网站提供一个网址。
  6. 点击 Save.

然后你在你自己的网站上提供一个网页表单。当潜在客户填写此表单申请免费试用时,该请求会使用API​​调用生成注册请求记录。该记录为该潜在客户创建了一个试用版。

要创建Web表单,您可以使用传统的HTML表单:您可以创建一个选项列表,显示与模板ID对应的用户友好模板名称。这让您的潜在客户选择他们自己的体验。

当您构建表单时,请包含Salesforce主订阅协议的链接以及让潜在客户接受其条款的复选框。

您还可以将自定义字段添加到表单中以收集更多信息,但保持简单 – 毕竟,您希望潜在客户实现目标!您的网络表单必须与注册请求对象具有相同的字段,因此请确保它们匹配。

如果您对按需设置托管测试有疑问,请查看ISVForce指南。它描述了如何做到这一点。

把你的产品放在那里

让我们回顾一下Salesforce为您将潜在客户变为付费客户所提供的工具:

  • Installable trials::对您的产品进行试用,直接放入客户现有的组织中,这是让您的应用程序自行销售的好方法
  • Test Drive:只要您可以在没有前台操纵数据的情况下出售您的产品,就可以在自己的组织中启动简单的免费试用版的最简单方法
  • Trialforce:为您的客户量身打造的沉浸式体验的完整框架。销售团队喜欢它!

你从试用版中得到什么取决于你放入的内容。您计划在免费试用版中展示产品的方式越多,您可能从该试用版中获得的客户就越多。我们提供执行计划所需的工具。

让我们向大家展示他们为什么需要你提供的东西!

试用版管理(4)设计客户体验

学习目标

完成本单元后,您将能够:

  • 解释一个Trialforce模板的用途。
  • 描述可以在Trialforce模板中自定义的内容。
  • 讨论创建样本数据的策略。

想想你想告诉的故事

如果您使用的是可安装的试用版,那么激发人们购买您的产品非常容易 – 他们会下载它来尝试针对自己的数据做一些具体的事情。只要您的用户体验能够维持并且您的应用能够完成其工作,您的状态就会很好。

“试驾”和“试用”需要更多的介绍,因为他们在单独的环境中提供自己的数据。如果你正在使用其中的一种方法,就想出一个能够吸引潜在客户的故事,并展示他们为什么需要你的产品。更好的故事导致更高的销售额。

这里我们将讨论为Trialforce创建体验,但您可以使用相同的方法为Test Drive组织创建数据。请记住,您的潜在客户不能更改您的测试驱动器中的任何数据。

用模板告诉你的故事

当您弄清楚您希望客户如何体验您的产品时,您可以创建一个代表该体验的模板。模板是一组配置数据和样本数据,用于在Trialforce组织中实现您的故事。模板用于创建试用组织,以便您的客户和潜在客户无需首先购买您的应用即可看到您希望他们看到的内容。

你如何创建一个Trialforce模板?实际上,模板只是Trialforce Source Org(TSO)及其内容的快照。要设置模板,请将您的应用程序安装到您的TSO并添加示例数据。

当你建立一个模板时,考虑你的理想客户并为他们创造一个专门的体验。你想展示给他们什么?他们必须看到具体的功能吗?什么样的数据可以为您的产品讲述最佳故事?使用与您的理想客户所使用的样品数据类似的样品数据创建身临其境的体验。

示例:项目管理

Emily是她的公司MultiProjects的管理员,这是一家工程公司。她需要创建,跟踪和管理公司正在进行的各种项目,并在AppExchange上搜索解决方案。她的搜索显示了里程碑项目管理应用程序。她没有Salesforce组织,因此她会从应用列表中请求试用组织。几秒钟后,Emily收到一个全新的组织,并安装了里程碑的试用版。

在她创建密码并登录到组织后,Emily发现组织具有一些入门数据,包括示例项目(1),任务和里程碑。她看到每个项目的细节,相关任务以及项目进展的直观表示(2)。

Overview screen for Milestones project management app

当Emily点击应用程序时,她会注意到应用程序中每个自定义对象和字段的记录。构建此模板的Milestones开发人员为每个标准和自定义对象创建了示例数据,因此Emily知道如何使用它。

通过示例数据,她很容易轻松检查项目信息,例如打开任务,时间预算和费用预算。

Status at a Glance screen in Milestones app

她还发现了甘特图功能,说明项目里程碑 – 她正在寻找的具体事情之一!

Milestones Gantt chart

里程碑项目管理应用程序还提供了一个称为“按里程碑打开任务”的示例报告,显示了正在进行的工作。

Open Tasks screen in Milestones app

艾米莉印象深刻。如果没有示例数据,她将无法看到该应用程序正在运行。但是,由于Salesforce合作伙伴使用Trialforce提供了良好的数据,Emily拥有丰富的经验并决定购买该应用。

它采取所有种类

上例中的模板说明了里程碑项目管理应用程序如何吸引像艾米莉这样的管理员。示例中的示例数据是通用的,但是具有更具体的模板,该应用可以吸引特定角色或行业中的潜在客户。

零售客户的样本数据将包括分配给收银员的任务和季节性店铺装饰的里程碑。与教育有关的模板可能有用于组织课堂,制定教学大纲和计划实地考察的项目和任务。使用客户熟悉的概念可帮助您与他们建立联系。不要低估使用与他们产生共鸣的术语和概念来向潜在客户说话的能力。

以下是学校实地考察的示例计划:

Sample field trip data in Milestones app

这是一个课程大纲的计划:

Sample class syllabus in Milestones app

对于想要导入自己的客户,您甚至可以创建没有数据的模板。很容易想象您的产品的几个模板。对于您想要提供的每种试用版本,请创建一个单独的TSO并配置并填充唯一的数据。

创建您的模板

要创建Trialforce模板,您需要带有示例数据的Trialforce Source Org,并为您的客户配置适当的设置。

创建一个模板

  1. 登录到您的TSO。
  2. 从安装程序中,在快速查找框中输入试用版,然后选择 Trialforce.
  3. 点击 New Trialforce Template.
  4. 描述模板并决定是否包含数据。在大多数情况下,默认选项“所有数据和设置”都可以。
  5. 在“可选功能”下,如果日期是应用程序的重要组成部分,请选择第一个框来调整所有日期,以便它们相对于组织创建日期进行相对移动。这可以防止您的示例数据过时。
    New Trialforce template screen
  6. 点击 Save.

生成新模板后,您会收到一封包含组织ID的电子邮件。

更新试用源组织时,请确保为其生成新模板。这样,您的试用与您最近的更改一致。

检查模板的状态

您的每个Trialforce模板都具有包含以下值之一的状态。

  • In Progress—首次创建模板时,它始终具有此状态。这意味着你尚未完成创建。
  • Success—模板已准备就绪,可用于创建试用组织。
  • Error—模板出现问题,只有在解决一个或多个问题后才能使用它。
  • Deleted—您已删除模板,并且不能再使用。删除的模板的状态记录会一直存在,直到下一次系统更新。

在创建或删除模板后检查模板的状态。为此,请在设置菜单中单击试用版。您会看到包含所有模板的表格。他们的状态显示在创建日期旁边的右列中。

Trialforce template creation date and status

获得您的模板审查和批准

要使用Trialforce提供AppExchange试用版,您的模板必须通过安全审查。这与您的应用的安全审核不同。它确保您的模板遵循以下基本规则:

  • 该模板只能包含已通过安全审查的托管软件包。
  • 该模板不能包含非托管代码(Apex或Visualforce页面)。

您可以在模板中包含声明式自定义,如“流程”或“审批流程”。任何不使用Apex,Visualforce或Javascript的东西都可以。

要请求安全审查:

  1. 登录到Salesforce合作伙伴社区并导航到发布控制台。
  2. 将您的TSO连接到您的列表。在组织选项卡上,从列表中选择您的TSO并单击 Connect Organization.
    Connecting your TSO on your Listing page
  3. 导航到“试用模板”选项卡,然后单击“Start Review”以查看您要使用的模板。
    Starting a review from your trial template list

您在开始审核后收到电子邮件确认,并在审阅完成时收到另一封电子邮件。该评价对合作伙伴免费,通常需要2-3天。

保持您的模板最新

创建Trialforce模板后,无法更新。由于该模板只是创建模板时的TSO快照,因此无法对其进行修改。幸运的是,从旧版本创建新模板很容易:只需使用新版本的软件包,数据或配置来更新TSO,并从中创建新模板即可。

每次创建新版本的应用程序时,请将其安装到您的Trialforce Source Org并创建一个新模板。

包装与Trialforce其他技术

Trialforce可与Communities和Einstein Analytics等其他Salesforce产品协同工作。如果你的应用使用它们,你可以设置一个功能齐全的试用版来展示它们。我们在这里没有描述这些产品 – 我们提到这些产品,以便您可以在建立客户体验时考虑这些产品。

可能性是无止境。您可以融入Salesforce组织的任何内容都可以成为您使用Trialforce提供的体验的一部分。在下一单元中,我们将向您展示如何与您的潜在客户分享这种体验。