> 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 utilizadores. Isso pode ser usado para permitir que os utilizadores relatem incidentes ou indiquem alterações, como a necessidade de uma nova configuração de posto de trabalho em um Office.

"Self Service Forms" é um recurso opcional que pode ser ativado para o seu Tenant pelo suporte do RealmJoin. Se não estiver ativado, você ainda pode inserir/preparar formulários na página de configurações, mas os utilizadores não poderão ver/usar 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 o ![](/files/e47b83fe1cfddcd5dc62185e9e311b43abc308b1) item de navegação, os utilizadores podem selecionar um formulário para preencher e enviar.

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

Quando um utilizador preenche e envia um formulário, o seu conteúdo será enviado por e-mail para o destinatário indicado 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 Tenant, todos os utilizadores podem usar / enviar formulários.
{% endhint %}

## Revisar Submissões

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

<figure><img src="/files/a1511719f229adde3b2069156deb7f2b6413308e" alt=""><figcaption><p>Lista de Submissões</p></figcaption></figure>

Você pode pesquisar submissões enviando o nome de utilizador e o nome do formulário, mas não pelos campos da submissão do formulário.

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

## Página de Configurações

A página de configurações dos Formulários de Autoatendimento permite gerir formulários existentes, adicionar, editar e eliminar 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 utilizador. 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 utilizador.

<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>

Após modificar o esquema, pressione "Submeter" para salvar as 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 esquemas online (como [este](https://www.jsonschema.net/app)) para simplificar o processo.

Para dar pelo menos 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": "- O 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": "Isto é 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": [
              "cat",
              "dog",
              "bird",
              "reptile",
              "other"
            ],
            "default": "dog"
          },
          "name": {
            "type": "string"
          }
        }
      },
      "default": [
        {
          "type": "dog",
          "name": "Walter"
        }
      ]
    }
  }
}
```

Todo esquema JSON consiste em objetos. Todo objeto tem de, no mínimo, ter um tipo e um nome.

### Tipos

#### Objeto

"Objetos" complexos que contêm outros objetos filhos devem usar o **object** tipo. No nosso exemplo, o nó raiz "Pessoa" do esquema é deste tipo.

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

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

#### Array

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

#### String

Apenas texto simples. Você pode pré-preenchê-lo usando a **padrão** 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.
