构建自助管理区域的艺术

已发表: 2022-03-11

一旦你启动了你的被动收入网站,你应该庆祝一下,对吧?

不幸的是,生活并不总是应有的样子,你通常不得不推迟庆祝活动来迎合你的客户——除非你有正确的系统。

我管理一个被动收入网站已经六年多了。 对我来说,重点一直是“被动”。 因此,尽可能精简我的业务一直是我的首要任务。

有效地简化在线业务归结为在您的管理面板中具有正确的特性和功能。

在本文中,我将详细介绍管理仪表板的常见问题,并为每个问题提供解决方案。 在本文结束时,您将获得一本强大的最佳实践手册,为您的自动化业务开发高效的管理面板。

考虑用户错误

用户会犯错误,这意味着我们需要一个管理面板来修复这些错误。 这里有几个例子。

您的一个供应商不小心将错误的产品发给了客户。
客户订购了错误的产品或订购了两次相同的产品。
您的乐谱列表网站上的音乐家创建了几乎相同的分类法,这些分类法已经存在于您的数据库中。 例如,您网站的用户被视为一个集体,将电吉他指法分散在三个类别中:“电吉他”、“电吉他”和“电吉他”。 这些确实应该是一个,否则您的前端导航和可用性会受到影响。

优化您的管理面板以解决用户错误:

允许最终用户纠正他们的错误。 例如,亚马逊在其用户的仪表板中有表格,允许客户在其仓库处理订单之前的任何时间点更改订单。 此功能使亚马逊客户能够在不寻求客户支持的情况下纠正错误。
将一部分用户提升为主持人状态。 Reddit 和 StackOverflow 等论坛有一个特殊的用户类别,称为版主。 版主删除垃圾邮件、编辑拼写错误、清除网站上的攻击性或自我宣传信息,并对内容进行正确分类。 在许多情况下,版主是志愿者,他们只是对社区感到忠诚。

考虑用户缺乏经验

不要期望您的用户精通您的业务。 这里有几个例子来说明我的意思。

例如,您的普通用户是一个糟糕的摄影师,但您希望在您的平台上列出同一用户的度假出租物业的精美照片。

也许普通用户是一个糟糕的销售人员,但你想要那些用户通过你的平台销售的小饰品的诱人的、SEO 优化的描述。

或者,也许您经营一家在线销售鞋子的电子商务商店,但您的普通网站访问者不知道如何测量他们的脚,这导致大量客户订购了错误的尺码,然后想稍后退货。

导致用户缺乏经验的管理区域:

创建内联文档。 就如何充分利用他们对您网站的体验向用户提供建议。 例如,您可以写一篇文章,如“5 个可以增加销售额的文案写作技巧”。 通过为用户提供可靠的参考资料,您将大大减少他们对人工帮助的需求。
半自动辅助。 通过连接外部软件 API,您的网站可以做一些事情,例如自动建议元描述的最佳关键字,并鼓励用户将某些关键字合并到他们的副本中。
自己做。 发送您自己的照片或编写您自己的产品说明。 当然,这需要最终用户以某种方式向您组织中的合适人员表明他们已准备好使用此服务。 在这里,您的管理系统需要简化这种沟通以及专家稍后交付的工作。

未决业务决策的会计处理

不幸的是,一切都不能自动化。 在进行判断时,通常需要人工。

例如,当您需要在您的高信任平台上验证您最新的保姆申请人的身份时会发生什么?

或者,当您是唯一可以为平台作者提交的最新数字产品定价的人时会发生什么?

因未决业务决策而为管理员节省时间的示例:

