Google शीट्स में दो-चरणीय अनुमोदन ईमेल अधिसूचना प्रणाली लागू करना

Google Sheets

स्प्रेडशीट वर्कफ़्लोज़ में अनुमोदन सूचनाओं को स्वचालित करना

आज के तेज़-तर्रार कारोबारी माहौल में, अनुमोदन प्रक्रियाओं की दक्षता परिचालन वर्कफ़्लो को महत्वपूर्ण रूप से प्रभावित कर सकती है। कई संगठन इसके लचीलेपन और पहुंच के कारण अनुमोदन अनुरोध जैसे कार्यों को प्रबंधित करने के लिए Google शीट पर भरोसा करते हैं। इन प्रक्रियाओं के लिए एक स्वचालित प्रणाली लागू करते समय एक आम चुनौती उत्पन्न होती है, खासकर जब इसमें दो-चरणीय अनुमोदन तंत्र शामिल होता है। इस प्रणाली के लिए प्रारंभिक और अंतिम दोनों अनुमोदन दिए जाने के बाद आईटी विभाग को एक स्वचालित ईमेल भेजने की आवश्यकता होती है, इस शर्त के तहत कि अनुरोध स्थिति "अनुमोदित" में परिवर्तित हो जाती है।

हालाँकि, Google Apps स्क्रिप्ट के माध्यम से इस प्रक्रिया को स्वचालित करना एक अजीब चुनौती प्रस्तुत करता है। अंतर्निहित "ऑनएडिट" ट्रिगर, जो ईमेल प्रेषण शुरू करने के लिए महत्वपूर्ण है, प्रोग्रामेटिक रूप से किए गए परिवर्तनों के लिए सक्रिय नहीं होता है - केवल प्रत्यक्ष उपयोगकर्ता इंटरैक्शन के माध्यम से किए गए परिवर्तनों के लिए। यह सीमा उन मामलों में एक महत्वपूर्ण बाधा उत्पन्न करती है जहां स्थिति को "लंबित" से "अनुमोदित" तक अद्यतन एक स्क्रिप्ट द्वारा किया जाता है। यह परिचय समय पर संचार और प्रक्रिया दक्षता सुनिश्चित करते हुए, Google शीट-आधारित अनुमोदन वर्कफ़्लो के भीतर स्वचालित ईमेल सूचनाओं को निर्बाध रूप से एकीकृत करने के लिए समाधान तलाशने के लिए आधार तैयार करता है।

आज्ञा विवरण
SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Approvals") सक्रिय स्प्रैडशीट तक पहुँचता है और "अनुमोदन" नामक एक शीट पुनर्प्राप्त करता है।
getDataRange() शीट में सभी डेटा को एक श्रेणी के रूप में प्राप्त करता है।
getValues() श्रेणी में कक्षों के मान को द्वि-आयामी सरणी के रूप में लौटाता है।
MailApp.sendEmail(email, subject, body) निर्दिष्ट प्राप्तकर्ता, विषय और निकाय के साथ एक ईमेल भेजता है।
sheet.getRange(i + 1, emailSentColumn + 1).setValue("sent") किसी विशिष्ट सेल का मान "भेजे गए" पर सेट करता है, जो दर्शाता है कि एक ईमेल भेजा गया है।
google.script.run किसी वेब ऐप से Google Apps स्क्रिप्ट फ़ंक्शन को कॉल करता है।
withSuccessHandler(function()) यदि google.script.run कॉल सफल होती है तो चलाने के लिए एक फ़ंक्शन निर्दिष्ट करता है।
withFailureHandler(function(err)) यदि google.script.run कॉल विफल हो जाती है, तो त्रुटि को तर्क के रूप में पारित करते हुए चलाने के लिए एक फ़ंक्शन निर्दिष्ट करता है।
updateStatusInSheet(approvalId, status) एक कस्टम Google Apps स्क्रिप्ट फ़ंक्शन (कोड स्निपेट में नहीं दिखाया गया) जो स्प्रेडशीट में अनुमोदन अनुरोध की स्थिति को अपडेट करेगा।

स्वचालित ईमेल तंत्र को समझना

