अनुमोदन और PO के लिए क्रय अनुरोध ऐप ब्लूप्रिंट
स्पष्ट भूमिकाओं और स्टेटस के साथ अनुमोदन, बजट जांच, खरीद आदेश और विक्रेता संचार डिज़ाइन करने के लिए इस क्रय अनुरोध ऐप ब्लूप्रिंट का उपयोग करें।

एक आंतरिक क्रय अनुरोध ऐप को क्या सुधारना चाहिए
ईमेल थ्रेड और स्प्रेडशीट अक्सर एक ही तरीकों से असफल होते हैं। अनुरोध दफन हो जाते हैं। फ़ाइलें "final_v7" जैसी अलग-अलग प्रतियों में बिखर जाती हैं। अनुमोदन साइड चैट में होते हैं जिनका कोई रिकॉर्ड नहीं रहता। जब कोई पूछता है, "क्या हमें इसे खरीदने की मंज़ूरी है?" तो जवाब इस पर निर्भर करता है कि कौन ऑनलाइन है और किस शीट पर भरोसा किया जा रहा है।
एक अनुरोध ऐप को किसी भी क्षण स्थिति स्पष्ट दिखानी चाहिए। आपको किसी अनुरोध को खोलते ही पता चलना चाहिए कि किसने सबमिट किया, वे क्या खरीदना चाहते हैं, अनुमानित लागत क्या है, और आगे क्या होगा। इसके साथ एक साफ़ इतिहास भी होना चाहिए: किसने कब मंज़ूरी या अस्वीकृति दी, और बाद में क्या बदला।
न्यूनतम रूप से, हर अनुरोध को बिना खोदे इन सवालों का जवाब देना चाहिए:
- अगला कदम किसका है?
- क्या पेंडिंग है (अनुमोदन, बजट जांच, विक्रेता उद्धरण, PO निर्माण)?
- क्या मंज़ूर हुआ (राशि, विक्रेता, स्कोप), और क्या इसमें कोई बदलाव हुआ है?
- कब चाहिए और क्यों?
- ऑडिट ट्रेल क्या है ताकि वित्त उस पर भरोसा कर सके?
स्कोप वह जगह है जहाँ कई टीमें ज़रूरत से अधिक बनाती हैं। शुरू में तय करें कि आप सिर्फ़ request-to-purchase order तक कवर कर रहे हैं या इनवॉइस मैचिंग और माल प्राप्ति जैसे बाद के चरण भी शामिल हैं। request-to-PO आमतौर पर पहला सही माइलस्टोन होता है: यह साफ़ अनुमोदन और बजट चेक को मजबूर करता है, लेकिन प्रोजेक्ट को नियंत्रित रखता है।
पहली रिलीज़ को सरल रखें। एक टीम, एक अनुमोदन पथ, और "पूरा" की स्पष्ट परिभाषा से शुरू करें। उदाहरण के लिए, IT अनुरोध जो $1,000 से कम हैं उन्हें केवल मैनेजर की मंज़ूरी चाहिए हो सकती है, जबकि बड़े खरीद वित्त तक भेजे जाएंगे।
अगर आप इसे जल्दी बिना कोड लिखे बनाना चाहते हैं, तो AppMaster एक व्यावहारिक विकल्प है। आप अनुरोध डेटा मॉडल कर सकते हैं, अनुमोदन चरण सेट कर सकते हैं, और उसी ब्लूप्रिंट से वेब और मोबाइल के लिए प्रोडक्शन-रेडी ऐप जेनरेट कर सकते हैं।
उपयोगकर्ता, भूमिकाएँ और एक्सेस नियम
एक क्रय अनुरोध ऐप परमीशन्स पर जीवित रहता है या मरता है। अगर गलत व्यक्ति अनुमोदन के बाद अनुरोध बदल सकता है, या टीमें आवश्यक जानकारी नहीं देख पातीं, तो प्रक्रिया धीमी और जोखिमभरी हो जाती है।
साफ़ रोल नामकरण से शुरू करें। टाइटल कंपनियों में भिन्न होते हैं, पर ज़्यादातर ऐप्स को स्थिर जिम्मेदारियों की ज़रूरत होती है: requesters (अनुरोध बनाते हैं और सवालों का जवाब देते हैं), managers (ज़रूरत और समय की पुष्टि करते हैं), procurement (विक्रेताओं को सत्यापित करते और PO बनाते हैं), finance (बजट और नीति की पुष्टि), और एक या अधिक approvers (हस्ताक्षर अधिकार)। कुछ वर्कफ़्लो में सीमित-एक्सेस विक्रेता संपर्क भी होते हैं जो बाहरी विवरण साझा करते हैं।
फिर तय करें कि हर रोल हर चरण में क्या कर सकता है। एक नियम कई विवाद रोकता है: एक बार अनुरोध सबमिट होने के बाद, requester केवल स्पष्टीकरण (नोट्स, अटैचमेंट, डिलीवरी विवरण) ही संपादित कर सके। कीमत, विक्रेता, मात्रा, मुद्रा और कॉस्ट सेंटर को हार्ड फील्ड माना जाना चाहिए जिनके लिए औपचारिक परिवर्तन और पुनः-अनुमोदन चाहिए।
Visibility नियम भी उतने ही स्पष्ट होने चाहिए। Requesters को उनके अपने अनुरोध और स्थिति दिखनी चाहिए। Managers को उनके डायरेक्ट रिपोट्स के अनुरोध दिखने चाहिए। Procurement और finance को आम तौर पर क्रॉस-डिपार्टमेंट विजिबिलिटी चाहिए। Vendor contacts को कभी भी आंतरिक नोट्स, बजट डेटा या अन्य विक्रेताओं की जानकारी नहीं दिखनी चाहिए।
डेलिगेशन मायने रखता है क्योंकि अनुमोदन तब भी नहीं रुक सकते जब कोई अनुपस्थित हो। नियोजित डेलिगेशन (छुट्टी) और इमरजेंसी बैकअप (बेमेल) दोनों का समर्थन करें। डेलिगेशन अनुमोदन अधिकार पास करे, पर अनुरोध को फिर से लिखने की क्षमता न दे।
क्रॉस-डिपार्टमेंट अनुरोध आम हैं (उदा., IT द्वारा Marketing के लिए सॉफ़्टवेयर खरीदना)। "requester team" को "cost center owner" से अलग रखें। अनुमोदन cost center owner को रूट करें, और रिकॉर्ड पर दोनों दिखाएँ ताकि यह स्पष्ट रहे कि किसने अनुरोध किया और कौन भुगतान करेगा।
AppMaster में, आप डेटा मॉडल और बिजनेस प्रोसेसेज़ में रोल्स, रिकॉर्ड ओनरशिप, और स्टेज-आधारित क्रियाओं को मॉडल कर सकते हैं ताकि वही नियम वेब और मोबाइल स्क्रीन दोनों पर लागू हों।
डेटा मॉडल: मुख्य इकाइयाँ और फ़ील्ड
एक अच्छा क्रय अनुरोध ऐप साफ़ डेटा मॉडल से शुरू होता है। यदि आपकी तालिकाएँ स्पष्ट हों, तो अनुमोदन, बजट चेक और खरीद आदेश ऑटोमेट और रिपोर्ट करना आसान हो जाता है।
शामिल करने के लिए मुख्य इकाइयाँ
अधिकांश टीमें थोड़ी सी इकाइयों के साथ अधिकतर मामलों को कवर कर लेती हैं:
- Requests: प्रत्येक क्रय अनुरोध के लिए एक रिकॉर्ड (हेडर)।
- RequestItems: लाइन आइटम, मात्राएँ और अनुमानित यूनिट लागत।
- Vendors: सप्लायर मास्टर डेटा जिसे अनुरोध और PO में दोहराया जा सके।
- Budgets: कॉस्ट सेंटर, प्रोजेक्ट, विभाग या अवधि के अनुसार उपलब्ध खर्च।
- PurchaseOrders: अनुमोदित अनुरोध से बनाया गया औपचारिक ऑर्डर।
- Approvals: प्रत्येक अनुमोदन चरण, निर्णय और टिप्पणी।
बाद के लिए उपयोगी फ़ील्ड
Requests में वे फ़ील्ड शामिल करें जो रूटिंग में मदद करें और बैक-एंड-फोरथ घटाएं: requester, विभाग, cost center, need-by date, business justification, और अटैचमेंट (quotes, specs, स्क्रीनशॉट)। एक साधारण preferred vendor रेफरेंस मददगार होता है, भले ही विक्रेता विकल्प बाद में फ़ाइनल हो।
Statuses तब बेहतर काम करते हैं जब वे स्पष्ट हों और timestamps से समर्थित हों। Requests पर एक status फ़ील्ड रखें (Draft, Submitted, Approved, Rejected, Ordered, Closed), और मुख्य तिथियाँ जैसे submitted_at, approved_at, rejected_at, ordered_at, और closed_at स्टोर करें। इससे रिपोर्टिंग (साइकल टाइम, aging, बॉटलनेक्स) अनुमान लगाकर नहीं बल्कि सीधे की जा सकती है।
PurchaseOrders के लिए PO हेडर (नंबर, विक्रेता, ship-to, bill-to, भुगतान शर्तें) और PO लाइन आइटम अलग रखें, और मूल अनुरोध और आइटम से लिंक करें। जब कीमतें बदलती हैं तो वह ट्रेसबिलिटी महत्वपूर्ण होती है।
ऑडिट ट्रेल डिज़ाइन
Approvals आपका ऑडिट ट्रेल हैं, पर अक्सर सिर्फ "approved/rejected" से ज़्यादा चाहिए। किसने किया, कब किया, क्या निर्णय लिया और क्यों—यह सब स्टोर करें।
एक हल्का तरीका Activity/Audit टेबल है जो actor_user_id, entity_type, entity_id, action, old_value, new_value, और created_at रिकॉर्ड करे। AppMaster में यह Data Designer में साफ़ तरीके से मैप होता है और बिजनेस प्रोसेसेज़ से अपने आप भरा जा सकता है ताकि हर परिवर्तन ट्रेसेबल रहे।
विक्रेता रिकॉर्ड और संचार ट्रैकिंग
एक क्रय अनुरोध ऐप तभी काम करता है जब सभी एक ही विक्रेता तथ्यों का उपयोग करते हों। अपने विकेंडर टेबल को सिंगल सोर्स ऑफ ट्रुथ मानें, न कि कुछ जिसे हर कोई हर अनुरोध में दोबारा टाइप करे। जब विक्रेता विवरण एक जगह रहते हैं, तो अनुमोदन तेज़ होते हैं और वित्त को कम आश्चर्य होते हैं।
एक विक्रेता रिकॉर्ड के साथ शुरू करें जिसमें उपयोगी बुनियादी बातें हों: कानूनी नाम, डिस्प्ले नाम, टैक्स ID (यदि उपयोग करते हैं), डिफ़ॉल्ट मुद्रा, बिलिंग पता, और भुगतान शर्तें। मुख्य accounts payable ईमेल स्टोर करें और कई संपर्कों की अनुमति दें ताकि उद्धरण और इनवॉइस के लिए सही व्यक्ति चुना जा सके।
विक्रेता स्टेटस जोड़ें ताकि ऐप जोखिम भरे खरीद को लगातार ब्लॉक कर सके: Active (चुना जा सकता है), Pending review (अलाउड है पर अतिरिक्त सत्यापन को रूट करता है), और Blocked (बिना समीक्षा के उपयोग नहीं किया जा सकता)।
संचार ट्रैकिंग यह रोकती है कि "किसने आख़िर उन्हें ईमेल किया?" जैसा प्रश्न उठे। Vendor और, जहाँ संभव हो, विशिष्ट Request, Quote, या Purchase Order से लिंक किए गए Communication (या VendorInteraction) एंटिटी बनाएं। हर रिकॉर्ड में चैनल (ईमेल, कॉल, मीटिंग), दिशा (outbound/inbound), टाइमस्टैम्प, ओनर, और एक छोटा सारांश होना चाहिए। यदि आप उद्धरण एकत्र करते हैं, तो उन्हें संरचित रिकॉर्ड के रूप में स्टोर करें (राशि, मुद्रा, वैधता तिथि) और आवश्यकता पड़ने पर फ़ाइलें अटैच करें।
कुछ नियम जो विक्रेता डेटा साफ़ रखते हैं बिना लोगों को धीमा किए:
- Vendor सूची से चुनें, फ्री टेक्स्ट न दें।
- PO निर्माण के बाद भुगतान शर्तों को लॉक करें जब तक कि अनुमोदन आवश्यक न हो।
- Pending review विक्रेताओं को ऑटो-रूट procurement पर भेजें।
- उच्च-मूल्य खरीद के लिए कम से कम एक लॉग्ड interaction और उद्धरण टाइमलाइन अनिवार्य करें।
AppMaster में आप Vendor, VendorContact, और VendorCommunication को Data Designer में मॉडल कर सकते हैं और request और PO स्क्रीन पर एक टाइमलाइन दिखा सकते हैं ताकि पूरा इतिहास एक क्लिक में उपलब्ध रहे।
बजट जांच: अनुमोदन से पहले खर्च कैसे मान्य करें
बजट जांच एक सरल प्रश्न का उत्तर देती है: क्या इस अनुरोध के लिए अभी हमारे पास पर्याप्त अनुमोदित पैसा है? पहले तय करें कि आपकी कंपनी बजट को हार्ड स्टॉप मानती है (आगे नहीं बढ़ सकता) या सिर्फ चेतावनी (आगे जा सकता है पर अतिरिक्त मंज़ूरी चाहिए)। यह एक तय-फैसला अनुरोधकर्ताओं और अनुमोदकों का पूरा अनुभव बदल देता है।
बजट अलग-अलग स्रोतों से आ सकता है, इसलिए स्रोत स्पष्ट रखें। सामान्य विकल्प हैं: वार्षिक विभागीय बजट, प्रोजेक्ट बजट, या कॉस्ट सेंटर के लिए मासिक कैप। यदि अनुरोध कई स्रोतों पर विभाजित हो सकता है, तो स्रोत-वार विभाजन कैप्चर करें ताकि रिपोर्टिंग साफ़ रहे।
अचानक आश्चर्य से बचने के लिए, अनुमानित खर्च वही तरीके से निकालें जैसा बाद में वित्त निकालेगा। अनुरोध ऐप तभी उपयोगी है जब हर कोई अनुमोदन से पहले एक ही नंबर देखे।
एक साधारण कैलकुलेशन चेकलिस्ट में लाइन आइटम्स का कुल (qty x unit price), डिस्काउंट, टैक्स, शिपिंग और हैंडलिंग, और मुद्रा रूपांतरण (रेट और रेट डेट स्टोर करें) शामिल होना चाहिए। फिर अनुमानित खर्च को उपलब्ध बजट से तुलना करें (बजट माइनस पहले से कमिट किए गए राशि)। अगर आप कमिटमेंट ट्रैक करते हैं, तो पेंडिंग अनुरोध और ओपन POs को शामिल करें, सिर्फ़ पेड इनवॉइस नहीं।
जब बजट गायब हो, तो requester से अनुमान लगाने के लिए मजबूर न करें। एक पाथ चुनें और वर्कफ़्लो में एन्कोड करें: बजट मालिक को स्रोत असाइन करने के लिए रूट करें, वित्त अनुमोदन के साथ एक-बार का ओवरराइड की अनुमति दें, अनुरोध को "बजट विवरण" कार्य के साथ वापस करें, या उन श्रेणियों को ऑटो-रिजेक्ट करें जिन्हें हमेशा बजट चाहिए।
उदाहरण: एक टीम नया लैपटॉप बंडल मांगती है। ऐप आइटम लागत, टैक्स और शिपिंग जोड़कर विभाग मुद्रा में कन्वर्ट करता है और दिखाता है कि $1,150 के अनुरोध के मुकाबले केवल $900 उपलब्ध हैं। यदि आप इसे चेतावनी मानते हैं, तो यह अभी भी मैनेजर तक जा सकता है, पर वित्तीय अनुमोदन अनिवार्य बन जाएगा।
AppMaster में आप बजट स्रोतों को Data Designer में मॉडल कर सकते हैं और पहले अनुमोदन निर्णय से पहले बिजनेस प्रोसेस स्टेप के रूप में चेक चला सकते हैं।
अनुमोदन वर्कफ़्लो और रूटिंग नियम
अनुमोदन वह जगह हैं जहाँ अनुरोध ऐप या तो समय बचाता है या इसे धीमे इनबॉक्स-रिले में बदल देता है। डिफ़ॉल्ट पथ सरल रखें, और केवल वे नियम जोड़ें जो वास्तविक जोखिम को रोकते हों।
शुरू करें यह परिभाषित करके कि हर अनुमोदन किसे सुरक्षा देता है। सामान्य सेट है: मैनेजर अनुमोदन (ज़रूरत और प्राथमिकता), वित्त अनुमोदन (बजट और अकाउंटिंग), और procurement अनुमोदन (विक्रेता और खरीद विधि)। सुरक्षा और लीगल केवल तब जोड़ें जब कुछ श्रेणियाँ या विक्रेता इसे आवश्यक बनाते हों।
रूटिंग नियम पूर्वानुमेय होने चाहिए। लोग सबमिट करने से पहले अनुमान लगा सकें कि आगे क्या होगा। सामान्य रूटिंग फैक्टर हैं: राशि थ्रेशहोल्ड, श्रेणी-आधारित रूटिंग (सॉफ़्टवेयर को security पर भेजना, कॉन्ट्रैक्ट्स को legal पर), विक्रेता जोखिम स्तर, विभाग या कॉस्ट सेंटर नियम, और खरीद का प्रकार (CapEx बनाम OpEx, सब्सक्रिप्शन बनाम वन-टाइम)।
जहाँ क्रम मायने रखता है वहाँ क्रमिक अनुमोदन (sequential) का प्रयोग करें। उदाहरण के लिए, finance किसी अनुरोध को रोक सकता है अगर cost center गायब है, इसलिए procurement को समय बर्बाद करने से पहले यह पकड़ना बेहतर है। जहाँ टीमें स्वतंत्र रूप से समीक्षा कर सकें, वहाँ parallel approvals का उपयोग करें, जैसे security और legal एक मानक SaaS खरीद की समानांतर समीक्षा करते हैं जबकि finance बजट देखता है।
रीवर्क लूप के लिए एक साफ़ प्लान रखें। जब एक approver अनुरोध वापस भेजे, तो requester को बिना इतिहास खोए कमी पूरी कर के पुनः सबमिट करना चाहिए। अनुप्रमोदन लॉग रखें जिसमें टाइमस्टैम्प, टिप्पणियाँ, और महत्वपूर्ण फ़ील्ड के वर्शन (जैसे amount, vendor, category) शामिल हों।
उदाहरण: $12,000 का SaaS टूल पहले मैनेजर और वित्त को जाता है। दोनों अनुमोदित करने के बाद security और procurement समानांतर चलते हैं। अगर security कोई डेटा प्रॉसेसिंग विवरण माँगता है, तो यह requester के पास वापस जाता है और फिर वही स्टेप पर लौटता है, और ऑडिट ट्रेल अक्षुण्ण रहता है।
AppMaster में, वर्कफ़्लो स्टेट्स और ट्रांजिशन को एक बिजनेस प्रोसेस में मॉडल करें ताकि रूटिंग दिखाई दे और नीति बदलने पर आसानी से एडजस्ट की जा सके।
कदम दर कदम: अनुरोध से खरीद आदेश तक
एक अच्छा फ्लो अनुरोधों को आगे बढ़ने देता है बिना विवरण कच्चा छोड़ने के। शुरुआती चरण में पर्याप्त जानकारी कैप्चर करें, फिर समीक्षा शुरू होने पर जो महत्वपूर्ण है उसे फ़्रीज़ कर दें।
ज्यादातर टीमों के लिए एक व्यावहारिक अनुक्रम इस तरह दिखता है:
- Draft the request: लाइन आइटम जोड़ें, मात्रा, लक्ष्य कीमत, preferred vendor (या vendor TBD), business reason, cost center, और need-by date। उद्धरण या संदर्भ अटैच करें ताकि अनुमोदकों को पीछा न करना पड़े।
- Submit and lock key fields: जब requester Submit करता है, तो vendor, currency, cost center, और total estimate लॉक कर दें। एक छोटा comments क्षेत्र संपादन योग्य रखें ताकि समीक्षक सवाल पूछ सकें बिना रिकॉर्ड को बदल दिए।
- Run budget checks and route approvals: लोगों से पहले खर्च मान्य करें। अगर अनुरोध सीमा से अधिक है, उद्धरण गायब है, या प्रतिबंधित श्रेणी से जुड़ा है, तो इसे सही समूह को रूट करें। अगर बजट अपर्याप्त है, तो विशिष्ट कारण के साथ वापस भेजें।
- Create the PO after final approval: अनुमोदित अनुरोध से PO जेनरेट करें और अनुमोदित लाइन आइटम कॉपी करें। PO विक्रेता-समक्ष संख्याओं के लिए स्रोत सत्यापन बन जाता है।
- Send the PO and track confirmation: रिकॉर्ड करें कि PO कब भेजा गया, विक्रेता की पुष्टि कब आई, डिलीवरी तिथियाँ, और किसी भी आंशिक डिलीवरी को। अगर विक्रेता परिवर्तन प्रस्तावित करता है, तो उन्हें revision के रूप में कैप्चर करें।
उदाहरण: सपोर्ट टीम 10 नए हेडसेट का अनुरोध करती है। वे उद्धरण अटैच करते हैं, IT Supplies श्रेणी चुनते हैं, और सबमिट करते हैं। ऐप IT बजट की जांच करता है, टीम लीड के पास रूट करता है (अगर $1,000 से कम है) और फिर (यदि $500 से अधिक है) वित्त को। अनुमोदन के बाद, PO जनरेट किया जाता है और भेजा जाता है, और खरीदार पुष्टि और डिलीवरी तारीख लॉग करता है।
AppMaster जैसे नो-कोड टूल में यह आमतौर पर कुछ स्क्रीन (Draft, Review, PO) और एक बिजनेस प्रोसेस बन जाता है जो फ़ील्ड लॉक करता है, बजट लॉजिक चलाता है, और स्वचालित रूप से PO रिकॉर्ड बनाता है।
खरीद आदेश: नंबरिंग, लाइन आइटम और परिवर्तन नियंत्रण
एक PO तब ही उपयोगी है जब वह सुसंगत, त्रेसेबल और गलती से बदलने से कठोर हो। आपके वर्कफ़्लो में PO एक स्थिर रिकॉर्ड बन जाना चाहिए जिस पर विक्रेता और वित्त भरोसा कर सकें।
PO नंबरिंग: इसे कब जनरेट करें
PO नंबर तब जनरेट करें जब PO आधिकारिक रूप से विक्रेता को जारी किया गया हो, न कि जब कोई ड्राफ्ट बनाना शुरू करे। ड्राफ्ट हटाए जाते हैं, दुबारा शुरू होते हैं, और मर्ज होते हैं—यही गैप और डुप्लिकेट का कारण बनता है।
डुप्लिकेट से बचने के लिए, अगले PO नंबर को एक नियंत्रित जगह पर स्टोर करें और इसे एक एटोमिक स्टेप में असाइन करें (एक ऐसी क्रिया जो या तो पूरा सफल हो या विफल)। अगर आपको मानव-पठनीय नंबर चाहिए, तो प्रीफ़िक्स जोड़ें जैसे लीगल एंटिटी या वर्ष, पर यूनिक काउंटर वह हिस्सा रहे जो कभी न दोहराए।
PO संरचना: हेडर, लाइनें और कुल
PO को हेडर और लाइन आइटम में बाँटें। हेडर संदर्भ रखता है; लाइन वही बताती है जो आप खरीद रहे हैं।
हेडर पर ध्यान रखें: विक्रेता और संपर्क, ship-to और bill-to विवरण, मुद्रा, भुगतान शर्तें, अपेक्षित डिलीवरी तिथि, स्थिति (Draft, Issued, Acknowledged, Closed), और उद्धरण संदर्भ।
लाइन आइटम invoice matching के लिए सख्त होने चाहिए: विवरण, मात्रा, यूनिट, यूनिट प्राइस, टैक्स, डिस्काउंट, और एक कॉस्ट सेंटर या बजट कोड। टोटल को कैलकुलेट किया जाना चाहिए, मैन्युअली टाइप न करें।
परिवर्तन नियंत्रण: पुनरीक्षण बनाम रद्द और पुनः जारी
पहले से तय कर लें कि कब revision की अनुमति है। छोटी बदलाओं जैसे डिलीवरी तिथि या नोट्स को revised version (उदा., PO-1042 v2) बनाया जा सकता है जिसमें स्पष्ट "supersedes v1" लिंक हो। बड़े बदलाव जैसे विक्रेता, मुद्रा, या कुल में बड़ा परिवर्तन आम तौर पर "cancel and reissue" के योग्य होते हैं ताकि कोई भी गलत दस्तावेज़ के खिलाफ शिप न करे।
उदाहरण: एक अनुरोध 10 लैपटॉप के लिए स्वीकृत हुआ, पर विक्रेता उद्धरण में 2-सप्ताह से 8-सप्ताह डिलीवरी में परिवर्तन कर देता है। अपडेटेड डिलीवरी तिथि के साथ एक revision बनाएं और मूल उद्धरण विवरण संलग्न रखें ताकि PO हमेशा सहमति से मेल खाए।
AppMaster में, PO हेडर, लाइन आइटम और PO वर्ज़न को अलग-अलग इकाइयों के रूप में मॉडल करें ताकि revisions साफ़ और ऑडिटेबल रहें।
सूचनाएँ और विक्रेता संचार वर्कफ़्लो
नोटिफिकेशन्स निर्धारित करते हैं कि एक आंतरिक क्रय वर्कफ़्लो चिकना लगेगा या थ्रेड-शिकार बन जाएगा। संदेशों को प्रक्रिया का हिस्सा मानें और उन्हें स्थिति परिवर्तन या स्पष्ट अगले कार्रवाई से जोड़ें।
छोटी सेट के आंतरिक अपडेट से शुरू करें ताकि लोग उन्हें अनसुना न कर दें: approved/rejected, budget check failed या needs clarification, PO created और ready to send, overdue approval या overdue delivery date, और PO changed या cancelled।
हर नोटिफिकेशन 10 सेकंड में पठनीय होना चाहिए। अनुरोध शीर्षक, कुल राशि, वर्तमान स्थिति, और प्राप्त करने वाले को अगला कदम क्या लेना है—एक सुसंगत टेम्पलेट का प्रयोग करें। अनुमोदकों के लिए, खर्च का छोटा कारण और सबसे महत्वपूर्ण लाइन आइटम शामिल करें।
विक्रेता संचार भी संरचित होना चाहिए। विक्रेताओं को ज़्यादातर PO भेजा जाना, PO बदलना, रद्द करना, और डिलीवरी सवालों की ज़रूरत होती है। हर आउटबाउंड और इनबाउंड संदेश को उस PO या अनुरोध के विक्रेता थ्रेड पर स्टोर करें। आउटकम्स को सरल फ़ील्ड्स से ट्रैक करें जैसे status (draft, sent, delivered, failed), vendor_response (none, replied, bounced), follow_up_needed (yes/no), और follow-up date।
उदाहरण: एक लैपटॉप अनुरोध अनुमोदित होता है, PO भेजा जाता है, और विक्रेता जवाब देता है कि मॉडल बैकऑर्डर है। ऐप जवाब लॉग करता है, follow_up_needed को yes सेट करता है, और requester को एक विकल्प चुनने के लिए सूचित करता है। AppMaster में आप स्टेटस परिवर्तनों को ईमेल/SMS/Telegram स्टेप्स से जोड़ सकते हैं और संदेश का परिणाम PO के साथ सेव कर सकते हैं।
सामान्य गलतियाँ और जाल से बचें
सबसे बड़ा जोखिम फीचर की कमी नहीं है। यह गलत नियम बनाना और कंपनी को उन्हें बाईपास करना सिखाना है।
एक सामान्य विफलता अनुरोध को स्थिति के भूलभुलैया में बदलना है। अगर लोग नहीं बता पाते कि "Pending validation" और "Under review" में क्या फर्क है, तो वे इसे अपडेट करना बंद कर देंगे और आपका डेटा शोर बन जाएगा। स्थितियों को स्पष्ट क्रियाओं और ओनर्स से जोड़ें। हर स्थिति को एक सवाल का उत्तर देना चाहिए: "अगला क्या होता है और कौन करता है?"
एक और जाल ऐसे अनुमोदन हैं जिनके पास कोई मालिक या डेडलाइन नहीं है। अनुरोध तब अटके रहते हैं जब approver छुट्टी पर हो या भूमिका अस्पष्ट हो ("Finance" कोई व्यक्ति नहीं है)। बैकअप कवरेज और एक साधारण समय अपेक्षा जोड़ें, भले ही वह अनौपचारिक हो।
ये गलतियाँ सबसे अधिक रीवर्क कराती हैं:
- बहुत ज़्यादा स्टेटस और अपवाद जो केवल बिल्डर समझता है
- समूहों को असाइन किए गए अनुमोदन जिनका फॉलबैक नहीं है जब कोई उपलब्ध नहीं
- अनुमोदन के बाद कीमत, मात्रा, या विक्रेता बदलना बिना पुनः-अनुमोदन के
- बजट चेक जो वित्त किस तरह खर्च ट्रैक करता है उसके साथ मेल नहीं खाते (अवधि, कॉस्ट सेंटर, कमिटेड बनाम वास्तविक)
- कारण कैप्चर किए बिना मैन्युअल ओवरराइड और कोई ऑडिट ट्रेल न होना
अनुमोदन के बाद संपादन विशेष ध्यान चाहिये क्योंकि छोटे "निरापद" बदलाव अक्सर जोखिम बदल देते हैं। यदि किसी ने 10 लैपटॉप के लिए $900 प्रति के हिसाब से अनुमोदन लिया, और बाद में लाइन आइटम उच्च मॉडल या मात्रा बढ़ा दी, तो आप ऐसे अनुमोदनों के साथ समाप्त हो सकते हैं जो खरीदी गई चीज़ का प्रतिनिधित्व नहीं करते।
बजट वैधता को एक सिंगल yes/no फ़ील्ड मत मानिए। वित्त आमतौर पर रिपोर्टिंग के तरीके—डिपार्टमेंट, प्रोजेक्ट, GL अकाउंट और समय विंडो—के बारे में परवाह करता है। अगर आपका ऐप मासिक बजट चेक करता है पर वित्त तिमाहिक रिपोर्ट करता है, तो आपका "उपलब्ध बजट" हमेशा गलत दिखेगा।
AppMaster में बनाते समय, अनुमोदन के बाद मुख्य फ़ील्ड लॉक करें और हर अपवाद को एक ईवेंट के रूप में रिकॉर्ड करें (किसने, कब, क्या बदला और क्यों)। वही ऑडिट ट्रेल विवाद और ऑडिट के समय काम आता है।
त्वरित चेकलिस्ट, उदाहरण परिदृश्य और अगले कदम
लॉन्च से पहले मूल बातें लिख कर रखें। अधिकतर "अनुमोदन अराजकता" इसलिए होती है क्योंकि एक छोटा सा नियम या आवश्यक फ़ील्ड गायब होता है।
एक सरल लॉन्च चेकलिस्ट:
- Roles and permissions (requester, approver, finance, procurement, admin)
- Approval rules (amount, department, category, location)
- Statuses and ownership (Draft, Submitted, Needs info, Approved, PO created, Closed)
- Required fields (vendor, cost center, delivery date, business reason)
- Required attachments (quote, contract, security review, spec sheet)
इन नियमों के होने के बाद, कुछ त्वरित वैलिडेशन्स जोड़ें जो अनुरोध आगे जाने से पहले चलते हैं: vendor selection (या एक स्पष्ट new-vendor पथ), right period के लिए बजट कवरेज, मूल्य प्रमाण, पूरा शिपिंग/बिलिंग विवरण, और एक वास्तविक business reason।
उदाहरण परिदृश्य: एक टीम लीड नए हायर के लिए लैपटॉप का अनुरोध सबमिट करता है। वे preferred vendor चुनते हैं, उद्धरण अटैच करते हैं, और सही cost center टैग करते हैं। मैनेजर अनुमोदित करता है क्योंकि यह हायरिंग प्लान से मेल खाता है। वित्त बजट चेक पास होने के बाद अनुमोदित करता है। procurement PO बनाता है, उसे विक्रेता को भेजता है, और विक्रेता की पुष्टि और अपेक्षित डिलीवरी तिथि उसी रिकॉर्ड में लॉग करता है ताकि requester बिना अतिरिक्त ईमेल के प्रगति ट्रैक कर सके।
अगले कदम: अपना डेटा मॉडल और वर्कफ़्लो नियम प्रोटोटाइप करें, फिर एक छोटी पायलट टीम और एक-दो खरीद श्रेणियों के साथ टेस्ट करें। AppMaster में आप Data Designer में तालिकाएँ बना सकते हैं और Business Process Editor में रूटिंग लॉजिक मैप कर सकते हैं। एक छोटा पायलट चलाएँ, देखें कि कहाँ अनुरोध अटकते हैं, आवश्यक फ़ील्ड सख्त करें, और फिर व्यापक रोलआउट करें। अगर आप देखना चाहते हैं कि यह तरीका वास्तविक ऐप निर्माण में कैसे बदलता है, तो AppMaster (appmaster.io) उसी मॉडल से पूर्ण आंतरिक टूल्स, अनुमोदन लॉजिक, APIs, और वेब व नेटिव मोबाइल इंटरफेस बनाने के लिए डिज़ाइन किया गया है।
सामान्य प्रश्न
Start with request to PO. It forces clear approvals, budget checks, and traceability without dragging you into invoice matching and receiving right away. You can add downstream steps after the team trusts the first milestone.
Use a small, explicit set like Draft, Submitted, Approved, Rejected, Ordered, and Closed. हर स्थिति को यह साफ़ बताना चाहिए कि अगला कदम कौन लेगा और क्या किया जाना चाहिए, ताकि लोग अस्पष्ट लेबलों की व्याख्या न करने पड़ें।
Lock key fields at submission and require a formal change that triggers re-approval for anything that affects risk or spend, such as vendor, currency, quantity, unit price, cost center, or total. Allow only clarifications like notes, attachments, or delivery details without restarting the whole process.
Define roles first, then define what each role can do at each stage. A simple default is: requesters see and edit their own drafts, managers see direct reports, and finance/procurement have cross-department visibility, while vendor contacts never see internal notes or budget data.
Make delegation a built-in feature, not an exception. Delegation should transfer approval rights for a time window, but it should not allow the delegate to rewrite the request content, so accountability stays intact.
Separate who requested the purchase from who pays for it. Route approvals to the cost center owner even if the requester is from another team, and store both parties on the record so it’s always clear who initiated and who is accountable for budget.
Calculate expected spend the same way finance will later, including tax, shipping, discounts, and currency conversion with a stored rate and date. Decide upfront whether insufficient budget blocks the workflow or allows escalation with an extra approval step.
Keep a vendor master table as the single source of truth, and select vendors from a list rather than free text. Add a vendor status like Active, Pending review, and Blocked so risky vendors are consistently routed or prevented without relying on memory.
Generate the PO number only when the PO is officially issued, not when someone starts drafting. Assign it in a single controlled step to avoid duplicates, and keep the PO header and line items structured so totals are calculated rather than manually typed.
Yes, if you need a fast build without writing code. With AppMaster, you can model the data, define stage-based permissions and approval routing, and generate production-ready web and native mobile apps from the same model, which helps keep the workflow consistent across devices.


