Skip to main content
PUT
/
user
/
assistant
/
{id}
Atualizar assistente
curl --request PUT \
  --url https://suasofia.online/api/user/assistant/{id} \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "assistant_name": "<string>",
  "voice_id": 123,
  "language": "<string>",
  "llm_model": "<string>",
  "calls_direction": "<string>",
  "engine_type": "<string>",
  "timezone": "<string>",
  "initial_message": "<string>",
  "system_prompt": "<string>",
  "phone_number_id": 123,
  "tool_ids": [
    123
  ],
  "endpoint_type": "<string>",
  "endpoint_sensitivity": 123,
  "interrupt_sensitivity": 123,
  "ambient_sound_volume": 123,
  "post_call_evaluation": true,
  "send_webhook_only_on_completed": true,
  "tools": [
    {}
  ],
  "is_webhook_active": true,
  "webhook_url": "<string>",
  "use_min_interrupt_words": true,
  "min_interrupt_words": 123,
  "variables": {},
  "synthesizer_provider_id": 123,
  "transcriber_provider_id": 123,
  "allow_interruptions": true,
  "fillers": true,
  "filler_config": {},
  "record": true,
  "enable_noise_cancellation": true,
  "wait_for_customer": true,
  "max_duration": 123,
  "max_silence_duration": 123,
  "max_initial_silence_duration": 123,
  "ringing_time": 123,
  "reengagement_interval": 123,
  "reengagement_prompt": "<string>",
  "end_call_on_voicemail": true,
  "voice_mail_message": "<string>",
  "ambient_sound": "<string>",
  "include_recording_in_webhook": true,
  "post_call_schema": [
    {
      "post_call_schema[].name": "<string>",
      "post_call_schema[].type": "<string>",
      "post_call_schema[].description": "<string>"
    }
  ],
  "end_call_tool.description": "<string>",
  "conversation_inactivity_timeout": 123,
  "conversation_ended_retrigger": true,
  "conversation_ended_webhook_url": "<string>",
  "llm_temperature": 123,
  "voice_stability": 123,
  "voice_similarity": 123,
  "speech_speed": 123,
  "filler_audios": true,
  "re_engagement_interval": 123,
  "max_call_duration": 123,
  "noise_cancellation": true,
  "record_call": true,
  "who_speaks_first": "<string>"
}
'
{
  "message": "Assistente atualizado com sucesso",
  "data": {
    "id": 789,
    "name": "Assistente de Vendas Atualizado",
    "status": "active",
    "type": "outbound",
    "mode": "pipeline"
  }
}
Este endpoint permite atualizar as configurações de um assistente de IA existente. Todos os campos são opcionais - forneça apenas os campos que deseja atualizar.

Parâmetros de Caminho

id
integer
required
O identificador único do assistente a ser atualizado

Corpo da Requisição

Campos Principais

assistant_name
string
O nome do assistente (máximo 255 caracteres)
voice_id
integer
O ID da voz a ser usada para o assistente (deve existir nas vozes disponíveis)
language
string
O nome do idioma para o assistente (máximo 100 caracteres)
llm_model
string
O nome do modelo LLM a ser usado (máximo 100 caracteres)
calls_direction
string
O tipo de direção da chamada. Opções: receive, make
engine_type
string
O tipo de engine a ser usado. Opções: pipeline, multimodal
timezone
string
O fuso horário para o assistente (ex: “America/New_York”)
initial_message
string
A mensagem inicial que o assistente falará quando a chamada iniciar
system_prompt
string
O prompt do sistema que define o comportamento e personalidade do assistente

Configuração Opcional

phone_number_id
integer
O ID de um número de telefone para atribuir ao assistente (defina como null para desatribuir)
tool_ids
integer[]
Array de IDs de ferramentas de meio de chamada para sincronizar com o assistente. Substitui todas as atribuições de ferramentas existentes. Passe um array vazio para remover todas as ferramentas. Cada elemento deve ser um ID de ferramenta válido que pertença à sua conta.
endpoint_type
string
Tipo de detecção de atividade de voz. Opções: vad, ai
endpoint_sensitivity
number
Nível de sensibilidade do endpoint (0-5)
interrupt_sensitivity
number
Nível de sensibilidade de interrupção (0-5)
ambient_sound_volume
number
Nível de volume do som ambiente (0-1)
post_call_evaluation
boolean
Se deve ativar a avaliação pós-chamada
send_webhook_only_on_completed
boolean
Se deve enviar webhooks apenas em chamadas concluídas

