Pular para o conteúdo principal

postFormsData

Envie dados do formulário para a plataforma OneEntry.

🎯 O que este método faz?

Este método submete dados do formulário para a plataforma OneEntry. Pense nisso como clicar em "Enviar" em um formulário de contato - ele envia todas as entradas do usuário (nome, e-mail, mensagem, arquivos, etc.) para o servidor.

Casos de uso:

  • 📝 Formulários de contato
  • 📋 Formulários de registro
  • 💬 Formulários de feedback
  • 📤 Upload de arquivos
  • 🎫 Chamadas de suporte

📖 Explicação Simples

Quando um usuário preenche um formulário em seu site, você precisa enviar esses dados para algum lugar. Este método faz exatamente isso - ele pega todos os campos do formulário (texto, números, arquivos, etc.) e os envia para o OneEntry.

Pense nisso como:

Usuário preenche o formulário → Seu código chama postFormsData() → Dados salvos no OneEntry ✅

🚀 Exemplo Super Simples (Comece Aqui!)

Cenário: Você tem um formulário de contato com apenas um campo de nome.

// Passo 1: Usuário preenche o formulário (por exemplo, insere "John Doe")
// Passo 2: Envie para o OneEntry

const response = await FormData.postFormsData({
formIdentifier: "contact_us", // 👈 Nome do seu formulário
formModuleConfigId: 2, // 👈 ID de configuração do formulário (do admin do OneEntry)
moduleEntityIdentifier: "blog", // 👈 Onde salvar (do OneEntry)
replayTo: null, // 👈 E-mail de resposta (opcional)
status: "sent", // 👈 "enviado" ou "rascunho"
formData: [ // 👈 Os dados reais do formulário
{
marker: "name", // 👈 Nome do campo
type: "string", // 👈 Tipo do campo
value: "John Doe" // 👈 Entrada do usuário
}
]
});

// ✅ Pronto! Formulário enviado com sucesso
console.log("Formulário enviado, ID:", response.formData.id);

É isso! Agora vamos ver como lidar com diferentes tipos de campos...


📋 O que você precisa saber antes de usar

Antes de chamar este método, você precisa dessas 3 coisas do painel de administração do OneEntry:

  1. formIdentifier - Nome único do seu formulário (por exemplo, "contact_us")
  2. formModuleConfigId - ID de configuração do formulário (um número, por exemplo, 2)
  3. moduleEntityIdentifier - Onde armazenar os dados (por exemplo, "blog", "contatos")

Como encontrar isso?

  • Faça login no OneEntry Admin
  • Vá para a seção de Formulários
  • Copie os valores da configuração do seu formulário

🔧 Assinatura do Método

FormData.postFormsData(

body*, body.formIdentifier*, body.formModuleConfigId*, body.moduleEntityIdentifier*, body.replayTo*, body.status*, body.formData*, body.fileQuery, langCode

);

Esquema de Parâmetros

Esquema (body)

body(obrigatório): IBodyPostFormData
Corpo da requisição
exemplo:

{
"formIdentifier": "test-form",
"formModuleConfigId": 2,
"moduleEntityIdentifier": "blog",
"replayTo": null,
"status": "sent",
"formData": [
{
"marker": "name",
"type": "string",
"value": "Test"
}
]
}

body.formIdentifier(obrigatório): string
Identificador de texto (marcador) do formulário.
exemplo: "form"

body.formModuleConfigId(obrigatório): number
O identificador único da configuração do módulo do formulário.
exemplo: 2

body.moduleEntityIdentifier(obrigatório): string
Identificador de texto (marcador) da entidade do módulo.
exemplo: "blog"

body.replayTo(obrigatório): string | null
E-mail para resposta.
exemplo: "some@email.com"

body.status(obrigatório): string
Status do formulário.
exemplo: "sent"

body.formData(obrigatório): FormDataType[]
Array de objetos de dados do formulário.
exemplo:

[
{
"marker": "name",
"type": "string",
"value": "Jack"
}
]

body.fileQuery: IUploadingQuery
Consulta de arquivo opcional para upload de arquivos.
exemplo:

{
"type": "page",
"entity": "editor",
"id": 3787
}

langCode: string
Código do idioma. Padrão: "en_US"
exemplo: "en_US"

Exemplos

Exemplo mínimo


const body = {
"formIdentifier": "contact_us",
"formModuleConfigId": 2,
"moduleEntityIdentifier": "blog",
"replayTo": null,
"status": "sent",
"formData": [
{
"marker": "last_name",
"type": "string"
"value": "Andrey"
}
]
};

