你是否希望将 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」。在代码编辑区粘贴以下 JavaScript:
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】/collections/【你的 Collection ID】/items
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 作品集页面上。