利用现有的用户组。 约会网站 Plenty Of Fish 将可能令人反感的个人资料照片的审核外包给志愿者用户,这些用户花费无数小时检查这些照片,而无需支付任何报酬。 与传统的论坛版主不同,他们不会在内容发布后对其进行审核。 相反,他们会在发布前审查用户提交的照片,从而确保不适当的个人资料照片永远不会被发布。
连接到人类即服务 API。 例如,Facebook 将其管理面板连接到云 API,例如 Amazon Turk(或内部同类产品),并将审核大量外包给更便宜的工人。 就 Facebook 而言,专业版主占其员工总数的三分之一。 确实,与相对未经审核的网站上出现的骇人听闻的言论相比,适度的存在有助于确保 Facebook 的评论相对温和。

会计用户需要与网站的管理沟通

当您经营企业时,会出现问题。 通过有效地提前计划,您可以显着缩短响应时间,并可能首先减少您收到的客户请求的数量。

满足用户通信需求的管理区域:

未雨绸缪。 通过分析过去的客户服务问题,您可以发现常见主题并提前回答。 一个典型的例子是设计一个包含这些问题和答案列表的常见问题解答页面。
快速退款给客户。 针对客户投诉提供快速退款是满足失望客户的一种非常有效的方式。 别担心——这不会导致利润减少; 事实上,它甚至可能导致更多。
为困惑的访客创建论坛。 谷歌因其几乎不存在的客户服务而臭名昭著。 代替人工,谷歌创建了产品论坛,困惑的用户可以从其他用户那里获得帮助。 在极少数情况下,当 Google 员工在其中一个论坛上回答问题时,他们的答案会被保存,很容易被 Google 索引,并可供未来遇到相同问题的用户使用。 虽然这对最终用户来说可能看起来很残酷,但当您考虑到大多数 Google 不受支持的产品都是免费的时,这是非常合理的。
利用预设响应和虚拟助手 (VA)。 查看过去一年的客户服务单,并提取一致提出的问题。 通过为每个人制作模板回复,您将为自己节省大量时间。 在易于访问的 Google Doc 中写下您的答案,或者更好的是,使用电子邮件插件,例如 Canned Responses。 然后聘请 VA 在出现问题时将这些模板转发给客户。

考虑用户改变主意

一位智者曾经说过:“变化是生命中唯一不变的。” 他是对的。 事情会改变的。

也许用户结婚了,他们不再有相同的姓氏。

或者,可能是订阅了您的每月送货箱服务的客户搬家并需要更新他们的地址。

这些只是不可避免的变化的两个例子,您必须提前计划。

由于用户的情况/思想变化而为管理员节省时间的示例:

您的用户需要编辑能力。 如果您不在用户仪表板中提供编辑功能,那么迟早您的客户支持团队 - 以及您的数据库程序员 - 将不得不手动进行更改,就像上面提到的那样。
不要冻结编辑功能。 对于有评论的论坛或网站,您必须考虑冻结帖子以进行删除的政策,或者放置一个按钮,请求对正常政策进行例外处理。 此解决方案通过减少支持团队和最终用户之间来回消息的数量来节省时间。

归因于用户担忧的行动

与实体店不同,在线业务缺乏从真人那里购买的保证。

想想看。 当你在百思买买东西时,你感觉如何? 可能很有信心,因为您知道明天早上,如果您返回投诉或退款,百思买仍然会在那里。

由于显而易见的原因,这种确定性的感觉在网上消失了。 人们很容易忽略在线交流,这让潜在客户想知道是否有人会回复他们。 只有当网站是一些没有品牌资产的不知名的初创公司时,这种怀疑的感觉才会增加。

管理员因用户担心而节省时间的示例:

先发制人地解决问题。 一旦有人向您购买商品,请发送一两封电子邮件以增加信心。 例如,亚马逊以及几乎所有电子商务企业,都会在订单发货后立即发送电子邮件。 其他人还提供一系列电子邮件,在产品交付之前更新用户。

解决潜在的歧义

推出一年后,由于收入可观,您现在将网站的管理委派给专门的团队成员。

然而,有一天,这位管理员意外地生病了,现在需要恢复他们的管理工作,而没有任何关于该管理员上周所做的事情的简报。

