Email Studio(1)入门

学习目标

在完成本单位,你将能够:

  • 定义Email Studio中的关键功能。
  • 登录到Marketing Cloud。
  • 描述Marketing Cloud主页。
  • 浏览电子邮件工作室应用程序。

为什么营销人员(仍然)喜欢电子邮件

确实,电子邮件已经存在了很长一段时间。但猜猜怎么了?这对于接触客户来说仍然是一个很好的渠道。即使随着社交和移动业务的增长,电子邮件在转化率,点击率和用户数量方面的表现也会更好。客户信任电子邮件营销人员喜欢它,因为跟踪客户行为很容易 – 比如他们打开哪些电子邮件,他们点击哪些链接,他们兑换的优惠以及哪些设备。电子邮件是一种久经考验的方式来提供个性化的通信,建立持久的客户关系。

准备好利用这些好处?营销云只有产品:电子邮件工作室。无论您是数字营销经理,营销云管理员还是两者都有,您可以使用Email Studio创建出色的电子邮件,细分和定位您的受众,并且充满信心地发送 – 所有这些都不需要任何编码。

一些关键功能和功能。

  • 无需编码:使用直观的UI和拖放静态和动态内容块加速电子邮件创建。
  • 在多个渠道共享内容开发:通过分销渠道(包括使用Content Builder的电子邮件,社交和移动设备)轻松标记,搜索和共享内容,以实现大规模内容创建和管理。
  • 有信心发送:测试电子邮件并在预览中查看确切的客户数据。没有更多的焦虑。
  • 内置预测智能:利用爱因斯坦人工智能,根据过去的客户行为发送高度个性化的电子邮件,并提供产品推荐。
  • 任何电子邮件,任何受众:使用一个应用程序创建所有企业电子邮件。
    • 促销电子邮件:通讯,促销,闪购,忠诚度计划,活动和优惠券
    • 交易和触发电子邮件:酒店预订,购买确认,运输通知,透支警报和银行对账单
    • 电子商务电子邮件:放弃的购物车电子邮件,订单确认,次最佳推荐建议和收据

观看视频以查看这些功能的实际应用。

浏览电子邮件工作室

现在让我们亲自动手并看看应用程序。如果您是营销云客户,并且您知道用户名和密码,请继续并登录。如果您不是,请不要担心。在本单元中,我们将向您展示大量截图,并向您提供逐步说明,以便您可以看到使用Email Studio的容易程度。

  1. 转到 mc.exacttarget.com.
  2. 输入你的 Username.
  3. 输入你的 Password.
  4. 点击 Log In.

Marketing Cloud login screen

第一站:营销云主页

您已到达Marketing Cloud主页。在我们深入了解电子邮件工作室之前,我们先简单介绍一下此页面。

Marketing Cloud homepage

从顶部(1)开始,导航栏是您在Marketing Cloud应用程序和工具(包括Email Studio)之间移动的方式。如果导航栏在特定应用程序中消失,您可以通过将鼠标悬停在左上方的蓝色云上来回到导航栏。

就在主导航栏(2)的下方,是您的数字营销日历。通过日历的首页视图,您可以快速轻松地查看过去,当前和未来的数字营销活动以及您正在使用的社交,移动,电子邮件等渠道。您还可以使用过滤器按业务部门查看广告系列和消息。

最后但并非最不重要的是,首页可以让您看到您的广告系列(3)。营销活动是在Marketing Cloud应用程序中组织和管理您的资产和电子邮件的一种方式(您可以在日历旁边导航栏的顶层找到Campaign工具)。此主页视图显示关键的广告系列详情;按状态过滤以查看所有活动,正在进行的活动或部署的活动。

下一站:电子邮件工作室概述

准备好检查电子邮件工作室?从Marketing Cloud主页访问该软件既快速又简单。在Marketing Cloud主页上的主导航栏中:

  1. 悬停在电子 Email Studio.
  2. 点击 Email.