const response = await FormData.postFormsData(body);

Exemplo com um atributo de tipo simples "string", "number", "float"


const body = {
"formIdentifier": "test-form",
"formModuleConfigId": 2,
"moduleEntityIdentifier": "blog",
"replayTo": null,
"status": "sent",
"formData": [
{
"marker": "string_marker",
"type": "string",
"value": "Username"
},
{
"marker": "number_marker",
"type": "number",
"value": 1
},
{
"marker": "float_marker",
"type": "float",
"value": 2.256
}
]
};

const response = await FormData.postFormsData(body);


Exemplo com um atributo de tipo simples "date", "dateTime", "time"


const body = {
"formIdentifier": "contact_us",
"formModuleConfigId": 2,
"moduleEntityIdentifier": "blog",
"replayTo": null,
"status": "sent",
"formData": [
{
"marker": "date_marker",
"type": "date",
"value": {
"fullDate": "2024-05-07T21:02:00.000Z",
"formattedValue": "08-05-2024 00:02",
"formatString": "DD-MM-YYYY HH:mm"
}
}
]
};

const response = await FormData.postFormsData(body);


Exemplo com um atributo de tipo simples "text" (Apenas um dos htmlValue, plainValue ou mdValue pode ser fornecido)


const body = {
"formIdentifier": "contact_us",
"formModuleConfigId": 2,
"moduleEntityIdentifier": "blog",
"replayTo": null,
"status": "sent",
"formData": [
{
"marker": "about_marker",
"type": "text",
"value": [
{
"htmlValue": "<p>Hello world</p>",
"params": {
"isImageCompressed": true,
"editorMode": "html"
}
}
]
}
]
};

const response = await FormData.postFormsData(body);


Exemplo com um atributo de tipo simples "textWithHeader" (Apenas um dos htmlValue, plainValue ou mdValue pode ser fornecido)


const body = {
"formIdentifier": "contact_us",
"formModuleConfigId": 2,
"moduleEntityIdentifier": "blog",
"replayTo": null,
"status": "sent",
"formData": [
{
marker: "textwithheader_marker",
type: "textWithHeader",
value: [
{
"header": "Headline",
"htmlValue": "<p>Hello World</p>",
"params": {
"isImageCompressed": true,
"editorMode": "html"
}
}
]
}
]
};

const response = await FormData.postFormsData(body);


Exemplo com atributo de tipo "image"


const testImageUrl = 'https://your-project.oneentry.cloud/cloud-static/files/project/product/2954/image/7e0a6a70-a23d-410f-8b6a-f8b4f7483244.png';
const filename = 'test-image.png';

/* Em um cenário do mundo real, você deve usar a API de Arquivos para criar um arquivo a partir da URL, mas para simplificar, usaremos uma URL de arquivo predefinida e usaremos o método createFileFromUrl para este exemplo */
const file = await FileUploading.createFileFromUrl(testImageUrl, filename);

const body = {
"formIdentifier": "contact_us",
"formModuleConfigId": 2,
"moduleEntityIdentifier": "blog",
"replayTo": null,
"status": "sent",
"formData": [
{
marker: "image_marker",
type: "image",
value: [
file
]
}
]
};

const response = await FormData.postFormsData(body);


Exemplo com atributo de tipo "groupOfImages"


const testImageUrl = 'https://your-project.oneentry.cloud/cloud-static/files/project/product/2954/image/7e0a6a70-a23d-410f-8b6a-f8b4f7483244.png';
const filename = 'test-image.png';

/* Em um cenário do mundo real, você deve usar a API de Arquivos para criar um arquivo a partir da URL, mas para simplificar, usaremos uma URL de arquivo predefinida e usaremos o método createFileFromUrl para este exemplo */
const file = await FileUploading.createFileFromUrl(testImageUrl, filename);

const body = {
"formIdentifier": "contact_us",
"formModuleConfigId": 2,
"moduleEntityIdentifier": "blog",
"replayTo": null,
"status": "sent",
"formData": [
{
marker: "groupofimages_marker",
type: "groupOfImages",
value: [
file
]
}
]
};

const response = await FormData.postFormsData(body);


Exemplo com atributo de tipo "files"


const testImageUrl = 'https://your-project.oneentry.cloud/cloud-static/files/project/product/2954/image/7e0a6a70-a23d-410f-8b6a-f8b4f7483244.png';
const filename = 'test-image.png';

