O
Outro
首页功能定价文档联系
登录注册
文档
捕获并采取行动,了解客户取消的真实原因。
仍有疑问?
我们会回复每封邮件,通常在一天内。
联系支持
文档

Outro 用户指南

完整的截图驱动演练,教您如何使用 Outro - - 从构建您的品牌取消页面到根据收集的退出访谈采取行动。

欢迎使用 Outro

Outro 将您的取消流程转变为语音退出访谈。您构建一个品牌取消页面,将“取消订阅”按钮指向它,每个流失的客户在完成取消之前都会用自己的话回答一个问题。

每个语音回答都会自动转录并翻译成您的语言,进行情感评分,并标记主题。所有内容都会进入您的仪表板,并汇总成每周摘要 - - 这样您终于知道人们离开的原因,而不仅仅是他们离开了。

您将学习到的内容

  • 如何在几次点击中创建一个品牌取消页面。
  • 如何设置您的徽标、颜色、问题提示和按钮文案。
  • 如何添加保留优惠,赢回一些取消的客户。
  • 如何嵌入页面或将取消按钮指向它并重定向客户返回。
  • 如何连接 Stripe 和 Lemon Squeezy,以便每次取消都带有计划和 MRR 风险。
  • 如何阅读回复并跟踪您在收入恢复中节省与损失的 MRR。
  • AI 摘要和每周取消摘要如何提炼客户的反馈。
  • 如何管理您的团队、计划和账单。

快速开始 - - 5 分钟上线

如果您更喜欢快速浏览,这里是从注册到收集真实退出访谈的最短路径。

1

创建账户

在登录页面点击注册,输入您的电子邮件,设置密码,并通过我们发送的电子邮件确认。每个账户都从 14 天试用开始。

2

创建您的取消页面

从仪表板,进入取消页面 → 新建页面,选择一个短链接(您的页面位于outro.so/c/your-slug),并写下您希望流失客户回答的一个问题。

3

品牌化(可选)

添加您的徽标、品牌颜色、页面标题和按钮文案。您可以随时返回并调整 - - 实时页面会立即更新。

4

连接您的账单提供商(可选)

在账户设置 → 集成中,连接 Stripe 或 Lemon Squeezy。Outro 然后将客户的计划、订阅年龄和 MRR 风险附加到每次取消上 - - 这样您可以用美元而不仅仅是数量来衡量流失。

5

连接您的取消流程

可以通过复制粘贴代码片段将页面嵌入到您的应用中,或者将现有的“取消订阅”按钮指向您的 Outro 链接,并设置一个允许的返回域,以便客户返回完成取消。

6

查看回复滚动进来

每个回答都会出现在回复选项卡中,自动转录和评分。收入恢复跟踪您节省与损失的 MRR,每周一会有取消摘要发送到您的收件箱。

Outro 仪表板主页
您的仪表板 - - 一切的起点。

创建取消页面

取消页面是您的客户点击取消时看到的品牌屏幕。您可以根据计划允许创建多个页面 - - 例如,每个产品或计划层级一个不同的页面,每个页面都有自己的问题。

1. 打开取消页面

从侧边栏,点击取消页面。您将看到您拥有的每个页面,每个页面都有其公共 URL、启用/禁用状态和快速操作。

取消页面列表
取消页面 - - 点击新建页面以创建一个。

2. 填写基本信息

编辑器有几个字段。只有短链接是必需的 - - 合理的默认值涵盖其余部分:

  • 短链接 - - 公共 URL 是 outro.so/c/{slug}。小写字母、数字和破折号。
  • 页面标题 - - 例如“很遗憾看到您离开”。
  • 问题提示 - - 客户通过语音回答的单个问题,例如“您取消的主要原因是什么?”
  • 跳过/继续按钮文本 - - 跳过和继续取消按钮上的文案。
取消页面编辑器
编辑器 - - 短链接、标题、问题提示、品牌化和集成链接。
提示
保持问题开放且单一。一个清晰的问题(“是什么几乎让您留下?”)比一堆复选框获得更丰富的语音回答。

