任務管理 API
概述
任務管理 API 提供外撥任務的完整生命週期管理,包括創建、查詢、修改、狀態管理和監控功能。任務是外撥工作流的核心單位,包含目標聯絡人清單和撥打規則配置。
任務列表
請求方式
http
GET /api/task/list
Content-Type: application/json
Authorization: Bearer {accessToken}查詢參數
| 參數名 | 型別 | 必填 | 說明 |
|---|---|---|---|
pageNum | integer | 否 | 頁碼,預設值為 1 |
pageSize | integer | 否 | 每頁數量,預設值為 20 |
taskName | string | 否 | 任務名稱 (支援模糊查詢) |
status | integer | 否 | 任務狀態 (0-6) |
請求範例
bash
curl -X GET "https://api.aicc.com/api/task/list?pageNum=1&pageSize=20&status=1" \
-H "Authorization: Bearer {accessToken}" \
-H "Content-Type: application/json"回應範例
json
{
"code": 0,
"message": "success",
"data": {
"total": 15,
"rows": [
{
"id": "1",
"taskName": "Q1銀行卡推廣",
"taskDesc": "推廣新型銀行卡業務",
"status": 1,
"dataSourceId": "1",
"contactCount": 1000,
"callCount": 320,
"successCount": 85,
"createTime": "2026-02-15 09:00:00",
"startTime": "2026-02-15 10:00:00",
"endTime": null
}
]
}
}任務狀態說明
| 狀態碼 | 狀態名稱 | 說明 |
|---|---|---|
| 0 | 草稿 (DRAFT) | 尚未發佈,可自由編輯 |
| 1 | 進行中 (RUNNING) | 任務已發佈,正在進行撥打 |
| 2 | 暫停 (PAUSED) | 已暫停,可繼續執行 |
| 3 | 停止 (STOPPED) | 已停止,不能繼續執行 |
| 4 | 完成 (COMPLETED) | 所有聯絡人已撥打完成 |
| 5 | 失敗 (FAILED) | 任務執行失敗 |
| 6 | 已關閉 (CLOSED) | 已關閉,無法修改 |
取得任務詳情
請求方式
GET /api/task/detail/{id}
Content-Type: application/json
Authorization: Bearer {accessToken}路徑參數
| 參數名 | 型別 | 必填 | 說明 |
|---|---|---|---|
id | string | 是 | 任務 ID |
請求範例
bash
curl -X GET "https://api.aicc.com/api/task/detail/1" \
-H "Authorization: Bearer {accessToken}" \
-H "Content-Type: application/json"回應範例
json
{
"code": 0,
"message": "success",
"data": {
"id": "1",
"taskName": "Q1銀行卡推廣",
"taskDesc": "推廣新型銀行卡業務",
"status": 1,
"dataSourceId": "1",
"contactCount": 1000,
"callCount": 320,
"successCount": 85,
"failCount": 15,
"noAnswerCount": 220,
"dialRate": 0.32,
"successRate": 0.265625,
"callDuration": 45600,
"avgCallDuration": 142.5,
"priority": 1,
"maxDialCount": 3,
"createTime": "2026-02-15 09:00:00",
"startTime": "2026-02-15 10:00:00",
"updateTime": "2026-03-23 16:00:00"
}
}新增任務
請求方式
POST /api/task/add
Content-Type: application/json
Authorization: Bearer {accessToken}請求參數
| 參數名 | 型別 | 必填 | 說明 |
|---|---|---|---|
taskName | string | 是 | 任務名稱,長度 1-100 字元 |
taskDesc | string | 否 | 任務說明 |
dataSourceId | string | 是 | 資料來源 ID |
priority | integer | 否 | 優先級 (1-5),預設為 3 |
maxDialCount | integer | 否 | 最大撥打次數 (1-10),預設為 3 |
callInterval | integer | 否 | 撥打間隔 (秒),預設為 60 |
dailyStartTime | string | 否 | 每日開始時間 (HH:MM) |
dailyEndTime | string | 否 | 每日結束時間 (HH:MM) |
請求範例
json
{
"taskName": "春季促銷活動",
"taskDesc": "新產品春季推廣",
"dataSourceId": "2",
"priority": 2,
"maxDialCount": 3,
"callInterval": 60,
"dailyStartTime": "09:00",
"dailyEndTime": "18:00"
}成功回應範例
json
{
"code": 0,
"message": "success",
"data": {
"id": "2",
"taskName": "春季促銷活動",
"taskDesc": "新產品春季推廣",
"status": 0,
"dataSourceId": "2",
"contactCount": 250,
"createTime": "2026-03-23 15:00:00"
}
}修改任務
請求方式
POST /api/task/update
Content-Type: application/json
Authorization: Bearer {accessToken}請求參數
| 參數名 | 型別 | 必填 | 說明 |
|---|---|---|---|
id | string | 是 | 任務 ID |
taskName | string | 否 | 任務名稱 |
taskDesc | string | 否 | 任務說明 |
priority | integer | 否 | 優先級 |
maxDialCount | integer | 否 | 最大撥打次數 |
callInterval | integer | 否 | 撥打間隔 |
dailyStartTime | string | 否 | 每日開始時間 |
dailyEndTime | string | 否 | 每日結束時間 |
請求範例
json
{
"id": "2",
"taskName": "2026年春季促銷活動",
"priority": 1
}成功回應範例
json
{
"code": 0,
"message": "success",
"data": {
"id": "2",
"taskName": "2026年春季促銷活動",
"updateTime": "2026-03-23 15:30:00"
}
}發佈任務
請求方式
POST /api/task/publish
Content-Type: application/json
Authorization: Bearer {accessToken}請求參數
| 參數名 | 型別 | 必填 | 說明 |
|---|---|---|---|
id | string | 是 | 任務 ID |
請求範例
json
{
"id": "2"
}成功回應範例
json
{
"code": 0,
"message": "success",
"data": {
"id": "2",
"status": 1,
"startTime": "2026-03-23 15:45:00"
}
}暫停任務
請求方式
POST /api/task/pause
Content-Type: application/json
Authorization: Bearer {accessToken}請求參數
| 參數名 | 型別 | 必填 | 說明 |
|---|---|---|---|
id | string | 是 | 任務 ID |
請求範例
json
{
"id": "1"
}成功回應範例
json
{
"code": 0,
"message": "success",
"data": {
"id": "1",
"status": 2
}
}繼續任務
請求方式
POST /api/task/resume
Content-Type: application/json
Authorization: Bearer {accessToken}請求參數
| 參數名 | 型別 | 必填 | 說明 |
|---|---|---|---|
id | string | 是 | 任務 ID |
請求範例
json
{
"id": "1"
}成功回應範例
json
{
"code": 0,
"message": "success",
"data": {
"id": "1",
"status": 1
}
}停止任務
請求方式
POST /api/task/stop
Content-Type: application/json
Authorization: Bearer {accessToken}請求參數
| 參數名 | 型別 | 必填 | 說明 |
|---|---|---|---|
id | string | 是 | 任務 ID |
reason | string | 否 | 停止原因 |
請求範例
json
{
"id": "1",
"reason": "達到預期目標"
}成功回應範例
json
{
"code": 0,
"message": "success",
"data": {
"id": "1",
"status": 3
}
}重撥任務中的聯絡人
請求方式
POST /api/task/{id}/recall
Content-Type: application/json
Authorization: Bearer {accessToken}路徑參數
| 參數名 | 型別 | 必填 | 說明 |
|---|---|---|---|
id | string | 是 | 任務 ID |
請求參數
| 參數名 | 型別 | 必填 | 說明 |
|---|---|---|---|
contactIds | array | 否 | 要重撥的聯絡人 ID 清單;若為空則重撥所有失敗的聯絡人 |
priority | integer | 否 | 重撥優先級,預設為 5 (最低) |
請求範例
json
{
"contactIds": ["contact_1", "contact_2"],
"priority": 3
}成功回應範例
json
{
"code": 0,
"message": "success",
"data": {
"recallCount": 2,
"recallIds": ["contact_1", "contact_2"]
}
}匯出任務聯絡人
請求方式
GET /api/task/{id}/export
Authorization: Bearer {accessToken}路徑參數
| 參數名 | 型別 | 必填 | 說明 |
|---|---|---|---|
id | string | 是 | 任務 ID |
查詢參數
| 參數名 | 型別 | 必填 | 說明 |
|---|---|---|---|
format | string | 否 | 匯出格式 (csv、excel),預設為 excel |
status | integer | 否 | 篩選狀態 (全部、成功、失敗、未撥打) |
請求範例
bash
curl -X GET "https://api.aicc.com/api/task/1/export?format=excel&status=1" \
-H "Authorization: Bearer {accessToken}" \
-o task_contacts.xlsx回應
直接返回檔案流,檔案名稱為 task_contacts_[taskId]_[timestamp].[format]
監控任務統計
請求方式
GET /api/task/{id}/stat
Content-Type: application/json
Authorization: Bearer {accessToken}路徑參數
| 參數名 | 型別 | 必填 | 說明 |
|---|---|---|---|
id | string | 是 | 任務 ID |
請求範例
bash
curl -X GET "https://api.aicc.com/api/task/1/stat" \
-H "Authorization: Bearer {accessToken}" \
-H "Content-Type: application/json"回應範例
json
{
"code": 0,
"message": "success",
"data": {
"taskId": "1",
"taskName": "Q1銀行卡推廣",
"status": 1,
"totalContacts": 1000,
"callCount": 320,
"successCount": 85,
"failCount": 15,
"noAnswerCount": 220,
"dialRate": 0.32,
"successRate": 0.265625,
"totalDuration": 45600,
"avgDuration": 142.5,
"lastUpdateTime": "2026-03-23 16:00:00"
}
}常見錯誤
| 錯誤碼 | 說明 | 解決方案 |
|---|---|---|
| 400 | 任務名稱為空或資料來源不存在 | 提供有效的名稱和資料來源 ID |
| 404 | 任務不存在 | 確認任務 ID 是否正確 |
| 405 | 無法在當前狀態執行操作 | 檢查任務狀態是否允許此操作 |
| 409 | 任務名稱已存在 | 使用不同的任務名稱 |
| 500 | 伺服器錯誤 | 聯絡技術支援 |
注意事項
- 草稿狀態:只有狀態為 0 (草稿) 的任務才可以編輯
- 發佈任務:發佈後無法修改基本配置,只能修改運行狀態
- 聯絡人數量:確保資料來源有足夠的聯絡人
- 時間設定:dailyStartTime 和 dailyEndTime 用於限制每日撥打時段
- 優先級:1-5 之間,1 為最高優先級