---
title: "Criar Script"
method: POST
path: "/api/v1/account/script"
tags: ["Scripts"]
---

# Criar Script

`POST /api/v1/account/script`

Cria um novo script para a conta informada.

## Request body

- CreateScriptPayload
  - `accountId` string, required — (Obrigatório) ID da conta. Pelo menos um entre `accountId` e `companyId` é obrigatório
  - `companyId` string — (Opcional) Identificador da empresa (legado). Pelo menos um entre `accountId` e `companyId` é obrigatório
  - `customerJourneyType` 'agreement', required — (Obrigatório) Tipo de jornada aplicada ao script
  - `disabledCustomerJourneys` string[] — (Opcional) Etapas opcionais da jornada a desabilitar
  - `educationInstruction` MessageEducation
    - `instructionText` string, required — (Obrigatório se `educationInstruction` for enviado) Texto de até 199 caracteres sem variáveis; auxilia o campo `text`
    - `text` string, required — (Obrigatório se `educationInstruction` for enviado) Texto de até 800 caracteres com ou sem variáveis
  - `expiredInviteUrl` string, required — (Obrigatório) URL exibida quando o convite está expirado
  - `helpUrl` string, required — (Obrigatório) URL de ajuda do fluxo
  - `intelligenceResources` string[] — (Opcional) Recursos de inteligência contratados
  - `invalidDataUrl` string, required — (Obrigatório) URL exibida quando os dados do formulário são inválidos
  - `messageTransitions` MessageTransition[] — (Condicional) Transições entre mensagens. Obrigatório quando `messages` contém mais de um item
    - `alternativePaths` AlternativePath
      - `conditions` MessageCondition[] — (Opcional) Lista de condições do multicase (jornada `agreement`)
        - `operator` 'equal' | 'not_equal' | 'greater' | 'less' | 'greater_or_equal' | 'less_or_equal' | 'in' | 'not_in' | 'like' | 'not_like' | 'is_null' | 'is_not_null', required — (Obrigatório) Operador lógico entre `path` e `value`
        - `path` string, required — (Obrigatório) Caminho do dado avaliado na condição
        - `scriptReference` string — (Opcional) Reference ou `script_id` do script para onde o fluxo segue se a condição for atendida
        - `value` string — (Condicional) Valor para o match com `path`/`operator`. Omitir apenas com operadores `is_null` ou `is_not_null`
    - `messageId` string, required — (Obrigatório em cada transição) ID da mensagem de destino
    - `parentId` string, required — (Obrigatório em cada transição) ID da mensagem de origem
  - `messages` MessagePayload[], required — (Obrigatório) Lista de até 20 mensagens que formam a conversa do script
    - `expectedResponses` string[], required — (Obrigatório na requisição) Lista de até 5 textos usada em pós-processamento. A API valida presença para todas as jornadas; em `self_declaration` os valores são descartados após a validação.
    - `id` string, required — (Obrigatório) Identificador da mensagem de sua preferência
    - `instructionText` string — (Condicional) Texto de até 199 caracteres e sem variáveis que auxilia o campo text. Obrigatório quando há mais de uma mensagem em `messages`.
    - `isFinal` boolean, required — (Obrigatório) Deve existir exatamente uma mensagem com `isFinal: true` em `messages`
    - `isRoot` boolean, required — (Obrigatório) Deve existir exatamente uma mensagem com `isRoot: true` em `messages`
    - `text` string, required — (Obrigatório) Texto de até 800 caracteres com ou sem variáveis
  - `name` string, required — (Obrigatório) Nome de exibição do script
  - `reference` string — (Opcional) Identificador amigável do script para uso em convites multicase
  - `successUrl` string, required — (Obrigatório) URL de conclusão com sucesso da gravação
  - `termsUrl` string, required — (Obrigatório) URL de termos e política de privacidade
  - `videoIntelligenceResources` string[] — (Opcional) Recursos de inteligência de vídeo contratados
  - `voiceGender` 'female' | 'male', required — (Obrigatório) Gênero da voz sintetizada

## Response `201`

Script criado com sucesso

- CreateScriptResponse
  - `scriptId` string, required — Identificador do script criado (sempre retornado em 201)

## Other responses

- `400` — Erro ao validar corpo ou regras de negócio (mensagens, URLs, jornada, etc.)
- `403` — Conta não encontrada ou sem permissão para criar script nesta conta
- `422` — Erro ao interpretar o corpo da requisição (JSON inválido ou ilegível)
- `500` — Erro inesperado

---

[API](https://skmtc.net/nuvidio/apis/nuvidio-openapi.md) · [All operations](https://skmtc.net/nuvidio/apis/nuvidio-openapi/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/nuvidio/nuvidio-openapi/revisions/a262554413c2/schema)