页面品牌化

页面应该看起来像你的产品,而不是我们的。外观标签页控制外观 - - 选择布局(整页、分栏或卡片),设置背景、品牌颜色、卡片样式和你的徽标 - - 所做的更改会立即显示在预览中。

徽标和品牌颜色

粘贴一个托管的徽标 URL以在页面顶部显示您的标志,并使用颜色选择器选择一个品牌颜色(或粘贴一个十六进制值)。颜色驱动强调条、按钮和录音控制。

托管的取消页面
您的客户在 outro.so/c/your-slug 看到的内容 - - 您的徽标,您的颜色,一个问题。

实时切换

页面上线切换控制公共 URL 是否响应。关闭它以在不删除页面(及其回复)的情况下将其下线。

保留优惠

取消并不总是最终的。在客户回答您的问题后,Outro 可以显示一个保留优惠 - - 一个最后的留住激励。有些人会接受;其余的则正常取消。无论如何,您都会学到一些东西。

在页面编辑器中打开优惠选项卡并启用启用保留优惠。流程很简单:他们提供反馈 → 您显示优惠 → 他们留下或取消。

保留优惠编辑器
优惠选项卡 - - 启用优惠,编辑屏幕文案,并添加一个或多个优惠。

优惠类型

  • 折扣 - - 一个优惠码(例如“3 个月 50% 折扣”),客户在结账时复制并应用,可选账单链接。
  • 暂停订阅 - - 将他们发送到您的应用中的暂停页面,而不是直接取消。
  • 降级计划 - - 链接到您的计划页面,以便他们可以移动到更便宜的层级。
  • 联系支持 - - 通过电子邮件或支持链接将可挽救的客户引导至人工。

根据原因定位优惠

每个优惠可以针对特定的取消原因,有两种匹配方式:

  • 根据他们选择的 - - 匹配访客在您的表单中选择的答案(例如“太贵”单选选项)。
  • 根据他们说的 - - 当访客录制语音回答并启用优惠时,Outro 会转录并使用 AI 检测真实的流失原因(太贵、缺少功能、不使用、太难使用、技术问题、切换),然后显示与他们实际说的匹配的优惠。这是在内联发生的 - - 访客在分类时会看到一个简短的“寻找最佳选项”暂停。

Outro 显示第一个匹配任一信号的优惠;如果没有匹配,则显示没有选择原因的第一个优惠(您的兜底)。因此,即使客户从未触碰表单,说价格太高的客户也会获得您的折扣,而“缺少功能”则会引导至支持。您可以在同一优惠上混合表单答案和语音检测原因 - - Outro 将两者映射在一起,因此针对表单标签设置的优惠仍然匹配等效的口头原因。

记录的内容
每个优惠视图都会记录为接受、拒绝或未显示,检测到的流失原因会保存在回复中。该结果会反馈到收入恢复中的 MRR 节省数字和每周摘要中。

连接您的取消流程

有两种方法可以将 Outro 放在取消客户面前。选择适合您应用的方式:

  • 嵌入它 - - 在现有取消屏幕中放入一个 iframe 和几行脚本。页面会自动调整大小,并在客户接受优惠时通知您的应用。
  • 链接到它 - - 将您的“取消订阅”按钮指向您的托管 Outro URL,Outro 会重定向客户返回完成取消。

选项 A - - 嵌入页面

从编辑器的 Integration 标签页(Inline embed 代码块)复制代码片段,并粘贴到你的取消流程所在的位置。它会监听两个消息:resize 事件(让 iframe 自适应高度)和 offer_accepted 事件(以便在你的计费系统中应用挽留优惠)。

将user_id(和可选的external_ref)附加到 iframe URL,就像您在链接上所做的一样 - - 嵌入的取消与账单客户匹配的方式相同,因此快照的计划和 MRR 是准确的。

