Typeform:自动化调查与数据收集 - Openclaw Skills
作者:互联网
2026-03-20
什么是 Typeform?
Typeform 技能使开发者能够与 Typeform API 交互,而无需处理繁琐的传统 OAuth 管理。通过利用 Maton 网关,此 Openclaw Skills 集成会自动将授权令牌注入请求中,允许您以编程方式创建、更新和删除表单或检索调查洞察。
它是您的自动化工作流与 Typeform 强大的数据收集平台之间的桥梁,确保收集用户反馈尽可能高效。无论您是在构建复杂的数据管道还是简单的通知系统,此技能都提供了必要的工具来大规模处理 Typeform 数据,同时保持凭据安全。
下载入口:https://github.com/openclaw/skills/tree/main/skills/byungkyu/typeform
安装与下载
1. ClawHub CLI
从源直接安装技能的最快方式。
npx clawhub@latest install typeform
2. 手动安装
将技能文件夹复制到以下位置之一
全局模式~/.openclaw/skills/
工作区
/skills/
优先级:工作区 > 本地 > 内置
3. 提示词安装
将此提示词复制到 OpenClaw 即可自动安装。
请帮我使用 Clawhub 安装 typeform。如果尚未安装 Clawhub,请先安装(npm i -g clawhub)。
Typeform 应用场景
- 自动化创建用于客户反馈和潜在客户生成的调查。
- 以编程方式检索和处理表单回复,进行实时数据分析。
- 在单个工作流中管理多个 Typeform 工作空间和组织单位。
- 提取调查洞察和摘要,用于自动化管理报告。
- 根据外部触发器或数据库更新来更新现有的表单字段或配置。
- 使用请求头中提供的 Maton API 密钥建立身份验证。
- 用户通过 Maton 控制面板创建 OAuth 连接以授权 Typeform 访问。
- 请求发送到 Maton 网关 URL,该 URL 识别相应的 Typeform 连接。
- 网关将请求代理到原生 Typeform API,同时自动注入有效的 OAuth 令牌。
- 来自 Typeform 的响应通过网关传回给调用代理或应用程序。
Typeform 配置指南
- 从 maton.ai/settings 获取 Maton API 密钥。
- 在终端中设置环境变量:
export MATON_API_KEY="YOUR_API_KEY"
- 使用控制 API 创建到 Typeform 的连接:
# 创建新连接
curl -X POST https://ctrl.maton.ai/connections r
-H "Authorization: Bearer $MATON_API_KEY" r
-H "Content-Type: application/json" r
-d '{"app": "typeform"}'
- 在浏览器中打开返回的 URL 以完成 OAuth 流程并授权 Openclaw Skills 访问。
Typeform 数据架构与分类体系
| 端点组 | 描述 | 关键操作 |
|---|---|---|
/typeform/forms |
表单管理 | 创建、列出、更新和删除表单 |
/typeform/responses |
提交数据 | 使用 since、until 和完成状态等过滤器检索回复 |
/typeform/insights |
数据分析 | 访问特定表单性能的摘要洞察 |
/typeform/workspaces |
组织 | 列出并检索特定 Typeform 工作空间的详细信息 |
/typeform/me |
用户资料 | 检索有关已认证 Typeform 用户的信息 |
name: typeform
description: |
Typeform API integration with managed OAuth. Create forms, manage responses, and access insights. Use this skill when users want to interact with Typeform surveys and responses. For other third party apps, use the api-gateway skill (https://clawhub.ai/byungkyu/api-gateway).
compatibility: Requires network access and valid Maton API key
metadata:
author: maton
version: "1.0"
clawdbot:
emoji: ??
requires:
env:
- MATON_API_KEY
Typeform
Access the Typeform API with managed OAuth authentication. Create and manage forms, retrieve responses, and access insights.
Quick Start
# List forms
python <<'EOF'
import urllib.request, os, json
req = urllib.request.Request('https://gateway.maton.ai/typeform/forms?page_size=10')
req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
EOF
Base URL
https://gateway.maton.ai/typeform/{native-api-path}
Replace {native-api-path} with the actual Typeform API endpoint path. The gateway proxies requests to api.typeform.com and automatically injects your OAuth token.
Authentication
All requests require the Maton API key in the Authorization header:
Authorization: Bearer $MATON_API_KEY
Environment Variable: Set your API key as MATON_API_KEY:
export MATON_API_KEY="YOUR_API_KEY"
Getting Your API Key
- Sign in or create an account at maton.ai
- Go to maton.ai/settings
- Copy your API key
Connection Management
Manage your Typeform OAuth connections at https://ctrl.maton.ai.
List Connections
python <<'EOF'
import urllib.request, os, json
req = urllib.request.Request('https://ctrl.maton.ai/connections?app=typeform&status=ACTIVE')
req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
EOF
Create Connection
python <<'EOF'
import urllib.request, os, json
data = json.dumps({'app': 'typeform'}).encode()
req = urllib.request.Request('https://ctrl.maton.ai/connections', data=data, method='POST')
req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}')
req.add_header('Content-Type', 'application/json')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
EOF
Get Connection
python <<'EOF'
import urllib.request, os, json
req = urllib.request.Request('https://ctrl.maton.ai/connections/{connection_id}')
req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
EOF
Response:
{
"connection": {
"connection_id": "21fd90f9-5935-43cd-b6c8-bde9d915ca80",
"status": "ACTIVE",
"creation_time": "2025-12-08T07:20:53.488460Z",
"last_updated_time": "2026-01-31T20:03:32.593153Z",
"url": "https://connect.maton.ai/?session_token=...",
"app": "typeform",
"metadata": {}
}
}
Open the returned url in a browser to complete OAuth authorization.
Delete Connection
python <<'EOF'
import urllib.request, os, json
req = urllib.request.Request('https://ctrl.maton.ai/connections/{connection_id}', method='DELETE')
req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
EOF
Specifying Connection
If you have multiple Typeform connections, specify which one to use with the Maton-Connection header:
python <<'EOF'
import urllib.request, os, json
req = urllib.request.Request('https://gateway.maton.ai/typeform/forms?page_size=10')
req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}')
req.add_header('Maton-Connection', '21fd90f9-5935-43cd-b6c8-bde9d915ca80')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
EOF
If omitted, the gateway uses the default (oldest) active connection.
API Reference
User
GET /typeform/me
Forms
List Forms
GET /typeform/forms?page_size=10
Get Form
GET /typeform/forms/{formId}
Create Form
POST /typeform/forms
Content-Type: application/json
{
"title": "Customer Survey",
"fields": [
{"type": "short_text", "title": "What is your name?"},
{"type": "email", "title": "What is your email?"}
]
}
Update Form
PUT /typeform/forms/{formId}
Content-Type: application/json
{
"title": "Updated Survey Title",
"fields": [...]
}
Delete Form
DELETE /typeform/forms/{formId}
Responses
List Responses
GET /typeform/forms/{formId}/responses?page_size=25
With filters:
GET /typeform/forms/{formId}/responses?since=2024-01-01T00:00:00Z&until=2024-12-31T23:59:59Z&completed=true
Insights
GET /typeform/insights/{formId}/summary
Workspaces
GET /typeform/workspaces
GET /typeform/workspaces/{workspaceId}
Field Types
short_text- Single line textlong_text- Multi-line textemail- Email addressnumber- Numeric inputrating- Star ratingopinion_scale- 0-10 scalemultiple_choice- Single or multiple selectionyes_no- Booleandate- Date pickerdropdown- Dropdown selection
Code Examples
JavaScript
const response = await fetch(
'https://gateway.maton.ai/typeform/forms?page_size=10',
{
headers: {
'Authorization': `Bearer ${process.env.MATON_API_KEY}`
}
}
);
Python
import os
import requests
response = requests.get(
'https://gateway.maton.ai/typeform/forms',
headers={'Authorization': f'Bearer {os.environ["MATON_API_KEY"]}'},
params={'page_size': 10}
)
Notes
- Form IDs are alphanumeric strings
- Response pagination uses
beforetoken - Timestamps are in ISO 8601 format
- DELETE operations return HTTP 204
- IMPORTANT: When using curl commands, use
curl -gwhen URLs contain brackets (fields[],sort[],records[]) to disable glob parsing - IMPORTANT: When piping curl output to
jqor other commands, environment variables like$MATON_API_KEYmay not expand correctly in some shell environments. You may get "Invalid API key" errors when piping.
Error Handling
| Status | Meaning |
|---|---|
| 400 | Missing Typeform connection |
| 401 | Invalid or missing Maton API key |
| 429 | Rate limited (10 req/sec per account) |
| 4xx/5xx | Passthrough error from Typeform API |
Troubleshooting: API Key Issues
- Check that the
MATON_API_KEYenvironment variable is set:
echo $MATON_API_KEY
- Verify the API key is valid by listing connections:
python <<'EOF'
import urllib.request, os, json
req = urllib.request.Request('https://ctrl.maton.ai/connections')
req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
EOF
Troubleshooting: Invalid App Name
- Ensure your URL path starts with
typeform. For example:
- Correct:
https://gateway.maton.ai/typeform/forms - Incorrect:
https://gateway.maton.ai/forms
Resources
相关推荐
专题
+ 收藏
+ 收藏
+ 收藏
+ 收藏
+ 收藏
最新数据
相关文章
信号管道:自动化营销情报工具 - Openclaw Skills
技能收益追踪器:监控 Openclaw 技能并实现变现
AI 合规准备就绪度:评估与治理工具 - Openclaw Skills
FOSMVVM ServerRequest 测试生成器:自动化 API 测试 - Openclaw Skills
酒店搜索器:AI 赋能的住宿与位置情报 - Openclaw Skills
Dub 链接 API:程序化链接管理 - Openclaw Skills
IntercomSwap:P2P BTC 与 USDT 跨链兑换 - Openclaw Skills
spotplay:macOS 原生 Spotify 播放控制 - Openclaw Skills
DeepSeek OCR:AI驱动的图像文本识别 - Openclaw Skills
Web Navigator:自动化网页研究与浏览 - Openclaw Skills
AI精选