Google शीट्स के लिए मेरे द्वारा डिज़ाइन किया गया स्वचालित ईमेल ट्रिगर सिस्टम मुख्य रूप से संगठनों के भीतर अनुमोदन प्रक्रिया को सुव्यवस्थित करना है, विशेष रूप से उन मामलों के लिए जिन्हें आगे बढ़ने से पहले कई अनुमोदनकर्ताओं से सहमति की आवश्यकता होती है। समाधान का पहला भाग, Google Apps स्क्रिप्ट में तैयार किया गया, सीधे Google शीट्स के साथ इंटरैक्ट करता है जहां अनुमोदन स्थितियां दर्ज की जाती हैं। स्क्रिप्ट उन पंक्तियों के लिए संपूर्ण "अनुमोदन" शीट की जाँच करती है जहाँ अनुमोदक 1 और अनुमोदक 2 दोनों ने अपनी स्वीकृति को "अनुमोदित" के रूप में चिह्नित किया है। यह महत्वपूर्ण है क्योंकि स्क्रिप्ट का उद्देश्य केवल तभी कार्य करना है जब दोनों अनुमोदन प्रदान किए जाते हैं, जो पूरी तरह से अधिकृत अनुरोध को दर्शाता है। इसे प्राप्त करने के लिए, स्क्रिप्ट प्रत्येक पंक्ति के माध्यम से दोहराती है, प्रत्येक अनुमोदनकर्ता के निर्णय और अनुरोध की समग्र स्थिति के लिए निर्दिष्ट विशिष्ट कॉलम की जांच करती है। जब कोई पंक्ति मानदंडों को पूरा करती है - दोनों अनुमोदनकर्ताओं ने मंजूरी दे दी है, और स्थिति "अनुमोदित" पर सेट है - स्क्रिप्ट आईटी विभाग को एक ईमेल ट्रिगर करती है। यह ईमेल अधिसूचना MailApp सेवा का उपयोग करके भेजी जाती है, जो Google Apps स्क्रिप्ट का एक हिस्सा है जो स्क्रिप्ट से सीधे ईमेल भेजने की सुविधा प्रदान करती है। यह सुनिश्चित करता है कि आईटी विभाग को स्वीकृत अनुरोध के बारे में तुरंत सूचित किया जाए, जिससे त्वरित कार्रवाई की जा सके।

वेब एप्लिकेशन के माध्यम से अनुमोदन स्थिति को अद्यतन करने का तंत्र स्वचालित ईमेल प्रणाली के फ्रंटएंड समकक्ष के रूप में कार्य करता है। यह घटक विशेष रूप से महत्वपूर्ण है क्योंकि Google शीट्स में "ऑनएडिट" ट्रिगर केवल मैन्युअल संपादन पर प्रतिक्रिया करता है, प्रोग्रामेटिक परिवर्तनों पर नहीं। इस सीमा से बचने के लिए, एक सरल वेब इंटरफ़ेस उपयोगकर्ताओं को अनुमोदन अनुरोध की स्थिति को अपडेट करने की अनुमति देता है। इंटरेक्शन पर, जैसे किसी अनुरोध को "स्वीकृत" के रूप में चिह्नित करने के लिए एक बटन पर क्लिक करना, वेब ऐप `google.script.run` कमांड के माध्यम से Google Apps स्क्रिप्ट फ़ंक्शन को कॉल करता है। यह कमांड शक्तिशाली है क्योंकि यह स्क्रिप्ट को वेब इंटरफ़ेस से प्राप्त इनपुट के आधार पर Google शीट में कार्रवाई करने में सक्षम बनाता है, प्रभावी ढंग से मैन्युअल संपादन की नकल करता है। इसके बाद स्क्रिप्ट परिवर्तनों की जांच करने और डिज़ाइन के अनुसार ईमेल भेजने के लिए आगे बढ़ सकती है, जिससे "ऑनएडिट" ट्रिगर की सीमाओं द्वारा उत्पन्न अंतर को पाट दिया जा सकता है। यह दोहरे घटक समाधान यह सुनिश्चित करता है कि अनुमोदन प्रक्रिया कुशल और अनुकूलनीय दोनों है, जो वर्कफ़्लो में मैन्युअल और स्वचालित हस्तक्षेप दोनों की आवश्यकता को समायोजित करती है।