Ferramentas Integradas

tools
array
Array de ferramentas integradas. Substitui todas as ferramentas integradas existentes. Passe um array vazio [] para remover todas as ferramentas.
"tools": [
  {
    "type": "dtmf_input",
    "description": "Navigate IVR when needed"
  },
  {
    "type": "warm_call_transfer",
    "supervisor_phone": "+1234567890",
    "outbound_phone_id": 7,
    "description": "Transfer the call to a human supervisor when the customer requests to speak with a real person.",
    "custom_sip": false,
    "caller_id_mode": "outbound_number",
    "hold_music": "hold_music",
    "hold_music_volume": 80,
    "hold_message": "Please hold while I connect you with a supervisor.",
    "summary_instructions": "Introduce the conversation from your perspective:\n- WHO is calling (name, company if mentioned)\n- WHY they called (their goal or problem)\n- WHY a human is needed at this point\n\nKeep it brief (2-3 sentences).",
    "briefing_initial_message": "Hello! I have a caller on the line who needs your assistance. May I brief you on the situation?",
    "connected_message": "You are now connected with a supervisor. I'll leave you to it."
  },
  {
    "type": "collect_keypad",
    "timeout": 5,
    "stop_key": "#"
  },
  {
    "type": "end_call",
    "description": "End call when done"
  }
]

Configuração de Webhook

is_webhook_active
boolean
Se as notificações de webhook estão ativadas
webhook_url
string
A URL do webhook para notificações pós-chamada (pode ser definida como null para remover)

Configurações de Interrupção

use_min_interrupt_words
boolean
Se deve usar a configuração de palavras mínimas de interrupção
min_interrupt_words
integer
Número mínimo de palavras antes que a interrupção seja permitida (0-10)

Variáveis e Esquema

variables
object
Pares chave-valor de variáveis personalizadas para o assistente
synthesizer_provider_id
integer
ID do provedor TTS personalizado. Defina como null para usar o padrão do idioma. Use o endpoint Get Synthesizer Providers para descobrir provedores disponíveis.
transcriber_provider_id
integer
ID do provedor STT personalizado. Apenas no modo pipeline. Defina como null para usar o padrão do idioma. Use o endpoint Get Transcriber Providers para descobrir provedores disponíveis.

Configurações de Comportamento da Chamada

allow_interruptions
boolean
Se deve permitir interrupções do chamador.
Não pode ser desabilitado para os modos multimodal e dualplex.
fillers
boolean
Se deve usar áudio de preenchimento durante o processamento.
Disponível apenas para o modo pipeline.
filler_config
object
Perfis de palavras de preenchimento personalizadas por categoria. Substitui a configuração de preenchimento existente. Cada categoria é um array de frases curtas.
  • positive: Palavras de preenchimento para respostas positivas/afirmativas
  • negative: Palavras de preenchimento para respostas negativas/neutras
  • question: Palavras de preenchimento ao processar uma pergunta
  • neutral: Palavras de preenchimento para reconhecimentos neutros
"filler_config": {
  "positive": ["Ótimo!", "Perfeito!"],
  "negative": ["Hmm.", "Entendo."],
  "question": ["Boa pergunta.", "Deixe-me verificar."],
  "neutral": ["Ok.", "Anotado."]
}
record
boolean
Se deve gravar a chamada
enable_noise_cancellation
boolean
Se deve ativar o cancelamento de ruído
wait_for_customer
boolean
Se verdadeiro, o assistente aguarda o cliente falar primeiro

Configurações de Tempo

max_duration
integer
Duração máxima da chamada em segundos (20-1200)
max_silence_duration
integer
Duração máxima de silêncio antes do reengajamento em segundos (1-360)
max_initial_silence_duration
integer
Silêncio máximo no início da chamada antes de encerrar (1-120 segundos). Defina como null para desabilitar.
ringing_time
integer
Tempo máximo de toque antes de desistir (1-60 segundos)

Configurações de Reengajamento