根据管理面板中的信息,您需要知道管理员在哪里停止 - 他们处理了哪些任务以及他们未完成的任务。

这并不总是可能的,因为设计不良的状态机不能可靠地区分未见(或未处理)和已考虑(或已处理)。 例如,想象一个管理状态机如下:

发生什么了状态变化
艺术家申请在您的艺术品销售平台上出售他们的艺术品艺术家条目出现在管理面板中,起始状态为“已应用”
您的管理团队中的某个人接受了该艺术家,允许他们出售他们的艺术作品管理员将状态更改为“已接受”
你的团队拒绝了这个艺术家,因为它知道,它肯定永远不会想要那个艺术家管理员将状态更改为“拒绝”
您的团队对这位艺术家持观望态度,希望推迟决定没做什么


从系统管理员的角度来看,这个管理流程的问题在于,管理面板对看不见的新艺术家已经看过/考虑但被推迟但没有被彻底拒绝的艺术家都说“接受”。

考虑(或处理)该艺术家仅存在于缺席管理员的脑海中的事实,并且没有任何方式将潜在客户标记为“推迟”,此信息丢失,因此接管工作的人必须重复工作已经完成。

一个好的活动提要可以解决这种类型的歧义。

最大化透明度

许多管理小组行动在幕后执行一系列步骤。

例如,在按下“接受申请人”按钮后,相关申请人会收到一封接受电子邮件,他们的帐户会获得 100 美元的开卡奖金,并且他们在数据库中的状态会从“已申请”更改为“已接受”。 在软件工程术语中,这些都是副作用

鉴于您(程序员)开发了这些功能,您可能已经意识到点击“接受申请人”的后果。

至少,您可以打开一个源代码编辑器或您最喜欢的 IDE,然后参考代码以获得答案。

但是,您的客户服务代表没有这种奢侈。 所以他们很可能不确定当他们按下按钮时会发生什么。 此外,他们可能会想知道申请人是否会被告知他们已被接受,或者他们是否应该在按下按钮后发送手动电子邮件以提醒申请人。

这种不确定性减慢了整个过程,因为现在,管理员需要询问管理和/或工程问题并等待他们的答复。 更不用说这很容易导致重复工作并将错误引入原本平稳运行的业务。

理想情况下,在这个例子中,带有“接受申请人”按钮的管理页面应该有一个内嵌的描述性段落,准确地解释当他们按下按钮时会发生什么。

或者或另外,在按下按钮后可能会出现一条消息,解释接下来会发生什么。

到目前为止,我们已经看到了快乐的情况,即当一切正常运行时发生的后台操作。 更棘手的情况是在出现问题后处理不透明性。 哪些副作用已完成,哪些未完成? 在一个设计完美的系统中,如果失败,“接受申请人”按钮会通知管理员(以及进行清理的技术团队)接受电子邮件已送达,但 100 美元的注册奖金并未发送到该用户的 Paypal 帐户。 该信息使公司能够纠正部分交易。 至于实现细节,这种反馈可以通过跟踪每一个微小步骤的详细状态机来完成,或者通过将管理操作包装在服务对象中,这些服务对象的返回值列出了成功运行的命令和未能运行的命令。

以我的经验,信息呈现给管理员的方式与呈现给最终用户的方式之间的差距可能令人沮丧地不透明。

有时,回复客户电子邮件或错误报告需要您的管理团队了解客户登录仪表板的外观、特定的自动电子邮件内容,或者面向用户的仪表板所说的欠用户的版税。

访问此信息有助于您的团队在用户遇到问题时了解问题。

实现此功能的一种方法是构建“以用户身份查看”管理功能。

这将代替创建单独的管理屏幕来重新实现已为普通用户提供的功能,从而为您提供重用大量现有代码的额外奖励。