如果您在Email Studio中工作了很多,则可以将“电子邮件工作室概览”页面设置为默认主页,或者在Marketing Cloud术语中将默认登录屏幕设置为默认主页。去做这个:

  1. 悬停在您的用户名上。
  2. 点击 Cloud Preferences.
  3. 点击 Default Login Preference.
  4. 选择 Email.

Email Studio Overview page

电子邮件工作室概览页面显示您最近的所有项目,包括Content Builder电子邮件,模板和数据扩展名(1)以及过去的和未决的发送(2)。使用顶部导航栏查找所有需要创建,测试和发送绝佳电子邮件的工具(3)。

电子邮件工作室中有六个主要工具(也称为标签),作为数字营销人员,您无疑会熟悉所有这些工具。

  • 内容:使用Content Builder创建和分享内容,包括电子邮件。
  • 订户:管理您的订户数据,包括创建可发送的数据扩展。
  • 交互:发起触发发送。
    A / B测试:使用A / B测试来查看哪些内容或参数(电子邮件,主题行,内容块,发送日期/时间,姓名,预读者)对观众最有效。
  • 跟踪:查看与您的发送有关的各种详细信息,包括是否实际发送了发送。
  • 管理员(仅限管理员):管理帐户信息,安全设置,邮件页脚中显示的物理邮寄地址等。

现在您已经更熟悉了Email Studio应用程序,下一个单元中,我们将看一下管理员标签以及一些准备启动和发送的管理任务。

应用许可证(4)为客户而存在

学习目标

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

  • 描述用户登录及其好处。
  • 列出适用于Subscriber Login的限制。
  • 解释交互式调试和你可以使用它的地方。

进入并帮助

客户支持是软件业务的一部分。无论您是否构建了全球所见过的最好的应用程序都无所谓 – 您的客户不时需要帮助。

有时修复很容易。客户通过电子邮件,电话或服务云与您联系,并为您提供足够的信息来解决问题或帮助他们完成任务。

其他时候,这个问题更加微妙,它有助于确切了解客户组织中发生了什么。但是如何?

您可以向您的客户询问截图或视频。如果您拥有合适的软件并且可以协调您的日程安排,您甚至可以设置屏幕共享会话。但是这些方法需要来自客户的时间和精力,而且他们不会让您直接导航客户组织来探索问题。

下一个最好的事情在那里

如果您可以登录到客户的组织,找出问题并直接解决问题,那将更容易。你可以!要求您的客户授予您登录访问权限。它允许您在一段时间内以特定用户的身份登录到组织,客户可以控制该时间段。无需向客户询问用户名和密码,这是一个很大的安全禁忌。

因为您以特定用户身份登录,所以授予登录访问权有时称为LoginAs。

请求登录访问

要请求登录访问:

  1. 请求您的客户导航到他们的个人设置。
  2. 告诉他们点击 Grant Login Access.
  3. 让客户指定访问持续时间,这应该足以让您排除故障并解决问题。
  4. 点击 Save.
    The Grant Account Login Access Page, where your customer grants you access to their org
  5. 如果您的客户没有看到您的公司名称,请确保:
    • 他们的系统管理员为非管理员授予登录访问权限。
    • 客户拥有应用程序包的许可证。
    • 如果软件包已授权给整个组织,具有“管理用户”权限的管理员授予您访问权限。
    • 在组织的设置中,管理员可以以任何用户身份登录被禁用。
  6. 检查您的帐户是否具有登录订户组织权限。您的客户可以直接向您的帐户授予您此权限,也可以通过权限设置授予您此权限。

当您的客户成功授予您登录权限时,您就可以登录其组织:

  1. 导航到许可证管理应用程序(LMA)中的 Subscribers LMA将客户称为订户。
  2. 按名称或组织ID搜索客户的组织。
    The Subscribers Tab in the LMA, which lists orgs for subscribers
  3. 在搜索结果中点击所需的组织记录。订户组织记录页面显示组织的公司信息页面,组织标识及其实例的名称和联系信息。该页面还包含有关组织的限制,登录访问以及软件包和许可的信息。联系信息可能与您对应的LMA销售线索,客户或联系记录中的信息有点不同。
  4. 单击 Log Into Subscriber Console 以连接到组织。
    The org record in the LMA, where you click Log Into Subscriber Console