स्प्रेडशीट अनुप्रयोगों में अनुमोदन चरणों के लिए ईमेल सूचनाओं को सुव्यवस्थित करना

बैकएंड प्रोसेसिंग के लिए Google Apps स्क्रिप्ट

function checkApprovalsAndSendEmail() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Approvals");
  var range = sheet.getDataRange();
  var values = range.getValues();
  var emailSentColumn = 5; // Assuming the fifth column tracks email sending status
  var approver1Column = 2; // Column for approver 1's status
  var approver2Column = 3; // Column for approver 2's status
  var statusColumn = 4; // Column for the overall status
  for (var i = 1; i < values.length; i++) {
    var row = values[i];
    if (row[statusColumn] == "approved" && row[emailSentColumn] != "sent") {
      if (row[approver1Column] == "approved" && row[approver2Column] == "approved") {
        var email = "it@domain.com";
        var subject = "Approval Request Completed";
        var body = "The approval request for " + row[0] + " has been fully approved.";
        MailApp.sendEmail(email, subject, body);
        sheet.getRange(i + 1, emailSentColumn + 1).setValue("sent");
      }
    }
  }
}

वेब ऐप के माध्यम से अनुमोदन स्थिति को स्वचालित रूप से अपडेट करना

फ्रंटएंड इंटरेक्शन के लिए HTML और जावास्क्रिप्ट

<!DOCTYPE html>
<html>
<head>
<title>Approval Status Updater</title>
</head>
<body>
<script>
function updateApprovalStatus(approvalId, status) {
  google.script.run
    .withSuccessHandler(function() {
      alert('Status updated successfully.');
    })
    .withFailureHandler(function(err) {
      alert('Failed to update status: ' + err.message);
    })
    .updateStatusInSheet(approvalId, status);
}
</script>
<input type="button" value="Update Status" onclick="updateApprovalStatus('123', 'approved');" />
</body>
</html>

स्प्रेडशीट स्वचालन के माध्यम से वर्कफ़्लो दक्षता बढ़ाना

दो-चरणीय अनुमोदन प्रक्रिया के भाग के रूप में Google शीट्स में ईमेल सूचनाओं को स्वचालित करने की अवधारणा संगठनात्मक वर्कफ़्लो को सुव्यवस्थित करने के लिए एक परिष्कृत विधि प्रस्तुत करती है। परंपरागत रूप से, अनुमोदन अनुक्रमों में मैन्युअल हस्तक्षेप प्रमुख रहा है, जिसके लिए प्रक्रियाओं को आगे बढ़ाने के लिए मानवीय कार्यों की आवश्यकता होती है। हालाँकि, Google Apps स्क्रिप्ट का लाभ उठाकर, हम एक ऐसे मॉडल की ओर बढ़ते हैं जहाँ ऐसे हस्तक्षेपों को कम किया जाता है, जिससे दक्षता में वृद्धि होती है और त्रुटि में कमी आती है। यह बदलाव न केवल समग्र अनुमोदन प्रक्रिया को गति देता है, बल्कि यह भी सुनिश्चित करता है कि सूचनाएं सही समय पर भेजी जाती हैं, विशेष रूप से जब दोनों अनुमोदन पक्षों ने एक अनुरोध को मंजूरी दे दी है, जिसे स्थिति के "अनुमोदित" में परिवर्तन द्वारा चिह्नित किया गया है।

यह दृष्टिकोण स्प्रेडशीट के भीतर प्रोग्रामेटिक रूप से प्रबंधित स्थिति अपडेट के महत्व को रेखांकित करता है, एक ऐसी विधि जो "ऑनएडिट" ट्रिगर की सीमाओं को दरकिनार कर देती है। एक कस्टम स्क्रिप्ट को नियोजित करके जो स्थिति में बदलाव को सुनती है और तदनुसार ईमेल सूचनाएं भेजती है, संगठन मैन्युअल बाधा को दूर कर सकते हैं, जिससे उनके परिचालन वर्कफ़्लो का एक महत्वपूर्ण घटक स्वचालित हो जाता है। यह कार्यप्रणाली धुरी न केवल अनुमोदन प्रक्रिया को परिष्कृत करती है, बल्कि मैन्युअल प्रक्रियाओं के माध्यम से पहले अप्राप्य स्केलेबिलिटी और अनुकूलनशीलता का स्तर भी पेश करती है, जो अधिक गतिशील और उत्तरदायी वर्कफ़्लो प्रबंधन प्रणाली का द्वार खोलती है।