至于自动电子邮件,请考虑构建一个轻量级的管理区域电子邮件渲染器,以便您的员工可以阅读将要或已经发送给用户的消息。

系统外的事件是一种责任

可管理的管理是独立的。

它被装在一个封闭的系统中,而不是分散的碎片中。

例如,如果有关您提供的退款的信息分散在 Excel 电子表格、桌子上的一些黄色便利贴以及发给您会计师的电子邮件中,那么您的手上就会一团糟。

正确的解决方案是在您的管理仪表板的数据库表中列出完整的退款列表。 当您拥有一个单一的真理神谕时,您可以放心,您制作的任何报告都是权威且值得信赖的。

虽然这看起来很明显,但在管理企业的过程中经常被忽视。

我会知道,因为它发生在我身上。

当我最初设计我的电子商务订购系统管理面板时,我只准备它来记录销售额并且只记录销售额。

推出几个月后,我意识到所有我没有考虑到的额外交易,例如退款、拒付、免费赠品、折扣和付款调整。

因为我在最初的设计中没有预见到这些交易,所以我的管理面板中没有用于履行或报告它们的代码。

每当我必须进行退款时,我通常都非常耗时,以至于我以当时最简单的方式进行 - 通常通过 Paypal 的 Web 界面(跳过我网站的订单数据库) - 但有时通过第三方 iPhone与 Paypal 的 API 通信的应用程序。

由于我的行动和数据分散,我的所有会计都在各种外部来源中随意报告。 更糟糕的是,我的生产数据库记录与我的完整订单历史记录并不一致。

不可避免地,问题出现了。 收入和佣金的管理报告并未反映经济现实。 我的一些作者收到了带有错误财务报告的财务报告。 最糟糕的是,我高估了我的税务报告,导致缴纳了超额税款。

所有这一切都是因为我没有打折所有退款。

通过将订单和会计信息部分存储在我的主要软件系统内部和部分存储在我的主要软件系统之外,我首先剥夺了自己软件的许多优势——它的准确性和精确性。 我不再信任它,这意味着我不能再自动化它。

针对这些问题,我开始厌恶将任何公司数据保留在我的核心软件系统之外。

即使最初将所有必要的信息集成到核心中的成本很高,但从长远来看,其收益远远超过半成品黑客的成本。

也就是说,尽管我的最佳意图是自动化,但有时它就是不可能发生的。

许多软件公司都有自动销售电子邮件,将用户逐英寸传送到他们将激活帐户或进行购买的点——理想情况下,所有这些都不需要任何人工帮助。

当潜在客户在其中一项滴灌活动中途向您的员工发送特殊要求时,就会出现并发症。

假设领导回应说他们将休假两周,但请在之后与他们联系以达成交易。

如果我们的系统被编程为仅在五天后发送一封自动提醒电子邮件,那么我们就忽略了领导的意愿,并且可能通过给人一种咄咄逼人、不专心和机器人的印象而使关系恶化。

那么在这种情况下该怎么办呢?

一种答案是半自动的。

管理界面可能会询问您应该发送哪些电子邮件,您可以勾选一个框以根据需要取消安排它们。

诚然,这可能是工程上的矫枉过正,所以有时唯一现实的选择是接受自动电子邮件有时会出错。

显示最相关的管理员信息和操作

当客户联系您的业务时,通常与订单、帐户或产品有关。

凭借存储的数据、登录 cookie 和来自跟踪层的数据,您的应用程序可能对其客户及其交互历史了解很多。

您可以通过算法提取这些信息源并提取相关数据位以促进管理员的响应,从而节省大量响应客户服务请求的时间。

例如,联系表单消息在转换为发送到收件箱的电子邮件之前,可能会自动附加一个信息框,其中包括订单的付款状态、运输状态、行项目等。

此外,这些强化电子邮件还可以包含指向管理区域最常用(和相关)部分的便捷链接,例如退款仪表板或运输跟踪器。

预测、缓解和从管理员错误中恢复

