> ## Documentation Index
> Fetch the complete documentation index at: https://mayahub.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Criar um Assistente

> Crie um novo assistente de IA com a configuração especificada

Este endpoint permite criar um novo assistente de IA com opções de configuração completas.

### **Corpo da Requisição**

**Campos Principais Obrigatórios**

<ParamField body="assistant_name" type="string" required>
  O nome do assistente (máximo de 255 caracteres)
</ParamField>

<ParamField body="voice_id" type="integer" required>
  O ID da voz a ser usada pelo assistente (deve existir nas vozes disponíveis)
</ParamField>

<ParamField body="language" type="string" required>
  O nome do idioma do assistente (máximo de 100 caracteres)
</ParamField>

<ParamField body="llm_model" type="string" required>
  O nome do modelo LLM a ser utilizado (máximo de 100 caracteres)
</ParamField>

<ParamField body="calls_direction" type="string" required>
  O tipo de direção da chamada. Opções: **receive** (receber), **make** (realizar)
</ParamField>

<ParamField body="engine_type" type="string" required>
  O tipo de engine a ser utilizado. Opções: **pipeline**, **multimodal**
</ParamField>

<ParamField body="timezone" type="string" required>
  O fuso horário do assistente (ex.: "America/New\_York")
</ParamField>

<ParamField body="initial_message" type="string" required>
  A mensagem inicial que o assistente dirá quando a chamada começar
</ParamField>

<ParamField body="system_prompt" type="string" required>
  O system prompt que define o comportamento e a personalidade do assistente
</ParamField>

#### Configuração Opicional

<ParamField body="phone_number_id" type="integer">
  O ID de um número de telefone a ser atribuído ao assistente (deve existir nos números de telefone do usuário)
</ParamField>

<ParamField body="endpoint_type" type="string">
  Tipo de detecção de atividade de voz. Opções: **vad**, **ai**
</ParamField>

<ParamField body="endpoint_sensitivity" type="number">
  Nível de sensibilidade do endpoint (0-5)
</ParamField>

<ParamField body="interrupt_sensitivity" type="number">
  Nível de sensibilidade de interrupção (0-5)
</ParamField>

<ParamField body="ambient_sound_volume" type="number">
  Nível de volume do som ambiente (0-1)
</ParamField>

<ParamField body="post_call_evaluation" type="boolean">
  Indica se a avaliação pós-chamada deve ser ativada
</ParamField>

<ParamField body="send_webhook_only_on_completed" type="boolean">
  Indica se os webhooks devem ser enviados apenas em chamadas concluídas
</ParamField>

<ParamField body="include_recording_in_webhook" type="boolean">
  Indica se o URL da gravação deve ser incluído no payload do webhook
</ParamField>

#### Configuração de Webhook

<ParamField body="is_webhook_active" type="boolean">
  Indica se as notificações de webhook estão ativadas
</ParamField>

<ParamField body="webhook_url" type="string">
  A URL do webhook para notificações pós-chamada (obrigatória se **is\_webhook\_active** for verdadeiro)
</ParamField>

#### **Configurações de Interrupção**

<ParamField body="use_min_interrupt_words" type="boolean">
  Indica se deve usar a configuração de palavras mínimas de interrupção
</ParamField>

<ParamField body="min_interrupt_words" type="integer">
  Número mínimo de palavras antes que a interrupção seja permitida (0-10)
</ParamField>

#### **Variáveis e Esquema**

<ParamField body="variables" type="object">
  Pares de chave-valor de variáveis personalizadas para o assistente
</ParamField>

<ParamField body="post_call_schema" type="array">
  Definição de esquema para extração de dados pós-chamada

  <Expandable title="Propriedades do post_call_schema">
    <ParamField body="post_call_schema[].name" type="string" required>
      O nome do campo do esquema (apenas caracteres alfanuméricos e underscores)
    </ParamField>

    <ParamField body="post_call_schema[].type" type="string" required>
      O tipo de dado. Opções: **string**, **number**, **bool**
    </ParamField>

    <ParamField body="post_call_schema[].description" type="string" required>
      Descrição do que este campo representa
    </ParamField>
  </Expandable>
</ParamField>

#### **Ferramenta de Encerrar Chamada**

