面向社区的Rich Publisher Apps -使用Apex触发器扩展可能性

学习目标

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

  • 命名使用触发器与Rich Publisher Apps一起使用的用例。
  • 使用触发器构建智能的Rich Publisher App。
  • 描述Rich Publisher Apps API。

使用您的Apex触发技能

您不仅可以设置点击添加Rich Publisher Apps,还可以设置可以智能地预测成员所需信息的应用程序。例如,您的应用可以使用有用的数据或Rich Publisher App选择来回复成员帖子。成员不要单击应用程序图标。相反,Salesforce会在成员的帖子中自动包括相关的Rich Publisher App。

您可以使用针对Chatter对象的Apex触发器的功能来实现此目的。借助Apex触发器,您可以在更改Salesforce记录(如插入,更新或删除)之前或之后设置自定义操作。您可以添加一个插入后 FeedItem触发以收听成员帖子的内容并智能地插入Rich Publisher App。例如,您还可以添加触发器,以响应对其他对象(如评论或答案)的更改来更新应用程序。

让我们看一个 插入后 触发行动。

梦幻之梦

想象一下,您在Dreamforce上,并且正在寻找一些很棒的课程。在社区中输入问题作为您的问题,Looking for some DF sessions. 然后Looking for some cool DF sessions使用#标签添加详细信息#lookingForSessions。

Chatter发布者中的详细问题和主题

您单击“ 询问”,发布者将在发布的帖子中自动包含一个Rich Publisher App(Dreamforce校园地图)。

通过插入后触发器将Google Map附加到帖子

我们在这里做了什么?要获得此结果,您需要创建两件事。

  • Rich Publisher App,用于根据某些上下文将地图附加到提要项
  • 自动插入应用程序的触发器

梦想地图

首先,创建与第2单元中的支持案例应用类似的Rich Publisher App,但是这次使用Google Maps API。

用户无需点击图标,而是通过在Feed中输入特定主题来触发我们的地图应用。但是Rich Publisher App平台需要一个图标,那么您该怎么办?在这种情况下,您可以为该图标添加空白图像和一个空白的合成组件。

或者,您可以创建常规的点击添加应用并添加 插入后 触发附加体验。

这是为…编写基本触发器的一种方法 FeedItem。

trigger dreamforceMapInsertion on FeedItem (after insert) {
  // This is where we look for content in the post or topics. Based on our result, we can insert
  // a Rich Publisher App. Alternatively, we can continue adding a Rich Publisher App for each
  // post without the filtering. 
    
  // Get FeedItem Id & the body.
  String id = null;
  String body = “”;
  for(FeedItem f : Trigger.new) {
       id = f.id;
       body = f.body;
      }
  }
    
  if (id == null && !f.body.contains('#lookingForSessions’)) {
      return;
  }
  String communityId = Network.getNetworkId();
  String feedElementId = id;
  ConnectApi.FeedEntityIsEditable isEditable = 
    ConnectApi.ChatterFeeds.isFeedElementEditableByMe(communityId, feedElementId);
  
  // Make sure the post is user-editable before inserting the Rich Publisher App.
  if (isEditable.isEditableByMe == true) {

        // This is the setup for Rich Publisher App insertion. 
        ConnectApi.FeedItemInput feedItemInput = new ConnectApi.FeedItemInput();
        ConnectApi.FeedElementCapabilitiesInput feedElementCapabilitiesInput = 
          new ConnectApi.FeedElementCapabilitiesInput();
        feedItemInput.capabilities = feedElementCapabilitiesInput;
        feedItemInput.capabilities.extensions = new ConnectApi.ExtensionsCapabilityInput();
        feedItemInput.capabilities.extensions.itemsToAdd = new List<ConnectApi.ExtensionInput>();
        ConnectApi.ExtensionInput ext = new ConnectApi.ExtensionInput();
        
        // This is the id for your Rich Publisher App.     
        ext.extensionId = '<Insert your extensionId>'; // This would be something you get from 
          //Workbench which is the id for extension entity for example ‘0MYB00000001234567’
        
        // This is the payload associated with this instance of the app.
        ext.payload = '<Insert your payload>'; // This would be your JSON blob for example: 
          //‘{\”feedItemId\":\"'+id+’\”}’
        
        // This can change if you want to use multiple payload versions with different versions of
        // your app. Or you can just use 1 version. This is Optional.                	
        ext.payloadVersion = '<Insert your payloadVersion>'; // This can be anything like ‘1.0’

        // The following fields add metadata to your Rich Publisher App.
        // This is similar to our actions in Unit 2 when we added metadata to the lightning event.
	 alt.textRepresentation = '<Insert your text representation here>'; 
	 ConnectApi.AlternativeInput alt = new ConnectApi.AlternativeInput();
        ext.alternativeRepresentation = alt;
        
        // Add a Rich Publisher App to FeedItem capabilities.
        // Here you can add multiple Rich Publisher App instances in the itemsToAdd Array.
        feedItemInput.capabilities.extensions.itemsToAdd.add(ext);
    
        // Finally, edit the FeedItem to insert the Rich Publisher App.
        ConnectApi.FeedElement editedFeedElement = 
          ConnectApi.ChatterFeeds.updateFeedElement(communityId, feedElementId, feedItemInput);
  } 
}

