Lewati ke konten utama

postFormsData

Kirim data formul ke platform OneEntry.

🎯 Apa yang dilakukan metode ini?

Metode ini mengirimkan data formulir ke platform OneEntry. Anggap saja seperti mengklik "Kirim" pada formulir kontak - ini mengirimkan semua input pengguna (nama, email, pesan, file, dll.) ke server.

Kasus penggunaan:

  • 📝 Formulir kontak
  • 📋 Formulir pendaftaran
  • 💬 Formulir umpan balik
  • 📤 Unggahan file
  • 🎫 Tiket dukungan

📖 Penjelasan Sederhana

Ketika seorang pengguna mengisi formulir di situs web Anda, Anda perlu mengirimkan data tersebut ke suatu tempat. Metode ini melakukan hal itu - ia mengambil semua kolom formulir (teks, angka, file, dll.) dan mengirimkannya ke OneEntry.

Anggap saja sebagai:

User fills form → Your code calls postFormsData() → Data saved in OneEntry ✅

🚀 Contoh Super Sederhana (Mulai Di Sini!)

Skenario: Anda memiliki formulir kontak dengan hanya kolom nama.

// Step 1: User fills the form (e.g., enters "John Doe")
// Step 2: Send it to OneEntry

const response = await FormData.postFormsData({
formIdentifier: "contact_us", // 👈 Your form's name
formModuleConfigId: 2, // 👈 Form config ID (from OneEntry admin)
moduleEntityIdentifier: "blog", // 👈 Where to save it (from OneEntry)
replayTo: null, // 👈 Reply email (optional)
status: "sent", // 👈 "sent" or "draft"
formData: [ // 👈 The actual form data
{
marker: "name", // 👈 Field name
type: "string", // 👈 Field type
value: "John Doe" // 👈 User's input
}
]
});

// ✅ Done! Form submitted successfully
console.log("Form submitted, ID:", response.formData.id);

Itu saja! Sekarang mari kita lihat bagaimana menangani berbagai jenis kolom...


📋 Apa yang Perlu Anda Ketahui Sebelum Menggunakan

Sebelum memanggil metode ini, Anda memerlukan 3 hal dari panel admin OneEntry:

  1. formIdentifier - Nama unik formulir Anda (misalnya, "contact_us")
  2. formModuleConfigId - ID konfigurasi formulir (sebuah angka, misalnya, 2)
  3. moduleEntityIdentifier - Tempat untuk menyimpan data (misalnya, "blog", "contacts")

Bagaimana cara menemukan ini?

  • Masuk ke OneEntry Admin
  • Pergi ke bagian Formulir
  • Salin nilai dari konfigurasi formulir Anda

🔧 Tanda Tangan Metode

FormData.postFormsData(

body*, langCode

);

Skema Parameter

Skema (body)

body(required): IBodyPostFormData
Badan permintaan
contoh:

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

body.formIdentifier(required): string
Pengidentifikasi teks (penanda) dari formulir.
contoh: "form"

body.formModuleConfigId(required): number
Pengidentifikasi unik dari konfigurasi modul formulir.
contoh: 2

body.moduleEntityIdentifier(required): string
Pengidentifikasi teks (penanda) dari entitas modul.
contoh: "blog"

body.replayTo(required): string | null
Email untuk dibalas.
contoh: "some@email.com"

body.status(required): string
Status dari formulir.
contoh: "sent"

body.formData(required): FormDataType[]
Array dari objek data formulir.
contoh:

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

body.fileQuery: IUploadingQuery
Query file opsional untuk mengunggah file.
contoh:

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

fileQuery.type(required): string
Tipe, menentukan nama folder di penyimpanan.
contoh: "page"

fileQuery.entity(required): string
Nama entitas dari mana file diunggah, menentukan nama folder di penyimpanan.
contoh: "editor"

fileQuery.id(required): number
Pengidentifikasi objek dari mana file diunggah, menentukan nama folder di penyimpanan.
contoh: 3787

fileQuery.width: number
Parameter lebar.
contoh: 0

fileQuery.height: number
Parameter tinggi.
contoh: 0

fileQuery.compress: boolean
Flag optimasi (kompresi) untuk gambar.
contoh: true

langCode: string
Kode bahasa. Default: "en_US"
contoh: "en_US"

Contoh

Contoh minimal


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

Contoh dengan atribut tipe sederhana "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);


Contoh dengan atribut tipe sederhana "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);


Contoh dengan atribut tipe sederhana "text" (Hanya satu dari htmlValue, plainValue atau mdValue yang dapat disediakan)


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


