You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:借助Make通过HubSpot API批量删除超一月历史任务

批量删除HubSpot中创建超1个月任务的技术方案

核心方案:基于HubSpot CRM API实现

HubSpot原生无批量删除任务的功能,但可以通过官方API实现自动化批量操作,以下是具体步骤:

1. 准备API访问凭证

先获取有效的API访问凭证:

  • OAuth 2.0令牌(推荐长期使用):在HubSpot开发者平台创建应用,获取授权令牌,确保权限包含crm.objects.tasks.read和crm.objects.tasks.write。
  • API密钥(快速测试用):在HubSpot账户设置的「Integrations > API Key」中生成,注意密钥的权限范围。

2. 筛选符合条件的任务ID

调用HubSpot Tasks列表API,过滤出创建时间早于1个月前的任务,同时处理分页(任务量超10000条,必须分页获取):

  • 计算一个月前的ISO 8601格式日期(例如2024-04-20T00:00:00Z,可按30天或自然月计算)。
  • 使用GET /crm/v3/objects/tasks接口,通过filterGroups参数过滤createdate字段,limit设为最大100,通过after参数翻页获取所有符合条件的任务ID。

示例curl请求:

curl --request GET \
  --url 'https://api.hubapi.com/crm/v3/objects/tasks?limit=100&filterGroups=[{"filters":[{"propertyName":"createdate","operator":"LT","value":"2024-04-20T00:00:00Z"}]}]' \
  --header 'Authorization: Bearer YOUR_ACCESS_TOKEN'

3. 批量归档(删除)任务

HubSpot中「删除」任务实际是归档操作,使用批量归档接口POST /crm/v3/objects/tasks/batch/archive,每次最多提交100个任务ID:

示例curl请求:

curl --request POST \
  --url https://api.hubapi.com/crm/v3/objects/tasks/batch/archive \
  --header 'Authorization: Bearer YOUR_ACCESS_TOKEN' \
  --header 'Content-Type: application/json' \
  --data '{
    "inputs": [
      {"id": "12345"},
      {"id": "67890"}
      // 最多100个ID
    ]
  }'

4. 自动化脚本实现(一键批量操作)

用Python编写脚本可实现全自动化,还能定时执行(比如Linux cron、Windows任务计划):

import requests
from datetime import datetime
from dateutil.relativedelta import relativedelta  # 需要安装 python-dateutil

# 配置参数
ACCESS_TOKEN = "YOUR_OAUTH_TOKEN"
API_BASE_URL = "https://api.hubapi.com/crm/v3/objects/tasks"

# 计算自然月前的日期(比固定30天更准确)
one_month_ago = (datetime.now() - relativedelta(months=1)).isoformat() + "Z"

# 分页获取所有目标任务ID
task_ids = []
page_after = None

while True:
    params = {
        "limit": 100,
        "filterGroups": '[{"filters":[{"propertyName":"createdate","operator":"LT","value":"' + one_month_ago + '"}]}]'
    }
    if page_after:
        params["after"] = page_after
    
    response = requests.get(
        API_BASE_URL,
        headers={"Authorization": f"Bearer {ACCESS_TOKEN}"},
        params=params
    )
    response.raise_for_status()  # 捕获API请求错误
    data = response.json()
    
    task_ids.extend([item["id"] for item in data["results"]])
    
    # 检查是否还有下一页
    if not data.get("paging"):
        break
    page_after = data["paging"]["next"]["after"]

# 批量归档任务,每100个一组
for batch_start in range(0, len(task_ids), 100):
    batch_ids = task_ids[batch_start:batch_start+100]
    archive_payload = {"inputs": [{"id": task_id} for task_id in batch_ids]}
    
    archive_response = requests.post(
        f"{API_BASE_URL}/batch/archive",
        headers={"Authorization": f"Bearer {ACCESS_TOKEN}", "Content-Type": "application/json"},
        json=archive_payload
    )
    archive_response.raise_for_status()
    print(f"处理批次 {batch_start//100 +1}:成功归档 {len(batch_ids)} 条任务")

安装依赖:

pip install requests python-dateutil

排查Make(原Integromat)失败原因

如果之前用Make没成功,大概率是以下问题:

  • 未处理分页:Make默认只拉取第一页数据,需添加「循环分页」模块遍历所有符合条件的任务。
  • 批量操作超限:HubSpot批量删除每次最多100个ID,Make中需确保每批次不超过限制。
  • 权限不足:检查Make中HubSpot连接的权限,是否包含任务的读写权限。

内容的提问来源于stack exchange,提问作者Gabriel GUERIN

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 22:45:26