ToseaAI/awesome-html-slide-skills 第一次筛选怎么不跑偏:看链接状态、输出目标和失败信号(skill首测版)
2026-08-11
2026-08-16 0
Typeform 技能使开发者能够与 Typeform API 交互,而无需处理繁琐的传统 OAuth 管理。通过利用 Maton 网关,此 Openclaw Skills 集成会自动将授权令牌注入请求中,允许您以编程方式创建、更新和删除表单或检索调查洞察。
它是您的自动化工作流与 Typeform 强大的数据收集平台之间的桥梁,确保收集用户反馈尽可能高效。无论您是在构建复杂的数据管道还是简单的通知系统,此技能都提供了必要的工具来大规模处理 Typeform 数据,同时保持凭据安全。
下载入口:https://github.com/openclaw/skills/tree/main/skills/byungkyu/typeform
从源直接安装技能的最快方式。
npx clawhub@latest install typeform
将技能文件夹复制到以下位置之一
全局模式~/.openclaw/skills/
工作区
/skills/
优先级:工作区 > 本地 > 内置
将此提示词复制到 OpenClaw 即可自动安装。
请帮我使用 Clawhub 安装 typeform。如果尚未安装 Clawhub,请先安装(npm i -g clawhub)。
export MATON_API_KEY="YOUR_API_KEY"
# 创建新连接
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"}'
| 端点组 | 描述 | 关键操作 |
|---|---|---|
/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
Access the Typeform API with managed OAuth authentication. Create and manage forms, retrieve responses, and access insights.
# 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
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.
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"
Manage your Typeform OAuth connections at https://ctrl.maton.ai.
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
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
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.
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
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.
GET /typeform/me
GET /typeform/forms?page_size=10
GET /typeform/forms/{formId}
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?"}
]
}
PUT /typeform/forms/{formId}
Content-Type: application/json
{
"title": "Updated Survey Title",
"fields": [...]
}
DELETE /typeform/forms/{formId}
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
GET /typeform/insights/{formId}/summary
GET /typeform/workspaces
GET /typeform/workspaces/{workspaceId}
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 selectionconst response = await fetch(
'https://gateway.maton.ai/typeform/forms?page_size=10',
{
headers: {
'Authorization': `Bearer ${process.env.MATON_API_KEY}`
}
}
);
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}
)
before tokencurl -g when URLs contain brackets (fields[], sort[], records[]) to disable glob parsingjq or other commands, environment variables like $MATON_API_KEY may not expand correctly in some shell environments. You may get "Invalid API key" errors when piping.| 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 |
MATON_API_KEY environment variable is set:echo $MATON_API_KEY
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
typeform. For example:https://gateway.maton.ai/typeform/formshttps://gateway.maton.ai/forms