एक कंपोज़िट प्रश्नों का एक पुन: उपयोग योग्य बंडल है — उदाहरण के लिए First Name, Last Name, Title, Email एक ही "Person" इकाई के रूप में। आप इसे एक बार define करते हैं, इसे कितने भी फ़ॉर्म में drop करते हैं, और इसे एक ही जगह से manage करते हैं। जब आप कंपोज़िट को बेहतर बनाते हैं, तो उसका उपयोग करने वाला हर फ़ॉर्म अगली बार publish होने पर नया version अपना लेता है।
कंपोज़िट दो ऐसी समस्याओं को हल करते हैं जो आपके बनाए हर फ़ॉर्म के साथ बढ़ती जाती हैं:
- Consistency — वही "Person", "Address block", या "Insurance policy" प्रश्न आपके सभी फ़ॉर्म में समान रहते हैं, बजाय इसके कि copies independently edit होने पर अलग-अलग हो जाएं।
- Aggregation — किसी कंपोज़िट का हर answer एक standalone प्रविष्टि के रूप में भी सहेजा जाता है, इसलिए आप अपने सभी फ़ॉर्म में कभी भी submit किया गया हर "Person" एक ही table में देख सकते हैं।
कंपोज़िट हर उस जगह काम करते हैं जहां फ़ॉर्म काम करते हैं: web forms, builder preview, phone calls (NueVoice), CSV exports, notification emails, webhooks, और React component exports।
कंपोज़िट बनाना
इसे बनाने के तीन तरीके हैं:
- Composites page से — app sidebar में कंपोज़िट खोलें और नया कंपोज़िट click करें। यह पूर्ण कंपोज़िट editor खोलता है जहां आप उप-प्रश्नों को ठीक वैसे ही add और configure करते हैं जैसे कोई फ़ॉर्म बनाते समय।
- किसी फ़ॉर्म से — एक Composite प्रश्न (palette का Advanced section) या composite items पर set किया गया एक List प्रश्न add करें, फिर एक कंपोज़िट चुनें... click करें और picker में create option का उपयोग करें। नया कंपोज़िट तुरंत आपके प्रश्न से attach हो जाता है।
- किसी मौजूदा question group से — builder में एक Question Group select करें और इसे कंपोज़िट बनाएँ click करें। इसके उप-प्रश्न एक नए कंपोज़िट में बदल दिए जाते हैं, और group को उसे reference करने वाले एक Composite प्रश्न से replace कर दिया जाता है।
एक कंपोज़िट standard question types (text, email, phone, number, dates, choices, ratings, और अधिक) से लिए गए 30 उप-प्रश्न तक रख सकता है। Screens, groups, और अन्य कंपोज़िट किसी कंपोज़िट के अंदर nest नहीं किए जा सकते।
संपादन: तीन स्तर
आप किसी कंपोज़िट को उतनी गहराई तक edit कर सकते हैं जितनी उस समय आवश्यक हो:
- Canvas पर inline — जब कोई फ़ॉर्म आपके स्वामित्व वाले किसी कंपोज़िट को reference करता है, तो उसके fields workflow canvas पर प्रश्न के नीचे child nodes के रूप में दिखाई देते हैं। वहीं titles और settings edit करें, fields add या remove करें। परिवर्तन कंपोज़िट में ही autosave होते हैं (फ़ॉर्म में नहीं), इसलिए वे उसका उपयोग करने वाले हर फ़ॉर्म के लिए उपलब्ध हो जाते हैं।
- Picker — किसी प्रश्न द्वारा reference किया गया कंपोज़िट बदलें से swap करें, या किसी और के कंपोज़िट को duplicate करके अपनी editable copy पाएं।
- पूर्ण editor — पूर्ण standalone editing experience के लिए पूर्ण संपादक खोलें click करें (या Composites page से कंपोज़िट खोलें), जिसमें translations के लिए भाषाएँ tab और प्रविष्टियाँ view शामिल हैं।
Inline edits कंपोज़िट की working copy को modify करते हैं, जो इसे reference करने वाले हर फ़ॉर्म द्वारा share की जाती है। ये live, published फ़ॉर्म को तब तक प्रभावित नहीं करते जब तक आप कंपोज़िट publish और उन फ़ॉर्म को republish नहीं करते — अगला section देखें।
Publishing और versions
कंपोज़िट का एक सोचा-समझा दो-चरणीय safety model होता है:
- Working copy वह है जिसे आप edit करते हैं। यह कभी respondents को नहीं दिखाई जाती।
- Published definition एक immutable snapshot है जो हर बार आपके कंपोज़िट पर प्रकाशित करें click करने पर बनता है। Publishing कंपोज़िट का version bump करता है।
जब आप किसी फ़ॉर्म को publish करते हैं, तो फ़ॉर्म कंपोज़िट की वर्तमान published definition को अपने स्वयं के published snapshot में freeze कर देता है। उसके बाद से, उस फ़ॉर्म के respondents हमेशा बिल्कुल वही version देखते हैं — भले ही कंपोज़िट बाद में बदल जाए। इसका मतलब है:
- अप्रकाशित edits वाला कंपोज़िट अपने canvas badge पर एक ड्राफ़्ट · प्रकाशित करें pill दिखाता है। इसे वहीं publish करने के लिए click करें जहां आप काम कर रहे हैं (यदि अन्य फ़ॉर्म भी इसका उपयोग करते हैं तो आपसे confirm करने को कहा जाएगा)।
- जब आप pending परिवर्तनों वाले कंपोज़िट reference करने वाला फ़ॉर्म publish करते हैं, तो एक dialog उन सभी को सूचीबद्ध करता है, जिसमें सभी प्रकाशित करें (पहले कंपोज़िट, फिर फ़ॉर्म) या केवल फ़ॉर्म (फ़ॉर्म को अंतिम published कंपोज़िट versions पर रखें) का विकल्प होता है।
- एक कंपोज़िट जो कभी publish नहीं हुआ, फ़ॉर्म publish को तब तक block करता है जब तक आप उसे publish नहीं करते — freeze करने के लिए फ़ॉर्म के पास कोई version नहीं होता।
किसी कंपोज़िट सुधार को किसी मौजूदा फ़ॉर्म में रोल आउट करने के लिए: कंपोज़िट publish करें, फिर फ़ॉर्म republish करें।
फ़ॉर्म में कंपोज़िट का उपयोग
Composite question type
Advanced palette section से एक Composite प्रश्न add करें और एक कंपोज़िट चुनें। Respondents उसके सभी fields एक साथ एक screen पर देखते हैं, उन्हें भरते हैं, और एक ठीक है के साथ continue करते हैं — एक Multi-Question Page की तरह जिसकी content centrally managed होती है। Answer एक structured value के रूप में सहेजा जाता है, और एक कंपोज़िट प्रविष्टि record की जाती है।
Sharing और ownership
कंपोज़िट अपने creator के होते हैं। Teammates आपके कंपोज़िट को अपने फ़ॉर्म में reference कर सकते हैं — वे उसके fields read-only देखेंगे, साथ में owner दिखाने वाला एक note होगा — लेकिन केवल आप ही इसे edit कर सकते हैं। कोई भी अपनी स्वतंत्र copy fork करने के लिए संपादित करने के लिए डुप्लिकेट करें click कर सकता है।
कंपोज़िट + List question type
List question type (palette का Choices section) repeating items collect करता है। इसके आइटम प्रकार को कंपोज़िट आइटम पर set करें और एक कंपोज़िट चुनें, और respondents कितनी भी structured प्रविष्टियाँ add कर सकते हैं — classic "add all your board members" pattern:
- Respondents एक प्रविष्टि append करने के लिए आइटम जोड़ें click करते हैं; प्रत्येक प्रविष्टि कंपोज़िट के fields वाला एक card होती है।
- Minimum / maximum items settings लागू करती हैं कि कितनी प्रविष्टियाँ आवश्यक या अनुमत हैं (hard cap 100)।
- प्रविष्टियाँ remove की जा सकती हैं, और long lists को manageable रखने के लिए collapse की जा सकती हैं — डिफ़ॉल्ट रूप से एक समय में केवल एक प्रविष्टि खुली रहती है।
- प्रत्येक प्रविष्टि अपनी स्वयं की कंपोज़िट प्रविष्टि के रूप में record की जाती है, जो list में उसकी position के साथ tag की जाती है।
Collapsed display modes
प्रदर्शन मोड setting (कंपोज़िट select होने के बाद दिखाई देती है) नियंत्रित करती है कि एक collapsed प्रविष्टि कैसे render होती है:
- कॉम्पैक्ट (डिफ़ॉल्ट) — प्रविष्टि एक single line में collapse हो जाती है। उस line में कौन से fields और किस क्रम में दिखाई दें यह चुनने के लिए संक्षिप्त सारांश फ़ील्ड का उपयोग करें — उदाहरण के लिए
John · Director · john@acme.com। कंपोज़िट का पहला field preselect होता है; reorder करने के लिए add, remove, और drag करें। - कार्ड — प्रविष्टि एक ऊंचे card में collapse हो जाती है जो हर field का label और value दिखाता है (एक em dash unanswered fields को mark करता है)। तब सबसे अच्छा जब reviewers को प्रविष्टियों को expand किए बिना एक नज़र में verify करना हो।
Plain text की lists
एक List simple text items भी collect कर सकती है (आइटम प्रकार → टेक्स्ट आइटम) — type करें और Enter दबाएं, या जोड़ें button का उपयोग करें। Per-item validation (pattern, length), duplicate prevention, drag reordering, default items, और min/max counts सभी उपलब्ध हैं। किसी कंपोज़िट की आवश्यकता नहीं।
प्रविष्टियाँ: एक कंपोज़िट, हर फ़ॉर्म
एक कंपोज़िट खोलें और उसका उपयोग करने वाले सभी फ़ॉर्म में हर सहेजी गई प्रविष्टि की read-only table के लिए प्रविष्टियाँ पर switch करें। प्रत्येक row एक भरी हुई कंपोज़िट है — चाहे वह किसी Composite प्रश्न से आई हो या किसी List में एक single item से।
- Columns — प्रति sub-field एक column, साथ ही source form, submission time, और (list प्रविष्टियों के लिए) item position। view को focus करने के लिए columns hide और show करें।
- Copy as JSON — हर row में एक copy button होता है जो पूरी प्रविष्टि को JSON के रूप में आपके clipboard पर रख देता है।
- Export — वर्तमान view को CSV या JSON के रूप में download करें। Exports आपके filters और आपके visible-column selection का सम्मान करते हैं।
Privacy form permissions का पालन करती है: प्रविष्टियाँ view केवल उन फ़ॉर्म की प्रविष्टियाँ शामिल करती है जिनकी responses आपको देखने की अनुमति है। data residency वाली teams पर, प्रविष्टियाँ team के अपने database region में store होती हैं।
कंपोज़िट और lists के साथ Logic
Logic rules कंपोज़िट structure को समझते हैं:
- Sub-field conditions — किसी condition में किसी भी कंपोज़िट sub-answer को target करें (उदाहरण के लिए, jump if Person → Title equals "CEO")। Sub-fields condition field picker में अपने parent प्रश्न के नीचे दिखाई देते हैं।
- List count operators — किसी List में कितने items हैं उस पर branch करें: item count equals, item count is greater than, item count is less than।
Translations
कंपोज़िट अपने स्वयं के translations रखते हैं, जो पूर्ण editor के भाषाएँ tab में managed होते हैं। एक भाषा add करें और AI के साथ कंपोज़िट के नाम, description, और हर sub-field को auto-translate करें — वही engine जो फ़ॉर्म उपयोग करते हैं। Translations working copy का हिस्सा हैं और publish flow के माध्यम से respondents तक पहुंचते हैं, इसलिए एक multilingual फ़ॉर्म अपने कंपोज़िट को respondent की भाषा में render करता है।
Phone calls
NueVoice calls पर, एक Composite प्रश्न एक natural sequence के रूप में पूछा जाता है — agent caller को क्रम में हर sub-field के माध्यम से ले जाता है। कंपोज़िट की एक List एक loop बन जाती है: हर पूर्ण प्रविष्टि के बाद agent एक और add करने का offer देता है, जब तक caller पूरा न कर ले या maximum तक न पहुंच जाए। प्रविष्टियाँ web submissions के समान ही record की जाती हैं।
Templates
जब आप कंपोज़िट का उपयोग करने वाला कोई फ़ॉर्म marketplace template के रूप में publish करते हैं, तो कंपोज़िट उसके साथ embed हो जाते हैं। template का उपयोग करने वाले किसी भी व्यक्ति को उनके अपने self-contained clones मिलते हैं — पहले से published, पूरी तरह editable, और आपके originals से स्वतंत्र।
हटाना और पुनर्स्थापित करना
किसी कंपोज़िट को हटाना एक soft delete है: यह pickers और आपकी library list से गायब हो जाता है, लेकिन published फ़ॉर्म काम करते रहते हैं — उनके snapshots में पहले से ही frozen definition होती है। हटाए गए कंपोज़िट को Composites page से किसी भी समय पुनर्स्थापित करें। हटाए जाने के दौरान नए फ़ॉर्म किसी कंपोज़िट को reference नहीं कर सकते।
API access (MCP)
NueForm MCP server AI assistants को पूर्ण कंपोज़िट management expose करता है: list_composites, get_composite, create_composite, update_composite, publish_composite, और delete_composite। वही working-copy/publish semantics लागू होते हैं — update_composite draft को edit करता है, और reference करने वाले फ़ॉर्म तब तक publish नहीं कर सकते जब तक publish_composite call न किया गया हो। MCP Integration देखें।
वास्तविक उपयोग के मामले
Board members और rosters. एक law firm के entity-formation intake को हर board member का नाम, title, और email चाहिए। एक "Board Member" कंपोज़िट बनाएं, उसे एक List में drop करें, और clients जितने members हैं उतने add करते हैं। प्रविष्टियाँ view कभी भी submit किए गए हर board member का एक cross-matter roster बन जाता है — conflict checks के लिए exportable।
एक contact block, पचास फ़ॉर्म. Marketing दर्जनों campaign forms चलाती है, सभी समान contact details मांगते हैं। एक "Contact" कंपोज़िट के साथ, एक compliance परिवर्तन (मान लें, Full name को First और Last में split करना) एक बार किया जाता है, publish किया जाता है, और हर फ़ॉर्म के अगले publish पर फ़ॉर्म-दर-फ़ॉर्म रोल आउट किया जाता है — पचास builders में खोजबीन किए बिना।
Event guests. एक registration form registrant के details मांगता है, फिर एक "Attendee" कंपोज़िट की एक List ("Who's coming with you?") जिसका maximum आपकी table size से मेल खाता हो। Name · Meal preference पर set किया गया कॉम्पैक्ट प्रदर्शन मोड long guest lists को scannable रखता है; प्रविष्टियाँ view catering को आपके सभी event forms के हर attendee की एक table देता है।
Vendor compliance. Procurement vendors से insurance policies collect करता है: एक List में एक "Insurance Policy" कंपोज़िट (provider, policy number, coverage, expiry date), जो onboarding, renewal, और audit forms में उपयोग होता है। कार्ड प्रदर्शन मोड reviewers को हर policy को expand किए बिना verify करने देता है, और प्रविष्टियाँ view file पर हर policy की एक single registry है — audit के लिए CSV export के साथ।
HR applications. एक job application एक List में एक "Previous Employment" कंपोज़िट (employer, role, dates) का उपयोग करता है जो पाँच पर capped है, साथ ही separate onboarding form के साथ share किया गया एक "Emergency Contact" कंपोज़िट। sub-field Previous Employment → Role पर Logic senior candidates को extra questions पर route करता है, और एक list-count rule बिना work history वाले applications को manual review के लिए flag करता है।
Limits और good-to-knows
- प्रति कंपोज़िट 30 उप-प्रश्न तक; नाम 120 अक्षरों तक।
- कंपोज़िट में screens, groups, या अन्य कंपोज़िट नहीं हो सकते, और किसी List के माध्यम से खुद को reference नहीं कर सकते।
- आप जो भी maximum configure करें, Lists 100 items पर capped हैं।
- Inline canvas editing कंपोज़िट के owner के लिए उपलब्ध है; teammates को read-only fields और संपादित करने के लिए डुप्लिकेट करें मिलता है।
- किसी कंपोज़िट को publish करना अपने आप किसी live फ़ॉर्म को कभी नहीं बदलता — फ़ॉर्म हमेशा फ़ॉर्म publish पर कंपोज़िट versions फिर से freeze करते हैं।