reengagement_interval
integer
Intervalo de reengajamento em segundos (7-600)
reengagement_prompt
string
Prompt personalizado para mensagens de reengajamento (máximo 1000 caracteres). Defina como null para usar o padrão.

Configurações de Caixa Postal

end_call_on_voicemail
boolean
Se deve encerrar a chamada quando caixa postal for detectada
voice_mail_message
string
Mensagem para deixar na caixa postal antes de desligar (máximo 1000 caracteres). Defina como null para desabilitar.

Detecção de Endpoint

endpoint_type
string
Tipo de detecção de atividade de voz. Opções: vad, ai
endpoint_sensitivity
number
Nível de sensibilidade do endpoint (0-5)
interrupt_sensitivity
number
Nível de sensibilidade de interrupção (0-5)
min_interrupt_words
integer
Palavras mínimas antes que a interrupção seja permitida (0-10). Defina como null para desabilitar.

Som Ambiente

ambient_sound
string
Som ambiente de fundo. Opções: off, office, city, forest, crowded_room, cafe, nature
ambient_sound_volume
number
Nível de volume do som ambiente (0-1)

Configuração de Webhook

is_webhook_active
boolean
Se as notificações de webhook estão habilitadas
webhook_url
string
A URL do webhook para notificações pós-chamada. Defina como null para remover.
send_webhook_only_on_completed
boolean
Se deve enviar webhooks apenas em chamadas concluídas (não falharam/não atenderam)
include_recording_in_webhook
boolean
Se deve incluir URL de gravação no payload do webhook

Avaliação Pós-Chamada

post_call_evaluation
boolean
Se deve ativar a avaliação pós-chamada da IA
post_call_schema
array
Schema definition for post-call data extraction. Replaces existing schema.

Ferramenta de Encerrar Chamada

end_call_tool.description
string
Descrição para a funcionalidade da ferramenta de encerrar chamada (máximo 500 caracteres)

Configurações de Conversa Encerrada

conversation_inactivity_timeout
integer
Minutos de inatividade do chat antes que a conversa seja considerada encerrada (1-1440). Defina como null para desabilitar. Padrão: 30
conversation_ended_retrigger
boolean
Se deve permitir redisparo da conversa após encerrar devido à inatividade
conversation_ended_webhook_url
string
URL do webhook chamada quando uma conversa de chat termina devido à inatividade. Defina como null para remover. Separado do webhook principal de chamada.

llm_temperature
number
Configuração de temperatura do LLM (0-1)
voice_stability
number
Configuração de estabilidade da voz (0-1)
voice_similarity
number
Configuração de similaridade da voz (0-1)
speech_speed
number
Multiplicador de velocidade da fala (0.7-1.2)

Configurações de Comportamento da Chamada

allow_interruptions
boolean
Se deve permitir interrupções do chamador
filler_audios
boolean
Se deve usar áudio de preenchimento durante o processamento
re_engagement_interval
integer
Intervalo de reengajamento em segundos (7-600)
max_call_duration
integer
Duração máxima da chamada em segundos (20-1200)
max_silence_duration
integer
Duração máxima de silêncio em segundos (1-120)
end_call_on_voicemail
boolean
Se deve encerrar a chamada quando uma caixa postal for detectada
noise_cancellation
boolean
Se deve ativar o cancelamento de ruído
record_call
boolean
Se deve gravar a chamada
who_speaks_first
string
Quem fala primeiro na chamada. Opções: AI assistant, Customer

Resposta

message
string
Mensagem de sucesso confirmando a atualização do assistente
data
object

Respostas de Erro

404 Not Found
422 Validation Error
500 Internal Server Error
{
  "message": "Assistente atualizado com sucesso",
  "data": {
    "id": 789,
    "name": "Assistente de Vendas Atualizado",
    "status": "active",
    "type": "outbound",
    "mode": "pipeline"
  }
}

Observações

  • Apenas os campos que você fornecer no corpo da requisição serão atualizados
  • Todas as regras de validação se aplicam da mesma forma que ao criar um assistente
  • Para remover a atribuição de um número de telefone, defina phone_number_id como null
  • Para desativar o webhook, defina webhook_url como null ou is_webhook_active como false
  • O assistente deve pertencer ao usuário autenticado para ser atualizado “mode”: