从手动到智能:用AI+Notion+Zapier打造你的自动化工作流
在信息爆炸的时代,我们每天被邮件、会议、待办事项和碎片化信息淹没。手动处理重复性任务不仅效率低下,还容易出错。如果能让AI理解你的工作习惯,自动将信息分类、整理并写入你的知识库,会怎样?
本文将带你从零构建一套“AI驱动的工作流自动化系统”。我们将使用OpenAI API作为大脑,Notion API作为知识库,Zapier作为连接器,再辅以Python脚本处理复杂逻辑。最终实现:一封邮件进来,AI自动判断优先级、提取关键信息、在Notion中创建任务卡片,并发送提醒。
一、系统架构概览
在动手之前,先理解整体数据流:
触发源 (Email / Webhook / 定时任务)
↓
Zapier 捕获事件
↓
Python 脚本 (调用 OpenAI API 处理数据)
↓
Notion API 写入数据库
↓
Zapier 发送通知 (Slack / Telegram)
核心思想:Zapier负责“连接”与“触发”,Python脚本负责“智能处理”,Notion负责“存储与协作”。
二、准备工作:获取API密钥
我们需要三个关键服务的访问令牌:
- OpenAI API Key:在 platform.openai.com 注册并创建密钥。
- Notion Integration Token:在 www.notion.so/my-integrations 创建内部集成,获取
Internal Integration Secret。注意:必须将集成添加到目标数据库页面(Share → Invite → 选择你的集成)。 - Zapier 账户:免费版即可,但部分高级功能(如Webhooks)需要付费计划。
三、核心代码:AI处理与Notion写入
我们编写一个Python函数,接收原始文本(如邮件内容),让AI提取结构化信息,然后写入Notion数据库。
3.1 安装依赖
pip install openai notion-client requests
3.2 定义AI处理函数
import json
import openai
from notion_client import Client
# 配置密钥(建议用环境变量,此处仅为示例)
openai.api_key = "sk-your-openai-key"
notion = Client(auth="secret_your-notion-token")
DATABASE_ID = "your-notion-database-id"
def ai_extract_info(raw_text: str) -> dict:
"""
调用GPT-4o-mini模型,从原始文本中提取结构化信息。
返回字典包含: title, priority, summary, tags, due_date
"""
prompt = f"""
请从以下文本中提取关键信息,并以JSON格式返回:
title
文本内容:
{raw_text}
"""
response = openai.ChatCompletion.create(
model="gpt-4o-mini",
messages=[{"role": "user", "content": prompt}],
temperature=0.1,
max_tokens=300
)
content = response.choices[0].message.content.strip()
# 处理模型可能返回的markdown代码块
if content.startswith("```json"):
content = content[7:-3].strip()
return json.loads(content)
3.3 写入Notion数据库
def create_notion_page(data: dict):
"""
将AI提取的数据写入Notion数据库
"""
properties = {
"任务名称": {
"title": [
{"text": {"content": data["title"]}}
]
},
"优先级": {
"select": {"name": data["priority"]}
},
"摘要": {
"rich_text": [
{"text": {"content": data["summary"]}}
]
},
"标签": {
"multi_select": [{"name": tag} for tag in data["tags"]]
},
"截止日期": {
"date": {"start": data["due_date"]} if data["due_date"] else None
}
}
# 移除值为None的属性,避免API报错
properties = {k: v for k, v in properties.items() if v is not None}
try:
page = notion.pages.create(
parent={"database_id": DATABASE_ID},
properties=properties
)
print(f"✅ 任务已创建: {page['url']}")
return page
except Exception as e:
print(f"❌ 写入失败: {e}")
return None
3.4 完整流程串联
def process_incoming_message(raw_text: str):
print("🤖 AI正在分析内容...")
extracted = ai_extract_info(raw_text)
print(f"提取结果: {extracted}")
print("📝 写入Notion...")
create_notion_page(extracted)
print("✅ 完成!")
# 测试
if __name__ == "__main__":
sample_text = """
客户王总反馈系统登录页面在Chrome浏览器上崩溃,影响销售团队使用,请尽快修复。
优先级很高,最好本周五前给出修复方案。
"""
process_incoming_message(sample_text)
四、Zapier集成:连接外部触发源
纯代码虽然强大,但无法自动响应邮件或表单提交。这时Zapier登场。
4.1 创建Zap(自动化工序)
- Trigger:选择“Email by Zapier” → “New Inbound Email”。配置一个专属邮箱,所有转发到该邮箱的邮件都会触发工作流。
- Action:选择“Webhooks by Zapier” → “POST”。将上一步的Python脚本部署为API服务(例如使用Flask或FastAPI),然后填写你的API端点URL。
- Data:将邮件正文(
Body Plain)作为raw_text参数发送。
4.2 部署Python脚本为API
用Flask快速包装一下:
from flask import Flask, request, jsonify
import os
app = Flask(__name__)
@app.route("/webhook", methods=["POST"])
def webhook():
data = request.json
raw_text = data.get("raw_text", "")
if not raw_text:
return jsonify({"error": "raw_text is required"}), 400
# 调用之前的处理函数
process_incoming_message(raw_text)
return jsonify({"status": "ok"}), 200
if __name__ == "__main__":
app.run(host="0.0.0.0", port=5000)
部署到云服务(如Render、Railway或Vercel)后,将公网URL填入Zapier的Webhook配置。
五、实际应用场景
5.1 邮件自动分类与任务创建
每天收到大量客户邮件,人工阅读并录入Notion耗时巨大。使用上述系统后,邮件到达Zapier邮箱,自动触发AI分析,提取“紧急Bug”、“新功能请求”或“会议邀请”,并自动创建对应优先级的任务。你只需每天查看Notion看板即可。
5.2 会议纪要自动生成
将语音转文字工具(如Otter.ai)的输出,通过Zapier发送到你的API。AI自动提取行动项、负责人和截止日期,并写入Notion。会议结束5分钟后,所有待办事项已就绪。
5.3 RSS内容智能摘要
使用Zapier的“RSS by Zapier”触发器,当新文章发布时,将全文发送给AI生成300字摘要,连同原文链接一起存入Notion的“阅读清单”数据库。从此告别信息过载。
六、进阶优化技巧
- 错误处理与重试:在Python脚本中加入异常捕获和重试机制,尤其是OpenAI API偶发超时的情况。
- 使用环境变量:永远不要在代码中硬编码API密钥,使用
os.getenv()。 - 限制AI输出格式:在prompt中加入“必须返回合法JSON,不要包含额外说明”,并增加
json.loads的异常处理。 - Zapier的Filter步骤:在触发后添加条件判断,例如只处理来自特定发件人的邮件,避免资源浪费。
- 使用Notion的Relation和Rollup:如果任务需要关联项目或客户,可以在Notion数据库中设置关联字段,AI提取项目名称后自动关联。
七、总结
通过AI + Notion + Zapier + Python脚本的组合,我们实现了一个具备“理解、决策、执行”能力的自动化工作流。它不再是简单的“如果A则B”,而是让AI理解上下文,做出智能判断,再写入结构化的知识库。
这套系统可以无限扩展:接入Slack命令、GitHub Issues、Google Forms,甚至用AI生成周报。关键在于,让AI处理“理解”的部分,让自动化工具处理“连接”的部分,而你,只需要专注于真正需要人类智慧的工作。
下一步行动:打开你的Notion,创建一个任务数据库,然后按照本文步骤,从第一个“AI+邮件”自动化开始。你会发现,每天省下的1小时,足以让你完成过去一周的工作量。