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

# Criar novo mensagem

> Criar uma nova mensagem na conversa.

## Mensagens de modelo do WhatsApp

Para canais do WhatsApp, você pode enviar mensagens de modelo estruturadas usando o campo `template_params`. 
Os modelos devem ser pré-aprovados no WhatsApp Business Manager.

### Exemplos de modelos

**Texto com cabeçalho de imagem:**
```json
{
  "content": "Olá, seu pedido 121212 foi confirmado. Aguarde por mais atualizações",
  "template_params": {
    "name": "order_confirmation",
    "category": "MARKETING",
    "language": "pt_BR",
    "processed_params": {
      "body": {
        "1": "121212"
      },
      "header": {
        "media_url": "https://picsum.photos/200/300",
        "media_type": "image"
      }
    }
  }
}
```

**Texto com botão de copiar código:**
```json
{
  "content": "Oferta especial! Ganhe 30% de desconto na sua próxima compra. Use o código abaixo",
  "template_params": {
    "name": "discount_coupon",
    "category": "MARKETING",
    "language": "pt_BR",
    "processed_params": {
      "body": {
        "discount_percentage": "30"
      },
      "buttons": [{
        "type": "copy_code",
        "parameter": "SAVE20"
      }]
    }
  }
}
```




## OpenAPI

````yaml /pt-br/swagger/tag_groups/application_swagger.json post /api/v1/accounts/{account_id}/conversations/{conversation_id}/messages
openapi: 3.1.0
info:
  title: Chatwoot
  description: Esta é a documentação da API para o servidor Chatwoot.
  version: 1.1.0
  termsOfService: https://www.chatwoot.com/terms-of-service/
  contact:
    email: hello@chatwoot.com
  license:
    name: MIT License
    url: https://opensource.org/licenses/MIT
servers:
  - url: https://airys.chat/
security: []
tags:
  - name: AgentBots de Conta
    description: Agent Bots específicos da conta
  - name: Agentes
    description: APIs de gerenciamento de agentes
  - name: Respostas Prontas
    description: Respostas predefinidas para consultas comuns
  - name: Contatos
    description: APIs de gerenciamento de contatos
  - name: Rótulos de Contato
    description: Gerenciar rótulos de contato
  - name: Atribuições de Conversa
    description: Gerenciar atribuições de conversas
  - name: Rótulos de Conversa
    description: Gerenciar rótulos de conversas
  - name: Conversas
    description: APIs de gerenciamento de conversas
  - name: Atributos Personalizados
    description: Campos personalizados para contatos e conversas
  - name: Filtros Personalizados
    description: Filtros salvos para conversas
  - name: Caixas de Entrada
    description: Configuração de canais de comunicação
  - name: Integrações
    description: Integrações de terceiros
  - name: Rótulos
    description: APIs de gerenciamento de rótulos da conta
  - name: Mensagens
    description: APIs de gerenciamento de mensagens
  - name: Perfil
    description: APIs de perfil de usuário
  - name: Relatórios
    description: APIs de análise e relatórios
  - name: Equipes
    description: APIs de gerenciamento de equipe
  - name: Webhooks
    description: Webhooks de notificação de eventos
  - name: Regra de Automação
    description: Regras de automação de fluxo de trabalho
  - name: Central de Ajuda
    description: Gerenciamento da base de conhecimento
paths:
  /api/v1/accounts/{account_id}/conversations/{conversation_id}/messages:
    parameters:
      - $ref: '#/components/parameters/account_id'
      - $ref: '#/components/parameters/conversation_id'
    post:
      tags:
        - Mensagens
      summary: Criar novo mensagem
      description: >
        Criar uma nova mensagem na conversa.


        ## Mensagens de modelo do WhatsApp


        Para canais do WhatsApp, você pode enviar mensagens de modelo
        estruturadas usando o campo `template_params`. 

        Os modelos devem ser pré-aprovados no WhatsApp Business Manager.


        ### Exemplos de modelos


        **Texto com cabeçalho de imagem:**

        ```json

        {
          "content": "Olá, seu pedido 121212 foi confirmado. Aguarde por mais atualizações",
          "template_params": {
            "name": "order_confirmation",
            "category": "MARKETING",
            "language": "pt_BR",
            "processed_params": {
              "body": {
                "1": "121212"
              },
              "header": {
                "media_url": "https://picsum.photos/200/300",
                "media_type": "image"
              }
            }
          }
        }

        ```


        **Texto com botão de copiar código:**

        ```json

        {
          "content": "Oferta especial! Ganhe 30% de desconto na sua próxima compra. Use o código abaixo",
          "template_params": {
            "name": "discount_coupon",
            "category": "MARKETING",
            "language": "pt_BR",
            "processed_params": {
              "body": {
                "discount_percentage": "30"
              },
              "buttons": [{
                "type": "copy_code",
                "parameter": "SAVE20"
              }]
            }
          }
        }

        ```
      operationId: create-a-new-message-in-a-conversation
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/conversation_message_create_payload'
      responses:
        '200':
          description: Sucesso
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/generic_id'
                  - $ref: '#/components/schemas/message'
        '403':
          description: Acesso negado
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/bad_request_error'
        '404':
          description: Conversa não encontrada
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/bad_request_error'
      security:
        - userApiKey: []
        - agentBotApiKey: []
