1. परिचय
इस कोडलैब में, आपको एक इंटरैक्टिव Support Quick Portal बनाना है. यह सीधे तौर पर Google Workspace Studio से इंटरफ़ेस करता है. आपको कस्टम स्टार्टर स्टेप और कस्टम ऐक्शन स्टेप, दोनों बनाने का तरीका बताया जाएगा. इन्हें तीसरे पक्ष के किसी भी इन्फ़्रास्ट्रक्चर पर निर्भर हुए बिना तुरंत टेस्ट किया जा सकता है.
हम Google Apps Script का इस्तेमाल करके ये बनाएँगे:
- वेब ऐप्लिकेशन में एक आसान फ़ॉर्म होता है. इसकी मदद से उपयोगकर्ता, सहायता टिकट मैन्युअल तरीके से सबमिट कर सकते हैं.
- कस्टम स्टार्टर, जो वेब ऐप्लिकेशन के सबमिशन कैप्चर करता है और Workspace Studio के फ़्लो को ट्रिगर करता है.
- कस्टम चरण, जो आने वाले टिकट के ब्यौरे का विश्लेषण करके, यह पता लगाता है कि टिकट कितना ज़रूरी है ("ज़्यादा" या "सामान्य").
आपको क्या सीखने को मिलेगा
- अपने
appsscript.jsonमेनिफ़ेस्ट में स्टार्टर और चरणों को कॉन्फ़िगर करने का तरीका. - स्टार्टर रजिस्ट्रेशन के दौरान
notifyUriको कैसे बनाया जाता है. UrlFetchAppका इस्तेमाल करके, बाहरी कोड से Workspace Studio के फ़्लो को प्रोग्राम के हिसाब से ट्रिगर करने का तरीका.- डेटा को डाउनस्ट्रीम में पास करने के लिए, कस्टम चरणों में आउटपुट वैरिएबल बनाने का तरीका.
ज़रूरी शर्तें
- Google Workspace खाता, जिसमें Google Workspace Studio चालू हो.
- आपके डोमेन के Admin Console में, पब्लिश नहीं किए गए (टेस्ट) कस्टम स्टेप की अनुमति दें सेटिंग चालू होनी चाहिए. यह सेटिंग, ऐप्लिकेशन > Google Workspace > Workspace Studio > कस्टम स्टेप की सेटिंग में जाकर चालू की जा सकती है.
- Google Apps Script के बारे में जानकारी हो.
2. Apps Script प्रोजेक्ट सेट अप करना
सबसे पहले, हम अपना कोड रखने के लिए एक नया Apps Script प्रोजेक्ट बनाएंगे:
- script.google.com पर जाएं और नया प्रोजेक्ट पर क्लिक करें.
- प्रोजेक्ट का नाम Support Quick Portal रखें.
- बाईं ओर मौजूद साइडबार में,
प्रोजेक्ट सेटिंग पर क्लिक करें.
- एडिटर में appsscript.json मेनिफ़ेस्ट फ़ाइल दिखाएं बॉक्स पर सही का निशान लगाएं.
एडिटर व्यू पर वापस जाएं.
किसी स्टैंडर्ड Google Cloud प्रोजेक्ट को लिंक करना
डिफ़ॉल्ट रूप से, Apps Script प्रोजेक्ट, छिपे हुए डिफ़ॉल्ट Google क्लाउड प्रोजेक्ट से जुड़े होते हैं. Google Workspace Studio API को कॉल करने और PERMISSION_DENIED गड़बड़ियों से बचने के लिए, आपको अपनी स्क्रिप्ट को स्टैंडर्ड क्लाउड प्रोजेक्ट पर स्विच करना होगा. साथ ही, एपीआई को चालू करना होगा और Google Auth Platform को सही तरीके से कॉन्फ़िगर करना होगा.
- कोई प्रोजेक्ट चुनें या नया प्रोजेक्ट बनाएं: Google Cloud Console पर जाएं. इसके बाद, पेज पर सबसे ऊपर मौजूद प्रोजेक्ट वाले ड्रॉपडाउन मेन्यू का इस्तेमाल करके, कोई मौजूदा प्रोजेक्ट चुनें या नया प्रोजेक्ट बनाएं.
- एपीआई चालू करें: जब चुना गया प्रोजेक्ट सबसे ऊपर मौजूद बार में चालू हो जाए, तब एपीआई चालू करने का फ़्लो खोलें. इसके बाद, Workspace Studio API के लिए आगे बढ़ें और चालू करें पर क्लिक करें.
- OAuth ब्रैंडिंग कॉन्फ़िगर करना: Google Auth Platform ब्रैंडिंग पेज खोलें.
- अगर कहा जाए, तो शुरू करें पर क्लिक करें. (अगर पहले से कॉन्फ़िगर किया गया है, तो चौथे चरण पर जाएं).
- ऐप्लिकेशन की जानकारी में जाकर, ऐप्लिकेशन का नाम और उपयोगकर्ता सहायता के लिए ईमेल पता डालें. आगे बढ़ें पर क्लिक करें.
- ऑडियंस में जाकर, इंटरनल (अगर इंटरनल उपलब्ध नहीं है, तो एक्सटर्नल) को चुनें. इसके बाद, आगे बढ़ें पर क्लिक करें.
- संपर्क जानकारी दें, डेटा नीति से सहमत हों, और बनाएं पर क्लिक करें.
- डेटा ऐक्सेस कॉन्फ़िगर करना: डेटा ऐक्सेस पेज खोलें और स्कोप जोड़ें या हटाएं पर क्लिक करें.
- मैन्युअल तरीके से स्कोप जोड़ें में जाकर,
https://www.googleapis.com/auth/workspace.studio.triggerचिपकाएं. - टेबल में जोड़ें पर क्लिक करें. इसके बाद, अपडेट करें पर क्लिक करें. आखिर में, पेज पर सबसे नीचे मौजूद सेव करें पर क्लिक करें.
- मैन्युअल तरीके से स्कोप जोड़ें में जाकर,
- आईएएम और एडमिन > सेटिंग (या Cloud Console डैशबोर्ड) पर जाएं और प्रोजेक्ट नंबर कॉपी करें.
- अपने Apps Script प्रोजेक्ट पर वापस जाएं और बाईं ओर मौजूद साइडबार में,
प्रोजेक्ट सेटिंग पर क्लिक करें.
- Google Cloud Platform (GCP) प्रोजेक्ट सेक्शन में जाकर, प्रोजेक्ट बदलें पर क्लिक करें.
- आपने जो GCP प्रोजेक्ट नंबर कॉपी किया है उसे डालें. इसके बाद, प्रोजेक्ट सेट करें पर क्लिक करें.
मेनिफ़ेस्ट कॉन्फ़िगर करना
हाल ही में दिखने वाली appsscript.json फ़ाइल खोलें. इसके कॉन्टेंट की जगह नीचे दिया गया कोड डालें. इस मेनिफ़ेस्ट में, OAuth के लिए ज़रूरी स्कोप की सूची दी गई है. साथ ही, studio.flows.workflowElements ब्लॉक में स्टार्टर को workflowTrigger और कार्रवाई को workflowAction के तौर पर तय किया गया है.
{
"timeZone": "America/Los_Angeles",
"exceptionLogging": "STACKDRIVER",
"runtimeVersion": "V8",
"webapp": {
"executeAs": "USER_ACCESSING",
"access": "MYSELF"
},
"oauthScopes": [
"https://www.googleapis.com/auth/script.external_request",
"https://www.googleapis.com/auth/workspace.studio.trigger",
"https://www.googleapis.com/auth/script.storage",
"https://www.googleapis.com/auth/script.locale"
],
"urlFetchWhitelist": [
"https://workspacestudio.googleapis.com/"
],
"addOns": {
"common": {
"name": "Support Extension",
"logoUrl": "https://www.gstatic.com/images/branding/productlogos/buganizer/v1/192px.svg",
"useLocaleFromApp": true
},
"studio": {
"flows": {
"workflowElements": [
{
"id": "supportTicketTrigger",
"state": "ACTIVE",
"name": "New Support Ticket",
"description": "Fires when someone submits a ticket via the Web App.",
"workflowTrigger": {
"inputs": [],
"outputs": [
{
"id": "ticketTitle",
"description": "The title of the ticket",
"cardinality": "SINGLE",
"dataType": { "basicType": "STRING" }
},
{
"id": "ticketDescription",
"description": "The full description of the issue",
"cardinality": "SINGLE",
"dataType": { "basicType": "STRING" }
}
],
"onConfigFunction": "onConfigTrigger",
"onManageFunction": "onManageTrigger"
}
},
{
"id": "urgencyDetectorStep",
"state": "ACTIVE",
"name": "Detect Urgency",
"description": "Scans the ticket description to detect High or Normal urgency.",
"workflowAction": {
"inputs": [
{
"id": "ticketDescription",
"description": "The ticket description",
"cardinality": "SINGLE",
"dataType": { "basicType": "STRING" }
}
],
"outputs": [
{
"id": "urgencyLevel",
"description": "The urgency High/Normal",
"cardinality": "SINGLE",
"dataType": { "basicType": "STRING" }
}
],
"onConfigFunction": "onConfigUrgency",
"onExecuteFunction": "onExecuteUrgency"
}
}
]
}
}
}
}
3. वेब ऐप्लिकेशन का यूज़र इंटरफ़ेस (यूआई) बनाना
हम Apps Script Web App बनाएंगे, ताकि टर्मिनल टूल या तीसरे पक्ष के वेबहुक का इस्तेमाल किए बिना, विज़ुअल तरीके से और जांच करके स्टार्टर को ट्रिगर किया जा सके.
Apps Script एडिटर में, फ़ाइलें के बगल में मौजूद, फ़ाइल जोड़ें पर क्लिक करें. इसके बाद, HTML को चुनें. इसे
index.html नाम दें (.html एक्सटेंशन अपने-आप जुड़ जाता है).
आसान यूज़र इंटरफ़ेस (यूआई) वाला यह कोड चिपकाएं:
<!DOCTYPE html>
<html>
<head>
<base target="_top">
<style>
body { font-family: Arial, sans-serif; padding: 20px; max-width: 500px; margin: auto; }
label { font-weight: bold; display: block; margin-top: 15px; }
input, textarea { width: 100%; margin-top: 5px; padding: 10px; box-sizing: border-box; }
button { background-color: #1a73e8; color: white; border: none; padding: 10px 15px; margin-top: 15px; font-weight: bold; cursor: pointer; border-radius: 4px; }
button:hover { background-color: #1557b0; }
#status { margin-top: 15px; color: green; font-weight: bold; }
</style>
</head>
<body>
<h2>Support Quick Portal</h2>
<p>Submit your issue below to trigger the Workspace Studio flow.</p>
<label for="title">Ticket Title</label>
<input type="text" id="title" placeholder="e.g. Broken monitor">
<label for="description">Issue Description</label>
<textarea id="description" rows="4" placeholder="Explain your issue (use words like 'urgent' to test the step!)..."></textarea>
<button onclick="submitTicket()">Submit Ticket</button>
<div id="status"></div>
<script>
function submitTicket() {
const title = document.getElementById('title').value;
const description = document.getElementById('description').value;
const statusEl = document.getElementById('status');
if (!title || !description) {
statusEl.style.color = "red";
statusEl.innerText = "Please fill out both fields.";
return;
}
statusEl.style.color = "green";
statusEl.innerText = "Submitting ticket...";
google.script.run
.withSuccessHandler(function(response) {
statusEl.innerText = response;
})
.withFailureHandler(function(error) {
statusEl.style.color = 'red';
statusEl.innerText = 'Error: ' + error.message;
})
.submitTicketToStudio(title, description);
}
</script>
</body>
</html>
4. बैकएंड स्क्रिप्ट बनाना
अब इन सभी को एक साथ जोड़ते हैं. कोड को आसानी से पढ़ने के लिए, हम वेब ऐप्लिकेशन, स्टार्टर लॉजिक, और ऐक्शन स्टेप लॉजिक को तीन अलग-अलग स्क्रिप्ट फ़ाइलों में बांट देंगे.
WebApp.gs
एडिटर में मौजूद डिफ़ॉल्ट Code.gs फ़ाइल का नाम बदलकर WebApp.gs करें. इसके बाद, बॉयलरप्लेट myFunction को मिटाएं. इसके बाद, नीचे दिए गए ब्लॉक को कॉपी करके इसमें चिपकाएं. यह फ़ाइल, वेब ऐप्लिकेशन होस्टिंग को मैनेज करती है:
/** --- WEB APP HOSTING --- **/
/**
* Serves the HTML UI when users visit the web app URL.
*/
function doGet() {
return HtmlService.createHtmlOutputFromFile('index')
.setTitle('Support Quick Portal')
.setXFrameOptionsMode(HtmlService.XFrameOptionsMode.ALLOWALL);
}
/**
* Called by the Web App form. It calls the Workspace Studio API.
*/
function submitTicketToStudio(title, description) {
const props = PropertiesService.getUserProperties();
const notifyUri = props.getProperty('notifyUri');
const triggerId = props.getProperty('triggerId');
if (!notifyUri || !triggerId) {
throw new Error('Trigger URL missing! Make sure the flow is enabled in Workspace Studio.');
}
// Use ScriptApp.getOAuthToken() (requires the workspace.studio.trigger scope in manifest)
const token = ScriptApp.getOAuthToken();
const requestId = Utilities.getUuid();
// Package our outputs mapped in appsscript.json
const payload = {
"name": "triggers/" + triggerId,
"outputs": {
"ticketTitle": { "stringValues": [title] },
"ticketDescription": { "stringValues": [description] }
},
"requestId": requestId
};
const options = {
"method": "POST",
"contentType": "application/json",
"headers": { "Authorization": "Bearer " + token },
"payload": JSON.stringify(payload),
"muteHttpExceptions": true
};
// Fire!
const response = UrlFetchApp.fetch(notifyUri, options);
if (response.getResponseCode() !== 200) {
console.error(response.getContentText());
throw new Error('Workspace Studio API Error: ' + response.getResponseCode());
}
return 'Ticket successfully routed to Workspace Studio!';
}
Starter.gs
इसके बाद, फ़ाइलें पर कर्सर घुमाएं. इसके बाद, फ़ाइल जोड़ें पर क्लिक करें. इसके बाद, स्क्रिप्ट चुनें और उसे
Starter.gs नाम दें. नीचे दिए गए ब्लॉक को कॉपी करके, उसमें चिपकाएं. यह फ़ाइल, Starter कॉन्फ़िगरेशन और Workspace Studio के लाइफ़साइकल को मैनेज करती है:
/** --- STARTER LOGIC --- **/
/**
* Workspace Studio calls this to display the config UI when the user adds the starter.
* We just return a static message since there are no properties to configure.
*/
function onConfigTrigger() {
const section = CardService.newCardSection()
.setHeader("Configure Web App Starter")
.addWidget(CardService.newTextParagraph().setText("Ready to go! Once you enable this flow, deploy your Apps Script project as a Web App to submit tickets."));
return CardService.newCardBuilder().addSection(section).build();
}
/**
* Workspace Studio posts data here to manage the lifecycle (enable/disable the trigger).
* Critically, we must construct or save the `notifyUri` and `triggerId` to call it later.
*/
function onManageTrigger(event) {
const triggerCreation = event.workflow.triggerCreation;
const triggerDeletion = event.workflow.triggerDeletion;
const props = PropertiesService.getUserProperties();
if (triggerCreation) {
// Save the unique URL and ID when the flow is enabled
// Note: notifyUri might be omitted, so fallback to constructing it dynamically
const notifyUri = triggerCreation.notifyUri || `https://workspacestudio.googleapis.com/v1/triggers/${triggerCreation.triggerId}:fire`;
props.setProperty('notifyUri', notifyUri);
props.setProperty('triggerId', triggerCreation.triggerId);
} else if (triggerDeletion) {
// Cleanup if the user deletes the flow
props.deleteProperty('notifyUri');
props.deleteProperty('triggerId');
}
}
Action.gs
इसके बाद, फ़ाइलें पर कर्सर घुमाएं. इसके बाद, फ़ाइल जोड़ें पर क्लिक करें. इसके बाद, स्क्रिप्ट चुनें और उसे
Action.gs नाम दें. नीचे दिए गए 'जल्द कार्रवाई करने के लिए बढ़ावा दें' लॉजिक को कॉपी करके इसमें चिपकाएं:
/** --- ACTION STEP LOGIC --- **/
/**
* Workspace Studio configuration card for the Step.
* We prompt the user to bind a variable to our "ticketDescription" input.
*/
function onConfigUrgency() {
const input = CardService.newTextInput()
.setFieldName("ticketDescription")
.setTitle("Source Description")
.setHint('Select the description variable outputted by the starter')
.setHostAppDataSource(
CardService.newHostAppDataSource().setWorkflowDataSource(CardService.newWorkflowDataSource().setIncludeVariables(true))
);
const section = CardService.newCardSection()
.setHeader("Urgency Detector Step")
.addWidget(input);
return CardService.newCardBuilder().addSection(section).build();
}
/**
* The synchronous logic executed during the Step.
*/
function onExecuteUrgency(event) {
// Read mapped inputs
let description = event.workflow.actionInvocation.inputs["ticketDescription"].stringValues[0];
if (!description) description = "";
const urgentKeywords = ['urgent', 'crash', 'broken', 'down', 'fire'];
let urgencyLevel = 'Normal';
if (urgentKeywords.some(keyword => description.toLowerCase().includes(keyword))) {
urgencyLevel = 'High';
}
// Package outputs correctly
const variableDataMap = {
"urgencyLevel": AddOnsResponseService.newVariableData().addStringValue(urgencyLevel)
};
return outputVariables(variableDataMap);
}
/**
* Helper strictly enforcing the expected Step object return type.
*/
function outputVariables(variableDataMap) {
const workflowAction = AddOnsResponseService.newReturnOutputVariablesAction()
.setVariableDataMap(variableDataMap);
const hostAppAction = AddOnsResponseService.newHostAppAction()
.setWorkflowAction(workflowAction);
return AddOnsResponseService.newRenderActionBuilder()
.setHostAppAction(hostAppAction)
.build();
}
5. डिप्लॉय करना और टेस्ट करना
कोड लिखने के बाद, प्रोजेक्ट को डिप्लॉय और कॉन्फ़िगर करते हैं.
पहला चरण: स्क्रिप्ट को फिर से अनुमति देना
आपने एक नया स्टैंडर्ड Google Cloud प्रोजेक्ट लिंक किया है. इसलिए, आपको नए प्रोजेक्ट के लिए स्क्रिप्ट के स्कोप (जैसे कि script.external_request का इस्तेमाल UrlFetchApp करता है) को साफ़ तौर पर अनुमति देनी होगी.
- Apps Script एडिटर में, फ़ाइलें में जाकर
WebApp.gsको चुनें. इसके बाद, सबसे ऊपर मौजूद टूलबार के ड्रॉपडाउन सेdoGetफ़ंक्शन को चुनें. - चलाएं पर क्लिक करें.
- "अनुमति देना ज़रूरी है" का प्रॉम्प्ट दिखेगा. अनुमतियों की समीक्षा करें पर क्लिक करें.
- अपना खाता चुनें और स्क्रिप्ट को अनुमति दें. अगर आपको "पुष्टि नहीं किया गया ऐप्लिकेशन" चेतावनी दिखती है, तो इसे अनदेखा करने के लिए ऐडवांस -> सहायता के लिए क्विक पोर्टल पर जाएं पर क्लिक करें.
- एक्ज़ीक्यूशन लॉग में एक्ज़ीक्यूशन पूरा हुआ दिखने का इंतज़ार करें. इससे पुष्टि होती है कि स्क्रिप्ट को अब पूरी तरह से अनुमति मिल गई है.
दूसरा चरण: एक्सटेंशन और वेब ऐप्लिकेशन की जांच करना
आपका appsscript.json, ऐड-ऑन और वेब ऐप्लिकेशन, दोनों को तय करता है. इसलिए, दोनों को एक साथ कॉन्फ़िगर किया जा सकता है.
- Apps Script के सबसे ऊपर दाएं कोने में मौजूद, Deploy > Test deployments पर क्लिक करें.
- टाइप चुनें के बगल में मौजूद,
डिप्लॉयमेंट टाइप चालू करें पर क्लिक करें. इसके बाद, पक्का करें कि Google Workspace के ऐड-ऑन पर सही का निशान लगा हो. इसके बाद, इंस्टॉल करें पर क्लिक करें.
डिप्लॉयमेंट के टाइप चालू करें पर फिर से क्लिक करें. पक्का करें कि वेब ऐप्लिकेशन चुना गया हो. इसके बाद, यूआरएल कॉपी करें. यह
/devपर खत्म होगा. यह आपके बनाए गए Support Quick Portal वेब ऐप्लिकेशन का यूआरएल है.- हो गया पर क्लिक करें. Workspace Studio में ऐड-ऑन रजिस्टर होने से पहले, आपको अपने ब्राउज़र को रीफ़्रेश करना पड़ सकता है.
तीसरा चरण: Studio Flow को कॉन्फ़िगर करना
- studio.workspace.google.com पर जाकर, Google Workspace Studio खोलें.
- बाईं ओर मौजूद,
टूल जोड़ें पर क्लिक करें. इसके बाद, फ़्लो चुनें.
- स्टार्टर को कॉन्फ़िगर करने के लिए, स्टार्टर चुनें पर क्लिक करें. इसके बाद, इंस्टॉल किया गया Support Extension > New Support Ticket चुनें. अगर आपको "अनुमति ज़रूरी है" मैसेज दिखता है, तो ऐड-ऑन को अपना डेटा ऐक्सेस करने की अनुमति देने के लिए, अनुमति दें पर क्लिक करें.
- इसके बाद, कार्रवाइयां में जाकर कोई चरण चुनें पर क्लिक करें. "सहायता एक्सटेंशन" तक स्क्रोल करें और जल्द जवाब देने की ज़रूरत है या नहीं, इसका पता लगाएं चरण चुनें.
- सोर्स के बारे में जानकारी में,
वैरिएबल पर क्लिक करें. इसके बाद, पहला चरण: नया सहायता टिकट > समस्या के बारे में पूरी जानकारी (
ticketDescription) को चुनें. - कोई चरण चुनें पर फिर से क्लिक करें. इसके बाद, Gmail > ईमेल भेजें या Chat > मुझे Chat में सूचना दो जैसे किसी बिल्ट-इन चरण को चुनें.
- अगर आपने Gmail चुना है, तो:
- पाने वाला: अपना ईमेल पता डालें.
- विषय: टिकट
ticketTitleकी प्राथमिकताurgencyLevelहै - मैसेज:
ticketDescription
- अगर आपने चैट को चुना है, तो:
- मैसेज: टिकट
ticketTitleकी प्राथमिकताurgencyLevelहै.ticketDescription
- मैसेज: टिकट
- अगर आपने Gmail चुना है, तो:
- वर्कफ़्लो को चालू करें. अगर आपको अपने फ़्लो का नाम बदलने के लिए कहा जाता है, तो
Support Ticket Routerजैसा कोई नाम डालें और सेव करें. इससेonManageTriggerलाइफ़साइकल ट्रिगर होता है औरnotifyUriसेव हो जाता है.
चौथा चरण: सिम्युलेशन चलाना
- इस पेज के दूसरे चरण में, आपने वेब ऐप्लिकेशन का जो यूआरएल कॉपी किया था उसे नए ब्राउज़र टैब में खोलें. यह /dev पर खत्म होता है.
- फ़ॉर्म भरें. पक्का करें कि आपने ब्यौरे में ट्रिगर कीवर्ड (जैसे, "ज़रूरी" या "क्रैश") शामिल किया हो.
- सबमिट करें पर क्लिक करें. "टिकट को सही तरीके से रूट किया गया" मैसेज मिलने तक इंतज़ार करें.
- Workspace Studio में गतिविधि का लॉग, Gmail इनबॉक्स या Google Chat देखें. यह इस बात पर निर्भर करता है कि आपने कौनसी कार्रवाई चुनी है. आपको एक मैसेज या ईमेल दिखेगा. इसे "ज़्यादा" प्राथमिकता के तौर पर टैग किया गया होगा. इसे आपके कस्टम Apps Script एलिमेंट का इस्तेमाल करके, नेटिव तौर पर इंटिग्रेट किया गया होगा.
6. स्टोरेज में जगह बनाएं
अपने वर्कस्पेस और Google Cloud खाते को व्यवस्थित रखने के लिए, इस कोडलैब के दौरान बनाए गए संसाधनों को मिटाया जा सकता है.
- Workspace Studio का फ़्लो मिटाना:
- studio.workspace.google.com खोलें.
- अपना
Support Ticket Routerफ़्लो ढूंढें. - इसके बगल में मौजूद तीन बिंदु वाले मेन्यू पर क्लिक करें. इसके बाद, मिटाएं को चुनें.
- Apps Script प्रोजेक्ट मिटाना:
- script.google.com पर जाएं.
Support Quick Portalप्रोजेक्ट ढूंढें.- तीन बिंदु वाले मेन्यू पर क्लिक करें और हटाएं को चुनें.
- Google Cloud प्रोजेक्ट बंद करें:
- Google Cloud Console पर जाएं.
- पक्का करें कि सबसे ऊपर मौजूद ड्रॉपडाउन में, आपका नया प्रोजेक्ट चुना गया हो.
- आईएएम और एडमिन > सेटिंग पर जाएं. इसके बाद, बंद करें पर क्लिक करें.
7. नतीजा
आपने Google Workspace Studio के कस्टम एक्सटेंशन के लिए, बिना किसी बाहरी तीसरे पक्ष की सदस्यता पर निर्भर रहे एक पूरा इकोसिस्टम बना लिया है.
हमने इन विषयों पर बात की:
- Google के लाइफ़साइकल इवेंट को सही तरीके से कैप्चर और हैंडल करने के लिए,
onManageFunctionके साथ-साथworkflowTriggerका इस्तेमाल करना. workspacestudio.googleapis.comAPI एंडपॉइंट के ख़िलाफ़,ScriptApp.getOAuthToken()का इस्तेमाल करके बैकएंड अनुरोधों की पुष्टि करना.- इनपुट वैरिएबल को सिंक्रोनस तरीके से प्रोसेस करने और डाउनस्ट्रीम आउटपुट जनरेट करने के लिए,
workflowActionका इस्तेमाल किया जाता है.
अब इन सिद्धांतों को Jira, Salesforce या Zendesk जैसे असली SaaS प्लैटफ़ॉर्म से जोड़ा जा सकता है. इसके लिए, आपको यह बदलना होगा कि आपका वेब ऐप्लिकेशन (या इनकमिंग वेबहुक) कहां से ट्रिगर होता है.