和其他人一样,管理员也是人,偶尔也会犯错。

鉴于他们对您的数据拥有控制权,他们的错误可能会造成无法弥补的损失。

为了防止灾难,这里有一些措施:

自动安排一致的备份:这是所有可想象的尽职调查措施中最粗略、最琐碎但最重要的。 但是,即使您有良好的备份,如果您需要修改 SQL 转储,您也已经陷入了痛苦的境地。 因此,计划的备份不应该是您唯一的恢复来源。
旨在恐吓用户的按钮:对于具有潜在不可挽回后果的操作,将其涂成鲜红色,在其上贴上放射性图标,并用标题标记它们,例如“警告:硬删除是核选项:如果不确定,请勿使用结果。” (显然,您应该在此按钮旁边显示这些后果。)
使用 JavaScript 确认弹出窗口:有时管理员的手指滑落,而不是按下“返回”按钮,他们不小心按下了位于下方两个像素的“永久删除所有内容”按钮。 倒霉的管理员可能对这次事故完全没有过错,最终归咎于笨拙的 UI 设计或渲染 CSS 时令人讨厌的浏览器怪癖。 如果你认为这是一个荒谬且过于戏剧化的例子,那你就错了。 金融服务业因他们所谓的胖手指错误而损失了数百万美元。 因此,他们设计软件来防止这些类型的错误。 一个非常简单的解决方法是“您确定要删除所有订单历史记录吗?” Javascript 弹出窗口。 请注意我如何在 Javascript 确认中包含特定于实体的数据——“所有订单历史记录”? 这比仅仅问“你确定吗?”要好。 如果管理员打算删除订单历史记录中的单个条目,但不小心点击了删除所有订单历史记录的按钮,在 Javascript 确认弹出窗口中明确说明这一点有助于避免“OMG”时刻,当管理员意识到 [s]he做错了。
利用数据版本控制和修订控制:在标准 SQL 数据库技术中,对数据的编辑会覆盖旧值。 当编辑错误时,这是​​有问题的,当原始数据难以找到或再次创建时,双重问题 - 例如需要花费数小时编写的长描述字段,或者再次询问会令人尴尬的客户信息。 修订控制库(如 Wikipedia 中的)是解决这些情况的首选方法。 它们使您可以根据需要轻松存储和恢复旧版本的数据。 这些库通常通过跟踪数据库中的更改并保留以前值的时间戳版本来工作。 不幸的是,修订控制库通常无法处理大的二进制文件,例如照片和 pdf。 因此,对于这些数据类型,您可以保留旧版本,使用类似 Amazon 的 S3 版本控制。
考虑实施禁止删除策略:这完全是为了防止某些表中的记录被删除。 这背后的原因是:鉴于现代数据存储价格,删除旧记录几乎没有什么好处,而在数据完整性受损、报告不完整或记录保存不匹配方面会损失很多。 通过在每个主要表上放置一个“deleted_at”日期列来实施不删除策略。 无论您以前在哪里有删除记录的代码,都可以替换为将该记录的“deleted_at”列设置为当前时间的代码。 在整个代码的其他地方,您可以根据业务需要选择性地显示或隐藏“已删除”记录。 例如,“已删除”的数字下载将继续出现在管理区域中,对于在“deleted_at”日期之前购买该特定商品的过去客户,以及“所有时间”的销售报告中。 但是,前端商店不应再向潜在客户展示该数字产品。

期待意外

虽然我为上述一系列问题提供了多种解决方案,但这些绝不是一成不变的规则,而是一本可供学习和参考的强大剧本。

请记住,最终目标是优化您的管理面板以简化您的业务。 从长远来看,留出一些时间来调整您的管理区域应该会提高盈利能力,使其成为一项值得的投资。

与生活中的任何事情一样,规则总会有例外,因此在优化管理面板时请务必使用良好的判断力。 然后你终于可以庆祝了。