Outro 用户指南
完整的截图驱动演练,教您如何使用 Outro - - 从构建您的品牌取消页面到根据收集的退出访谈采取行动。
欢迎使用 Outro
Outro 将您的取消流程转变为语音退出访谈。您构建一个品牌取消页面,将“取消订阅”按钮指向它,每个流失的客户在完成取消之前都会用自己的话回答一个问题。
每个语音回答都会自动转录并翻译成您的语言,进行情感评分,并标记主题。所有内容都会进入您的仪表板,并汇总成每周摘要 - - 这样您终于知道人们离开的原因,而不仅仅是他们离开了。
您将学习到的内容
- 如何在几次点击中创建一个品牌取消页面。
- 如何设置您的徽标、颜色、问题提示和按钮文案。
- 如何添加保留优惠,赢回一些取消的客户。
- 如何嵌入页面或将取消按钮指向它并重定向客户返回。
- 如何连接 Stripe 和 Lemon Squeezy,以便每次取消都带有计划和 MRR 风险。
- 如何阅读回复并跟踪您在收入恢复中节省与损失的 MRR。
- AI 摘要和每周取消摘要如何提炼客户的反馈。
- 如何管理您的团队、计划和账单。
快速开始 - - 5 分钟上线
如果您更喜欢快速浏览,这里是从注册到收集真实退出访谈的最短路径。
创建账户
在登录页面点击注册,输入您的电子邮件,设置密码,并通过我们发送的电子邮件确认。每个账户都从 14 天试用开始。
创建您的取消页面
从仪表板,进入取消页面 → 新建页面,选择一个短链接(您的页面位于outro.so/c/your-slug),并写下您希望流失客户回答的一个问题。
品牌化(可选)
添加您的徽标、品牌颜色、页面标题和按钮文案。您可以随时返回并调整 - - 实时页面会立即更新。
连接您的账单提供商(可选)
在账户设置 → 集成中,连接 Stripe 或 Lemon Squeezy。Outro 然后将客户的计划、订阅年龄和 MRR 风险附加到每次取消上 - - 这样您可以用美元而不仅仅是数量来衡量流失。
连接您的取消流程
可以通过复制粘贴代码片段将页面嵌入到您的应用中,或者将现有的“取消订阅”按钮指向您的 Outro 链接,并设置一个允许的返回域,以便客户返回完成取消。
查看回复滚动进来
每个回答都会出现在回复选项卡中,自动转录和评分。收入恢复跟踪您节省与损失的 MRR,每周一会有取消摘要发送到您的收件箱。

创建取消页面
取消页面是您的客户点击取消时看到的品牌屏幕。您可以根据计划允许创建多个页面 - - 例如,每个产品或计划层级一个不同的页面,每个页面都有自己的问题。
1. 打开取消页面
从侧边栏,点击取消页面。您将看到您拥有的每个页面,每个页面都有其公共 URL、启用/禁用状态和快速操作。

2. 填写基本信息
编辑器有几个字段。只有短链接是必需的 - - 合理的默认值涵盖其余部分:
- 短链接 - - 公共 URL 是
outro.so/c/{slug}。小写字母、数字和破折号。 - 页面标题 - - 例如“很遗憾看到您离开”。
- 问题提示 - - 客户通过语音回答的单个问题,例如“您取消的主要原因是什么?”
- 跳过/继续按钮文本 - - 跳过和继续取消按钮上的文案。

页面品牌化
页面应该看起来像你的产品,而不是我们的。外观标签页控制外观 - - 选择布局(整页、分栏或卡片),设置背景、品牌颜色、卡片样式和你的徽标 - - 所做的更改会立即显示在预览中。
徽标和品牌颜色
粘贴一个托管的徽标 URL以在页面顶部显示您的标志,并使用颜色选择器选择一个品牌颜色(或粘贴一个十六进制值)。颜色驱动强调条、按钮和录音控制。

实时切换
页面上线切换控制公共 URL 是否响应。关闭它以在不删除页面(及其回复)的情况下将其下线。
保留优惠
取消并不总是最终的。在客户回答您的问题后,Outro 可以显示一个保留优惠 - - 一个最后的留住激励。有些人会接受;其余的则正常取消。无论如何,您都会学到一些东西。
在页面编辑器中打开优惠选项卡并启用启用保留优惠。流程很简单:他们提供反馈 → 您显示优惠 → 他们留下或取消。