components:
  parameters:
    account_id:
      in: path
      name: account_id
      schema:
        type: integer
      required: true
      description: O ID numérico da conta
    conversation_id:
      in: path
      name: conversation_id
      schema:
        type: integer
      required: true
      description: O ID numérico da conversa
  schemas:
    conversation_message_create_payload:
      type: object
      required:
        - content
      properties:
        content:
          type: string
          description: O conteúdo da mensagem
          example: Hello, how can I help you?
        message_type:
          type: string
          enum:
            - outgoing
            - incoming
          description: O tipo da mensagem
          example: outgoing
        private:
          type: boolean
          description: Sinalizador (flag) para identificar se é uma nota privada
          example: false
        content_type:
          type: string
          enum:
            - text
            - input_email
            - cards
            - input_select
            - form
            - article
          description: Tipo de conteúdo da mensagem
          example: text
        content_attributes:
          type: object
          description: Atributos com base no tipo de conteúdo
          example: {}
        campaign_id:
          type: integer
          description: O id da campanha à qual a mensagem pertence
          example: 1
        template_params:
          type: object
          description: >-
            Parâmetros de modelo do WhatsApp para envio de mensagens
            estruturadas
          required:
            - name
            - category
            - language
            - processed_params
          properties:
            name:
              type: string
              description: >-
                Nome do modelo do WhatsApp (deve ser aprovado no WhatsApp
                Business Manager)
              example: purchase_receipt
            category:
              type: string
              enum:
                - UTILITY
                - MARKETING
                - SHIPPING_UPDATE
                - TICKET_UPDATE
                - ISSUE_RESOLUTION
              description: Categoria do modelo
              example: UTILITY
            language:
              type: string
              description: Código do idioma do modelo (formato BCP 47)
              example: en_US
            processed_params:
              type: object
              description: >-
                Parâmetros de modelo processados organizados por tipo de
                componente
              properties:
                body:
                  type: object
                  description: >-
                    Parâmetros do componente Body com espaços reservados para
                    variáveis
                  additionalProperties:
                    type: string
                  example:
                    '1': Visa
                    '2': Nike
                    '3': Bill
                header:
                  type: object
                  description: Parâmetros do componente Header para modelos de mídia
                  properties:
                    media_url:
                      type: string
                      format: uri
                      description: >-
                        URL acessível publicamente para cabeçalhos IMAGE, VIDEO
                        ou DOCUMENT
                      example: >-
                        https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf
                    media_type:
                      type: string
                      enum:
                        - image
                        - video
                        - document
                      description: Tipo de mídia para o cabeçalho
                      example: document
                buttons:
                  type: array
                  description: Parâmetros de componentes de botão para modelos interativos
                  items:
                    type: object
                    properties:
                      type:
                        type: string
                        enum:
                          - url
                          - copy_code
                        description: Tipo de parâmetro de botão
                      parameter:
                        type: string
                        description: Valor de parâmetro dinâmico para o botão
                        example: SSFSDFSD
    generic_id:
      type: object
      properties:
        id:
          type: number
    message:
      type: object
      properties:
        id:
          type: number
          description: O ID da mensagem
        content:
          type: string
          description: O conteúdo de texto da mensagem
        account_id:
          type: number
          description: O ID da conta
        inbox_id:
          type: number
          description: O ID da caixa de entrada
        conversation_id:
          type: number
          description: O ID da conversa
        message_type:
          type: integer
          enum:
            - 0
            - 1
            - 2
            - 3
          description: O tipo da mensagem
        created_at:
          type: integer
          description: O horário em que a mensagem foi criada
        updated_at:
          type:
            - integer
            - string
          description: O horário em que a mensagem foi atualizada
        private:
          type: boolean
          description: As sinalizações (flags) que mostram se a mensagem é privada ou não
        status:
          type:
            - string
            - 'null'
          enum:
            - sent
            - delivered
            - read
            - failed
            - null
          description: O status da mensagem
        source_id:
          type:
            - string
            - 'null'
          description: O ID de origem da mensagem
        content_type:
          type:
            - string
            - 'null'
          enum:
            - text
            - input_text
            - input_textarea
            - input_email
            - input_select
            - cards
            - form
            - article
            - incoming_email
            - input_csat
            - integrations
            - sticker
            - voice_call
            - null
          description: O tipo de mensagem de modelo
        content_attributes:
          type: object
          description: Os atributos de conteúdo para cada content_type
        sender_type:
          type:
            - string
            - 'null'
          enum:
            - Contact
            - User
            - AgentBot
            - Captain::Assistant
            - null
          description: O tipo de remetente
        sender_id:
          type:
            - number
            - 'null'
          description: O ID do remetente
        external_source_ids:
          type: object
          description: Os IDs de origem externa da mensagem
        additional_attributes:
          type: object
          description: Os atributos adicionais da mensagem
        processed_message_content:
          type:
            - string
            - 'null'
          description: O conteúdo da mensagem processada
        sentiment:
          type:
            - object
            - 'null'
          description: O sentimento da mensagem
        conversation:
          type:
            - object
            - 'null'
          description: O objeto da conversa
        attachment:
          type:
            - object
            - 'null'
          description: O objeto de arquivo anexado à imagem
        sender:
          type: object
          description: Objeto Usuário/Agente/AgentBot
    bad_request_error:
      title: data
      type: object
      properties:
        description:
          type: string
        errors:
          type: array
          items:
            $ref: '#/components/schemas/request_error'
    request_error:
      type: object
      properties:
        field:
          type: string
        message:
          type: string
        code:
          type: string
  securitySchemes:
    userApiKey:
      type: apiKey
      in: header
      name: api_access_token
      description: >-
        Este token pode ser obtido visitando a página de perfil ou por meio do
        console rails. Fornece acesso a endpoints com base nos níveis de
        permissões do usuário. Este token pode ser salvo por um sistema externo
        quando o usuário é criado via API, para realizar atividades em nome do
        usuário.
    agentBotApiKey:
      type: apiKey
      in: header
      name: api_access_token
      description: >-
        Este token deve ser fornecido pelo administrador do sistema ou obtido
        pelo console rails. Este token pode ser usado para construir integrações
        de bots e só pode acessar apis limitadas.

````