在我们的代码示例中,我们介绍了许多有关如何编写 插入后 FeedItem 触发器以及如何使用Rich Publisher Apps API。

要将Rich Publisher App实例添加到您的供稿项,平台会编辑 FeedItem 在它创建之后 插入后触发。然后,它将Rich Publisher App实例作为FeedItem触发器中的表示形式。您可以在进行编辑之前进行过滤,以确定是否要进行插入。

在我们的示例中,触发器#lookingForSessions在提要主体中寻找主题。然后,它传递有效负载以向Rich Publisher App提供上下文。通过上下文,Rich Publisher App知道要显示Dreamforce校园的地图。您可以做各种事情来从帖子正文或其附件中获取上下文。有了上下文时,可以将其作为有效负载传递给Rich Publisher App,以便它可以呈现某些内容作为响应。您还可以向第三方服务提出请求。例如,您可以请求访问机器学习资源或其他智能API。这些代理可以在您的Rich Publisher Apps中提供智能响应。

颤振扩展

在我们的公共API中,Rich Publisher Apps API被称为 ChatterExtension。您只能通过Workbench使用SOAP API创建Chatter扩展。但是您可以使用Chatter Extensions Connect API (或Apex中的ConnectAPI)来获取它。创建Rich Publisher App时,基本上是ChatterExtension对象,如我们在单元2,第3步中介绍的那样。Salesforce将Rich Publisher Apps作为Feed的附件插入,类似于附加文件。这就是为什么您使用 扩展功能输入(或 Apex中的ConnectAPI)插入带有提要项的Rich Publisher实例的原因。

让我们回到我们的例子。有人看到您的问题,然后回复How to build Rich Publisher Apps at Moscone North。

更新的Google Map

即时,地图在Moscone North位置上用图钉更新。

另一个答案建议在洲际酒店举行会议。地图再次更新,这一次是在酒店位置使用图钉。

更新的Google Map

在这里,连同 FeedItem 触发,我们有一个 FeedComment触发正在监听评论。成员插入评论后,您的应用程序会将评论的内容主体与Dreamforce会话列表进行匹配。然后触发器编辑FeedItem 用上面提到的位置上的引脚更新有效负载。或者,您可以让Rich Publisher App收听外部第三方服务以获取要固定的位置列表。在这种情况下,FeedComment 触发器可以更新该第三方服务,而无需编辑 FeedItem。这样,您可以获得在地图上更新图钉的动态体验。

面向社区的Rich Publisher Apps -构建富发布者应用

学习目标

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

  • 列出Rich Publisher Apps平台中提供的接口和事件。
  • 从头开始构建Rich Publisher App。
  • 在社区中配置Rich Publisher Apps。

步骤1.上传您的图标图像并获取其文件资产ID

问题发布者中的Rich Publisher App图标

要提供在供稿发布者中显示并与您的应用打包在一起的图标,您需要该图标的 fileAsset ID。

