ActiveCampaign技能使用说明
2026-03-28
新闻来源:网淘吧
围观:15
电脑广告
手机广告
ActiveCampaign
通过托管的 OAuth 认证访问 ActiveCampaign API。管理联系人、交易、标签、列表、自动化和电子邮件营销活动。
快速开始
# List all contacts
python <<'EOF'
import urllib.request, os, json
req = urllib.request.Request('https://gateway.maton.ai/active-campaign/api/3/contacts')
req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
EOF
基础 URL
https://gateway.maton.ai/active-campaign/{native-api-path}
将{native-api-path}替换为实际的 ActiveCampaign API 端点路径。网关会将请求代理到{account}.api-us1.com并自动注入您的 OAuth 令牌。
认证
所有请求都需要在 Authorization 头部提供 Maton API 密钥:
Authorization: Bearer $MATON_API_KEY
环境变量:将您的 API 密钥设置为MATON_API_KEY:
export MATON_API_KEY="YOUR_API_KEY"
获取您的 API 密钥
- 登录或创建一个账户在maton.ai
- 前往maton.ai/settings
- 复制您的 API 密钥
连接管理
在https://ctrl.maton.ai管理您的ActiveCampaign OAuth连接。
列出连接
python <<'EOF'
import urllib.request, os, json
req = urllib.request.Request('https://ctrl.maton.ai/connections?app=active-campaign&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': 'active-campaign'}).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
响应:
{
"connection": {
"connection_id": "9e8ba2aa-25ec-4ba0-8815-3068be304dca",
"status": "ACTIVE",
"creation_time": "2026-02-09T20:03:16.595823Z",
"last_updated_time": "2026-02-09T20:04:09.550767Z",
"url": "https://connect.maton.ai/?session_token=...",
"app": "active-campaign",
"metadata": {}
}
}
在浏览器中打开返回的网址以完成OAuth授权。
删除连接
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
指定连接
如果您有多个ActiveCampaign连接,请使用Maton-Connection请求头来指定要使用哪一个:
python <<'EOF'
import urllib.request, os, json
req = urllib.request.Request('https://gateway.maton.ai/active-campaign/api/3/contacts')
req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}')
req.add_header('Maton-Connection', '9e8ba2aa-25ec-4ba0-8815-3068be304dca')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
EOF
如果省略,网关将使用默认的(最早创建的)活动连接。
API 参考
联系人
列出联系人
GET /active-campaign/api/3/contacts
查询参数:
limit- 返回结果数量(默认值:20)offset- 起始索引搜索- 按邮箱搜索filters[email]- 按邮箱筛选filters[listid]- 按列表ID筛选
响应:
{
"contacts": [
{
"id": "1",
"email": "user@example.com",
"firstName": "John",
"lastName": "Doe",
"phone": "",
"cdate": "2026-02-09T14:03:19-06:00",
"udate": "2026-02-09T14:03:19-06:00"
}
],
"meta": {
"total": "1"
}
}
获取联系人
GET /active-campaign/api/3/contacts/{contactId}
返回联系人及其相关数据,包括列表、标签、交易和字段值。
创建联系人
POST /active-campaign/api/3/contacts
Content-Type: application/json
{
"contact": {
"email": "newcontact@example.com",
"firstName": "John",
"lastName": "Doe",
"phone": "555-1234"
}
}
响应:
{
"contact": {
"id": "2",
"email": "newcontact@example.com",
"firstName": "John",
"lastName": "Doe",
"cdate": "2026-02-09T17:51:39-06:00",
"udate": "2026-02-09T17:51:39-06:00"
}
}
更新联系人
PUT /active-campaign/api/3/contacts/{contactId}
Content-Type: application/json
{
"contact": {
"firstName": "Updated",
"lastName": "Name"
}
}
删除联系人
DELETE /active-campaign/api/3/contacts/{contactId}
成功时返回200 OK。
同步联系人(创建或更新)
POST /active-campaign/api/3/contact/sync
Content-Type: application/json
{
"contact": {
"email": "user@example.com",
"firstName": "Updated Name"
}
}
如果联系人不存在则创建,存在则更新。
标签
列出标签
GET /active-campaign/api/3/tags
响应:
{
"tags": [
{
"id": "1",
"tag": "VIP Customer",
"tagType": "contact",
"description": "High-value customers",
"cdate": "2026-02-09T17:51:39-06:00"
}
],
"meta": {
"total": "1"
}
}
获取标签
GET /active-campaign/api/3/tags/{tagId}
创建标签
POST /active-campaign/api/3/tags
Content-Type: application/json
{
"tag": {
"tag": "New Tag",
"tagType": "contact",
"description": "Tag description"
}
}
更新标签
PUT /active-campaign/api/3/tags/{tagId}
Content-Type: application/json
{
"tag": {
"tag": "Updated Tag Name"
}
}
删除标签
DELETE /active-campaign/api/3/tags/{tagId}
联系人标签
为联系人添加标签
POST /active-campaign/api/3/contactTags
Content-Type: application/json
{
"contactTag": {
"contact": "2",
"tag": "1"
}
}
从联系人移除标签
DELETE /active-campaign/api/3/contactTags/{contactTagId}
获取联系人的标签
GET /active-campaign/api/3/contacts/{contactId}/contactTags
列表
列出所有列表
GET /active-campaign/api/3/lists
响应:
{
"lists": [
{
"id": "1",
"stringid": "master-contact-list",
"name": "Master Contact List",
"cdate": "2026-02-09T14:03:20-06:00"
}
],
"meta": {
"total": "1"
}
}
获取列表
GET /active-campaign/api/3/lists/{listId}
创建列表
POST /active-campaign/api/3/lists
Content-Type: application/json
{
"list": {
"name": "New List",
"stringid": "new-list",
"sender_url": "https://example.com",
"sender_reminder": "You signed up on our website"
}
}
更新列表
PUT /active-campaign/api/3/lists/{listId}
Content-Type: application/json
{
"list": {
"name": "Updated List Name"
}
}
删除列表
DELETE /active-campaign/api/3/lists/{listId}
联系人列表
将联系人订阅到列表
POST /active-campaign/api/3/contactLists
Content-Type: application/json
{
"contactList": {
"contact": "2",
"list": "1",
"status": "1"
}
}
状态值:1= 已订阅,2= 已取消订阅
交易
列出交易
GET /active-campaign/api/3/deals
查询参数:
搜索- 按标题、联系人或组织搜索筛选器[阶段]- 按阶段ID筛选筛选器[负责人]- 按所有者ID筛选
响应:
{
"deals": [
{
"id": "1",
"title": "New Deal",
"value": "10000",
"currency": "usd",
"stage": "1",
"owner": "1"
}
],
"meta": {
"total": 0,
"currencies": []
}
}
获取交易
GET /active-campaign/api/3/deals/{dealId}
创建交易
POST /active-campaign/api/3/deals
Content-Type: application/json
{
"deal": {
"title": "New Deal",
"value": "10000",
"currency": "usd",
"contact": "2",
"stage": "1",
"owner": "1"
}
}
更新交易
PUT /active-campaign/api/3/deals/{dealId}
Content-Type: application/json
{
"deal": {
"title": "Updated Deal",
"value": "15000"
}
}
删除交易
DELETE /active-campaign/api/3/deals/{dealId}
交易阶段
列出交易阶段
GET /active-campaign/api/3/dealStages
创建交易阶段
POST /active-campaign/api/3/dealStages
Content-Type: application/json
{
"dealStage": {
"title": "New Stage",
"group": "1",
"order": "1"
}
}
交易组(管道)
列出管道
GET /active-campaign/api/3/dealGroups
创建管道
POST /active-campaign/api/3/dealGroups
Content-Type: application/json
{
"dealGroup": {
"title": "Sales Pipeline",
"currency": "usd"
}
}
自动化流程
列出自动化流程
GET /active-campaign/api/3/automations
响应:
{
"automations": [
{
"id": "1",
"name": "Welcome Series",
"cdate": "2026-02-09T14:00:00-06:00",
"mdate": "2026-02-09T14:00:00-06:00",
"status": "1"
}
],
"meta": {
"total": "1"
}
}
获取自动化流程
GET /active-campaign/api/3/automations/{automationId}
营销活动
列出营销活动
GET /active-campaign/api/3/campaigns
响应:
{
"campaigns": [
{
"id": "1",
"name": "Newsletter",
"type": "single",
"status": "0"
}
],
"meta": {
"total": "1"
}
}
获取营销活动
GET /active-campaign/api/3/campaigns/{campaignId}
用户
列出用户
GET /active-campaign/api/3/users
响应:
{
"users": [
{
"id": "1",
"username": "admin",
"firstName": "John",
"lastName": "Doe",
"email": "admin@example.com"
}
]
}
获取用户
GET /active-campaign/api/3/users/{userId}
账户
列出账户
GET /active-campaign/api/3/accounts
创建账户
POST /active-campaign/api/3/accounts
Content-Type: application/json
{
"account": {
"name": "Acme Inc"
}
}
自定义字段
列出字段
GET /active-campaign/api/3/fields
创建字段
POST /active-campaign/api/3/fields
Content-Type: application/json
{
"field": {
"type": "text",
"title": "Custom Field",
"descript": "A custom field"
}
}
字段值
更新联系人字段值
PUT /active-campaign/api/3/fieldValues/{fieldValueId}
Content-Type: application/json
{
"fieldValue": {
"value": "New Value"
}
}
备注
列出备注
GET /active-campaign/api/3/notes
创建备注
POST /active-campaign/api/3/notes
Content-Type: application/json
{
"note": {
"note": "This is a note",
"relid": "2",
"reltype": "Subscriber"
}
}
Webhooks
列出Webhook
GET /active-campaign/api/3/webhooks
创建Webhook
POST /active-campaign/api/3/webhooks
Content-Type: application/json
{
"webhook": {
"name": "My Webhook",
"url": "https://example.com/webhook",
"events": ["subscribe", "unsubscribe"],
"sources": ["public", "admin"]
}
}
分页
ActiveCampaign使用基于偏移量的分页:
GET /active-campaign/api/3/contacts?limit=20&offset=0
参数:
limit- 每页结果数(默认:20)offset- 起始索引
响应包含元数据:
{
"contacts": [...],
"meta": {
"total": "150"
}
}
对于大型数据集,请使用orders[id]=ASC和id_greater参数以获得更好的性能:
GET /active-campaign/api/3/contacts?orders[id]=ASC&id_greater=100
代码示例
JavaScript
const response = await fetch(
'https://gateway.maton.ai/active-campaign/api/3/contacts',
{
headers: {
'Authorization': `Bearer ${process.env.MATON_API_KEY}`
}
}
);
const data = await response.json();
console.log(data.contacts);
Python
import os
import requests
response = requests.get(
'https://gateway.maton.ai/active-campaign/api/3/contacts',
headers={'Authorization': f'Bearer {os.environ["MATON_API_KEY"]}'}
)
data = response.json()
print(data['contacts'])
Python(创建带标签的联系人)
import os
import requests
headers = {
'Authorization': f'Bearer {os.environ["MATON_API_KEY"]}',
'Content-Type': 'application/json'
}
# Create contact
contact_response = requests.post(
'https://gateway.maton.ai/active-campaign/api/3/contacts',
headers=headers,
json={
'contact': {
'email': 'newuser@example.com',
'firstName': 'New',
'lastName': 'User'
}
}
)
contact = contact_response.json()['contact']
print(f"Created contact ID: {contact['id']}")
# Add tag to contact
tag_response = requests.post(
'https://gateway.maton.ai/active-campaign/api/3/contactTags',
headers=headers,
json={
'contactTag': {
'contact': contact['id'],
'tag': '1'
}
}
)
print("Tag added to contact")
注意事项
- 所有端点都需要
/api/3/前缀 - 请求体使用单数资源名称,并包裹在对象中(例如,
{"contact": {...}}) - ID 以字符串形式返回
- 时间戳采用带时区的 ISO 8601 格式
- 速率限制:每个账户每秒 5 个请求
- DELETE 操作返回 200 OK(而非 204)
- 重要提示:当将 curl 输出通过管道传递给
jq或其他命令时,某些 shell 环境中可能无法正确展开像$MATON_API_KEY这样的环境变量
错误处理
| 状态码 | 含义 |
|---|---|
| 400 | 缺少ActiveCampaign连接或请求错误 |
| 401 | Maton API密钥无效或缺失 |
| 404 | 资源未找到 |
| 422 | 验证错误 |
| 429 | 请求频率受限(5次/秒) |
| 4xx/5xx | 来自ActiveCampaign API的透传错误 |
错误响应包含详细信息:
{
"errors": [
{
"title": "The contact email is required",
"source": {
"pointer": "/data/attributes/email"
}
}
]
}
故障排除:API密钥无效
当您收到"API密钥无效"错误时,在确认问题之前,请务必遵循以下步骤:
- 检查
MATON_API_KEY环境变量是否已设置:
echo $MATON_API_KEY
- 通过列出连接来验证API密钥是否有效:
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
资源
文章底部电脑广告
手机广告位-内容正文底部
上一篇:Basecamp技能使用说明
下一篇:Monitoring技能使用说明


微信扫一扫,打赏作者吧~