内容
把产品简报变成落地页
研究受众,把简报存进 LiveDoc,然后基于这份上下文创建 Landing Page 任务,轮询直到托管页面生成完成。
复制 prompt
把方括号里的字段替换掉,然后粘贴到 Claude Code、Codex 或任何能访问终端的 AI。它会安装 Felo skill、在花额度前询问,并执行这套 workflow。
为[产品]制作一个面向[受众]的落地页。 目标:[注册 / 演示 / 等候名单]。语气:[语气]。语言:[语言]。 素材:[产品简报 URL,或粘贴简报]。必须包含:[证明点、定价、CTA]。 用 Chat 和 Web Fetch 调研受众和两三个竞品页面。把简报和调研存入 LiveDoc,然后用该 LiveDoc 作为上下文创建 Landing Page 任务。轮询直到完成,并返回托管页面链接。 输出: 1. 页面大纲:首屏、证明、功能、异议、CTA。 2. 托管页面链接。 3. 作为上下文使用的 LiveDoc 链接。 4. 需要核实的说法清单。 规则: - 不要编造指标、客户、证言、价格或合规声明。 - 每个说法都要能追溯到简报或已抓取的页面。 - 在消耗额度做调研或生成页面前先询问。 - 不要发布或绑定域名;返回托管链接供审阅。 - 将大纲写入 ./landing-page-outline.md,并在对话中总结。
复制的内容也包含安装步骤和安全规则。
你会得到什么
一次运行的示例输出,不是实时生成。
落地页大纲
首屏:“不用开三十个标签页就能调研市场。” 副标题: 一次运行拿到来源和简报草稿。 证明: 每份简报节省的时间;每个主张都链接到来源。 功能: 搜索、页面抽取、X 信号、LiveDoc 证据。 异议:“会编数字吗?”不会:数据缺失就写“暂无数据”。 CTA: 从一个问题开始。
页面:https://felo.ai/ai-page/... 上下文:https://felo.ai/livedoc/...
实际调用
给开发者:同一套 workflow 的可复制代码,按执行顺序排列。
展开实际 API 调用
研究受众和替代方案
用 Chat 问受众是谁、需要什么,用 Web Fetch 读两三个竞品页面。
landing.ts const BASE = "https://openapi.felo.ai"; const headers = { Authorization: `Bearer ${process.env.FELO_API_KEY}`, "Content-Type": "application/json", }; async function felo<T>(path: string, body?: unknown): Promise<T> { const res = await fetch(`${BASE}${path}`, { method: body ? "POST" : "GET", headers, body: body ? JSON.stringify(body) : undefined, }); if (!res.ok) throw new Error(`${res.status}: ${await res.text()}`); return res.json() as Promise<T>; } type ChatData = { data: { answer: string; resources: { link: string; title: string }[] }; }; type ExtractData = { data: { content: string } }; const research = await felo<ChatData>("/v2/chat", { query: "Who is [audience] and what do they need from [product]?", }); const pages = await Promise.all( research.data.resources.slice(0, 2).map((source) => felo<ExtractData>("/v2/web/extract", { url: source.link, output_format: "markdown", with_readability: true, }).then((page) => ({ ...source, content: page.data.content })), ), );示例输出
{ "answer": "…", "resources": [{ "link": "https://example.com", "title": "…" }] }把简报存进 LiveDoc
创建 LiveDoc,把产品简报作为文档资源加进去,并附上抓取的竞品页面。
landing.ts type LiveDocData = { data: { short_id: string } }; const doc = await felo<LiveDocData>("/v2/livedocs", { name: "Landing page: [product]", description: "Product brief, audience research and competitor notes", }); await felo(`/v2/livedocs/${doc.data.short_id}/resources/doc`, { title: "Product brief", content: "[paste the brief: audience, problem, proof, pricing, CTA]", }); await felo(`/v2/livedocs/${doc.data.short_id}/resources/urls`, { urls: pages.map((page) => ({ url: page.link, title: page.title })), }); console.log(doc.data.short_id); // page context创建落地页任务
用
/v2/landing_page发送页面 prompt 和 LiveDoc short_id,拿到 task_id。landing.ts type LandingTaskData = { data: { task_id: string } }; const task = await felo<LandingTaskData>("/v2/landing_page", { query: "Create a landing page for [product] for [audience]. Goal: [signup]. " + "Use the product brief and research in the LiveDoc. Return a hero, proof, " + "features, objections and one CTA. Do not invent claims.", livedoc_short_id: doc.data.short_id, }); console.log(task.data.task_id);示例输出
{ "data": { "task_id": "019cad6d-e874-55ef-d577-686344b5a7e9" } }轮询直到完成
查询任务历史,直到状态为 COMPLETED,读取
ai_page_html。landing.ts type TaskState = { data: { task_status: string; ai_page_html?: string; ppt_url?: string }; }; async function waitForPage(taskId: string) { for (let attempt = 0; attempt < 40; attempt++) { const state = await felo<TaskState>(`/v2/tasks/${taskId}/historical`); if (state.data.task_status === "COMPLETED") { return state.data.ai_page_html ?? state.data.ppt_url; } if (["FAILED", "EXPIRED", "CANCELED"].includes(state.data.task_status)) { throw new Error(`Landing page task ${state.data.task_status}`); } await new Promise((resolve) => setTimeout(resolve, 3000)); } throw new Error("Landing page task timed out"); } const pageUrl = await waitForPage(task.data.task_id); console.log(pageUrl);示例输出
{ "task_status": "COMPLETED", "ai_page_html": "https://felo.ai/ai-page/9qiLTmT77fA3aVurrMHvRJ", "ppt_url": "https://felo.ai/slides/9qiLTmT77fA3aVurrMHvRJ" }分享前 review
逐条核对 claim、价格、法务措辞和 CTA 链接,再分享链接。
包含什么
- 基于公开页面的受众和竞品研究
- 产品简报和研究存进 LiveDoc
- 从这份上下文生成的托管落地页
- 分享前的 claim、链接和 CTA review 清单
不做什么
- 只生成托管页面,不发布网站,也不接自有域名
- 生成的文案需要人工 review 后才能分享
- 不做 A/B 测试,也不接 analytics
- 无法验证简报和页面里没有的 claim
- 不生成 logo、品牌系统或定制插画
常见问题
它会生成什么?
一份基于产品简报和研究、托管在 Felo 的落地页。你拿到的是链接,不是已部署的站点。
可以用我自己的域名吗?
这套 workflow 不接自有域名。它返回托管页面供 review,绑定域名和发布是单独的步骤。
会编造客户评价或指标吗?
不会。prompt 禁止编造 claim,并要求每条主张都能追溯到简报或抓取页面。没有依据的内容会被标出。
可以反复迭代吗?
可以。修改 LiveDoc 里的简报,再用新上下文创建一个新的 Landing Page 任务。
会设计定制图片吗?
它负责页面结构和文案;定制插画和品牌素材不在这套 workflow 里。
一个页面要花多少?
研究和页面生成按用量计费;当前费率在价格页面,prompt 会先请求确认。
相关 workflow
改成你的版本
同一套配方,按你实际的交付方式调整。
从 PDF 简报开始
用 multipart 上传 PDF,平台会把它存成 LiveDoc 资源再传给页面任务。
生成两个定位版本
用同一个 LiveDoc 创建两个不同角度的任务,对比后再选一个打磨。
复用到幻灯片
同一份 LiveDoc 还可以喂给 PPT 任务,让页面和 deck 讲同一个故事。
继续深入
这套配方背后的参考页面,以及下一步可以看什么。