स्प्रेडशीट ऑटोमेशन पर अक्सर पूछे जाने वाले प्रश्न

  1. क्या स्वचालन प्रक्रिया किसी Google शीट दस्तावेज़ के लिए काम कर सकती है?
  2. हां, स्वचालन को किसी भी Google शीट दस्तावेज़ पर लागू किया जा सकता है, बशर्ते स्क्रिप्ट उस विशिष्ट दस्तावेज़ की संरचना के लिए सही ढंग से कॉन्फ़िगर की गई हो।
  3. क्या इन स्क्रिप्टों को लागू करने के लिए कोडिंग ज्ञान आवश्यक है?
  4. जावास्क्रिप्ट में बुनियादी कोडिंग ज्ञान Google Apps स्क्रिप्ट में स्क्रिप्ट को अनुकूलित और कार्यान्वित करने के लिए फायदेमंद है।
  5. क्या स्वचालित ईमेल ट्रिगर एक साथ कई अनुमोदन अनुरोधों को संभाल सकता है?
  6. हां, स्क्रिप्ट डेटा की पंक्तियों के माध्यम से पुनरावृत्ति करके और प्रत्येक अनुरोध के लिए अनुमोदन स्थिति की जांच करके कई अनुरोधों को संभाल सकती है।
  7. स्वचालित प्रक्रिया कितनी सुरक्षित है?
  8. यह प्रक्रिया किसी भी Google शीट और Google Apps स्क्रिप्ट ऑपरेशन जितनी ही सुरक्षित है, डेटा की सुरक्षा के लिए Google के मानक सुरक्षा प्रोटोकॉल का उपयोग करती है।
  9. क्या स्क्रिप्ट एकाधिक ईमेल पतों पर सूचनाएं भेज सकती है?
  10. हां, MailApp.sendEmail फ़ंक्शन में प्राप्तकर्ता पैरामीटर को समायोजित करके कई ईमेल पतों पर सूचनाएं भेजने के लिए स्क्रिप्ट को संशोधित किया जा सकता है।

दो-चरणीय अनुमोदन प्रक्रिया के लिए Google शीट्स के भीतर स्वचालित ईमेल ट्रिगर्स की खोज से ऐसे वर्कफ़्लो को सुव्यवस्थित करने के लिए सीमाओं और संभावित समाधानों में महत्वपूर्ण अंतर्दृष्टि का पता चलता है। डिफ़ॉल्ट ऑनएडिट ट्रिगर की प्रोग्रामेटिक परिवर्तनों को पहचानने में असमर्थता के लिए रचनात्मक स्क्रिप्टिंग दृष्टिकोण की आवश्यकता होती है ताकि यह सुनिश्चित किया जा सके कि सूचनाएं केवल तभी भेजी जाती हैं जब अनुमोदन पूरी तरह से पुष्टि हो जाती है। यह परिदृश्य Google शीट्स की मूल कार्यक्षमताओं में अंतराल को पाटने के लिए अनुकूलित Google Apps स्क्रिप्ट समाधानों के महत्व को रेखांकित करता है, जो अधिक गतिशील और उत्तरदायी अनुमोदन प्रक्रियाओं के विकास को सक्षम बनाता है। विशेष ट्रिगर और फ़ंक्शंस बनाने के लिए Google Apps स्क्रिप्ट का लाभ उठाकर, संगठन अपनी परिचालन दक्षता और संचार प्रवाह को बढ़ा सकते हैं, यह सुनिश्चित करते हुए कि अनुमोदन चरणों के पूरा होने पर प्रमुख हितधारकों को तुरंत सूचित किया जाता है। चर्चा प्लेटफ़ॉर्म सीमाओं के सामने अनुकूलनशीलता की आवश्यकता पर प्रकाश डालती है, स्वचालित प्रणालियों के भीतर समस्या-समाधान के लिए एक सक्रिय दृष्टिकोण को प्रोत्साहित करती है।