/* Em um cenário do mundo real, você deve usar a API de Arquivos para criar um arquivo a partir da URL, mas para simplificar, usaremos uma URL de arquivo predefinida e usaremos o método createFileFromUrl para este exemplo */
const file = await FileUploading.createFileFromUrl(testImageUrl, filename);

const body = {
"formIdentifier": "contact_us",
"formModuleConfigId": 2,
"moduleEntityIdentifier": "blog",
"replayTo": null,
"status": "sent",
"formData": [
{
"marker": "picture_marker",
"type": "file",
"value": [
{
"filename": "files/project/page/10/image/Screenshot-from-2024-05-02-15-23-14.png",
"downloadLink": "http://my-site.com/cloud-static/files/project/page/10/image/Screenshot-from-2024-05-02-15-23-14.png",
"size": 392585
}
]
}
]
};

const response = await FormData.postFormsData(body);


Exemplo com atributo de tipo "radioButton" ou "list"



const body = {
"formIdentifier": "contact_us",
"formModuleConfigId": 2,
"moduleEntityIdentifier": "blog",
"replayTo": null,
"status": "sent",
"formData": [
{
"marker": "selector_marker",
"type": "list",
"value": [
{
"marker": "list",
"type": "list",
"value": ["1"]
}
]
}
]
};

const response = await FormData.postFormsData(body);


Exemplo com atributo de tipo "entity" (lista aninhada)



const body = {
"formIdentifier": "contact_us",
"formModuleConfigId": 2,
"moduleEntityIdentifier": "blog",
"replayTo": null,
"status": "sent",
"formData": [
{
"marker": "entity_marker",
"type": "entity",
"value": [25, 32, 24]
}
]
};

const response = await FormData.postFormsData(body);

Valor - identificadores numéricos para páginas e identificadores de string para produtos. Identificadores para produtos devem incluir o prefixo 'p-', por exemplo, 'p-1-', 'p-2-', etc. p-[parentId]-[productId]


Exemplo com atributo de tipo "timeInterval"



const body = {
"formIdentifier": "contact_us",
"formModuleConfigId": 2,
"moduleEntityIdentifier": "blog",
"replayTo": null,
"status": "sent",
"formData": [
{
marker: 'timeinterval_marker',
type: 'timeInterval',
value: [
[
"2025-02-11T16:00:00.000Z",
"2025-02-13T16:00:00.000Z"
]
]
},
]
};

const response = await FormData.postFormsData(body);

valor — array de intervalos em formato ISO 8601. por exemplo 2025-02-11T16:00:00:000Z

2025 — ano; 02 — mês; 11 — dia do mês; T — separador entre data e hora; 16:00:00 — hora no formato horas:minutos:segundos; 000Z — milissegundos e indicação de fuso horário. Z significa que a hora está especificada no formato UTC.


Exemplo de retorno:

{
"formData": {
"formIdentifier": "test-form",
"time": "2026-01-07T04:15:52.928Z",
"formData": [
{
"marker": "name",
"type": "string",
"value": "Test"
}
],
"entityIdentifier": "blog",
"fingerprint": "UQ_ue7gas",
"isUserAdmin": false,
"formModuleId": 2,
"userIdentifier": null,
"parentId": null,
"id": 3481
},
"actionMessage": ""
}

Esquema de resposta

Esquema: IPostFormResponse

formData: object
Dados do formulário.
exemplo:

{
"id": 42,
"formIdentifier": "contact_form",
"time": "2023-10-01T12:00:00Z",
"entityIdentifier": "blog",
"isUserAdmin": false,
"formModuleId": 2,
"parentId": null,
"userIdentifier": null,
"formData": [
{
"marker": "name",
"type": "string",
"value": "Jack"
}
]
}

formData.id: number
O identificador único da página do formulário.
exemplo: 12345

formData.formIdentifier: string
O identificador do formulário.
exemplo: "contact_form"

formData.time: string
O horário da submissão do formulário.
exemplo: "2023-10-01T12:00:00Z"

formData.entityIdentifier: string
O identificador da entidade.
exemplo: "blog"

formData.isUserAdmin: boolean
O usuário é administrador.
exemplo: false

formData.formModuleId: number
O identificador do módulo do formulário.
exemplo: 2

formData.parentId: any
O identificador do pai.
exemplo: null

formData.userIdentifier: any
O identificador do usuário.
exemplo: null

formData.formData: FormDataType[]
Dados dos campos do formulário.
exemplo:

[
{
"marker": "name",
"type": "string",
"value": "Jack"
}
]

actionMessage: string
Mensagem de ação para os dados do formulário.
exemplo: "Formulário enviado com sucesso"