网淘吧来吧,欢迎您!

ActiveCampaign技能使用说明

2026-03-28 新闻来源:网淘吧 围观:17
电脑广告
手机广告

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 密钥

  1. 登录或创建一个账户在maton.ai
  2. 前往maton.ai/settings
  3. 复制您的 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]=ASCid_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连接或请求错误
401Maton API密钥无效或缺失
404资源未找到
422验证错误
429请求频率受限(5次/秒)
4xx/5xx来自ActiveCampaign API的透传错误

错误响应包含详细信息:

{
  "errors": [
    {
      "title": "The contact email is required",
      "source": {
        "pointer": "/data/attributes/email"
      }
    }
  ]
}

故障排除:API密钥无效

当您收到"API密钥无效"错误时,在确认问题之前,请务必遵循以下步骤:

  1. 检查MATON_API_KEY环境变量是否已设置:
echo $MATON_API_KEY
  1. 通过列出连接来验证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

资源

免责申明
部分文章来自各大搜索引擎,如有侵权,请与我联系删除。
打赏
文章底部电脑广告
手机广告位-内容正文底部

相关文章

您是本站第345664名访客 今日有102篇新文章/评论