您使用 fileAsset 创建时的ID ChatterExtension实体。添加fileAsset ID到 ChatterExtension 可让您将图标文件与您的应用打包在一起。

这是您上传图标图像并获取它的方法 fileAsset ID。

注意

注意

Lightning Component框架具有两个编程模型,Lightning Web Components和Aura。在此模块中,我们使用Aura构建Rich Publisher Apps。

  1. 将您的图标文件上传到Salesforce。
  2. 复制文件ID。注意您可以从Salesforce中的文件详细信息中获取文件ID。转到“文件”页面,然后查看文件详细信息。从浏览器的URL复制文件ID。这是一个很长的数字,例如 069R00000003roQ。
  3. 转到Workbench,并获取以下值: ID 下 fileAsset。
    1. 在REST Explorer中,选择Post,然后输入路径: /services/data/v43.0/connect/files/[file_ID]/asset
    2. 对于[file_ID],输入您在步骤2中复制的文件ID。
    3. 在请求正文中,输入{}。
    4. 点击执行
    5. 展开 fileAsset 节点,将值复制为 ID,然后将其粘贴到以后的用户。

步骤2.创建用于合成和渲染的闪电组件

当社区成员单击Rich Publisher App图标时,该操作将导致打开合成模式。该模态包含一个闪电组件。Lightning组件使用户能够选择某些内容,搜索某些内容或生成某些内容。您可以根据自己的用例自定义此组件。

让我们看看一家公司如何使用Rich Publisher Apps平台将案例附加到帖子和问题上。

遇见摩ri座

摩ri座出售咖啡和高端咖啡冲泡设备,并以其客户服务而自豪。它的秘密之一是为客户服务代理商建立的社区,以讨论未决案例并就解决方案进行协作。摩ri座希望开发一个Rich Publisher App,用于将案例附加到帖子和问题上。他们希望给他们的代理商一种挖掘过去解决方案的方法,以解决目前的问题。这就是他们的工作。

A.创建第一个闪电组件

创建扩展Lightning接口的Lightning组件 闪电:适用于ChatterExtensionComposer。合成组件使用此接口。

摩ri座开发人员团队使用先兆迭代来显示组件代码中的列表项。这是闪电组件代码。

<aura:component implements="lightning:availableForChatterExtensionComposer" controller="caseController">
    <aura:handler name="init" value="{!this}" action="{!c.init}"/>
    
    <aura:attribute name="items" type="List" description="Contains a list of items for user to select."/>
    
    <div class="container">
        <aura:iteration items="{!v.items}" var="item" indexVar="index">
            <div class="itemContainer" onclick="{!c.selected}">
                <div class="itemLeft">
                	<img class="itemIcon" src="https://login.salesforce.com/logos/Standard/record/logo.svg"></img>
                </div>
                <div class="itemRight">
                    <div class="itemTitle">{!item.title}</div>
                	<div class="itemDescription">Case Number: {!item.caseNo}</div>
                </div>
            </div>
        </aura:iteration>
    </div>
</aura:component>

摩ri座团队在控制器中发出Apex请求 在里面函数获取选择列表的支持案例信息。这是与Lightning组件关联的控制器代码。

({
	init : function(cmp, event, helper) {
        var action = cmp.get("c.getCases");
        action.setCallback(this, function(response) {
            var state = response.getState();
            if (state === "SUCCESS") {
                var caseList = [];
                var response = response.getReturnValue();
                for (var i=0;i<response.length;i++) {
                    caseList.push({
                        "title": response[i].Subject,
                        "caseNo": response[i].CaseNumber
                    })
                }
                cmp.set("v.items", caseList);
            }
        });
        $A.enqueueAction(action);
	},
    
    selected: function(cmp, event, helper) {
        var selectedItem = helper.getSelectedItem(cmp, event);
		var compEvent = cmp.getEvent("sendChatterExtensionPayload");
		compEvent.setParams({
			"payload" : helper.getPayload(selectedItem),
			"extensionTitle" : helper.getTitle(selectedItem),
			"extensionDescription" : helper.getDescription(selectedItem)
		});
		compEvent.fire(); 
    }
})