<ParamField body="end_call_tool.description" type="string">
  Descrição da funcionalidade da ferramenta de encerramento de chamada (máximo de 500 caracteres)
</ParamField>

#### **Configurações de Voz e Fala**

<ParamField body="llm_temperature" type="number">
  Configuração de temperatura do LLM (0-1)
</ParamField>

<ParamField body="voice_stability" type="number">
  Configuração de estabilidade da voz (0-1)
</ParamField>

<ParamField body="voice_similarity" type="number">
  Configuração de similaridade da voz (0-1)
</ParamField>

<ParamField body="speech_speed" type="number">
  Multiplicador de velocidade da fala (0,7-1,2)
</ParamField>

#### **Configurações de Comportamento da Chamada**

<ParamField body="allow_interruptions" type="boolean">
  Indica se as interrupções do chamador são permitidas
</ParamField>

<ParamField body="filler_audios" type="boolean">
  Indica se deve usar áudio de preenchimento durante o processamento
</ParamField>

<ParamField body="re_engagement_interval" type="integer">
  Intervalo de reengajamento em segundos (7-600)
</ParamField>

<ParamField body="max_call_duration" type="integer">
  Duração máxima da chamada em segundos (20-1200)
</ParamField>

<ParamField body="max_silence_duration" type="integer">
  Duração máxima de silêncio em segundos (1-120)
</ParamField>

<ParamField body="end_call_on_voicemail" type="boolean">
  Indica se a chamada deve ser encerrada quando um correio de voz for detectado
</ParamField>

<ParamField body="noise_cancellation" type="boolean">
  Indica se a redução de ruído deve ser ativada
</ParamField>

<ParamField body="record_call" type="boolean">
  Indica se a chamada deve ser gravada
</ParamField>

<ParamField body="who_speaks_first" type="string">
  Quem fala primeiro na chamada. Opções: **Assistente de IA**, **Cliente**
</ParamField>

### Resposta

<ResponseField name="message" type="string">
  Mensagem de sucesso confirmando a criação do assistente
</ResponseField>

<ResponseField name="data" type="object">
  <Expandable title="Propriedades">
    <ResponseField name="id" type="integer">
      O identificador único do assistente criado
    </ResponseField>

    <ResponseField name="name" type="string">
      O nome do assistente
    </ResponseField>

    <ResponseField name="status" type="string">
      O status atual do assistente
    </ResponseField>

    <ResponseField name="type" type="string">
      O Tipo do Assistente (`inbound` or `outbound`)
    </ResponseField>

    <ResponseField name="mode" type="string">
      O modo da engine (`pipeline` or `multimodal`)
    </ResponseField>
  </Expandable>
</ResponseField>

### **Respostas de Erro**

<ResponseField name="422 Validation Error">
  <Expandable title="Respostas de Erro">
    <ResponseField name="message" type="string">
      Mensagem de erro indicando falha na validação
    </ResponseField>

    <ResponseField name="errors" type="object">
      Erros de validação detalhados para cada campo
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="500 Internal Server Error">
  <Expandable title="Respostas de Erro">
    <ResponseField name="message" type="string">
      Mensagem de erro indicando falha na criação do assistente
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseExample>
  ```json 201 Success Response theme={null}
  {
    "message": "Assistant created successfully",
    "data": {
      "id": 789,
      "name": "Sales Assistant",
      "status": "active",
      "type": "outbound",
      "mode": "pipeline"
    }
  }
  ```

  ```json 422 Validation Error theme={null}
  {
    "message": "Validation failed",
    "errors": {
      "assistant_name": [
        "The assistant name field is required."
      ],
      "webhook_url": [
        "The webhook url field is required when is webhook active is true."
      ]
    }
  }
  ```

  ```json 500 Internal Server Error theme={null}
  {
    "message": "Assistant creation failed"
  }
  ```
</ResponseExample>

### **Observações**

* Todos os campos obrigatórios devem ser fornecidos para a criação bem-sucedida do assistente.
* O assistente será criado com configurações padrão para quaisquer campos opcionais não especificados.
* A atribuição de número de telefone é opcional, mas o número deve pertencer ao usuário autenticado.
* A URL do webhook é obrigatória apenas quando **is\_webhook\_active** estiver configurado como verdadeiro.
* Os identificadores de voz e idioma devem corresponder às opções disponíveis no sistema.
