如何使用扣子和Webflow API搭建轻量级个人作品集自动化生成器
你想把 GitHub 项目自动同步到个人作品集,又不想每次手动更新 Webflow 页面——怎么办?用扣子(Coze)工作流调用 Webflow API,就能让新提交的代码仓库自动变成网页上的卡片,全程无需写一行部署脚本。先说核心思路:先获取 Webflow 的 API 密钥、站点 ID 和 Projects 集合 ID;再在扣子中创建一条工作流,里面包含 GitHub Webhook 接收、数据解析与 API 提交三个核心节点,最后配置条件判断与失败通知。这样,一个新的仓库一旦创建,就会自动出现在你的作品集页面上。

准备工作:获取 Webflow API 密钥与站点 ID
先别急着动手写代码,得先把 Webflow 那边的“钥匙”拿到手。登录 Webflow 账户后,进入「Account Settings」,左侧菜单找到「API Tokens」,点击「Create Token」。
在弹窗里给这个 token 起个名字,比如“coze-portfolio-sync”。权限这块,只需要勾选
【Sites: Read & Write】
【Collections: Read & Write】
点击创建之后,页面只显示一次完整的密钥。这一步很关键:立刻复制并保存到本地文本文件里。一旦关闭这个页面,就再也看不到原始值了。之后,打开 Webflow 编辑器,进入你要自动更新的作品集项目。看浏览器地址栏,URL 形如 https://webflow.com/sites/abc123/edit,其中 abc123 就是你的
【Site ID】
回到 Webflow 后台,进入「Collections」,找到或新建一个名为「Projects」的集合。点击进入后,看右上角的「Settings」,这里有个
【Collection ID】
在扣子中创建工作流并配置触发节点
登录扣子平台(coze.cn),进入工作空间后点击「+ 新建」,选择「工作流」,命名「Webflow-Auto-Project-Sync」,描述填“监听 GitHub 新仓库并同步至 Webflow Projects 集合”。
画布上默认有「开始」和「结束」两个节点,先把「结束」节点删掉,后面再加。从左侧节点库拖入一个「HTTP 请求」节点,重命名为「GitHub Webhook 接收」。双击进入编辑界面:协议选「POST」,路径留空(扣子会自动生成唯一的 webhook URL),请求体类型选「JSON」。
点击「启用 Webhook」后复制生成的 URL。这个地址就是 GitHub 那边用来发送新仓库事件用的接收端点。
配置 GitHub Webhook 并验证事件结构
进入 GitHub 个人主页 → 「Settings」→ 「Developer settings」→ 「Webhooks」→ 「Add webhook」。把刚才复制的扣子 webhook 地址粘贴到 Payload URL 栏;Content type 选「application/json」。最关键的是底下的事件选择:勾选「Let me select individual events」,然后确保「Create」已经被启用,只监听新仓库创建事件。这样能有效避免误触发 fork 或 star 这类无关操作。
点击「Add webhook」后,GitHub 会立即发送一条测试请求。回到扣子工作流,点击「GitHub Webhook 接收」节点右上角的「调试」,查看「最近请求」里的 raw body。确认结构是否包含 repository.full_name、repository.description、repository.html_url 这三个字段——它们是后续写入 Webflow 所需的最小数据源。如果 body 为空或字段缺失,说明 GitHub 没有发送成功,回去检查是不是事件类型没勾对。
解析 GitHub 数据并构造 Webflow 请求体
在「GitHub Webhook 接收」节点下游,拖入一个「代码」节点,重命名为「Build Webflow Payload」。在代码编辑区粘贴以下 Ja vaScript:
ret = {
fields: {
"name": params.body.repository.full_name,
"description": params.body.repository.description || "No description provided",
"link": params.body.repository.html_url,
"github_url": params.body.repository.html_url,
"status": "published"
}
};
这段代码很关键:它把 GitHub 事件里的关键字段映射成 Webflow Collection Item 所需的 fields 结构。注意 params.body.repository.description 这里加了一个空值兜底("No description provided"),否则当仓库没有描述时,Webflow API 会因为字段缺失直接返回 400 错误。
调用 Webflow API 创建新项目条目
在「Build Webflow Payload」节点下游,拖入第二个「HTTP 请求」节点,重命名为「Post to Webflow Projects」。
配置参数如下:
方法:POST
URL:https://api.webflow.com/v2/sites/【你的 Site ID】
【你的 Collection ID】
Headers 添加两行:
Authorization:Bearer
【你的 Webflow API 密钥】
Content-Type:application/json
Body 类型选「Raw」,内容填:{{#context.code_1.ret#}}。这是扣子的语法,表示引用上游代码节点(Build Webflow Payload)的输出结果。
配置完成后,点击「测试运行」看看效果。如果响应状态码是 201,说明请求成功,新项目条目已经创建。如果返回 401,检查密钥是否过期或者权限不足;如果返回 404,八成是 Site ID 或 Collection ID 抄错了——这两个 ID 区分大小写,而且不能带空格,务必核对清楚。
添加失败处理与日志反馈
为了让整个工作流更可靠,得加上错误处理逻辑。从节点库拖入一个「条件判断」节点,接到「Post to Webflow Projects」后面,设置判断条件为:response.status === 201。
「是」分支连向一个「结束」节点,标签写「Sync Success」;「否」分支连向另一个「结束」节点,标签写「Sync Failed」。
在「Sync Failed」分支上,额外加一个「通知」节点(可选飞书、邮件或 Webhook),通知内容填:Webflow sync failed for {{params.body.repository.full_name}}: {{response.statusText}}。这样一旦同步出错,你能第一时间知道是哪个仓库出了问题,以及错误原因是什么。
全部完成后,保存工作流,点击右上角的「发布」。此时,GitHub 上的新仓库事件便开始实时地流向扣子工作流,最终自动呈现在你的 Webflow 作品集页面上。