这是与控制器一起使用的辅助代码。

({  
    getSelectedItem: function(cmp, event) {
        var clicked = event.currentTarget;
        var parent = clicked.parentElement;
        var total = parent.children.length;
        var selectedIndex = -1;
        for(var i=0; i<total; i++) {
            if(clicked === parent.children.item(i)) {
                selectedIndex = i;
            }
            $A.util.removeClass(parent.children.item(i), "selected");
        }
        $A.util.addClass(clicked, "selected");
        
        var selectedTh = cmp.get("v.items")[selectedIndex];
        return selectedTh;
    },
    
    getPayload: function(item) {
        return item;
    },
    
    getTitle: function(item) {
        return item.title;
    },
    
    getDescription: function(item) {
        return item.caseNo;
    }
})

这是为该应用编写Apex调用的一种方法 获取案例 功能。

public class caseController {
    
    @AuraEnabled
    public static List<Case> getCases() {
       List<Case> cases = [SELECT AccountId,CaseNumber,Subject,Description,Id FROM Case ORDER BY CreatedDate ASC NULLS FIRST LIMIT 20];
       return cases;
    }
}

您可以实现自己的方式让用户进行选择。您可以在Apex中使用任何逻辑,以使用内部或第三方服务来构建功能强大的Rich Publisher Apps来获取智能数据或新鲜数据。

重要的是要确保用户单击触发光环事件 闪电:发送ChatterExtension有效载荷在控制器代码中。在摩ri座的代码示例中,团队在已选功能。在事件中设置事件已选 当用户做出选择时,此功能会发送有效载荷以与提要项关联。

团队设定 extensionTitle 和 extensionDescription使用辅助函数将元数据与有效负载关联。此元数据用于非Lightning用例,例如电子邮件通知或经典视图。您也可以选择添加缩略图URL。

这是带有标题和缩略图的模态。

列出作曲家组件中的项目

Rich Publisher Apps平台还提供“ 添加”和“ 取消”按钮。在上一个图像中,“ 添加”按钮被禁用。Salesforce的启用 添加按钮后,才闪电:发送ChatterExtension有效载荷使用非空的有效负载触发事件。如果使用空的有效负载触发事件,则按钮保持禁用状态。

启用添加按钮

B.创建第二个闪电组件

接下来,摩ri座团队创建一个Lightning组件来扩展Lightning接口 闪电:可用ForChatterExtensionRenderer。当FeedItem被渲染。此接口有两个基本属性:变体 和 有效载荷。的变体 属性可让您根据所选应用是在发布者中预览还是在广告中呈现来决定如何呈现内容 FeedItem。的有效载荷 属性是用户在组合组件中选择的JavaScript对象。

<aura:component implements="lightning:availableForChatterExtensionRenderer">
    
    <div class="container">
        <a target="_blank" href="{!v.payload.url}">
            <div class="{! (v.variant == 'FEED' ? 'itemContainerBorder' : '') + ' itemContainer'}">
                <div class="itemLeft">
                    <img class="itemIcon" src="{!v.payload.icon}"></img>
                </div>
                <div class="itemRight">
                    <div class="itemTitle">{!v.payload.title}</div>
                    <div class="itemSubtitle">{!v.payload.subtitle}</div>
                    <div class="itemDescription">Case Number: {!v.payload.caseNo}</div>
                </div>
            </div>
        </a>
    </div>
</aura:component>

Capricorn 使用变体 饲料决定使用哪个CSS类。指某东西的用途饲料 向Salesforce发出信号,以在其中呈现Rich Publisher App FeedItem。要在发布商中呈现应用,请使用变体预习。有效负载信息显示要呈现的情况。在此示例中,有效负载是静态的。但是,您也可以使用服务器端Apex控制器来获取渲染器组件内部的实时动态信息。

这是有效负载在发布者内部作为预览的样子(预习):

Rich Publisher App有效内容的预览

有效负载在最终呈现的供稿项中的外观如下(饲料):

与Feed项目一起发布的Rich Publisher App有效负载