如果您没有看到 Log Into Subscriber Console 按钮,请将该按钮添加到页面布局。如果您需要对此进行更新,请阅读如何在我们的Lightning Experience Customization模块中自定义记录详细信息和页面布局。

通过限制访问来维持信任

如您所知,信任是Salesforce的重中之重。访问客户的组织意味着可以访问他们的数据,这是组织无法轻松授予的特权。只有可信赖的支持和工程人员才能请求登录访问权限,他们可以高效并谨慎地解决客户组织中的问题。使用“登录订阅者组织”权限来组织您的支持团队,并仅将权限授予需要它的人员。

登录访问如何工作

当您通过登录访问连接到订户组织时,您会得到一些非常酷的工具,以供客户使用。您可以:

  • 查看您的托管软件包代码。而此代码对最终用户是隐藏的。
  • 检查您的应用程序的调试日志。通过这些日志和可见的源代码,您可以构建客户组织中正在发生的事情的图片。
  • 使用ISV客户调试器在运行时检查和调试托管软件包代码。
你可以做什么 通过登录访问 作为客户
登录到用户组织 X X
查看托管软件包代码 X
查看托管软件包调试日志 X
查看和编辑自定义设置中的受保护数据 X
启动一个ISV客户调试器会话 X
授予OAuth访问权限 X
使用双因素认证 X X

调试日志包含可帮助您排除客户问题的调试信息。 要查看用户组织中的调试日志,请执行以下操作:

  1. 从安装程序中,在快速查找框中输入调试日志。
  2. 选择 Debug Logs.
  3. 在列表视图中查看调试日志。

日志和源代码非常好,它们可以满足客户的需求并将它们发送出去。但是如果你需要深入挖掘,我们已经涵盖了你。

在您的调用堆栈中查找针

让我们面对它 – 有时您需要观察应用程序中发生的情况以了解问题。这是调试器的用途。如果您使用调试器来查找代码中的错误,那么您知道它们是多么的方便。我们已经为您提供了一个用于调试订户组织的工具。

如果您之前没有使用过调试器,那么您需要一种享受:您可以在程序运行时正确检查数据!

ISV客户调试器是Eclipse集成开发环境的免费Lightning Platform插件。这是Salesforce Apex调试器的一种变体。

The ISV Customer Debugger, where you can follow the execution of your app’s logic in your customer’s org

这个调试器可以完成您希望调试器执行的所有任务。

也就是说,调试器有一些限制:

  • 一次只能打开一个调试会话,这意味着您一次只能调试一个客户。如果您需要同时进行多个调试会话,请联系您的合作伙伴客户经理以获取选项。
  • 调试器只能连接到沙箱组织。换句话说,你不能交互式地调试生产组织。如果客户识别生产组织中的问题,请创建沙盒组织并填写数据以重现错误。完整的沙箱提供您可以进入生产环境的最接近的体验。
  • 一次最多可以调试两个执行线程。
  • 一小时不活动后,调试会话超时。
  • 调试会话可以持续不超过4小时,而不管活动。

开始一个调试会话

要开始调试会话,请按照下列步骤操作:

  1. 按照上述步骤,让客户授予登录访问权限。
  2. 从安装程序中,在快速查找框中输入沙箱。
  3. 点击沙盒旁边的 Login ,以便正确调试问题。
  4. 如果您需要创建新的沙箱,请查看我们的更改管理模块以进行更新。
  5. 进入沙盒设置后,在快速查找框中输入Apex Debugger。
  6. 单击 Start Partner Debugging Session.
  7. 将图标拖到Force.com IDE窗口中以启动会话。
  8. 开始调试!

建立客户满意度的声誉

正确管理您的许可证并满足客户的需求,并且您可以发展业务并确认您在AppExchange上的声誉。花在扑灭火灾和追踪错误上的时间越少,您就越需要添加新功能并在新的方向上工作。

应用许可证(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并不止于此。请继续阅读,了解如何使用支持控制台让您的客户满意。

应用许可证(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使用此流程,它有助于我们理解对真实客户的影响。

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