फ़ॉर्म बिल्डर कैसे बनाएँ
फ़ॉर्म बिल्डर लोगों को अपने फ़ॉर्म डिज़ाइन करने देता है — फ़ील्ड चुनें, नियम तय करें, एक लिंक प्रकाशित करें — और फिर सबमिशन इकट्ठा करता है। अंदर से यह तीन चीज़ें है: डेटा के रूप में सेव की गई फ़ॉर्म परिभाषा, एक रेंडरर जो परिभाषा को काम करने वाले फ़ॉर्म में बदलता है, और नोटिफ़िकेशन व एक्सपोर्ट के साथ एक सबमिशन स्टोर। इसे बनाने से पहले जाँच लें कि सच में इसकी ज़रूरत है या नहीं: अगर आपको सिर्फ़ संपर्क फ़ॉर्म या आवेदन फ़ॉर्म चाहिए, तो वह फ़ॉर्म सीधे बनाएँ और बिल्डर को छोड़ दें।
क्या आपको बिल्डर चाहिए?
| आपकी स्थिति | यह बनाएँ |
|---|---|
| एक-दो फ़ॉर्म जो शायद ही बदलते हों | फ़ॉर्म ही। देखें संपर्क फ़ॉर्म कैसे जोड़ें। |
| आपकी टीम के गैर-डेवलपर लोगों द्वारा बनाए गए कई फ़ॉर्म | एक आंतरिक फ़ॉर्म बिल्डर |
| फ़ॉर्म आपके प्रोडक्ट का हिस्सा हैं (ग्राहक खुद फ़ॉर्म बनाते हैं) | खातों, सीमाओं और एम्बेडिंग वाला फ़ॉर्म बिल्डर |
| आपको मुख्य रूप से सर्वे के नतीजे और चार्ट चाहिए | एक सर्वे ऐप |
बिल्डर एक फ़ॉर्म से बड़ा प्रोजेक्ट है, क्योंकि हर फ़ील्ड प्रकार को एडिटर, सार्वजनिक फ़ॉर्म, सत्यापन, स्टोरेज, नोटिफ़िकेशन और एक्सपोर्ट — सब में काम करना होता है।
फ़ॉर्म बिल्डर को क्या चाहिए
फ़ॉर्म की परिभाषाएँ
हर फ़ॉर्म को फ़ील्ड की एक सूची के रूप में सेव करें, संरचित डेटा के रूप में (Postgres कॉलम में JSON अच्छा काम करता है)। एक फ़ील्ड कुछ ऐसा दिख सकता है:
- id — एक स्थिर ID जो कभी नहीं बदलती, भले ही लेबल बदल जाए
- type — text, email, number, long text, select, checkbox, date, file
- label और help text
- required, min / max, अनुमत फ़ाइल प्रकार
- select फ़ील्ड के लिए options
- order, और वैकल्पिक रूप से एक condition (“सिर्फ़ तब दिखाएँ जब फ़ील्ड X, Y हो”)
एडिटर इस सूची को बदलता है; सार्वजनिक फ़ॉर्म इसे पढ़ता है। यही पूरी तरकीब है: हर फ़ॉर्म के लिए नया कोड नहीं।
सबमिशन
- Submissions — फ़ॉर्म, फ़ॉर्म संस्करण, सबमिट होने का समय, फ़ील्ड ID के हिसाब से जवाब, स्थिति (new, read, archived)।
- Files — अपलोड की गई फ़ाइलें फ़ाइल स्टोरेज में रहती हैं, और सबमिशन में सिर्फ़ उसका संदर्भ होता है, डेटाबेस की पंक्ति के अंदर कभी नहीं।
पेज
- फ़ॉर्म की सूची सबमिशन की संख्या के साथ।
- एडिटर — फ़ील्ड जोड़ें, क्रम बदलें और सेट करें, बगल में लाइव प्रीव्यू के साथ।
- सेटिंग्स — पुष्टि संदेश या रीडायरेक्ट, सूचना ईमेल, खुलने/बंद होने की तारीखें, सबमिशन सीमा।
- सार्वजनिक फ़ॉर्म अपने लिंक पर, और दूसरी वेबसाइटों के लिए एम्बेड करने योग्य संस्करण।
- सबमिशन तालिका खोज, स्थिति, विवरण दृश्य और CSV एक्सपोर्ट के साथ।
फ़ैसले और समझौते
संस्करण (versioning)। कोई 200 सबमिशन के बाद “Phone” को “Mobile number” कर देगा। अगर जवाब फ़ील्ड ID से सेव हों और हर सबमिशन अपना फ़ॉर्म संस्करण दर्ज करे, तो पुराने सबमिशन फिर भी सही दिखेंगे। इसके बिना आपका डेटा चुपचाप गड़बड़ हो जाता है।
सत्यापन दो बार चलता है। तेज़ प्रतिक्रिया के लिए फ़ील्ड ब्राउज़र में जाँचें, और फिर सर्वर पर भी, क्योंकि कोई भी सीधे आपके endpoint पर डेटा भेज सकता है। असली मायने सर्वर वाली जाँच के हैं।
फ़ाइल अपलोड। इनके साथ स्टोरेज का खर्च, आकार की सीमा, फ़ाइल प्रकार की जाँच और निजता के सवाल आते हैं (CV, पहचान पत्र, मेडिकल फ़ॉर्म)। प्रकार और आकार सीमित करें, और अपलोड की गई फ़ाइलों को डिफ़ॉल्ट रूप से निजी रखें, जिन्हें सिर्फ़ फ़ॉर्म के मालिक पढ़ सकें। देखें अपने ऐप में फ़ाइल अपलोड कैसे जोड़ें।
सूचनाएँ। “कोई सबमिट करे तो मुझे ईमेल भेजो” की उम्मीद रहती है। इसके लिए ईमेल प्रदाता और API key चाहिए; देखें अपने ऐप से ईमेल कैसे भेजें।
स्पैम। सार्वजनिक फ़ॉर्म को बॉट जल्दी ढूँढ लेंगे। honeypot फ़ील्ड का इस्तेमाल करें (लोगों से छिपा हुआ, बॉट उसे भर देते हैं), IP के हिसाब से रेट लिमिट, सर्वर पर सत्यापन और ज़रूरत पड़ने पर CAPTCHA सेवा।
एम्बेडिंग। किसी और की वेबसाइट पर फ़ॉर्म डालने का सबसे सरल और सुरक्षित तरीका iframe एम्बेड है। script एम्बेड ज़्यादा देशी लगता है, लेकिन उसे बनाना और सुरक्षित करना कठिन है।
शर्त वाला तर्क (conditional logic)। “यह फ़ील्ड सिर्फ़ तब दिखाओ जब…” बहुत लोकप्रिय है और परीक्षण को कई गुना बढ़ा देता है। इसे तब जोड़ें जब बुनियादी हिस्सा मज़बूत हो जाए।
एक ऐसा पहला प्रॉम्प्ट जो काम करता है
मेरी टीम के लिए एक फ़ॉर्म बिल्डर वेब ऐप बनाओ। लॉग-इन उपयोगकर्ता एक एडिटर में लाइव प्रीव्यू के साथ फ़ॉर्म बनाते हैं। फ़ील्ड प्रकार: छोटा टेक्स्ट, लंबा टेक्स्ट, email, number, date, single select, checkboxes और file upload। हर फ़ील्ड की एक स्थिर ID, लेबल, help text, required flag और प्रकार-विशिष्ट नियम हों (min/max, options, अनुमत फ़ाइल प्रकार और 10 MB आकार सीमा)। फ़ॉर्म की परिभाषा JSON में सेव करो, हर publish पर बढ़ने वाले संस्करण नंबर के साथ। हर फ़ॉर्म को एक सार्वजनिक लिंक और iframe एम्बेड कोड मिले। सबमिशन को प्रकाशित संस्करण के विरुद्ध सर्वर पर सत्यापित करो, जवाब फ़ील्ड ID के हिसाब से फ़ॉर्म संस्करण के साथ सेव करो, और अपलोड की गई फ़ाइलें निजी फ़ाइल स्टोरेज में रखो। एक छिपा honeypot फ़ील्ड और हर IP के लिए रेट लिमिट जोड़ो। फ़ॉर्म मालिकों को स्थिति (new, read, archived), विवरण दृश्य और CSV एक्सपोर्ट वाली सबमिशन तालिका दिखे। सब कुछ एक database में रखो। शर्त वाला तर्क और ईमेल सूचनाएँ बाद के लिए छोड़ दो।
बनाने के चरण
- एडिटर और परिभाषा। हर फ़ील्ड प्रकार वाला एक फ़ॉर्म बनाएँ और एजेंट के साथ सेव हुआ JSON देखें। क्या वह साफ़ और स्थिर है?
- सार्वजनिक फ़ॉर्म। फ़ोन पर भरकर देखें। सत्यापन संदेश और पुष्टि स्क्रीन जाँचें।
- सर्वर सत्यापन। एजेंट से कहें कि पेज को छोड़कर सीधे सर्वर पर एक ऐसा सबमिशन भेजे जो नियम तोड़ता हो। उसे अस्वीकार होना चाहिए।
- संस्करण। कुछ सबमिशन के बाद फ़ील्ड का नाम बदलें और क्रम बदलें। पुराने सबमिशन में अब भी सही जवाब दिखने चाहिए।
- अपलोड। बहुत बड़ी और गलत प्रकार की फ़ाइल आज़माएँ। पक्का करें कि कोई अनजान व्यक्ति अंदाज़े से लिंक बनाकर अपलोड की गई फ़ाइल नहीं खोल सकता।
- सबमिशन तालिका और एक्सपोर्ट। जवाबों में कॉमा, लाइन ब्रेक और लिखे गए उच्चारण वाले अक्षरों के साथ CSV एक्सपोर्ट जाँचें।
- सूचनाएँ, एम्बेड, तर्क। इन्हें एक-एक करके जोड़ें।
आम गलतियाँ
- लेबल के हिसाब से जवाब सेव करना। लेबल बदलते हैं। स्थिर फ़ील्ड ID इस्तेमाल करें।
- सिर्फ़ ब्राउज़र में सत्यापन। यह सुविधा है, सुरक्षा नहीं।
- सार्वजनिक अपलोड फ़ाइलें। फ़ॉर्म अक्सर ऐसे दस्तावेज़ लेते हैं जिन्हें लोग उजागर नहीं होने देना चाहते।
- कोई स्पैम सुरक्षा न होना। सार्वजनिक फ़ॉर्म कुछ दिनों में कचरे से भर सकता है।
- एक फ़ॉर्म के लिए बिल्डर बनाना। फ़ॉर्म ही बनाएँ।
- सार्वजनिक प्रोडक्ट पर असीमित सबमिशन। अगर ग्राहक फ़ॉर्म बनाते हैं, तो हर प्लान की सीमा तय करें, वरना एक लोकप्रिय फ़ॉर्म आपका होस्टिंग बिल बढ़ा सकता है।
कब तैयार प्रोडक्ट बेहतर विकल्प है
होस्टेड फ़ॉर्म टूल ज़्यादातर ज़रूरतों के लिए उत्कृष्ट और सस्ते हैं। वे एम्बेडिंग, स्पैम, पेमेंट, इंटीग्रेशन और दर्जनों फ़ील्ड प्रकारों में पहुँच पहले ही सुलझा चुके हैं। अगर आपकी टीम को सिर्फ़ फ़ॉर्म चाहिए, तो एक टूल इस्तेमाल करें — देखें Typeform विकल्प और Google Forms विकल्प।
अपना बनाएँ जब सबमिशन आपके अपने डेटा के साथ रहने चाहिए (आपके चलाए CRM या क्लाइंट पोर्टल में डेटा जाना), जब सबमिशन के बाद ऐसे वर्कफ़्लो चाहिए जो टूल नहीं कर सकते, जब डेटा की जगह या स्वामित्व एक शर्त हो, या जब फ़ॉर्म उस प्रोडक्ट की एक सुविधा हों जो आप बेच रहे हैं।
Mythex के साथ बनाना
Mythex पर आप चैट में बिल्डर का वर्णन करते हैं और लाइव प्रीव्यू में एडिटर और सार्वजनिक फ़ॉर्म को साथ-साथ परखते हैं। Mythex फ़ॉर्म की परिभाषाओं और सबमिशन के लिए एक समर्पित database जोड़ता है, और जब आपके ऐप को अपलोड चाहिए तो file storage अपने-आप चालू हो जाता है (Free प्लान पर 1 GB की सीमा)। सूचना ईमेल उस प्रदाता के ज़रिए जाते हैं जिसे आप अपनी key से जोड़ते हैं। ऐप को mythex.ai लिंक पर प्रकाशित करें, या Pro पर अपने डोमेन पर, और सार्वजनिक फ़ॉर्म लिंक वहीं से काम करेंगे।
सवाल
फ़ॉर्म बिल्डर फ़ॉर्म कैसे स्टोर करता है?
आम तौर पर फ़ॉर्म की परिभाषा के रूप में: फ़ील्ड की एक सूची, जिसमें हर फ़ील्ड का प्रकार, लेबल, सत्यापन नियम और क्रम हो, और उसे JSON जैसे संरचित डेटा में सेव किया जाता है। वही परिभाषा एडिटर और सार्वजनिक फ़ॉर्म दोनों को चलाती है, इसलिए नया फ़ील्ड जोड़ने के लिए हर फ़ॉर्म के लिए नया कोड नहीं लगता।
फ़ॉर्म के सबमिशन कैसे सेव होने चाहिए?
हर सबमिशन को उस फ़ॉर्म संस्करण के संदर्भ के साथ सेव करें जिसके आधार पर वह बना था, और जवाब फ़ील्ड ID के हिसाब से रखें। इससे बाद में फ़ील्ड का नाम बदलने या क्रम बदलने से पुराने सबमिशन नहीं टूटते।
सार्वजनिक फ़ॉर्म पर स्पैम कैसे रोकूँ?
एक छिपा हुआ honeypot फ़ील्ड, हर IP पते के लिए रेट लिमिट, सर्वर पर सत्यापन, और अगर स्पैम फिर भी आए तो CAPTCHA सेवा मिलाएँ। सिर्फ़ ब्राउज़र में चलने वाली जाँचों पर कभी भरोसा न करें।
क्या मुझे पूरा फ़ॉर्म बिल्डर चाहिए या सिर्फ़ एक फ़ॉर्म?
अगर आपको एक-दो तय फ़ॉर्म चाहिए, तो उन्हीं फ़ॉर्म को सीधे बनाएँ — यह कहीं ज़्यादा सरल है। फ़ॉर्म बिल्डर तब काम का है जब गैर-तकनीकी लोगों को डेवलपर से पूछे बिना कई फ़ॉर्म बनाने और बदलने हों।