步骤3.在Workbench中创建Rich Publisher App

现在,您已经创建了Lightning组件并抓取了 fileAsset ID,您已准备好在Workbench中创建Rich Publisher App。

转到工作台,然后插入 ChatterExtension对象(工作台>数据>插入> ChatterExtension)。然后将所有组件值与ChatterExtension 领域。

获取组件值的一种方法是转到“设置”并搜索 Lightning Components。单击列出的组件以查看其详细信息。从浏览器URL复制组件ID。

ChatterExtension对象
  • 提供合成组件的闪电组件ID。
  • 为模式标题添加文本。
  • 为应用程序图标(在Feed发布者中显示的图标)添加悬停文本。
  • 提供 fileAsset 应用程序图标的ID。
  • 提供渲染组件的Lightning组件ID。
  • 对于 类型输入Lightning。当前,闪电是唯一可用的类型。
注意

注意

您可以在Translation Workbench中本地化标题和悬停文本。

步骤4.在您的社区中启用Rich Publisher Apps

当一切准备就绪时,摩ri座团队会将应用程序添加到其社区中的供稿发布者。您可以通过“体验工作区”中的“管理工作区”向社区添加最多五个Rich Publisher Apps。

  1. 转到体验工作区,然后单击“ 管理”磁贴。
  2. 在导航列中,点击Rich Publisher Apps
  3. 从“可用的应用程序”列中最多选择五个应用程序,然后将它们移动到“选定的应用程序”列中。
  4. 要设置发布者中图标的顺序,请在列表中上移或下移选定的应用。
  5. 点击保存

面向社区的Rich Publisher Apps -可使用Lightning就绪的Rich Publisher应用程序入门

学习目标

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

  • 描述什么是Rich Publisher Apps。
  • 列出Rich Publisher Apps的一些用例。
  • 描述Rich Publisher App的基本架构。

获得竞争优势

想象不只是添加文件或链接到您的提要帖子,还可以想象附加一个实时视频,醒目的GIF或交互式小部件。使用Rich Publisher Apps平台,几乎一切皆有可能。使用该平台可将多达五个自定义应用构建,配置和集成到Feed发布者中。为您的社区成员提供“现在就在这里可用”的便利,使您领先于竞争对手。

提要项上的映射Rich Publisher App

使用Rich Publisher Apps,您可以:

  • 将案例附加到帖子上。
  • 插入GIF文件或著名的引号。
  • 开始视频会议。
  • 附加一个Trailhead模块。
  • [您的想法在这里!]

在本模块中,我们描述如何构建Rich Publisher App,以使您的供稿更加动态,并向第三方服务开放它们。

注意

注意

Lightning Component框架具有两个编程模型,Lightning Web Components和Aura。在此模块中,我们使用Aura构建Rich Publisher Apps。

那么它是怎样工作的?

Rich Publisher Apps平台为您提供了创建交互式应用并将其集成到Feed发布器中的所有必要工具。

您可以通过三种方式将Rich Publisher App添加到您的社区。

  • 从AppExchange获取。
  • 在您的组织中构建自定义应用。
  • 通过变更集或程序包移植应用程序。
将Rich Publisher Apps添加到组织的方法

从组织到社区

将Rich Publisher App添加到组织后,所有组织的社区均可使用。社区管理员和管理员可以在其社区的“管理工作区”中选择并启用可用的应用程序。

附加文件图标

当您将Rich Publisher App添加到社区时,成员会在发布者旁看到该应用程序的图标。

此示例显示了具有三个自定义应用程序集成的Feed发布者。有用于附加外壳(1),GIF(2)和Trailhead模块(3)的图标。

问题发布者中的Rich Publisher App图标

从社区到出版商

Rich Publisher Apps图标显示在文本和问题发布者的组,主题,直接消息和用户配置文件供稿中。它们不会出现在民意调查发布者中。

注意

注意

在问题发布者中,Rich Publisher App图标显示在RTF编辑器下的“详细信息”部分中。

社区成员单击该图标以打开选择框。

Rich Publisher选择框