Contoh dengan atribut tipe sederhana "textWithHeader" (Hanya satu dari htmlValue, plainValue atau mdValue yang dapat disediakan)


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


Contoh dengan atribut tipe "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';

/* Dalam skenario dunia nyata Anda harus menggunakan File API untuk membuat file dari URL tetapi demi kesederhanaan kita akan menggunakan URL file yang telah ditentukan dan menggunakan metode createFileFromUrl untuk contoh ini */
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);


Contoh dengan atribut tipe "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';

/* Dalam skenario dunia nyata Anda harus menggunakan File API untuk membuat file dari URL tetapi demi kesederhanaan kita akan menggunakan URL file yang telah ditentukan dan menggunakan metode createFileFromUrl untuk contoh ini */
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);


Contoh dengan atribut tipe "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';

/* Dalam skenario dunia nyata Anda harus menggunakan File API untuk membuat file dari URL tetapi demi kesederhanaan kita akan menggunakan URL file yang telah ditentukan dan menggunakan metode createFileFromUrl untuk contoh ini */
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);


Contoh dengan atribut tipe "radioButton" atau "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);


Contoh dengan atribut tipe "entity" (daftar bersarang)


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

Value - pengidentifikasi numerik untuk halaman dan pengidentifikasi string untuk produk. Pengidentifikasi untuk produk harus menyertakan awalan 'p-', misalnya, 'p-1-', 'p-2-', dll. p-[parentId]-[productId]


Contoh dengan atribut tipe "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);

value — array dari array interval dalam format ISO 8601. misalnya 2025-02-11T16:00:00:000Z

2025 — tahun; 02 — bulan; 11 — hari dalam bulan; T — pemisah antara tanggal dan waktu; 16:00:00 — waktu dalam format jam:menit:detik; 000Z — milidetik dan indikasi zona waktu. Z berarti bahwa waktu ditentukan dalam format UTC.


Contoh pengembalian:

{
"formData": {
"formIdentifier": "test-form",
"time": "2026-06-07T14:41:36.172Z",
"formData": [
{
"marker": "name",
"type": "string",
"value": "Test"
}
],
"userIdentifier": "test@test.ru",
"entityIdentifier": "blog",
"fingerprint": "UQ_d3ed14ee-94ed-4767-842e-688431427eb0",
"isUserAdmin": false,
"formModuleId": 2,
"parentId": null,
"id": 6757
},
"actionMessage": ""
}

Skema Respons

Skema: IPostFormResponse

formData: object
Data formulir.
contoh:

{
"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
Pengidentifikasi unik dari halaman formulir.
contoh: 12345

formData.formIdentifier: string
Pengidentifikasi dari formulir.
contoh: "contact_form"

formData.time: string
Waktu pengiriman formulir.
contoh: "2023-10-01T12:00:00Z"

formData.entityIdentifier: string
Pengidentifikasi entitas.
contoh: "blog"

formData.isUserAdmin: boolean
Apakah pengguna adalah admin.
contoh: false

formData.formModuleId: number
Pengidentifikasi modul formulir.
contoh: 2

formData.userIdentifier: string | null
Pengidentifikasi pengguna.
contoh: null

formData.parentId: number | null
Pengidentifikasi induk.
contoh: null

formData.formData: FormDataType[]
Data kolom formulir.
contoh:

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

actionMessage: string
Pesan tindakan untuk data formulir (dapat dilokalisasi).
contoh: "Formulir berhasil dikirim"


Contoh penggunaan

Panduan langkah demi langkah dalam dokumentasi:

  • Kirim formulir — kumpulkan input formulir kontak dan kirim kembali ke OneEntry.
  • Formulir entitas — kirim formulir dengan kolom tipe entitas (halaman atau produk).

Coba secara langsung

Jalankan metode ini secara interaktif di JS SDK sandbox — sambungkan URL Proyek Anda dan Token Aplikasi pada kunjungan pertama, lalu buka skenario apa pun di bawah ini untuk melihat pengiriman formulir yang nyata:

  • Kirim formulir — kumpulkan input formulir kontak dan kirim kembali ke OneEntry.
  • Formulir entitas — kirim formulir dengan kolom tipe entitas (halaman atau produk).
  • Formulir file — kirim formulir yang mencakup lampiran file.
  • Formulir spam — kirim formulir dengan perlindungan spam.
  • Formulir jadwal — kirim slot waktu yang dipilih melalui kolom timeInterval.