<iframe src="https://outro.so/c/your-slug?embed=1&user_id=USER_ID&external_ref=REF" id="outro-embed" style="border:0;width:100%;display:block;min-height:320px" title="Cancellation"></iframe> <script> window.addEventListener('message', function (e) { if (e.origin !== 'https://outro.so') return; var d = e.data; if (!d || d.type !== 'outro-embed') return; if (d.kind === 'resize') { var f = document.getElementById('outro-embed'); if (f) f.style.height = d.height + 'px'; } if (d.kind === 'offer_accepted') { // d.offer = pause|downgrade|discount|contact, d.responseId // Apply the offer in your billing system here. if (d.offerUrl) window.location.href = d.offerUrl; } }); </script>

选项 B - - 集成链接

编辑器生成一个您可以复制的链接。它看起来像这样:

outro.so/c/your-slug?return_url=https://app.acme.com/cancel/done&user_id=USER_ID&external_ref=REF
  • return_url - - 客户回答后要发送的地方。必须在您允许的返回域上。
  • user_id - - 您自己的客户标识符。返回时您可以将回复与账户匹配。
  • external_ref - - 您想附加的任何额外上下文(计划、MRR、注册日期)。与回复一起存储。

重定向返回

在客户录制回答(或点击跳过/继续按钮)后,Outro 会将他们发送到您的return_url,并附加两个查询参数,以便您的应用可以完成取消:

https://app.acme.com/cancel/done?outro_response_id=...&user_id=USER_ID

允许的返回域

在编辑器中设置允许的返回域(例如acme.com)。Outro 只会重定向回该主机或其子域。

注意
如果您的客户没有被重定向回来,请先检查允许的域 - - 任何其他主机上的return_url都会被设计拒绝,因此没有人可以劫持重定向。

在您的账单系统中应用优惠

有两种方式可以应用已接受的优惠。自动 - 在设置中连接您的计费提供商(Stripe或Lemon Squeezy),并在优惠上开启“自动应用”;Outro为您应用折扣、暂停或降级。手动 - Outro仅向您的应用发出信号,您可以使用下面的复制粘贴代码自行保存。自动需要具有写入权限的API密钥;手动则不需要。

让Outro为您应用
在设置 → 集成中连接计费,然后在折扣、暂停或降级优惠上启用自动应用。当客户接受时,Outro会直接在您的计费中应用它 - 无需粘合代码,并为您创建折扣券。

我需要什么密钥?

  • Stripe - 一个只读受限密钥可以提供洞察(面临风险的 MRR)。要自动应用优惠,该密钥需要订阅和优惠券的写入权限,以及产品和价格的读取权限(用于降级)。秘密密钥可以使用,但受限密钥更安全。
  • Lemon Squeezy - API 密钥是全访问的,因此同一个密钥可以提供洞察并自动应用暂停和降级优惠。折扣不能通过 Lemon Squeezy API 应用于现有订阅,因此折扣优惠会向客户显示优惠券代码,而不是自动应用。

两个信号

  • 嵌入页面 - - 一个offer_accepted postMessage,offer设置为discount、pause、downgrade或contact,加上responseId。
  • 托管页面 - - 重定向回您的应用时携带outro_offer=<type>,以及outro_response_id和您的user_id。

无论哪种方式,将信号路由到一个服务器端端点并在那里完成:

// Your cancel/done page (or the embed's message handler) calls this: // POST /api/retention/fulfill { userId, offer, responseId } app.post('/api/retention/fulfill', async (req, res) => { const { userId, offer, responseId } = req.body const customer = await db.customers.findByExternalId(userId) switch (offer) { case 'discount': await applyDiscount(customer); break case 'pause': await pauseSubscription(customer); break case 'downgrade': await downgradePlan(customer); break case 'contact': await notifySupport(customer, responseId); break } res.json({ ok: true }) })
服务器端验证
outro_offer参数和 postMessage 来自浏览器 - - 任何人都可以输入查询字符串。在完成之前,请检查客户在您的记录中确实处于取消中,并限制兑换次数(例如,每年每位客户一个保留折扣)。

Stripe 配方

使用官方stripe Node 库和客户的订阅 ID:

// Discount - e.g. a "40% off for 3 months" coupon you created in Stripe async function applyDiscount(customer) { await stripe.subscriptions.update(customer.stripeSubscriptionId, { discounts: [{ coupon: 'SAVE40_3MO' }], }) } // Pause - stop charging, auto-resume in 2 months async function pauseSubscription(customer) { const resumesAt = Math.floor(Date.now() / 1000) + 60 * 60 * 24 * 60 await stripe.subscriptions.update(customer.stripeSubscriptionId, { pause_collection: { behavior: 'void', resumes_at: resumesAt }, }) } // Downgrade - move the subscription item to a cheaper price async function downgradePlan(customer) { const sub = await stripe.subscriptions.retrieve(customer.stripeSubscriptionId) await stripe.subscriptions.update(sub.id, { items: [{ id: sub.items.data[0].id, price: 'price_starter_monthly' }], proration_behavior: 'create_prorations', }) }

Lemon Squeezy 配方

Lemon Squeezy 使用简单的 REST(PATCH /v1/subscriptions/:id,使用您的 API 密钥)。一个小问题:LS 不能将折扣码附加到活动订阅上 - - 对于“折扣”优惠,将客户切换到同一计划的折扣变体。

const LS = 'https://api.lemonsqueezy.com/v1' const headers = { Authorization: `Bearer ${process.env.LEMONSQUEEZY_API_KEY}`, 'Content-Type': 'application/vnd.api+json', Accept: 'application/vnd.api+json', } const patchSub = (id, attributes) => fetch(`${LS}/subscriptions/${id}`, { method: 'PATCH', headers, body: JSON.stringify({ data: { type: 'subscriptions', id: String(id), attributes } }), }) // "Discount" - move them to a discounted variant of their plan async function applyDiscount(customer) { await patchSub(customer.lsSubscriptionId, { variant_id: DISCOUNTED_VARIANT_ID }) } // Pause - stop charging, auto-resume in 2 months async function pauseSubscription(customer) { const resumesAt = new Date(Date.now() + 1000 * 60 * 60 * 24 * 60).toISOString() await patchSub(customer.lsSubscriptionId, { pause: { mode: 'void', resumes_at: resumesAt }, }) } // Downgrade - switch to the cheaper plan's variant async function downgradePlan(customer) { await patchSub(customer.lsSubscriptionId, { variant_id: STARTER_VARIANT_ID }) }
完全没有代码?
每种优惠类型在编辑器中还可以选择一个优惠 URL - - 将其指向您的账单门户的暂停页面、计划页面或预填的折扣结账。Outro 会将接受的客户直接发送到那里,因此在您编写任何履行代码之前,自助流程就可以工作。

账单集成

连接您的支付提供商将 Outro 从“有多少人取消”转变为“有多少 MRR 正在流失”。一旦连接,每次取消都会与付费客户匹配,并标记他们的计划、订阅年龄和每月收入风险。

进入账户设置 → 集成。Outro 支持Stripe和Lemon Squeezy,您可以为每个提供商添加多个账户 - - 如果您经营多个商店或实体,这很方便。

集成选项卡
账户设置 → 集成 - - 连接 Stripe 和 Lemon Squeezy,每个可以有一个或多个账户。

管理连接

  • 添加连接 - - 粘贴提供商 API 密钥。Outro 会拉取您的客户(电子邮件、计划、MRR、订阅开始)并缓存以进行匹配。
  • 立即同步 - - 按需刷新缓存的客户列表。Outro 还会按每日计划重新同步。
  • 断开连接 - - 删除该连接的缓存客户。过去的取消快照保持不变 - - 您已经记录的数字不会改变。

匹配如何工作

当取消发生时,Outro 会通过您传入的user_id/external_ref或电子邮件将其与同步的客户匹配。匹配会作为响应上的快照捕获,因此 MRR 数字反映了客户在取消时的价值。

提示
在您的取消链接或嵌入中传递user_id以获得最可靠的匹配 - - 它是精确的,而电子邮件匹配则依赖于地址的一致性。

查看回复

每个回答都会显示在回复视图中。语音回答会自动转录和翻译,因此您可以像文本一样浏览它们 - - 每个回答在到达时都会被评分和标记。

回复列表
回复列表 - - 情感、语言和主题一目了然。点击任意行查看完整回答。

每个回复包含的内容

  • 录音和转录:原始音频(可播放)、原始语言转录和翻译并排显示。
  • 情感和主题:正面/中立/负面,以及自动检测的主题,如定价、竞争对手或缺少功能。
  • 上下文:提交时间、您传入的user_id和external_ref,以及语言/设备详细信息。

收入恢复

一旦连接了账单提供商,收入恢复页面就会为您的流失赋予一个美元价值。它回答了对业务真正重要的问题:我们恢复了多少 MRR,损失了多少?

收入恢复仪表板
收入恢复 - - MRR 风险、恢复、待定和损失,按计划和任期细分。

四个数字

  • MRR 风险 - - 期间内每个匹配取消的总月收入。
  • MRR 恢复 - - 来自接受优惠并在您的账单提供商中确认仍然订阅的客户的收入。这是经过验证的保留,而不仅仅是点击优惠。
  • 待验证 - - 最近接受优惠的客户;只有在宽限期过后并确认他们仍在支付时才计为恢复。
  • MRR 损失 - - 没有接受优惠的客户,或接受了但仍然流失的客户。

恢复是根据您的账单提供商确认的:Outro 会重新检查每个接受客户的订阅状态(从 Stripe 或 Lemon Squeezy 同步,至少每天刷新一次)。只有在 14 天宽限期后并且订阅仍然有效时,保存才计为恢复 - - 因此该数字反映了实际留下的客户,而不仅仅是点击优惠按钮。标题数字下方,风险 MRR 按计划和任期(0-30 天、31-90 天、91-180 天、180 天以上)细分,因此您可以看到您是失去新试用还是长期客户。标题行告诉您有多少取消匹配了付费客户 - - 未匹配的(没有账单数据)不带 MRR 数字。

使用日期范围过滤器(7 天/30 天/90 天/全部)来限定视图,并使用导出 CSV将匹配的取消原始数据导入电子表格。

客户取消的原因

客户取消的原因面板按 AI 检测的流失原因分解期间 - - 太贵、缺少功能、不使用、太难使用、技术问题、切换 - - 每个都有计数和份额。它仅根据口头(或书面)回答工作,因此从您的第一个回复开始就很有用,在连接任何账单提供商之前。

当大量回答落在其他/未分类时,面板会标记它 - - 这通常意味着客户提到的原因尚未被 AI 分类涵盖,这些回复值得手动倾听。

分析

分析页面显示您在所有取消页面上收集了多少反馈 - - 响应量随时间变化、情感混合以及跳过与回答率。

分析仪表板
分析 - - 响应量和情感趋势随时间变化。

用它来捕捉变化 - - 价格变动后的负面情感激增,或新主题攀升榜单。

AI 摘要与每周摘要

手动阅读每个退出访谈并不现实。Outro 的 AI 会将您的原始回复生成可读的摘要:人们离开的主要原因、代表性引用、情感分解和建议的下一步行动。

AI 摘要报告
AI 摘要 - - 主要流失原因、主题和代表性引用。

每周取消摘要

每周一上午 9 点,Outro 会向您发送一份关于过去 7 天流失的单屏回顾。它专为您的团队在周一早上实际提出的问题而设计:谁离开了,为什么,以及这对我们造成了什么损失。

  • 本周取消 - - 数量,以及与前一周的变化。
  • MRR 风险、保存和损失 - - 与收入恢复相同的收入图,汇总为一周。
  • 主要取消原因 - - 客户最常给出的几个答案。
  • 保留优惠结果 - - 接受、拒绝或未显示的优惠数量。

您可以随时从账户设置 → 通知 → 预览示例摘要中预览布局,并在不需要时在那里关闭电子邮件。账户在一周内没有取消的会被跳过 - - 没有空邮件。

按需 AI 摘要
除了每周电子邮件之外,您可以随时对您的回复运行一个AI 摘要 - - 主要流失原因、代表性引用和情感分解,以您的工作区语言编写。在您发布值得衡量的更改后非常方便。

账户与团队

从账户设置(侧边栏底部)管理您的组织、邀请团队成员和更改密码。

账户设置
账户设置 - - 常规、用户、集成、通知、账单和安全。

选项卡

  • 常规 - - 更改账户名称和描述。
  • 用户 - - 通过电子邮件邀请团队成员并设置他们的角色(所有者、管理员、成员)。
  • 集成 - - 连接 Stripe 和 Lemon Squeezy(见上面的账单集成)。
  • 通知 - - 切换每周摘要并预览示例。
  • 账单 - - 查看您的计划、升级或管理订阅。
  • 安全 - - 更改密码,退出其他会话。

账单与计划

Outro 提供一个免费层和三个付费层 - - Starter、Pro 和 Scale。每个付费计划可以按月或按年计费,按年计费相当于大约两个月免费。每个计划的回复都是无限的 - - 计划在页面、语音分钟、AI 报告和席位上有所不同。

账单选项卡
账单 - - 比较和切换计划;您的当前计划和使用情况在上方。

每个计划包括的内容

  • 免费 - - $0 - - 1 个取消页面,每月 10 分钟语音和 5 份 AI 报告。无需承诺即可尝试完整流程。
  • Starter - - $29/月($290/年) - - 1 个取消页面,每月 100 分钟语音和 30 份 AI 报告,3 个团队席位,语音和文本退出访谈,保留优惠,每周摘要,自动翻译。
  • Pro - 每月 $79(每年 $790)- 最多 5 个取消页面、每月 300 分钟语音和 100 份 AI 报告、10 个团队席位、高级情感分析(主题与趋势)、自定义品牌、Slack 通知、数据导出、优先支持。
  • Scale - - $199/月($1,990/年) - - 无限取消页面,每月 1,000 分钟语音和 300 份 AI 报告,25 个团队席位,包含 Pro 的所有内容。
更改计划
升级立即生效(按比例)。降级在当前计费周期结束时生效。没有计划会锁定您 - - 可以随时从账单选项卡取消。

常见问题

安装 Outro 需要工程师帮助吗?

很少。最简单的设置是一行 - - 将现有的“取消订阅”按钮指向您的 Outro 链接并处理重定向返回。如果您更喜欢将客户留在您的应用中,请粘贴嵌入代码片段。连接账单提供商只需在设置中输入 API 密钥。

语音转录支持哪些语言?

客户可以用 50 多种语言讲话。每个回答都会以原始语言转录并翻译成您阅读的语言,因此您的团队始终使用一种语言工作。

我的客户知道他们的语音是由 AI 转录的吗?

是的。每个语音录音机都会显示一行简短的“您的语音将由 AI 转录”并附有隐私政策链接,翻译成 7 种支持的语言。这是一个内置的合规行,无法配置。您仍然是您收集的反馈的数据控制者;Outro 代表您处理它。

如果客户不想录音怎么办?

他们点击跳过按钮,直接返回完成取消。Outro 从不阻止或延迟取消 - - 回答始终是可选的。

当我删除页面时,我的数据会怎样?

您已经收集的回复会保留 - - 删除页面不会销毁其退出访谈。您也可以将页面切换为离线,而不是删除它。

我可以不付费试用吗?

可以。免费计划允许您运行一个真实的取消页面,并且回复无限(每月 10 分钟语音) - - 无需信用卡。当您需要更多语音分钟、页面或席位时,升级到 Starter、Pro 或 Scale。

准备好了解客户离开的原因了吗?

如果您还没有注册,整个过程大约需要 30 秒。

开始您的免费试用联系我们