他们选择一些东西,单击Add,然后单击Share或 Ask,然后Salesforce会发布带有附件的帖子。

问题发布中包含的Rich Publisher App有效负载

关键发展概念

在下一个单元中,我们将引导您创建动态的Rich Publisher App。作为后续,理解一些概念将很有用。

有效负载是开发Rich Publisher Apps的关键概念。有效载荷是提要项表示的一部分。这是附加到供稿项的东西-视频,GIF或小部件。

提要项表示有效负载

有效载荷可以是字符串,可以是base64编码的JSON对象(无论您选择什么)。作为开发人员,您可以控制有效负载。

当Salesforce通过API获取提要项目时:

  1. 它将有效负载与提要项目相关联。
  2. 它获取有效负载。
  3. 它将有效载荷与提要项数据一起发送到提要中。

现在让我们看一下该架构的概述。

Rich Publisher Apps的四个主要组件

  • 合成组件(闪电组件)
  • 渲染组件(闪电组件)
  • 图标(发布者中显示的图像文件)
  • 可本地化的标签(标题和悬停文本)
Rich Publisher App的主要组件

接下来,我们逐步完成这些元素的创建过程,并将它们组合在一起成为一个内聚且动态的Rich Publisher App。

通过分布式营销实现无缝的客户参与

学习目标

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

  • 说明如何遵守品牌标准。
  • 说明如何授予任何人访问已批准内容的权限。
  • 确定消费者如何与您的品牌互动。
  • 了解分布式营销中的顶级功能。

确保符合企业营销品牌标准

企业营销人员可以使用Journey Builder创建最佳实践的消费者旅程并将其部署到顾问,所有者和合作伙伴。 Journey Builder是Marketing Cloud的旅程管理工具,它使营销人员可以跨渠道和设备创建有针对性的一对一旅程。然后,他们可以将这些旅程分发给特许经营者,顾问和经销商,以确保他们拥有经品牌营销批准的内容,以发送给客户和顾客。

例如,汽车制造商的公司营销团队可以制定假期促销旅程,供经销商使用,以便在年底前与对新车表达了兴趣的消费者互动时使用。

授予任何人访问批准内容的权限

财务顾问,保险经纪人和经销店所有者并不总是按行业进行营销,因此了解无缝营销和执行品牌信息的重要性可能很复杂。现在,非市场营销人员可以轻松地访问Salesforce Sales Cloud,Service Cloud或Community Cloud中的预置行销历程,并将其个性化并发送给消费者。 

例如,想要与新客户打交道的保险经纪人,可以登录由Financial Services Cloud提供支持的经纪人门户,以访问新客户入职可用旅程的陈列室,然后向新客户提供个性化的品牌沟通。

了解消费者如何参与

对于品牌而言,重要的是要了解消费者如何响应营销信息。在合作伙伴级别,顾问,特许经营权人和经销商现在可以看到每个消费者如何与他们传递的消息进行交互。所有这些参与数据在Marketing Cloud中的旅程总级别上都是可见的。这意味着公司营销人员可以完全了解旅程中每个消息的执行情况。如有必要,营销人员可以适应并改变旅程,以继续提供最佳体验。

例如,一家快餐连锁店在与所有加盟商分享建议的旅程后,可以查看参与度分析,以发现当提供季节性折扣时,电子邮件营销要比数字广告更好。

分布式营销功能

Salesforce的分布式营销弥合了企业营销,员工,渠道合作伙伴和您的品牌之间的差距,以提供一致的体验。企业营销人员在Marketing Cloud中建立品牌跨渠道旅程,并将其部署到顾问,所有者和合作伙伴。然后,这些人将他们的联系人添加到旅程中,并为每个联系人个性化消息。

分布式营销是安装在诸如销售,服务,财务服务和合作伙伴社区之类的云中的托管软件包。通过Salesforce Campaign,Distributed Marketing提供Marketing Cloud旅程电子邮件内容,以供分布式团队个性化和发送。

借助分布式营销,品牌可以…
利用Marketing Cloud旅程增强营销活动:利用Marketing Cloud增强

