Product hunt自动调研工作流



n8n 产品数据抓取教程:Product Hunt 到 Notion
本教程将详细指导您如何导入、配置并运行一个n8n工作流,该工作流旨在从Product Hunt抓取最新产品数据,并将其自动存储到您的Notion数据库中。
1. 工作流概览
这个n8n工作流是一个自动化流程,它定时从Product Hunt的API获取最新产品列表,然后将这些产品的信息(如名称、标语、URL、票数、评论数、创建日期和缩略图)写入到指定的Notion数据库中。
主要流程: 定时触发 → 获取Product Hunt OAuth Token → 获取Product Hunt 产品数据 → 写入数据到 Notion
2. 导入 n8n 工作流
首先,将提供的JSON文件导入到您的n8n实例中。
- 打开您的n8n应用程序或云实例。
- 在n8n界面的左侧导航栏,点击“文件”(File)或“工作流”(Workflows)。
- 选择“从文件导入”(Import from File)选项。
- 选择您下载的
工作流
文件,并确认导入。
导入成功后,您会看到一个名为“PH数据爬取”的新工作流。
3. 节点逐一配置
接下来,我们将逐一配置工作流中的每个关键节点。
3.1 Schedule Trigger (定时触发)
这是工作流的起始点,用于设定工作流自动运行的频率。
- 目的: 控制工作流何时自动执行。
- 配置步骤:
- 双击“Schedule Trigger”节点。
- 在右侧的配置面板中,您可以设定触发模式(例如,每天、每小时、每分钟)和时间间隔。
- 示例配置: 如果您想让它每天运行一次,可以将“模式”(Mode)设置为
Every Day
。 - 保存节点设置。
3.2 get product hunt token (获取 Product Hunt Token)
此HTTP Request节点负责向Product Hunt的OAuth接口请求一个访问令牌,以便后续抓取数据。
- 目的: 获取Product Hunt API的授权访问令牌。
- 连接方式: 从“Schedule Trigger”节点连接到此节点。
- 凭证: 需要配置Product Hunt的OAuth 2.0 Client Credentials。
- 双击“get product hunt token”节点。
- 在右侧面板的“凭证”(Credentials)部分,找到名为
httpCustomAuth
的凭证(可能名为product hunt token
)。点击铅笔图标或“创建新凭证”。 - 在Product Hunt开发者网站上(通常是其API文档或应用管理页面),注册一个应用以获取Client ID和Client Secret。
- 在n8n的凭证配置中,选择“OAuth2 API”作为授权类型。
- 填写以下信息:
- Authorization URL (授权URL):
https://api.producthunt.com/v2/oauth/authorize
- Access Token URL (访问令牌URL):
https://api.producthunt.com/v2/oauth/token
- Client ID (客户端ID): [从Product Hunt获取]
- Client Secret (客户端密钥): [从Product Hunt获取]
- Scope (作用域): 根据需要填写,例如
public
- Authorization URL (授权URL):
- 保存凭证并进行连接测试。
- 重要参数:
- 方法 (Method):
POST
- URL:
https://api.producthunt.com/v2/oauth/token
- Body (请求体): 通常包含
grant_type=client_credentials
,以及您的Client ID和Client Secret。
- 方法 (Method):
3.3 获取Producthunt数据 (获取 Product Hunt 数据)
此HTTP Request节点使用上一步获取的访问令牌,通过GraphQL查询从Product Hunt API抓取产品数据。
- 目的: 从Product Hunt API获取最新的产品列表。
- 连接方式: 从“get product hunt token”节点连接到此节点。
- 凭证: 引用上一步中配置的Product Hunt访问令牌凭证(通常是
httpBearerAuth
类型)。 - 重要参数:
- 方法 (Method):
POST
- URL:
https://api.producthunt.com/v2/api/graphql
- 身份验证 (Authentication):
Generic Credential Type
,并选择引用上一步生成的Bearer Token。 - Header (请求头):
Authorization
:={{ $json.token_type }} {{ $json.access_token }}
(这将动态获取前一个节点输出的令牌类型和访问令牌)Content-Type
:application/json
- JSON Body (JSON 请求体): 这是GraphQL查询,用于指定您想要获取哪些产品数据。
- 可复制的 GraphQL 查询:
此查询会获取主页排名前20的产品,包含ID、名称、标语、URL、网站、票数、评论数、创建日期和缩略图URL。您可以根据需要修改{ "query": "query HomePagePosts { posts(first: 20, order: RANKING) { edges { node { id name tagline url website votesCount commentsCount createdAt thumbnail { url } } } } }" }
first: 20
来调整获取的产品数量。
- 可复制的 GraphQL 查询:
- 方法 (Method):
3.4 Notion (初始 Notion 操作)
这个Notion节点可能用于初步连接或获取Notion数据库的元数据,虽然在主流程中它可能只是一个独立的分支或辅助节点。
- 目的: 与Notion数据库进行初步交互。
- 连接方式: 在JSON中,它似乎直接连接到“Schedule Trigger”节点(并行于获取token的流程),也可能用于获取Notion数据库的结构信息。
- 凭证: 需要配置Notion的API集成令牌。
- 双击“Notion”节点。
- 在右侧面板的“凭证”(Credentials)部分,点击“创建新凭证”。
- 前往Notion,创建一个新的集成(Integration),并授予它访问您将用于存储数据的特定数据库的权限。
- 复制此集成的内部集成令牌(Internal Integration Token)。
- 将令牌粘贴到n8n凭证设置中的“Token”字段。
- 保存凭证并进行连接测试。
- 重要参数:
- 资源 (Resource):
Database
- 操作 (Operation):
Get All
(获取所有数据库,或获取某个数据库的所有页面)
- 资源 (Resource):
3.5 将内容写入notion (将内容写入 Notion)
这是工作流的核心输出节点,负责将Product Hunt抓取到的数据写入到Notion数据库中。
- 目的: 将从Product Hunt获取的数据作为新页面添加到指定的Notion数据库。
- 连接方式: 从“获取Producthunt数据”节点连接到此节点。
- 凭证: 引用上一步中配置的Notion API集成凭证。
- 重要参数:
- 资源 (Resource):
Page
- 操作 (Operation):
Create
- Parent (父级): 选择“Database ID”。
- Database ID (数据库ID): 您需要从Notion数据库的URL中手动复制此ID。
- 在Notion中,打开您的目标数据库页面。
- 点击右上角的“分享”(Share)按钮,然后点击“复制链接”(Copy link)。
- 复制的链接通常是
https://www.notion.so/yourworkspace/your_database_name-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx?v=...
。xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
这一串32位的字符(不含破折号)就是您的数据库ID。 - 将此ID粘贴到n8n的“Database ID”字段。
- Database ID (数据库ID): 您需要从Notion数据库的URL中手动复制此ID。
- Properties (属性): 这是最重要的一步,您需要将Product Hunt数据映射到Notion数据库的对应属性。确保您的Notion数据库已经创建了匹配的属性(例如,名称、标语、URL、票数等)。
- 您可以点击每个属性旁边的表达式按钮(
=
图标),并使用$json
变量来引用前一个节点(“获取Producthunt数据”)的输出。 - 示例映射(您需要根据您的Notion数据库属性名进行调整):
Name
(Notion属性名):={{ $json.name }}
Tagline
(Notion属性名):={{ $json.tagline }}
URL
(Notion属性名):={{ $json.url }}
Votes
(Notion属性名):={{ $json.votesCount }}
Comments
(Notion属性名):={{ $json.commentsCount }}
Created Date
(Notion属性名):={{ $json.createdAt }}
Thumbnail
(Notion属性名):={{ $json.thumbnail.url }}
- 您可以点击每个属性旁边的表达式按钮(
- 资源 (Resource):
3.6 其他节点(可选/辅助)
JSON中还包含一些其他节点,它们可能代表工作流的辅助功能或未完全连接的分支。
- Limit: 用于限制通过其流动的项目数量。
- Slack: 预留用于发送Slack通知的功能,目前未连接到主数据流。
- 价格写入Notion / 价格?: 这些节点似乎是与“价格”相关的条件判断和写入Notion的逻辑,可能是一个单独的子流程或未完成的功能。
- Wait 0.8s: 一个简单的等待节点,用于引入0.8秒的延迟。
这些节点可能需要根据您的具体需求进行连接或配置。
4. 此工作流中无传统“Prompt”
您提到希望单独列出Prompt。需要说明的是,此n8n工作流的节点类型(HTTP请求、Notion操作、定时触发等)不包含通常意义上的Prompt字段。Prompt通常存在于与大型语言模型(LLM)或AI代理相关的节点中,用于向AI模型提供指令文本。
这个工作流的核心是数据集成和自动化,它通过API调用和数据映射来完成任务,而不是通过AI模型生成文本或内容。
5. 激活并运行工作流
在完成所有节点的配置后,您可以激活并运行工作流。
- 在n8n工作流编辑器的右上角,找到激活开关(通常是一个开关图标)并将其打开。这将使工作流处于活跃状态。
- 工作流将根据您在“Schedule Trigger”节点中设定的频率自动运行。
- 如果您想立即测试工作流,可以点击“Schedule Trigger”节点,然后点击“执行工作流”(Execute Workflow)按钮来手动触发它。
6. 检查结果
工作流成功执行后,您可以在Notion中查看抓取到的数据。
- 打开您在“将内容写入notion”节点中指定的Notion数据库。
- 您应该会看到从Product Hunt抓取到的最新产品信息已作为新页面或新条目添加进来。
通过遵循上述步骤,您将能够成功设置并运行这个n8n工作流,实现Product Hunt数据的自动化抓取和Notion存储。