# Update only the call windows + timezone
curl -X PUT "https://app.talkover.ai/api/v1/campaigns/campaign-uuid-1" \
-H "Authorization: Bearer talq_your_environment_token_here" \
-H "Content-Type: application/json" \
-d '{
"call_time_ranges": [
{"start": "10:00", "end": "12:00"},
{"start": "14:00", "end": "16:00"}
],
"timezone": "America/Sao_Paulo"
}'
const response = await fetch('https://app.talkover.ai/api/v1/campaigns/campaign-uuid-1', {
method: 'PUT',
headers: {
'Authorization': 'Bearer talq_your_environment_token_here',
'Content-Type': 'application/json'
},
body: JSON.stringify({
call_time_ranges: [
{ start: '10:00', end: '12:00' },
{ start: '14:00', end: '16:00' }
],
timezone: 'America/Sao_Paulo'
})
});
const result = await response.json();
import requests
url = "https://app.talkover.ai/api/v1/campaigns/campaign-uuid-1"
headers = {
"Authorization": "Bearer talq_your_environment_token_here",
"Content-Type": "application/json"
}
data = {
"call_time_ranges": [
{"start": "10:00", "end": "12:00"},
{"start": "14:00", "end": "16:00"}
],
"timezone": "America/Sao_Paulo"
}
response = requests.put(url, headers=headers, json=data)
result = response.json()
{
"success": true,
"data": {
"id": "campaign-uuid-1",
"name": "Sales Campaign Q1",
"campaign_type": "sales",
"status": "active",
"agent_id": "agent-uuid-1",
"start_date": "2024-01-01",
"end_date": null,
"days_of_week": [1, 2, 3, 4, 5],
"call_time_ranges": [
{"start": "10:00", "end": "12:00"},
{"start": "14:00", "end": "16:00"}
],
"timezone": "America/Sao_Paulo",
"max_retries": 3,
"retry_cooldown_hours": 24,
"do_not_call_enabled": false,
"updated_at": "2024-01-15T11:30:00Z"
}
}
Chamadas e Campanhas
Atualizar Campanha
Atualizar parcialmente a configuração de uma campanha
PUT
/
api
/
v1
/
campaigns
/
{campaign_id}
# Update only the call windows + timezone
curl -X PUT "https://app.talkover.ai/api/v1/campaigns/campaign-uuid-1" \
-H "Authorization: Bearer talq_your_environment_token_here" \
-H "Content-Type: application/json" \
-d '{
"call_time_ranges": [
{"start": "10:00", "end": "12:00"},
{"start": "14:00", "end": "16:00"}
],
"timezone": "America/Sao_Paulo"
}'
const response = await fetch('https://app.talkover.ai/api/v1/campaigns/campaign-uuid-1', {
method: 'PUT',
headers: {
'Authorization': 'Bearer talq_your_environment_token_here',
'Content-Type': 'application/json'
},
body: JSON.stringify({
call_time_ranges: [
{ start: '10:00', end: '12:00' },
{ start: '14:00', end: '16:00' }
],
timezone: 'America/Sao_Paulo'
})
});
const result = await response.json();
import requests
url = "https://app.talkover.ai/api/v1/campaigns/campaign-uuid-1"
headers = {
"Authorization": "Bearer talq_your_environment_token_here",
"Content-Type": "application/json"
}
data = {
"call_time_ranges": [
{"start": "10:00", "end": "12:00"},
{"start": "14:00", "end": "16:00"}
],
"timezone": "America/Sao_Paulo"
}
response = requests.put(url, headers=headers, json=data)
result = response.json()
{
"success": true,
"data": {
"id": "campaign-uuid-1",
"name": "Sales Campaign Q1",
"campaign_type": "sales",
"status": "active",
"agent_id": "agent-uuid-1",
"start_date": "2024-01-01",
"end_date": null,
"days_of_week": [1, 2, 3, 4, 5],
"call_time_ranges": [
{"start": "10:00", "end": "12:00"},
{"start": "14:00", "end": "16:00"}
],
"timezone": "America/Sao_Paulo",
"max_retries": 3,
"retry_cooldown_hours": 24,
"do_not_call_enabled": false,
"updated_at": "2024-01-15T11:30:00Z"
}
}
Atualizar Campanha
Atualiza parcialmente uma campanha existente. Todos os campos são opcionais — apenas os campos que você enviar serão atualizados. Use Atualizar Status da Campanha para alterar apenas o status (draft → active → paused → completed).
Endpoint
PUT /api/v1/campaigns/{campaign_id}
Parâmetros de caminho
string
obrigatório
UUID da campanha a ser atualizada.
Cabeçalhos da requisição
string
obrigatório
Token Bearer para autenticação. Formato:
Bearer talq_your_environment_token_herestring
obrigatório
Deve ser definido como
application/jsonCorpo da requisição
Todos os campos são opcionais. Envie apenas o que você quer alterar. As regras de validação e faixas correspondem a Criar Campanha.Identificação
string
Nome da campanha. Máximo de 255 caracteres.
string
Descrição livre.
string
Categoria da campanha. Opções:
sales, follow_up, reminder, custom.string
UUID do agente. Deve existir em seu ambiente.
Agendamento
string
Formato:
YYYY-MM-DD.string
Data de término opcional. Deve ser após
start_date. Formato: YYYY-MM-DD. Envie null para limpar.array
Array de números de dias da semana (
1–7, onde 1 = Segunda-feira). Mínimo de 1 entrada.array
Janelas de horário. Array de objetos
{start: "HH:MM", end: "HH:MM"} (formato 24h). Mínimo de 1 entrada. O end de cada janela deve ser após seu start.string
Fuso horário IANA (ex:
America/Sao_Paulo). Máximo de 50 caracteres.Retry e Cooldown
integer
Atraso inicial em segundos. Faixa:
0+.integer
Faixa:
0–10.integer
Faixa:
1–168.boolean
Auto-transição para
completed quando todos os contatos forem processados.boolean
Retenta chamadas que foram completadas sem conversão.
boolean
integer
Faixa:
1–168.integer
Faixa:
1–168.integer
Faixa:
1–168.integer
Faixa:
1–168.integer
Faixa:
1–168.integer
Faixa:
1–168.Do-Not-Call (DNC)
boolean
string
Opções:
environment, global, custom.array
Array de números de telefone (E.164). Usado quando
do_not_call_list_source é custom.boolean
array
array
Exemplos
# Update only the call windows + timezone
curl -X PUT "https://app.talkover.ai/api/v1/campaigns/campaign-uuid-1" \
-H "Authorization: Bearer talq_your_environment_token_here" \
-H "Content-Type: application/json" \
-d '{
"call_time_ranges": [
{"start": "10:00", "end": "12:00"},
{"start": "14:00", "end": "16:00"}
],
"timezone": "America/Sao_Paulo"
}'
const response = await fetch('https://app.talkover.ai/api/v1/campaigns/campaign-uuid-1', {
method: 'PUT',
headers: {
'Authorization': 'Bearer talq_your_environment_token_here',
'Content-Type': 'application/json'
},
body: JSON.stringify({
call_time_ranges: [
{ start: '10:00', end: '12:00' },
{ start: '14:00', end: '16:00' }
],
timezone: 'America/Sao_Paulo'
})
});
const result = await response.json();
import requests
url = "https://app.talkover.ai/api/v1/campaigns/campaign-uuid-1"
headers = {
"Authorization": "Bearer talq_your_environment_token_here",
"Content-Type": "application/json"
}
data = {
"call_time_ranges": [
{"start": "10:00", "end": "12:00"},
{"start": "14:00", "end": "16:00"}
],
"timezone": "America/Sao_Paulo"
}
response = requests.put(url, headers=headers, json=data)
result = response.json()
# Switch to custom DNC list and tighten retry policy
curl -X PUT "https://app.talkover.ai/api/v1/campaigns/campaign-uuid-1" \
-H "Authorization: Bearer talq_your_environment_token_here" \
-H "Content-Type: application/json" \
-d '{
"max_retries": 2,
"retry_cooldown_hours": 12,
"success_cooldown_hours": 168,
"do_not_call_enabled": true,
"do_not_call_list_source": "custom",
"do_not_call_custom_list": ["+5511987654321"],
"auto_add_to_dnc_enabled": true,
"auto_dnc_trigger_statuses": ["completed"]
}'
Resposta
Resposta de Sucesso (200 OK)
{
"success": true,
"data": {
"id": "campaign-uuid-1",
"name": "Sales Campaign Q1",
"campaign_type": "sales",
"status": "active",
"agent_id": "agent-uuid-1",
"start_date": "2024-01-01",
"end_date": null,
"days_of_week": [1, 2, 3, 4, 5],
"call_time_ranges": [
{"start": "10:00", "end": "12:00"},
{"start": "14:00", "end": "16:00"}
],
"timezone": "America/Sao_Paulo",
"max_retries": 3,
"retry_cooldown_hours": 24,
"do_not_call_enabled": false,
"updated_at": "2024-01-15T11:30:00Z"
}
}
Respostas de erro
422 Erro de Validação
{
"success": false,
"message": "The given data was invalid.",
"errors": {
"call_time_ranges.0.end": [
"The call time ranges.0.end must be a date after call time ranges.0.start."
]
}
}
404 Não Encontrada
{
"success": false,
"message": "Campaign not found"
}
409 Conflict — Chamadas Ativas
{
"success": false,
"message": "Cannot update schedule while there are queued calls. Pause the campaign first.",
"code": "CAMPAIGN_HAS_ACTIVE_CALLS"
}
Observações
- Use
PATCH /v1/campaigns/{id}/statuspara alterar o status — é um endpoint separado com sua própria validação. - Atualizar
call_time_rangesoutimezoneenquanto a campanha estáactivepode atrasar chamadas enfileiradas até que elas voltem a se encaixar nas novas janelas. - Enviar
"end_date": nulllimpa uma data de término previamente definida.
Endpoints relacionados
Esta página foi útil?