团队能力利用
电子邮件,移动设备和广告来创建旅程,以提供最佳解决方案。 在销售,服务和社区云

中将营销与业务
访问旅程的 所有领域统一起来


控制广告系列用户可以访问
利用Salesforce强大的权限和共享模型。

广告活动讯息


吸引整个企业

名录 吸引合适的受众群体
将任何联系人,潜在客户或个人客户添加到广告系列中。

传递单个
消息使用“快速发送”发送一次性消息。

充满信心
发送轻松为每个成员或组选择,查看和验证。

任何用例的消息
发送感谢,会议跟进或提醒,要约或促销。

会员选择与批准

大规模预览和个性化内容: 快速浏览

内容,
然后发送给个人或群组,快速预览消息。

使个性化变得容易
创建默认的个性化响应。

利用个性化内容的数据为 
一个或多个收件人自定义消息。

始终如一地针对每个接触点定位
根据在线和
离线参与情况制作正确的消息 。

灵活的预览和个性化

了解客户如何与您

互动 :  分析实时互动数据
深入研究单个电子邮件结果,以查看每个成员的详细互动。

衡量和优化绩效 
查看总参与度结果。

识别差距和改进
枢轴逻辑,活动和消息,以满足客户的需求和期望。

跟踪和参与度数据

将活动与活动关联的“连接活动”窗口的屏幕快照。

广告活动讯息
批准流程中的批准和拒绝按钮的屏幕截图。

会员选择与批准
为单个收件人个性化消息的屏幕截图。

灵活的预览和个性化
广告系列参与度跟踪数​​据的屏幕截图。

跟踪和参与度数据

而这仅仅是开始!请查看下一个模块,以了解如何从Salesforce开始使用分布式营销。

定位营销人员和非营销人员以在分布式组织中取得成功

学习目标

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

  • 确定品牌如何实现脱颖而出的参与度。
  • 确定营销人员与非营销人员之间的差距。
  • 解释分布式营销。
  • 按垂直方向识别用例。

分布式品牌带来了脱节的参与

消费者比以往任何时候都期望品牌和公司在其整个体验中实现无缝参与。这就是为什么 67%的营销领导者表示,创建这些关联的客户旅程对其成功至关重要的原因。

但是,对于分布式组织而言,提供关联的消费者体验是一项挑战。如果您曾经走进您最喜欢的熟悉的快餐店或零售店,只是为了找到新菜单,不熟悉的产品或较贵的价格,您就会知道这种体验是多么令人讨厌和反感。 

数字通信也是如此。脱节的客户体验可能导致消费者质疑品牌的合法性,可信赖性和专业性。 

这是一个示例,演示了如何处理错误。

1月1日是新的一年,新的一年。您可以去当地的一家健身房注册新的健身房会员资格,他们将为您提供第一个月的50%折扣。几天后,您会收到该公司的一封电子邮件,其中对您的前三个月提供50%的折扣。第二天当您回到体育馆时,您会向他们展示更好的报价,而他们却无奈地荣幸地从公司团队那里得到了更好的报价。

那不是您的客户对任何品牌期望的体验。无论您与谁互动,您都希望从品牌中获得无缝的体验。

营销人员与非营销人员之间的差距

企业营销团队专注于提供卓越的客户体验。他们知道,这些举措对于差异化品牌和领导市场至关重要。但是,企业营销不能单独做到这一点。在分布式组织中,例如金融服务,直销,加盟商和渠道销售,有很多人与客户互动并帮助塑造整体体验。

一方面,您拥有负责行销品牌行销活动的企业行销团队,该团队拥有建立复杂的客户旅程所需的工具和预算。但是,它通常无法扩展到只有非营销人员才能实现的个人参与的“最后一英里”,因为他们是直接管理消费者关系的人。 

营销人员与非营销人员之间的鸿沟造成了脱节的客户体验。

在鸿沟的另一面,是您的非营销人员:代理商,顾问,汽车经销商,特许经营店主等等。他们拥有与消费者的直接关系,但是他们经常难以获得和创建公司认可的营销材料。他们只是没有所需的营销专业知识,工具或资源,特别是在数字方面。他们所拥有的是直接,真实的关系以及与最终客户的联系。 

