# 修改任务

该接口用于修改已存在的任务，包括修改任务名称、使用的机器人、并发数、线路以及背景音。

<span style="display:inline-block;background:#e6f8ea;color:#fca130;border-radius:6px;padding:2px 8px;font-weight:bold;font-family:monospace;margin-right:8px;">PUT</span>
`https://dashboard.avavox.com/open/api/task/{taskId}`

## 请求头

 <span style="font-family:monospace; color:#3451b2; ">Authorization </span> <code style="background:#f0f0f0; ">string</code> <span style="background:#dc3545; color:white; padding:2px 6px; border-radius:3px; font-size:12px;">必填</span>

- 填写格式：`Authorization: Bearer <App Key>`
- `<App Key>` 为控制台「App Key 管理」页面生成的 Key。
- 获取方式详见：[《App Key 创建与管理》](https://avavox.com/docs/developer/app-key.html)。


## Path 参数
<span style="font-family:monospace; color:#3451b2; ">taskId </span> <code style="background:#f0f0f0; ">string</code> <span style="background:#dc3545; color:white; padding:2px 6px; border-radius:3px; font-size:12px;">必填</span>

需要更新的任务ID


## 请求体参数

<span style="font-family:monospace; color:#3451b2;">taskName</span> <code style="background:#f0f0f0;">string</code> <span style="background:#28a745; color:white; padding:2px 6px; border-radius:3px; font-size:12px;">可选</span>

新的任务名称，长度 1–300 个字符。不传则保持原任务名称不变。

---

<span style="font-family:monospace; color:#3451b2;">robotId</span> <code style="background:#f0f0f0;">string</code> <span style="background:#28a745; color:white; padding:2px 6px; border-radius:3px; font-size:12px;">可选</span>

将任务绑定的机器人替换为指定机器人。该值为机器人 ID，可在机器人详情中获取，或通过[机器人查询](https://avavox.com/docs/developer/query-robot.html)接口获取。不传则不修改。

---


<span style="font-family:monospace; color:#3451b2;">lineId</span> `string` <span style="background:#28a745; color:white; padding:2px 6px; border-radius:3px; font-size:12px;">可选</span>

任务使用的线路 ID，可通过[线路查询](https://avavox.com/docs/developer/query-line.html)接口获取。不传则不修改。若任务最终未配置任何有效线路，则无法发起呼叫。


---

<span style="font-family:monospace; color:#3451b2;">lineIds</span> `array` <span style="background:#28a745; color:white; padding:2px 6px; border-radius:3px; font-size:12px;">可选</span>

需要使用的线路列表，可通过[线路查询](https://avavox.com/docs/developer/query-line.html)接口获取，不传则保持原配置不变。

- 仅传 `lineIds` 时，使用该列表作为任务线路配置
- 同时传 `lineId` 和 `lineIds` 时，系统会将两者合并后作为最终线路配置
- 若存在重复线路 ID，系统会自动去重
---


<span style="font-family:monospace; color:#3451b2;">backgroundAudio</span> `string` <span style="background:#28a745; color:white; padding:2px 6px; border-radius:3px; font-size:12px;">可选</span>

任务的背景音配置，不传则保持原配置（默认无背景音）。
- `office_ambient`：办公室环境音
- `busy_call_center`：繁忙的呼叫中心办公室
- `telemarketing_office`：电销办公室


---



<span style="font-family:monospace; color:#3451b2;">concurrency</span> `number` <span style="background:#28a745; color:white; padding:2px 6px; border-radius:3px; font-size:12px;">可选</span>

任务的最大并发呼叫数。不传则保持原配置。实际生效并发数为「任务配置的并发数」与「所用线路支持的最大并发数」两者中的较小值。


---




<span style="font-family:monospace; color:#3451b2;">runtimeConfig</span> `object` <span style="background:#28a745; color:white; padding:2px 6px; border-radius:3px; font-size:12px;">可选</span>

运行时配置项，用于控制任务的行为策略，包括重呼配置等。

<details>
<summary >点击展开字段说明</summary>
<div style="margin: 16px 0; padding: 16px;  border-left: 1px solid #f0f0f0; border-radius: 6px;">

<span style="font-family:monospace; color:#3451b2;">retryConfig</span> `object` <span style="background:#28a745; color:white; padding:2px 6px; border-radius:3px; font-size:12px;">可选</span>

重呼配置。  **如果要禁用重呼配置，必须将 `enabled` 设置为 `false` 才会生效**

<details>
<summary >点击展开字段说明</summary>

<div style="margin: 16px 0; padding: 16px;  border-left: 1px solid #f0f0f0; border-radius: 6px;">

<span style="font-family:monospace; color:#3451b2;">retryableStatuses</span> `array` <span style="background:#28a745; color:white; padding:2px 6px; border-radius:3px; font-size:12px;">可选</span>

触发重呼的状态列表，可多选，枚举值如下：

- `unconnected`：未接通
- `no_one_answer`：无人接听
- `timeout`：超时未接听
- `user_refuse`：用户拒接
- `unreachable`：无法接通
- `insufficient_balance`：用户欠费
- `powered_off`：关机
- `service_suspended`：停机
- `invalid_number`：空号
- `call_fail`：呼叫失败
- `busy`：占线

---

<span style="font-family:monospace; color:#3451b2;">maxRetries</span> `number` <span style="background:#28a745; color:white; padding:2px 6px; border-radius:3px; font-size:12px;">可选</span>

重呼次数，最大为5次

---

<span style="font-family:monospace; color:#3451b2;">retryInterval</span> `number` <span style="background:#28a745; color:white; padding:2px 6px; border-radius:3px; font-size:12px;">可选</span>

呼叫间隔，最小为1，单位：分钟

---

<span style="font-family:monospace; color:#3451b2;">enabled</span> `boolean` <span style="background:#28a745; color:white; padding:2px 6px; border-radius:3px; font-size:12px;">可选</span>

是否启用重呼配置，`true`-启用，`false`-不启用，默认为 `true`

</div>
</details>



</div>
</details>


---


<span style="font-family:monospace; color:#3451b2;">callTimeType</span> `string` <span style="background:#28a745; color:white; padding:2px 6px; border-radius:3px; font-size:12px;">可选</span>

拨打时间类型，默认为`immediate`，枚举值如下：

- `immediate`：立即拨打，创建任务并导入数据之后，立即开始拨打
- `scheduled`：根据选择的拨打时间段进行拨打

---




<span style="font-family:monospace; color:#3451b2;">scheduledTime</span> <code style="background:#f0f0f0;">array</code> <span style="background:#28a745; color:white; padding:2px 6px; border-radius:3px; font-size:12px;">可选</span>

定义任务的拨打时间。可定义多个时间段，各时间段之间不能交叉，仅当拨打时间类型（`callTimeType`）为 `scheduled` 时该字段才会生效。结构如下:

<details>
<summary >点击展开字段说明</summary>

<div style="margin: 16px 0; padding: 16px;  border-left: 1px solid #f0f0f0; border-radius: 6px;">


<span style="font-family:monospace; color:#3451b2;">dayOfWeeks</span> `array` <span style="background:#dc3545; color:white; padding:2px 6px; border-radius:3px; font-size:12px;">必填</span>

时间片段生效的日期，周一到周天分别对应 1 到 7

---




<span style="font-family:monospace; color:#3451b2;">times</span> <code style="background:#f0f0f0;">array</code> <span style="background:#dc3545; color:white; padding:2px 6px; border-radius:3px; font-size:12px;">必填</span>

可以拨打的时间段。每个时间段不能交叉，结构如下：

<details>
<summary >点击展开字段说明</summary>


<div style="margin: 16px 0; padding: 16px;  border-left: 1px solid #f0f0f0; border-radius: 6px;">


<span style="font-family:monospace; color:#3451b2;">startTime</span> `string` <span style="background:#dc3545; color:white; padding:2px 6px; border-radius:3px; font-size:12px;">必填</span>

开始时间，时间格式为 `HH:mm`，精确到分钟

---

<span style="font-family:monospace; color:#3451b2;">endTime</span> `string` <span style="background:#dc3545; color:white; padding:2px 6px; border-radius:3px; font-size:12px;">必填</span>

结束时间，时间格式为 `HH:mm`，精确到分钟


</div>
</details>


</div>
</details>






## 响应数据


 <span style="font-family:monospace; color:#3451b2; ">code</span> <code style="background:#f0f0f0; ">int</code>

状态码，200 为成功，其他状态均为失败。

---

 <span style="font-family:monospace; color:#3451b2; ">success</span> <code style="background:#f0f0f0;">boolean</code>

是否成功，`true` 表示成功，`false` 表示失败。

---


 <span style="font-family:monospace; color:#3451b2; ">message</span> <code style="background:#f0f0f0; ">string</code>

描述信息

---

 <span style="font-family:monospace; color:#3451b2; ">data</span> <code style="background:#f0f0f0; ">object</code>

默认为 `null`






## 请求示例

```shell
curl -X PUT --location 'https://dashboard.avavox.com/open/api/task/123' \
--header 'Authorization: Bearer $Key' \
--header 'Content-Type: application/json' \
--data '{
  "taskName": "任务名称",
  "robotId": "关联的机器人ID",
  "lineId": "线路ID",
  "lineIds": ["线路2"],
  "backgroundAudio": "office_ambient",
  "concurrency": 10,
  "runtimeConfig": {
    "retryConfig": {
      "retryableStatuses": [
        "busy",
        "timeout"
      ],
      "maxRetries": 1,
      "retryInterval": 1,
      "enabled": true
    }
  },
  "callTimeType": "scheduled",
  "scheduledTime": [
    {
      "dayOfWeeks": [1,2,3,4,5],
      "times": [
        {
          "startTime": "09:00",
          "endTime": "12:00"
        },
        {
          "startTime": "14:00",
          "endTime": "18:00"
        }
      ]
    },
    {
      "dayOfWeeks": [6, 7],
      "times": [
        {
          "startTime": "10:00",
          "endTime": "12:00"
        },
        {
          "startTime": "15:00",
          "endTime": "17:00"
        }
      ]
    }
  ]
}'

```



## 响应示例

```json
{
  "code": 200,
  "message": "操作成功",
  "success": true,
  "data": null
}
```
