Saltar al contenido principal

postFormsData

Envía datos del formulario a la plataforma OneEntry.

🎯 ¿Qué hace este método?

Este método envía datos del formulario a la plataforma OneEntry. Piensa en ello como hacer clic en "Enviar" en un formulario de contacto: envía toda la entrada del usuario (nombre, correo electrónico, mensaje, archivos, etc.) al servidor.

Casos de uso:

  • 📝 Formularios de contacto
  • 📋 Formularios de registro
  • 💬 Formularios de retroalimentación
  • 📤 Cargas de archivos
  • 🎫 Tickets de soporte

📖 Explicación Simple

Cuando un usuario completa un formulario en tu sitio web, necesitas enviar esos datos a algún lugar. Este método hace exactamente eso: toma todos los campos del formulario (texto, números, archivos, etc.) y los envía a OneEntry.

Piénsalo como:

El usuario completa el formulario → Tu código llama a postFormsData() → Datos guardados en OneEntry ✅

🚀 Ejemplo Súper Simple (¡Empieza Aquí!)

Escenario: Tienes un formulario de contacto con solo un campo de nombre.

// Paso 1: El usuario completa el formulario (por ejemplo, ingresa "John Doe")
// Paso 2: Envíalo a OneEntry

const response = await FormData.postFormsData({
formIdentifier: "contact_us", // 👈 El nombre de tu formulario
formModuleConfigId: 2, // 👈 ID de configuración del formulario (desde el administrador de OneEntry)
moduleEntityIdentifier: "blog", // 👈 Dónde guardarlo (desde OneEntry)
replayTo: null, // 👈 Correo electrónico de respuesta (opcional)
status: "sent", // 👈 "enviado" o "borrador"
formData: [ // 👈 Los datos reales del formulario
{
marker: "name", // 👈 Nombre del campo
type: "string", // 👈 Tipo de campo
value: "John Doe" // 👈 Entrada del usuario
}
]
});

// ✅ ¡Listo! Formulario enviado con éxito
console.log("Formulario enviado, ID:", response.formData.id);

¡Eso es todo! Ahora veamos cómo manejar diferentes tipos de campos...


📋 Lo Que Necesitas Saber Antes de Usar

Antes de llamar a este método, necesitas estas 3 cosas del panel de administración de OneEntry:

  1. formIdentifier - El nombre único de tu formulario (por ejemplo, "contact_us")
  2. formModuleConfigId - ID de configuración del formulario (un número, por ejemplo, 2)
  3. moduleEntityIdentifier - Dónde almacenar los datos (por ejemplo, "blog", "contacts")

¿Cómo encontrarlos?

  • Inicia sesión en OneEntry Admin
  • Ve a la sección de Formularios
  • Copia los valores de la configuración de tu formulario

🔧 Firma del 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(required): IBodyPostFormData
Cuerpo de la solicitud
ejemplo:

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

body.formIdentifier(required): string
Identificador de texto (marcador) del formulario.
ejemplo: "form"

body.formModuleConfigId(required): number
El identificador único de la configuración del módulo del formulario.
ejemplo: 2

body.moduleEntityIdentifier(required): string
Identificador de texto (marcador) de la entidad del módulo.
ejemplo: "blog"

body.replayTo(required): string | null
Correo electrónico para responder.
ejemplo: "some@email.com"

body.status(required): string
Estado del formulario.
ejemplo: "sent"

body.formData(required): FormDataType[]
Array de objetos de datos del formulario.
ejemplo:

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

body.fileQuery: IUploadingQuery
Consulta de archivo opcional para cargar archivos.
ejemplo:

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

langCode: string
Código de idioma. Predeterminado: "en_US"
ejemplo: "en_US"

Ejemplos

Ejemplo 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);

Ejemplo con un atributo de tipo simple "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);


Ejemplo con un atributo de tipo simple "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);


Ejemplo con un atributo de tipo simple "text" (Solo uno de htmlValue, plainValue o mdValue puede ser proporcionado)


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

const response = await FormData.postFormsData(body);


Ejemplo con un atributo de tipo simple "textWithHeader" (Solo uno de htmlValue, plainValue o mdValue puede ser proporcionado)


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

const response = await FormData.postFormsData(body);


Ejemplo con 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';

/* En un escenario del mundo real, deberías usar la API de archivos para crear un archivo desde la URL, pero por simplicidad, usaremos una URL de archivo predefinida y usaremos el método createFileFromUrl para este ejemplo */
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);


Ejemplo con 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';

/* En un escenario del mundo real, deberías usar la API de archivos para crear un archivo desde la URL, pero por simplicidad, usaremos una URL de archivo predefinida y usaremos el método createFileFromUrl para este ejemplo */
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);


Ejemplo con 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';

/* En un escenario del mundo real, deberías usar la API de archivos para crear un archivo desde la URL, pero por simplicidad, usaremos una URL de archivo predefinida y usaremos el método createFileFromUrl para este ejemplo */
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);


Ejemplo con atributo de tipo "radioButton" o "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);


Ejemplo con atributo de tipo "entity" (lista anidada)


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 cadena para productos. Los identificadores de productos deben incluir el prefijo 'p-', por ejemplo, 'p-1-', 'p-2-', etc. p-[parentId]-[productId]


Ejemplo con 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 en formato ISO 8601. por ejemplo 2025-02-11T16:00:00:000Z

2025 — año; 02 — mes; 11 — día del mes; T — separador entre fecha y hora; 16:00:00 — hora en formato horas:minutos:segundos; 000Z — milisegundos e indicación de zona horaria. Z significa que la hora está especificada en formato UTC.


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

Esquema: IPostFormResponse

formData: object
Datos del formulario.
ejemplo:

{
"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
El identificador único de la página del formulario.
ejemplo: 12345

formData.formIdentifier: string
El identificador del formulario.
ejemplo: "contact_form"

formData.time: string
La hora del envío del formulario.
ejemplo: "2023-10-01T12:00:00Z"

formData.entityIdentifier: string
El identificador de la entidad.
ejemplo: "blog"

formData.isUserAdmin: boolean
¿Es el usuario administrador?
ejemplo: false

formData.formModuleId: number
El identificador del módulo del formulario.
ejemplo: 2

formData.parentId: any
El identificador del padre.
ejemplo: null

formData.userIdentifier: any
El identificador del usuario.
ejemplo: null

formData.formData: FormDataType[]
Datos de los campos del formulario.
ejemplo:

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

actionMessage: string
Mensaje de acción para los datos del formulario.
ejemplo: "Formulario enviado con éxito"