优惠类型
- 折扣 - - 一个优惠码(例如“3 个月 50% 折扣”),客户在结账时复制并应用,可选账单链接。
- 暂停订阅 - - 将他们发送到您的应用中的暂停页面,而不是直接取消。
- 降级计划 - - 链接到您的计划页面,以便他们可以移动到更便宜的层级。
- 联系支持 - - 通过电子邮件或支持链接将可挽救的客户引导至人工。
根据原因定位优惠
每个优惠可以针对特定的取消原因,有两种匹配方式:
- 根据他们选择的 - - 匹配访客在您的表单中选择的答案(例如“太贵”单选选项)。
- 根据他们说的 - - 当访客录制语音回答并启用优惠时,Outro 会转录并使用 AI 检测真实的流失原因(太贵、缺少功能、不使用、太难使用、技术问题、切换),然后显示与他们实际说的匹配的优惠。这是在内联发生的 - - 访客在分类时会看到一个简短的“寻找最佳选项”暂停。
Outro 显示第一个匹配任一信号的优惠;如果没有匹配,则显示没有选择原因的第一个优惠(您的兜底)。因此,即使客户从未触碰表单,说价格太高的客户也会获得您的折扣,而“缺少功能”则会引导至支持。您可以在同一优惠上混合表单答案和语音检测原因 - - Outro 将两者映射在一起,因此针对表单标签设置的优惠仍然匹配等效的口头原因。
连接您的取消流程
有两种方法可以将 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密钥;手动则不需要。
我需要什么密钥?
- Stripe - 一个只读受限密钥可以提供洞察(面临风险的 MRR)。要自动应用优惠,该密钥需要订阅和优惠券的写入权限,以及产品和价格的读取权限(用于降级)。秘密密钥可以使用,但受限密钥更安全。
- Lemon Squeezy - API 密钥是全访问的,因此同一个密钥可以提供洞察并自动应用暂停和降级优惠。折扣不能通过 Lemon Squeezy API 应用于现有订阅,因此折扣优惠会向客户显示优惠券代码,而不是自动应用。
两个信号
- 嵌入页面 - - 一个
offer_acceptedpostMessage,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 })
}账单集成
连接您的支付提供商将 Outro 从“有多少人取消”转变为“有多少 MRR 正在流失”。一旦连接,每次取消都会与付费客户匹配,并标记他们的计划、订阅年龄和每月收入风险。
进入账户设置 → 集成。Outro 支持Stripe和Lemon Squeezy,您可以为每个提供商添加多个账户 - - 如果您经营多个商店或实体,这很方便。

管理连接
- 添加连接 - - 粘贴提供商 API 密钥。Outro 会拉取您的客户(电子邮件、计划、MRR、订阅开始)并缓存以进行匹配。
- 立即同步 - - 按需刷新缓存的客户列表。Outro 还会按每日计划重新同步。
- 断开连接 - - 删除该连接的缓存客户。过去的取消快照保持不变 - - 您已经记录的数字不会改变。
匹配如何工作
当取消发生时,Outro 会通过您传入的user_id/external_ref或电子邮件将其与同步的客户匹配。匹配会作为响应上的快照捕获,因此 MRR 数字反映了客户在取消时的价值。
user_id以获得最可靠的匹配 - - 它是精确的,而电子邮件匹配则依赖于地址的一致性。查看回复
每个回答都会显示在回复视图中。语音回答会自动转录和翻译,因此您可以像文本一样浏览它们 - - 每个回答在到达时都会被评分和标记。

每个回复包含的内容
- 录音和转录:原始音频(可播放)、原始语言转录和翻译并排显示。
- 情感和主题:正面/中立/负面,以及自动检测的主题,如定价、竞争对手或缺少功能。
- 上下文:提交时间、您传入的
user_id和external_ref,以及语言/设备详细信息。
收入恢复
一旦连接了账单提供商,收入恢复页面就会为您的流失赋予一个美元价值。它回答了对业务真正重要的问题:我们恢复了多少 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 会将您的原始回复生成可读的摘要:人们离开的主要原因、代表性引用、情感分解和建议的下一步行动。

每周取消摘要
每周一上午 9 点,Outro 会向您发送一份关于过去 7 天流失的单屏回顾。它专为您的团队在周一早上实际提出的问题而设计:谁离开了,为什么,以及这对我们造成了什么损失。
- 本周取消 - - 数量,以及与前一周的变化。
- MRR 风险、保存和损失 - - 与收入恢复相同的收入图,汇总为一周。
- 主要取消原因 - - 客户最常给出的几个答案。
- 保留优惠结果 - - 接受、拒绝或未显示的优惠数量。
您可以随时从账户设置 → 通知 → 预览示例摘要中预览布局,并在不需要时在那里关闭电子邮件。账户在一周内没有取消的会被跳过 - - 没有空邮件。
账户与团队
从账户设置(侧边栏底部)管理您的组织、邀请团队成员和更改密码。

选项卡
- 常规 - - 更改账户名称和描述。
- 用户 - - 通过电子邮件邀请团队成员并设置他们的角色(所有者、管理员、成员)。
- 集成 - - 连接 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。