ClawSkills logoClawSkills

ClickFunnels

ClickFunnels API 集成,包含托管 OAuth。管理联系人、产品、订单、课程、表单和 Webhook。 当用户想要创建销售

介绍

# ClickFunnels

通过托管的 OAuth 身份验证访问 ClickFunnels 2.0 API。管理联系人、产品、订单、课程、表单、Webhook 等。

## 快速开始

```bash # List teams python <<'EOF' import urllib.request, os, json req = urllib.request.Request('https://gateway.maton.ai/clickfunnels/api/v2/teams') req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}') req.add_header('User-Agent', 'Maton/1.0') print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2)) EOF ```

## 基础 URL

``` https://gateway.maton.ai/clickfunnels/{native-api-path} ```

将 `{native-api-path}` 替换为实际的 ClickFunnels API 端点路径。网关将请求代理到 `{subdomain}.myclickfunnels.com` 并自动注入您的 OAuth 令牌。

## 身份验证

所有请求都需要在 Authorization 请求头中包含 Maton API 密钥以及一个 User-Agent 请求头:

``` Authorization: Bearer $MATON_API_KEY User-Agent: Maton/1.0 ```

**环境变量:** 将您的 API 密钥设置为 `MATON_API_KEY`:

```bash export MATON_API_KEY="YOUR_API_KEY" ```

### 获取您的 API 密钥

