# Formulários de autosserviço

## Overview

Você pode usar os 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 de posto de trabalho em um Office.

"Self Service Forms" é um recurso opcional que pode ser ativado para o seu Tenant pelo suporte da 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 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 usuários 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 usuário preenche e envia um formulário, o conteúdo será enviado por e-mail ao destinatário informado na definição do formulário. O e-mail será enviado pela infraestrutura da RealmJoin e não será originado dos 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 usuários podem usar/enviar formulários.
{% endhint %}

## Revisar envios

Usando o ![](/files/4f92e9ab7b0f1c9bf08de2f6fa9e53876e47e03b) ícone de navegação, você pode revisar envios anteriores de formulários feitos pelos 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 que enviou e pelo nome do formulário, mas não pelos campos no envio do formulário.

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

## Página de configurações

A página de configurações de 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 com 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>

Após 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 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": "- Seu nome aqui -"
    },
    "date": {
      "type": "string",
      "format": "date",
      "options": {
        "flatpickr": {}
      }
    },
    "location": {
      "type": "object",
      "title": "Localização",
      "properties": {
        "city": {
          "type": "string",
          "default": "São 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": [
              "cat",
              "dog",
              "bird",
              "reptile",
              "other"
            ],
            "default": "dog"
          },
          "name": {
            "type": "string"
          }
        }
      },
      "default": [
        {
          "type": "dog",
          "name": "Walter"
        }
      ]
    }
  }
}
```

Todo JSON Schema é composto por objetos. Todo objeto precisa, no mínimo, ter um tipo e um nome.

### Tipos

#### Objeto

Objetos "complexos" que contêm outros subobjetos devem usar o **object** tipo. Em nosso exemplo, o nó raiz "Pessoa" do esquema é desse tipo.

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

Use **properties** para descrever os recursos necessários de cada campo, isso inclui fornecer um tipo e um nome.

#### Array

Arrays permitem adicionar vários **itens** semelhantes **itens** à lista. Use a palavra-chave

#### String

para descrever o tipo etc. dos itens. **padrão** Apenas texto simples. Você pode pré-preencher isso usando a palavra-chave

. **Para permitir apenas certos valores, você pode usar o** Apenas texto simples. Você pode pré-preencher isso usando a palavra-chave


---

# Agent Instructions: 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:

```
GET https://docs.realmjoin.com/pt/definicoes-do-realmjoin/self-service-forms.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
