> For the complete documentation index, see [llms.txt](https://docs.realmjoin.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.realmjoin.com/pt/administracao-e-definicoes/self-service-forms.md).

# Formulários de self-service

## Visão geral

Você pode usar Formulários de Autoatendimento para coletar dados estruturados dos usuários. Isso pode ser usado para permitir que os usuários relatem incidentes ou indiquem mudanças, como a necessidade de uma nova configuração do local de trabalho em um escritório.

"Formulários de Autoatendimento" é um recurso opcional que pode ser ativado para o seu locatário pelo suporte do RealmJoin. Se não estiver ativado, você ainda pode inserir/preparar formulários na página de configurações, mas os usuários não poderão ver/usar os formulários de autoatendimento.

Usaremos um fluxo de trabalho para "indicar um novo animal de estimação" como exemplo.

<figure><img src="/files/c45c7ef355085ad4496eceb4bf1b2008815178ef" alt=""><figcaption><p>Exemplo de formulário</p></figcaption></figure>

## Usando formulários

Usando a ![](/files/e47b83fe1cfddcd5dc62185e9e311b43abc308b1) item de navegação, os usuários podem selecionar um formulário para preencher e enviar.

<figure><img src="/files/d4e70930f26c7554d076b21ee29a44b4cebaa7a1" alt=""><figcaption><p>Seletor de formulários</p></figcaption></figure>

Quando um usuário preenche e envia um formulário, seu conteúdo será enviado por e-mail ao destinatário definido na definição do formulário. O e-mail será enviado pela infraestrutura do RealmJoin e não terá origem nos endereços de e-mail da sua empresa.

<figure><img src="/files/ebeb86a0b4cb7d3cfcbeba2fecbac361ab58a34d" alt=""><figcaption><p>E-mail de exemplo de um formulário</p></figcaption></figure>

{% hint style="info" %}
Quando os Formulários de Autoatendimento estão ativados para o seu locatário, todos os usuários podem usar / enviar formulários.
{% endhint %}

## Revisar envios

Usando a ![](/files/4f92e9ab7b0f1c9bf08de2f6fa9e53876e47e03b) ícone de navegação, você pode revisar envios anteriores de formulários dos seus usuários.

<figure><img src="/files/a1511719f229adde3b2069156deb7f2b6413308e" alt=""><figcaption><p>Lista de envios</p></figcaption></figure>

Você pode pesquisar envios pelo nome de usuário de quem enviou e pelo nome do formulário, mas não pelos campos no envio do formulário.

Clique em "Ver" para ver os dados preenchidos do formulário. A visualização é somente leitura.

## Página de configurações

A página de configurações dos Formulários de Autoatendimento permite gerenciar formulários existentes, adicionar, editar e excluir formulários.

### Lista de formulários na página de configurações

<figure><img src="/files/07cd6d5ad0e5ba840540c807715cc007c9df1572" alt=""><figcaption><p>Lista de formulários</p></figcaption></figure>

Use "Novo formulário" ou "Editar" para descrever o formulário usando [JSON Schema](https://json-schema.org/). Isso define quais campos precisam ser preenchidos e quais valores são válidos. A interface oferece um editor de verificação de sintaxe e uma pré-visualização do formulário resultante.

O esquema será usado para criar dinamicamente um formulário para o usuário. Basicamente, use o esquema não apenas para descrever os dados desejados, mas também para criar implicitamente a interface do formulário.

### Editor de esquema

Acima do editor há dois campos. Use o campo da esquerda para dar ao seu formulário um nome descritivo. Use o campo da direita para nomear o endereço de e-mail do destinatário dos dados enviados pelo usuário.

<figure><img src="/files/6de365ed4f3dc545b65214fa783b4afc85419d27" alt=""><figcaption><p>Exemplo do editor de esquema</p></figcaption></figure>

Você pode usar "Atualizar pré-visualização do formulário JSON" para criar uma pré-visualização do formulário resultante abaixo do editor.

<figure><img src="/files/db83bb1c4c7f013679f3e0c0ce0d96110251f022" alt=""><figcaption><p>Pré-visualização do editor</p></figcaption></figure>

Depois de modificar o esquema, pressione "Enviar" para salvar suas alterações. Será exibido um erro se a verificação de sintaxe falhar.

## JSON Schema

O uso de JSON Schema está fora do escopo deste documento. Você pode usar geradores de esquema online (como [este](https://www.jsonschema.net/app)) para simplificar o processo.

Para ao menos dar um ponto de partida, vamos examinar o esquema do nosso exemplo

```json
{
  "title": "Pessoa",
  "type": "object",
  "required": [
    "name",
    "date",
    "location",
    "pets"
  ],
  "properties": {
    "name": {
      "type": "string",
      "description": "Nome e sobrenome",
      "minLength": 4,
      "default": "- Seu nome aqui -"
    },
    "date": {
      "type": "string",
      "format": "date",
      "options": {
        "flatpickr": {}
      }
    },
    "location": {
      "type": "object",
      "title": "Localização",
      "properties": {
        "city": {
          "type": "string",
          "default": "San Francisco"
        },
        "state": {
          "type": "string",
          "default": "CA"
        },
        "citystate": {
          "type": "string",
          "description": "Isso é gerado automaticamente a partir dos dois campos anteriores",
          "template": "{{city}}, {{state}}",
          "watch": {
            "city": "location.city",
            "state": "location.state"
          }
        }
      }
    },
    "pets": {
      "type": "array",
      "format": "table",
      "title": "Animais de estimação",
      "uniqueItems": true,
      "items": {
        "type": "object",
        "title": "Animal de estimação",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "gato",
              "cão",
              "pássaro",
              "réptil",
              "outro"
            ],
            "default": "cão"
          },
          "name": {
            "type": "string"
          }
        }
      },
      "default": [
        {
          "type": "cão",
          "name": "Walter"
        }
      ]
    }
  }
}
```

Todo JSON Schema consiste em objetos. Todo objeto precisa ter, no mínimo, um tipo e um nome.

### Tipos

#### Objeto

Objetos "Complex" contendo outros objetos filhos devem usar o **object** type. No nosso exemplo, o nó raiz "Pessoa" do esquema é desse tipo.

Você pode definir campos obrigatórios usando o **required** palavra-chave. Esses campos também precisam ser definidos no esquema.

Use **properties** para descrever as características necessárias de cada campo, isso inclui atribuir um tipo e um nome.

#### Array

Arrays permitem adicionar vários itens semelhantes **itens** a uma lista. Use a **itens** palavra-chave para descrever o tipo dos itens etc.

#### Cadeia de caracteres

Apenas texto simples. Você pode preenchê-lo previamente usando a **default** palavra-chave.

Para permitir apenas certos valores, você pode usar a **enum** palavra-chave.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.realmjoin.com/pt/administracao-e-definicoes/self-service-forms.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