1. 在 [maton.ai](https://maton.ai) 登录或创建账户 2. 前往 [maton.ai/settings](https://maton.ai/settings) 3. 复制您的 API 密钥

## 连接管理

在 `https://ctrl.maton.ai` 管理您的 ClickFunnels OAuth 连接。

### 列出连接

```bash python <<'EOF' import urllib.request, os, json req = urllib.request.Request('https://ctrl.maton.ai/connections?app=clickfunnels&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 ```

### 创建连接

```bash python <<'EOF' import urllib.request, os, json data = json.dumps({'app': 'clickfunnels'}).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 ```

### 获取连接

```bash 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 ```

**响应:** ```json { "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": "clickfunnels", "metadata": {} } } ```

在浏览器中打开返回的 `url` 以完成 OAuth 授权。

### 删除连接

```bash 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 ```

### 指定连接

如果您有多个 ClickFunnels 连接,请使用 `Maton-Connection` 请求头指定要使用的连接:

```bash python <<'EOF' import urllib.request, os, json req = urllib.request.Request('https://gateway.maton.ai/clickfunnels/api/v2/teams') req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}') req.add_header('User-Agent', 'Maton/1.0') req.add_header('Maton-Connection', '21fd90f9-5935-43cd-b6c8-bde9d915ca80') print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2)) EOF ```

如果省略,网关将使用默认(最早)的活跃连接。

## API 参考

### 团队 (Teams)

#### 列出团队

```bash GET /clickfunnels/api/v2/teams ```

**响应:** ```json [ { "id": 412840, "public_id": "vPNqAp", "name": "My Team", "time_zone": "Pacific Time (US & Canada)", "locale": "en", "created_at": "2026-02-07T09:28:29.709Z", "updated_at": "2026-02-07T11:14:32.118Z" } ] ```

#### 获取团队

```bash GET /clickfunnels/api/v2/teams/{team_id} ```

### 工作区 (Workspaces)

#### 列出工作区

```bash GET /clickfunnels/api/v2/teams/{team_id}/workspaces ```

**响应:** ```json [ { "id": 435231, "public_id": "JZqWGb", "team_id": 412840, "name": "My Workspace", "subdomain": "myworkspace", "created_at": "2026-02-07T09:28:31.268Z", "updated_at": "2026-02-07T09:28:34.498Z" } ] ```

#### 获取工作区

```bash GET /clickfunnels/api/v2/workspaces/{workspace_id} ```

### 联系人 (Contacts)

#### 列出联系人

```bash GET /clickfunnels/api/v2/workspaces/{workspace_id}/contacts ```

使用筛选:

```bash GET /clickfunnels/api/v2/workspaces/{workspace_id}/contacts?filter[email_address][email protected] ```

**响应:** ```json [ { "id": 1087091674, "public_id": "PWzmxEx", "workspace_id": 435231, "email_address": "[email protected]", "first_name": "John", "last_name": "Doe", "phone_number": null, "time_zone": null, "uuid": "eb7a970c-727d-4c82-9209-bd8f7457a801", "tags": [], "custom_attributes": {}, "created_at": "2026-02-07T09:28:52.713Z", "updated_at": "2026-02-07T09:28:52.777Z" } ] ```

#### 获取联系人

```bash GET /clickfunnels/api/v2/contacts/{contact_id} ```

#### 创建联系人

```bash POST /clickfunnels/api/v2/workspaces/{workspace_id}/contacts Content-Type: application/json

{ "contact": { "email_address": "[email protected]", "first_name": "Jane", "last_name": "Smith", "phone_number": "+1234567890" } } ```

#### 更新联系人

```bash PUT /clickfunnels/api/v2/contacts/{contact_id} Content-Type: application/json

{ "contact": { "first_name": "Updated Name", "phone_number": "+1987654321" } } ```

#### 删除联系人

```bash DELETE /clickfunnels/api/v2/contacts/{contact_id} ```

成功时返回 HTTP 204。

#### 更新或插入联系人 (Upsert Contact)

根据匹配的电子邮件创建或更新联系人:

```bash POST /clickfunnels/api/v2/workspaces/{workspace_id}/contacts/upsert Content-Type: application/json

{ "contact": { "email_address": "[email protected]", "first_name": "Updated" } } ```

#### GDPR 联系人数据擦除

```bash DELETE /clickfunnels/api/v2/workspaces/{workspace_id}/contacts/{contact_id}/gdpr_destroy ```

### 产品 (Products)

#### 列出产品

```bash GET /clickfunnels/api/v2/workspaces/{workspace_id}/products ```

**响应:** ```json [ { "id": 962732, "public_id": "jAvBEA", "workspace_id": 435231, "name": "My Product", "current_path": "/my-product", "archived": false, "visible_in_store": true, "visible_in_customer_center": true, "default_variant_id": 5361073, "variant_ids": [5361073], "price_ids": [], "tag_ids": [], "created_at": "2026-02-09T07:23:02.158Z", "updated_at": "2026-02-09T07:23:02.163Z" } ] ```

#### 获取产品

```bash GET /clickfunnels/api/v2/products/{product_id} ```

#### 创建产品

```bash POST /clickfunnels/api/v2/workspaces/{workspace_id}/products Content-Type: application/json

{ "product": { "name": "New Product", "visible_in_store": true, "visible_in_customer_center": true } } ```

#### 更新产品

```bash PUT /clickfunnels/api/v2/products/{product_id} Content-Type: application/json

{ "product": { "name": "Updated Product Name" } } ```

#### 归档产品

```bash POST /clickfunnels/api/v2/products/{product_id}/archive ```

#### 取消归档产品

```bash POST /clickfunnels/api/v2/products/{product_id}/unarchive ```

### 订单 (Orders)

#### 列出订单

```bash GET /clickfunnels/api/v2/workspaces/{workspace_id}/orders ```

#### 获取订单

```bash GET /clickfunnels/api/v2/orders/{order_id} ```

#### 更新订单

```bash PUT /clickfunnels/api/v2/orders/{order_id} Content-Type: application/json

{ "order": { "notes": "Updated order notes" } } ```

### 履行 (Fulfillments)

#### 列出履行

```bash GET /clickfunnels/api/v2/workspaces/{workspace_id}/fulfillments ```

#### 获取履行

```bash GET /clickfunnels/api/v2/fulfillments/{fulfillment_id} ```

#### 创建履行

```bash POST /clickfunnels/api/v2/workspaces/{workspace_id}/fulfillments Content-Type: application/json

{ "fulfillment": { "contact_id": 1087091674, "location_id": 12345, "tracking_url": "https://tracking.example.com/123", "shipping_provider": "ups", "tracking_code": "1Z999AA10123456784", "notify_customer": true } } ```

#### 取消履行

```bash POST /clickfunnels/api/v2/fulfillments/{fulfillment_id}/cancel ```

### 课程 (Courses)

#### 列出课程

```bash GET /clickfunnels/api/v2/workspaces/{workspace_id}/courses ```

#### 获取课程

```bash GET /clickfunnels/api/v2/courses/{course_id} ```

### 注册 (Enrollments)

#### 列出注册

```bash GET /clickfunnels/api/v2/courses/{course_id}/enrollments ```

#### 创建注册

```bash POST /clickfunnels/api/v2/courses/{course_id}/enrollments Content-Type: application/json

{ "courses_enrollment": { "contact_id": 1087091674 } } ```

#### 更新注册

```bash PUT /clickfunnels/api/v2/courses/{course_id}/enrollments/{enrollment_id} Content-Type: application/json

{ "courses_enrollment": { "suspended": true, "suspension_reason": "Payment failed" } } ```

### 表单 (Forms)

#### 列出表单

```bash GET /clickfunnels/api/v2/workspaces/{workspace_id}/forms ```

**响应:** ```json [ { "id": 442896, "public_id": "NdOxzL", "workspace_id": 435231, "name": "Contact Form", "created_at": "2026-02-07T09:28:33.316Z", "updated_at": "2026-02-07T09:28:33.316Z" } ] ```

#### 获取表单

```bash GET /clickfunnels/api/v2/forms/{form_id} ```

#### 列出表单提交

```bash GET /clickfunnels/api/v2/forms/{form_id}/submissions ```

### 图片 (Images)

#### 列出图片

```bash GET /clickfunnels/api/v2/workspaces/{workspace_id}/images ```

**响应:** ```json [ { "id": 20670308, "public_id": "mvvWWM", "url": "https://statics.myclickfunnels.com/workspace/JZqWGb/image/20670308/file/image.png", "workspace_id": 435231, "alt_text": null, "name": null, "created_at": "2026-02-07T09:28:40.102Z", "updated_at": "2026-02-07T09:29:01.697Z" } ] ```

#### 创建图片(通过 URL)

```bash POST /clickfunnels/api/v2/workspaces/{workspace_id}/images Content-Type: application/json

{ "image": { "upload_source_url": "https://example.com/image.png" } } ```

### Webhooks

#### 列出 Webhook 端点

```bash GET /clickfunnels/api/v2/workspaces/{workspace_id}/webhooks/outgoing/endpoints ```

**响应:** ```json [ { "id": 96677, "public_id": "vBZlEl", "workspace_id": 435231, "url": "https://example.com/webhook", "name": "My Webhook", "event_type_ids": ["contact.created"], "api_version": 2, "webhook_secret": "e779d4b2faa7d986...", "created_at": "2026-02-09T07:23:22.295Z", "updated_at": "2026-02-09T07:23:22.295Z" } ] ```

#### 创建 Webhook 端点

```bash POST /clickfunnels/api/v2/workspaces/{workspace_id}/webhooks/outgoing/endpoints Content-Type: application/json

{ "webhooks_outgoing_endpoint": { "url": "https://example.com/webhook", "name": "New Webhook", "event_type_ids": ["contact.created", "order.created"] } } ```

#### 获取 Webhook 端点

```bash GET /clickfunnels/api/v2/webhooks/outgoing/endpoints/{endpoint_id} ```

#### 更新 Webhook 端点

```bash PUT /clickfunnels/api/v2/webhooks/outgoing/endpoints/{endpoint_id} Content-Type: application/json

{ "webhooks_outgoing_endpoint": { "name": "Updated Webhook", "event_type_ids": ["contact.created", "contact.updated"] } } ```

#### 删除 Webhook 端点

```bash DELETE /clickfunnels/api/v2/webhooks/outgoing/endpoints/{endpoint_id} ```

成功时返回 HTTP 204。

## 分页

ClickFunnels 使用基于游标的分页。每个列表端点最多返回 20 个项目。

使用 `after` 参数结合最后一个项目的 ID 来获取下一页:

```bash GET /clickfunnels/api/v2/workspaces/{workspace_id}/contacts?after=1087091674 ```

**响应请求头:**

- `Pagination-Next`:最后一个项目的 ID(用于下一页) - `Link`:下一页的完整 URL

分页流程示例:

```bash # First page GET /clickfunnels/api/v2/workspaces/{workspace_id}/images

# Response header: Pagination-Next: 20670327

# Next page GET /clickfunnels/api/v2/workspaces/{workspace_id}/images?after=20670327 ```

## 筛选

使用 `filter` 查询参数来筛选列表结果:

```bash # Filter by email GET /clickfunnels/api/v2/workspaces/{workspace_id}/contacts?filter[email_address][email protected]

# Filter by multiple emails (OR) GET /clickfunnels/api/v2/workspaces/{workspace_id}/contacts?filter[email_address][email protected],[email protected]

# Multiple filters (AND) GET /clickfunnels/api/v2/workspaces/{workspace_id}/contacts?filter[email_address][email protected]&filter[id]=1087091674 ```

## 代码示例

### JavaScript

```javascript const response = await fetch( 'https://gateway.maton.ai/clickfunnels/api/v2/teams', { headers: { 'Authorization': `Bearer ${process.env.MATON_API_KEY}`, 'User-Agent': 'Maton/1.0' } } ); const teams = await response.json(); ```

### Python

```python import os import requests

response = requests.get( 'https://gateway.maton.ai/clickfunnels/api/v2/teams', headers={ 'Authorization': f'Bearer {os.environ["MATON_API_KEY"]}', 'User-Agent': 'Maton/1.0' } ) teams = response.json() ```

### 创建联系人示例

```python import os import requests

response = requests.post( 'https://gateway.maton.ai/clickfunnels/api/v2/workspaces/435231/contacts', headers={ 'Authorization': f'Bearer {os.environ["MATON_API_KEY"]}', 'Content-Type': 'application/json', 'User-Agent': 'Maton/1.0' }, json={ 'contact': { 'email_address': '[email protected]', 'first_name': 'Jane', 'last_name': 'Smith' } } ) contact = response.json() ```

## 注意事项

- 团队 ID、工作区 ID 和资源 ID 是整数 - 每个资源还有一个用于面向公众 URL 的 `public_id`(字符串) - 列表端点默认每页最多返回 20 个项目 - 使用 `after` 参数进行分页 - 删除操作返回 HTTP 204 和空响应 - 请求正文使用嵌套的资源键(例如 `{"contact": {...}}`) - 图片最大大小:10MB,最大尺寸:10,000 x 10,000 像素 - 支持的图片格式:JPEG、PNG、WebP、GIF、SVG - 重要:使用 curl 命令时,如果 URL 包含括号,请使用 `curl -g` 以禁用 glob 解析 - 重要:将 curl 输出通过管道传递给 `jq` 或其他命令时,在某些 Shell 环境中,像 `$MATON_API_KEY` 这样的环境变量可能无法正确展开

## 错误处理

| 状态 | 含义 | |--------|---------| | 400 | 缺少 ClickFunnels 连接 | | 401 | Maton API 密钥无效或缺失 | | 404 | 未找到资源 | | 422 | 验证错误(检查响应正文) | | 429 | 请求频率受限 | | 4xx/5xx | 来自 ClickFunnels API 的透传错误 |

### 故障排除:API 密钥问题

1. 检查是否设置了 `MATON_API_KEY` 环境变量:

```bash echo $MATON_API_KEY ```

2. 通过列出连接来验证 API 密钥是否有效:

```bash 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 ```

### 故障排除:无效的应用程序名称

1. 确保您的 URL 路径以 `clickfunnels` 开头。例如:

- 正确:`https://gateway.maton.ai/clickfunnels/api/v2/teams` - 错误:`https://gateway.maton.ai/api/v2/teams`

## 资源

- [ClickFunnels API 简介](https://developers.myclickfunnels.com/docs/intro) - [ClickFunnels API 参考](https://developers.myclickfunnels.com/reference) - [分页指南](https://developers.myclickfunnels.com/docs/pagination) - [筛选指南](https://developers.myclickfunnels.com/docs/filtering) - [Webhook 概述](https://developers.myclickfunnels.com/docs/webhooks-overview) - [Maton 社区](https://discord.com/invite/dBfFAcefs2) - [Maton 支持](mailto:[email protected])

更多产品