市场营销人员与非市场营销人员之间的这种差距导致了体验的脱节,并且消费者感觉好像两家不同的公司正在与他们互动,就像我们在体育馆所讨论的例子一样。

您有多少次看到带有错误徽标或像素化图像的电子邮件?您马上知道您的营销团队未发送或批准的内容。

Salesforce的分布式营销使非营销者可以在客户旅程的早期就获得更多信息和易于使用的工具,而不是完全依靠它们来进行最后的转换。

分布式营销概览

企业市场营销人员通常是客户体验的管理者,但是如果您的大多数客户接触点不在企业市场营销部门之外,该怎么办?本地营销人员,特许经营所有者,合作伙伴,财务顾问,代理商和经销商都需要内容,资源和易于使用的工具来提供无缝的品牌客户体验。 

为了说明分布式营销的工作原理,请看一下IRA市场中的潜在客户如何与金融服务公司及其代理商之一互动。

客户希望从在线到离线参与都能获得无缝的品牌体验。

布鲁克(Brooke)是30多岁的年轻专业人员,她想开始投入更多的钱退休。她从在线研究IRA入手,找到了她认为适合她的公司。她在网站上填写了联系表格,并收到了公司营销团队的后续电子邮件。布鲁克与当地的财务顾问结对,后者通过电话与她联系,讨论她的一些目标和各种投资选择。 

拨打电话后,财务顾问将访问公司营销团队创建的许多预设旅程。然后,他可以选择和个性化布鲁克的正确旅程。

布鲁克收到了高度个性化的品牌信息,并从与之交谈的财务顾问中立即知道了这一信息。这些消息是专业的,但个人的。这使她的顾问更加信任,并导致布鲁克在公司开设了529大学储蓄账户。 

布鲁克从品牌那里获得一致,个性化的体验。

顾问得到了公司市场营销工作的支持,以帮助他从整个业务中获得收入。

不幸的是,许多品牌都没有在分布式组织中提供无缝体验的标记。

按垂直细分分布营销

真正重要的是要了解,从历史上看,分布式组织仅专注于招募代理商,特许经营权所有者,成员,合作伙伴等,并使其能够代表品牌进行销售。然后,他们使用自己的工具放开频道并进行操作,创建自己的内容,并使用自己的资源-通常这意味着频道在孤岛中进行操作。 

如今,公司意识到客户体验对于业务成功至关重要。这些组织需要弄清楚这种经验对最终客户的影响。他们需要确定如何通过为消费者提供品牌相关内容来控制品牌体验。 

让我们按垂直方向看一下用例。

分布式营销
挑战…
分布式营销解决方案…
金融服务
虽然企业营销团队开发和批准品牌传播,但财务顾问,保险代理和经纪人并不总是效仿。这些在一线的人本身不一定是经验丰富的营销人员,他们可以发送与企业品牌和消息传递准则不符的数字通信。
将企业营销与财务顾问,保险代理,银行家或资产管理批发商联系起来符合企业品牌标准提高团队效率了解客户如何接触每个接触点
零售(MLM,直销)和特许经营
许多所有者,卖方和顾问都不了解一致的品牌如何改善客户体验的重要性。其他了解的人可能没有工具,知识或时间来优先考虑。
根据汇总数据和最佳实践创建预建旅程。在企业知识和本地知识之间取得平衡。在所有者,卖方和顾问网络之间建立一致性。
渠道合作伙伴
渠道营销人员可以为其合作伙伴网络建立可靠的客户旅程策略,但他们还需要确保渠道销售合作伙伴也使用该策略。为了扩大营销范围,渠道营销人员需要简化合作伙伴访问内容和广告系列的过程,以提高渠道投资回报率。
通过在整个旅程中与消费者互动来吸引潜在客户。个性化消息,而无需更改公司标识。具有消费者数据的单一视图以了解消费者的需求。

现在,我们已经分解了一些用例,让我们进一步了解Salesforce的分布式营销如何在客户成功平台上工作。