OpsIQ दस्तावेज़ीकरण

निर्माण, संचालन और विस्तार OpsIQ.

यह पूर्ण प्रलेखन हैOpsIQउत्पाद को सेट करें, समर्थन चलाएं, एआई को कॉन्फ़िगर करें, प्रबंधित करेंCRM, विजेट स्थापित करें, कनेक्टर्स का निर्माण करें, REST को कॉल करेंAPIवेबहुक, पैकेज मार्केटप्लेस ऐप प्राप्त करें और स्वयं-होस्टेड तैनाती संचालित करें।

ग्राहक गाइडव्यवस्थापक गाइडडेवलपर गाइडCRM संदर्भकनेक्टर SDKREST API_स्व-होस्ट
स्कोप

इस पुस्तिका का दायरा

सब कुछ OpsIQ करता है, एक जगह में: प्रत्येक स्क्रीन कैसे काम करती है, अपनी खुद की प्रणालियों को कैसे कनेक्ट करें और इसके शीर्ष पर कैसे निर्माण किया जाए। कहीं भी शुरू करें, अनुभाग एडमिन साइडबार के समान ऑर्डर का पालन करते हैं।

स्कोप
दस्तावेज़ीकरण का नक्शाहैंडबुक का आयोजन OpsIQ उत्पाद के आसपास किया जाता है, जो एडमिन साइडबार के समान ऑर्डर के बाद होता है।दस्तावेज़ीकरण का नक्शाOpsIQ उत्पादAUDIENCEऑपरेटरBUILDडेवलपर्सRUNप्रशासकलाइव WORKSPACEउपयोग OpsIQउत्पाद स्क्रीन और वर्कफ़्लोशामिलविस्तार OpsIQकनेक्टर्स, APIs और विजेटशामिलसंचालित OpsIQ_सुरक्षा, क्रोन और तैनातीशामिलसंदर्भपैकेज, API और वेबहुक अनुबंधशामिल1CHOOSE AUDIENCEऑपरेटर या डेवलपर2FOLLOW THE UIधारा दर्पण OpsIQ3USE SOURCE TRUTHस्थिति निर्माण से आती है
हैंडबुक का आयोजन OpsIQ उत्पाद के आसपास किया जाता है, जो एडमिन साइडबार के समान ऑर्डर के बाद होता है।
पोर्टल स्टूडियो फील्ड गाइड

पोर्टल आर्किटेक्चर, पृष्ठ, घटकों, पूर्वावलोकन, सहायता केंद्र, पहचान, SCIM, शासित रिलीज, एक्सटेंशन, माइग्रेशन और प्रमाणन के लिए समर्पित प्रशासक और डेवलपर गाइड का उपयोग करें।

पोर्टल स्टूडियो गाइड खोलें

यहाँ क्या है

उत्पाद चलाओ

व्यवस्थापक में हर स्क्रीन: विश्लेषण, लाइव चैट, टिकट, CRM, ज्ञान आधार, साइट इंटेलिजेंस, प्रचार और ग्राहक खाता पोर्टल। प्रत्येक पृष्ठ क्या करता है, संख्याओं का क्या मतलब है, और जब वे गलत दिखते हैं तो क्या करना चाहिए।

अपनी प्रणाली कनेक्ट

वेबसाइट विजेट, ईमेल मेलबॉक्स, इनबाउंड और आउटबाउंड वेबहुक, और प्लेटफॉर्म जैसे प्लेटफार्मों के लिए कनेक्टर लाइब्रेरीShopify, WooCommerce, WHMCS, Zendesk, Stripe, SlackऔरGmail.

अपना खुद का निर्माण करें

यदि आप सभी पर कनेक्टर्स का उपयोग नहीं करेंगे तो कोई कोड कनेक्टर, एक्शन और ट्रिगर के लिए कनेक्टर बिल्डर, और REST API हर कार्रवाई, गुंजाइश और त्रुटि कोड के साथ।

इसे संचालित करें

भूमिकाओं और अनुमतियों, सुरक्षा, क्रोन, निदान, बैकअप और होस्ट किए गए और स्व-होस्टेड तैनाती दोनों।

कहाँ शुरू करना

1
यदि आप दौड़ते हैं OpsIQ दिन

साइडबार ऑर्डर में स्क्रीन अनुभाग पढ़ें। प्रत्येक पृष्ठ के लिए क्या है, इसके साथ खुलता है ताकि जितनी जल्दी हो उतना ही रुक सके जितना आपको आवश्यकता होगी।

2
यदि आप इसे प्रशासित करते हैं

सेटिंग्स, सुरक्षा, निदान, क्रोन और उत्पादन जोड़ें। ये ऐसे अनुभाग हैं जो यह तय करते हैं कि क्या बाकी सब कुछ काम करता है।

3
यदि आप एकीकरण बना रहे हैं

कनेक्टर्स पर शुरू करें, फिर कनेक्टर बिल्डर, फिर REST API और वेबहुक. उन लोगों को क्रम में पढ़ें और आप हर तरह से देखा होगा OpsIQ किसी अन्य प्रणाली से बात कर सकते हैं।

💡
दो चीजें आपको जो देखते हैं बदल देती हैं अनुमतियाँ पृष्ठ को छिपाती हैं, इसलिए यहां वर्णित एक अनुभाग आपके साइडबार से गायब हो सकता है। अपनी भूमिका की जांच के लिए एक प्रशासक से पूछें और कनेक्टर उत्पादन, बीटा, पूर्वावलोकन या टेम्पलेट का परिपक्वता लेबल लेते हैं; चल रहे निर्माण और इसके कनेक्टर प्रकट होने पर वह अधिकार होता है जिस पर आपके पास कोई है, न कि यह पेज।
यहाँ शुरू करें

क्या OpsIQ आपके व्यवसाय के लिए करता है

OpsIQयह एक पूर्ण AI-first व्यवसाय ऑपरेटिंग प्लेटफॉर्म है। यह आपके एनालिटिक्स, लाइव चैट, हेल्पडेस्क को प्रतिस्थापित करता है।CRM, SEOटूलकिट, इंटीग्रेशन मिडलवेयर और डेवलपर प्लेटफॉर्म एक एकीकृत व्यवस्थापक के साथ जहां हर उपकरण उसी ग्राहक संदर्भ को साझा करता है। इसके बजाय एक साथ सिलाई करने की बजाय8-12अलग SaaS उत्पाद, आप स्थापितOpsIQएक बार और एक स्क्रीन से सब कुछ संचालित करें।

मंच
OpsIQ एकीकृत मंचएक केंद्रीय एआई मस्तिष्क लाइव चैट से जुड़ा हुआ है, CRM, टिकट, साइट इंटेलिजेंस, प्रोन्नति और विश्लेषण।लाइव चैटप्रचारAI CRM_साइट इंटेलटिकटएनालिटिक्सOpsIQA BRAIN1ONE WORKSPACEप्रत्येक उपकरण में एक व्यवस्थापक2SHARED BRAINएक ग्राहक संदर्भ3ANYWHEREक्लाउड या स्वयं-होस्टेड
OpsIQ एक साझा ग्राहक संदर्भ, हर उपकरण फ़ीड के साथ एक मंच है और यह उसी AI मस्तिष्क द्वारा संचालित होता है।

सब कुछ OpsIQ विस्तार से करता है

वेबसाइट विश्लेषण और आगंतुक खुफिया

रियल टाइम आगंतुक ट्रैकिंग

हर पेज लोड, क्लिक करें, स्क्रॉल और नेविगेशन इवेंट वास्तविक समय में कब्जा कर लिया जाता है। देखें कि कौन आपकी साइट पर अभी कौन है, वे किस पृष्ठ को देख रहे हैं, वे कितने समय तक खर्च करते हैं, और जहां वे तीसरे पक्ष के कुकीज़ के बिना सभी से आए थे।

आगंतुक लॉग और सत्र

डिवाइस, ब्राउज़र, ऑपरेटिंग सिस्टम, देश, शहर, रेफरर, UTM पैरामीटर्स, लैंडिंग पृष्ठ और पहचान संकल्प के साथ हर आगंतुक का पूरा इतिहास। सत्र समूह पृष्ठ यात्रा में देखा गया ताकि आप पूरे रास्ते को एक आगंतुक ले सकें।

सत्र पुनरावृत्ति

कैप्चर किए गए आगंतुक सत्रों की टाइमलाइन-शैली प्लेबैक वास्तव में देखें कि उपयोगकर्ता क्या करते हैं: माउस आंदोलनों, क्लिक्स, स्क्रॉल, पृष्ठ संक्रमण और बातचीत का निर्माण। यूएक्स मुद्दों का निदान करने के लिए इसका उपयोग करें, ड्रॉप-ऑफ पॉइंट को समझें और रूपांतरण प्रवाह को सत्यापित करें।

लाइव फ़ीड

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

शीर्ष पृष्ठ

पृष्ठों का स्थान विज़िट, सगाई समय, उछाल दर, रूपांतरण और समर्थन गतिविधि द्वारा रखा गया है। अपनी उच्चतम प्रदर्शन सामग्री और उन पृष्ठों की पहचान करें जिन्हें सुधार की आवश्यकता होती है।

भू-सूचना

नक्शे के साथ देश, शहर और क्षेत्र ब्रेकडाउन। डिवाइस और ब्राउज़र वितरण, यातायात स्रोत विश्लेषण, खोज इंजन रेफरर ट्रैकिंग, और बाजार प्रवेश अंतर्दृष्टि।

इंतजाम फ़नल

ट्रैक आगंतुक इरादे संकेत (प्रीसिंग पेज विज़िट, बार-बार रिटर्न, डॉक्यूमेंटेशन ब्राउज़िंग पैटर्न और सपोर्ट इंटरैक्शन) उन आगंतुकों की पहचान करने के लिए जो खरीदने, churn या मदद की आवश्यकता होती है।

A/B प्रयोग

सीधे अपनी वेबसाइट पर विभाजित परीक्षण चलाएं OpsIQ_ से अलग-अलग तरीके से भिन्न होते हैं, यातायात आवंटन निर्धारित करते हैं और रूपांतरण लक्ष्य को परिभाषित करते हैं। कोई बाहरी परीक्षण उपकरण की जरूरत नहीं है।

JavaScript त्रुटि ट्रैकिंग

क्लाइंट साइड पर कब्जा JavaScript स्वचालित रूप से आपकी वेबसाइट से त्रुटियां। त्रुटि संदेश, स्टैक ट्रेस, प्रभावित ब्राउज़रों, आवृत्ति गिनती और जो पृष्ठ उन्हें ट्रिगर करते हैं। अलग-अलग त्रुटि निगरानी के बिना डिबग फ्रंटेंड मुद्दे।

इवेंट लॉग

प्रत्येक ट्रैक घटना (पृष्ठ विचार, कस्टम घटनाओं, चैट बातचीत, फॉर्म प्रस्तुतियाँ, खरीद) एक खोज योग्य, पूर्ण मेटाडाटा के साथ फिल्टर करने योग्य लॉग में।

बिक्री और रूपांतरण

ट्रैक ऑर्डर, राजस्व, रिफंड, सदस्यता नवीनीकरण और यातायात स्रोतों, अभियानों और आगंतुक यात्रा के लिए रूपांतरण की विशेषता। अवधि तुलना और प्रवृत्ति विश्लेषण के साथ राजस्व डैशबोर्ड।

लीड्स

व्यवहार पैटर्न द्वारा पहचाने गए उच्च-आशय आगंतुक। स्कोर पृष्ठ विज़िट, साइट पर समय, आवृत्ति वापस करने, समर्थन बातचीत और कस्टम संकेतों के आधार पर होता है। फ़ीड सीधे CRM पाइपलाइन में जाता है।

साइट इंटेलिजेंस (SEO) और सामग्री विश्लेषण

साइट क्रॉल

पृष्ठों की खोज करने के लिए अपनी पूरी वेबसाइट का स्वचालित क्रॉलिंग, टूटे हुए लिंक का पता लगाने, लापता मेटा टैग ढूंढने, छवि को ऑल्ट टेक्स्ट चेक करें, कैनोनिकल को मान्य करें URLs_, और अपनी साइट संरचना का नक्शा। दैनिक, साप्ताहिक या मांग पर चलाने के लिए अनुसूची क्रॉल।

तकनीकी SEO लेखा परीक्षा

व्यापक तकनीकी विश्लेषण: पृष्ठ गति स्कोर, मोबाइल उत्तरदायित्वता, कोर वेब विटल्स, SSL प्रमाणपत्र स्थिति, पुनर्निर्देशित श्रृंखलाएं, डुप्लिकेट सामग्री का पता लगाने, गहराई विश्लेषण क्रॉल करें और संरचित डेटा सत्यापन।

सामग्री लेखा परीक्षा

सामग्री की गुणवत्ता, शब्द गणना, पठनीयता स्कोर, कीवर्ड घनत्व, शीर्षक संरचना, आंतरिक / बाहरी लिंक अनुपात और ताजगी के लिए हर पृष्ठ का मूल्यांकन करें। पतली सामग्री, डुप्लिकेट पृष्ठों और सामग्री अंतराल की पहचान करें।

एआई-powered खोज

अपनी संपूर्ण साइट सामग्री पर सर्वांगीण खोज। अपनी सामग्री के बारे में प्राकृतिक भाषा प्रश्न पूछो और स्रोत पृष्ठ संदर्भों के साथ AI-synthesized उत्तर प्राप्त करें।

SERP रैंक ट्रैकिंग

Google और अन्य इंजनों में लक्ष्य कीवर्ड के लिए अपनी खोज इंजन रैंकिंग की निगरानी करें। समय के साथ ट्रैक स्थिति बदल जाती है, प्रतियोगियों के खिलाफ तुलना करती है, और यह देखें कि कौन से पृष्ठ किस शब्द के लिए रैंक करते हैं।

कीवर्ड अनुसंधान

अपनी सामग्री, प्रतियोगी विश्लेषण और खोज वॉल्यूम डेटा के आधार पर कीवर्ड अवसरों की खोज करें। नए सामग्री विषयों, लंबी पूंछ विविधताओं और सामग्री अनुकूलन लक्ष्यों के लिए सुझाव प्राप्त करें।

बैकलिंक विश्लेषण

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

स्थानीयSEOग्रिड

भौतिक स्थानों वाले व्यवसायों के लिए: भौगोलिक ग्रिड में अपनी स्थानीय खोज दृश्यता को देखें। देखें कि आपकी रैंकिंग स्थान, आपके व्यवसाय से दूरी और उद्देश्य की खोज कैसे बदलती है।

Google Business Profile सिंक

अपने Google बिजनेस प्रोफाइल को कनेक्ट करने के लिए OpsIQ Sync समीक्षाएं, पदों, Q&A, तस्वीरें और व्यापार जानकारी. अपने GBP लिस्टिंग को अंदर से प्रबंधित करेंOpsIQ समीक्षाओं का जवाब दें, पोस्ट प्रकाशित करें और अंतर्दृष्टि की निगरानी करें।

अनुसूचित रिपोर्ट

स्वचालित SEO और विश्लेषण रिपोर्ट आपके शेड्यूल (डेली, साप्ताहिक, मासिक) पर उत्पन्न हुई। रिपोर्ट में रैंकिंग परिवर्तन, यातायात रुझान, तकनीकी मुद्दों को पाया गया और सामग्री प्रदर्शन शामिल है। एजेंसियों के लिए उपलब्ध व्हाइट लेबल आउटपुट।

एआई-powered समर्थन

ग्राहक एआई चैट

एआई आपकी वेबसाइट पर ग्राहक के सवालों का जवाब देता है 24/7 अपने ज्ञान के आधार, जुड़े प्लेटफॉर्म डेटा (ऑर्डर, खाता, सदस्यता) और कस्टम प्रशिक्षण प्रॉम्प्ट का उपयोग करके। एकाधिक एआई प्रदाताओं का समर्थन करता है: क्लाउड (Clude)Anthropic GPT-4o (GPT-4O)OpenAI), Gemini (Google), और ग्रोक (xAI)।

व्यवस्थापक एआई सहायक

अपने व्यवस्थापक पैनल के अंदर एक एआई कॉपियोलॉट जो आपको टिकट जवाब लिखने, ग्राहक संचार का ड्राफ्ट करने, समर्थन रुझानों का विश्लेषण करने, कनेक्ट किए गए प्लेटफार्मों पर ग्राहक डेटा को देखने और कनेक्टर सिस्टम के माध्यम से कार्रवाई करने में मदद करता है।

एआई ज्ञान ग्राउंडिंग

एआई आपके ज्ञान आधार लेखों, अक्सर पूछे जाने वाले प्रश्न प्रविष्टियों, उत्पाद प्रलेखन और जुड़े प्लेटफॉर्म डेटा में आधारित है। यह आपकी वास्तविक व्यावसायिक जानकारी या अनिश्चितता के समय escalates से जवाब नहीं देता है।

मानवों के लिए ऑटो-हाथबंद

जब एआई किसी सवाल को हल नहीं कर सकता है, तो निराशा का पता लगाता है या ग्राहक मानव के लिए पूछता है, यह स्वचालित रूप से आपकी टीम को पूर्ण बातचीत संदर्भ के साथ बंद करता है। एआई में वापस आने वाले संदिग्ध गिरावट / टाइमआउट ऑटो-वापस लौटें।

एआई प्रशिक्षण संकेत

ग्राहक-facing AI और व्यवस्थापक-fasing AI के लिए अलग निर्देश संकेत लिखें। नियंत्रण स्वर, सीमाएं, एस्केलेटर नियमों, निषिद्ध विषयों और व्यापार-विशिष्ट व्यवहार। प्रति-कार्य स्थान विन्यास समर्थित है।

एआई इतिहास और लेखा परीक्षा

प्रत्येक एआई वार्तालाप को पूर्ण अनुरोध / प्रतिक्रिया विवरण, टोकन उपयोग, लागत ट्रैकिंग, प्रदाता का इस्तेमाल किया जाता है और मॉडल संस्करण के साथ लॉग इन किया जाता हैं। प्रशिक्षण अंतराल की पहचान करने और एआई सटीकता में सुधार करने के लिए बातचीत की समीक्षा करें।

एआई अंतर्दृष्टि

एआई वार्तालाप पैटर्न का स्वचालित विश्लेषण। विषय द्वारा सामान्य प्रश्न, संकल्प दर, हैंडऑफ़ आवृत्ति, ग्राहक संतुष्टि और उन क्षेत्रों को देखें जहां एआई को बेहतर प्रशिक्षण की आवश्यकता होती है।

प्रति-कार्य स्थान AI विन्यास

प्रत्येक कनेक्टेड साइट/कार्यस्थान अपने स्वयं के एआई प्रदाता, मॉडल, तापमान, टोकन बजट और प्रशिक्षण प्रॉम्प्ट का उपयोग कर सकता है। एक सास कंपनी मुख्य उत्पाद और GPT-4o के लिए माध्यमिक ब्रांड के लिए क्लाउड का उपयोग करती है।

प्रबंधित एआई और BYOK

दो एआई मोड: प्रबंधित एआई (आपकी योजना में शामिल हैं, नहींAPI कुंजी आवश्यक है या अपनी खुद की कुंजी लाओ (अपने आप का उपयोग करें) OpenAI/Anthropic/Google/xAI API मॉडल चयन और लागत पर पूर्ण नियंत्रण के लिए कुंजी। दोनों प्रथम श्रेणी हैं, प्रत्येक सुविधा या तो मोड के साथ काम करती है।

AI टोकन बजट और लागत नियंत्रण

मासिक टोकन बजट, प्रति वार्तालाप सीमा और कम संतुलन अलर्ट सेट करें। प्रति प्रदाता ट्रैक खर्च, कार्यस्थल के अनुसार और बातचीत के अनुसार। हार्ड छत के साथ रनवे लागत को रोकें।

टिकट और हेल्पडेस्क

मूल टिकट प्रणाली

विभागों, प्राथमिकताओं (कम / मध्यम / उच्च / तत्काल), स्थितियां, SLA ट्रैकिंग, आंतरिक नोट्स, ग्राहक उत्तरों, फ़ाइल संलग्नक और थ्रेडेड वार्तालाप के साथ पूर्ण सहायता डेस्क। कोई बाहरी मदद की जरूरत नहीं है।

एआई ट्रेज और ऑटो-रिप्लाई

एआई डिपार्टमेंट और प्राथमिकता से आने वाले टिकटों को स्वचालित रूप से ट्रांजेक्शन करता है। सुरक्षित विभागों के लिए ऑटो-रीप्लाई सक्षम करें। एआई ड्राफ्ट्स और एक विन्यास योग्य देरी (डिफ़ॉल्ट:) के बाद प्रतिक्रिया भेजता है। 2 मिनट) तो मनुष्य पहले हस्तक्षेप कर सकते हैं।

ईमेल ingestion

एक मेलबॉक्स कनेक्ट (Gmail, IMAP, या प्रदाता-विशिष्ट) स्वचालित रूप से इनबाउंड ईमेल से टिकट बनाने के लिए। टिकट अधिसूचना ईमेल को टिकट धागा अद्यतन करने की उत्तरदायित्व देता है।

टिकट पोर्टल एम्बेड

अपनी वेबसाइट पर एक ग्राहक-फेसिंग टिकट पोर्टल एम्बेड करें। ग्राहक टिकट जमा कर सकते हैं, अपना इतिहास देख सकते हैं और टिकट खोलने का जवाब दे सकते हैं।

टिकट विलय

एक ही धागे में डुप्लिकेट टिकट मर्ज करें। विषय पंक्ति पर विलय टिकट शो [मर्ज]। सभी बातचीत इतिहास को जीवित टिकट में संरक्षित किया गया है।

AI वापस लौटें

एक मानव एजेंट के बाद टिकट पर ले जाता है, उस टिकट पर एआई फिर से शुरू ऑटो-रिप्लाई देने के लिए "Return to AI" का उपयोग करें। उपयोगी जब मानव-प्राप्त भाग को हल किया जाता है लेकिन ग्राहक ने AI को संभाल कर सकते हैं, तो उसके अनुवर्ती सवाल उठाते हैं।

को- चालक इनबॉक्स

इनबॉक्स व्यू से एआई-सहायता प्राप्त टिकट प्रबंधन। कॉपिलोट जवाब का सुझाव देता है, वार्तालाप इतिहास को संक्षेप में प्रस्तुत करता है, प्राथमिकता / विभाग के कार्य की सिफारिश करता है और कनेक्टेड प्लेटफॉर्म पर कार्रवाई कर सकता है।

चैट और वास्तविक समय समर्थन

इनबॉक्स चैट

एकीकृत इनबॉक्स से प्रबंधित वास्तविक समय ग्राहक चैट. सभी सक्रिय बातचीत, ग्राहक पहचान, बातचीत इतिहास और AI सुझाव देखें. कई एजेंटों को एक बातचीत पर सहयोग कर सकते हैं.

सक्रिय चैट नियम

आगंतुक व्यवहार के आधार पर ट्रिगर चैट संदेश: पृष्ठ पर समय, विशिष्ट URL दौरा किया, स्क्रॉल गहराई, वापसी की गिनती, निकास इरादे या कस्टम घटनाओं। उदाहरण: एक मदद संदेश के बाद दिखाने 60 मूल्य निर्धारण पृष्ठ पर सेकंड।

चैट विजेट

अपनी वेबसाइट पर एक अनुकूलन योग्य चैट विजेट एम्बेडेड है। एआई चैट, लाइव एजेंट चैट, टिकट जमा करने, ज्ञान आधार खोज और आगंतुक पहचान का समर्थन करता है। उत्तरदायी, सुलभ और ब्रांडेबल।

CSATसर्वेक्षण

चैट और टिकट इंटरेक्शन के बाद ग्राहक संतुष्टि रेटिंग एकत्र करें। अपने स्वयं के सवालों, रेटिंग स्केल और अनुवर्ती संकेतों के साथ डिजाइन सर्वेक्षण। परिणाम टीम प्रदर्शन और एआई अंतर्दृष्टि में फ़ीड करते हैं।

पोस्ट-चैट ईमेल सर्वेक्षण

एक चैट के अंत के बाद, ज्ञात ईमेल वाले आगंतुकों को एआई सारांश के साथ एक ब्रांडेड मेल प्राप्त हो सकता है जिसे संभाला गया था और एक क्लिक "Was it easy? हाँ/No. एक बार प्रति धागे पर हस्ताक्षर किए गए एकल उपयोग लिंक, हर भेजे लॉग इन करें और परिणाम प्रतिक्रिया पृष्ठ पर पहुंचें अपने स्वयं के संकेत के रूप में प्रवेश-चैट सितारों के बगल में।

फीडबैक

प्रत्येक प्रतिक्रिया आइटम जो एक व्यक्ति को दिखाता है: नाम, ईमेल, उनके पूर्ण ग्राहक यात्रा के माध्यम से एक क्लिक-थ्रू औरCRMसंपर्क करें, और एक क्लिक ईमेल या एआई-ड्राफ्ट उनके वास्तविक इतिहास में आधारित उत्तर देता है।

AI लेखन

ईमेल ड्राफ्ट, टिकट उत्तर, घोषणाओं और ग्राहक संचार को जोड़ने के लिए अलग एआई लेखन सहायक। पेशेवर व्यवसाय लेखन के लिए अपने स्वयं के प्रॉम्प्ट (नॉट मस्तिष्क) का उपयोग करें।

A- First CRM_

CRM कमांड सेंटर

एक एकल स्क्रीन आपके पूरे CRM राज्य को दिखाती है: पाइपलाइन मूल्य, सौदा वेग, आगामी कार्य, ऑन-रिसके सौदों, एजेंट गतिविधि और एआई सिफारिशें। सीआरएम होम पेज आपका दैनिक प्रारंभिक बिंदु है।

संपर्क और कंपनियां

पूर्ण प्रोफाइल के साथ ग्राहक संपर्क प्रबंधित करें: नाम, ईमेल, फोन, कंपनी, टैग, जीवन चक्र चरण, वार्तालाप इतिहास, टिकट इतिहास, खरीद इतिहास और कस्टम फ़ील्ड। B2B संबंध प्रबंधन के लिए कंपनियों के लिए लिंक संपर्क।

सौदे और पाइपलाइन बोर्ड

अनुकूलन चरणों के साथ दृश्य काबन शैली सौदा बोर्ड। स्टेज, सेट मानों, मालिकों को असाइन करने, करीबी तारीखों को ट्रैक करने और प्रत्येक चरण में पाइपलाइन मूल्य देखने के बीच सौदों खींचें। एकाधिक पाइपलाइनों का समर्थन किया गया।

एआई सौदा कोचिंग

एआई प्रत्येक सौदे का विश्लेषण करता है और कोचिंग प्रदान करता है: जोखिम संकेत (सोना शांत, प्रतियोगी ने उल्लेख किया, बजट चिंताओं), अगले सबसे अच्छे कार्रवाई की सिफारिशें, संभावना जीतते हैं, और अनुवर्ती समय का सुझाव देते हैं।

पूर्वानुमान और रिपोर्ट

पाइपलाइन डेटा, ऐतिहासिक करीबी दरों और सौदे वेग के आधार पर राजस्व पूर्वानुमान। रिपोर्टों में मंच द्वारा पाइप लाइन शामिल है, मालिक द्वारा, स्रोत, रूपांतरण दर, औसत सौदा आकार और बिक्री चक्र की लंबाई तक।

प्रॉस्पेक्टिंग एजेंट (SDR)

एआई-संचालित संभावना जो आपके आगंतुक डेटा, लीड सिग्नल और कनेक्टेड प्लेटफॉर्म गतिविधि से संभावित ग्राहकों की पहचान करती है। आउटरीच लक्ष्य सुझाते हैं, प्रारंभिक संदेश का ड्राफ्ट करते हैं, और लीड गुणवत्ता स्कोर करते हैं।

अनुवर्ती अनुक्रम

स्वचालित बहु-चरण अनुवर्ती अनुक्रम: ईमेल, प्रतीक्षा, ईमेल, चेक प्रतिक्रिया, escalate। नए लीड्स, स्टालेड सौदों, पोस्ट-पुरचेस चेक-इन और फिर से सगाई अभियानों के लिए अनुक्रम परिभाषित करें।

जीवनचक्र और प्रतिधारण

स्वचालित संक्रमण के साथ ग्राहक जीवनचक्र चरणों (लीड, संभावना, ग्राहक, चुर्न) को ट्रैक करें। रिटेंशन एजेंट churn संकेतों की निगरानी करता है और हस्तक्षेप का सुझाव देता है।

डेटा स्टेवर्ड एजेंट

एआई एजेंट जो लगातार आपके CRM डेटा को साफ और समृद्ध करता है: संपर्कों को अलग करता है, लापता फ़ील्ड भरता है, ईमेल को मान्य करता है।

मेरी CRM_

प्राकृतिक भाषा CRM विन्यास: बताओ कि आपकी बिक्री प्रक्रिया कैसा दिखती है और यह आपके पाइपलाइन चरणों, कस्टम फ़ील्ड्स, सौदे टेम्पलेट्स और स्वचालन नियमों का निर्माण करती है।

CRM स्वास्थ्य जांच

अपने CRM डेटा की गुणवत्ता का स्वचालित लेखा परीक्षा: डुप्लिकेट संपर्क, अगले कदमों के बिना सौदों, कहानी पाइपलाइनों, लापता संपर्क जानकारी और डेटा पूर्णता स्कोरिंग।

ट्रस्ट डायल

प्रत्येक CRM AI एजेंट के लिए तीन-स्तरीय स्वायत्तता नियंत्रण: ऑटोपिलोट (AI स्वतंत्र रूप से कार्य करता है), कोपियोलॉट (AI सुझाव देता है, मानव स्वीकृत) और मैनुअल (AI केवल निरीक्षण करता है)। प्रति एजेंट डायल सेट करें, प्रति एक्शन टाइप और प्रति सौदा मूल्य सीमा।

चार एआई एजेंट

CRM चार विशिष्ट AI एजेंट चलाता है: स्टीवर्ड (डेटा की गुणवत्ता), SDR (प्रोस्पेक्टिंग), रिटेंशन (चुर रोकथाम) और विश्लेषक (रिपोर्टिंग एंड इनसाइट्स)। प्रत्येक एजेंट का अपना ट्रस्ट डायल सेटिंग होता है।

कनेक्टर्स और एकीकरण

पूर्व निर्मित कनेक्टर

रेडी-टू-यूज़ कनेक्टर के लिएShopify, WooCommerce, BigCommerce, Magento2, PrestaShop, OpenCart, osCommerce,WordPress, WHMCS, Zendesk, Stripeअमेज़न SES, पोस्टमार्क, Resend, SendGrid, Mailgun,Gmail, IMAP, Slack, और गूगल बिजनेस प्रोफाइल। प्रत्येक कनेक्टर प्लेटफॉर्म-विशिष्ट एआई कार्यों, ज्ञान और डेटा सिंक लाता है।

कनेक्टर बिल्डर

किसी भी प्लेटफॉर्म के लिए कस्टम कनेक्टर्स का निर्माण करें, कोई कोड नहीं, AI-assisted, या पूर्ण कोड। बिल्डर REST और GraphQL का समर्थन करता है।APIs, OAuthप्राधिकरण कोड प्रवाह, वेबहुक ऑटो-पंजीकरण के साथStripeऔर सरल हस्ताक्षर योजनाओं, पगिनेशन (ऑफसेट, पेज, कर्सर, और लिंक हेडर), सूची/error रूपांतरण, बहु-क्रिया संदर्भ और बाज़ार पैकेजिंग।

एआई-सहायता कनेक्टर लेखक

कनेक्टरबिल्डरAI आपको कनेक्टर्स के निर्माण में मदद करता है: वर्णन करें कि आप क्या चाहते हैं और यह क्रियाओं का सुझाव देता है, अनुरोध हैंडलर लिखता है, और मैप्स API जवाब। स्वचालित रूप से प्रमाणीकरण, patgination और त्रुटि हैंडलिंग को संभालती है।

OAuth किसी भी कनेक्टर के लिए प्रवाह

Generic in-app OAuth प्राधिकरण प्रवाह जो किसी भी कनेक्टर के साथ काम करता है। पीकेसीई समर्थन, साइट-स्किप्ड स्टेट मैनेजमेंट, स्वचालित टोकन रिफ्रेश। कनेक्टर्स ने अपने कनेक्टर को परिभाषित किया है।OAuth पैरामीटर और OpsIQ प्रवाह संभालती है।

क्षमता बस (प्लेटफॉर्म-वाइड एक्सटेंशन)

कनेक्टर्स को सिर्फ प्लेटफॉर्म एक्शन नहीं जोड़ा जाता है। वे क्षमता "बस" के माध्यम से कोर सुविधाओं की शक्ति प्रदान कर सकते हैं। एक कनेक्टर एक क्षमता (कैलेंडर, संवर्धन, CRM में esign; स्थानीय_listing, रैंक_data साइट इंटेलिजेंस में; वेब_analytics इन एनालिटिक्स; भुगतान_provider in Payments; मेलबॉक्स में ईमेल_sync; Comms में video_meeting) घोषित करता है और इसके छोटे तरीके सेट को लागू करता है; OpsIQ इसे कैपेबिलिटी रेजिस्ट्री के माध्यम से खोजता है और इसे यूआई, ग्राहक में तार करता है 360 समयरेखा और एआई क्रिया कई कनेक्टर लॉक-इन के साथ समान क्षमता प्रदान कर सकते हैं। कनेक्टर्स / PLATFORM_CONNECTORS.md देखें।

पूर्व-स्थापित बनाम बाज़ार स्तर

कनेक्टर्स दो स्तरों में से एक में रहते हैं। पूर्व-स्थापित कनेक्टर (कनेक्टर्स /) बॉक्स से बाहर रजिस्ट्री सक्रिय हैं, केवल keyless संदर्भ और प्रति क्षमता सबसे अधिक इस्तेमाल किया प्रदाता के लिए दुबला रखा (जैसे Google कैलेंडर),GmailGoogle Business Profile. मार्केटप्लेस कनेक्टर्स (marketplace_connectors/) खोजे जा सकते हैं लेकिन स्थापित होने तक निष्क्रिय होते हैं, उदाहरण के लिए Microsoft365कैलेंडर, आउटलुक, DocuSign,Stripe, GA4हर पुल में एक बाज़ार सूची होती है, इसलिए यूआई और एआई "मार्केटप्लेस" (notify-to-install) को तुरंत लागू कर सकती है जब किसी क्षमता के पास कोई तैयार प्रदाता नहीं होता है, तो कभी टूटी हुई बटन नहीं।

कनेक्टर बाज़ार

अपने कनेक्टर को प्रकाशित करें OpsIQ बाज़ार। प्रोफ़ाइल के साथ पैकेज कनेक्टर्स।json ज्ञान json, workflow_recipes.json मार्केटप्लेस मल्टी-सोर्स बिलिंग के साथ मुफ्त और भुगतान किए गए कनेक्टरों का समर्थन करता है।

कनेक्टर हस्ताक्षर

सभी कनेक्टरों को क्रिप्टोग्राफिक रूप से अखंडता सत्यापन के लिए हस्ताक्षर किए गए हैं। साइनिंग को इंस्टॉल समय पर चेक किया जाता है। अद्यतन के बाद फिर से इस्तीफा देने के लिए resign_all_connectors टूल का उपयोग करें।

SmartLookup

कनेक्टर कार्यों के लिए घोषणात्मक फजी-मैचिंग सिस्टम। लुकअप नियमों को परिभाषित करें और OpsIQ FzzyScore और स्मार्टRank एल्गोरिदम का उपयोग करके प्लेटफॉर्म संस्थाओं के लिए उपयोगकर्ता प्रश्नों से मेल खाता है। उदाहरण: find_country("germ") जर्मनी से मेल खाती है 88.9% विश्वास।

कार्य अनुबंध

जनरलOpsIQ APIप्रत्येक पंजीकृत प्रकाशितJSONएक खोज योग्य नामित कार्रवाई के रूप में कार्य करना। लाइव कुल और सटीक टाइप किए गए अनुबंधों के लिए मेटा-एक्शन का उपयोग करें; कनेक्टर पैकेज एकीकृत एक्शन एक्सक्यूक्टर के माध्यम से अपने स्वयं के विक्रेता कार्यों की घोषणा करते हैं।

कनेक्टर व्यंजनों

प्री-निर्मित वर्कफ़्लो व्यंजनों जो कई कनेक्टर कार्यों को सामान्य व्यावसायिक कार्यप्रवाह में जोड़ती हैं। उदाहरण: "जब एक नया ऑर्डर आता है, तो यह एक नया आदेश होता है।Shopifyएक टिकट बनाना, CRM को अद्यतन करना और भेजनाSlackअधिसूचना

नॉलेज सिंक

कनेक्टर्स ने ज्ञान विषयों को घोषित किया जो एआई नॉलेज बेस में सिंक होते हैं। प्लेटफार्म-विशिष्ट मदद लेख, सेटअप गाइड और समस्या निवारण कदम स्वचालित रूप से एआई के लिए मैन्युअल ज्ञान प्रविष्टि के बिना उपलब्ध हैं।

डेवलपर प्लेटफॉर्म

REST API_

A name JSON API हर पंजीकृत प्रशासक को कवर करता हैJSON संचालन, साथAPI-key प्रमाणीकरण, कार्यक्षेत्र अलगाव, गुंजाइश, दर सीमित करना, idempotent लिखते हैं, OpenAPI और एक उत्पन्न पोस्टमैन संग्रह।

वेबहूक्स

सभी प्रमुख घटनाओं के लिए आउटबाउंड वेबहुक: आदेश, चालान, सदस्यता, टिकट, चैट, लीड्स, उपयोगकर्ता पंजीकरण और कार्ट परित्याग। नौकरी कतार, एक्सोनेंशियल बैकऑफ रिट्री, एसएसआरएफ संरक्षण और ऑटो-डिसेबल के बाद वितरण 15 लगातार असफलता।

वेबहुक हस्ताक्षर

हर बाहरी वेबहुक को HMAC-SHA256 के साथ हस्ताक्षरित किया जाता है। वेबहुकिंग प्रामाणिकता सुनिश्चित करने के लिए अपने प्राप्त अंत पर हस्ताक्षर सत्यापित करें। स्थिर event_id आइडमेटेंट प्रोसेसिंग के लिए।

विजेट SDK

JavaScript SDK पहचान संकल्प, कस्टम घटना ट्रैकिंग, प्रोग्रामेटिक चैट कंट्रोल और पेज-विशिष्ट कॉन्फ़िगरेशन के साथ ट्रैकिंग विजेट के लिए। React, Vue, Next.js, के लिए व्यंजनों को स्थापित करें WordPress, Shopify स्थिर और स्थिर HTML.

प्लगइन्स और SDK

सर्वर-साइड SDKs और सामान्य ढांचे के लिए प्लगइन्स। WordPress प्लगइन, WHMCS मॉड्यूल, और जेनेरिक PHP/Node.js एकीकरण पुस्तकालयों।

आयोजन API

अपने बैकएंड से OpsIQ में कस्टम इवेंट्स को पुश करें: खरीद, साइनअप, सुविधा उपयोग, त्रुटियों या किसी भी व्यावसायिक घटना।

ट्रिगर्स पाकबुक

घटनाओं से ट्रिगर स्वचालित वर्कफ़्लोज़ का निर्माण: नया टिकट, चैट शुरू किया, आगंतुक पहचाना गया, सौदा चरण बदल गया, या कस्टम इवेंट। ट्रिगर कनेक्टर क्रियाओं को निष्पादित करते हैं, वेबहुक भेजते हैं, अद्यतन रिकॉर्ड करते हैं या अपनी टीम को सूचित करते हैं।

API बिल्डर

दृश्य API और व्यवस्थापक के अंदर वेबहुक बिल्डर। अंत बिंदुओं, परीक्षण अनुरोधों को कॉन्फ़िगर करें, प्रतिक्रियाओं का निरीक्षण करें और बिना छोड़ने के एकीकरण को डीबग करें OpsIQ.

टीम और प्रशासन

रोल-आधारित एक्सेस कंट्रोल

तीन भूमिकाएं: मालिक (पूर्ण पहुंच, बिलिंग, खतरे का क्षेत्र), फुल एडमिन (बिलिंग और खतरे के क्षेत्र को छोड़कर सभी परिचालन) और एजेंट (केवल निर्दिष्ट विभाग, कोई सेटिंग एक्सेस नहीं)। सभी संवेदनशील पृष्ठों को भूमिका से सख्त-gated किया जाता है।

टीम प्रदर्शन डैशबोर्ड

मालिक और पूर्ण व्यवस्थापक केवल डैशबोर्ड दिखा रेज़ोल्यूशन टाइम, वर्कलोड डिस्ट्रीब्यूशन, हैंडल डेफिनिशन, चैनल ब्रेकडाउन, ट्रेंड एनालिसिस, SLA अनुपालन, एजेंट द्वारा CSAT, रीओपेन रेट, टीम रोलअप और व्यस्त घंटों में अपडेट किया गया।

व्यवस्थापक उपस्थिति और ऑनलाइन ट्रैकिंग

वास्तविक समय कौन है-online विजेट व्यवस्थापक नेविगेशन में। हार्टबीट आधारित उपस्थिति का पता लगाने ()60-दूसरे पिंग, 300 बाद में दूसरा विस्तार, ऑटो-prune 120 दिन)। देखें कि कौन से व्यवस्थापक वर्तमान में सक्रिय हैं और किस पृष्ठ पर हैं।

प्रति-कार्य स्थान सेटिंग्स

प्रत्येक कनेक्टेड साइट (कार्यस्थान) में अपना स्वयं का एआई विन्यास, कनेक्टर सेटिंग्स, टिकट विभाग, ब्रांडिंग और परिचालन नियम हो सकते हैं। ग्लोबल डिफॉल्ट्स उन कार्यक्षेत्रों के लिए कैस्केड करते हैं जो उन्हें ओवरराइड नहीं करते हैं।

बहु-साइट प्रबंधन

एकाधिक वेबसाइटों को एक से प्रबंधित करें OpsIQ व्यवस्थापक। प्रत्येक साइट में अपनी ट्रैकिंग स्निपेट, आगंतुक डेटा और कॉन्फ़िगरेशन है। व्यवस्थापक नेविगेशन से साइटों के बीच स्विच करें।

ईमेल टेम्पलेट प्रणाली

सभी स्वचालित संचार के लिए रजिस्ट्री संचालित ईमेल टेम्पलेट: टिकट अधिसूचनाएं, चैट ट्रांसक्रिप्ट्स, स्वागत ईमेल, पासवर्ड रीसेट और सिस्टम अलर्ट। संपादित करें HTML लाइव पूर्वावलोकन के साथ टेम्पलेट्स, चर चिप्स (){{customer_name}}, {{ticket_id}}), और वैश्विक लेआउट नियंत्रण।

आयात और निर्यात

संपर्क, टिकट और ज्ञान लेख आयात करेंCSV/JSONThe Object data, analytics Report, and the Data of the Data.CRMरिकॉर्ड। सिस्टम के बीच माइग्रेशन के लिए डेटा पोर्टेबिलिटी।

सुरक्षा, अनुपालन और संचालन

एंटरप्राइज़ SSO

ओआईडीसी (OIDC)OpenID कनेक्ट) पूर्ण रनटाइम के साथ एकल साइन-ऑन: खोज, अधिकृत, कॉलबैक, JWKS हस्ताक्षर सत्यापन, उपयोगकर्ता इन्फो, डोमेन अनुमति-सूचीकरण, JIT प्रावधान और स्थिति गार्ड। SAML विन्यास समर्थन।

GDPR डेटा अनुपालन

अंतर्निहित DSAR (Data विषय अभिगम अनुरोध) हैंडलिंग: सभी प्रणालियों में ग्राहक डेटा को निर्यात और हटा दें। संपर्क स्तर के डेटा मिटाने वाले सत्र, टिकट, चैट, CRM रिकॉर्ड और ईमेल लॉग को कवर करते हैं। सहमति प्रबंधन और प्रतिधारण नीतियां।

IP अवरोधन और भंग-बल संरक्षण

ब्लॉक विशिष्ट IPs या अपनी साइट या व्यवस्थापक तक पहुंचने से लेकर। विन्यास योग्य असफल लॉगिन प्रयासों के बाद स्वचालित लॉकआउट।IPटाइमस्टैम्प और उपयोगकर्ता एजेंट

HSTS और सुरक्षा हेडर

HTTP Strict ट्रांसपोर्ट सुरक्षा, अनुमतियों-नीति हेडर और सुरक्षित कुकी विन्यास। स्व-होस्टेड तैनाती सर्वर कॉन्फ़िगरेशन के माध्यम से CSP हेडर जोड़ सकती है।

आउटबाउंड वेबहुक सख्त

एसएसआरएफ गार्ड ब्लॉक वेबहुक को निजी / मेटाडाटा में IP रेंज। Async डिलीवरी आपके आवेदन को अवरुद्ध करने से धीमा समापन बिंदुओं को रोकता है। ऑटो-डिसेबल के बाद 15 लगातार असफलता मृत अंत बिंदुओं पर संसाधन अपशिष्ट को रोकता है।

कार्यक्षेत्र अलगाव

कार्यस्थानों के बीच सख्त डेटा अलगाव। आगंतुक, टिकट, चैट,CRMरिकॉर्ड, और एआई वार्तालाप उनके कार्यक्षेत्र के लिए दायर किए गए हैं। क्रॉस-वर्कस्पेस डेटा लीक को क्वेरी परत पर रोका जाता है।

बिलिंग चक्र प्रबंधन

मासिक, त्रैमासिक, अर्ध-वार्षिक, वार्षिक, द्विवार्षक और जीवनकाल बिलिंग चक्र के लिए समर्थन। बहु-मुद्रा गेटवे के लिए मुद्रा सामान्यीकरण। सटीक राजस्व रिपोर्टिंग के लिए भुगतान रसीद पर FX रूपांतरण।

क्रोन और अनुसूचित स्वचालन

अनुसूचित कार्यों के लिए अंतर्निहित क्रोन प्रणाली: रिपोर्ट पीढ़ी, डेटा सफाई, सदस्यता नवीकरण, एआई प्रशिक्षण अद्यतन, कनेक्टर सिंक और वेबहुक रिट्राइज़। चेतावनी संकेतकों के साथ स्वास्थ्य निदान।

डेटा रिटेंशन पॉलिसी

यह समझना कि लंबे आगंतुक सत्र, चैट ट्रांसक्रिप्ट्स, एआई वार्तालाप इतिहास और इवेंट लॉग को बरकरार रखा गया है। भंडारण का प्रबंधन करने और प्रतिधारण नीतियों का पालन करने के लिए वृद्ध डेटा की स्वचालित सफाई।

निदान और स्वास्थ्य

सिस्टम हेल्थ डैशबोर्ड में क्रोन स्टेटस, डेटाबेस कनेक्टिविटी, एआई प्रदाता की स्थिति, कनेक्टर स्वास्थ्य, वेबहुक डिलीवरी दर और भंडारण उपयोग दिखाया गया है। विन्यास मुद्दों और प्रदर्शन बाधाओं के लिए चेतावनी।

कौन OpsIQ के लिए है

ई-कॉमर्स स्टोर

स्टोर

प्रत्येक आगंतुक को खरीदने के लिए लैंडिंग से ट्रैक करें। आइए, "मेरे ऑर्डर कहां है?" लाइव का उपयोग करते हुए Shopify/WooCommerce/बिगकामर्स डेटा। AI ऑटो-रिप्लाई के साथ समर्थन टिकट प्रबंधित करें थोक और B2B लीड्स के लिए एक सौदा पाइपलाइन चलाएं। यातायात स्रोतों और अभियानों को राजस्व में योगदान दें वसूली कार्यप्रवाह के साथ गाड़ी परित्याग की निगरानी करें।

सास और सॉफ्टवेयर कंपनियों

SaaS

मॉनिटर परीक्षण साइनअप और सत्र फिर से खेलना के साथ सुविधा गोद लेने। ट्रैक कौन से प्रलेखन पृष्ठों को बदल देता है। AI के साथ स्वतः समर्थन आपके लिए जमीन पर आधारित है।APIdocs. CRM में सदस्यता राजस्व और विस्तार सौदे प्रबंधित करें। अपने बिलिंग प्लेटफॉर्म को कनेक्ट करें ()Stripe, WHMCSवास्तविक समय के लिए MRR ट्रैकिंग। churn का पता लगाने और रोकने के लिए CRM जीवनचक्र एजेंट का उपयोग करें।

एजेंसियां और फ्रीलांसर

एजेंसी

व्हाइट लेबल एनालिटिक्स प्रदान करते हैं और ग्राहकों को पोर्टल का समर्थन करते हैं। ट्रैक एक व्यवस्थापक से कई क्लाइंट साइटों पर जाता है।CRMसंभावनाओं और परियोजना लीड का प्रबंधन करने के लिए पाइपलाइन। कनेक्टर बिल्डर का उपयोग करके क्लाइंट प्लेटफार्मों के लिए कस्टम कनेक्टर्स का निर्माण करें। ब्रांडेड उत्पन्न करेंSEOसाइट इंटेलिजेंस के साथ रिपोर्ट। मूल्य-एड सेवाओं के रूप में बाज़ार कनेक्टर्स को फिर से बेचना।

होस्टिंग और बुनियादी ढांचा

होस्टिंग

डीप WHMCS साथ एकीकरण 80 ऑर्डर लुकअप, सर्विस मैनेजमेंट के लिए AI कार्य, DNS, और प्रावधान। ज्ञान आधार लेखों का उपयोग करके सामान्य होस्टिंग प्रश्नों के लिए ऑटो-रेप्लाई करें। ट्रैक सर्वर स्टेटस पेज सगाई। एआई ट्रेज के साथ तकनीकी समर्थन टिकट प्रबंधित करें। जीवनकाल होस्टिंग योजनाओं के माध्यम से मासिक के लिए बिलिंग चक्र सीढ़ी का उपयोग करें।

समर्थन-भारी कारोबार

समर्थन

विक्षेपण40-70%एआई चैट के साथ दोहराए गए प्रश्नों का आपके ज्ञान आधार पर आधारित है। एआई ट्रेज के साथ सही विभाग में रूट टिकट। रिज़ॉल्यूशन समय के साथ ट्रैक टीम प्रदर्शन,SLAअनुपालन, औरCSATएजेंट द्वारा पेशेवर उत्तर मसौदा तैयार करने के लिए लेखन एआई का उपयोग करें। AI अंतर्दृष्टि के साथ समर्थन रुझानों की निगरानी करें।

विपणन और विपणनSEOटीम

विपणन

पूर्ण साइट इंटेलिजेंस सूट: क्रॉल, तकनीकी एसईओ ऑडिट, सामग्री विश्लेषण, SERP रैंक ट्रैकिंग, कीवर्ड रिसर्च, बैकलिंक मॉनिटरिंग और स्थानीय SEO ग्रिड। Google बिजनेस प्रोफाइल प्रबंधन। ग्राहकों के लिए अनुसूचित व्हाइट लेबल रिपोर्ट। A/B परीक्षण ट्रैकिंग विजेट में बनाया गया है। सभी चैनलों पर अभियान की विशेषता है।

एकल संस्थापकों और छोटी टीमों

स्टार्टअप

बस ट्रैकिंग और चैट के साथ शुरू करें, जोड़ने के लिए स्वतंत्र। फिर जब आप समर्थन वॉल्यूम प्राप्त करते हैं तो टिकट जोड़ें। जब आप बेचना शुरू करते हैं तब CRM पर जाएं। कनेक्ट प्लेटफॉर्म जैसा कि आप उन्हें अपनाते हैं। OpsIQ एक व्यक्ति से लेकर हर चीज़ को करने के लिए 50 RBAC, विभागों और प्रति एजेंट प्रदर्शन ट्रैकिंग के साथ व्यक्तिगत संचालन टीम।

एंटरप्राइज़ और बहु-ब्रांड

एंटरप्राइज

उद्यम SSO केंद्रीकृत प्रमाणीकरण के लिए OIDC के साथ। अलग-अलग ब्रांडों या डिवीजनों के लिए मल्टी-वर्कस्पेस अलगाव। विभिन्न प्रदाताओं और मॉडलों के साथ प्रति-कार्य स्थान AI विन्यास। बाज़ार वितरण के साथ कस्टम कनेक्टर विकास। लेखा परीक्षा ट्रेल्स, GDPR अनुपालन उपकरण, और डेटा प्रतिधारण नीतियों।

क्या OpsIQ बदलता है

Google Analytics + Hotjar + Plausible

आगंतुक ट्रैकिंग, सत्र पुनः प्रदर्शन, पृष्ठ रैंकिंग, भू-सूचना, इरादे की फ़नलों, रूपांतरण एट्रिब्यूशन, घटनाओं, ए / बी प्रयोगों और जे एस त्रुटि ट्रैकिंग के साथ पूर्ण वेबसाइट विश्लेषण, सभी एक मंच में गोपनीयता के अनुकूल।

इंटरकॉम + ड्रिफ्ट + टिडियो

ज्ञान ग्राउंडिंग के साथ एआई-संचालित ग्राहक चैट, बहु प्रदाता AI समर्थन, मानवों को ऑटो-हाथबंद, सक्रिय चैट नियम, वार्तालाप इतिहास,CSATसर्वेक्षण, और चैट से टिकट निर्माण।

Zendesk + Freshdesk

विभागों, प्राथमिकताओं के साथ मूल टिकट प्रणाली, SLA, AI ट्रेज, ऑटो-रेप्लाई विद विन्यास योग्य देरी, ईमेल ingestion, टिकट एम्बेड, टिकट विलय, इनबॉक्स कॉपियोलॉट और एआई क्षमता पर लौटें।

हबस्पॉट + पाइपड्राइव + सेल्सफोर्स

एआई-first CRM चार विशिष्ट AI एजेंटों (Steward, SDR, रिटेंशन, विश्लेषक), ट्रस्ट डायल स्वायत्तता नियंत्रण, पाइपलाइन बोर्ड, सौदा कोचिंग, पूर्वानुमान, अनुक्रम, जीवनचक्र प्रबंधन और प्राकृतिक भाषा सीआरएम विन्यास के साथ।

Arefs + SEMrush + Moz

स्वचालित क्रॉल, तकनीकी के साथ साइट इंटेलिजेंसSEOलेखा परीक्षा, सामग्री विश्लेषण, एआई खोज, SERP रैंक ट्रैकिंग, कीवर्ड अनुसंधान, बैकलिंक विश्लेषण, स्थानीयSEOग्रिड, और अनुसूचित व्हाइट लेबल रिपोर्ट।

Zapier + Make + कस्टम मिडलवेयर

कनेक्टर SDK साथ 25 पूर्व निर्मित कनेक्टर, कनेक्टर बिल्डर (no-code/AI-assisted/full-code), OAuth प्रवाह, वेबहुक ऑटो-पंजीकरण, कनेक्टर कार्रवाई परिभाषाओं की एक बड़ी सूची जो केवल तभी निष्पादन योग्य हो जब प्रासंगिक कनेक्टर स्थापित किया गया है, सक्षम, कॉन्फ़िगर और मान्य, स्मार्टलूकअप, बाज़ार और हस्ताक्षरित पैकेज।

Google Business Profile Manager

पूर्ण GBP कनेक्टर: समीक्षा प्रबंधन, पोस्ट प्रकाशन, Q&A प्रबंधन, फोटो अपलोड, व्यापार सूचना सिंक, अंतर्दृष्टि ट्रैकिंग और AI-powered समीक्षा प्रतिक्रियाओं, सभी के अंदर से OpsIQ.

अलग ईमेल टेम्पलेट उपकरण

रेजिस्ट्री संचालित ईमेल टेम्पलेट्स विज़ुअल एडिटर, लाइव पूर्वावलोकन, वेरिएबल चिप्स, ग्लोबल लेआउट कंट्रोल और सभी स्वचालित संचारों के लिए प्रति-ईवेंट अनुकूलन के साथ।

टीम प्रबंधन डैशबोर्ड

अंतर्निहित टीम प्रदर्शन: रेज़ोल्यूशन टाइम, वर्कलोड, SLA अनुपालन, एजेंट द्वारा CSAT, रीओपन रेट, व्यस्त घंटे, वास्तविक समय की उपस्थिति ट्रैकिंग और प्रति-विभाग ब्रेकडाउन।

GDPR अनुपालन उपकरण

मूल DSAR सभी प्रणालियों, सहमति प्रबंधन, अवधारण नीतियों और लेखा-परीक्षा ट्रेल्स में निपटने, डेटा मिटाने, मंच में बनाया गया, बोल्ट नहीं किया गया।

दो संस्करण

होस्ट तैनाती

OpsIQ प्रबंधित इन्फ्रास्ट्रक्चर पर चलता है। उत्पाद संचालन समान है; संरचना, अद्यतन और बैकअप होस्टिंग ऑपरेटर द्वारा संभाले जाते हैं। इस पुस्तिका में दस्तावेज़ों का दस्तावेजीकरण किया जाता है।OpsIQ विपणन या व्यावसायिक खाता प्रवाह के बजाय रनटाइम।

स्व-होस्टेड मॉड्यूल

स्थापित OpsIQ डेटा, ब्रांडिंग, अद्यतन और एकीकरण पर पूर्ण नियंत्रण के लिए अपने सर्वर पर। PHP की आवश्यकता है 8.4+, MySQL 5.7+ MariaDB 10.3+, एचटीटीपी, और OpsIQ एकीकृत क्रोन। समर्थन WHMCS एक addon मॉड्यूल के रूप में एकीकरण। पूर्ण डेटा संप्रभुता।

अनुशंसित रीडिंग ऑर्डर

1
त्वरित शुरुआत

का पालन करें 30 आपकी वेबसाइट पर ट्रैकिंग, चैट और बुनियादी एआई काम करने के लिए मिनट सेटअप गाइड।

2
डैशबोर्ड और विश्लेषण

अपने आगंतुक डेटा को पढ़ने, सत्र फिर से खेलना, लीड्स की पहचान करने और यातायात पैटर्न को समझने के लिए कैसे जानें।

3
साइट इंटेलिजेंस

अपना पहला SEO क्रॉल चलायें, अपने तकनीकी स्वास्थ्य की जांच करें और अपने लक्ष्य कीवर्ड के लिए SERP रैंक ट्रैकिंग स्थापित करें।

4
टिकट और समर्थन

विभागों को सेट करें, एआई के साथ ऑटो-रिप्लाई कॉन्फ़िगर करें, ईमेल ingestion कनेक्ट करें और सामान्य प्रश्नों को संभालने के लिए अपनी एआई को प्रशिक्षित करें।

5
CRM

संपर्क व्यवस्थित करें, अपनी पाइपलाइन का निर्माण करें, एआई एजेंटों को कॉन्फ़िगर करें, ट्रस्ट डायल स्तर सेट करें और एआई कोच को अपने सौदे दें।

6
कनेक्टर्स और डेवलपर उपकरण

अपने ई-कॉमर्स/बिलिंग प्लेटफॉर्म को कनेक्ट करें, कस्टम कनेक्टर का निर्माण करें, वेबहुक स्थापित करें और REST API_ के माध्यम से एकीकृत करें।

💡
नया OpsIQ नीचे त्वरित स्टार्ट गाइड के साथ शुरू करें। आप ट्रैकिंग और बुनियादी एआई चैट कर सकते हैं 30 मिनट।
यहाँ शुरू करें

Quick start in 30 मिनट

इन चरणों का पालन करने के लिए OpsIQ प्रत्येक कदम पिछले एक पर बनाता है। अंत तक, आपके पास आगंतुक ट्रैकिंग, एआई चैट और बुनियादी टिकट समर्थन होगा।

सेटअप
क्विक स्टार्ट चेकलिस्टएक निर्देशित सेटअप चेकलिस्ट विजेट इंस्टॉल, प्लेटफॉर्म कनेक्ट, एआई ट्रेनिंग, टीम आमंत्रित और गो-लाइव दिखा रहा है, जिसमें एक गाइडेड सेटअप चेक सूची शामिल है। 60 प्रतिशत प्रगति बार।शुरू हो जाओsetupस्थापित करें OpsIQ विजेटदानएक मंच कनेक्ट करें (एक मंच कनेक्ट)WHMCS, Shopify...)दानअपनी सामग्री पर अपने एआई को प्रशिक्षित करेंदानअपनी टीम को आमंत्रित करेंचेक करें और लाइव जाओसेटअप प्रगति3of5 · 60%1STEP 1विजेट स्थापित करें2STEP 2कनेक्ट और ट्रेन एआई3STEP 3Invite and go live
30-मिनट पथ: विजेट्स को स्थापित करें, एक प्लेटफार्म से जुड़ें, अपने एआई को प्रशिक्षित करें, टीम को आमंत्रित करें और फिर लाइव जाएं।

30-मिनट सेटअप

1
अपने लाइसेंस को सक्रिय करें

अपने लाइसेंस कुंजी में प्रवेश करें OpsIQ Admin. सेटिंग जाओ, इस स्थापना के लिए आपूर्ति की लाइसेंस कुंजी दर्ज करें और सक्रिय क्लिक करें। आपको एक ग्रीन "सक्रिय" बैज देखना चाहिए।

2
अपनी व्यावसायिक पहचान सेट करें

सेटिंग्स पर जाएं और अपने व्यवसाय नाम, उद्योग, टाइमज़ोन, डिफ़ॉल्ट मुद्रा और समर्थन घंटों में भरें। इस जानकारी का उपयोग एआई द्वारा ग्राहक प्रश्नों के उत्तर देने और टाइमज़ोने-एवेयर रिपोर्टों के लिए विश्लेषण करके किया जाता है।

3
एक एआई प्रदाता चुनें

एआई कॉन्फ़िगरेशन पर जाएं और अपने प्रदाता का चयन करें। विकल्प: क्लाउड (क्लॉड)Anthropic GPT-4o (GPT-4O)OpenAI), Gemini (Google), या ग्रोक (xAI)। अपना दर्ज़ करें API यदि आप अपनी खुद की कुंजी का उपयोग करते हैं, या आपकी योजना पर उपलब्ध होने पर प्रबंधित एआई का उपयोग करें। सत्यापित करने के लिए "टेस्ट कनेक्शन" पर क्लिक करें।

4
ट्रैकिंग विजेट स्थापित करें

Go to Connected Sites, copy the tracking snippet, and paste it before the closing </body> tag on your website. Visit your site in a private browser, then check the Live Feed in OpsIQ. You should see yourself as a visitor within 15 seconds.

5
अपने प्लेटफॉर्म को कनेक्ट करें

यदि आप उपयोग करते हैं Shopify, WooCommerce, WHMCS, या किसी अन्य समर्थित प्लेटफॉर्म, कनेक्टर्स पर जाएं, अपना प्लेटफ़ॉर्म ढूंढें, क्रेडेंशियल में प्रवेश करें और टेस्ट कनेक्शन क्लिक करें। यह डेटा, ग्राहक प्रोफाइल और समर्थन संदर्भ के लिए एआई एक्सेस देता है।

6
अपनी टीम को आमंत्रित करें

टीम जाओ, Invite क्लिक करें, अपने ईमेल और भूमिका (Owner, Full Admin, or Agent) में प्रवेश करें। एजेंट केवल उन विभागों तक पहुंच सकते हैं जिन्हें आप उन्हें सौंपते हैं। मालिक और पूर्ण व्यवस्थापक सब कुछ देखते हैं।

सबसे तेजी से संभव पथ5 मिनट

Step 1_: विजेट स्थापित करें

कनेक्टेड साइटों से स्निपेट की प्रतिलिपि बनाएँ और इसे अपनी वेबसाइट पर पेस्ट करें। यह आपको तुरंत ट्रैकिंग देता है।

Step 2_: AI को सक्षम करें

एआई कॉन्फ़िगरेशन पर जाएं, एक प्रदाता चुनें, अपनी कुंजी दर्ज करें और सहेजें। एआई चैट अब आपकी वेबसाइट पर सक्रिय है।

दान

अब आपके पास आगंतुक ट्रैकिंग और एआई चैट है। आप टिकट जोड़ सकते हैं,CRMबाद में कनेक्टर्स, और कनेक्टर।

Day 2_: इसे उपयोगी बनाएं

ज्ञान जोड़ें

नॉलेज बेस पर जाएं और जोड़ें 5-10 अपने सबसे आम सवालों के बारे में लेख। एआई ग्राहकों को सही ढंग से जवाब देने के लिए इनका उपयोग करता है।

विभाग

टिकट पर जाएं और कम से कम बनाएं 2 विभागों (जैसे, "Sales" और "समर्थन")। प्रत्येक के लिए टीम के सदस्यों को सौंप दें।

अपने AI प्रॉम्प्ट को लिखें

एआई प्रशिक्षण पर जाएं और एक ग्राहक एआई प्रॉम्प्ट लिखें जो आपके व्यवसाय, स्वर और वृद्धि नियमों का वर्णन करता है।

बातचीत का परीक्षण

अपनी वेबसाइट को एक निजी ब्राउज़र में खोलें और एआई के साथ ग्राहक के रूप में चैट करें। जांचें कि उत्तर सटीक हैं और स्वर सही है।

सप्ताह 1: अपने परिचालन का निर्माण

ईमेल कनेक्ट करें

एक मेलबॉक्स (Gmail, IMAP, या प्रदाता कनेक्टर) सेट करें ताकि ग्राहक ईमेल स्वचालित रूप से टिकट बना सकें।

ऑटो-रिप्लाई सेट करें

सुरक्षित विभागों के लिए टिकट ऑटो-रिप्लाई सक्षम करें। एक सेट करें 2इसलिए मनुष्य पहले हस्तक्षेप कर सकते हैं।

समीक्षा विश्लेषण

दैनिक डैशबोर्ड की जाँच करें। यदि ट्रैकिंग जुड़ी हुई है तो आगंतुक गणना, उछाल दर, शीर्ष पृष्ठ और बिक्री पर देखें।

अपना CRM प्रारंभ करें

ओपन एआईCRMऔर चलोOpsIQअपने कनेक्टेड प्लेटफॉर्म से संपर्क आयात करें। पाइपलाइन बोर्ड की समीक्षा करें।

महीना 1_: ऑप्टिमाइज़

AI इतिहास की समीक्षा

A dayly. a इतिहास साप्ताहिक चेक करें गलत उत्तर, मिस्ड प्रश्नों और ज्ञान जोड़ने के अवसर की तलाश करें।

सक्रिय नियम जोड़ें

एक नियम बनाएँ: यदि कोई आगंतुक मूल्य निर्धारण पृष्ठ पर है तो 60+ सेकंड, अगर उन्हें मदद की आवश्यकता है तो एक चैट संदेश दिखाएं।

एक कनेक्टर बनाएँ

यदि आप एक ऐसा प्लेटफॉर्म का उपयोग करते हैं जिसमें अंतर्निहित कनेक्टर नहीं होता है, तो एक बनाने के लिए कनेक्टर बिल्डर का उपयोग करें।

वेबहुक सेट करें

कनेक्ट OpsIQ अपने आंतरिक उपकरणों के लिए आउटबाउंड वेबहुक का उपयोग करके टिकट, चैट और बिक्री की घटनाओं के लिए किया जाता है।

क्या मैं एआई को छोड़ सकता हूं और सिर्फ ट्रैकिंग का उपयोग कर सकता हूं?+

हाँ। एआई प्रदाता वैकल्पिक है। OpsIQ बिना एआई के शुद्ध विश्लेषण और टिकटिंग प्लेटफॉर्म के रूप में काम करता है। आप बाद में एआई को जब आप तैयार हैं तो सक्षम कर सकते हैं।

क्या मैं कनेक्टर को छोड़ सकता हूं और उन्हें बाद में जोड़ सकता हूँ?+

हाँ। कनेक्टर्स ने एआई को प्लेटफॉर्म-विशिष्ट डेटा के साथ समृद्ध किया है, लेकिन OpsIQ उनके बिना काम करता है। ट्रैकिंग और चैट के साथ शुरू करें, फिर आवश्यकतानुसार प्लेटफॉर्म कनेक्ट करें।

क्या होगा अगर मुझे अभी तक कोई वेबसाइट नहीं है?+

आप अभी भी उपयोग कर सकते हैं OpsIQ for टिकट, CRM और टीम सहयोग. ट्रैकिंग विजेट वैकल्पिक है। इसे तब जोड़ें जब आपकी वेबसाइट तैयार हो जाए।

मैं कैसे जानता हूँ कि क्या विजेट सही ढंग से स्थापित है?+

अपनी वेबसाइट को एक निजी / गुप्त ब्राउज़र में देखें फिर चेक करें OpsIQ लाइव फ़ीड। आपको देखना चाहिए कि आपकी यात्रा भीतर दिखाई दे। 15 यदि नहीं, तो चेक करें: (1(d) स्निपेट सही ढंग से चिपका हुआ है, ()2) साइट कुंजी सही है, (3) विज्ञापन ब्लॉकर्स या सीएसपी हेडर स्क्रिप्ट को अवरुद्ध कर रहे हैं।

यहाँ शुरू करें

उत्पाद का नक्शा

OpsIQ यह एक ऑपरेटर व्यवस्थापक नहीं है, एक वेबसाइट विजेट, एक AI सपोर्ट लेयर, टिकट/हेल्पडेस्क सिस्टम, चार एआई एजेंटों के साथ एक पूर्ण CRM, एक साइट इंटेलिजेंस सूट, बाज़ार के साथ कनेक्टर प्लेटफॉर्म और डेवलपर की सतह है। यहां हर घटक में शामिल हैं।

ऑपरेटर व्यवस्थापक

डैशबोर्ड, लाइव फीड, आगंतुक लॉग, सत्र, सत्र फिर से खेलना, शीर्ष पृष्ठ, भू-सूचना, इरादे की फ़नल, इवेंट लॉग, A/B प्रयोगों, JS त्रुटि ट्रैकिंग, बिक्री और रूपांतरण, लीड्स, AICRM(Command center, contacts, companies, सौदों, पाइपलाइन बोर्ड, सौदा कोचिंग, पूर्वानुमान, संभावना, अनुक्रम, lifecycle, डेटा steward) मेरी स्थापनाCRM, CRMविन्यासCRMस्वास्थ्य,CRM API), टिकट, चैट इनबॉक्स, सक्रिय नियम,CSATसर्वेक्षण, ईमेल ड्राफ्ट, मेलबॉक्स, एआई विन्यास, एआई प्रशिक्षण, एआई इतिहास, एआई अंतर्दृष्टि, ज्ञान आधार, कनेक्टर्स, कनेक्टर बिल्डर, बाज़ार, जुड़े साइट्स, टीम प्रबंधन, टीम प्रदर्शन, सेटिंग्स, निदान और लाइसेंस।

ग्राहक-facing सतहों

वेबसाइट ट्रैकिंग विजेट (analytics beacon + चैट + टिकट एम्बेड + ज्ञान आधार खोज), क्लाइंट एआई चैट, टिकट जमा करने वाला पोर्टल, आगंतुक पहचान टोकन हैंडलिंग, फ़ाइल अपलोड, CSAT सर्वेक्षण विजेट और ग्राहक-facing सहायता केंद्र।

A- First CRM_

कमान केंद्र, संपर्क, कंपनियां, सौदे, ड्रैग-एंड-ड्रॉप के साथ पाइपलाइन बोर्ड, एआई सौदा कोचिंग (जोखिम संकेत, अगले सबसे अच्छे कार्य, जीत संभावना), राजस्व पूर्वानुमान, पूर्वेक्षण एजेंट (SDR), स्वचालित अनुवर्ती अनुक्रम, जीवन चक्र और प्रतिधारण प्रबंधन, डेटा स्टेवर्ड एजेंट (डेडअप, समृद्ध, मान्य) मेरी CRM (प्राकृतिक भाषा सेटअप), सीआरएम विन्यास, सीआरएम स्वास्थ्य जांच, ट्रस्ट डायल (ऑटोप्लॉट / कॉपिलोट / मैनुअल प्रति एजेंट), चार विशेष एजेंट (स्टाइडवर्ड, एसडीआर, रिटेंशन, विश्लेषक) और सीआरएम API वेबहुक के साथ।

साइट इंटेलिजेंस सूट

स्वचालित साइट क्रॉल, तकनीकीSEOलेखा परीक्षा (गति, मोबाइल, कोर वेब विटल्स)SSL, पुनर्निर्देशित, संरचित डेटा), सामग्री लेखा परीक्षा (शब्द गिनती, पठनीयता, कीवर्ड घनत्व, शीर्षक संरचना) एआई-संचालित सेमनेटिक खोज इंजनों में SERP रैंक ट्रैकिंग, अवसर स्कोरिंग के साथ कीवर्ड अनुसंधान, बैकलिंक विश्लेषण और निगरानी, स्थानीयSEOग्रिड विज़ुअलाइज़ेशन, Google बिजनेस प्रोफाइल सिंक (रिव्यू, पोस्ट, Q&A, फोटो, अंतर्दृष्टि), निर्धारित रिपोर्ट (दैनिक / साप्ताहिक / मासिक) और सफेद लेबलPDFएजेंसियों के लिए उत्पादन।

एआई और स्वचालन

ग्राहक एआई चैट (multi-provider: क्लाउड, GPT-4o, Gemini, Grok), व्यवस्थापक एआई सहायक, एआई ज्ञान ग्राउंडिंग, विन्यास योग्य पलटाव के साथ ऑटो-हैंडऑफ़, प्रति-कार्य स्थान AI कॉन्फ़िगरेशन, प्रबंधित AI और BYOK मोड, टोकन बजट और लागत नियंत्रण, एआई इतिहास लेखा परीक्षा ट्रेल, एआई अंतर्दृष्टि विश्लेषण, टिकट एआई ट्रेज, देरी के साथ टिकट ऑटो-रिप्लाई, एआई (अलग प्रॉम्प्ट), और व्यवस्थापक इनबॉक्स कॉपिलॉट।

कनेक्टर्स और एकीकरण

25पूर्व निर्मित कनेक्टरShopify, WooCommerce, BigCommerce, Magento2, PrestaShop, OpenCart, osCommerce,WordPress, WHMCS, Zendesk, Stripeअमेज़ॅन एसईएस, पोस्टमार्क, रिसेंड, SendGrid, Mailgun,Gmail, IMAP, Slack, गूगल बिजनेस प्रोफाइल), कनेक्टर बिल्डर (no-code/AI-assisted/full-code), जेनेरिकOAuthPKCE के साथ प्रवाह, भुगतान वितरण, कनेक्टर हस्ताक्षर और सत्यापन के साथ कनेक्टर बाज़ार, SmartLookup fuzzy मिलान, HTTP कार्रवाई परिभाषाओं की एक बड़ी सूची जिसका उपलब्धता कनेक्टर स्थापना, सक्षमता, विन्यास और मान्यकरण, ज्ञान सिंक और वर्कफ़्लो व्यंजनों पर निर्भर करती है।

डेवलपर प्लेटफॉर्म

आरईटीAPI(विजिटर्स, इवेंट्स, टिकट, संपर्क, सेटिंग्स, कनेक्टर्स), OpenAPI spec,API कुंजी प्रबंधन, आउटबाउंड वेबहुक (async, हस्ताक्षरित, प्रत्यावर्तित, SSRF-guarded, ऑटो अक्षम), आयोजनAPI कस्टम घटना ingestion, विजेट के लिए SDKपहचान संकल्प के साथ, रसोई की किताब, कार्रवाई अनुबंध, कनेक्टर को ट्रिगर करता हैSDK, बाज़ार पैकेजिंग, सर्वर-साइड SDKs (PHP, Node.js), WordPress प्लगइन, और WHMCS मॉड्यूल।

सेटिंग्स और संचालन

व्यावसायिक पहचान, प्रति कार्यक्षेत्र एआई विन्यास, ट्रैकिंग सेटिंग्स, सुरक्षा (HSTS, अनुमतियां-नीति) IP ब्लॉकिंग, ब्रूट-फोर्स प्रोटेक्शन), RBAC (Owner/full Admin/Agent), टीम प्रबंधन और निमंत्रण, टीम प्रदर्शन डैशबोर्ड, व्यवस्थापक उपस्थिति ट्रैकिंग, ईमेल टेम्पलेट सिस्टम (पंजीकरण संचालित, दृश्य संपादक, चर चिप्स), सर्वेक्षण डिजाइनर, डोमेन ज्ञान, टिकट एम्बेड विन्यास, ब्रांडिंग, डेटा प्रतिधारण नीतियों, बिलिंग चक्र प्रबंधन (मासिक जीवनकाल के माध्यम से), मुद्रा सामान्यीकरण, आयात / निर्यात, निदान, क्रोन स्वचालन और खतरे क्षेत्र।

सुरक्षा और अनुपालन

उद्यम SSO (JWKS सत्यापन, JIT प्रावधान के साथ OIDC), SAML विन्यास, GDPR/DSAR हैंडलिंग (सभी प्रणालियों में निर्यात और हटाएं), डेटा मिटाना प्रति संपर्क, सहमति प्रबंधन, कार्यक्षेत्र अलगाव (स्ट्रिक्ट क्वेरी-लेयर स्कोपिंग), लेखा परीक्षा ट्रेल्स, असफल लॉगिन ट्रैकिंग, IP अवरुद्ध, आउटबाउंड वेबहुक एसएसआरएफ गार्ड और डेटा प्रतिधारण नीतियों।

प्रदाता ब्रिज

प्रबंधित एआई के माध्यम से उत्साहित OpsIQ प्रदाता URL साइट इंटेलिजेंस प्रदाता कॉल, लाइसेंस सत्यापन, स्वास्थ्य रिपोर्ट, PDF प्रतिपादन और डेटा निर्यात, सभी कॉन्फ़िगर प्रदाता समापन बिंदु के माध्यम से मार्गनिर्देशित, प्रत्यक्ष विक्रेता नहीं API अपने सर्वर से कॉल करें।

हर व्यवस्थापक पृष्ठ

डैशबोर्ड

कोर

दैनिक आदेश केंद्र: यातायात अवलोकन, लाइव आगंतुक गिनती, बिक्री सारांश, समर्थन कतार गहराई, एआई गतिविधि अलर्ट और त्वरित कार्रवाई शॉर्टकट।

लाइव फ़ीड

एनालिटिक्स

रियल टाइम आगंतुक धारा: पृष्ठ बार देखे गए, चैट शुरू होता है, प्रस्तुतियाँ बनाती हैं और देश, उपकरण और रेफरर फिल्टर के साथ हर कुछ सेकंड में संकेत करती हैं।

आगंतुक लॉग

एनालिटिक्स

पूरा दौरा रिकॉर्ड: उपकरण, ब्राउज़र, ओएस, देश, शहर, रेफरर, UTM params, लैंडिंग पृष्ठ, पहचान और पूर्ण पृष्ठ-view इतिहास।

सत्र

एनालिटिक्स

यात्रा समूहित दृष्टिकोण: पृष्ठ प्रवाह, पृष्ठ पर समय, स्क्रॉल गहराई, रूपांतरण पथ और प्रत्येक आगंतुक सत्र के लिए निकास पृष्ठ।

सत्र पुनरावृत्ति

एनालिटिक्स

कैप्चर की गई घटनाओं का समयरेखा प्लेबैक: माउस आंदोलन, क्लिक, स्क्रॉल, पेज संक्रमण और UX निदान के लिए बातचीत का निर्माण।

शीर्ष पृष्ठ

एनालिटिक्स

पृष्ठ प्रदर्शन रैंकिंग: यात्राओं, सगाई का समय, उछाल दर, रूपांतरणों, समर्थन बातचीत और प्रवृत्ति दिशा।

भू-सूचना

एनालिटिक्स

भौगोलिक रिपोर्ट: नक्शे, उपकरण वितरण, ब्राउज़र शेयर, यातायात स्रोतों और बाजार प्रवेश के साथ देश/शहर का ब्रेकडाउन।

इंतजाम फ़नल

एनालिटिक्स

व्यवहारिक इरादे ट्रैकिंग: मूल्य निर्धारण यात्राओं, वापसी आवृत्ति, डॉक ब्राउज़िंग, समर्थन बातचीत और रूपांतरण संभावना के साथ कस्टम संकेतों।

इवेंट लॉग

एनालिटिक्स

खोजे जाने योग्य घटना इतिहास: पृष्ठ विचार, कस्टम घटनाओं, चैट, खरीद, पूर्ण मेटाडाटा और फ़िल्टरिंग के साथ प्रस्तुतियाँ बनाते हैं।

A/B प्रयोग

एनालिटिक्स

स्प्लिट परीक्षण: वेरिएंट बनाना, यातायात आवंटित करना, लक्ष्यों को परिभाषित करना, महत्व को मापना और विजेताओं की घोषणा करना, सभी के अंदर से OpsIQ

जेएस त्रुटि

एनालिटिक्स

फ्रंटेंड त्रुटि कैप्चर: संदेश, स्टैक ट्रेस, प्रभावित ब्राउज़रों, आवृत्ति, प्रभावित पृष्ठों और प्रवृत्ति ट्रैकिंग।

बिक्री

बिक्री

राजस्व डैशबोर्ड: ऑर्डर, नवीकरण, रिफंड, स्रोत, अभियान प्रदर्शन, अवधि तुलना और प्रवृत्ति विश्लेषण द्वारा प्रयास।

लीड्स

बिक्री

लीड प्रबंधन: स्कोरिंग, सोर्स एट्रिब्यूशन,CRMस्थिति, संपर्क विवरण, व्यवहार संकेत और पाइपलाइन रूटिंग।

AI CRM_

CRM

पूर्ण CRM: कमांड सेंटर, संपर्क, कंपनियां, सौदे, पाइपलाइन बोर्ड, कोचिंग, पूर्वानुमान, संभावना, अनुक्रम, जीवन चक्र, डेटा स्ट्वर्ड और स्वास्थ्य।

टिकट

समर्थन

समर्थन इनबॉक्स: विभाग, प्राथमिकताएं, SLA ट्रैकिंग, AI ट्रेज, ऑटो-रिप्लाई, आंतरिक नोट, फ़ाइल अटैचमेंट, विलय और स्थिति प्रबंधन।

इनबॉक्स चैट

समर्थन

लाइव वार्तालाप: एआई और मानव चैट, हैंडऑफ़, सहयोग, बातचीत इतिहास, ग्राहक पहचान और CSAT संग्रह।

ईमेल ड्राफ्ट

समर्थन

ईमेल प्रबंधन: टिकटों के लिए इनबाउंड मेल, एआई-सहायता प्राप्त उत्तर संरचना, टेम्पलेट चयन और मेलबॉक्स विन्यास।

एआई विन्यास

एआई

प्रदाता सेटअप: चुनें क्लाउड/GPT-4o/Gemini/Grok, दर्ज API कुंजी या सक्षम प्रबंधित एआई, सेट मॉडल, तापमान और टोकन बजट प्रति वर्कस्पेस।

एआई प्रशिक्षण

एआई

प्रॉम्प्ट लेखन: ग्राहक-facing और व्यवस्थापक-fasing संकेत, escalation नियम, स्वर दिशानिर्देश, निषिद्ध विषय, और सीमा विन्यास।

एआई इतिहास

एआई

वार्तालाप लेखा परीक्षा: पूर्ण अनुरोध / प्रतिक्रिया लॉग, टोकन उपयोग, प्रति बातचीत लागत, प्रदाता, मॉडल संस्करण और रिज़ॉल्यूशन परिणाम।

एआई अंतर्दृष्टि

एआई

पैटर्न विश्लेषण: सामान्य प्रश्न, संकल्प दर, हैंडऑफ़ आवृत्ति, विषय द्वारा संतुष्टि और प्रशिक्षण अंतर पहचान।

ज्ञानकोश

एआई

एआई प्रशिक्षण सामग्री: लेख, अक्सर पूछे जाने वाले प्रश्न प्रविष्टियां, उत्पाद डॉक्स, कनेक्टर ज्ञान और कस्टम प्रविष्टियों। AI ग्राउंडिंग के लिए अर्थिक और कीवर्ड खोज।

कनेक्टर्स

इंटीग्रेशन्स

एकीकरण हब: स्थापित कनेक्टर, स्वास्थ्य स्थिति, एक्शन सूची, क्रेडेंशियल मैनेजमेंट, मार्केटप्लेस ब्राउज़र और कनेक्टर बिल्डर।

कनेक्टेड साइट

सेटिंग्स

साइट प्रबंधन: ट्रैकिंग स्निपेट, साइट कुंजी, विजेट विन्यास, डोमेन सेटिंग और प्रति साइट कार्यक्षेत्र अलगाव।

टीम

सेटिंग्स

उपयोगकर्ता प्रबंधन: सदस्यों को आमंत्रित करें, भूमिकाएं (Owner/full Admin/Agent), सेट डिपार्टमेंट एक्सेस और अनुमतियों का प्रबंधन।

टीम प्रदर्शन

सेटिंग्स

Ops metrics: रेज़ोल्यूशन टाइम, वर्कलोड, SLA अनुपालन, एजेंट द्वारा CSAT, रीओपेन रेट, व्यस्त घंटों और ट्रेंड विश्लेषण।

सेटिंग्स

सेटिंग्स

विन्यास: व्यावसायिक पहचान, एआई सेटअप, ट्रैकिंग, सुरक्षा, ब्रांडिंग, रिटेंशन, ईमेल टेम्प्लेट, बिलिंग, आयात / निर्यात, निदान और खतरे का क्षेत्र।

लाइसेंस

सेटिंग्स

योजना प्रबंधन: लाइसेंस की स्थिति, योजना सुविधाएँ, उपयोग मीट्रिक, नवीकरण तिथि और उन्नयन / डाउनग्रेड विकल्प।

यहाँ शुरू करें

निर्देशित ऑनबोर्डिंग

ऑनबोर्डिंग यात्रा एक काम करने में एक नई स्थापना बदल जाती है OpsIQ वर्कस्पेस को छोड़ दिया जा सकता है और प्रगति खोए बिना फिर से शुरू किया जा सकता हैं।

उत्पाद स्क्रीन
ऑनबोर्डिंगऑनबोर्डिंग प्रत्येक सेटअप क्षेत्र, इसकी वर्तमान स्थिति और अगली कार्रवाई को पूरा करने के लिए दिखाता है।ऑनबोर्डिंगकार्यस्थलPROGRESS60%COMPLETED6नेक्स्टविजेटलाइव WORKSPACEलाइसेंसउत्पाद लाइसेंस को मान्य करेंदानएआई प्रदाताप्रदाता और परीक्षण कुंजी का चयन करेंदानब्रांडव्यापार पहचान और स्वरदानवेबसाइटविजेट जोड़ेंअगला1COMPLETE BASICSलाइसेंस, ब्रांड, एआई2CONNECT DATAसाइट और कनेक्टर3VERIFY LAUNCHटीम, ईमेल, चेक
ऑनबोर्डिंग प्रत्येक सेटअप क्षेत्र, इसकी वर्तमान स्थिति और अगली कार्रवाई को पूरा करने के लिए दिखाता है।

अनुशंसित अनुक्रम

  1. लाइसेंस: लाइसेंस को मान्य करें और वर्कस्पेस की पुष्टि सक्रिय है।
  2. एआई प्रदाता: प्रदाता / मॉडल का चयन करें, क्रेडेंशियल में प्रवेश करें और कनेक्शन परीक्षण चलाएं। एआई को छोड़ दिया जा सकता है अगर वर्कस्पेस शुरू में केवल एनालिटिक्स और टिकटों का उपयोग करेगा।
  3. व्यापार पहचान: विजेट और एआई द्वारा उपयोग किए जाने वाले नाम, उद्योग, विवरण, ग्राहक-फेसिंग टोन और ब्रांड विवरण सेट करें।
  4. कनेक्टर: जब कम से कम एक बाहरी प्लेटफॉर्म सक्षम हो जाता है OpsIQ आदेश, ग्राहक, टिकट, ईमेल या अन्य प्लेटफॉर्म संदर्भ की जरूरत है।
  5. साइट और विजेट: साइट/कार्यस्थान बनाने, साइट कुंजी की प्रतिलिपि बनाने और लाइव फीड में एक निजी ब्राउज़र यात्रा सत्यापित करने के लिए।
  6. टीम और रूटिंग: व्यवस्थापक / एजेंट आमंत्रित करें, विभाग बनाएं, ईमेल रूटिंग सेट करें और अधिसूचना वरीयताओं की पुष्टि करें।
  7. गो-लाइव चेक: परीक्षण चैट, एक टिकट, कनेक्टर सिंक, क्रोन, आउटबाउंड ईमेल, वेबहुक और सुरक्षा हेडर।

प्रति कार्यस्थान यात्रा स्टोर पूरा हो गया। ऑनबोर्डिंग पर लौटने के लिए एक पुनरारंभ करने की बजाय पूरी कदम दिखाना चाहिए।

यहाँ शुरू करें

व्यवस्थापक नेविगेशन और अनुमतियां

OpsIQ साइडबार अनुमति-सचेत है. यह नक्शा बताता है कि प्रत्येक संचालन क्षेत्र कहाँ रहता है और क्यों एक पृष्ठ सभी प्रशासक के लिए दृश्यमान नहीं हो सकता है.

उत्पाद स्क्रीन
OpsIQ नेविगेशनसाइडबार समूह OpsIQ कार्य क्षेत्र द्वारा व्यक्तिगत लिंक केवल तभी दिखाई देते हैं जब वर्तमान भूमिका उनका उपयोग कर सकती है।OpsIQ नेविगेशनकार्यस्थलGROUPS8पेजअनुमति आधारितSEARCHउपलब्धलाइव WORKSPACEसमर्थनटिकट, ई-मेल, CSAT_, ज्ञानखुलाCRMसंपर्क, पाइपलाइन, सौदों, संभावनाखुलास्वचालनकार्यप्रवाह, नियम, लक्ष्यखुलागोपनीयता और सुरक्षाअवलोकन, लेखा परीक्षा, सहमति, ब्लॉकव्यवस्थापक1PICK A GROUPसाइडबार से मिलान करें2CHECK ROLEहिडन मतलब प्रतिबंधित3USE PAGE HELPमिलान अनुभाग खोलें
साइडबार समूह OpsIQ कार्य क्षेत्र द्वारा व्यक्तिगत लिंक केवल तभी दिखाई देते हैं जब वर्तमान भूमिका उनका उपयोग कर सकती है।
समर्थन

टिकट, टीम ईमेल प्लेटफॉर्म, CSAT, मदद केंद्र और chatbot प्रवाह।

CRM

दैनिक बिक्री सतहों: CRM होम, कमांड सेंटर, संपर्क, पाइपलाइन, पूर्वानुमान, जीवनचक्र, संभावना, खंडों, लीडरबोर्ड, सौदा अनुमोदन, डेटा स्ट्वर्ड, विकास उपकरण और गतिविधि स्ट्रीम।

स्वचालन

घटना संचालित वर्कफ़्लो, जीवन चक्र नियम और रूपांतरण लक्ष्य।

विपणन

आउटरीच, सक्रिय संदेश, घोषणाएं, प्रमोशन स्टूडियो, सर्वे स्टूडियो, पुश अभियान और निर्देशित पर्यटन।

एनालिटिक्स

रिपोर्ट सतहों पहले - एनालिटिक्स हब, एआई अंतर्दृष्टि, बिक्री, ग्राहक, लीड्स, फ़नल, ए / बी परीक्षण, सत्र फिर से खेलना, कस्टम डैशबोर्ड और निर्धारित रिपोर्ट - कच्चे आगंतुक, सत्र, पृष्ठ, भूगोल और घटना लॉग के साथ रॉ डेटा सब-सेक्शन में।

स्टैंडअलोन पेज

साइट इंटेलिजेंस, टीम परफॉर्मेंस और फीडबैक समूहों के बाहर सीधे प्रविष्टियों के रूप में बैठते हैं।

इंटीग्रेशन्स

कनेक्टर्स, एक्शन और ट्रिगर्स, मेलबॉक्स, ड्राफ्ट, ईमेल सेटिंग, इनबाउंड एंडपॉइंट्स, आउटबाउंड वेबहुक औरAPIकुंजी।

गोपनीयता और सुरक्षा

सुरक्षा अवलोकन, गोपनीयता और अनुपालन, कुकी सहमति, लेखा परीक्षा गतिविधि, असफल लॉगिन, अवरुद्धIPsऔरJavaScriptत्रुटियां।

सेटिंग्स

कार्यक्षेत्र मूल बातें (सामान्य, टीम, साइट्स, भाषाएं), फिर खुलने योग्य उप-धारा: एआई ब्रेन (निर्देश, विन्यास, मूल्यांकन, इतिहास)CRMसेटअप (बिल्डर, कस्टम फील्ड्स, लीड स्कोरिंग, हेल्थ), डेटा एंड हेल्थ (diagnostics, निर्यात) और शुरू हो रहा है (onboarding, मदद).

पेज एक भूमिका नहीं खोल सकते हैं साइडबार से छिपे हुए हैं। पृष्ठ वर्तमान योजना में किसी भी स्थान पर रहने के लिए दृश्यमान नहीं है। अपग्रेड टैग और एक इन-app उन्नयन स्क्रीन खोलें।

डायरेक्ट रूट अभी भी सर्वर-साइड की जांच कर रहे हैं। साइडबार लिंक को छिपाना सुरक्षा सीमा नहीं है: प्रत्येक संरक्षित कार्रवाई को अपनी अनुमति और वर्कस्पेस चेक पास करना चाहिए।

एनालिटिक्स

एनालिटिक्स हब

एनालिटिक्स हब एक तारीख फिल्टर कार्यक्षेत्र में निर्यात योग्य परिणामों के साथ समर्थन, चैट, एआई, आगंतुक और एजेंट रिपोर्टिंग करता है।

उत्पाद स्क्रीन
एनालिटिक्स हबएनालिटिक्स हब एक डेट रेंज, मीट्रिक कार्ड और टैब्स फॉर सपोर्ट, चैट, एआई, आगंतुक और एजेंट प्रदर्शन को दर्शाता है।एनालिटिक्स हबकार्यस्थलटिकट184AI RESOLVE63%CSAT4.7लाइव WORKSPACEसमर्थनबनाया गया, बंद, लंबित, SLAटैबचैटएआई / मानव परिणाम और समय संभालते हैंटैबएआईगोपनीयता, प्रतिक्रिया, टोकन का उपयोगटैबएजेंटमात्रा, गति और संतुष्टिटैब1CHOOSE DATESपूर्व निर्धारित या कस्टम2CHANGE TABएजेंट के लिए समर्थन3EXPORTडाउनलोड CSV
एनालिटिक्स हब एक डेट रेंज, मीट्रिक कार्ड और टैब्स फॉर सपोर्ट, चैट, एआई, आगंतुक और एजेंट प्रदर्शन को दर्शाता है।

फिल्टर और नियंत्रण

  • एक पूर्व निर्धारित या एक कस्टम का उपयोग करें से रेंज, फिर हर कार्ड और चार्ट को उसी अवधि के लिए पुनर्निर्माण करने का ताज़ा प्रयास करें।
  • निर्यात CSV स्क्रीनशॉट की बजाय सक्रिय विश्लेषणात्मक दृष्टिकोण का निर्यात करता है।
  • कार्यक्षेत्र scoping स्वचालित है; बदलते साइट अंतर्निहित डेटासेट बदल जाती हैं।

प्रत्येक टैब के उपाय क्या हैं

  • समर्थन: टिकट बनाया / बंद / लंबित, पहले जवाब, संकल्प, पहली संपर्क संकल्प, SLA और प्राथमिकता/विभाग/status टूटने.
  • चैट: सत्र शुरू हुआ, एआई संकल्प, एस्केलेटर, परित्याग, समय संभालना, प्रति सत्र संदेश और AI/human/all CSAT.
  • AI: औसत आत्मविश्वास, कम विश्वास दर, ट्रेज सटीकता, प्रतिक्रिया, ज्ञान विक्षेपण, टोकन/नकद उपयोग और समीक्षा की जरूरत वाले आइटम।
  • आगंतुक: चयनित अवधि के लिए यातायात और सगाई की प्रवृत्ति।
  • एजेंट: प्रति एजेंट कार्यभार, गति, बंद करने और संतुष्टि उपायों।

क्रॉस-टीम समीक्षा के लिए एनालिटिक्स हब का उपयोग करें; समर्पित आगंतुकों, टिकटों का उपयोग करते हैं।CSATजब आपको रिकॉर्ड स्तर की जांच की आवश्यकता होती है, तो एआई इतिहास और टीम प्रदर्शन पृष्ठ।

एनालिटिक्स

डैशबोर्ड

डैशबोर्ड आपका दैनिक कमांड सेंटर है। यह एक दृष्टिकोण में यातायात, बिक्री, समर्थन लोड, एआई गतिविधि और रूपांतरण संकेतकों को दिखाता है। इसे हर सुबह ओपन करें जो रात भर हुआ था और आज किस बात की जरूरत है।

डैशबोर्ड
अवलोकन डैशबोर्डएक OpsIQ इंटेलिजेंस AI पैनल (डेली संक्षिप्त, स्मार्ट अलर्ट्स, पूर्वानुमान), KPI विजेट टाइल्स और सात दिवसीय ट्रैफिक विजेट के साथ-साथ एक रीसेट लेआउट नियंत्रण का नेतृत्व किया।अवलोकनकार्यस्थलOPSIQ इंटेलिजविश्लेषण करना और विश्लेषण करना OpsIQ इसे लिखते हैंदैनिक संक्षिप्तस्मार्ट अलर्टपूर्वानुमानलेआउट रीसेट करेंआज2,481+12%राजस्व$8 2.2k+5%Apn Ticket.143 SLAयातायात 7 दिन1AI-FIRSTOpsIQ इंटेलिजेंस पैनल2WIDGETSKPI टाइल्स आप की व्यवस्था3आपकाकभी भी लेआउट रीसेट करें
वास्तविक अवलोकन स्क्रीन: the OpsIQ खुफिया पैनल ऊपर (एक विश्लेषण क्लिक करें और इसे लिखते हैं) KPI विजेट्स के ऊपर आप खुद को व्यवस्थित करते हैं।

डैशबोर्ड कार्ड समझाया

आगंतुक

अभी अपनी वेबसाइट पर लोगों की संख्या अपडेट की गई है। 15 सेकंड (configurable). एक आगंतुक "सक्रिय" है अगर वे सक्रिय सीमा के भीतर एक पृष्ठ लोड (डिफ़ॉल्ट: 90 सेकंड).

अद्वितीय आगंतुक

कितने अलग लोग चयनित तिथि सीमा में अपनी वेबसाइट का दौरा किया। OpsIQ ब्राउज़र फिंगरप्रिंट, कुकीज़ और (यदि उपलब्ध हो) के संयोजन से आगंतुकों को पहचानता है।

नया बनाम रिटर्न

नए आगंतुक पहली बार आपकी साइट को देख रहे हैं। आगंतुकों को पहले देखा गया है। एक उच्च रिटर्निंग अनुपात का मतलब है कि आपकी सामग्री लोगों को वापस लाती है। बहुत कम रिटर्निंग रेशियो का मतलब हो सकता है कि आप रुचि नहीं रखते हैं।

बाउंस दर

आगंतुकों का प्रतिशत जो केवल एक पृष्ठ देखने के बाद छोड़ दिया। ऊपर उछाल दर 70% लैंडिंग पृष्ठों पर आमतौर पर इसका मतलब है कि पृष्ठ आगंतुक उम्मीदों, गलत सामग्री, धीमी लोड या खराब मोबाइल अनुभव को पूरा नहीं कर रहा है।

पृष्ठ पर औसत समय

कितना समय तक आगंतुक औसत पर प्रत्येक पृष्ठ पर खर्च करते हैं। बहुत कम समय (under) 10 सेकंड) सामग्री पृष्ठों पर सुझाव देते हैं कि सामग्री संलग्न नहीं है। चेकआउट पृष्ठ पर बहुत लंबे समय तक भ्रम का संकेत दे सकता है।

थ्रेसीज़ अवरुद्ध

IPवह पता लगाता है OpsIQ संभावित रूप से दुर्भावनापूर्ण के रूप में पहचान की धमकी स्कोरिंग, भंग बल प्रयास या मैनुअल ब्लॉक पर आधारित है। अवरुद्ध देखने के लिए क्लिक करें IPs सूची

आज बिक्री / इस सप्ताह / इस महीने

जुड़े बिक्री स्रोतों से राजस्व (Right of the Sales Source)Shopify, WooCommerce, Stripe, आदि) यदि बिक्री शून्य दिखाती है, तो जांचें कि आपका प्लेटफ़ॉर्म कनेक्टर जुड़ा हुआ है और सिंक हो रहा है।

ट्रेंड चार्ट

एक लाइन ग्राफ जो आगंतुक को चयनित तारीख सीमा पर गिने जाते हैं। पैटर्न के लिए देखो: यातायात स्पाइक्स (कैंपाइन्स, प्रेस उल्लेख), डुबकी (सप्ताहिक, छुट्टियां) और निरंतर रुझान।

शीर्ष स्रोत

जहाँ आपका आगंतुक आते हैं: प्रत्यक्ष, गूगल, सोशल मीडिया, ईमेल अभियान, रेफरल साइटें। यह समझने के लिए उपयोग करें कि कौन से विपणन चैनल काम कर रहे हैं।

शीर्ष ब्राउज़र

क्रोम, सफारी, फ़ायरफ़ॉक्स, एज और अन्य। यदि किसी ब्राउज़र में असामान्य रूप से उच्च उछाल दर है, तो आपके पास एक हो सकता है CSS या JavaScript संगतता मुद्दा।

हर घंटे हीटमैप

सप्ताह के दिन और दिन तक आगंतुक गतिविधि दिखा ग्रिड। यह तय करने के लिए जब समर्थन शिफ्ट शेड्यूल करने के लिये, घोषणाओं को भेजने के लिए, और जब पदोन्नति चलाने के लिए इसका प्रयोग करें।

हाल के आगंतुक

देश, पृष्ठ, उपकरण और स्रोत के साथ पिछले कुछ आगंतुकों। अभियानों के दौरान त्वरित स्थान-चेकों के लिए उपयोगी।

दिनांक सीमा फिल्टर का उपयोग करना

दशबोर्ड के शीर्ष दाईं ओर दिनांक पिकर पर क्लिक करें। प्रीसेट: आज, कल, लास्ट 7 दिन, अंतिम 30 दिन, यह महीना, पिछले महीने, कस्टम रेंज। जब आप सीमा को बदलते हैं तो सभी डैशबोर्ड कार्ड और चार्ट अपडेट होते हैं। तिथि सीमा आपके कॉन्फ़िगर किए गए टाइमज़ोन (सेटिंग में सेट) में है।

काम करने वाले उदाहरण

बाउंस दर स्पाइक जांच

परिदृश्य:
आपकी उछाल दर से कूद गई 45% to 78% इस सप्ताह क्या हुआ?
क्या करना है:

जाँच करें:1क्या एक विशिष्ट लैंडिंग पृष्ठ परिवर्तन हुआ? शीर्ष पृष्ठों पर जाएं और बाउंस रेट द्वारा क्रमबद्ध करें।2क्या एक अभियान गलत पृष्ठ पर यातायात भेजता है? नए रेफरर्स के लिए शीर्ष स्रोतों की जाँच करें।3क्या यह साइट मोबाइल पर टूट गई थी? मोबाइल बाउंस रेट के लिए ब्राउज़र ब्रेकडाउन की जांच करें।4क्या यह बोट ट्रैफिक है? संदिग्ध पैटर्न के लिए थ्रेस काउंटर और आगंतुक विवरण की जांच करें।

डैशबोर्ड पर शून्य आगंतुक

परिदृश्य:
डैशबोर्ड दिखाता है 0 लाइव आगंतुक भले ही आपकी वेबसाइट यातायात हो रही है।
क्या करना है:

जाँच करें:1क्या ट्रैकिंग विजेट स्थापित है? अपनी वेबसाइट स्रोत कोड देखें और खोज के लिए OpsIQ लिपि (Pristy)2क्या साइट सही है? कनेक्टेड साइटों में कुंजी के साथ स्क्रिप्ट में डेटा-साइट-की की तुलना करें।3क्या एक CDN या कैश स्क्रिप्ट के बिना एक कहानी पृष्ठ पर काम कर रहा है? अपने CDN कैश को साफ़ करें।4) क्या एक विज्ञापन अवरोधक या CSP हेडर स्क्रिप्ट को अवरुद्ध करता है? ब्लॉक किए गए अनुरोधों के लिए ब्राउज़र कंसोल की जाँच करें।

हर घंटे के तापमैप को पढ़ना

परिदृश्य:
आपका हीटमैप सप्ताह के दिनों में 10am-2pm के बीच भारी गतिविधि दिखाता है लेकिन सप्ताहांत पर कुछ भी नहीं।
क्या करना है:

यह एक B2B यातायात पैटर्न है। आपके आगंतुक व्यावसायिक घंटों के दौरान ब्राउज़िंग करने वाले पेशेवर हैं। निहितार्थ:1) साप्ताहिक व्यावसायिक घंटों के लिए अनुसूची समर्थन स्टाफ।2(d) मंगलवार-Thursday सुबह ईमेल अभियान भेजिए।3The Windows and Windows are safe. ()4केवल चरम घंटों के दौरान लाइव चैट की पेशकश करने पर विचार करें।

अज्ञात स्रोत से यातायात स्पाइक

परिदृश्य:
आप अचानक स्पाइक देखते हैं 500 एक अज्ञात रेफ़र से एक घंटे में आगंतुक।
क्या करना है:

समय खिड़की से आगंतुक और फ़िल्टर करने के लिए जाओ। चेक करें:1क्या वे वास्तविक आगंतुक या बॉट हैं? सत्र की अवधि, पृष्ठों को देखा और ब्राउज़र विविधता देखें।2यदि वास्तविक हो, तो वे किस पृष्ठ पर उतर रहे हैं?3) रेफ़र्टर की जाँच करें URL किसी ने Reddit, Hacker News, या एक लोकप्रिय ब्लॉग से आप से जुड़े हो सकते हैं।4यदि यह बॉट ट्रैफिक है, तो थ्रॉट्स की जांच करें और अवरुद्ध करने पर विचार करें IP रेंज।

क्यों मेरी आगंतुक गणना Google Analytics_ से भिन्न होती है?+

OpsIQ अलग-अलग आगंतुकों की गणना करता है। यह ब्राउज़र फिंगरप्रिंटिंग और कुकीज़ का उपयोग करता है, जबकि GA एक अलग कुकी मॉडल का उपयोग करती है। Bot फ़िल्टरिंग, विज्ञापन अवरोधक दरें, और स्क्रिप्ट लोडिंग ऑर्डर भी मतभेद पैदा कर सकता है। 10-20% विचलन सामान्य है।

क्या मैं डैशबोर्ड को किसी अन्य उपकरण में एम्बेड कर सकता हूं?+

डैशबोर्ड के लिए डिज़ाइन किया गया है OpsIQ व्यवस्थापक। बाहरी रिपोर्टिंग के लिए, REST का उपयोग करें API एनालिटिक्स डेटा को खींचने और इसे अपने डैशबोर्ड या BI टूल में प्रदर्शित करने के लिए।

"threat" काउंटर का क्या मतलब है?+

यह गिनती IP वह पता लगाता है OpsIQ खतरे के स्कोरिंग, बार-बार असफल लॉगिन या मैनुअल ब्लॉकों पर आधारित ध्वजांकित या अवरुद्ध है। विवरण देखने और ब्लॉक का प्रबंधन करने के लिए काउंटर पर क्लिक करें।

एनालिटिक्स

आगंतुक लॉग

आगंतुक लॉग आपकी ट्रैक की गई वेबसाइटों पर हर यात्रा को दर्शाता है। प्रत्येक पंक्ति एक आगंतुक से एक पृष्ठ लोड होती है। व्यक्तिगत आगंतुक व्यवहार की जांच करने, अभियान यातायात खोजने और ट्रैकिंग मुद्दों का निदान करने के लिए इसका उपयोग करें।

आगंतुक लॉग
आगंतुक लॉगएक फिल्टर बार के साथ एक आगंतुक तालिका (तिथि, खोज IP/email/city, स्रोत, उपकरण) और स्तंभों के लिए IP/email, स्थान, स्रोत, उपकरण और समय, एक प्रमुख खतरा पंक्ति के साथ।आगंतुक लॉगyoursite.com7 दिनखोज IP, ईमेल, शहर...स्रोत ▾उपकरण ▾IP / EMAILस्थानस्रोतडेविसकब[email protected]US · न्यूयॉर्कgoogleडेस्कटॉप2 मिनट41.62.10.4UK · लंदनdirectमोबाइल6 मीटर[email protected]डे · बर्लिनutm:adमोबाइल14 मि.203.0.113.9NG · लागोreferralडेस्कटॉपthreat1–25of3,402सत्र →1FILTERDate · search · source · डिवाइस2REAL COLUMNSIP/email · स्थान · युक्ति · खतरे3DRILL INपूरा सत्र खोलें
वास्तविक आगंतुक लॉग: दिनांक, खोज और उपकरण द्वारा फ़िल्टर करें, फिर प्रत्येक यात्रा को पढ़े IP/email, स्थान, स्रोत, उपकरण और समय, खतरे लाल रंग में ध्वजांकित।

प्रत्येक पंक्ति क्या दिखाता है

IP पता

आगंतुक IP पता। यदि नामकरण किया गया हैIP सेटिंग्स में नामकरण सक्षम है। इस से सभी यात्राओं को देखने के लिए क्लिक करेंIP.

देश और शहर

से पता लगायाIPजियोआईपी डेटा का उपयोग करके पता करना आवश्यक है।MaxMind GeoLite2डेटाबेसCloudflareजियो हेडर। यदि जियोआईपी को कॉन्फ़िगर नहीं किया गया है तो "अनज्ञात" दिखाता है।

पृष्ठ URL

पृष्ठ आगंतुक लोड हो गया। पूर्ण देखने के लिए क्लिक करेंURLलंबे URLs तालिका दृश्य में छंटनी की जाती है।

रेफ़र

जहां आगंतुक आपकी साइट पर उतरने से पहले आया था। "Direct" का मतलब कोई रेफ़र (बुकमार्क, टाइपिंग URLs, कुछ ऐप लिंक) नहीं है।

उपकरण और ब्राउज़र

आगंतुक के उपकरण प्रकार (डेस्कटॉप, मोबाइल, टैबलेट) और ब्राउज़र (क्रोम, सफारी, फ़ायरफ़ॉक्स आदि)। उपयोगकर्ता-एजेंट हेडर से पार्स्ड।

तारीख और समय

जब पृष्ठ लोड हो गया था, तो आपके कॉन्फ़िगर किए गए टाइमज़ोन में।

ग्राहक पहचान

यदि आगंतुक की पहचान होती है (की पहचान टोकन या लॉगिन के माध्यम से), तो उनका नाम या ईमेल दिखाई देता है। अन्यथा अज्ञात रूप में दिखाता है।

फिल्टर

तारीख सीमा

फ़िल्टर एक विशिष्ट समय अवधि के लिए यात्रा करता है। डिफ़ॉल्ट: अंतिम 7 दिन।

खोज

द्वारा खोज IP पता, पृष्ठ URL, रेफरर, देश या ग्राहक ईमेल।

स्रोत

यातायात स्रोत द्वारा फ़िल्टर: प्रत्यक्ष, कार्बनिक, सामाजिक, रेफरल, भुगतान, ईमेल।

उपकरण

डेस्कटॉप, मोबाइल या टैबलेट द्वारा फ़िल्टर करें।

केवल

केवल पहली बार आगंतुकों को दिखाएं जो पहले कभी नहीं देखा गया है।

काम करने वाले उदाहरण

एक विशिष्ट अभियान से आगंतुक खोजें

परिदृश्य:
आपने UTM पैरामीटर utm_source=google&utm _medium=cpc&utms_campaign=summer-sale के साथ Google Ads अभियान शुरू किया। आप उन आगंतुकों को कैसे ढूंढ सकते हैं?
क्या करना है:

आगंतुक लॉग में, खोज क्षेत्र का उपयोग करें और "समर बिक्री" टाइप करें। सर्च चेक रेफरर URLs पृष्ठ URLs इसलिए UTM पैरामीटर्स मैच करेंगे। आप स्रोत = भुगतान द्वारा आगे संकीर्ण करने के लिए फ़िल्टर भी कर सकते हैं।

एक ग्राहक को ढूंढें जो किसी समस्या की सूचना देता है

परिदृश्य:
ग्राहक ने कहा कि "आपके चेकआउट पृष्ठ को कल लगभग 3pm में तोड़ दिया गया था"। आप अपने सत्र कैसे पा सकते हैं?
क्या करना है:

आगंतुक लॉग में उनके ईमेल पते से खोज करें। यदि वे लॉग इन थे, तो उनकी पहचान दिखाई देगी। दिन की तारीख को सेट करें। 3pm के आसपास चेकआउट पृष्ठों पर जाने का प्रयास करें। अपने सत्र पर क्लिक करें ताकि पूरा पृष्ठ प्रवाह और कोई भी देखें। JavaScript त्रुटियां।

एक लूप हिटर या स्क्रैपर का पता लगाएं

परिदृश्य:
आप नोटिस करते हैं IP पता है 500+ एक घंटे में, सभी के लिए इसी पृष्ठ पर जाएँ।
क्या करना है:

यह संभावना है कि एक बॉट, स्क्रैपर या टूटी हुई स्क्रिप्ट। आगंतुक लॉग पर जाएं और उस से खोज करेंIP चेक करें:1क्या सभी एक ही पृष्ठ पर जाते हैं?2क्या उपयोगकर्ता एजेंट एक ज्ञात बॉट है?3(s) क्या सत्र की अवधि हमेशा होती है? 0 सेकंड? यदि एक बॉट के रूप में पुष्टि की जाती है, तो सुरक्षा पर जाएं और ब्लॉक करेंIP.

आगंतुक लॉग बनाम सत्र बनाम लाइव फीड

आगंतुक लॉग

रॉ पेज लोड। प्रति पृष्ठ दृश्य एक पंक्ति के लिए सर्वश्रेष्ठ: विशिष्ट पृष्ठों की जांच, विशिष्ट स्रोतों से यातायात ढूंढना, ट्रैकिंग मुद्दों का निदान करना।

सत्र

ग्रुप्स पेज यात्रा में देखा गया। प्रति दौरा सत्र एक पंक्ति। सर्वश्रेष्ठ के लिए: उपयोगकर्ता प्रवाह को समझने, सत्र अवधि मापने, रूपांतरण पथ की पहचान करने।

लाइव फ़ीड

रियल टाइम गतिविधि। वर्तमान में आपकी साइट पर आगंतुकों को दिखाता है। के लिए सर्वश्रेष्ठ: प्रगति में अभियानों की निगरानी, उच्च-आशय वाले आगंतुकों को खोलना, समर्थन अवसर देखना।

मैं लॉग में अपनी खुद की यात्रा क्यों देख सकता हूँ?+

OpsIQ डिफ़ॉल्ट रूप से सभी यात्राओं को ट्रैक करता है। अपने स्वयं के यातायात को बाहर करने के लिए, अपना जोड़ेंIPबाहर रखा गया पता IPs सेटिंग्स> ट्रैकिंग में सूची।

आगंतुक "Unknown" देश क्यों दिखाता है?+

जियोआईपी लुकअप को या तो आवश्यकता होती हैCloudflareजियो हेडर (स्वचालित यदि उपयोग किया जाता है)Cloudflare(a) or aMaxMind GeoLite2डेटाबेस फ़ाइल की जाँच करें सेटिंग > जियोआईपी पथ डेटाबेस फ़ाइल मौजूद है और पठनीय है।

आगंतुक डेटा कब तक रखा जाता है?+

आगंतुक डेटा को सेटिंग्स में कॉन्फ़िगर किए गए प्रतिधारण अवधि के लिए रखा जाता है (डिफ़ॉल्ट: 90 उसके बाद पुराने रिकॉर्ड स्वतः क्रॉन रिटेंशन जॉब द्वारा साफ किए जाते हैं।

एनालिटिक्स

सत्र

सत्र एक ही व्यक्ति से एक यात्रा में समूह एकाधिक पृष्ठ दृष्टिकोण को दर्शाता है। जबकि आगंतुक लॉग व्यक्तिगत पेज लोड दिखाता है, सत्र आपको बताता है कि लोग आपकी वेबसाइट के माध्यम से बाहर निकलने तक कैसे चले जाते हैं।

सत्र
सत्रसत्र लॉग टेबल IP_, देश, उपकरण, स्रोत, अवधि और पृष्ठ स्तंभों के साथ, और एक ध्वजांकित खतरा पंक्ति।सत्रyoursite.comकंट्री (NG)सत्र लॉगIP(S)देशडेविसस्रोतव्यवस्थापेज41.62.10.4ब्रिटेनडेस्कटॉपgoogle३ मीटर 12s6102.89.6.2एनजीमोबाइलdirect1 मिमी 05s388.21.4.9डीडेस्कटॉपutm:ad७ मीटर 48s11203.0.113.9अमेरिकामोबाइलreferral0m 42s21SESSION LOGसमूहीकृत यात्रा2COLUMNSThe product · device · source · अवधि3THREATजोखिम भरे सत्र झंडा
वास्तविक सत्र लॉग: हर आगंतुक एक पंक्ति के रूप में यात्रा करते हैं ()IP, देश, उपकरण, स्रोत, अवधि और पृष्ठ) जोखिम भरे सत्र के साथ लाल रंग में ध्वजांकित।

सत्र कैसे काम करते हैं

एक सत्र शुरू होता है जब कोई आगंतुक अपने पहले पृष्ठ को लोड करता है। यह जारी रहता है क्योंकि वे अधिक पृष्ठों पर नेविगेट करते हैं। एक सत्र समाप्त होता है, जब आगंतुक सत्र के समय की अवधि (डिफ़ॉल्ट) के लिए निष्क्रिय होता है। 30 मिनट) या अपने ब्राउज़र को बंद कर देता है। टाइमआउट के बाद लौटने वाला वही व्यक्ति एक नया सत्र बनाता है।

प्रत्येक सत्र क्या दिखाता है

पहला पन्ना

लैंडिंग पृष्ठ, जहां आगंतुक आपकी साइट में प्रवेश करते हैं। यह आपको बताता है कि कौन सी सामग्री लोगों को आकर्षित कर रही है।

अंतिम पृष्ठ

बाहर निकलने का पेज, जहां आगंतुक छोड़ दिया। अगर बाहर निकलने वाला पृष्ठ अक्सर मूल्य निर्धारण पृष्ठ होता है तो आगंतुक आपको प्रतियोगी के साथ तुलना कर सकते हैं।

पृष्ठ गिनती

इस सत्र में आगंतुक को कितने पृष्ठ मिले हैं। अधिक पृष्ठों का आमतौर पर अधिक सगाई होती है, लेकिन इसका मतलब यह भी हो सकता है कि आगंतुक खो गया है।

अवधि

पहले पृष्ठ लोड से लेकर अंतिम गतिविधि तक का समय। सत्र के साथ 0 सेकंड बाउंस हैं (एकल पृष्ठ दृश्य, कोई आगे बातचीत नहीं)।

स्रोत

इस सत्र के लिए यातायात स्रोत (प्रत्यक्ष, गूगल, सामाजिक, रेफरल आदि)।

देश

आगंतुक के देश से पता चला IP पता

बिल्ला

क्या आगंतुक केवल एक पृष्ठ देखने के बाद छोड़ दिया है। बाउंस सत्रों में लाल सूचक होता है।

रूपांतरण

चाहे आगंतुक ने इस सत्र के दौरान ट्रैक किए गए रूपांतरण कार्यक्रम (ख़िरगा, साइनअप, फॉर्म सबमिशन) पूरा किया हो।

फिल्टर

खोज

Search by IP, email, page URL, or referrer within sessions.

प्रकार

नए आगंतुकों द्वारा फ़िल्टर करें (पहले सत्र कभी) या वापसी आगंतुक।

स्रोत

यातायात स्रोत द्वारा फ़िल्टर करें।

देश

देश द्वारा फ़िल्टर करने के लिए एक विशिष्ट क्षेत्र से सत्र देखने के लिए।

थर्ड्स / बाउंस

केवल बाउंस सत्र दिखाने के लिए फ़िल्टर करें या सत्रों को खतरे के रूप में ध्वजांकित किया गया।

काम करने वाले उदाहरण

प्रोफ़ाइल एक उच्च मूल्य ग्राहक

परिदृश्य:
एक ग्राहक ने अभी भी बड़ी खरीदी है। खरीदने से पहले आप अपनी यात्रा को समझना चाहते हैं।
क्या करना है:

सत्रों में उनके ईमेल के लिए खोजें। अपने सभी सत्रों को देखें:1कितने समय तक वे खरीदने से पहले यात्रा करते थे?2(d) किस पेज को वे देख रहे थे?3क्या वे चैट का उपयोग करते हैं या टिकट खोलते हैं?4क्या आप खरीद के लिए पहली यात्रा से कुल समय थे? यह आपको उच्च मूल्य वाले ग्राहकों के लिए विशिष्ट खरीदारी की यात्रा बताता है।

एक नए स्थान से लॉगिन का पता लगाएं

परिदृश्य:
ग्राहक आमतौर पर नाइजीरिया से लॉग इन करते हैं लेकिन आप रूस से एक सत्र देखते हैं।
क्या करना है:

सत्रों में ग्राहक ईमेल के लिए खोजें। हाल के सत्रों के देश की तुलना करें यदि एक सत्र अचानक एक असामान्य देश से दिखाई देता है, तो यह वैध यात्रा या समझौता खाता हो सकता है। चेक:1क्या सफल होने से पहले कोई असफल लॉगिन प्रयास नहीं हुआ?2(d) क्या IP उसी सत्र में बदलाव? यदि संदिग्ध हो तो समीक्षा के लिए इसे ध्वजांकित करें।

एक सत्र और आगंतुक के बीच क्या अंतर है?+

एक आगंतुक एक व्यक्ति (या ब्राउज़र) है। एक सत्र उस व्यक्ति से एक यात्रा है। उसी आगंतुक के पास समय-समय पर कई सत्र हो सकते हैं। सत्र टाइमआउट अवधि के बाद समाप्त हो जाता है।

कैसे OpsIQ _= आगंतुक लौटने की पहचान करता है?+

OpsIQ कुकीज़, ब्राउज़र फिंगरप्रिंटिंग और अधिकृत पहचान टोकनों का संयोजन का उपयोग करता है। यदि कोई आगंतुक अपनी कुकी को साफ़ करता है और लॉग इन नहीं होता है तो वे एक नए आगंतुक के रूप में दिखाई देंगे।

एनालिटिक्स

लाइव फ़ीड

लाइव फीड वर्तमान में आपकी वेबसाइट पर वास्तविक समय में आगंतुकों को दिखाता है। 15 सेकंड (कॉन्फ़िगरेबल)। अभियानों, उत्पाद लॉन्च और व्यस्त समर्थन अवधि के दौरान इसका उपयोग यह देखने के लिए करें कि अभी क्या हो रहा है।

लाइव फ़ीड
लाइव फ़ीडवास्तविक समय की गतिविधि धारा एक लाइव ऑनलाइन विज़िटर गिनती और देश द्वारा हाल के आगंतुक कार्यों का फ़ीड दिखा रहा है।लाइव फ़ीडyoursite.com37अब ऑनलाइन आगंतुकलाइव गतिविधिअबUS · view /pricing2sUK · एक चैट शुरू5sDE · गाड़ी में जोड़ा गया9sCA · पूरा हस्ताक्षर1RIGHT NOWकौन है?2AUTO-REFRESHहर 15s_3कार्यएक लाइव चैट में कूदो
यह देखने के लिए कि कौन आपकी साइट पर है और वे क्या कर रहे हैं, स्वचालित रूप से हर जगह ताज़ा करना 15 सेकंड।

यह कैसे काम करता है

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

सेटिंग्स

ताज़ा अंतराल

अक्सर लाइव फीड अपडेट कैसे होते हैं। डिफ़ॉल्ट: 15 सेकंड। लोअर मान (NFAQ)5-10s) तेजी से अद्यतन देते हैं लेकिन अधिक सर्वर संसाधनों का उपयोग करते हैं।30-60s) सर्वर पर आसान है लेकिन कम वास्तविक समय।

सक्रिय सीमा

उनके पिछले पेज लोड के बाद आगंतुक को "सक्रिय" कब तक माना जाता है। डिफ़ॉल्ट: 90 यदि कोई आगंतुक किसी पृष्ठ को लोड करता है और फिर उसके लिए इसे पढ़ता है 2 क्लिक किए बिना मिनट, वे सीमा के बाद लाइव फीड से गायब हो जाते हैं।

बटन

ऑटो रिफ्रेश को रोकने के लिए रोकें। उपयोगी जब आप सूची अद्यतन किए बिना विवरण पढ़ना चाहते हैं। फिर से शुरू करने के लिए क्लिक करें।

काम करने वाले उदाहरण

एक अभियान के दौरान गर्म नेतृत्व स्पॉट

परिदृश्य:
आप एक उत्पाद लॉन्च चला रहे हैं। एक आगंतुक ने सिर्फ अपने होमपेज को देखा, फिर फीचर्स, फिर प्राइसिंग और अब चेकआउट पेज पर है।
क्या करना है:

यह उच्च आंतरायिक व्यवहार है। लाइव फ़ीड में: ()1अपने सत्र को देखने के लिए आगंतुक पर क्लिक करें।2यदि वे एक चैट शुरू करते हैं, तो एआई का पूरा यात्रा संदर्भ होगा।3यदि वे खरीदे बिना छोड़ते हैं, तो वे लीड्स पेज में अग्रणी हो जाते हैं।4) जब आगंतुक चेकआउट तक पहुंचते हैं तो चैट संदेश दिखाने के लिए एक सक्रिय नियम बनाने पर विचार करें।

एक ही से बहुत सारे आगंतुक IP

परिदृश्य:
तुम देखो 20 उसी से आगंतुक IP विभिन्न पृष्ठों पर सभी को संबोधित करते हैं।
क्या करना है:

यह हो सकता है:1) साझा इंटरनेट के साथ एक कार्यालय। चेक करें कि क्या यात्राएं वास्तविक मनुष्यों (अलग पृष्ठों, उचित सत्र अवधि) की तरह दिखती हैं।2A bot or scraper. चेक अगर सत्र बहुत छोटा है ()0-1सेकंड या पृष्ठों को व्यवस्थित रूप से हिट करना।3) एक लोड परीक्षण। यदि आप स्वचालित परीक्षण चल रहे हैं, तो बाहर निकलें IP ट्रैकिंग से

लाइव फीड शो क्यों करता है 0 जब मेरी साइट यातायात है तो आगंतुक?+

जाँच करें:1क्या आपकी साइट पर विजेट स्क्रिप्ट स्थापित की गई है?2क्या साइट सही है?3क्या सक्रिय थ्रेसहोल्ड पारित हो गया है?4क्या आगंतुकों को आक्रामक विज्ञापन अवरोधकों का उपयोग करते हैं जो ट्रैकिंग स्क्रिप्ट को अवरुद्ध करते हैं?

क्या मैं देश या उपकरण द्वारा लाइव फीड को फ़िल्टर कर सकता हूं?+

लाइव फीड सभी सक्रिय आगंतुकों को दिखाता है। फ़िल्टर किए गए विचारों के लिए, आगंतुक लॉग या सत्र पृष्ठों का उपयोग उनके फिल्टर विकल्पों के साथ करें। लाइव फ़ीड जानबूझकर वास्तविक समय की निगरानी के लिए सरल है।

एनालिटिक्स

शीर्ष पृष्ठ

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

शीर्ष पृष्ठ
शीर्ष पृष्ठक्षैतिज यात्रा सलाखों और गिनती के साथ सबसे अधिक देखी गई पृष्ठों की एक रैंक सूची।शीर्ष पृष्ठyoursite.comअधिकांश देखी गई पृष्ठ/pricing3,402/2,910/docs1,740/blog/seo-guide980/signup6401RANKEDअधिकांश देखी गई पृष्ठ2SIGNALSविजिट्स और रूपांतरण3FINDपेज जो टिकट चलाते हैं
आपके पृष्ठ यातायात और सगाई के आधार पर हैं, इसलिए आप उन शीर्ष सामग्री और पृष्ठों को स्पॉट कर सकते हैं जो समर्थन उत्पन्न करते हैं।

प्रत्येक पृष्ठ क्या दिखाता है

पृष्ठ URL

पूर्ण URL पथ। समान पृष्ठ (जैसे, उत्पाद वेरिएंट) समूहीकृत हैं यदि समूह सक्षम हो तो।

दृष्टिकोण

इस पृष्ठ को चयनित तिथि सीमा में कुल संख्या में लोड किया गया था।

अद्वितीय आगंतुक

कितने अलग लोगों ने इस पृष्ठ को देखा (एक व्यक्ति एक ही पृष्ठ को देखने के लिए दो बार गिने जाते हैं) 1 अद्वितीय).

बाउंस दर

आगंतुकों की प्रतिशतता जो केवल इस पृष्ठ को देखने के बाद आपकी साइट छोड़ दी। लैंडिंग पेज = समस्या पर उच्च उछाल। "आपका धन्यवाद" पृष्ठों = सामान्य पर उच्च बाउंस।

औसत समय

इस पृष्ठ पर कितने समय तक आगंतुक खर्च करते हैं। बहुत कम = पढ़ने नहीं। एक फॉर्म पेज पर बहुत लंबे समय तक = भ्रम।

चैट शुरू होता है

इस पृष्ठ से कितने चैट वार्तालाप शुरू किए गए थे। उत्पाद पृष्ठ पर उच्च चैट शुरू होता है, इसका मतलब है कि उत्पाद विवरण अस्पष्ट हो सकता है।

समर्थन टिकट

इस पृष्ठ पर आने वाले आगंतुकों द्वारा कितने समर्थन टिकट बनाए गए थे।

काम करने वाले उदाहरण

उन पृष्ठों को खोजें जो समर्थन प्रश्नों को ड्राइव करते हैं

परिदृश्य:
आपकी सहायता टीम शिपिंग के बारे में प्रश्न प्राप्त करती है। कौन सा पेज विफल हो रहा है?
क्या करना है:

"समर्थन टिकट" या "Chat शुरू होता है" के शीर्ष पृष्ठों को क्रमबद्ध करें। उत्पाद या शिपिंग पृष्ठों के लिए उच्च गिनती के साथ देखें। सबसे समर्थन प्रश्नों वाले पृष्ठ में शायद अस्पष्ट जानकारी होती है। पेज सामग्री को ठीक करें और निगरानी करें कि क्या समर्थन प्रश्न कम हो जाते हैं।

उच्च निकास दर वाले पृष्ठों को खोजें

परिदृश्य:
आप जानना चाहते हैं कि लोग आपकी साइट को अक्सर कहाँ छोड़ देते हैं।
क्या करना है:

बाउंस दर अवरोही द्वारा क्रमबद्ध करें। उन पृष्ठों को अनदेखा करें जो स्वाभाविक रूप से निकास बिंदु (आप पृष्ठ, पुष्टिकरण पृष्ठ) हैं। उन पन्नों पर ध्यान केंद्रित करें जिन्हें आगंतुकों को संलग्न रखना चाहिए: उत्पाद पृष्ठ, मूल्य निर्धारण, विशेषताएं। इनकी आवश्यकता बेहतर कॉल-टू-एक्शन या स्पष्ट सामग्री है।

क्यों एक पृष्ठ शो 0 हालांकि मुझे पता है कि यह यातायात हो जाता है?+

जाँच करें:1क्या ट्रैकिंग विजेट उस विशिष्ट पृष्ठ पर स्थापित है? सिंगल-पेज ऐप रूट परिवर्तनों पर पेज के दृश्य को फायर नहीं कर सकता।2क्या पृष्ठ को ट्रैकिंग सेटिंग्स में बाहर रखा गया है? ()3क्या CDN ट्रैकिंग स्क्रिप्ट के बिना एक कैश्ड संस्करण की सेवा करता है?

एनालिटिक्स

भू-सूचना

जियो इंटेलिजेंस दिखाता है कि आपका आगंतुक देश, शहर, उपकरण और स्रोत से कहां आते हैं। अपने भौगोलिक बाजारों को समझने के लिए इसका उपयोग करें, भाषा समर्थन पर निर्णय लें, क्षेत्रीय विपणन की योजना बनाएं और संदिग्ध यातायात पैटर्न का पता लगाएं।

जियो
भू-सूचनाप्रति-कंट्री बार रैंकिंग के बगल में आगंतुक स्थानों का एक नक्शा।भू-सूचनाyoursite.comस्थानअमेरिकाब्रिटेनडीसीएएनजी1MARKETSदेश, शहर, उपकरण2PLANभाषा और क्षेत्र3WATCHस्पॉट विषम यातायात
जहाँ आपका आगंतुक (देश, शहर और उपकरण) से लेकर आकार बाज़ार तक आते हैं और असामान्य यातायात को स्पॉट करते हैं।

क्या आप देखते हैं

शीर्ष देश बार चार्ट

शीर्ष देशों आगंतुक गिनती के आधार पर। शहर स्तर डेटा को नीचे ड्रिल करने के लिए एक देश क्लिक करें।

देशी डोनट्स

देश द्वारा यातायात का दृश्य टूटने। प्रतिशत के लिए होवर।

पूर्ण देश तालिका

चयनित अवधि में आगंतुकों के साथ हर देश आगंतुक गिनती, सत्र गणना, उछाल दर और रूपांतरण दर दिखा रहा है।

शहर ड्रिल-डाउन

उस देश के भीतर कौन से शहर सबसे अधिक आगंतुक हैं, यह देखने के लिए एक देश पर क्लिक करें।

कैसे जियोआईपी का पता लगाने के काम

OpsIQदो तरीके से आगंतुक स्थान का पता लगाता है: ()1) Cloudflareयदि आपकी साइट पीछे है तो भू-अभिलेखCloudflare, देश का पता लगाना स्वचालित और सटीक है।2) MaxMind GeoLite2डेटाबेस डाउनलोड करें और सेटिंग्स में पथ को कॉन्फ़िगर करें सिटी-लेवल डिटेक्शन के लिए आवश्यकता होती है।GeoLite2-City डेटाबेस, न सिर्फ देश डाटाबेस।

वीपीएन और प्रॉक्सी यातायात

वीपीएन का उपयोग करने वाले आगंतुक वीपीएन सर्वर के स्थान से नहीं आएंगे, उनका वास्तविक स्थान। यह डिजाइन द्वारा है। OpsIQ वीपीएन को बायपास करने की कोशिश नहीं करनी चाहिए। यदि आप असामान्य देश के पैटर्न देखते हैं, तो विचार करें कि क्या आपको वीपीएन को पास करना है? 10-20% आगंतुकों के लिए वीपीएन का उपयोग कर सकते हैं।

काम करने वाले उदाहरण

अनपेक्षित देश यातायात

परिदृश्य:
आप एक अमेरिकी व्यापार चलाते हैं लेकिन 30% यातायात भारत से है।
क्या करना है:

जाँच करें:1क्या ये वास्तविक आगंतुक हैं? सत्र की अवधि और पृष्ठों को देखा गया। उच्च उछाल = संभावित बॉट के साथ बहुत कम सत्र।2क्या वे आपको गूगल के माध्यम से ढूंढ रहे हैं? रेफरर की जाँच करें।3क्या वे एक नए बाजार में संभावित ग्राहक हो सकते हैं? यदि यातायात वास्तविक और संलग्न है, तो भारत-विशिष्ट मूल्य निर्धारण या सामग्री जोड़ने पर विचार करें।

भाषा समर्थन पर निर्णय लेना

परिदृश्य:
आप जानना चाहते हैं कि आपको अपनी साइट को स्पेनिश में अनुवाद करना चाहिए।
क्या करना है:

भौगोलिक खुफिया पृष्ठ पर देखें. यदि स्पेनिश बोलने वाले देश (स्पेन, मेक्सिको, कोलंबिया, अर्जेंटीना आदि) कम बाउंस दरों के साथ आपके ट्रैफ़िक का 10% से अधिक प्रतिनिधित्व करते हैं, तो अनुवाद पर विचार करना उचित है. यह भी जाँचें: क्या इन देशों से आगंतुकों ने आपकी प्राथमिक बाजार में समान दरों पर रूपांतरण किया?

क्षेत्रीय समर्थन बदलाव योजना

परिदृश्य:
आपको विभिन्न समय क्षेत्रों के लिए समर्थन टीम घंटे का निर्णय लेने की आवश्यकता है।
क्या करना है:

जियो इंटेलिजेंस के साथ संयुक्त रूप से घंटे की हीटमैप (डैशबोर्ड पर) का उपयोग करें। 40% आपका यातायात यूरोप से है और 35% अमेरिका से आपको समय क्षेत्र दोनों के लिए कवरेज की आवश्यकता होती है। जब प्रत्येक क्षेत्र सबसे अधिक सक्रिय होता है तो हीटमैप बिल्कुल दिखाता है।

देश के साथ यात्रा लेकिन कोई आदेश नहीं

परिदृश्य:
जर्मनी शो 500 इस महीने आगंतुक लेकिन शून्य बिक्री।
क्या करना है:

Investigate:1क्या वे मूल्य निर्धारण पृष्ठ पर बोउन्सिंग कर रहे हैं? शायद आपका मूल्य उस बाजार के लिए प्रतिस्पर्धी नहीं है।2क्या आप जर्मनी में जहाज करते हैं? जांचें कि आपका शिपिंग पेज जर्मनी का उल्लेख है।3क्या आपका चेकआउट EUR में उपलब्ध है? मुद्रा की गलतफहमी से परित्यक्त चेकआउट का कारण बनती है।4क्या ये आगंतुक एक एकल स्रोत से हैं जो निम्न-आवश्यक यातायात हो सकता है?

आगंतुक "Unknown" देश क्यों दिखाता है?+

जियोआईपी को कॉन्फ़िगर नहीं किया गया है।Cloudflare(जो स्वचालित रूप से जियो हेडर जोड़ता है) या डाउनलोड करता हैMaxMind GeoLite2डेटाबेस और सेटिंग> जियोआईपी पथ में फ़ाइल पथ सेट करें।

क्या मैं विशिष्ट देशों से यातायात को अवरुद्ध कर सकता हूँ?+

OpsIQ अपने वेब सर्वर का उपयोग करें या Cloudflare देश आधारित अवरोधन के लिए फायरवॉल नियम।OpsIQ दृश्यता पर केंद्रित है, नेटवर्क स्तर पर अभिगम नियंत्रण नहीं है।

एनालिटिक्स

इंतजाम फ़नल

Intent Funnel आगंतुक सत्रों को वर्गीकृत करता है, जो वे करने की कोशिश कर रहे हैं: ब्राउज़ करें, अनुसंधान, तुलना करें, खरीदें, समर्थन प्राप्त करें या छोड़ दें। इसे अपनी साइट पर इरादे के संतुलन को समझने और पहचानने के लिए इसका उपयोग करें जहां आगंतुक गिरते हैं।

इंतजाम फ़नल
इंतजाम फ़नलएक फ़नल से ब्राउज़ करने के लिए अनुसंधान की तुलना में गिनती, प्लस समर्थन और चिप्स छोड़ने के साथ खरीदने के लिए।इंतजाम फ़नलyoursite.comदृश्य · 8,200अनुसंधान 4,100तुलना करें 1,650Buy · 520समर्थन 6%लीविंग 11%1CLASSIFYक्या आगंतुक चाहते हैं2STAGESखरीदने के लिए ब्राउज़ करें3तयड्रॉप-ऑफ का पता लगाएं
सत्रों को आशय (ब्रोज़, अनुसंधान, तुलना, खरीद) द्वारा वर्गीकृत किया गया ताकि आप ठीक उसी जगह देख सकें जहां लोग गिरते हैं।

आशय श्रेणियां

ब्रोइंग

आगंतुकों को आकस्मिक रूप से चारों ओर देख रहे हैं। लघु सत्र, कुछ पृष्ठ, कोई विशिष्ट लक्ष्य पता नहीं लगाया गया है।

शोध

आगंतुकों को पढ़ने उत्पाद/फीचर पेज, डॉक्स, या ब्लॉग सामग्री। पृष्ठ पर लंबे समय तक एकाधिक सामग्री पृष्ठों का उल्लेख किया गया है।

तुलना

आगंतुक मूल्य निर्धारण, योजना तुलना या सुविधा तालिकाओं को देखने। अक्सर आगंतुकों को वापस करने के लिए।

खरीद

चेकआउट, गाड़ी या पंजीकरण पृष्ठों पर आगंतुक। उच्च इरादा ये आपके रूपांतरण के अवसर हैं।

समर्थन-देखने

मदद पृष्ठों, संपर्क पृष्ठ, या चैट शुरू करने पर आगंतुकों को सहायता की आवश्यकता होती है।

बंक

जो लोग एक पृष्ठ के बाद छोड़े थे।

कैसे पढ़ने के लिए कीप

अपने फ़नल को दुबारा अनुवाद करना

परिदृश्य:
1,000 आगंतुकों को मूल्य निर्धारण देखा गया। 270 चैट खोला। 92 चेकआउट शुरू किया। 64 भुगतान 18 समर्थन टिकट खोला गया।
क्या करना है:

मूल्य निर्धारण पृष्ठ आशय बनाने के लिए पर्याप्त मजबूत है। खरीद पथ में चैट महत्वपूर्ण है: 27% मूल्य निर्धारण आगंतुकों को खरीदने से पहले चैट के साथ संलग्न होते हैं। चेकआउट के बाद समर्थन टिकट सक्रियण या भुगतान भ्रम का संकेत दे सकता है।1A Objects of the Internet. (I)2(investigate) 18 सामान्य मुद्दों के लिए पोस्ट-चेकआउट समर्थन टिकट।

टाइम फिल्टर

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

कैसे OpsIQ+

OpsIQ पृष्ठ पर नजर URLs, सत्र व्यवहार, और समय पैटर्न। मूल्य निर्धारण पृष्ठ संकेत तुलना इरादा। चेकआउट पृष्ठ संकेत खरीद इरादे से संपर्क करें। मदद/संपर्क पृष्ठों संकेत समर्थन इरादत है। वर्गीकरण heuristic आधारित है, नहीं AI-driven.

क्या मैं निष्क्रिय श्रेणियों को अनुकूलित कर सकता हूं?+

वर्तमान में नहीं। श्रेणियों को आम वेब व्यवहार पैटर्न के आधार पर बनाया गया है। कस्टम इरादे वर्गीकरण रोडमैप पर है।

एनालिटिक्स

फ़नल, अवधारण और पथ

पृष्ठ या घटना चरणों से कस्टम यात्रा का निर्माण, कोहोर्ट रिटेंशन को मापें और उन पथों की खोज करें जो अक्सर किसी साइट के माध्यम से लेते हैं।

उत्पाद स्क्रीन
फ़नलएक कस्टम फ़नल प्रत्येक पृष्ठ / इवेंट चरण, शेष आगंतुक और रूपांतरण प्रतिशत प्रदर्शित करता है।फ़नलकार्यस्थलSTEPS4CONVERSION28.4%WINDOW72hलाइव WORKSPACEमूल्य निर्धारण देखा गया1,420 आगंतुक100%योजना चुनी780 आगंतुक54.9%चेकआउट शुरू530 आगंतुक37.3%आदेश पूरा403 आगंतुक28.4%1DEFINEचुनें 2–8 कदम2उपायरूपांतरण विंडो सेट करें3सुधारसबसे बड़ी बूंद का पता लगाएं
एक कस्टम फ़नल प्रत्येक पृष्ठ / इवेंट चरण, शेष आगंतुक और रूपांतरण प्रतिशत प्रदर्शित करता है।

फ़नल

एक नाम का फ़नल बनाएं 2to8 पृष्ठ या घटना चरण। घंटों में रूपांतरण विंडो सेट करें; एक आगंतुक केवल तभी गिनता है जब ऑर्डर किए गए कदम उस विंडो के अंदर होते हैं। उन चरणों के बीच ड्रॉप का उपयोग करने के लिए जहां खेलना, त्रुटियों, पेज गति या संदेश का निरीक्षण किया जाता है।

अवधारण

अवधारण समूहों के आगंतुकों को साप्ताहिक समूह में दर्शाता है और यह दिखाता है कि कितने वापसी। एक चुनें 6, 8 या 12 सप्ताह क्षितिज। रिलीज या अभियानों की तुलना करते समय कोहोर्ट परिभाषा स्थिर रखें।

पथ

पथ सबसे आम पृष्ठ अनुक्रमों को सूचीबद्ध करता है। से एक पथ लंबाई चुनें 2 to 5 परिणाम पढ़ने योग्य रखने के लिए पृष्ठ। अप्रत्याशित detours, सामान्य निकास और सामग्री को खोजने के लिए इसका उपयोग करें जो बार-बार रूपांतरण से पहले होती है।

कस्टम फ़नल विश्लेषणात्मक परिभाषाएं हैं, स्वचालन नहीं है। एक पूरा कदम पर प्रतिक्रिया करने के लिए, रूपांतरण लक्ष्य, सेगमेंट, ट्रिगर या वर्कफ़्लो बनाते हैं।

एनालिटिक्स

सत्र पुनरावृत्ति

सत्र Replay आपको अपनी साइट पर एक आगंतुक के बारे में समय-सीमा देखने देता है: वे किस तत्व पर क्लिक करते हैं, वे कैसे स्क्रॉल करते हैं और वे क्या कहते हैं (सम्भाव्य क्षेत्रों के साथ मास्किंग)। यूएक्स समस्याओं का निदान करने, बग रिपोर्ट सत्यापित करने और ग्राहक भ्रम को समझने के लिए इसका उपयोग करें।

सत्र पुनरावृत्ति
सत्र पुनरावृत्तिएक खिलाड़ी को एक कर्सर, एक सत्र सूचना पैनल और टाइमलाइन स्क्रबर के साथ पृष्ठ viewport दिखा रहा है।सत्र पुनरावृत्तिyoursite.comअभी खरीदेंसत्रअवधि 3m 12s14 क्लिकUS · डेस्कटॉपक्रोम 1241WATCHक्लिक, स्क्रॉल, प्रकार2MASKEDसंवेदनशील क्षेत्र छिपा हुआ3DIAGNOSEबग रिपोर्ट सत्यापित करें
वास्तव में क्या एक आगंतुक किया खेलना: क्लिक, स्क्रॉल, टाइपिंग (संवेदनशील फ़ील्ड मास्क) एक समयरेखा स्क्रबर पर।

सही सत्र का पता लगाना

सत्र पृष्ठ से, रिपोर्ट किए गए मुद्दों के साथ सत्रों की तलाश करें, कोई रूपांतरण नहीं करने वाले उच्च पेज की गिनती, या ग्राहकों से सत्र जो समर्थन टिकट दायर करते हैं। टाइमलाइन व्यू खोलने के लिए पुनः प्ले आइकन पर क्लिक करें।

क्या खेलना दिखाता है

समयरेखा

समय के साथ एक क्षैतिज बार घटनाओं को दिखा रहा है। उस क्षण में कूदने के लिए टाइमलाइन पर कहीं भी क्लिक करें।

पृष्ठ नेविगेशन

प्रत्येक पृष्ठ लोड समयरेखा पर एक खंड के रूप में दिखाई देता है। आप आगंतुक को लेने का सटीक पथ देख सकते हैं।

क्लिक

क्लिक घटनाओं को टाइमलाइन पर डॉट्स के रूप में दिखाया जाता है और पृष्ठ पुनर्निर्माण पर प्रकाश डाला गया है।

स्क्रॉल

स्क्रॉल गहराई को ट्रैक किया जाता है ताकि आप देख सकें कि आगंतुक कैसे पढ़े?

सम्पर्क करने का विवरण

फील्ड फोकस और टाइपिंग इवेंट्स रिकॉर्ड किए गए हैं। पासवर्ड और संवेदनशील क्षेत्रों में टेक्स्ट इनपुट डिफ़ॉल्ट रूप से मास्क किया जाता है।

गोपनीयता और मास्किंग

डिफॉल्ट द्वारा सत्र फिर से खेलना मास्क संवेदनशील फॉर्म फ़ील्ड। पासवर्ड फ़ील्ड, क्रेडिट कार्ड इनपुट और डेटा के साथ चिह्नित फ़ील्ड opsiq-मास्क कभी रिकॉर्ड नहीं किए जाते हैं। आप सेटिंग्स> ट्रैकिंग में अतिरिक्त मास्किंग नियमों को कॉन्फ़िगर कर सकते हैं। यदि आपकी अनुपालन नीति की आवश्यकता है, तो आप पूरी तरह से फिर से खेलना अक्षम कर सकते है।

एक टूट चेकआउट का निदान

परिदृश्य:
एक ग्राहक कहते हैं "मैंने खरीदने की कोशिश की लेकिन बटन कुछ नहीं किया।"
क्या करना है:

सत्र पृष्ठ (ईमेल द्वारा खोज) में अपने सत्र का पता लगाएं। फिर से खेलना खोलें। चेकआउट पेज सेगमेंट देखें।1क्या वे सही बटन पर क्लिक करते हैं?2(d) JavaScript त्रुटि होती है? (उस समय के लिए JS त्रुटियों पृष्ठ की जाँच करें।)3क्या पृष्ठ ने एक त्रुटि संदेश को पुनः लोड या दिखाना है? ()4क्या एक आवश्यक क्षेत्र खाली था? फिर से खेलना वास्तव में क्या हुआ पता चलता है।

सत्र के लिए कितना भंडारण उपयोग किया जाता है?+

डेटा को फिर से खेलना ट्रैफिक वॉल्यूम के साथ बढ़ता है। पुराने रीप्ले डेटा को स्वचालित रूप से साफ करने के लिए रिटेंशन सेटिंग्स का उपयोग करें। उच्च यातायात साइटों के लिए, एक लघु पुनरावृत्ति अवधि (जैसे,) पर विचार करें। 30 दिन) भंडारण का प्रबंधन करने के लिए।

क्या आगंतुक फिर से खेलना पसंद करते हैं?+

यदि सेटिंग्स में "Respect Do not Track" सक्षम है, तो DNT हेडर वाले आगंतुक दर्ज नहीं किए जाते हैं। आप ट्रैकिंग सेटिंग में पुनः खेलने से विशिष्ट पृष्ठों को भी बाहर कर सकते हैं।

एनालिटिक्स

इवेंट लॉग

इवेंट्स लॉग हर घटना को दर्शाता है कि OpsIQ ने दर्ज किया है: पृष्ठ विचार, क्लिक, चैट शुरू होता है, टिकट निर्माण, बिक्री और कस्टम आयोजन। इसका उपयोग एकीकरण को डीबग करने के लिए करें, वेबहुक डिलीवरी की पुष्टि करें और कार्रवाई के अनुक्रम को समझें।

इवेंट लॉग
इवेंट लॉगएक कालानुक्रमिक घटना रंग-कोडित प्रकार बैज के साथ लॉग: pageview, chat, बिक्री, webhook और कस्टम।इवेंट लॉगyoursite.compageviewयूएस · /pricing12:04:01chat.startUK · विजेट खोला12:04:09बिक्री$49.00 · आदेश #104212:05:22वेबहुकpayment.succeeded12:05:23customdemo_booked12:06:101EVERYTHINGहर रिकॉर्डेड इवेंट2DEBUGवेबहुक डिलीवरी सत्यापित करें3ORDERसटीक अनुक्रम देखें
हर चीज़ की एक समयरेखा OpsIQ डीबगिंग और लेखा परीक्षा के लिए रिकॉर्ड (पेजव्यू, चैट, बिक्री, वेबहुक, कस्टम इवेंट्स)।

अंतर्निहित घटनाएं (स्वचालित)

⚠️
ये हैं events-log नाम - क्या OpsIQ एनालिटिक्स, डीबगिंग और ऑडिट के लिए आगंतुक समयरेखा पर रिकॉर्ड। वे एक अलग शब्दावली हैं वेबहुक घटनाओं को आप एक समापन बिंदु की सदस्यता लें। यदि आप वेबहुक रिसीवर का निर्माण कर रहे हैं, तो वेबहुकों अनुभाग में सूची का उपयोग करें, या कॉल करें webhooks.events.listइस तालिका से किसी नाम की सदस्यता कुछ भी नहीं दी जाएगी।

प्रत्येक पंक्ति आपको नाम दिखाती है भेजें और canonical नामOpsIQ दुकान यह दोनों के रूप में दर्ज कर रहे हैं: कच्चे नाम आप भेजा है, और canonical एक यह करने के लिए मैप्स, तो एक रिपोर्ट कैनोनिकल वर्गीकरण के खिलाफ लिखा काम करता रहता है जो भी एक ट्रैकर इस्तेमाल किया गया था।

pageview page.viewed

एक ट्रैक पेज लोड शामिल है URL, शीर्षक, रेफरर और टाइमस्टैम्प। page_view और view उसी चीज के रूप में स्वीकार किया जाता है।

chat_open support.chat_opened

एक आगंतुक चैट विजेट खोलता है।

chat_send support.chat_message_sent

एक आगंतुक एक चैट संदेश भेजता है। उत्तर पक्ष के रूप में संग्रहीत किया जाता है support.chat_message_received.

ticket_open support.ticket_created

एक समर्थन टिकट बनाया गया है। ticket_create उसी चीज के रूप में स्वीकार किया जाता है; उत्तर और बंद करने के लिए संग्रहीत किया जाता हैं जैसा कि support.ticket_replied और support.ticket_closed.

form_submit form.submitted

एक ट्रैक फॉर्म जमा किया जाता है। submit उसी चीज के रूप में स्वीकार किया जाता है।

purchase commerce.purchase_completed

खरीद पूरा हो जाता है। purchase_successबिक्री के लिए, और बिक्री के आलियास order.completed, sale.completed, payment.completed और invoice.paidसभी को एक जुड़े मंच से स्वीकार किया जाता है।

जांच commerce.checkout_started

चेकआउट शुरू होता है। संबंधित: cart_view, checkout_view, checkout_intent, checkout_abandon, add_to_cart.

login_success identity.signed_in

एक आगंतुक संकेत करता है। विफलता login_failed, के रूप में संग्रहीत identity.login_failedएक लॉकआउट है login_lockout_created.

साइनअप conversion.signup

एक आगंतुक एक हस्ताक्षर पूरा करता है। lead, के रूप में संग्रहीत conversion.lead.

js_error error.js

A JavaScript त्रुटि को ट्रैक किए गए पृष्ठ पर कब्जा कर लिया जाता है।

💡
एक घटना का नाम आप भेजते हैं कि इन आलियास में से कोई भी नहीं है, फिर भी मौखिक रूप से दर्ज की गई है - कुछ भी नहीं गिराया जाता है। इसमें केवल कैनोनिकल मैपिंग नहीं है इसलिए यह टैक्सीनोमी आधारित रिपोर्टों में रोल नहीं करेगा।

कस्टम इवेंट

आप अपनी वेबसाइट या सर्वर से कस्टम इवेंट्स भेज सकते हैं OpsIQ कस्टम इवेंट्स आपके व्यवसाय के लिए विशिष्ट कार्यों को ट्रैक करने के लिए उपयोगी हैं: बटन क्लिक, फीचर यूज़, वीडियो प्ले, डाउनलोड आदि।

JavaScript ब्राउज़र से कस्टम इवेंट
// Send a custom event from the browser
window.OpsIQ = window.OpsIQ || [];
window.OpsIQ.push(["track", "plan_selected", {
  plan: "pro",
  billing: "annual",
  value: 99
}]);
PHP · अपने सर्वर से संपर्क गतिविधि रिकॉर्ड
// Record a server-side activity for a contact (PHP)
$ch = curl_init("https://your-opsiq-domain.com/api/v1.php");
curl_setopt_array($ch, [
    CURLOPT_POST => true,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => [
        "Authorization: Bearer opq_your_key",
        "Content-Type: application/json",
    ],
    CURLOPT_POSTFIELDS => json_encode([
        "action" => "crm.activities.record",
        "site_key" => "site_abc123",
        "email" => "[email protected]",
        "event" => "subscription.upgraded",
        "value" => 50,
        "currency" => "USD",
    ]),
]);
$response = curl_exec($ch);
curl_close($ch);

फ़िल्टरिंग इवेंट

घटना का प्रकार

विशिष्ट घटना नामों से फ़िल्टर करें: पृष्ठव्यू, चैट शुरू किया गया, टिकट.निर्मित आदि।

तारीख सीमा

एक विशिष्ट समय अवधि से घटनाओं को प्रदर्शित करें।

खोज

कीवर्ड द्वारा घटना डेटा खोजनाURL, ई-मेल, घटना संपत्ति मान।

कितने समय तक घटनाओं को रखा जाता है?+

कार्यक्रम सेटिंग्स में निर्धारित रिटेंशन पॉलिसी का पालन करते हैं। डिफ़ॉल्ट: 90 दिन। उच्च मूल्य की घटनाओं (परचेस, सुरक्षा आयोजन) को लंबे समय तक बनाए रखने के साथ कॉन्फ़िगर किया जा सकता है।

क्या मैं A/B प्रयोगों में घटनाओं का उपयोग कर सकता हूँ?+

हाँ। एक प्रयोग बनाते समय, आप रूपांतरण घटना चुन सकते हैं। किसी भी अंतर्निहित या कस्टम इवेंट का उपयोग रूपांतरण लक्ष्य के रूप में किया जा सकता है।

एनालिटिक्स

A/B प्रयोग

प्रयोग से आपको एक पृष्ठ या सुविधा के दो संस्करणों का परीक्षण करने की अनुमति मिलती है और यह मापती है कि कौन बेहतर प्रदर्शन करता है। OpsIQ ट्रैक छाप, रूपांतरण और सांख्यिकीय महत्व।

A/B प्रयोग
A/B प्रयोगदो वेरिएंट कार्डों में रूपांतरण दर की तुलना होती है, जिसमें विजेता बैज और प्रमुख संस्करण पर महत्व होता है।A/B प्रयोगyoursite.comवैरिएंट A4.2%रूपांतरण · 1,020 बार देखे गएवैरिएंट बीविजेता6.8%रूपांतरण · 1,005 बार देखे गए+62% लिफ्ट · 96% महत्वपूर्ण1टेस्टदो प्रकार के सिर से सिर2उपायरूपांतरण और महत्व3सजावटविजेता घोषित
दो वेरिएंट चलायें, रूपांतरण देखें और सांख्यिकीय महत्व को देखते हुए विजेता घोषित करें।

कैसे प्रयोगों का काम

1
एक प्रयोग करें

इसे एक नाम दें, अपने प्राथमिक मीट्रिक (संवर्ती घटना) को परिभाषित करें और वेरिएंट (नियंत्रण और परीक्षण) सेट करें।

2
इसे चलाएं

OpsIQ बेतरतीब ढंग से आगंतुकों को वेरिएंट्स के लिए असाइन करता है और उनके व्यवहार को ट्रैक करता है। प्रयोग में बदलाव न करें जबकि यह चल रहा है।

3
परिणाम पढ़ें

पर्याप्त डेटा एकत्र होने के बाद, विश्वास स्तर की जांच करें।95% आत्मविश्वास का मतलब है कि आप हो सकते हैं95% निश्चित रूप से अंतर वास्तविक है, यादृच्छिक संभावना नहीं।

प्रयोग की अवस्था

ड्राफ्ट

अभी तक शुरू नहीं हुआ लेकिन नहीं। आप अभी भी वेरिएंट और मैट्रिक्स को संपादित कर सकते हैं।

चल रहा

सक्रिय रूप से आगंतुकों को वेरिएंट में निर्दिष्ट करना। चल रहे समय संपादित न करें।

पूरा

सांख्यिकीय महत्व तक पहुंच गया या मैन्युअल रूप से बंद कर दिया गया। परिणाम अंतिम हैं।

संग्रहित

परिणाम की समीक्षा की गई है और प्रयोग को अब सक्रिय सूची में आवश्यक नहीं है।

सर्वोत्तम प्रथाओं

लॉन्च से पहले अपने मीट्रिक को परिभाषित करें

यह तय करना कि आप शुरू करने से पहले क्या माप रहे हैं। देखने के परिणाम पूर्वाग्रह पेश करने के बाद एक मीट्रिक का चयन करना।

आंतरिक यातायात को बाहर निकालें

अपनी टीम जोड़ें IP इस सूची को संबोधित करता है ताकि कर्मचारी यात्रा परिणाम नहीं दिखा सकें।

काफी लंबे समय तक चलने

बाद में एक प्रयोग बंद न करें 100 आगंतुकों को विश्वसनीय परिणामों के लिए आपको प्रति संस्करण सैकड़ों या हजारों आगंतुक की आवश्यकता है।

एक समय में एक बदलाव का परीक्षण करें

यदि आप हेडलाइन और बटन रंग बदलते हैं, तो आपको पता नहीं होगा कि कौन-सा बदलाव सुधार हुआ है।

अपने निर्णय को रिकॉर्ड करें

प्रयोग के बाद, यह नोट करें कि किस प्रकार का संस्करण जीता और आपको इसे लागू करने का फैसला क्यों किया गया है।

कितने आगंतुकों को मैं एक वैध प्रयोग के लिए की जरूरत है?+

यह बेसलाइन रूपांतरण दर और आप जिस प्रभाव का पता लगाना चाहते हैं उस पर निर्भर करता है। अंगूठे के एक नियम के रूप में: कम से कम 500 प्रति संस्करण आगंतुकों के लिए 20% प्रभाव का आकार। छोटे प्रभावों के लिए, आपको हजारों की आवश्यकता है।

क्या मैं एक ही समय में कई प्रयोग चला सकता हूँ?+

हां, लेकिन सावधान रहें यदि दो प्रयोग उसी पृष्ठ को प्रभावित करते हैं तो उनके परिणाम बातचीत कर सकते हैं। विभिन्न पृष्ठों या सुविधाओं पर एक साथ प्रयोग चलाने के लिए सुरक्षित है।

एनालिटिक्स

JavaScript त्रुटियां

JavaScript त्रुटियां आपकी वेबसाइट आगंतुकों से क्लाइंट-साइड त्रुटियों को एकत्र करती हैं। एक टूटे हुए बटन, असफल API कॉल, या एक लापता संसाधन यहां दिखाता है। असली ग्राहकों को प्रभावित करने वाले बग्स को ढूंढने और ठीक करने के लिए इसका उपयोग करें।

जेएस त्रुटि
JavaScript त्रुटियांगंभीरता डॉट्स, सोर्स फाइल, ब्राउज़र और घटना गिनती के साथ कब्जा कर लिया फ्रंट-एंड त्रुटियों की एक सूची।JavaScript त्रुटियांyoursite.comहाल की त्रुटियोंटाइप-एर: बिना परिभाषित के x को पढ़ा नहीं सकताचेकआउट.js:42 · क्रोम×214404 लोड करना /assets/app.cssA-A-Safari×88Uncaught (in वादा) NetworkErrorapi.js:17 · फ़ायरफ़ॉक्स×51तैयारी चेतावनी: अनलोड घटना. js · एज×331CAPTUREग्राहक साइड त्रुटि2IMPACTगणना और ब्राउज़र3तयस्क्वैश रियल बग
यहां टूटी हुई कोड सतह को हिट करने वाले वास्तविक आगंतुक (संदेश, स्रोत, ब्राउज़र और कितनी बार) तो आप क्या मायने रखती है ठीक कर सकते हैं।

प्रत्येक त्रुटि क्या दिखाता है

त्रुटि संदेश

JavaScript त्रुटि पाठ (उदाहरण के लिए, "TypeError: undefined की विशेषताएँ पढ़ नहीं सकता")

पृष्ठ URL

कौन सा पेज त्रुटि हुई थी।

ब्राउज़र और डिवाइस

कौन से ब्राउज़र और डिवाइस प्रकार त्रुटि देखा है। कुछ त्रुटियों ब्राउज़र-विशिष्ट हैं।

स्टैक ट्रेस

कोड स्थान जहां त्रुटि हुई थी। पूर्ण स्टैक ट्रेस का विस्तार करने के लिए क्लिक करें।

पहली बार देखा

जब यह त्रुटि पहले दिखाई देती है।

देखा गया

जब यह त्रुटि हाल ही में हुई।

गणना

इस त्रुटि को कितने बार दर्ज किया गया है।

प्रभावित सत्र

इस त्रुटि को कितने अलग-अलग आगंतुक सत्रों ने अनुभव किया।

त्रुटियों को प्राथमिकता देना

नहीं JavaScript त्रुटियों को तत्काल ध्यान देने की आवश्यकता होती है।1(information) महत्वपूर्ण पृष्ठों पर त्रुटियां (चेकआउट, साइनअप, लॉगिन), (2उच्च सत्र गिनती के साथ त्रुटियां ()3हाल ही में दिखाई देने वाली त्रुटियां (एक कोड परिवर्तन से संभावित प्रतिगमन), ()4अपने स्वयं के कोड पर त्रुटियां (तीसरे पक्ष लिपियों) नहीं।

एक टूटी हुई चेकआउट बटन को ठीक करना

परिदृश्य:
जे एस त्रुटि पृष्ठ "typeError: Cannot read the property of unchanged (reading प्रस्तुत)" on /checkout, प्रभावित करना 45 इस सप्ताह सत्र।
क्या करना है:

इसका मतलब 45 वास्तविक ग्राहक चेकआउट को पूरा नहीं कर सकते।1The page in the same ब्राउजर/डिवाइस संयोजन.2) ओपन ब्राउज़र कंसोल और त्रुटि को पुन: उत्पन्न करता है।3) कोड की सटीक लाइन खोजने के लिए स्टैक ट्रेस की जाँच करें।4) बग को ठीक करें, तैनात करें और त्रुटि की गणना शून्य होने पर निगरानी रखें।

क्या OpsIQ तीसरे पक्ष के लिपियों से त्रुटियों को कैप्चर करता है?+

हाँ, OpsIQ सभी पर कब्जा JavaScript पेज पर त्रुटियाँ, जिसमें एनालिटिक्स स्क्रिप्ट्स, चैट विजेट और ऐड स्क्रिप्ट से त्रुटियों को शामिल किया गया है। फ़िल्टर द्वारा URL अपने कोड पर ध्यान केंद्रित करने के लिए स्टैक ट्रेस में।

मैं ज्ञात हानिकारक त्रुटियों को कैसे बाहर कर सकता हूं?+

आप विशिष्ट त्रुटियों को दबा नहीं सकते OpsIQ लेकिन आप सूची को पेज द्वारा फ़िल्टर कर सकते हैं URL या त्रुटि संदेश. ब्राउज़र एक्सटेंशन से त्रुटियों को ठीक या अनदेखा (वे अक्सर अज्ञात स्रोतों से त्रुटियों के रूप में दिखाई देते हैं).

बिक्री

बिक्री और रूपांतरण

बिक्री ट्रैकिंग आपके स्टोर या बिलिंग प्लेटफॉर्म को OpsIQ से जोड़ता है ताकि आप आगंतुक व्यवहार के साथ राजस्व देख सकें। प्रत्येक खरीद को एक आगंतुक यात्रा के लिए जिम्मेदार ठहराया जाता है ताकि आपको पता चल जाए कि कौन से पृष्ठ, अभियान और चैनल राजस्व ड्राइव करते हैं।

बिक्री
बिक्रीसेल्स स्क्रीन: एक ऑल-टाइम पीरियड कंट्रोल, एक खोज और हाल ही में खरीद तालिका (डेटा, ग्राहक, मंच, राशि, स्रोत) के साथ एक राजस्व कुल।बिक्रीyoursite.comराजस्व$42,180+18%सभी समय ▾Search email, IP_, Order ID....हाल ही में खरीदतारीखग्राहकमंचAMTस्रोतजून 3[email protected]Shopify$49googleजून 3[email protected]WooCommerce$129directजून 2[email protected]Stripe$480विज्ञापन1राजस्वआदेश और नवीकरण2RECENT PURCHASESDate · ग्राहक · राशि3ATTRIBUTEDयातायात स्रोत के लिए
रियल सेल्स स्क्रीन, टॉप अप राजस्व, फिर हाल ही में खरीद (डेटा, ग्राहक, मंच, राशि), प्रत्येक को अपने यातायात स्रोत के लिए जिम्मेदार ठहराया।

बिक्री डैशबोर्ड

आज की बिक्री

आज पूरा ऑर्डर से राजस्व। अपने जुड़े प्लेटफॉर्म से प्रत्येक नए ऑर्डर इवेंट के साथ मनाएं।

इस सप्ताह / इस महीने / कुल

अवधि के दौरान एकत्रित राजस्व। रिफंड इन कुलों से घटाए जाते हैं।

ट्रेंड चार्ट

रेखा ग्राफ़ चयनित तिथि सीमा पर दैनिक राजस्व दिखा रहा है। स्पाइक्स (प्रचारण, अभियान) और डिप्स (जाति, मौसमी) की तलाश करें।

शीर्ष परिवर्तित सूत्र

कौन से यातायात स्रोत सबसे ज्यादा खरीददारी का नेतृत्व करते हैं। "Direct" खरीदारों ने अक्सर अपनी साइट को बुकमार्क किया। "Google" खरीदार आपको खोज के माध्यम से मिला।

हाल ही में खरीद

ग्राहक ईमेल, राशि, मुद्रा और खरीदी गई वस्तुओं के साथ नवीनतम आदेश।

अनधिकृत खरीद (ग्राहक यात्रा)

जब ट्रैकर देखता है कि आगंतुक ब्राउज़र में खरीदारी की पुष्टि तक पहुंच जाता है लेकिन कोई कनेक्टेड प्लेटफॉर्म ने अभी तक उस बिक्री को सूचित नहीं किया है, ग्राहक यात्रा एक एम्बर बैज के साथ खरीद (अनकॉनफर्म्ड) पंक्ति दिखाती है। यह कभी राजस्व के रूप में नहीं गिना जाता है। जब प्लेटफ़ॉर्म बिक्री की पुष्टि करता है तो पुष्टि की गई खरीद इसकी जगह बदल देती है।

सुलह

बिक्री कनेक्टर एक वेबहुक पर निर्भर नहीं हैं। हर भुगतान संकेत करता है कि प्लेटफ़ॉर्म भेजता है बिक्री खोल सकता है, और कनेक्टर अनुबंध 2.3 फिर से पढ़ने के लिए प्लेटफॉर्म की अपनी सूची को पूरा करने के लिए एक शेड्यूल (डिफ़ॉल्ट प्रति वर्कस्पेस) पर सेट किया गया है ताकि एक Webhook मंच कभी भी वितरित नहीं कर सके बिक्री। ऑपरेटर इसे उपकरण / sales_reconcile. php के साथ कमांड लाइन से मांग पर चला सकते हैं।

प्लेटफार्म सेटअप गाइड

Shopify

कनेक्टर्स पर जाएं >Shopify अपने आप में एक कस्टम ऐप बनाएंShopify व्यवस्थापक (सेटिंग्स > ऐप्स और बिक्री चैनल > एप्लिकेशन विकसित करें)। ग्रांट गुंजाइश: read_orders, read_customers, reced_products. API पहुँच टोकन में OpsIQ, अपने स्टोर डोमेन में प्रवेश करें (उदाहरण के लिए,) your-store.myshopify.com) और एक्सेस टोकन। टेस्ट कनेक्शन पर क्लिक करें। सफल होने पर, वास्तविक समय के आदेश अधिसूचनाओं के लिए वेबहुक सिंक को सक्षम करें।

WooCommerce

कनेक्टर्स पर जाएं >WooCommerce In your; in your. WordPress व्यवस्थापक, जाने के लिए WooCommerce> सेटिंग्स > उन्नत > आरईएसटी API A key with read/Write अनुमति. उपभोक्ता कुंजी और उपभोक्ता रहस्य की प्रतिलिपि बनाएँ। OpsIQ अपनी साइट दर्ज करें URL, उपभोक्ता कुंजी, और उपभोक्ता रहस्य। टेस्ट कनेक्शन पर क्लिक करें।

BigCommerce

कनेक्टर्स के लिए जाओ > BigCommerce। अपने बिगकामर्स व्यवस्थापक में, उन्नत सेटिंग्स पर जाएं >API खाता बनाएं V2/V3 API ऑर्डर, ग्राहक और उत्पाद के लिए रीड गुंजाइश के साथ खाता। एक्सेस टोकन, क्लाइंट आईडी और कॉपी करें।API पथ: उन्हें दर्ज करें OpsIQ और परीक्षण

Magento2

कनेक्टर्स के लिए जाओ > Magento। अपने Magento व्यवस्थापक में, सिस्टम> एकीकरण पर जाएं। साथ में एक नया एकीकरण बनाएं API बिक्री, ग्राहकों और कैटलॉग के लिए संसाधन पहुंच। एकीकरण को सक्रिय करें और एक्सेस टोकन की प्रतिलिपि बनाएँ। इसे दर्ज करें OpsIQ अपने Magento बेस के साथ URL.

PrestaShop

कनेक्टर्स> PrestaShop पर जाएँ। अपने Prestashop व्यवस्थापक में, उन्नत पैरामीटर्स> Webservice पर जाएं। वेबसर्विस को सक्षम करें और एक नई कुंजी बनाएं। ऑर्डर, ग्राहकों और उत्पादों तक पहुंच प्रदान करें। कुंजी की प्रतिलिपि बनाएँ और इसे इनमे प्रवेश करें OpsIQ अपने स्टोर के साथ URL.

OpenCart

कनेक्टर्स के लिए जाओ > OpenCart। जनरेट API अपने OpenCart व्यवस्थापक पैनल से क्रेडेंशियल।API URL, उपयोगकर्ता नाम और कुंजी में OpsIQ कनेक्टर ओपनकार्ट के REST का उपयोग करता हैAPI आदेश और ग्राहक डेटा के लिए।

osCommerce

कनेक्टर्स के लिए जाओ > osCommerce। डेटाबेस एक्सेस को कॉन्फ़िगर करें याAPI कनेक्टर सेटिंग्स में दस्तावेज के रूप में क्रेडेंशियल। osCommerce एकीकरण को आम तौर पर प्रत्यक्ष डेटाबेस एक्सेस या कस्टम की आवश्यकता होती हैAPI मॉड्यूल।

Stripe

कनेक्टर्स पर जाएं >Stripeअपनी कॉपी बनाएंStripeसीमितAPIसे कुंजीStripeडैशबोर्ड (डेवलपर्स)APIकुंजी को ग्राहकों, शुल्कों, चालानों और सदस्यता तक पहुंच की आवश्यकता होती है। इसमें प्रवेश करेंOpsIQवास्तविक समय की घटनाओं के लिए वेबहुक समापन बिंदु को कॉन्फ़िगर करें।

कस्टम / अन्य प्लेटफॉर्म

REST का उपयोग करेंAPI किसी भी प्लेटफॉर्म से बिक्री की घटनाओं को भेजने के लिए या वेबहुक। ग्राहक ईमेल, राशि, मुद्रा और आइटम के साथ आदेशपूर्ण घटनाओं को भेजें। घटनाक्रम देखेंAPI पेलोड प्रारूप के लिए अनुभाग।

अपनी बिक्री कीप को समझना

शीर्ष परिवर्तित सूत्र

यदि Google आता है, तो यह दिखाता है कि कौन से चैनल ग्राहकों को भुगतान करते हैं। 1000 आगंतुक और 50 बिक्री, यह एक है5% रूपांतरण दर यदि ईमेल लाता है 200 आगंतुक और 30 बिक्री, अर्थात् 15% ईमेल प्रति आगंतुक अधिक प्रभावी है।

रिफंड

यदि रिफंड दरें किसी विशिष्ट स्रोत से अधिक हैं तो यातायात कम गुणवत्ता हो सकता है।

मुद्रा हैंडलिंग

OpsIQ मूल लेनदेन मुद्रा और राशि को स्टोर करता है। बहु-मुद्रा कारोबार प्रत्येक मुद्रा में राजस्व देखते हैं। सामान्यीकृत रिपोर्टिंग विन्यस्त विनिमय दर का उपयोग करती है।

काम करने वाले उदाहरण

100 आगंतुक, शून्य बिक्री

परिदृश्य:
आपका मूल्य निर्धारण पृष्ठ हो जाता है 100 प्रति दिन आगंतुक लेकिन शून्य रूपांतरण।
क्या करना है:

Investigate:1(information)) मूल्य निर्धारण पृष्ठ आगंतुकों पर सत्र Replay का उपयोग करें। देखें कि वे मूल्य निर्धारण तालिका के साथ कैसे बातचीत करते हैं।2) मूल्य निर्धारण पृष्ठ उछाल दर और समय-समय पर पृष्ठ के लिए शीर्ष पृष्ठों की जाँच करें।3(information)) क्या प्रश्न पूछते हैं?4) प्रतियोगियों के लिए अपने मूल्य निर्धारण पृष्ठ की तुलना करें।5A/B प्रयोग को विभिन्न मूल्य निर्धारण लेआउट के साथ आज़माएं।

विपणन अभियान के लिए योगदान

परिदृश्य:
आपने UTM टैग के साथ एक ईमेल अभियान भेजा है। आप अपने राजस्व प्रभाव को कैसे माप सकते हैं?
क्या करना है:

स्रोत द्वारा बिक्री और फ़िल्टर करने के लिए जाओ। अभियान UTM पैरामीटर के लिए खोजें। आप देखेंगे: ()1कितने आगंतुकों ईमेल से आया था।2कितने लोग बिक्री में परिवर्तित हो जाते हैं।3) कुल राजस्व अभियान के लिए जिम्मेदार है।4) अभियान से पहले उसी अवधि की तुलना करें।

हालांकि मेरे स्टोर में ऑर्डर क्यों है?+

जाँच करें:1क्या प्लेटफ़ॉर्म कनेक्टर जुड़ा हुआ है और स्वस्थ है? कनेक्टर्स पर जाएं और स्थिति की जांच करें।2क्या वेबहुक सिंक सक्षम है? यदि मतदान का उपयोग किया जाता है, तो क्रॉन जॉब चल रहा है?3क्या कनेक्टर का अधिकार है? API गुंजाइश? के लिए Shopify, आपको read_orders की आवश्यकता है।

कैसे OpsIQ+

जब कोई आदेश कनेक्टर के माध्यम से आता है, OpsIQ ग्राहक ईमेल से एक ज्ञात आगंतुक से मेल खाता है। यदि खरीद के पहले आगंतुक को ट्रैक किया गया था, तो बिक्री को उनके आगंतुक यात्रा के लिए जिम्मेदार ठहराया जाता है, जिसमें यातायात स्रोत, लैंडिंग पृष्ठ और सत्र का इतिहास शामिल होता है।

क्या मैं मैन्युअल रूप से बिक्री जोड़ सकता हूँ?+

आप REST के माध्यम से बिक्री की घटनाओं को भेज सकते हैंAPI या किसी भी सिस्टम से वेबहुक। घटना प्रारूप घटनाओं में दस्तावेज हैAPI अनुभाग।

वाणिज्य

मूल स्टोरफ्रंट का निर्माण, प्रक्षेपण और संचालन करें

स्टोरफ्रंट है OpsIQ के उत्पादों, पृष्ठों, लुकबुक्स, प्रचारक पैनलों, चेकआउट, ग्राहक खातों और क्लाइंट चैट में एआई-सहायता प्राप्त बिक्री और समर्थित सामाजिक चैनलों के लिए मूल दुकान है।

विपणन में शुरू→स्टोर

1
कार्यस्थल चुनें

जिस साइट को आप कॉन्फ़िगर कर रहे हैं, उसकी पुष्टि करें। उत्पाद, सेटिंग्स, पृष्ठ, आदेश और विश्लेषण उस कार्यस्थल के लिए अलग-अलग होते हैं।

2
ईकॉमर्स और स्टोरफ्रंट को सक्षम करें

सामान्य सेटिंग्स → ईकॉमर्स मूल प्राधिकरण है। स्टोरफ्रंट प्रकाशन, ऑर्डर निर्माण और भुगतान अलग रहते हैं ताकि आप एक कैटलॉग को सुरक्षित रूप से देख सकें।

3
पूरा उत्पादों को प्रकाशित करें

उत्पाद प्रकार, मूल्य, मुद्रा, सूची, संस्करण / विकल्प, मीडिया और पूर्ति सेट करें। प्रकाशन से पहले उत्पाद और चेकआउट विकल्पों का पूर्वावलोकन करें।

4
भुगतान और पूर्ति को कॉन्फ़िगर करें

एक गेटवे कनेक्ट करें या बैंक ट्रांसफर, कैश या काउंटर भुगतान जोड़ें। भौतिक वस्तुओं को डिलीवरी ज़ोन या संग्रह की आवश्यकता होती है; डिजिटल सामानों को संरक्षित फ़ाइलों या कोड की आवश्यकता पड़ती है।

5
रन लॉन्च तैयारी

प्रत्येक अवरोधक को ठीक करें और हर चेतावनी की समीक्षा करें, फिर सार्वजनिक स्टोर से सैंडबॉक्स ऑर्डर पूरा करें।

स्टार्टर के बारे में और नीति सामग्री

नए और उन्नत स्टोरों को संपादन योग्य स्टार्टर टेक्स्ट प्राप्त करने के लिए हमारे बारे में, नियम और शर्तें, गोपनीयता, और रिफंड और रिटर्न जब वे खाली होते हैं तो मौजूदा व्यापारी प्रति कभी ओवरराइट नहीं होती है।

  • हर जगह [Add …] शीघ्र और शीघ्र स्टार्टर टेम्पलेट लॉन्च से पहले नोटिस।
  • वास्तविक कानूनी नाम, संपर्क मार्ग, पूर्ति वादा, वापसी नियम, डेटा प्रथाओं, प्रतिधारण अवधि और बाज़ारों का उपयोग किया जाता है।
  • उन उत्पादों और देशों के लिए उचित सलाह प्राप्त करें जिनकी आप सेवा करते हैं। स्टार्टर परिचालन मार्गदर्शन है, कानूनी सलाह नहीं।

डिजाइन, पृष्ठों और प्रचार

थीम और पेज डिजाइन

एक क्यूरेट रंग थीम और संरचना चुनें, फिर टाइपोग्राफी को धुन करें, भरता है / ढाल, आकार, चौड़ाई, गति, होवर और प्रकाश/डार्क व्यवहार। बचत से पहले पूर्वावलोकन डेस्कटॉप और फोन।

के बारे में, संपर्क, शोकेस/लुकबुक और खाता

प्रत्येक पृष्ठ को पुन: व्यवस्थित ब्लॉक से बनाएँ। हर ब्लॉक में प्रीमियम डिज़ाइन वेरिएंट हैं। जब तक उनकी सामग्री सही नहीं होती तब तक दावा-निर्माण ब्लॉकों जैसे सांख्यिकी, टीम, पुरस्कार या उद्धरण रखें।

कस्टम पृष्ठ

सेट शीर्षक, स्लग, नायक, SEO और आदेशित ब्लॉक; पूर्वावलोकन जबकि ड्राफ्ट, फिर प्रकाशित किया गया।

प्रोमोशनल पॉपअप और साइड पैनल

कम से कम एक ब्लॉक के साथ एक मोडल पृष्ठ बनाएं। प्रीमियम डिजाइन, केंद्र/बाएं / दाएं/तलाक प्लेसमेंट, लोड/delay/exit/click ट्रिगर, पृष्ठभूमि, गति, चौड़ाई, कूपन और एक बार प्रति दर्शक व्यवहार चुनें। टेस्ट क्लोज़, कीबोर्ड और फोन लेआउट।

मेनू और पाद लेख

पृष्ठों, उत्पादों, संग्रहों, नीतियों, खाते/help/cart कार्रवाई, लाइव मोडल्स या सुरक्षित बाह्य से लिंक करेंURLsहेडर आइटम एक ड्रॉपडाउन / मेगा-मेनू स्तर का समर्थन करते हैं।

ग्राहक चैट और सामाजिक आदेश

ग्राहक चैट बिक्री सक्षम करें, फिर चुनें कि ग्राहक कहां खरीद सकते हैं। सहायक सूची को खोजता है और सर्वर को आधिकारिक उद्धरण के लिए पूछता है; सर्वर-नहीं मॉडल- हस्ताक्षरित ऑर्डर कार्ड बनाता है। पुष्टि केवल उस कार्ड के माध्यम से वेब पर या सोशल चैनल पर सत्यापित बातचीत के माध्यम में होती है।

WhatsApp, मैसेंजर,Instagram, Telegram, लाइन, एसएमएस और एक्स प्रदाता-सत्यापित चैनल खाते का उपयोग चैनल पहचान के रूप में करते हैं। ईमेल अभी भी रसीदों के लिए एकत्र किया जाता है। कनेक्टर ऑर्डरिंग अपने हस्ताक्षरित सार्वभौमिक अनुबंध और व्यापारी-प्राधिकृत कुल रखता है; स्टोरफ्रंट कॉन्फ़िगरेशन उस अनुबंध को नहीं बदलता है।

स्टोर इंटेलिजेंस एनालिटिक्स

अद्वितीय आगंतुकों, उत्पाद विचारों, कार्ट परिवर्धन, चेकआउट शुरू / abandon/completions, रूपांतरण, पुष्टि आदेशों, मुद्रा, अधिग्रहण, उपकरणों, देशों/cities, शीर्ष उत्पादों, वसूली और डेटा-गुणवत्ता चेतावनी द्वारा राजस्व की समीक्षा करें। रूपांतरण स्पष्ट रूप से सार्वजनिक स्टोर घटनाओं का उपयोग करता है; मुद्रा कुल चुपचाप संयुक्त नहीं होते हैं। एक डैश का मतलब है कि चयनित रेंज रूपांतरण प्रश्न का उत्तर नहीं दे सकती है - शून्य प्रतिशत नहीं।

जनरलOpsIQ API

साथ में एक भालू कुंजी का उपयोग करें commerce.read; analytics.read यह भी एनालिटिक्स स्नैपशॉट प्रदान करता है। कुंजी की बाध्य कार्यक्षेत्र आधिकारिक है।

टाइप्ड स्टोरफ्रंट रीडिंग
{ "action": "commerce.storefront.get" }
{ "action": "commerce.storefront.catalog.get" }
{ "action": "commerce.pages.list", "kind": "modal", "status": "live" }
{ "action": "commerce.analytics.snapshot", "range_days": 30 }
{ "action": "commerce.readiness.get" }
{ "action": "commerce.products.list", "filters": { "active": true } }

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

अंतिम पूर्व-लॉन्च ड्राइवथ्रू

  1. डेस्कटॉप और फोन: घर, खोज, उत्पाद / किरायेदार, गाड़ी, चेकआउट सत्यापन, खाता, ट्रैकिंग, डाउनलोड, के बारे में, संपर्क, नीतियों, लुकबुक, पृष्ठ, मेनू और हर लाइव प्रचार।
  2. एक सैंडबॉक्स भुगतान को पूरा करें और ऑर्डर स्टेटस, रसीद, स्टॉक और पूर्ति की पुष्टि करें।
  3. प्रत्येक सक्षम सोशल चैनल पर एक क्लाइंट चैट ऑर्डर और एक प्रदाता-सैंडबॉक्स ऑर्डर दें।
  4. उन घटनाओं की पुष्टि करें जो स्टोर इंटेलिजेंस में सही सतह और मुद्रा के तहत दिखाई देते हैं।
⚠️
स्टार्टर पॉलिसी टेक्स्ट एक स्टोर को गैर-खाली बनाता है, लेकिन यह कानूनी प्रतिलिपि की समीक्षा नहीं करता है। लॉन्च तैयारी हर प्रॉम्प्ट को प्रतिस्थापित होने तक चेतावनी देती रहती है।
बिक्री

लीड्स

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

लीड्स
लीड्सलीड्स स्क्रीन: एक खोज योग्य तालिका के साथ IP/email, स्थान, उपकरण, स्रोत और समय-समय पर साइट कॉलम, और शीर्ष स्रोत और देश।लीड्सyoursite.comSearch IP_, शहर, देश...शीर्ष स्रोत: Google · देश: अमेरिकाIP / EMAILस्थानडेविसस्रोतटाइम41.62.10.4UK · लंदनमोबाइलgoogle४ मीटर 12s[email protected]US · न्यूयॉर्कडेस्कटॉपdirect७ मीटर 02s[email protected]डे · बर्लिनमोबाइलutm:ad5 मिमी 40s203.0.113.9A · टोरंटोडेस्कटॉपgoogle३ मीटर 28s1DETECTEDउच्च-आंतरिक आगंतुक2TOPप्रमुख सूत्रों और देशों3ENRICHEDIP, स्थान, उपकरण, समय
वास्तविक लीड्स स्क्रीन, एक खोज योग्य तालिका के रूप में उच्च-आंतरिक आगंतुक ()IP शीर्ष स्रोतों और देशों के साथ /email, स्थान, उपकरण, स्रोत, समय पर)।

क्या एक लीड बनाता है

मूल्य निर्धारण पृष्ठ यात्रा

जो आपके मूल्य निर्धारण या योजना पृष्ठ को देखने के आगंतुक सक्रिय रूप से खरीद पर विचार कर रहे हैं।

वापसी यात्रा

जो लोग कई बार वापस आते हैं वे संलग्न होते हैं लेकिन अभी तक परिवर्तित नहीं होते।

बातचीत चैट

जो लोग एक चैट शुरू करते हैं, उन्हें सक्रिय रूप से मदद की मांग कर रहे हैं, या तो पूर्व-खरीद या बाद में खरीदे गए।

चेकआउट शुरू

जो लोग चेकआउट पृष्ठ पर पहुंचते हैं लेकिन खरीद को पूरा नहीं करते।

फॉर्म प्रस्तुतियाँ

जो लोग संपर्क फ़ॉर्म, डेमो अनुरोध या साइनअप फॉर्म जमा करते हैं।

उच्च पेज सगाई

जो लोग लंबे सत्र की अवधि के साथ कई पृष्ठों को देखते हैं, वे गहन शोध कर रहे हैं।

लीड विस्तार पैनल

किसी भी लीड पर क्लिक करें, ताकि उनकी पूरी प्रोफाइल देख सकें:

पहचान

यदि ज्ञात हो तो नाम, ईमेल, कंपनी। अनाम लीड शो IP और स्थान

सत्र

इस पृष्ठ के सभी सत्रों में पृष्ठ प्रवाह, अवधि और स्रोत शामिल हैं।

पृष्ठ देखा गया

प्रत्येक पृष्ठ का वे दौरा किया, जिसे प्राप्त होने के आदेश दिए गए थे।

स्रोत

वे आपको कैसे मिले: कार्बनिक, भुगतान, सामाजिक, रेफरल, प्रत्यक्ष।

लीड स्कोर

A0-100 व्यवहार की तीव्रता, पुनरावृत्ति और पृष्ठ के आशय पर आधारित स्कोर।

CRM स्थिति

क्या यह लीड एक संपर्क या सौदा के रूप में CRM में जोड़ा गया है।

बिक्री टिप

क्या करना है (उदाहरण के लिए, "Visited मूल्य निर्धारण" पर AI-generated सुझाव 3 समय · सक्रिय आउटरीच पर विचार करें).

उच्च मूल्य का नेतृत्व किया बैज

ऊपर एक स्कोर के साथ लीड्स 80 को "उच्च मूल्य" बैज मिलता है। ये आपकी सबसे हॉट संभावनाएँ हैं। उन्हें आउटरीच, सक्रिय चैट या CRM पाइपलाइन प्रविष्टि के लिए प्राथमिकता दी जाती है।

काम करने वाले उदाहरण

एक गर्म नेतृत्व में काम करना

परिदृश्य:
एक लीड ने अपना मूल्य निर्धारण पेज देखा 3 समय 2 दिनों में, उद्यम योजनाओं के बारे में एक बातचीत शुरू की, लेकिन खरीददार नहीं है।
क्या करना है:

यह एक उच्च अंतःक्रियात्मक नेतृत्व है। चरण: ()1) कंपनी और भूमिका की जानकारी के लिए अपने प्रमुख विवरण की जांच करें।2) विशिष्ट आवश्यकताओं और आपत्तियों के लिए चैट ट्रांसक्रिप्ट की समीक्षा करें।3) CRM में जानकारी एकत्र करने के साथ एक सौदा बनाएं।4) एक बिक्री टीम के सदस्य के लिए अनुवर्ती कार्य सौंपना।5यदि वे मूल्य निर्धारण पृष्ठ पर लौटते हैं, तो सक्रिय चैट नियम व्यक्तिगत संदेश को ट्रिगर कर सकता है।

अनाम को परिवर्तित करने से CRM संपर्क होता है

परिदृश्य:
आपके पास उच्च स्कोर के साथ 50 अनाम लीड है लेकिन कोई ईमेल पता नहीं।
क्या करना है:

विकल्प:1एक सक्रिय नियम बनाएँ जो उच्च-आशय वाले पृष्ठों पर ईमेल के बदले में छूट या संसाधन डाउनलोड प्रदान करता है।2जब गुमनाम आगंतुक बातचीत शुरू करते हैं तो ईमेल के लिए पूछने के लिए चैट विजेट का उपयोग करें।3) अपने लॉगिन / साइनअप पृष्ठों पर एक पहचान टोकन जोड़ें ताकि आगंतुकों को स्वचालित रूप से पहचाना जा सके।

कैसे गणना की जाती है?+

स्कोर मानता है: विज़िट की रिसीव (recent = उच्च), यात्राओं की आवृत्ति (अधिक = उच्च), पृष्ठ देखा गया (प्रिंग / चेकआउट = उच्च); सत्र अवधि (लंबे = उच्चतर), चैट इंटरेक्शन (engaged = उच्च).

क्या मैं लीड स्कोरिंग नियमों को अनुकूलित कर सकता हूं?+

हाँ। CRM विन्यास में, आप लीड स्कोरिंग नियमों को जोड़ सकते हैं जो विशिष्ट कीवर्ड, घटनाओं, सूत्रों या पृष्ठ पैटर्न के आधार पर स्कोर को बढ़ावा देते हैं।

CRM

आपका CRM · यहां शुरू

OpsIQ एक पूर्ण AI-first CRM जहाज जो ग्राहक सत्य को पकड़ता है, डेटा को साफ करता है, स्कोर लीड्स, कोच डील करता है और राजस्व का पूर्वानुमान करता है।

AI CRM_
AI CRM अवलोकनट्रस्ट डायल चार एआई एजेंट कार्ड के बगल में कॉपिलोट को सेट करता है: स्टीवर्ड, प्रॉस्पेक्टर, रिटेंशन और विश्लेषक।AI CRM_कार्यस्थलट्रस्ट डायलमैनुअलकोपिलोटऑटोपिलोटएआई अपने आप में कितना करता हैडीस्ट्वर्डDedupe, समृद्ध,डेटा मान्य करेंएसडीआरप्रॉस्पेक्टरखोज और स्कोरनया व्यवसायआरटीअवधारणस्पॉट churn,ड्राइव नवीकरणAविश्लेषकपूर्वानुमान और पूर्वानुमानसंख्याओं को समझाना1AI-FIRSTचार विशेषज्ञ एजेंट2YOU DECIDEट्रस्ट डायल स्वायत्तता3TRUSTEDSourced and reversible
एक एआई-first CRM चार विशेषज्ञ एजेंटों द्वारा चला जाता है, और ट्रस्ट डायल जो निर्णय लेता है कि वे अपने आप में कितना करते हैं।

CRM पृष्ठों की समीक्षा

एआई CRM (Command Center)

यहाँ शुरू करें

आपकी दैनिक होम स्क्रीन: राजस्व पल्स, एआई क्या मिला, यह क्या किया गया, अनुमोदन कतार, अगले चाल, एजेंट स्वास्थ्य और आरओआई।

संपर्क

कोर

अपने CRM में लोग और कंपनियां। प्रोफाइल खोज, फ़िल्टर, स्कोर और प्रबंधन।

पाइपलाइन

कोर

ड्रैग-एंड-ड्रॉप चरणों के साथ विजुअल सौदा बोर्ड, प्रोबायबिलिटी जीतना और एआई कोचिंग।

पूर्वानुमान और रिपोर्ट

कोर

बोर्ड-ग्रेड पूर्वानुमान: प्रतिबद्ध, संभावना, सबसे अच्छा मामला, विश्वास अंतराल और सटीकता ट्रैकिंग के साथ।

लाइफसाइकल

कोर

जहां हर ग्राहक खड़ा है: जोखिम, विस्तार तैयार, नवीकरण देय या चुर्निंग पर सक्रिय।

मेरी CRM_

कोष

अपने CRM सेटअप को सादे अंग्रेजी में बताएँ। OpsIQ एक प्रतिवर्ती योजना उत्पन्न करता है और इसे अनुमोदन पर लागू होता है।

CRM स्वास्थ्य

विपक्ष

स्व-जांच पृष्ठ: स्कीमा, एजेंट, मार्गों, एआई क्रियाओं और लाइव डेटा गिनती।

कैसे OpsIQ आपको सुरक्षित रखें

कार्य करने से पहले पूछिए

एआई प्रस्ताव अनुमोदन कतार पर जाते हैं। आप प्रत्येक को स्वीकार करते हैं, संपादित करते हैं या अस्वीकार करते हैं। आपके कहने के बिना कुछ भी नहीं होता है।

कभी भी अधिक नहीं लिखा

जब एआई एक परिवर्तन का सुझाव देता है, तो यह वर्तमान मूल्य और प्रस्तावित मूल्य दिखाता है। मानव प्रवेशित डेटा में सिद्धि संरक्षण होता है।

सब कुछ बदला जा सकता है

प्रत्येक AI एक्शन को जर्नल में दर्ज किया गया है। आप एक क्लिक के साथ किसी भी बदलाव को रद्द कर सकते हैं।

स्पष्ट

हर AI अनुशंसा अपने तर्क को दर्शाती है और डेटा स्रोतों का इस्तेमाल किया जाता है। कोई ब्लैक बॉक्स नहीं।

नया ब्रांड? यहाँ शुरू करें

1
Open AI CRM_

बाएं नेविगेशन में AI CRM पर क्लिक करें। कमांड सेंटर आपका वर्तमान राज्य दिखाता है।

2
CRM स्वास्थ्य की जाँच करें

स्कीमा, एजेंट और मार्गों की पुष्टि करने के लिए CRM हेल्थ को ओपन करना तैयार है।

3
संपर्क आयात

यदि कोई कनेक्टर सक्रिय है (यदि एक कनेक्टर सक्रिय हो)Shopify, WHMCS आदि), संपर्क स्वचालित रूप से आयात किए जाते हैं। अन्यथा, के माध्यम से आयात CSV या मैन्युअल रूप से निर्माण करना।

4
एक पाइपलाइन बनाएं

पाइपलाइन पर जाएं और चरणों के साथ अपनी पहली पाइप लाइन बनाएं (जैसे लीड, क्वालिफाइड, प्रस्तावना, बातचीत, वोन, लॉस्ट)।

5
अपना पहला सौदा जोड़ें

एक संपर्क से सौदा बनाएं, राशि और मंच निर्धारित करें, और डील कोच को आपको मार्गदर्शन दें।

क्या मुझे CRM का उपयोग करना होगा?+

नहीं। CRM वैकल्पिक है। OpsIQ CRM के बिना ट्रैकिंग + सपोर्ट + AI प्लेटफॉर्म के रूप में पूरी तरह से काम करता है। जब आप बिक्री और ग्राहक संबंधों को प्रबंधित करने के लिए तैयार होते हैं तो इसे सक्षम करें।

क्या CRM बिना कनेक्टर्स के काम कर सकता है?+

हाँ। आप संपर्क बना सकते हैं और मैन्युअल रूप से सौदों को जोड़ सकते हैं। कनेक्टर्स प्लेटफॉर्म डेटा (ऑर्डर, सदस्यता, टिकट) के साथ CRM को समृद्ध करते हैं लेकिन इसकी आवश्यकता नहीं है।

ट्रस्ट लेयर क्या है?+

ट्रस्ट लेयर सुरक्षा प्रणाली है जो एआई क्या कर सकता है को नियंत्रित करती है। Copilot मोड (डिफ़ॉल्ट): AI प्रस्ताव करता है, मानव स्वीकृत होता है। ऑटोपिलोट मोड (opt-in): AI स्वतः कम जोखिम वाले कार्यों पर कार्य करता है।

CRM

AI CRM होम स्क्रीन

कमांड सेंटर आपका दैनिक ब्रीफिंग है। यह देखने के लिए हर सुबह खुल गया कि क्या हुआ, किसको ध्यान देने की जरूरत है और आगे क्या करना है।

कमांड सेंटर
CRM कमांड सेंटरपूर्वानुमान / विन-दर/पाइपलाइन टॉगल्स, एक भारित फोरकास्ट केपीआई और प्रत्येक पंक्ति पर लगभग और विसंगति के साथ एआई प्रस्ताव कतार के साथ CRM घर।CRM कमांड सेंटरकार्यस्थलपूर्वानुमानविन दरपाइपलाइनForECAST · इस प्रश्न$74k87%A प्रस्तावों · कतार को मंजूरी दीसौदा बनाएँ · Acme $24kखरीदार के साथ चैट सेस्वीकृतिDismisNimbus → प्रस्तावनासकारात्मक उत्तर का पता लगायास्वीकृतिDismisलॉग कार्य · पीक का पालन करेंकोई गतिविधि नहीं 7 दिनस्वीकृतिDismis1TOGGLEपूर्वानुमान · विन दर · पाइपलाइन2AI PROPOSESसौदे, चरणों, कार्य3YOU DECIDEअनुमोदित या विसर्जित
वास्तविक कमान केंद्र: पूर्वानुमान, विन दर और पाइपलाइन के बीच स्विच करें, और एआई प्रस्ताव कतार को काम करते हैं, सौदों, मंच चालों और कार्यों को स्वीकार या खारिज कर सकते हैं।

कमांड सेंटर क्या दिखाता है

आज की संख्या

पाइपलाइन मूल्य, सौदों जीता / सबसे ऊपर, नई सुराग, सक्रिय सौदे और राजस्व प्रवृत्ति, अपने वर्तमान राज्य का एक स्नैपशॉट।

क्या OpsIQ

एआई-डिस्कवरी अंतर्दृष्टि: स्टालेड सौदे, ऑन-रिस्क खाते, नए अवसर, डेटा गुणवत्ता के मुद्दे और बाजार संकेतों।

क्या OpsIQ

एआई ने (ऑटोप्लॉट में) या प्रस्तावित (कॉपिलॉट में): चरण अग्रिमों, स्कोर अद्यतन, संपर्क संवर्धन और कार्य निर्माण को लिया है।

अनुमोदन की आवश्यकता

एआई प्रस्तावों के कतार आपके निर्णय की प्रतीक्षा करते हैं। प्रत्येक प्रस्तावित कार्रवाई, तर्क और सबूत दिखाता है।

अगली चाल

AI-ranked list of the 10 आज करने के लिए सबसे महत्वपूर्ण बातें: एक गर्म सौदा पर अनुवर्ती, एक जोखिम खाते की जांच करें, एक नया नेतृत्व अनुसंधान करें आदि।

सहायक स्थिति

एआई एजेंटों का स्वास्थ्य: कैप्चर, डेटा स्टीवर्ड, डील इंटेलिजेंस, डीएल कोच, एसडीआर, रिटेंशन। ग्रीन = रनिंग, एम्बर = को ध्यान देने की जरूरत है, लाल = त्रुटि।

परिणाम

ROI ट्रैकिंग: AI, टाइम सेव्ड, पूर्वानुमान की सटीकता और मैनुअल CRM कार्य की तुलना से प्रभावित सौदे।

मॉर्निंग ब्रीफिंग वर्कफ़्लो

1
आज की संख्या पढ़ें

क्या आप इस महीने की जाँच कर रहे हैं?

2
अनुमोदन कतार साफ़ करें

प्रत्येक एआई प्रस्ताव की समीक्षा करें। सुरक्षित कार्यों को लागू करना, जहां आवश्यक हो उसे संपादित करना, खराब सुझावों को अस्वीकार करना।

3
क्या देखें OpsIQ पाया

A-A-E-I-T-A, A-O-S-B-D-H-B, A, A. A., A -E-N-E, A (A)-Eff), A-E (A-M)-G-B)-A (A), A, E-F, A: A, C, A Language, A+, A) A-W-E., I-E -A, B-Ev, A/E-E)।

4
अगली चाल सूची काम करें

सबसे पहले से शुरू हुआ। एआई ने उन्हें उर्जा और संभावित प्रभाव से स्थान दिया है।

समय के बाद बंद करना

परिदृश्य:
आप एक सप्ताह के लिए दूर थे। जब तुम चले गए थे तो क्या हुआ?
क्या करना है:

कमांड सेंटर खोलें और चेक करें:1(d) "What?OpsIQ क्या किया गया था "आपकी अनुपस्थिति के दौरान सभी एआई कार्यों को दर्शाता है।2"Needs अनुमोदन" आपके समीक्षा के लिए इंतजार करने वाले प्रस्तावों को दर्शाता है।3(d) "What?OpsIQ पाया गया" तत्काल आइटम को उजागर करता है।4) ट्रेंड देखने के लिए डैशबोर्ड की तारीख सीमा को अपनी अनुपस्थिति अवधि में सेट करें।

CRM

संपर्क, कंपनियों और सौदों

CRM अपने व्यावसायिक संबंधों को चार ऑब्जेक्ट्स में व्यवस्थित करता है: संपर्क (लोग), कंपनियां (संगठन) , सौदे (रिवेन्यू अवसर), और कार्य (अनुपयोग के बाद)।

CRM ऑब्जेक्ट
CRM ऑब्जेक्टएक संपर्क रिकॉर्ड कंपनी, डील और टास्क ऑब्जेक्ट्स से जुड़ा हुआ है।CRM ऑब्जेक्टकार्यस्थलसंपर्कव्यक्ति · ईमेल · फोनकंपनीaccountsसौदाराजस्व अवसरकार्यअनुवर्ती कार्रवाई1OBJECTSसंपर्क, कंपनियों, सौदों2LINKEDएक जुड़े ग्राफ़3TASKSसंलग्न
चार मुख्य वस्तुएं (संपर्क, कंपनियां, सौदे और कार्य) एक जुड़े ग्राहक ग्राफ़ में जुड़े हुए हैं।

संपर्क

क्या है?

अपने CRM में एक व्यक्ति। वे ग्राहक, एक संभावना, साथी या लीड हो सकते हैं। संपर्कों में ईमेल, नाम, कंपनी, टैग, जीवन चक्र चरण और हॉटनेस स्कोर होता है।

संपर्क ढूंढना

नाम, ईमेल, कंपनी या टैग द्वारा खोज बार का उपयोग करें। फिल्टर का प्रयोग करें: lifecycle चरण, लीड स्कोर, स्रोत, देश, अंतिम गतिविधि तिथि, मालिक को सौंपा गया।

सम्पर्क करने का विवरण

अपनी पूरी प्रोफ़ाइल देखने के लिए एक संपर्क पर क्लिक करें: व्यक्तिगत जानकारी, कंपनी, सौदे, गतिविधियों, टिकट, चैट, वेबसाइट विज़िट, लीड स्कोर और एआई अंतर्दृष्टि।

हॉटनेस स्कोर

A0-100 व्यवहार संकेतों से गणना स्कोर: वेबसाइट विज़िट, ईमेल सगाई, चैट इंटरैक्शन, खरीद इतिहास और रीसेंसी।

कंपनी

... अधिक टिकट ...
संपर्क-कंपनी लिंकिंग

संपर्क ईमेल डोमेन या मैनुअल असाइनमेंट द्वारा कंपनियों से जुड़े हुए हैं। एक कंपनी के कई संपर्क हो सकते हैं।

सौदे

क्या है?

एक राजस्व अवसर। सौदे में एक शीर्षक, राशि, पाइपलाइन, मंच, जीत संभावना, करीबी तारीख, सौंपा मालिक और संबद्ध संपर्क / कंपनी है।

विन संभावना

सौदा जीतने का एक प्रतिशत मौका। अपने ऐतिहासिक जीत डेटा के आधार पर मैन्युअल रूप से या एआई द्वारा गणना की जाती है। भारित पूर्वानुमान ड्राइव करता है।

स्वास्थ्य

ग्रीन (स्वस्थ), एम्बर (रिस्क पर) या लाल (stalled). गतिविधि की पुनरावृत्ति, मंच अवधि और सगाई संकेतों के आधार पर.

कार्य

क्या है

किसी व्यक्ति को सौंपा गया अनुवर्ती कार्रवाई। कार्य का एक शीर्षक, नियत तारीख, प्राथमिकता, प्रकार (कॉल, ईमेल, बैठक, अन्य), और लिंक्ड संपर्क/डील है।

एआई-generated कार्य

एआई कुछ चीज़ों का पता लगाने के लिए स्वचालित रूप से कार्य करता है: एक स्टालेड सौदे पर अनुवर्ती, ऑन-रिस्क खाते का जवाब दें, एक नया लीड शोध करें।

गर्म बिक्री

परिदृश्य:
आप ब्रिटेन में सभी उच्च स्कोर संपर्कों को देखना चाहते हैं, जिन्हें हाल ही में संपर्क नहीं किया गया है।
क्या करना है:

संपर्क करने के लिए जाओ। फ़िल्टर द्वारा: लीड स्कोर > 80, देश = यूनाइटेड किंगडम, अंतिम गतिविधि > 7 दिन पहले। लीड स्कोर अवरोही द्वारा क्रमबद्ध करें। ये आपकी सबसे अधिक उपेक्षा की गई सुराग हैं, जो आउटरीच को प्राथमिकता देते हैं।

संपर्क से सौदा बनाना

परिदृश्य:
एक बातचीत के दौरान अपने उद्यम योजना में एक संपर्क ने सिर्फ रुचि व्यक्त की।
क्या करना है:

संपर्क प्रोफ़ाइल खोलें. "Create सौदा" पर क्लिक करें सौदा शीर्षक (जैसे, "Acme Corp - Enterprise Plan"), राशि, पाइपलाइन और मंच (उदाहरण के लिए, "Qualified") दर्ज करें। बंद तारीख निर्धारित करें और इसे स्वयं सौंप दें। डील कोच इस अवसर पर नज़र रखने शुरू हो जाएगा।

CRM

पाइपलाइन (आपका सौदा बोर्ड)

पाइपलाइन एक दृश्य बोर्ड है जहां सौदों को बाएं से दाएं चरणों के माध्यम से स्थानांतरित किया जाता है। सौदे को आगे बढ़ाने के लिए कार्ड खींचें और छोड़ें। प्रत्येक कार्ड सौदा राशि, जीत संभावना और स्वास्थ्य स्थिति दिखाता है।

पाइपलाइन
CRM पाइपलाइनओपन-डील्स, ओपन वैल्यू, भारित फोरकास्ट और अट्रिब्यूटेड डील स्टेट्स के साथ पाइपलाइन स्क्रीन, एक नया डायल बटन, एअर आई एप्रॉव कुई, और लीड / क्वालिफाईड / वॉन बोर्ड।पाइपलाइनकार्यस्थलओपन सौदों23मूल्य$128kभारित पूर्वानुमान$74kयोगदान सौदों12+ न्यू डीलकतार को मंजूरी2 समीक्षा करनालीडवोल्ट इंक$4kलूम$6kयोग्यनिम्बॉस$30kपीक$9kजीताकक्षा$48k1LIVE STATSओपन वैल्यू एंड भारित पूर्वानुमान2AI QUEUEप्रस्तावित सौदों को मंजूरी3BOARDमंच से सौदों खींचें
वास्तविक पाइपलाइन स्क्रीन: लाइव आँकड़े (ओपन वैल्यू, भारित पूर्वानुमान), प्रस्तावित सौदों के लिए एक एआई स्वीकृति कतार और ड्रैग-एंड-ड्रॉप बोर्ड।

पाइपलाइन बोर्ड का उपयोग करना

1
अपने सौदे देखें

पाइपलाइन सभी सक्रिय सौदों को स्तंभों (चरण) में व्यवस्थित कार्ड के रूप में दिखाता है। प्रत्येक कॉलम हेडर उस चरण में सौदे का कुल मूल्य दर्शाता है।

2
अग्रिम में खींचें

अगले चरण में एक कार्ड खींचें। जीत संभावना और तुरंत अद्यतन गिनती। यदि यह कदम विफल हो जाता है (वैलिडेशन त्रुटि), तो कार्ड अपनी मूल स्थिति पर वापस आ गया।

3
चेक कार्ड बैज

ग्रीन बैज = स्वस्थ (पुनः गतिविधि, ट्रैक पर)। एम्बर = जोखिम पर (नीचे गिराने, ध्यान देने की आवश्यकता है)। लाल = stalled (बहुत लंबे समय तक कोई गतिविधि नहीं)।

4
विवरण के लिए क्लिक करें

संपर्क, गतिविधियों, डील कोच संक्षिप्त और त्वरित कार्रवाई के साथ सौदा विस्तार पैनल खोलने के लिए एक कार्ड पर क्लिक करें।

अनुमोदन कतार

एआई प्रस्ताव पाइपलाइन पृष्ठ के शीर्ष पर अनुमोदन कतार में दिखाई देते हैं। प्रत्येक प्रस्ताव से पता चलता है कि एआई क्या करना चाहता है, क्यों और सबूत। आप कर सकते हैं:

स्वीकृति

प्रस्ताव को स्वीकार करना है। कार्रवाई ट्रस्ट लेयर के माध्यम से चलती है और जर्नल में दर्ज की गई है।

संपादित करें

प्रस्ताव को सुधारने से पहले संशोधित करें। उदाहरण के लिए, सुझाए गए चरण को बदलने या राशि समायोजित करने का प्रस्ताव बदल दें।

अस्वीकृति

प्रस्ताव को अस्वीकार करना। एआई भविष्य में बेहतर सुझाव देने के लिए अस्वीकृति से सीखती है।

विन संभावना समझाया

विन संभावना को मैन्युअल रूप से सेट किया जा सकता है या एआई द्वारा गणना की जा सकती है। जब एआई इसकी गणना करता है, तो यह आपके अपने बंद सौदों (won और हार) पर प्रशिक्षित एक मॉडल का उपयोग करता है। यदि आपके पास पर्याप्त ऐतिहासिक डेटा नहीं है, एआई स्टेज डिफ़ॉल्ट संभावना का उपयोग करती है। संभावित भारित पूर्वानुमान को ड्राइव करता है: एक ऐसा मॉडल जो आपके खुद के बंद सौदों पर प्रशिक्षित होता है। $10,000 सौदा करना 30% संभावना योगदान करती है $3,000"likely" पूर्वानुमान के लिए।

Won के लिए एक सौदा चल रहा है

परिदृश्य:
ग्राहक ने अनुबंध पर हस्ताक्षर किए और भुगतान किया।
क्या करना है:

सौदा कार्ड को "Won" चरण में खींचें। OpsIQ होगा:1) सौदा को बंद होने के रूप में चिह्नित करें।2() पूर्वानुमान अद्यतन करें।3) समयरेखा में एक "Won" गतिविधि जोड़ें।4यदि कॉन्फ़िगर किया गया है, तो एक वेबहुक घटना (crm.deal.won) को ट्रिगर करें।5) संपर्क जीवन चक्र चरण को "ग्राहक" में अद्यतन करें।

स्पॉटिंग अटक सौदों

परिदृश्य:
आप उन सौदों को ढूंढना चाहते हैं जो बहुत लंबे समय तक समान चरण में रहे हैं।
क्या करना है:

पाइपलाइन बोर्ड पर लाल (stalled) बैज की तलाश करें। इन सौदों में कॉन्फ़िगर किए गए रोटिंग थ्रेसहोल्ड से अधिक समय तक कोई गतिविधि नहीं थी (Ratein CRM कॉन्फ़िगरेशन > पाइपलाइन्स)। प्रत्येक स्टालेड सौदे पर क्लिक करके प्रतिक्रिया के लिए डील कोच की सिफारिश देखने के लिए।

क्या मैं कई पाइपलाइनों को कर सकता हूँ?+

हाँ। अतिरिक्त पाइपलाइन बनाने के लिए CRM विन्यास> पाइपलाइनों पर जाएं। आम उपयोग के मामले: नए व्यवसाय बनाम नवीनीकरण, या विभिन्न उत्पादों / सेवाओं के लिए अलग-अलग पाइप लाइन्स।

जब मैं "खोया" से सौदा करता हूं तो क्या होता है?+

सौदा बंद-ढला के रूप में चिह्नित है। आपको एक नुकसान का कारण माना जाएगा। सौदा सक्रिय बोर्ड से हटा दिया जाता है लेकिन इसे बंद सौदों फिल्टर में पाया जा सकता है। संपर्क CRM_ में रहता है।

CRM

डील कोचिंग

डील कोच प्रत्येक सौदे का विश्लेषण करता है और आपको स्वास्थ्य स्थिति, जोखिम संकेत, प्रमुख लोग, योग्यता जांचकर्ता, बैठक तैयारी और अगले कार्यों का सुझाव देता है। सब कुछ सोर्स किया गया है। कोच दिखाता है कि कौन से टिकट, चैट या गतिविधि प्रत्येक दावा से आती है।

डील कोच
डील कोचएक सौदा कार्ड लिस्टिंग AI-detected जोखिम संकेतों के साथ सबूत स्रोतों, एक AI सिफारिश और ड्राफ्ट ईमेल बटन के बगल में।डील कोचकार्यस्थलAcme Corp ·$24,000चरण: प्रस्ताव · 60% जीतजोखिम संकेतकोई जवाब नहीं 10 दिनचैंपियन चुप हो गयाप्रतियोगी चैट में उल्लेख किया गयास्रोत: टिकट #482 · चैट 6/12 ईमेल धागाएआई सिफारिश करता हैआर्थिक सुधारएक ROI के साथ खरीदार पुनर्निर्माणA, a, a, a, or a 7-दिन की नज़दीकी योजना।ईमेल का प्रारूप1SIGNALSक्यों एक सौदा पर्ची हो सकता है2SOURCEDप्रत्येक दावा साक्ष्य3कार्रवाईअगले कदम पर क्लिक करें
एक सौदा क्यों हो सकता है (प्रत्येक संकेत अपने स्रोत का हवाला देते हैं) और आप अगले कदम लेने के लिए हाथ।

क्या कोच आपको बताता है

स्वास्थ्य स्पष्टीकरण

क्यों सौदा स्वस्थ है, जोखिम पर, या stalled. विशिष्ट संकेत: चरण में दिन, अंतिम संपर्क तिथि, गतिविधि आवृत्ति, प्रतियोगी उल्लेख, आपत्ति पैटर्न.

संकेत

में वर्गीकृत: आपत्ति उठाया, प्रतियोगी उल्लेख, मूल्य निर्धारण चर्चा, समर्थन जोखिम संकेतक, नवीकरण / विस्तार संकेत। प्रत्येक संकेत अपने स्रोत (चैट ट्रांसक्रिप्ट, टिकट, ईमेल, गतिविधि) के लिए लिंक करता है।

चैंपियन और अवरोधक का नक्शा

जो सौदा (चैम्पियन) की मदद कर रहा है और कौन प्रतिरोधक (ब्लॉकर) है। बातचीत विश्लेषण और संपर्क भूमिकाओं के आधार पर।

योग्यता चेकलिस्ट

मेडीसीसी या बंट चेकलिस्ट ( विन्यास योग्य) दिखा रहा है कि कौन से योग्यता मानदंड मिले हैं और जो गायब हो रहे हैं। ग्रेड: ए, बी, सी, डी, या एफ

बैठक तैयारी

एक निर्धारित बैठक से पहले, कोच एक संक्षिप्त उत्पन्न करता है: एजेंडा, कवर करने के लिए कुंजी बिंदु, पूछने के लिए सवाल, पते पर जोखिम और तैयार करने के लिये सामग्री।

उत्तर दें और कॉल योजना

वर्तमान सौदा राज्य और हाल के बातचीत के आधार पर अगले संदेश या कॉल स्क्रिप्ट का सुझाव दिया।

साक्ष्य समयरेखा

प्रत्येक दावा कोच एक स्रोत के लिए लिंक बनाता है: टिकट संख्या, चैट ट्रांसक्रिप्ट आईडी, गतिविधि तिथि, या वेबसाइट यात्रा।

कैसे कोच का उपयोग करने के लिए

1
संक्षिप्त पढ़ें

किसी भी सौदे को खोलें और डील कोच अनुभाग में स्क्रॉल करें। स्वास्थ्य स्थिति और कुंजी संकेतों को पढ़ें।

2
योग्यता अंतराल

योग्यता चेकलिस्ट की जाँच करें। यदि "इकोनॉमिक बायर" गायब हो जाता है, तो बजट धारक को पहचानने और संलग्न करने की योजना बनाती है।

3
सुझाव पर अधिनियम

कोच अगले कार्यों को ठोस सुझाव देता है। एक कार्य बनाने के लिए क्लिक करें, एक ईमेल तैयार करना या बैठक शेड्यूल करना, सभी अनुमोदन कतार के माध्यम से मार्ग पर गए।

एक बड़ी बैठक के लिए तैयार करना

परिदृश्य:
आपके पास एक संभावित कल के साथ एक $50,000 सौदा है।
क्या करना है:

यह पता चलता है:1हाल ही में बातचीत के आधार पर कुंजी बात करने वाले बिंदु। ()2वे पिछले सप्ताह चैट में उठे ऑब्जेक्ट्स। ()3वे एक समर्थन टिकट में उल्लेख किया है।4प्रश्न पूछने के लिए उनके समयरेखा के बारे में।5जोखिम कारकों को सक्रिय रूप से संबोधित करने के लिए। एक केंद्रित, साक्ष्य आधारित एजेंडा तैयार करने के लिये इस संक्षिप्त का प्रयोग करें।

यह समझना कि सौदा जोखिम क्यों है

परिदृश्य:
पाइपलाइन एक सौदा आप सोचा पर एक लाल बिल्ला अच्छी तरह से जा रहा था पता चलता है।
क्या करना है:

सौदा पर क्लिक करें और डील कोच स्वास्थ्य स्पष्टीकरण को पढ़ें। यह कह सकता है: "यह सौदा प्रस्ताव के लिए चरण में रहा है"22 दिन (threshold: 14(d)) अंतिम संपर्क किया गया 11 दिन पहले, प्राथमिक संपर्क ने डेटा माइग्रेशन चिंताओं के बारे में समर्थन टिकट खोला 5 दिनो पहले (ticket #T-892(a)) सुझाव: प्रवास की चिंता को संबोधित करें और अनुवर्ती कॉल का शेड्यूल करें।

CRM

पूर्वानुमान और रिपोर्ट

बोर्ड-ग्रेड पूर्वानुमान एक निश्चित रेंज, सौदा स्तर परिवर्तन स्पष्टीकरण और सटीकता ट्रैकिंग के साथ ताकि आप अपनी संख्या साबित कर सकते हैं और समझा जा सकता है।

पूर्वानुमान
पूर्वानुमानCommit, Bestcase and Pipeline bands और एक सटीकता नोट के साथ एक त्रैमासिक पूर्वानुमान संख्या।पूर्वानुमानकार्यस्थलForECAST · यह क्वार्टर$312k87% लक्ष्य के लिएकमेटीसबसे अच्छा मामलापाइपलाइनA-weighted by सौदा स्वास्थ्य and इतिहास · सटीकता समय के साथ ट्रैक1श्रेणीपाइपलाइन के लिए प्रतिबद्ध2AI-WEIGHTEDस्वास्थ्य3PROVABLEसटीकता ट्रैक
एक नज़र में कमिट, बेस्ट-केस और पाइपलाइन, सौदा स्वास्थ्य द्वारा एआई भारित, सटीकता ट्रैक के साथ ताकि आप इसका बचाव कर सकें।

पूर्वानुमान श्रेणियां

कमिट

साथ सौदा 80% या उच्च जीत संभावना। ये आपकी सबसे अधिक संभावित जीत हैं। यह आपका न्यूनतम अपेक्षित राजस्व होना चाहिए।

एआई-वजन की संभावना

सभी खुले सौदों उनके एआई-कैल्कुलेट जीत संभावना से वजन। यह क्या आप बंद करेंगे की सबसे यथार्थवादी भविष्यवाणी है।

सबसे अच्छा मामला

पूर्ण मूल्य पर सभी खुले सौदे यह अधिकतम संभव राजस्व है अगर सब कुछ पूरी तरह से चला जाता है (यह शायद ही कभी करता है)।

गोपनीयता

An 80% संभावना बैंड यथार्थवादी रेंज दिखा रहा है। उदाहरण: "आप के बीच करीब होने की संभावना होगी $45,000 और $72,000 इस तिमाही।

क्या बदल गया है और क्यों

पूर्वानुमान में सप्ताह से अधिक सप्ताह का बदलाव शामिल है। $15,000 रिपोर्ट में बताया गया है कि किस सौदे ने परिवर्तन का कारण बना दिया: "Deal A अगले क्वार्टर पर फिसल गया (Dal A)$8,000), डील बी खो गया ($5,000), डील सी मूल्य में कम हो गया ($2,000)."

सटीकता ट्रैकिंग

पूर्वानुमान MAPE

मीन पूर्ण प्रतिशत त्रुटि: आपके पूर्वानुमानों को दूर करने के लिए ऐतिहासिक रूप से कैसे किया गया है। लोअर बेहतर है।15% इसका मतलब है कि आपके पूर्वानुमान आम तौर पर भीतर हैं15% वास्तविक परिणाम।

विन संभावना अंशांकन

ब्रियर स्कोर को मापने के तरीके अच्छी तरह से जीत संभावना वास्तविक परिणामों से मेल खाती है। यदि सौदों पर 70% संभावना वास्तव में जीत 70% समय की, अंशांकन अच्छा है।

साप्ताहिक स्नैपशॉट

OpsIQ हर सप्ताह अपने पूर्वानुमान का एक स्नैपशॉट (क्रोन के माध्यम से) कैप्चर करता है। समय के साथ, आप देख सकते हैं कि आपका पूर्वानुमान सटीकता कैसे बेहतर हो जाती है।

रोलअप और चेतावनी

प्रति-चरण रूपांतरण

प्रत्येक चरण से अगले तक कितने सौदे चल रहे हैं। 80% Qualified से प्रस्ताव करने के लिए पास लेकिन केवल 20% प्रस्ताव से बातचीत तक जाने के लिए, आपके प्रस्तावों को काम की आवश्यकता हो सकती है।

प्रति स्रोत जीत दर

कौन से लीड सूत्र सबसे अधिक जीत पैदा करते हैं। उच्च-विन-रेट स्रोतों में अधिक निवेश करें।

प्रति मालिक प्रदर्शन

प्रत्येक बिक्री टीम के सदस्य कैसे प्रदर्शन कर रहे हैं: सौदों जीतना, पाइपलाइन मूल्य, औसत सौदा आकार, जीत दर।

चेतावनी

सैंडबैगिंग (अवास्तविक रूप से कम संभावना), अतिसंगत (असत्यधिक उच्च) और प्रतिबद्ध जोखिम (उच्च संभाव्यता सौदों स्टाल संकेतों को दिखा)।

पूर्वानुमान ड्रॉप को समझना

परिदृश्य:
आपका त्रैमासिक पूर्वानुमान $180,000 to $155,000 पिछले सप्ताह से।
क्या करना है:

पूर्वानुमान पृष्ठ खोलें और चेक करें "व्हाट्स चेंज" रिपोर्ट से पता चलता है: "Acme Corp सौदा (ACMe Corp)$15,000 To go to लॉस्ट, प्रतियोगियों को चुना गया। बीटा इंक सौदा (bet Inc)$8,000 अगली तिमाही के लिए करीबी तारीख को आगे बढ़ाया गया। गामा एलएलसी (Gamma LLC) के साथ नया सौदा$3,000 इस सप्ताह को जोड़ा गया।$20,000 + $3,000 = -$17,000, $180K से $163K तक की गिरावट को समझाना (दूसरी सौदे पर संभावना समायोजन द्वारा समझाया गया शेष $ 8K)।

CRM

नए व्यवसाय का पता लगाना

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

आशा
आशाएआई-संस्थापक कंपनियों की एक सूची जिसमें फिट नोट्स, स्कोर और ड्राफ्ट आउटरीच बटन शामिल हैं।आशाकार्यस्थलएसडीआर एजेंट द्वारा पाया गया पहलूनॉर्थविंड लिमिटेडसास · 50 कर्मचारियों की भर्ती88मसौदा आउटरीचकोबाल्ट Mfgविनिर्माण 200 कर्मचारी74मसौदा आउटरीचमेसा खुदराईकामर्स · 30 कर्मचारी69मसौदा आउटरीचवेगा स्वास्थ्यहेल्थकेयर · 80 स्टाफ63मसौदा आउटरीच1FINDएआई स्रोत लक्ष्य खाते2स्कूरफिट और इरादा स्थान3DRAFTआपके लिए पहली बार लिखित
SDR एजेंट को लक्ष्य कंपनियों को ढूंढता है, उन्हें फिट पर अंकित करता है और आपकी समीक्षा के लिए पहली बार आउटरीच का ड्राफ्ट करता है।

एक बार सेटअप

1
अपने आदर्श ग्राहक का वर्णन करें

CRM विन्यास> संभावना पर जाएं। अपने आदर्श ग्राहक प्रोफ़ाइल (ICP): लक्ष्य उद्योग, कंपनी के आकार, नौकरी का शीर्षक, भौगोलिक फोकस, उत्पाद-मैच की शर्तें और न्यूनतम फिट स्कोर का वर्णन करें। उदाहरण: "B2B SaaS कंपनियों के साथ अपनी आदर्श ग्राहक प्रोफाइल (आईसीपी): लक्ष्य उद्योगों, कंपनी का आकार, जॉब टाइटल, भौगोलिक फ़ोकस, प्रोडक्ट-मैचे शब्द, और न्यूनतम उपयुक्त अंक।50-500 US/UK में कर्मचारी, डेवलपर उपकरण बेच रहे हैं, जिसमें बिक्री के VP या विकास प्रमुख प्राथमिक संपर्क के रूप में शामिल है।

2
लक्ष्य कंपनियों को जोड़ें

आप अपने आईसीपी के आधार पर एआई सुझाव कंपनियों को भी दे सकते हैं।

3
अनुसंधान परिणाम

एआई प्रत्येक कंपनी को उपलब्ध डेटा के साथ समृद्ध करता है: आकार, उद्योग, तकनीकी स्टैक, हालिया समाचार और स्पष्टीकरण के साथ फिट स्कोर।

4
बाहर पहुंच

अच्छी फिट कंपनियों के लिए, एआई व्यक्तिगत पहली-टच संदेश का ड्राफ्ट करता है। कतार में समीक्षा और अनुमोदन।

फिट स्कोरिंग

प्रत्येक संभावना एक हो जाता है0-100 पांच कारकों के आधार पर स्कोर:

ICP फिट

कंपनी अपने आदर्श ग्राहक प्रोफ़ाइल (उद्योग, आकार, स्थान) से कैसे अच्छी तरह मेल खाती है।

उर्जा संकेत

क्या उनके पास अब अपने उत्पाद की आवश्यकता है? नौकरी पोस्टिंग, तकनीकी परिवर्तन, प्रतियोगियों के बारे में शिकायतें।

प्रॉक्सी

कंपनी का आकार, वित्त पोषण चरण और राजस्व संकेतक बजट की उपलब्धता का सुझाव देते हैं।

उत्पाद मैच

आपका उत्पाद उद्योग और प्रौद्योगिकी के आधार पर अपने व्यवसाय के लिए कितना प्रासंगिक है।

समर्थन फिट

चाहे आप इस ग्राहक (टाइमज़ोन, भाषा, जटिलता) को प्रभावी ढंग से पूरा कर सकते हैं।

एक लक्ष्य कंपनी का शोध करना

परिदृश्य:
क्या आप मूल्यांकन करना चाहते हैं? acme.com ध्यान देने योग्य है।
क्या करना है:

जोड़ेंacme.com The AI रिटर्न: फिट स्कोर 78/100 (अच्छा फिट)। कारण: B2B SaaS, 120 कर्मचारियों, यूएस-आधारित, हाल ही में बिक्री के एक वीपी किराए पर लिया (urgency संकेत), प्रतियोगी एक्स (उत्पाद मैच) का उपयोग करता है। [email protected] (VP of Sales)। ड्राफ्टेड ओपनर अपने हाल के काम पर रखने और मूल्य निर्धारण पृष्ठ की यात्राओं का संदर्भ देता है।

CRM

स्वचालित अनुवर्ती अनुक्रम

अनुक्रम मल्टी-स्टेप फॉलो-अप को स्वचालित करते हैं: ईमेल, प्रतीक्षा, कार्य, कॉल और वेबहुक चरणों का मिश्रण जो प्रारंभिक भेजने की मंजूरी के बाद स्वचालित रूप से चल रहा है।

अनुक्रम
अनुवर्ती अनुक्रमएक क्षैतिज अनुक्रम प्रवाह: ईमेल, तीन दिन प्रतीक्षा करें, ईमेल, फिर एक कार्य, उत्तर का पता लगाने के साथ।अनुवर्ती अनुक्रमकार्यस्थलजब आप पहली बार भेजते हैं →ईमेलइंट्रोरु3 दिनईमेलअनुवर्तीकार्यकॉलकदम ईमेल, प्रतीक्षा, कार्य या वेबहुक हो सकता है। एक उत्तर ऑटो-स्टॉप अनुक्रम।1AUTOMATEमल्टी-स्टेप फॉलोअप2STEPSईमेल · प्रतीक्षा · कार्य · वेबहुक3YOU APPROVEपहला संदेश गेट है
स्वचालित मल्टी-स्टेप फॉलो-अप (email, प्रतीक्षा, ईमेल, कार्य) जो आप पहले को मंजूरी देते हैं और एक उत्तर स्वचालित रूप से बंद हो जाता है।

कैसे अनुक्रम काम करते हैं

1
एक अनुक्रम बनाएँ

चरणों को परिभाषित करें: ईमेल, प्रतीक्षा करें 3 दिन, ईमेल, प्रतीक्षा करें 5 दिन, कार्य (यदि कोई उत्तर नहीं है), ईमेल। प्रत्येक ईमेल चरण में एक टेम्पलेट होता है जिसे आप अनुकूलित कर सकते हैं।

2
Enroll संपर्क

अनुक्रम में संपर्क जोड़ें। एआई संभावित परिणामों से नामांकन का प्रस्ताव भी कर सकता है।

3
स्वचालित निष्पादन

यदि कोई संपर्क किसी भी बिंदु पर निर्भर करता है तो अनुक्रम स्वचालित रूप से गिर जाता है।

4
ट्रैक परिणाम

खुली दरों, उत्तर दर, रूपांतरण दर और प्रति कदम सदस्यता को देखते हैं। अपने अनुक्रम को अनुकूलित करने के लिए इसका उपयोग करें।

जवाब दें

जब कोई संपर्क जवाब देता है, तो एआई उत्तर को वर्गीकृत करता है:

सकारात्मक

इच्छुक, बात करना चाहता है। अनुक्रम ठहराव, अनुवर्ती कार्रवाई के लिए बनाया गया था।

वस्तु

चिंता है लेकिन अस्वीकार नहीं है। अनुक्रम ठहराव, आपत्ति विवरण के साथ बनाया गया कार्य।

सदस्यता

संदेश प्राप्त करना बंद करना चाहते हैं। संपर्क स्थायी रूप से दबाया जाता है।

अब नहीं

दिलचस्प लेकिन समय गलत है। अनुक्रम ठहराव, स्नूज़ कार्य बनाया गया।

गलत व्यक्ति

सही संपर्क नहीं। अनुक्रम बंद हो जाता है, समीक्षा के लिए ध्वजांकित किया गया है।

समर्थन

एक समर्थन सवाल, बिक्री प्रतिक्रिया नहीं। अनुक्रम ठहराव, टिकट बनाया गया।

विरोधी स्पैम सुरक्षा

ऑप्ट आउट हैंडलिंग

अनुरोधों को तुरंत सम्मानित किया जाता है और संपर्क भविष्य के सभी अनुक्रमों से दबाया जाता है।

दैनिक भेजें टोपी

कार्यक्षेत्र-स्तर दैनिक सीमा (डिफ़ॉल्ट: 1,000 ईमेल)। बड़े पैमाने पर भेजने से रोकता है जो स्पैम फिल्टर को ट्रिगर करता है।

प्रति संपर्क सीमा

प्रति दिन अधिकतम 1 संदेश। व्यक्तिगत लोगों को भारी करने से रोकता है।

ओवर-कैप हैंडलिंग

दैनिक टोपी से अधिक के कदम अगले दिन तक स्थगित हो जाते हैं। वे कभी नहीं छोड़े या छोड़ दिए गए हैं।

क्या होता है अगर किसी संपर्क में एक अनुक्रम के दौरान समर्थन टिकट खुलता है?+

क्रम स्वचालित रूप से ठहरा है। समर्थन अग्रिम में प्राथमिकता लेता है। अनुक्रम को मैन्युअल रूप से फिर से शुरू किया जा सकता है जब समर्थन मुद्दे का समाधान हो जाता है।

क्या मैं A/B परीक्षण अनुक्रम चरण चुन सकता हूँ?+

सीधे दृश्यों में नहीं, बल्कि आप विभिन्न संदेश के साथ दो अनुक्रम बना सकते हैं और उनके परिणामों की तुलना कर सकते हैं।

CRM

विकास उपकरण

CRM के तहत एक पृष्ठ जो ग्रोथ इंजन रखता है: आवर्ती राजस्व (MRR/ARR), उत्पाद सूची, लीड-कैप्चर फॉर्म, बुकिंग लिंक और लीड रूटिंग। यहां सब कुछ सीधे सीआरएम में लिखते हैं, इसलिए एक फ़ॉर्म जमा या बुक कॉल इतिहास के साथ संपर्क है, स्प्रेडशीट में पंक्ति नहीं।

क्या पृष्ठ पर रहता है

आय की वसूली

राजस्व

MRR और ARR ने अपने वास्तविक बिलिंग लेजर से प्रोजेक्ट किया। सदस्यता प्रति प्लेटफॉर्म भुगतान से समूहीकृत की जाती है, बिलिंग चक्र भुगतान अंतराल से घिरा होता है, और एक सदस्यता चूक होती है जब कोई भुगतान पिछले हो जाता है।1.5इसके चक्र के समय ग्राहकों को लिंक करनाCRMस्वचालित रूप से संपर्क करें जब लीडर अपने ईमेल को वहन करता है।

उत्पाद सूची

कैटलॉग

जो आप बेचते हैं उसके लिए सच्चाई का एक स्रोत। उद्धरण सूची से नाम और सूची मूल्य खींचते हैं, और स्वीकृत उद्धरण उत्पाद द्वारा राजस्व में रोल करते हैं। उत्पाद संग्रह, वे कभी नहीं हटाते हैं।

लीड-कैप्चर फॉर्म

कब्जा

प्रत्येक रूप को होस्ट किया गया पेज प्लस एक आईफ्रेम एम्बेड कोड प्राप्त होता है जो आपकी साइट के लिए संपर्क करता है। सबमिशन्स संपर्क बन जाते हैं, मालिक को एक अधिसूचना मिलती है और आपका रूटिंग नियम लीड असाइन करते हैं।

बुकिंग लिंक

शेडुलिंग

एक लिंक साझा करें, संभावनाओं को एक मुफ्त स्लॉट चुनने दें। स्लॉट आयोजक के कामकाजी घंटों, टाइमज़ोन और मौजूदा बैठकों का सम्मान करते हैं। एक बुकिंग बैठक बनाता है, संभावना को एक पुष्टिकरण ईमेल करता है और आयोजक को सूचित करता है।

लीड रूटिंग

रूटिंग

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

अपना पहला फॉर्म बनाएं

1
विकास उपकरण

CRM पर जाएं, फिर ग्रोथ टूल्स, फिर लीड-कैपर्चर फॉर्म सेक्शन।

2
इसे नाम दें और फ़ील्ड चुनें

एक नाम और एक अल्पविराम से अलग क्षेत्र सूची टाइप करें, उदाहरण के लिए नाम, ईमेल, फोन, संदेश। ईमेल हमेशा आवश्यक है।

3
साझा करें

इसे कहीं भी साझा करने के लिए होस्ट किए गए लिंक की प्रतिलिपि बनाएँ, या एम्बेड कोड कॉपी करें और इसे अपनी वेबसाइट के किसी भी पृष्ठ पर पेस्ट करें।

4
देखो लीड्स पहुंचना

हर सबमिशन एक फॉर्म के साथ CRM संपर्क है। सबमिट गतिविधि, मालिक की अधिसूचना और स्वचालित रूटिंग।

💡
सार्वजनिक कैप्चर पृष्ठ अपने कार्यक्षेत्र के स्वयं के पते का उपयोग करते हैं। क्लाउड वर्कस्पेस उनके असाइन किए गए सबडोमेन (कंपनी) का उपयोग करता है।opsiq इसलिए लिंक हमेशा सही डेटा को हल करता है।

अंतर्निहित सुरक्षा

बोट्स सफलता देखते हैं, आपको कुछ नहीं देखा जा सकता है

एक छिपे हुए हनीपॉट क्षेत्र चुपचाप बॉट सबमिशन को छोड़ देता है।

सीमित

प्रति घंटे दस प्रस्तुतियाँ IP फॉर्म और बुकिंग के दौरान पते।

ईमानदार रहना

एक फॉर्म जमा करना विपणन सहमति नहीं देता है। केवल एक स्पष्ट सहमति चेकबॉक्स करता है।

कोई डबल बुकिंग नहीं

बुकिंग के समय एक ताजा उपलब्धता जांच के खिलाफ एक स्लॉट को फिर से मान्य किया जाता है।

आवर्ती राजस्व डेटा कहाँ से आता है?+

उसी वाणिज्य के नेतृत्व में से आपका बिक्री पृष्ठ बिलिंग कनेक्टर्स द्वारा खिलाया जाता है। नए प्लेटफॉर्म को जोड़ने के बाद बिलिंग से फिर से सिंक का उपयोग करें।

क्या मैं बिना किसी वेबसाइट के फॉर्म का उपयोग कर सकता हूँ?+

हाँ, हर रूप में आपके अपने पते पर एक होस्ट किया गया पेज है जो स्टैंडअलोन काम करता है, साथ ही बिना JavaScript_

CRM

संदेश हब (SMS और WhatsApp)

एक कनेक्टर, बीस प्रवेश द्वार तक। अपने द्वारा उपयोग किए जाने वाले एसएमएस और व्हाट्सएप प्रदाताओं को कनेक्ट करें, डिफ़ॉल्ट रूप से चिह्नित करें और किसी संपर्क को टेक्स्ट करते समय उनमें से किसी को चुनें। किसी भी गेटवे से संपर्क करने से पहले CRM द्वारा सहमति की जांच की जाती है।

इसे सेट करें

1
कनेक्टर को सक्षम करें

कनेक्टर्स पेज पर खुला मैसेजिंग हब (SMS और WhatsApp) और इसे सक्षम बनाता है।

2
एक प्रदाता जोड़ें

उसी दराज में, या अंदरCRMग्रोथ टूल्स, ड्रॉपडाउन (ट्विलिओ, वोनेज, टर्मी, मेटा व्हाट्सएप क्लाउड, इन्फोबाइप और अधिक) से एक प्रवेश द्वार चुनें, इसे पेस्ट करेंAPIक्रेडेंशियल और कनेक्ट। आप कई जोड़ सकते हैं, जिनमें एक ही गेटवे दो बार अलग-अलग खातों के साथ शामिल है।

3
तार the webhook

प्रत्येक प्रदाता प्रविष्टि अपने स्वयं के वेबहुक को दिखाती है URL एक प्रतिलिपि बटन के साथ। इसे वितरण की स्थिति प्राप्त करने और वापस में जवाब देने के लिए गेटवे की डिलीवरी-रिपोर्ट और इनबाउंड-मेसेज सेटिंग्स में पेस्ट करें OpsIQ.

4
संपर्क से भेजें

एक संपर्क खोलें और एसएमएस या व्हाट्सएप बटन का उपयोग करें। यदि किसी प्रदाता से अधिक चैनल का समर्थन करता है, तो एक चयनकर्ता आपको चुनने देता है; अन्यथा डिफ़ॉल्ट का उपयोग किया जाता है।

Consent पहले आता है

केवल सहमति देना

अज्ञात सहमति नहीं है। एक भेजने से इनकार कर दिया जब तक एसएमएस स्वीकृति स्पष्ट रूप से दी जाती है। व्हाट्सएप उसी सहमति की सवारी करता है।

हमेशा मत से संपर्क करें जीत

हर चैनल में एक दर्जन से अधिक ध्वज ब्लॉक होते हैं, चाहे वह सेट हो।

दमन सम्मानित

दमन सूची पर संपर्क कभी संदेश नहीं दिए जाते हैं।

Refusals उनके कारण का नाम

एक अवरुद्ध भेज आपको वास्तव में क्यों बताता है, इसलिए आप अनुमान लगाने के बजाय डेटा को ठीक कर सकते हैं।

डेवलपर्स के लिए: वेबहुक अनुबंध

URL आकृति

https://your-address/opsiq/cron/messaging_webhook.php?sk=SITE_KEY&e=ENTRY_ID&t=TOKEN. जब प्रदाता जुड़ा हुआ है और कभी संपादित पर घूमता है तो प्रति प्रविष्टि टोकन को छोटा किया जाता है।

प्रारूपों को समझा

Twilio form posts (MessageStatus/MessageSid for delivery, Body/From for inbound), Meta WhatsApp Cloud JSON (statuses and messages, including the hub.challenge subscription handshake), and a generic JSON shape: {"type":"delivery","message_id":"...","status":"delivered"} or {"type":"inbound","from":"+234...","body":"..."}.

प्रभाव

डिलिवरी रिपोर्ट आउटरीच लेजर पंक्ति को मुद्रित करती है जो प्रदाता संदेश आईडी को वितरित या बाउंस के रूप में रखती है। इनबाउंड संदेशों का मिलान वर्कस्पेस के अंदर फोन नंबर से संपर्क होता है, एक संदेश के रूप मे भूमि होती है।

विफलता मोड

गलतफहमी से पैसे कमाने का उत्तर 403. अज्ञात पेलोड की गिनती और अनदेखा कर दी गई है, कभी घातक नहीं, इसलिए एक गलतफ़िगर गेटवे एंडपॉइंट को तोड़ नहीं सकता।

कौन से प्रवेश द्वार समर्थित हैं?+

Twilio, Vonage, Plivo, MessageBird, Sinch, Infobip, Telnyx, clicksend, Termii, अफ्रीका की टॉकिंग, BulkSMS, Textlocal, MetaCloud Cloud, 360dialog, SMSAPI, Gupshup, Kaleyra, D7 नेटवर्क, हबटेल और किसी अन्य चीज़ के लिए एक कस्टम https वेबहुक।

क्या क्रेडेंशियल सुरक्षित हैं?+

क्रेडेंशियल को कनेक्टर सेटिंग्स में एन्क्रिप्ट किया जाता है और कभी भी ब्राउज़र पर वापस नहीं जा सकता। एक खाली गुप्त के साथ प्रवेश संपादित करने से संग्रहीत रहता है।

क्या एआई संदेश भेज सकता है?+

हाँ, पंजीकृत कार्यों के माध्यम से जिन्हें पुष्टि की आवश्यकता होती है और उसी सहमति गेट को चलाने के लिए एआई कनेक्टेड प्रदाताओं को सूचीबद्ध कर सकता है जो कि उपलब्ध है।

CRM

ग्राहकों को रखने और बढ़ाने

लाइफसाइकल प्रबंधन आपको मौजूदा राजस्व की रक्षा में मदद करता है। प्रत्येक खाते को एक churn जोखिम स्कोर, स्वास्थ्य स्कोर, विस्तार स्कोर और अनुशंसित सफलता प्लेबुक मिलती है।

लाइफसाइकल
लाइफसाइकल बोर्डप्रत्येक खाता कार्ड पर स्वास्थ्य सलाखों के साथ एक ग्राहक-जीवन चक्र बोर्ड (ऑनबोर्डिंग, सक्रिय, ऑन-रिस्क, नवीकरण)।लाइफसाइकलकार्यस्थलऑनबोर्डिंगअगमस्वास्थ्य 40सक्रियग्लोबस्वास्थ्य 88इंटिटेकस्वास्थ्य 76एटी- रिस्कसोलेरस्वास्थ्य 28नवीकरणउम्ब्रा12d में नवीनीकृतविस्तार +$8k1STAGESनवीकरण के लिए ऑनबोर्डिंग2SCOREDस्वास्थ्य और विस्तार3PLAYBOOKअगले कदम की सिफारिश
ग्राहक ऑनबोर्डिंग, सक्रिय, ऑन-रिस्क और नवीनीकरण के माध्यम से चलते हैं, प्रत्येक ने एक प्लेबुक के साथ स्वास्थ्य और विस्तार के लिए स्कोर किया।

Lifecycle बोर्ड

स्टेज का नक्शा

विजुअल बोर्ड दिखा रहा है कि हर खाता खड़ा है: लीड, प्रॉस्पेक्ट, अवसर, ग्राहक, विस्तार, नवीकरण, जोखिम पर, चुर्न।

At-risk account

उच्च churn जोखिम के साथ ध्वजांकित लेखा। प्रत्येक शीर्ष ड्राइवर (स्पाइक, निष्क्रियता, भुगतान विफलता) और एक अनुशंसित बचाने का खेल दिखाता है।

विस्तार अवसर

लेखा जो अधिक खरीदने के लिए तत्परता के संकेत दिखाते हैं: उच्च उपयोग, सुविधा अनुरोध, योजना पूछताछ।

नवीकरण

आगामी नवीनीकरण तिथियों के साथ लेखा। जोखिम स्तर और राजस्व मूल्य द्वारा क्रमबद्ध।

कैसे OpsIQ churn जोखिम का पता लगाता है

चूर्ण जोखिम की गणना एकाधिक संकेतों से होती है जो एक साथ जुड़े हुए हैं:

CRM संकेत

स्वास्थ्य, निष्क्रियता, हाल के नुकसान, सगाई को कम करने का सौदा।

समर्थन संकेत

ओपन टिकट गणना, टिकट वॉल्यूम स्पाइक्स, नकारात्मक भावना, escalation।

उत्पाद सगाई

लॉगिन आवृत्ति, सुविधा उपयोग, पृष्ठ विज़िट, API कॉल

बिलिंग संकेत

विफल भुगतान, ओवरड्यू चालान, डाउनग्रेड अनुरोध, रद्दीकरण पृष्ठ यात्राएं।

प्लेबुक

खेल सहेजें

ऑन-रिस्क खातों के लिए: सक्रिय रूप से बाहर पहुंचें, चिंता को संबोधित करें, समर्थन प्रदान करें, यदि आवश्यक हो तो एस्केलेटर को अलग करें।

नवीकरण

आगामी नवीनीकरण के लिए: संतुष्टि की पुष्टि, समीक्षा उपयोग, वर्तमान मूल्य, यदि उचित हो तो प्रोत्साहन प्रदान करें।

विस्तार खेल

तैयार करने वाले खातों के लिए: अपग्रेड विकल्प प्रस्तुत करना, सफलता की कहानियों को साझा करना, ROI प्रदर्शित करना।

दत्तकता खेल

खातों को कम करने के लिए: प्रशिक्षण प्रदान करें, सर्वोत्तम प्रथाओं को साझा करें, उन विशेषताओं को सक्षम करें जिनका उपयोग वे नहीं कर रहे हैं।

इससे पहले कि ऐसा होता है तो churn खोलना

परिदृश्य:
एक ग्राहक जो आम तौर पर दैनिक में लॉग इन करता है, उसके लिए लॉग इन नहीं किया गया है 2 सप्ताह, और वे खोला 3 इस महीने के टिकटों का समर्थन करें।
क्या करना है:

लाइफसाइकल बोर्ड ने इस खाते को ड्राइवरों के साथ "एट रिस्क" के रूप में ध्वजांकित किया: निष्क्रियता (Inactiveity)14 पिछले लॉगिन के बाद से दिन और समर्थन स्पाइक ()3x सामान्य टिकट की मात्रा)। अनुशंसित नाटक: सक्रिय आउटरीच कॉल को यह समझने के लिए कि क्या हो रहा है। क्या उत्पाद मुद्दा है? क्या वे प्रतियोगियों का मूल्यांकन कर रहे हैं? प्रारंभिक हस्तक्षेप खाते को बचा सकता है।

CRM

अपने डेटा को साफ रखें

डेटा स्टेवर्ड एजेंट स्वचालित रूप से डेटा गुणवत्ता के मुद्दों को ढूंढता है और ठीक करता है: डुप्लिकेट, लापता फ़ील्ड, असंगति और कहानी रिकॉर्ड।

डेटा स्ट्वर्ड
डेटा स्ट्वर्डडेटा-गुणवत्ता के मुद्दों (डुप्लिकेट, लापता, कहानी, प्रारूप) की एक सूची प्रत्येक एक क्लिक फिक्स कार्रवाई के साथ।डेटा स्ट्वर्डकार्यस्थलडेटा स्टेवर्ड एजेंट को मिलाडुप्लिकेट[email protected] और [email protected]मर्जमिसिंग12 संपर्कों में कोई कंपनी नहीं हैएनरिककहानी38 के लिए untouched सौदों 90+ दिनसमीक्षाप्रारूपफ़ोन नंबर 4 प्रारूपसभी को ठीक करें1CATCHESड्युप्स, अंतराल, stale2EXPLAINSक्यों यह प्रत्येक ध्वजा3FIXESआपकी स्वीकृति पर
स्टीवर्ड एजेंट आपके CRM स्वच्छ रखता है, डुप्लिकेट, अंतराल, कहानी रिकॉर्ड और खराब प्रारूपों को ढूंढता है, जो अनुमोदन पर फिक्सिंग करता है।

क्या यह पकड़ता है

डुप्लिकेट संपर्क

उसी व्यक्ति के लिए एकाधिक रिकॉर्ड (जैसे,) [email protected] और [email protected])। स्टेवर्ड उन्हें विलय करने का प्रस्ताव रखता है।

डेटा लापता

बिना ईमेल के संपर्क, बिना किसी राशि के सौदों, डोमेन के बिना कंपनियों को सुझाव देता है। उपलब्ध स्रोतों से भरने का सुझाव देता हैं।

अनलिंक्ड रिकॉर्ड

बिना किसी संबद्ध संपर्क के सौदे, कंपनियों के बिना संपर्क। ईमेल डोमेन और संदर्भ के आधार पर लिंक करने का प्रस्ताव रखता है।

असंवैधानिकता

"Won" चरण में एक सौदा 20% संभावना के साथ, किसी सौदे के साथ एक संपर्क चिह्नित "ग्राहक" नहीं है, जो कि बेजोड़ उद्योग वाली कंपनी है।

क्रोन स्टेज

ऐसे सौदे जो बहुत लंबे या संपर्कों के लिए समान चरण में हैं, जिनका जीवनचक्र चरण उनकी गतिविधि से मेल नहीं खाता है।

कैसे उपयोग करें

1
स्ट्वर्ड लिस्ट खोलें

CRM पर जाएं और डेटा स्ट्वर्ड सेक्शन (या इसे सीआरएम हेल्थ से खोल दें) ढूंढें।

2
सुरक्षित फिक्स को मंजूरी दें

ग्रीन आइटम सुरक्षित हैं: स्पष्ट डुप्लिकेट, स्पष्ट लापता डेटा। इन थोक में अनुमोदित।

3
बाकी की समीक्षा करें

एम्बर आइटम को आपके फैसले की आवश्यकता होती है: मामूली मतभेदों, प्रस्तावित चरण परिवर्तन, कंपनी लिंकिंग के साथ संभावित डुप्लिकेट। प्रत्येक एक की समीक्षा करें।

डुप्लिकेट संपर्कों की सफाई

परिदृश्य:
स्टीवर्ड ने पाया "जॉन स्मिथ (Jan स्मिथ)[email protected]"J. Smith" और "J स्मिथ (J.S.)[email protected]": एक ही ईमेल, अलग-अलग प्रदर्शन नाम।
क्या करना है:

स्टीवर्ड विलय का प्रस्ताव करता है: रिकॉर्ड को अधिक गतिविधि के साथ रखें, अन्य रिकॉर्ड सौदों और गतिविधियों को मर्ज करें। प्रस्ताव की समीक्षा करें, यदि आवश्यक हो तो जीवित प्रदर्शन नाम को समायोजित करें, और स्वीकृति दें। दोनों रिकॉर्ड्स का इतिहास विलय संपर्क में संरक्षित है।

CRM

मेरी CRM_

बिल्ड माय सीआरएम आपको अपने CRM सेटअप को सादे अंग्रेजी में बताने देता है। OpsIQ एक मान्य, प्रतिवर्ती योजना उत्पन्न करता है और इसे अनुमोदन पर लागू होता है। कोई कोडिंग नहीं, कोई मैनुअल कॉन्फ़िगरेशन क्लिक नहीं है।

मेरी CRM_
मेरी CRM_बाएं पर एक प्राकृतिक भाषा का विवरण, चरणों, क्षेत्रों और क्षेत्रों की एक उत्पन्न CRM योजना बनाने के लिए।मेरी CRM_कार्यस्थलअपने व्यवसाय का वर्णन करेंहम एक वेब डिज़ाइन एजेंसी हैंमासिक अनुचर बेच रहा है औरएक परियोजना के लिए छोटेकारोबारमेरी CRM_जनरेट योजनास्टेज: लीड → रिटेनरडील प्रकार: रिटेनर, परियोजनाफील्ड: मासिक मूल्यसेगमेंट: SMB, एजेंसीअनुक्रम: ऑनबोर्डिंगलागू करना1DESCRIBEमें सादा अंग्रेजी2AI PLANSस्टेज, फील्ड्स, सेगमेंट3APPROVEलागू नहीं कोडिंग
अपने व्यवसाय को सादे अंग्रेजी में बताएं; OpsIQ पूरे CRM (चरणों, क्षेत्रों, खंडों) का ड्राफ्ट करता है और इसे अनुमोदन पर लागू होता है।

यह कैसे काम करता है

1
आप क्या चाहते हैं?

अपने CRM सेटअप का एक सादे अंग्रेजी विवरण टाइप करें। उदाहरण: "चरणों के साथ नवीनीकरण पाइपलाइन बनाएं: आगामी, संपर्कित, बातचीत करने, नवीनीकृत, लॉस्ट। स्कोर तब अधिक होता है जब वे दो बार मूल्य निर्धारण देखते हैं।

2
योजना की समीक्षा

OpsIQ यह क्या होगा इसका पूर्वावलोकन दिखाता है: पाइपलाइन, चरणों, मंच प्रायः संभावितताएं, नियमों का पता लगाना, जीवन चक्र नियम। प्रत्येक आइटम की समीक्षा करें।

3
आवेदन

क्लिक करें योजना को निष्पादित करने के लिए लागू करें। प्रत्येक परिवर्तन को एक बंडल के रूप में दर्ज किया जाता है जिसे आप किसी क्लिक पर नहीं कर सकते हैं।

4
अगर जरूरत हो तो वापस रोल करें

यदि कुछ सही नहीं है, तो पूरे बंडल को वापस करने के लिए Undo क्लिक करें। आपका CRM अपने पिछले राज्य में लौटता है।

आप क्या बना सकते हैं

पाइपलाइन और चरणों

कस्टम चरणों, डिफ़ॉल्ट संभावना और घूमने की थ्रेसहोल्ड के साथ नामित पाइपलाइन बनाएं।

स्कोरिंग नियम

व्यवहार के आधार पर लीड स्कोर को बढ़ावा देना: "जब वे मूल्य निर्धारण देखते हैं तो स्कोर उच्च" "जब उन्होंने कैरियर पेज पर जाते हैं तो कम स्कोर करें।

लाइफसाइकल नियम

स्वचालित रूप से जीवन चक्र चरणों को आगे बढ़ाने: "Wow to SQL जब वे डेमो का अनुरोध करते हैं," सौदा जीतने पर ग्राहक के लिए चलिए।

कस्टम फ़ील्ड

संपर्क, सौदों या कंपनियों के लिए फ़ील्ड जोड़ें: पाठ, संख्या, तारीख, चयन, चेकबॉक्स, URL, ईमेल।

योग्यता चेकलिस्ट

मेडिक्लेम या बंट चेकलिस्ट को डील कोच ग्रेड के खिलाफ परिभाषित करें।

एक नवीकरण पाइपलाइन की स्थापना

परिदृश्य:
आप SaaS सदस्यता का प्रबंधन करते हैं और नवीकरण के लिए एक पाइपलाइन की आवश्यकता होती है।
क्या करना है:

प्रकार: "एक नवीकरण पाइपलाइन बनाएँ। चरणों: 90 बाहर (दिन)10%), 60 बाहर (दिन)25%), संपर्क (40%), बातचीत (ingotiating)60%), नवीनीकृत (100%), Churned ()0%(d))। 14 दिन। OpsIQ योजना उत्पन्न करता है, आप इसकी समीक्षा करते हैं और लागू करें क्लिक करें। पाइपलाइन तुरंत अपने पाइपलाइन पृष्ठ पर दिखाई देती है।

क्या मैं कुछ ऐसा वर्णन करता हूं जो संभव नहीं है?+

निर्माता केवल कार्यों को उत्पन्न करता है, यह जानता है कि कैसे सत्यापित किया जाए। यदि आप अपनी क्षमताओं के बाहर कुछ पूछते हैं (उदाहरण के लिए, "मेरे कस्टम के साथ एकीकृत करें) API"), यह अनुरोध को खारिज कर देगा और बताता है कि वह इसके बजाय क्या कर सकता है।

क्या मैं बदलाव को नहीं कर सकता?+

हाँ। हर बिल्ड माई सीआरएम एक्शन को एक प्रतिवर्ती बंडल के रूप में कैप्चर किया जाता है। CRM हेल्थ> सभी बंडलों को देखने और उनमें से किसी को भी करने के लिए इतिहास बदलें।

CRM

अपनी स्थापना करना CRM आपका रास्ता

टीमों के लिए मैनुअल CRM विन्यास जो टाइपिंग पर क्लिक करना पसंद करते हैं। सभी सेटिंग्स जो बिल्ड माय सीआरएम बना सकते हैं, पारंपरिक रूप फ़ील्ड के रूप में भी उपलब्ध हैं।

पाइपलाइन और चरणों

पाइपलाइनों और चरणों को बनाने, नाम बदलने, पुनः व्यवस्थित करने और हटाने के लिए। प्रति चरण डिफ़ॉल्ट जीत संभावना निर्धारित करें। एक सौदा "stalled" चिह्नित होने से पहले गतिविधि के बिना घूर्णन थ्रेसहोल्ड सेट करें।

कस्टम फ़ील्ड

सौदों, संपर्कों या कंपनियों के लिए फ़ील्ड जोड़ें। फील्ड प्रकार: पाठ, संख्या, दिनांक, चयन (पूर्व निर्धारित विकल्पों के साथ ड्रॉपडाउन), चेकबॉक्स, URL कस्टम फ़ील्ड ऑब्जेक्ट प्रोफाइल पर और फिल्टर में दिखाई देते हैं।

योग्यता चेकलिस्ट

चेकलिस्ट को परिभाषित करें डील कोच सौदों का मूल्यांकन करने के लिए उपयोग करता है। मेडडीआईसीसी, बंट या मानदंडों का एक कस्टम सेट चुनें। प्रत्येक आइटम को आवश्यक या वैकल्पिक रूप से चिह्नित किया जा सकता है।

Lifecycle

स्वचालित चरण संक्रमण को परिभाषित करें: जब कोई संपर्क किसी शर्त से मिलता है (विवरण मूल्य निर्धारण, एक फॉर्म जमा करता है, खरीदता है), तो उनका जीवन चक्र मंच स्वचालित रूप से आगे बढ़ता है।

लीड स्कोरिंग नियम

व्यवहार के आधार पर लीड स्कोर को बूस्ट या कम करें। उदाहरण: "देखे गए मूल्य निर्धारण पृष्ठ = +15 अंक, "Downloaded whitepaper = +10"Visited Careers page = -5अंक "न्यूनतम गणना सेट की जा सकती है (उदाहरण के लिए, "कम से कम मूल्य निर्धारण को देखना चाहिए) 2 समय).

सहेजा गया दृष्टिकोण

संपर्क, सौदों या कंपनियों के लिए फ़िल्टर + मिश्रित संयोजन का नाम बनाया गया है। अपनी टीम के साथ साझा विचार। प्रति ऑब्जेक्ट प्रकार डिफ़ॉल्ट दृश्य सेट करें।

एक प्रमुख स्कोरिंग नियम जोड़ना

परिदृश्य:
आप उन संपर्कों को चाहते हैं जो आपके मूल्य निर्धारण पृष्ठ को दो बार या अधिक देखने के लिए एक उच्च स्कोर प्राप्त करते हैं।
क्या करना है:

CRM कॉन्फ़िगरेशन> लीड स्कोरिंग नियमों पर जाएं। क्लिक करें नियम जोड़ें सेट: इवेंट = "पेजव्यू", URL = "/pricing", न्यूनतम गणना =2, स्कोर बूस्ट = +20 अगली बार स्कोरर रन, इस नियम से मेल खाती संपर्क + प्राप्त होगा20 उनके लीड स्कोर के लिए।

CRM

CRM स्वास्थ्य जांच

CRM हेल्थ एक स्व-व्यावसायिक पृष्ठ है जो सत्यापित करता है कि आपका सीआरएम सही ढंग से स्थापित हो रहा है और आसानी से चल रहा है।

स्वास्थ्य जांच
CRM स्वास्थ्य जांचएक स्वास्थ्य स्कोर की अंगूठी 92 पासिंग और चेतावनी कॉन्फ़िगरेशन चेक की एक चेकलिस्ट के बगल में।CRM स्वास्थ्य जांचकार्यस्थल92स्वास्थ्यपाइपलाइन चरणों का विन्यासकनेक्टर लिंक्ड और आयातएआई एजेंट सक्षम!कोई सक्रिय अनुवर्ती अनुक्रम!12 कंपनी लापता संपर्क1AUDITअपने सेटअप को सत्यापित करें2FLAGSक्या याद है3स्कूरएक समग्र संख्या
एक पृष्ठ CRM ऑडिट: समग्र स्वास्थ्य स्कोर प्लस जो सही सेट अप है और अभी भी ध्यान देने की जरूरत है की एक चेकलिस्ट।

यह क्या है

शमा

डेटाबेस तालिकाओं मौजूद हैं और सही स्तंभों है। यदि एक प्रवास याद किया गया था, तो CRM स्वास्थ्य इसे ध्वजांकित करेगा।

एआई एजेंट

सभी CRM एजेंट (कैप्चर, डेटा स्टीवर्ड, डील इंटेलिजेंस आदि) पंजीकृत और स्वस्थ हैं। ग्रीन = रनिंग, एम्बर = को ध्यान देने की जरूरत है, लाल = त्रुटि।

मार्ग

CRM APIमार्गों और AJAX समापन बिंदुओं को पंजीकृत और कॉल करने योग्य हैं।

एआई क्रिया

CRM एक्शन कैटलॉग एक्शन रजिस्ट्री में पंजीकृत है। यदि कार्रवाई गायब हो जाती है, तो उन्हें फिर से पंजीकृत करके सीआरएम हेल्थ सेल्फ-हेल्स।

लाइव डेटा गणना

कुल संपर्क, कंपनियां, सौदे, कार्य, गतिविधियों और घटनाओं। आयात और चल रहे डेटा कैप्चर की पुष्टि के लिए उपयोगी।

सेटअप चेक के बाद

पहली बार CRM सेटअप के बाद, CRM हेल्थ को खोलें और सत्यापित करें कि सभी चेक हरे हैं। यदि कोई एम्बर या रेड है तो किसी डायग्नोस्टिक स्पष्टीकरण के लिए आइटम पर क्लिक करें और फिक्स का सुझाव दिया जाए।

मुझे कितनी बार CRM स्वास्थ्य की जांच करनी चाहिए?+

प्रारंभिक सेटअप के बाद, प्रमुख अद्यतनों के बाद और जब भी CRM व्यवहार गलत हो रहा है। CRM हेल्थ सेल्फ-हेल्स कई मुद्दों (जैसे लापता एक्शन पंजीकरण) को पेज खोलने से ही।

CRM

डेवलपर्स के लिए CRM कनेक्शन

CRM एक पूर्ण सार्वजनिक REST API और आउटबाउंड वेबहुक को उजागर करता है ताकि यह मैनुअल निर्यात के बिना किसी भी स्टैक में फिट हो।

API समापन बिंदु

प्रमाणीकरण

API कुंजी (Authorization: बियरर opq_...) के साथ गुंजाइश crm.read या crms.write। POST to the position of the space, or a number. /api/v1.php कार्रवाई और site_key के साथ।

संपर्क

crm. contacts. list (search + फिल्टर), crm संपर्क. detail (आईडी द्वारा), cram. contacts. upert (create or अद्यतन), cRM. contactes. save.

सौदे

crm. deals. list, crms. deals. Detail, cram. deels. create, cRM. deel. update, cms. deols. advance (सभी ट्रस्ट लेयर के माध्यम से).

गतिविधियाँ

crm. activities. list (संपर्क / डील के लिए समयरेखा), crms. activeity. record (एक नई गतिविधि लॉग).

आयोजन

crm. events. list (the_id कर्सर के साथ टिकाऊ परिवर्तन फ़ीड), crms. events. catalog (सूची उपलब्ध घटना प्रकार)।

द्वारा सौदा करें API
POST /api/v1.php
Authorization: Bearer opq_live_xxx
Content-Type: application/json

{
  "action": "crm.deals.create",
  "site_key": "<workspace>",
  "title": "Acme renewal",
  "amount": 12000,
  "pipeline_id": 1,
  "stage_id": 2
}

वेबहुक कार्यक्रम

opsiq.contact.upsert

जब एक संपर्क बनाया जाता है या अद्यतन किया जाता है तो यह सब्सक्राइब करने के लिए संपर्क कार्यक्रम है; कोई अलग निर्मित घटना नहीं है।

contact.lifecycle_changed

जब एक संपर्क अलग-अलग जीवन चक्र चरण में जाता है तो फायर किया गया।

contact.status_changed

जब एक संपर्क स्थिति में परिवर्तन होता है तो फायर किया जाता है।

contact.conversion

जब एक रूपांतरण के खिलाफ एक संपर्क दर्ज की गई है तो निकाल दिया गया।

contact.tag_added

जब एक टैग को संपर्क में जोड़ा जाता है तो निकाल दिया गया।

contact.erased

जब एक संपर्क को गोपनीयता अनुरोध के लिए मिटा दिया जाता है तो फायर किया गया।

crm.deal.created

जब कोई सौदा बनाया जाता है तो फायर किया गया।

crm.deal.stage_changed

जब कोई सौदा एक अलग मंच पर चल जाता है तो फायर किया गया।

crm.deal.won

जब कोई सौदा जीत के रूप में बंद हो जाता है तो फायर किया गया।

crm.deal.lost

जब एक सौदा खो दिया के रूप में बंद हो जाता है निकाल दिया।

crm.company.created

जब एक कंपनी बनाई गई है तो फायर किया गया।

crm.task.created

जब एक नया कार्य बनाया जाता है (मैनुअल या एआई-generated) फायर किया गया।

email.replied

जब एक संपर्क एक आउटरीच ईमेल को जवाब देता है तो फायर किया गया।

email.bounced

जब एक आउटरीच ईमेल बाउंस होता है तो फायर किया गया।

💡
कॉल webhooks.events.list अपने इंस्टॉल पर आधिकारिक सेट के लिए, प्रत्येक घटना का पेलोड के साथ। यह वितरण कोड से उत्पन्न होता है, इसलिए यह वास्तव में आने वाले चीज़ों से कभी असहमत नहीं हो सकता है। पूरी सूची वेबहुक अनुभाग में भी दिखाई देती है।

सभी वेबहुक घटनाएं HMAC-signed हैं और असफलता पर पुनः प्राप्त की जाती हैं। एक सदस्यता लें URL सेटिंग्स> वेबहुक, या पोल crm.events.list में एक टिकाऊ परिवर्तन फ़ीड के लिए since_id के साथ।

CRM संपर्कों को Google शीट्स में सिंक करना

परिदृश्य:
आप चाहते हैं कि आपकी मार्केटिंग टीम के लिए Google शीट में दिखाई देने वाले हर नए CRM संपर्क को प्राप्त किया जाए।
क्या करना है:

वेबहुक ग्राहक को सेट करेंopsiqcontact.upsert. इसे एक Google Apps स्क्रिप्ट वेब ऐप या जैपियर वेबहुक पर इंगित करेंURLपेलोड में संपर्क नाम, ईमेल, कंपनी, लीड स्कोर और स्रोत शामिल हैं। आपकी स्क्रिप्ट प्रत्येक नए संपर्क के लिए Google शीट को एक पंक्ति प्रदान करती है।

CRM

सेगमेंट

सेगमेंट CRM दृष्टिकोण, आउटरीच, प्रोन्नति और अन्य दर्शकों के लिए पुन: प्रयोज्य संपर्क फिल्टर को बचाते हैं।

उत्पाद स्क्रीन
सेगमेंटसेगमेंट एडिटर शर्तों को जोड़ती है, लाइव मैच की गिनती दिखाती है और ऑपरेटर को एक लाइव फिल्टर या पिन्ड स्नैपशॉट चुनने देता है।सेगमेंटकार्यस्थलमॉडललाइवLOGICसबMATCHES1,248लाइव WORKSPACEग्राहक मंचसक्रिय ग्राहक के बराबरनियमअंतिम गतिविधिभीतर 30 दिननियमदेशयूनाइटेड किंगडम के बराबरनियमउच्च तीव्रताकम से कम स्कोर 70नियम1CHOOSE MODEलाइव या स्नैपशॉट2ADD RULESसभी या ANY3REUSEअभियान और CRM
सेगमेंट एडिटर शर्तों को जोड़ती है, लाइव मैच की गिनती दिखाती है और ऑपरेटर को एक लाइव फिल्टर या पिन्ड स्नैपशॉट चुनने देता है।

A लाइव सेगमेंट जब भी इसका उपयोग किया जाता है तो वर्तमान डेटा से पुनर्विचारित होता है। pinned स्नैपशॉट वर्तमान सदस्य सूची को फ्रीज करता है, जो तब उपयोगी होता है जब एक आउटरीच दर्शकों को अनुमोदन के बाद नहीं बदलना चाहिए।

चुनें सब जब हर शर्त मैच करना चाहिए या कोई जब एक शर्त पर्याप्त है। बचत से पहले लाइव गिनती की समीक्षा करें। सिस्टम सेगमेंट को सामान्य संपादन से दिखाई दिया लेकिन संरक्षित किया जा सकता है।

CRM

लीड स्कोरिंग

लीड स्कोरिंग नियम व्यवहार और प्रोफाइल संकेतों को एक सुसंगत स्कोर में बदल देते हैं जो बिक्री और स्वचालन का उपयोग कर सकते हैं।

उत्पाद स्क्रीन
लीड स्कोरिंगलीड स्कोरिंग सक्रिय नियमों, रोलिंग विंडो और सकारात्मक या नकारात्मक स्कोर को प्रत्येक नियम लागू होता है।लीड स्कोरिंगकार्यस्थलरस12SCORED8,412HOT LEADS286लाइव WORKSPACEमूल्य निर्धारण गतिविधि3+ दौरा 14 दिन+20कीवर्ड खरीदनाप्रवासन या उद्यम शामिल है+15जोखिम का समर्थन30 दिन में शिकायत घटना-10विश्वसनीय स्रोतसाथी रेफरल+121DESCRIBE RULEसादे अंग्रेजी का प्रयोग करें2REVIEW FIELDSसंकेत, खिड़की, अंक3RESCOREवर्कस्पेस पर लागू करें
लीड स्कोरिंग सक्रिय नियमों, रोलिंग विंडो और सकारात्मक या नकारात्मक स्कोर को प्रत्येक नियम लागू होता है।

एआई नियम बिल्डर एक संरचित नियम में एक सादे अंग्रेजी निर्देश बदल सकता है। सक्रियण से पहले हर नियम की समीक्षा अभी भी की जानी चाहिए: गतिविधि या कीवर्ड, न्यूनतम गणना, रोलिंग विंडो और स्कोर परिवर्तन की पुष्टि करें।

सकारात्मक और नकारात्मक नियम सह-अस्तित्व कर सकते हैं। उपयोग करें Rescore Workspace भौतिक नियम परिवर्तन के बाद इसलिए मौजूदा संपर्कों का मूल्यांकन नए मॉडल के तहत किया जाता है। स्कोर सेगमेंट, रूटिंग, प्रॉस्पेक्टिंग और वर्कफ़्लो स्थितियों को खिला सकते हैं।

CRM

बिक्री लीडरबोर्ड

लीडरबोर्ड कोटा प्राप्ति का उपयोग करके प्रतिनिधियों की तुलना करता है, चयनित महीने के लिए राजस्व, कमीशन और खुली पाइपलाइन जीती।

उत्पाद स्क्रीन
बिक्री लीडरबोर्डमासिक लीडरबोर्ड बिक्री प्रतिनिधियों को राजस्व, कमीशन और खुली पाइपलाइन दृश्यमान रखने के दौरान रैंक करता है।बिक्री लीडरबोर्डकार्यस्थलPERIODजुलाईTEAM QUOTA82%जीता£184kलाइव WORKSPACEअमिना104% कोटा · £62k जीता1लाबेन88% कोटा · £ 51k जीतादूसरारीता76% कोटा · £43k जीतातीसराओपन पाइपलाइन£ 312kसमीक्षा1CHOOSE MONTHएक अवधि की तुलना करें2CHECK QUOTAउत्तर प्रदेश द्वारा अटैटिनमेंट3COACHपाइपलाइन संदर्भ का उपयोग करें
मासिक लीडरबोर्ड बिक्री प्रतिनिधियों को राजस्व, कमीशन और खुली पाइपलाइन दृश्यमान रखने के दौरान रैंक करता है।

कोटा प्राप्ति केवल तभी सार्थक होती है जब प्रत्येक प्रतिनिधि के पास वर्तमान कोटा होता है और सौदों का सही मालिक, राशि, मुद्रा और करीबी स्थिति होती है। कोचिंग और मान्यता के लिए लीडरबोर्ड का उपयोग करें, न कि एकमात्र गुणवत्ता माप; इसे सौदा स्वास्थ्य, गतिविधि और पूर्वानुमान सटीकता के साथ जोड़ा जाए।

CRM

सौदे की मंजूरी

डील अनुमोदन के लिए प्रबंधक साइन-ऑफ की आवश्यकता होती है, इससे पहले कि उच्च मूल्य सौदों को जीत लिया जा सकता है।

उत्पाद स्क्रीन
सौदे की मंजूरीअनुमोदन नीति दो मान सीमा को परिभाषित करती है और कतार लंबित, अनुमोदित और अस्वीकार निर्णयों को दर्शाता है।सौदे की मंजूरीकार्यस्थलPOLICYसक्षमWAITING6OLDEST3hलाइव WORKSPACEस्तर 1£10,000_ से सौदेप्रबंधकस्तर 2£50,000_ से सौदेवरिष्ठउद्यम नवीनीकरण£72,000 · बेन द्वारा अनुरोध कियालंबितप्रवासन परियोजना£18,500 · रायता द्वारा अनुरोध कियास्वीकृत1SET THRESHOLDS0 एक टियर को निष्क्रिय करता है2REQUESTRep सौदा जमा करता है3सजावटअनुमोदित या अस्वीकार
अनुमोदन नीति दो मान सीमा को परिभाषित करती है और कतार लंबित, अनुमोदित और अस्वीकार निर्णयों को दर्शाता है।

नीति और सेट स्तर को सक्षम करें 1 और स्तर 2 थ्रेसहोल्ड। की एक सीमा 0 जब कोई गैर-प्रबंधक थ्रेसहोल्ड पर या उसके ऊपर एक सौदा जीतने की कोशिश करता है, तो वह उस टियर को निष्क्रिय कर देता है। OpsIQ मंच को चुपचाप बदलने के बजाय एक अनुमोदन अनुरोध बनाता है।

प्रबंधकों और पूर्ण प्रशासकों को नीति द्वारा अवरुद्ध नहीं किया जाता है। प्रत्येक निर्णय को अनुरोधकर्ता, अनुमोदनकर्ता, समय और लेखा परीक्षा के लिए कारण को बनाए रखना चाहिए।

CRM

लाइफसाइकल नियम

जब उनके वर्तमान डेटा एक बचाया शर्त से मेल खाता है तो लाइफसाइकल नियम स्वचालित रूप से चरणों के बीच संपर्क स्थानांतरित होते हैं।

उत्पाद स्क्रीन
लाइफसाइकल नियमLifecycle नियमों को प्राथमिकता से मूल्यांकन किया जाता है; पहला मिलान नियम संपर्क चरण बदलता है।लाइफसाइकल नियमकार्यस्थलसक्रिय7RUNSरातPRIORITYसबसे पहलेलाइव WORKSPACEलीड → योग्यस्कोर ≥ 60 हाल ही में गतिविधिप्राथमिकता 100योग्य → ग्राहकखरीदी की घटना मौजूद हैप्राथमिकता 90ग्राहक → जोखिम परकोई गतिविधि नहीं 60 _दिनप्राथमिकता 70जोखिम → ग्राहकनई खरीद या जवाब देंप्राथमिकता 601PICK STAGESसे और2DEFINE FILTERसेगमेंट-स्टाइल JSON3ORDER RULESपहला मैच जीत
Lifecycle नियमों को प्राथमिकता से मूल्यांकन किया जाता है; पहला मिलान नियम संपर्क चरण बदलता है।

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

नियमों को पारस्परिक रूप से समझने योग्य होना चाहिए। दो सक्रिय नियमों से बचें जो उसी रन के दौरान विपरीत दिशा में समान संपर्क ले सकते हैं। इसे सक्रिय करने से पहले किसी खंड के खिलाफ फिल्टर का परीक्षण करें।

CRM

CRM गतिविधि स्ट्रीम

वर्कस्पेस गतिविधि स्ट्रीम ग्राहक और परिचालन घटनाओं को जोड़ती है ताकि टीमों की जांच कर सकें कि हर मॉड्यूल को खोलने के बिना क्या हुआ था।

उत्पाद स्क्रीन
CRM गतिविधिगतिविधि धारा इंटरलीव्स चैट, टिकट, ईमेल, वेबहुक, रूपांतरण और फिल्टर और पैगिनेशन के साथ विसंगत घटनाओं।CRM गतिविधिकार्यस्थलघटना2,804CUSTOMERS1,126ANOMALIES14लाइव WORKSPACEचैट का समाधान[email protected]· AIअबटिकट उत्तर दियाT-1048 · बिलिंग4 मि.इनबाउंड इवेंटsubscription.upgraded12 मीरूपांतरणआदेश #7788 · £14919 मि.1FILTERघटना और ग्राहक2OPEN CONTEXTरिकॉर्ड करने के लिए कूदो3PAGE RESULTSजांच बाध्य रखें
गतिविधि धारा इंटरलीव्स चैट, टिकट, ईमेल, वेबहुक, रूपांतरण और फिल्टर और पैगिनेशन के साथ विसंगत घटनाओं।

घटना के प्रकार, तारीख, संपर्क या ग्राहक राज्य (ग्राहकों को भुगतान सहित) द्वारा फ़िल्टर करें। फ़ीड रिकॉर्ड की गई गतिविधि का एक पठन मॉडल है; यह स्रोत टिकट, वार्तालाप, सौदा या कनेक्टर रिकॉर्ड को प्रतिस्थापित नहीं करता है। संवेदनशील कार्रवाई करने से पहले लिंक किए गए रिकॉर्ड को खोलें।

CRM

वर्कफ़्लो

वर्कफ़्लोज़ एक घटना का जवाब देते हैं और क्रोन द्वारा शुरू होने वाले देरी से कदम सहित कार्रवाई की एक आदेशित श्रृंखला चलाते हैं।

उत्पाद स्क्रीन
वर्कफ़्लोएक वर्कफ़्लो रन अपने ट्रिगर, पूर्ण क्रियाओं, प्रतीक्षा देरी और अगले चरण को दर्शाता है।वर्कफ़्लोकार्यस्थलसक्रिय9RUNNING42एफएआईएलडी1लाइव WORKSPACEट्रिगरcontact.createdप्रारंभचरण 1ईमेलदानविलंबरुको 2 दिनप्रतीक्षाचरण 2बिक्री कार्यअगला1CHOOSE TRIGGERकार्यक्रम शुरू होता है रन2ORDER STEPSकार्रवाई और देरी3MONITORक्रोन के माध्यम से फिर से शुरू
एक वर्कफ़्लो रन अपने ट्रिगर, पूर्ण क्रियाओं, प्रतीक्षा देरी और अगले चरण को दर्शाता है।

ट्रिगर चुनकर कार्यप्रवाह बनाएं, क्रम में कदम जोड़कर और इसे सक्षम करें। विलंब संग्रहीत किए जाते हैं, एक ब्राउज़र अनुरोध द्वारा नहीं आयोजित; एकीकृत क्रोन देय वर्कफ़्लो रनों को फिर से शुरू करता है।

अंतर्निहित प्रारंभिक टेम्पलेट में साइनअप, पोस्ट-परचेज़ धन्यवाद और डेमो पुष्टिकरण के बाद स्वागत शामिल है। एक टेम्पलेट क्लोन करें, अपने प्राप्तकर्ताओं / सामग्री को प्रतिस्थापित करें, फिर व्यापक सक्रियण से पहले नियंत्रित रिकॉर्ड के साथ परीक्षण करें।

डिजाइन कार्रवाई करने के लिए विचारक. एक retry डुप्लिकेट पैसे चलने अनुरोध भेजने या डुप्लीकेट रिकॉर्ड बनाने नहीं करना चाहिए।

समर्थन

टिकट

टिकट आपके औपचारिक समर्थन चैनल हैं। उनके पास विभाग, प्राथमिकताएं हैं।SLAलक्ष्य, अनुलग्नक, आंतरिक नोट्स और पूर्ण वार्तालाप थ्रेडिंग। टिकट से आ सकते हैंOpsIQव्यवस्थापक, टिकट फॉर्म/embed, ईमेल ingestion, चैट escalation, कनेक्टर याAPI.

टिकट
टिकट विवरणमेटा साइडबार (प्राथमिकता, विभाग, SLA, स्टेटस) के साथ एक टिकट, वार्तालाप धागा और AI ड्राफ्ट और वापसी कार्रवाई।टिकटकार्यस्थलटी-12345प्राथमिकताउच्चविभागबिलिंगSLA3h12m leftस्थितिखुलामैं दो बार मेरे लिए चार्ज किया गया थाजून 3_ पर सदस्यता।एआईडुप्लिकेट की पुष्टिचार्ज, वापसी प्रसंस्करण।A मसौदा जवाबरिफंड1THREADEDपूर्ण बातचीत + नोट्स2SLA & ROUTINGप्राथमिकता, dept, टाइमर3AI DRAFTआपके लिए लिखित
प्रत्येक टिकट अपनी प्राथमिकता, विभाग, SLA टाइमर और पूर्ण धागा रखता है, और AI आपके लिए जवाब का प्रारूप तैयार कर सकता है।

टिकट कैसे बहती है

1
टिकट आने

एक ग्राहक ईमेल, चैट escalation, टिकट एम्बेड के माध्यम से संदेश भेजता है, या व्यवस्थापक बनाता है। टिकट एक अद्वितीय आईडी (उदाहरण के लिए, टी-) हो जाता है।12345).

2
ट्रेज

एआई विषय और शरीर को पढ़ता है, प्राथमिकता देता है (कम / सामान्य / उच्च / उज्ज्वल) एक विभाग का सुझाव देता है, और भावना का पता लगाता है। यह स्वचालित रूप से तब होता है जब ट्राइज़ सक्षम हो जाता है।

3
जवाब दें

एक एजेंट टिकट खोलता है, संदर्भ (ग्राहक प्रोफ़ाइल, कनेक्टर्स से प्लेटफॉर्म डेटा, पिछले टिकट) पढ़ता है और जवाब लिखता है। एआई जवाब का प्रारूप तैयार कर सकता है, और एजेंट भेजने से पहले संपादित करता है।

4
बंद

जब मुद्दा हल हो जाता है, तो एजेंट टिकट बंद कर देता है। ग्राहक को सूचित किया जाता है। यदि ग्राहक समापन के बाद जवाब देते हैं, तो टिकट स्वचालित रूप से खुलता है।

प्रति-टिकट कार्रवाई

विभाग बदलें

टिकट को एक अलग विभाग में ले जाएँ (उदाहरण के लिए, जनरल से बिलिंग तक)। उपयोगी जब प्रारंभिक रूटिंग गलत हो गई तो।

एजेंट को सौंपना

एक विशिष्ट टीम के सदस्य को टिकट सौंपा गया। निर्दिष्ट एजेंट अपने "मेरे टिकट" दृश्य में टिकट देखता है।

आंतरिक नोट जोड़ें

केवल कर्मचारियों को एक नोट दिखाई देते हैं। के लिए उपयोग करें: जांच निष्कर्ष, वापसी का कारण, इंजीनियरिंग संदर्भ, पिछली प्रतिबद्धताएं। आंतरिक नोट्स कभी ग्राहकों के लिए प्रकट नहीं होते हैं।

मर्ज टिकट

उसी ग्राहक से डुप्लिकेट टिकट को मिलाएं। विलय टिकट विषय को एक [MERGED] टैग मिलता है। दोनों टिकटों के सभी संदेश बचे हुए टिकट में संरक्षित हैं।

डिब्बाबंद प्रतिक्रिया

एक पूर्व लिखित उत्तर टेम्पलेट डालें। वैरिएबल्स जैसे {{customer_name}} और {{ticket_id}} स्वचालित रूप से बदल दिया जाता है।

एआई फिर से लिखना

आइए, AI आपके ड्राफ्ट उत्तर को बेहतर बनाने: स्वर समायोजित करें, छोटा / लंबा, व्याकरण ठीक करें, या अनुवाद करें। आप भेजने से पहले परिणाम की समीक्षा करते हैं।

प्राथमिकता बदलें

कम, सामान्य, उच्च या उर्जा के लिए सेट करें। प्राथमिकता SLA टाइमर और क्रमबद्ध क्रम को प्रभावित करती है।

स्थिति बदलें

ग्राहक, हल या बंद पर ओपन, लंबित, प्रतीक्षा करने के लिए सेट करें।

काम करने का उदाहरण: एक बेखुश ग्राहक को संभालने

ग्राहक ईमेल: "मैं अपनी सदस्यता के लिए दो बार चार्ज किया गया था"

परिदृश्य:
Subject: Double charge on my account Body: Hi, I just checked my bank statement and I see two charges of $49.99 from your company dated June 3. I only have one subscription. Can you please refund the duplicate charge? This is really frustrating.
क्या करना है:

Step 1: AI triage assigns Priority: High, Department: Billing, Sentiment: Frustrated. Step 2: Agent opens the ticket. The connector panel shows the customer's Stripe charges, confirmed two charges on June 3. Step 3: Agent adds an internal note: "Confirmed duplicate charge in Stripe. Transaction IDs: ch_xxx and ch_yyy." Step 4: Agent drafts a reply: "Hi [Name], I can see the duplicate charge and I'm processing a refund for the second transaction right now. You should see $49.99 back in your account within 3-5 business days. I'm sorry for the inconvenience." Step 5: Agent triggers the refund action through the Stripe connector (with confirmation). Step 6: Agent sends the reply and sets status to Resolved.

विभाग

सेटिंग्स> टिकटों में विभाग बनाएं > विभागों। सामान्य विभाग: जनरल, बिलिंग, तकनीकी, बिक्री, दुर्व्यवहार, ऑनबोर्डिंग। प्रत्येक विभाग के पास अलग-अलग ऑटो-रिप्लाई नियम, एआई ज्ञान और टीम असाइनमेंट हो सकते हैं।

डिब्बाबंद जवाब

सेटिंग्स> टिकटों में पुन: प्रयोज्य उत्तर टेम्पलेट बनाएं > डिब्बाबंद प्रतिक्रियाएं। अच्छे डिब्बाबंद प्रतिक्रियाओं में शामिल हैं:

उदाहरण डिब्बाबंद प्रतिक्रिया टेम्पलेट
Hi {{customer_name}},

Thanks for reaching out. I checked the details and here is what I found:

{{response_details}}

If you need anything else, just reply to this ticket and I will be happy to help.

Best regards,
{{agent_name}}
{{department_signature}}

विलय टिकट

जब कोई ग्राहक एक ही प्रश्न एकाधिक बार (ईमेल और चैट या दो अलग-अलग ईमेल के माध्यम से) भेजता है, तो आप डुप्लिकेट को मर्ज कर सकते हैं। टिकट पर जाएं, मर्ज पर क्लिक करें, दूसरे टिकट का चयन करने के लिए विलय हो जाओ। जीवित टिकट दोनों टिकटों से सभी संदेश प्राप्त करता है। विलय टिकट के विषय को यह इंगित करने के लिये एक [MERGED] टैग मिलाया जाता है।

कनेक्टेड प्लेटफॉर्म विलय का पालन करते हैं। जब टिकट कनेक्टेड प्लेटफॉर्म पर भी होते हैं (WHMCS, ZendeskSaaS कस्टमर पोर्टल, विलय भी वहाँ होता है: मंच अपनी प्रतियों को मर्ज करता है, इसलिए आपके द्वारा रखे गए टिकट में विलय टिकट का पहला संदेश और उत्तर दिखाया गया है। एक विलय टिकट जो उस प्लेटफॉर्म पर कभी नहीं था उसकी बातचीत ने रखा प्लेटफ़ॉर्म टिकट को निजी स्टाफ नोट के रूप में जोड़ा है, कभी भी जवाब देने के लिए ग्राहक को ईमेल किया जाता है। मंच के अंदर एक विलय (उदाहरण के लिए, उदाहरण के लिए) WHMCS) विलय कर देता है OpsIQ उसी तरह टिकट करें।

Priority and SLA

कम

गैर-अर्जेंट सवाल, फीचर अनुरोध, सामान्य प्रतिक्रिया। पहले जवाब लक्ष्य: 24 घंटे।

सामान्य

मानक समर्थन प्रश्न पहले जवाब लक्ष्य: 8 घंटे।

उच्च

ग्राहक के व्यवसाय को प्रभावित करना पहली बार जवाब देना: 4 घंटे।

उर्जा

सर्विस डाउन, सुरक्षा घटना, डेटा हानि, बिलिंग त्रुटि। पहले प्रतिक्रिया लक्ष्य: 1 घंटे।

SLA टाइमर शुरू करते हैं जब टिकट बनाया जाता है और तब रोकें जब स्थिति "ग्राहक पर छूट" हो। यदि SLA लक्ष्य याद किया गया है तो टिकट को हाइलाइट किया जाता है।

क्या ग्राहक आंतरिक नोट देख सकते हैं?+

कभी भी आंतरिक नोट्स सख्ती से स्टाफ़ होते हैं। वे ग्राहक टिकट पोर्टल, ईमेल नोटिफिकेशन या किसी ग्राहक की इच्छा वाली सतह में नहीं दिखाई देते हैं।

जब एक बंद टिकट को जवाब दिया जाता है तो क्या होता है?+

टिकट स्वचालित रूप से सक्रिय कतार में वापस लौटता है। टीम को नए उत्तर के अधिसूचित किया गया है।

क्या मैं आगे जवाब देने के लिए टिकट लॉक कर सकता हूं?+

हाँ। ग्राहक और एआई दोनों को नए उत्तर जोड़ने से रोकने के लिए लॉक थ्रेड विकल्प का उपयोग करें। हल किए गए विवादों या बंद जांच के लिए उपयोगी है।

समर्थन

सर्विस स्टूडियो: SLA, स्टेटस फ्लो और क्वालिटी

आपके समर्थन संचालन के तरीके के लिए नियंत्रण कक्ष: SLA की नीतियों में वृद्धि सीढ़ी, व्यापार-घंटे कैलेंडर, एक लागू स्थिति प्रवाह, CSAT सेटिंग्स और एंटरप्राइज़ सुविधा स्विच शामिल हैं। इसे टिकट पृष्ठ (कार्यक्रम बार में सर्विस स्टूडियो बटन) से खोलें।

SLA की नीतियां

हर नए टिकट को सबसे विशिष्ट सक्रिय नीति से पहले की जगह और एक संकल्प की समय सीमा मिलती है: विभाग + प्राथमिकता ने विभाग को हरा दिया, प्राथमिकता को मार डाला, डिफ़ॉल्ट को मार देता है। डेडलाइन स्वचालित रूप से ठहराते हैं जबकि एक टिकट लंबित या ऑन होल्ड में बैठता है।

वृद्धि सीढ़ी

एक उल्लंघन कार्रवाई के बजाय, एक नीति छह चरणों को परिभाषित कर सकती है: उदाहरण के लिए असाइनेंटी को चेतावनी दी जाती है 75% खिड़की के प्रबंधक, चेतावनी प्रबंधक पर 100%, नामित एजेंट को इस्तीफा दे देना 150% प्रत्येक कदम टिकट के लिए एक बार ठीक से आग लग जाती है।

व्यापार के घंटे और कैलेंडर

व्यावसायिक घंटों के साथ, SLA क्लॉक केवल काम करने के समय में जलते हैं, इसलिए शुक्रवार की शाम को खोला गया टिकट शनिवार तक नहीं टूट जाता है। नामांकित कैलेंडर (टाइमज़ोन, दिन, घंटे, छुट्टियां) विभिन्न क्षेत्रों में टीमों के लिए व्यक्तिगत नीतियों से जुड़े हो सकते हैं।

स्थिति प्रवाह

मैट्रिक्स को प्रतिबंधित करने के लिए जो स्थिति में बदलाव व्यवस्थापक एक Zendesk शैली पूर्व निर्धारित के साथ कर सकते हैं। स्वचालन, भीतर का ईमेल और ग्राहक-मूलित टिकट उत्तर हमेशा छूटे होते हैं, इसलिए सख्त मैट्रिक्स कभी भी पाइपलाइन को जाम नहीं कर सकता है। वैकल्पिक रूप से बंद होने से पहले एक अनुमोदित साइन-ऑफ की आवश्यकता होती है।

स्वीकृति

एजेंट एक टिकट पर हस्ताक्षर करने का अनुरोध करते हैं (एक थ्रेसहोल्ड, पॉलिसी अपवादों पर वापसी)। नामित स्वीकृतिकर्ता या कोई पूर्ण प्रशासक नोट के साथ निर्णय लेता है; अनुरोधकर्ता कभी भी अपने स्वयं के अनुरोध को स्वीकार नहीं कर सकता है। इनबॉक्स पर बैनर के रूप में अनुमोदन की सतह लंबित करता है।

टिकट संबंध

संबंधित, डुप्लिकेट, अभिभावक / बच्चे या अवरुद्ध के रूप में लिंक टिकट; विभाजित एक नए जुड़े टिकट (ग्राहक को ईमेल किए बिना विलय के विपरीत); इन-ऐप अधिसूचनाओं के लिए टिकट का पालन करें और वैकल्पिक रूप से CC फ़ॉलोअर ईमेल पते पर बाहरी उत्तर.

लाइव इनबॉक्स और टकराव

वास्तविक समय के इनबॉक्स सक्षम होने के साथ, मौजूदा अधिसूचना धारा के माध्यम से सेकंड के भीतर एजेंटों के लिए नए टिकट और उत्तर दिखाई देते हैं। एक टिकट पर एजेंट देखें कि कौन और क्या देख रहा है और जब कोई टीममेट पहले ही जवाब लिख रहा है तो चेतावनी बैनर प्राप्त करें। एक क्लिक दावा बटन अपने आप को टिकट असाइन करता है।

एआई-एवेयर रूटिंग

रूटिंग नियम एआई ट्रेज संकेतों पर मेल खा सकते हैं: प्राथमिकता, श्रेणी, भावना और वृद्धि जोखिम, साथ ही अपने पोर्टल अनुरोध फॉर्म से कस्टम फील्ड मान टाइप करें। इन शर्तों का उपयोग करने वाले नियम तब तक निष्क्रिय रहते हैं जब तक कि सुविधा सक्षम नहीं हो जाती है।

💡
हर उद्यम स्विच जहाज बंद। सर्विस स्टूडियो → क्वालिटी एंड ऑटोमेशन में एक को मोड़ना ऑप्ट-इन है; उन्हें छोड़ने से अपग्रेड होने से पहले समान व्यवहार होता है।
जब मेरे मैट्रिक्स बंद हो जाता है तो एक ग्राहक अभी भी बंद टिकट फिर से खोल सकता है → खुला?+

मैट्रिक्स केवल ADMIN कार्यों को नियंत्रित करता है। ग्राहक-मूलित उत्तर, ईमेल जवाब और स्वचालन जानबूझकर छूट दी जाती है ताकि सख्त नीति कभी भी ग्राहकों को पाइप लाइन को बंद या तोड़ सके।

क्या SLA सीढ़ी पुराने उल्लंघन कार्रवाई की जगह ले जाती है?+

नहीं, एक उल्लंघन कार्रवाई के साथ बचाया नीतियों को बिना परिवर्तन के काम करना है। सीढ़ी केवल उन नीतियों पर ही एकल कार्रवाई की जगह लेती है जहां आप चरणों को परिभाषित करते हैं।

समर्थन

टिकट ऑटो-रिप्लाई और वृद्धि

ऑटो-रिप्लाई एआई को स्वचालित रूप से नए टिकटों का जवाब देने देता है। जब ऐ विशिष्ट जरूरतों का पता लगाता है तो एस्केलेशन एक अलग विभाग में टिकट ले जाता है। दोनों विशेषताएं देशी टिकट और ईमेल निर्मित टिकट पर काम करती हैं।

ऑटो-रिप्लाई
टिकट ऑटो-रिप्लाईएक प्रवाह: नया टिकट, दो मिनट की देरी, एआई ज्ञान और संदर्भ से उत्तर देता है, फिर ड्राफ्ट के रूप में भेजा या बचाया जाता है।ऑटो-रिप्लाईकार्यस्थलजब नया टिकट आता हैनया टिकटकोई स्रोतविलंब2 minA-A-ReplementsKB + संदर्भभेजाया ड्राफ्टयदि देरी के दौरान मानव उत्तर दिया जाता है, तो ऑटो-रिप्लाई रद्द कर दी जाती है। इरादे पहले दूसरे विभाग को बढ़ा सकते हैं।1DELAYमानव को पहला मौका मिलता है2AI REPLIESकेबी + संदर्भ से3OR ESCALATEइरादे से रूट करें
न्यू टिकट को एक छोटी देरी (इसलिए मनुष्य कूद सकते हैं) मिलती है, फिर आपके ज्ञान से AI उत्तर देता है, जिसे ड्राफ्ट के रूप में भेजा या रजाई दी जाती है।

कैसे ऑटो-रिप्लाई काम करता है

1
टिकट दिखाई देता है

किसी भी स्रोत (email, chat, portal) से एक नया टिकट बनाया गया है। API).

2
जवाब अनुसूची

OpsIQ कॉन्फ़िगर किए गए देरी के लिए इंतजार (डिफ़ॉल्ट: 2 यह मानव एजेंट को पहले जवाब देने का मौका देता है।

3
पहला जवाब जीत

यदि कोई व्यक्ति देरी के दौरान जवाब देता है, तो ऑटो-रिप्लाई रद्द कर दी जाती है। अगर नहीं, तो एआई एक जवाब उत्पन्न करती है।

4
उत्पन्न करना और भेजना

एआई टिकट पढ़ता है, ज्ञान आधार, कनेक्टर संदर्भ और ग्राहक इतिहास की जांच करता है, फिर जवाब लिखता है। उत्तर भेजा जाता है (या समीक्षा के लिए ड्राफ्ट के रूप में रजाई दी जाती है) सेटिंग्स पर निर्भर करता है।

कैसे escalation काम करता है

1
विभाग को कॉन्फ़िगर करना

किस विभाग को एस्केलेटर प्राप्त कर सकते हैं (उदाहरण के लिए, बिलिंग को जनरल से अलग किया जा सकता है, तकनीकी सामान्य से बढ़ाई जा सकती है)।

2
टिकट वर्गीकृत करें

ऑटो-प्रवास से पहले, एआई टिकट की इरादे को वर्गीकृत करता है: बिलिंग, तकनीकी, वापसी, दुरुपयोग आदि।

3
यदि आवश्यक हो तो ले जाएँ

यदि टिकट इरादा एक वृद्धि विभाग से मेल खाता है तो टिकट को स्थानांतरित किया जाता है। आंतरिक नोट बताता है कि क्यों?

4
नई आवाज में उत्पन्न

उत्तर गंतव्य विभाग के ज्ञान और एआई प्रशिक्षण का उपयोग करके उत्पन्न होता है।

सेटिंग्स संदर्भ

ऑटो-रिप्लाई सक्षम

मास्टर स्विच। टिकट के लिए एआई ऑटो-रिप्लाई सक्षम करने के लिए चालू करें।

अनुमति विभाग

कौन से विभाग ऑटो-रिप्लीज़ प्राप्त कर सकते हैं। बिलिंग को सक्षम करने से पहले कम जोखिम वाले विभागों (सामान्य, बिक्री) के साथ शुरू करें।

विलंब

जब तक एआई जवाब (सेकेंड में) से पहले इंतजार करना पड़ता है। डिफ़ॉल्ट: 120 सेकंड (सेकंड)2मिनट)।0तत्काल जवाब के लिए।

विलंब अनुसूची

वैकल्पिक रूप से कारोबार के घंटों के लिए अलग-अलग देरी निर्धारित की जाती है।

व्यवस्थापक जवाब पर बंद करो

यदि कोई व्यक्ति पहले जवाब देता है, तो ऑटो-रिप्लाई रद्द कर दें। डिफ़ॉल्ट: पर।

Escalation सक्षम

टिकट के आशय पर आधारित स्वचालित विभाग रूटिंग सक्षम करें।

एसकेलेशन विभाग

कौन से विभाग टिकट को बढ़ा सकते हैं।

वृद्धि की स्थिति

जब escalating (जैसे, ओपन, लंबित) निर्धारित करने के लिए क्या स्थिति है।

Escalation Note

क्या एक आंतरिक नोट जोड़ने के लिए वृद्धि का कारण है।

ईमेल-निर्मित टिकट

ईमेल से बनाया गया टिकट (मेलबॉक्स मतदान या MX-पाइप वितरण के माध्यम से) उसी ऑटो-रिप्लाई और एस्केलेटर नियमों का पालन करें। एआई उत्तर ग्राहक को एक ईमेल प्रतिक्रिया के रूप में भेजा जाता है। ईमेल ड्राफ्ट समीक्षा के लिए ड्राफ्ट कतार पर जाते हैं यदि कॉन्फ़िगर किया गया हो।

क्या एआई ऑटो-अनुमोदन प्रश्नों का बिलिंग करेगा?+

केवल तभी जब आप बिलिंग विभाग के लिए ऑटो-रेप्लाई सक्षम करते हैं। हम बिलिंग के लिए स्वतः आपूर्ति करने की सलाह देते हैं और इसके बाद ही एआई को व्यापक बिलिंग ज्ञान से प्रशिक्षित किया गया है और पूरी तरह से परीक्षण किया गया।

क्या होगा अगर एआई गलत जवाब देता है?+

यदि कोई ग्राहक जवाब देने का उत्तर गलत है तो एक मानव एजेंट को हस्तक्षेप करना चाहिए। एआई इतिहास की समीक्षा यह समझने के लिए कि एआई ने गलत जवाब क्यों दिया, फिर ज्ञान आधार या एआई प्रशिक्षण को अपडेट करने से इसे दोबारा होने से रोका जा सकता है।

क्या मैं ऑटो-रिप्लीज़ की समीक्षा कर सकता हूं?+

हाँ। "ऑटो-सेंड" के बजाय डिलीवरी मोड को "ड्रॉफ्ट" में सेट करें। भेजने से पहले ऑटो-रिप्लाई ड्राफ्ट मानव समीक्षा के लिए ड्राफ्ट कतार में दिखाई देंगे।

समर्थन

टिकट पोर्टल एम्बेड

टिकट पोर्टल एम्बेड आपको किसी भी वेबसाइट पर एक टिकट प्रबंधन इंटरफ़ेस जोड़ने की अनुमति देता है। ग्राहक अपने टिकट देख सकते हैं, नए बना सकते हैं और जवाब दे सकते हैं। OpsIQ व्यवस्थापक।

यह कैसे काम करता है
टिकट पोर्टल एम्बेडएक समर्थन पोर्टल जो किसी वेबसाइट में एम्बेडेड है, ग्राहक को अपना टिकट और एक नया टिकट बटन दिखा रहा है।yoursite.com/supportसमर्थन केन्द्रनया टिकटआपका टिकट#1042 · रिफंड सवालखुला#1038 _\\\steup मददहल#1031 Invoice प्रतिलिपिलंबित1EMBEDकिसी भी साइट पर जोड़ें2SELF-SERVEग्राहक अपने टिकट देख सकते हैं3NO LOGINपहचान सुरक्षित रूप से संभालती है
टिकट पोर्टल एम्बेड

तीन embed जायके

इनलाइन एम्बेड

अपने पेज पर एक div के अंदर टिकट पोर्टल प्रस्तुत करता है। पोर्टल अपने कंटेनर की पूरी चौड़ाई लेता है।

फ्लोटिंग विजेट

एक फ्लोटिंग बटन दिखाता है जो किसी पैनल में टिकट पोर्टल खुलता है। चैट विजेट के समान।

प्रमाणीकरण

ग्राहक केवल अपने ही टिकट देख सकते हैं।

सम्पर्क

टिकट और चैट एम्बेड
<!-- Signed-in customer: your server adds a fresh identity_token -->
<script async src="https://your-opsiq-domain.com/widget.php?site_key=SITE_KEY&identity_token=SERVER_GENERATED_TOKEN"
        data-opsiq-widget="client-chat"></script>

<!-- Guest: the same tag without identity_token -->
<script async src="https://your-opsiq-domain.com/widget.php?site_key=SITE_KEY" data-opsiq-widget="client-chat"></script>
💡
Remote Sites → your site → Codes → C. Signed-in customers generates the complete code for your platform (PHP, WordPress, Laravel, Node.js, Python, Django, .NET, Rails, Java, Go), including the refresh handler that keeps a long visit signed in. The WHMCS hook and the Botble connector bridge already do this.

पहचान टोकन पीढ़ी

प्रमाणीकरण मोड के लिए, आपका सर्वर साइट रहस्य के साथ एक अल्पकालिक टोकन संकेत देता है। यह टोकन बताता है OpsIQ कौन ग्राहक इतना है कि वे केवल अपने ही टिकट देखते हैं। यह एक मानक HS256 JWT है: किसी भी JWP पुस्तकालय का काम करता है। रहस्य कभी पृष्ठ में नहीं जाता है।

PHP · पहचान टोकन उत्पन्न
<?php
// Generate identity token (PHP, no dependencies)
$secret = getenv("OPSIQ_SITE_SECRET");          // the site secret, server-side only
$b64 = fn($v) => rtrim(strtr(base64_encode(json_encode($v, JSON_UNESCAPED_SLASHES)), "+/", "-_"), "=");
$now = time();
$signing = $b64(["alg" => "HS256", "typ" => "JWT"]) . "." . $b64([
    "site_key"      => "SITE_KEY",
    "iat"           => $now,
    "exp"           => $now + 3600,
    "authenticated" => true,                        // required
    "platform"      => "php",
    "customer"      => [
        "id"          => $user["id"],               // required
        "email"       => $user["email"],            // required
        "name"        => $user["name"],
        "external_id" => (string) $user["id"],
    ],
]);
$token = $signing . "." . rtrim(strtr(base64_encode(hash_hmac("sha256", $signing, $secret, true)), "+/", "-_"), "=");
// Put $token on the widget URL as &identity_token=
Node. js, पहचान टोकन उत्पन्न करता है
// Node.js — npm i jsonwebtoken
const jwt = require("jsonwebtoken");

function generateOpsIQToken(customer) {
  return jwt.sign({
    site_key: "SITE_KEY",
    authenticated: true,                            // required
    platform: "node",
    customer: { id: customer.id, email: customer.email, name: customer.name, external_id: String(customer.id) },
  }, process.env.OPSIQ_SITE_SECRET, { algorithm: "HS256", expiresIn: 3600 });
}

विजेट सुविधाएँ

टिकट सूची

खोज योग्य, स्थिति-filtered सूची। एक "आप को स्वीकार करना" ध्वज टिकट को उजागर करता है जो टीम ने जवाब दिया है।

थ्रेडेड वार्तालाप

अमीर पाठ, संलग्नक और टाइमस्टैम्प के साथ पूर्ण बातचीत दृश्य।

ऑटो सेविंग

ग्राहक ड्राफ्ट उत्तर ऑटो सेव कर रहे हैं ताकि वे काम खो न सकें अगर वे दूर चले जाएं।

लाइव मतदान

हर किसी को नए उत्तर देने के लिए विजेट मतदान ~12 सेकंड।

हल करें / फिर से खोलें

ग्राहक एक क्लिक के साथ अपने स्वयं के टिकट को हल या फिर से खोल सकते हैं।

आंतरिक स्टाफ नोटों को ग्राहकों को टिकट एम्बेड में दिखाया गया है। यह एक कठिन सुरक्षा सीमा है।
समर्थन

इनबॉक्स चैट

चैट इनबॉक्स वह जगह है जहां आपकी टीम लाइव ग्राहक वार्तालापों का प्रबंधन करती है। यह सक्रिय चैट, निर्दिष्ट बातचीत, एआई-हैंडलेड चैट और संग्रहीत इतिहास दिखाता है।

इनबॉक्स चैट
इनबॉक्स चैटतीन-pane एजेंट चैट इनबॉक्स: बातचीत सूची, AI ड्राफ्ट चिप के साथ लाइव वार्तालाप और एक आगंतुक / CRM संदर्भ पैनल।इनबॉक्स चैटकार्यस्थलजेडीजेनमेरा आदेश कहां हैसाइटमैपमेन्शियाबिलिंग प्रश्नआरटीरीताएआई संभालामेरा ऑर्डर कहां है?आज डूबा हुआAI तैयारजवाब देंदर्शकजेन डोUS · क्रोम3 पिछले आदेशएलटीवी $480CRMमंच: ग्राहक1UNIFIEDहर लाइव चैट2CONTEXTआगंतुक CRM पैनल3AI ASSISTड्राफ्ट और फिर से लिखना
प्रत्येक लाइव चैट, वार्तालाप सूची के लिए एक इनबॉक्स, टैप पर AI ड्राफ्ट के साथ धागा और पूर्ण आगंतुक + CRM संदर्भ।

बातचीत का प्रबंध करना

सक्रिय चैट

वर्तमान में प्रगति पर बातचीत। ग्रीन डॉट = ग्राहक टाइपिंग या हाल ही में सक्रिय है।

एआई-handled

बातचीत जहां एआई जवाब दे रहा है। आप "संयुक्त" पर क्लिक करके किसी भी समय ले सकते हैं।

मुझे सौंप दिया

विशेष रूप से आपको सौंपा गया वार्तालाप।

प्रतीक्षा

बातचीत जहां ग्राहक प्रतिक्रिया के लिए इंतजार कर रहा है।

पुरालेख

पूर्ण बातचीत। कीवर्ड, तारीख और ग्राहक द्वारा खोज योग्य।

हाथ से बंद करने के लिए AI मानव

जब आप एआई से बातचीत करते हैं, तो इन तीन नियमों का पालन करें:

1
व्यक्तिगत रूप से नमस्कार

"हाय, यह समर्थन टीम से सारा है"।

2
संदर्भ

"मैं आपको अपने आदेश की स्थिति के बारे में पूछ सकता हूं"।

3
उम्मीदों को निर्धारित करना

"मैं अभी इस बारे में सोच रहा हूँ और कुछ ही मिनटों में आपके लिए जवाब दे सकता हूं।

प्रति बातचीत पर / बंद करने के लिए AI स्विचिंग

प्रत्येक वार्तालाप के शीर्ष पर एआई टॉगल का उपयोग करें। जब एआई चालू हो जाती है, तो एआई प्रतिक्रिया उत्पन्न करती है। जब बंद होता है, तब केवल मानव एजेंट जवाब दे सकते हैं। एआई बातचीत संदर्भ को याद करता है, यहां तक कि जब बंद हो जाता है और वापस आ जाता है।

दूर मोड / घंटे से बाहर

सेटिंग्स में व्यावसायिक घंटों को कॉन्फ़िगर करें। व्यापार के समय के बाहर, एआई कर सकता है: ()1) ग्राहकों को जवाब देना जारी रखें (2(a) एक "आवे" संदेश दिखाएं और अनुवर्ती के लिए टिकट बनाएं, या (3) पूरी तरह से चैट को अक्षम करें और टिकट फॉर्म प्रदर्शित करें। वह व्यवहार चुनें जो आपके समर्थन मॉडल को फिट बैठता है।

कठिन बातचीत करना

1
शांत रहें

ग्राहक की भावनात्मक तीव्रता से मेल नहीं खाते। रक्षात्मक होने के बिना अपने निराशा को स्वीकार करें।

2
तथ्यों को एकत्रित करना

जवाब देने से पहले, प्रासंगिक जानकारी इकट्ठा करें: ऑर्डर विवरण, खाता स्थिति, पिछले टिकट।

3
जल्दी

यदि स्थिति में रिफंड, कानूनी धमकी, दुरुपयोग या सुरक्षा शामिल है, तो अकेले इसे संभालने की कोशिश करने के बजाय एक वरिष्ठ टीम सदस्य को प्रोत्साहित करें।

क्या मेरे पास टीम चैट (एजेंट टू एजेंट) है?+

हाँ, अन्य एजेंटों के साथ संवाद करने के लिए बातचीत में आंतरिक नोट्स का उपयोग करें। ये नोट ग्राहक को कभी नहीं दिखाई देते हैं।

जब मैं एक चैट बंद कर देता हूँ तो क्या होता है?+

बातचीत पुरालेख में चल रही है। यदि ग्राहक बाद में एक नया संदेश भेजता है, तो एक नई वार्तालाप बनाया जाता है।

समर्थन

संदेश चैनल

WhatsApp, Facebook Messenger, Instagram DM, Telegram और लाइन कनेक्ट करें ताकि संदेश ग्राहक पहले से ही आपको उसी इनबॉक्स में अपनी वेबसाइट चैट के रूप में आने के लिए भेज सकें, उसी AI सहायक द्वारा उत्तर दिया गया।

हर चैनल समान रूप से एक बार जुड़े व्यवहार करता है: ग्राहक संदेश चैट इनबॉक्स में बातचीत हो जाता है, आपका एआई सहायक उसी ज्ञान और निर्देश का उपयोग करके अपनी वेबसाइट चैट के रूप में जवाब देता है, और कोई एजेंट ले सकता है। आपके AI के बारे में कुछ भी चैनल पर कॉन्फ़िगर करने की आवश्यकता नहीं है।

क्या कनेक्टिंग दिखता है

फेसबुक मैसेंजर और इंस्टाग्राम

One click. Open Connectors → Facebook Messenger & Instagram DM, कनेक्ट पर क्लिक करें, फेसबुक अकाउंट के साथ साइन इन करें जो आपके पेज को प्रबंधित करता है और पृष्ठ का चयन करता है। जब आपका पेज इंस्टाग्राम प्रोफेशनल खाता जुड़ा हुआ है तो इंस्टाग्राम इसके साथ आता है।

WhatsApp

एक क्लिक जहां आपका प्रदाता इसे प्रदान करता है: मैसेजिंग हब कनेक्टर को खोलें और कनेक्ट व्हाट्सएप का उपयोग करें, फिर अपने व्हाट्सएप बिजनेस नंबर को लेने या बनाने के लिए मेटा के निर्देशित साइन-अप का पालन करें। अन्यथा किसी भी व्यक्ति से क्रेडेंशियल पेस्ट करें20प्रवेश द्वार

तार

दो मिनट. संदेश @BotFather in Telegram, भेजें/newbot,"बॉट" में समाप्त होने वाला एक नाम और उपयोगकर्ता नाम चुनें, और टोकन पेस्ट करें यह आपको टेलीग्राम कनेक्टर में देता है।OpsIQआपके लिए वेबहुक पंजीकृत करता है।

लाइन

एक संदेश बनानाAPIडेवलपर.line.biz पर चैनल, चैनल गुप्त और एक्सेस टोकन पेस्ट करें, फिर वेबहुक की प्रतिलिपि बनाएँURLमें दिखाया गयाOpsIQलाइन में और अपने स्वयं के ऑटो-रिप्लीज़ को बंद कर दें।

एसएमएस

अपने क्रेडेंशियल और प्रेषक नंबर के साथ मैसेजिंग हब में एक प्रदाता (ट्विलिओ, वोनेज, टर्मी और अन्य) जोड़ें।

प्रत्येक कनेक्टर ड्रॉवर के अंदर अपने स्वयं के स्टेप-बाय-स्टेप निर्देशों को दिखाता है, जिसमें वास्तव में क्या कॉपी करना है और कहाँ। आपको कभी भी एक क्लिक विकल्पों के लिए डेवलपर क्रेडेंशियल की आवश्यकता नहीं होती है।

एक चैनल चालू करना

एक चैनल कनेक्ट करना शुरू नहीं होता है। सेटिंग्स → ग्राहक चैट → उन्नत → मैसेजिंग चैनल, मास्टर टॉगल पर स्विच करें और फिर व्यक्तिगत चैनल। प्रत्येक चैनल में अपना स्वयं का AI ऑटो-रिप्लाई स्विच होता है, इसलिए आप बाकी खोलने से पहले एक पर पायलट कर सकते हैं।

1
चैनल कनेक्ट करें

कनेक्टर्स में, उस कनेक्टर के दराज में निर्देशों का उपयोग करते हुए।

2
सम्पर्क करने का परीक्षण

टेस्ट क्लिक करें। यह प्रदाता को वास्तविक कॉल करता है और आपको बताता है कि अगर कुछ भी हो तो क्या गलत है।

3
संदेश चैनल सक्षम करें

सेटिंग्स→ग्राहक चैट→उन्नत। मास्टर स्विच चालू करें, फिर चैनल।

4
अपने आप को संदेश भेजें

दूसरे खाते से, अपने पृष्ठ, संख्या या बॉट को संदेश दें। यह सेकंड के भीतर चैट इनबॉक्स में दिखाई देना चाहिए और एआई जवाब प्राप्त करना चाहिए।

विंडोज

मैसेजिंग प्लेटफॉर्म सीमित करते हैं कि ग्राहक के लिखने के बाद कितना समय तक व्यवसाय जवाब दे सकता है।OpsIQप्रत्येक बातचीत पर शेष समय को दर्शाता है और आपके लिए नियम लागू करता है।

WhatsApp

24ग्राहक के अंतिम संदेश से घंटे। उसके बाद आप केवल एक अनुमोदित टेम्पलेट भेज सकते हैं, जिसे आप उसी एडवांस्ड टैब में कॉन्फ़िगर करते हैं।

मेसेंजर और इंस्टाग्राम

24सामान्य उत्तरों के लिए घंटे; एजेंट जवाब दे सकते हैं7दिन बाद मेटा के मानव एजेंट भत्ते के तहत।

Telegram, line, एसएमएस

कोई मंच-संस्थापित विंडो नहीं है।

⚠️
यदि कोई जवाब विफल हो जाता है क्योंकि खिड़की बंद हो जाती है, तो बातचीत क्यों दिखाती है। यह एक मंच नियम है, न कि कोई एक मंच है।OpsIQसीमा।

सामान्य प्रश्न

क्या ग्राहक देखते हैं कि एआई ने जवाब दिया?+

केवल तभी जब आप उन्हें बताते हैं। जवाब आपके पृष्ठ, संख्या या बॉट से आता है जो वास्तव में मानव उत्तर के रूप में होगा। आपका एआई निर्देश स्वर को नियंत्रित करते हैं और क्या यह खुद को पहचानता है।

क्या एक एजेंट मध्य वार्तालाप पर ले जा सकता है?+

हाँ। चैट इनबॉक्स में बातचीत खोलें और जॉइन पर क्लिक करें। एआई स्टॉप, आप टाइप करते हैं, और ग्राहक अपनी तरफ एक निरंतर धागा देखता है।

क्या मैं एक चैनल को डिस्कनेक्ट कर सकता हूँ?+

कनेक्टर पर डिस्कनेक्ट का प्रयोग करें संदेश इतिहास रखा जाता है; नए संदेश बस पहुंचने बंद कर देते हैं, और मंच को उन्हें भेजने से रोकने के लिए कहा जाता है।

क्या दो कार्यस्थान उसी फेसबुक पेज का उपयोग कर सकते हैं?+

नहीं, एक पृष्ठ एक समय में एक कार्यक्षेत्र से संबंधित है। इसे कनेक्ट करना कहीं और इसे स्थानांतरित करता है, और पहला वर्कस्पेस संदेश प्राप्त करने को रोकता है, इसलिए जानबूझकर कहीं और कनेक्ट होने के बजाय डिस्कनेक्ट कर देता है।

समर्थन

रियल चैट वार्तालाप

ये उदाहरण बताते हैं कि कैसे एक अच्छी तरह प्रशिक्षित ग्राहक एआई को सामान्य परिदृश्यों को संभालने चाहिए। उन्हें अपने एआई प्रशिक्षण का परीक्षण करने और अंतराल की पहचान करने के लिए उपयोग करें।

10 बातचीत के उदाहरण

1_ ग्राहक को आदेश के बारे में पूछते हुए

परिदृश्य:
ग्राहक: हाय, मैंने एक आदेश रखा3दिन पहले और अभी तक कोई शिपिंग अधिसूचना नहीं मिली है। आदेश #ORD-5523.
क्या करना है:

एआई होना चाहिए:1To look up the order of aord-5523 कनेक्टर के माध्यम से।2यदि उपलब्ध हो तो वर्तमान स्थिति और ट्रैकिंग जानकारी की रिपोर्ट करें।3यदि आदेश में देरी हो जाती है, तो देरी को स्वीकार करें और अनुमानित समयरेखा प्रदान करें।4यदि कनेक्टर के पास कोई नहीं है तो एक शिपिंग स्थिति का आविष्कार न करें।

2To ask for the price.

परिदृश्य:
ग्राहक: आपकी प्रो प्लान की लागत कितनी है? क्या आप वार्षिक बिलिंग प्रदान करते हैं?
क्या करना है:

एआई होना चाहिए:1) वर्तमान मूल्य निर्धारण के साथ ज्ञान आधार से उत्तर.2) मासिक और वार्षिक बिलिंग के बीच अंतर को समझाएं।3यदि उत्तर ज्ञान के आधार में नहीं है, तो कहते हैं कि उन्हें बिक्री से जोड़ने की पेशकश करते हैं।4) मूल्य निर्धारण को आविष्कार नहीं करना जो ज्ञान आधार में नहीं है।

3_. गुस्से में ग्राहक वापसी की मांग करते हैं

परिदृश्य:
ग्राहक: यह हास्यास्पद है! आपका उत्पाद काम नहीं करता और मैं अब वापस पैसे चाहते हैं।
क्या करना है:

एआई होना चाहिए:1(a) चुपचाप निराशा को स्वीकार करते हैं।2() ऑर्डर नंबर या खाता ईमेल के लिए पूछें।3() वापसी प्रक्रिया को समझाएं।4एक समर्थन टिकट बनाएँ या मानव एजेंट के लिए scalate।5) एक वापसी का वादा नहीं करते, जिसके लिए मानव अनुमोदन की आवश्यकता होती है।

4. डबल बिलिंग एज केस

परिदृश्य:
ग्राहक: मैं इस महीने दो बार चार्ज किया गया था। मेरा बैंक $29.99 के दो आरोपों को दर्शाता है।
क्या करना है:

एआई होना चाहिए:1() चिंता को स्वीकार करते हैं।2) प्रासंगिक विवरण (ईमेल, प्रभारों की तिथियां).3) समझाएं कि बिलिंग के मुद्दों को मानव समीक्षा की आवश्यकता होती है।4) विवरण के साथ बिलिंग डिपार्टमेंट टिकट बनाएं।5) उच्च प्राथमिकता को निर्धारित करें।

5बहु भाषा ग्राहक

परिदृश्य:
ग्राहक: बोन्जोर, जे voudrais savoir si vous livrez en फ्रांस?
क्या करना है:

एआई होना चाहिए:1यदि उस भाषा का समर्थन किया जाता है तो ग्राहक की भाषा में जवाब दें।2) ज्ञान आधार से फ्रांस को डिलीवरी के बारे में प्रश्न का उत्तर दें।3यदि भाषा समर्थित नहीं है, तो डिफ़ॉल्ट भाषा में जवाब दें और उल्लेख करें कि कौन से भाषा उपलब्ध हैं।

6The time of time-times बातचीत

परिदृश्य:
ग्राहक: नमस्कार, क्या कोई है? मुझे अपने खाते में मदद की आवश्यकता है।
क्या करना है:

एआई होना चाहिए:1यदि बाद में AI को कॉन्फ़िगर किया गया है, तो जवाब दें और सहायता करें।2अगर बाद में घंटे टिकट बनाते हैं, तो कहते हैं: "हमारे टीम वर्तमान में ऑफ़लाइन है। मैंने आपके लिए एक समर्थन टिकट बनाया है और कोई व्यवसाय के घंटों के दौरान अनुसरण करेगा।3) टिकट संख्या प्रदान करें।

7_ प्री-पुरचेज तुलना दुकानदार

परिदृश्य:
ग्राहक: कैसे अपने उत्पाद की तुलना [प्रतियोगिता X] से करता है?
क्या करना है:

एआई होना चाहिए:1() अपने उत्पाद की ताकत को वास्तव में वर्णित करें।2(d) क्या कोई भी प्रतियोगी नहीं है?3यदि ज्ञान के आधार में तुलना पृष्ठ है, तो इसके लिए लिंक करें।4यदि ग्राहक आपके पास मौजूद सुविधाओं के बारे में पूछता है, तो ईमानदार रहें।

8ग्राहक एक सिफारिश चाहता है

परिदृश्य:
ग्राहक: मैं प्रति माह लगभग 100 ऑर्डर के साथ एक छोटा ऑनलाइन स्टोर चलाता हूं। कौन सा प्लान मेरे लिए सही है?
क्या करना है:

एआई होना चाहिए:1यदि आवश्यक हो तो प्रश्नों को स्पष्ट करने के लिए पूछो (उदाहरण के लिए, कौन सी सुविधाएँ सबसे ज्यादा मायने रखती हैं)।2) ज्ञान के आधार पर एक योजना की सिफारिश करें।3() यह समझाना क्यों कि वह योजना अपनी आवश्यकताओं को पूरा करती है।4) वह कहते हैं कि वे एक छोटी योजना के साथ शुरू हो सकते हैं और बाद में अपग्रेड कर सकते हैं।

9ग्राहक एक अनधिकृत छूट प्राप्त करने की कोशिश कर रहा है

परिदृश्य:
ग्राहक: मैंने देखा कि आप 50% छूट दे सकते हैं। क्या मेरे पास एक है?
क्या करना है:

एआई होना चाहिए:1यदि कोई अस्तित्व हो तो Politely वर्तमान प्रचार की व्याख्या करता है।2(in) ऐसा नहीं है जो ज्ञान के आधार पर नहीं हैं, बल्कि छूट का वादा करता है।3यदि ग्राहक बने रहता है तो उन्हें बिक्री टीम से जोड़ने की पेशकश करते हैं।

10 ग्राहक को सुविधा के साथ मदद की जरूरत है

परिदृश्य:
ग्राहक: मैं अपने डेटा को कैसे निर्यात करूं? मुझे निर्यात बटन नहीं मिल सकता।
क्या करना है:

एआई होना चाहिए:1) ज्ञान आधार से चरण-दर-चरण निर्देश प्रदान करें।2) सटीक पृष्ठ पथ और बटन स्थान को शामिल करें।3यदि सुविधा को एक विशिष्ट योजना की आवश्यकता होती है, तो उल्लेख करें।4यदि सुविधा मौजूद नहीं है, तो ईमानदार रहें और विकल्प का सुझाव दें।

समर्थन

चैट रूटिंग और एस्केलेटर

जब एक लाइव चैट को वास्तविक व्यक्ति की आवश्यकता होती है, तो एआई दो सवालों का जवाब देता है: जो टीम इस बातचीत के मालिक हैं और कौन से कहा जाना चाहिए। दोनों सेटिंग्स, क्लाइंट चैट, सपोर्ट फ्लो में एआई रूटिंग विभागों के तहत कॉन्फ़िगर किए गए हैं।

कौन से विभाग एआई का उपयोग कर सकते हैं

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

💡
यदि कोई विभाग सभी को सक्षम नहीं है तो, OpsIQ हर विभाग में विरासत के मार्ग पर वापस गिर जाता है, यह पता लगा सकता है कि सुरक्षा नेट के रूप में, कॉन्फ़िगरेशन विकल्प नहीं।

कौन है वृद्धि

यह वह हिस्सा है जो अधिकांश लोग कॉन्फ़िगर करने की उम्मीद करते हैं और इसकी आवश्यकता नहीं होती है। जब एआई एक चैट को scalates, तो वह एक बात है। OpsIQ उस विभाग से जुड़े लोगों को ईमेल करें। आप उस सूची को एक बार, टीम और विभागों के पृष्ठ पर प्रबंधित करते हैं, और दोनों टिकटों की वृद्धि और चैट escalation का पालन करते हैं।

विभाग टीम के सदस्य

विभाग से जुड़े प्रत्येक सक्रिय व्यवस्थापक को अपनी प्रतिलिपि प्राप्त होती है। निलंबित और अक्षम खातों को छोड़ दिया जाता है।

प्राथमिक व्यवस्थापक

जब कोई टीम सदस्य संलग्न नहीं होते तो इसका उपयोग किया जाता है, इसलिए एक वृद्धि अभी भी किसी तक पहुंचती है।

कोई भी संलग्न नहीं है

डिलिवरी संभव नहीं है। रूटिंग पैनल संकेत करता है कि विभाग लाल और एआई आगंतुक को एक मानव अधिसूचित नहीं बताता है।

⚠️
एक विभाग का अपना ईमेल पता जानबूझकर कभी प्राप्तकर्ता के रूप में इस्तेमाल नहीं किया जाता है। यह पता विभाग का भीतर की टिकट मेलबॉक्स है, जो आने वाला मेल खुलने वाले टिकटों से मेल खाता है। एक अनुमान भेजे गए थे कि किसी व्यक्ति तक पहुंचने के बजाय एक नया टिकट के रूप मे वापस पाइप किया जाएगा।

कैच-सभी विभाग

वास्तव में एक विभाग कैच-सभी चिह्न को पूरा करता है। यह चैट करता है एआई आत्मविश्वास से नहीं हो सकता है, और यह सामान्य पथ के बजाय अंतिम सहारा है।

1
स्पष्ट संकेत जीत

बिलिंग शब्द एक बिलिंग विभाग, होस्टिंग और त्रुटि को एक तकनीकी के लिए शब्दकरण करने के लिए जाता है, जो बिक्री के लिए शब्दों को खरीदता है।

2
एआई क्लासिफायर अगले प्रयास करता है

यदि कीवर्ड अनिर्णय हैं, तो मॉडल बातचीत को पढ़ता है और सक्षम विभागों से चुनता है।

3
फिर कैच-सभी

जब दोनों खाली हो जाते हैं तो कैच-सभी विभाग को चैट प्राप्त होता है।

4
बिक्री गार्ड

अगर कैच-ऑल एक बिक्री विभाग है और आगंतुक ने कोई खरीद संकेत नहीं दिखाया, OpsIQ इसके बजाय एक समर्थन या तकनीकी विभाग के लिए लग रहा है, इसलिए साधारण समर्थन प्रश्न बिक्री में जमा नहीं होते हैं।

क्या आगंतुक को बताया गया है?

यदि escalation ईमेल बाहर निकल जाता है, तो AI बताता है कि आगंतुक टीम को सूचित किया गया है। अगर यह बाहर नहीं जा सकता है, एआई कुछ ईमानदार कहता है और उन्हें चैट में संदेश छोड़ने के लिए आमंत्रित करता है। यह दावा नहीं करेगा कि जब कोई ईमेल भेजा गया था तब मानव को सतर्क नहीं किया जाएगा।

पैनल कहते हैं "कोई भी निर्दिष्ट करने के लिए" एक विभाग के लिए+

कोई भी इससे जुड़ा नहीं है। ओपन टीम और विभागों, कम से कम एक सक्रिय व्यवस्थापक संलग्न करते हैं, फिर सेटिंग्स पेज को पुनः लोड कर देते हैं। पैनल लाइव पढ़ता है।

क्या चैट escalations टीम के अलावा कहीं अन्य हो सकता है?+

हाँ, एक कस्टम पता पहले किसी विभाग के लिए बचाया अभी भी टीम सूची को ओवरराइड करता है। नए सेटअपों को इसके बजाय विभाग से जुड़ना चाहिए, इसलिए बनाए रखने के लिए एक जगह है।

क्यों मेरी पकड़े गए थे?+

जांचें कि क्या यह एक बिक्री विभाग है। अगर यह है, और आगंतुक ने कोई खरीद संकेत नहीं दिखाया है, तो पता लगाया जा सकता है कि क्या वह बिक्री विभाग हैं? OpsIQ उद्देश्य पर एक समर्थन या तकनीकी विभाग के लिए मार्ग।

समर्थन

मेलबॉक्स और ड्राफ्ट ईमेल करें

OpsIQ ईमेल मेलबॉक्स से कनेक्ट कर सकते हैं ताकि स्वचालित रूप से आने वाले ईमेल से टिकट तैयार किया जा सके और उत्तर को ईमेल के रूप में भेज दिया जा सके। यह मानव समीक्षा के लिए AI-drafted उत्तर भी प्रदान करता है।

ईमेल
टिकट करने के लिए ईमेलA IMAP Mailbox on left food incoming email to a Threaded टिकट with the right, and the right.ईमेलकार्यस्थल[email protected] · IMAPरिफंड अनुरोध[email protected]लॉगइन नहीं कर सकता[email protected]चालान प्रतिलिपि[email protected]टिकट #1042ईमेल सेमैं के लिए एक वापसी की तरह होगाडुप्लिकेट चार्ज...एआई ड्राफ्टउत्तर की समीक्षा करें और भेजें1INGESTIMAP और आगे बढ़ना2TO TICKETSस्वचालित रूप से थ्रेड3AI DRAFTSसमीक्षा के लिए जवाब
ईमेल को IMAP _(या फ़ॉरवर्डिंग) में खींचो, प्रत्येक को थ्रेडेड टिकट में बदल दें और AI ने समीक्षा के लिए जवाब का प्रारूप तैयार किया।

मेलबॉक्स कनेक्ट करना

प्रोटोकॉल

IMAP(अधिकांश प्रदाता)Gmail API(Google Workspace), या Microsoft Graph (Outlook)365).

सेटिंग्स की जरूरत

होस्ट, पोर्ट, एन्क्रिप्शन (Prison)SSL/TLS), उपयोगकर्ता नाम, पासवर्ड या ऐप पासवर्ड, फ़ोल्डर (आमतौर पर INBOX)।

विभाग का नक्शा

मेलबॉक्स को एक टिकट विभाग में मैप करें। ईमेल से [email protected] "समर्थन" विभाग में टिकट बनाते हैं।

Gmail सेटअप (चरण बाय स्टेप)

1
Enable 2_-Step सत्यापन

Google Account> Security> 2_-Step सत्यापन और इसे सक्षम करने के लिए जाओ।

2
एक ऐप पासवर्ड बनाएँ

Google Account> Security> App passwords. चुनें "mail" and "अन्य (अन्य)OpsIQ(s))" कॉपी करें 16-character password.

3
OpsIQ_

ईमेल पर जाएँ > मेलबॉक्स > जोड़ें. सेट होस्ट: imap.gmail.com, बंदरगाह: 993, एन्क्रिप्शन: SSL, उपयोगकर्ता नाम: [email protected] पासवर्ड:

4
टेस्ट

टेस्ट कनेक्शन पर क्लिक करें यदि सफल हो, OpsIQ कॉन्फ़िगर किए गए अंतराल पर नए ईमेल के लिए मतदान शुरू करेगा।

Outlook 365सेटअप

1
चेक IMAP सक्षम है

Outlook सेटिंग्स में > मेल > सिंक ईमेल, सुनिश्चित करें IMAP सक्षम है।

2
अनुप्रयोग पासवर्ड या आधुनिक auth का उपयोग करें

यदि MFA सक्षम है, तो एक ऐप पासवर्ड बनाएं। अन्यथा, अपने नियमित पासवर्ड का उपयोग करें।

3
OpsIQ_

मेजबान: outlook.office365.com, बंदरगाह: 993, एन्क्रिप्शन: SSL, उपयोगकर्ता नाम: [email protected].

cPanel वेबमेल सेटअप

1
Find IMAP _set

में cPanel > ईमेल खाते, के लिए अपने ई-मेल खाता क्लिक करें IMAP सेटिंग्स।

2
OpsIQ_

आमतौर पर होस्ट: mail.yourdomain.com या आपका सर्वर होस्टनाम, पोर्ट: 993 (SSL) या 143 (STARTTLS), उपयोगकर्ता नाम: पूर्ण ईमेल पता।

एआई ईमेल ड्राफ्ट

जब ऑटो-रिप्लाई को "ड्रॉफ्ट" मोड में सेट किया जाता है, तो एआई उन उत्तर ड्राफ्ट उत्पन्न करता है जो ड्राफ्ट कतार में दिखाई देते हैं। आप कर सकते हैं:

समीक्षा

सटीकता के लिए ड्राफ्ट और चेक पढ़ें।

संपादित करें

भेजने से पहले पाठ, स्वर या सामग्री को संशोधित करें।

भेजें

ड्राफ्ट को मंजूरी दे दी और इसे एक ईमेल उत्तर के रूप में भेज दिया।

साक्ष्य

यदि यह उचित नहीं है तो ड्राफ्ट को हटा दें।

ऑटो-सेंड

यदि विश्वास पर्याप्त है और ऑटो-सेंड सक्षम है, तो ड्राफ्ट को एक विन्यास योग्य देरी के बाद स्वचालित रूप से भेजा जाता है।

क्यों ईमेल टिकट में परिवर्तित नहीं किया जा रहा है?+

जाँच करें:1क्या मेलबॉक्स जुड़ा हुआ है और स्वस्थ है? ई-मेल> मेलबॉक्स में हरे रंग की स्थिति को देखें।2क्या यह क्रॉन जॉब चल रहा है? ईमेल मतदान के लिए क्रोन की आवश्यकता होती है।3क्या ईमेल को फ़िल्टर किया गया है या आईबीओएक्स के अलावा किसी फ़ोल्डर में स्थानांतरित किया जा रहा है?

क्या मैं कई मेलबॉक्सों का उपयोग कर सकता हूँ?+

प्रत्येक मेलबॉक्स को एक अलग विभाग में मैप किया जा सकता है। [email protected] समर्थन करने के लिए चला जाता है, [email protected] बिलिंग के लिए चला जाता है।

समर्थन

ग्राहक संतुष्टि (CSAT)

CSAT टिकट और चैट संतुष्टि का उपाय करता है, सतहों को अखुश प्रतिक्रियाएं होती हैं और AI और मानव परिणामों की तुलना करती हैं।

उत्पाद स्क्रीन
ग्राहक संतुष्टिCSAT पेज स्कोर कार्ड, डिट्रेक्टर फॉलो-अप, टिप्पणियां, विभाग और एजेंट ब्रेकडाउन को जोड़ती है।ग्राहक संतुष्टिकार्यस्थलरेस्पोन्स386AVERAGE4.6POSITIVE91%लाइव WORKSPACEDetractor अनुवर्ती12 मूल्यांकन की गई प्रतिक्रियाओं1–2समीक्षाटिकट सर्वेक्षणSent 24h बंद होने के बादस्वचालितचैट फीडबैकएआई 4.5 · मानव 4.7तुलनाएजेंट व्यूस्कोर और प्रतिक्रिया गिनतीकोच1WATCH AVERAGEप्रवृत्ति का प्रयोग करें, एक अंक नहीं2FOLLOW DETRACTORSटिप्पणी पढ़ें3COMPARE FAIRLYएआई और मानव
CSAT पेज स्कोर कार्ड, डिट्रेक्टर फॉलो-अप, टिप्पणियां, विभाग और एजेंट ब्रेकडाउन को जोड़ती है।

टिकट सर्वेक्षण बंद होने के बाद निर्धारित होते हैं (सामान्य रूप से) 24 कुछ दिनों बाद, सकारात्मक प्रतिक्रिया का एक स्कोर है4या 5A queue in the score of a quee. 1 या2और ग्राहक से संपर्क करने से पहले टिकट/संविदा पढ़ें।

चैट फीडबैक को एआई-रिसोल्ड और मानव-हैंडेड वार्तालापों के लिए अलग से रिपोर्ट किया गया है। कम नमूना आकार का उपयोग एजेंट या मॉडल को रैंक करने के लिए नहीं किया जाना चाहिए।

समर्थन

टीम ईमेल प्रसारण

ईमेल प्लेटफॉर्म पेज एक अधिकृत ऑपरेटर को सभी सक्रिय एजेंटों, चयनित एजेंट या विभाग को एक बार संदेश भेजने देता है और समीक्षा भेजता है इतिहास।

उत्पाद स्क्रीन
ईमेल प्लेटफॉर्मटीम ईमेल संगीतकार दर्शकों, विषय, संदेश और पिछले प्रसव के इतिहास को दर्शाता है।ईमेल प्लेटफॉर्मकार्यस्थलरेजिडेंट12DELIVERED11एफएआईएलडी1लाइव WORKSPACEश्रोतासभी सक्रिय एजेंटचयनितविषयजुलाई समर्थन रोटारेडीसंदेशअनुसूची और वृद्धि नोटरेडीइतिहासपिछले प्रसारण और परिणामदेखें1CHOOSE PEOPLEसभी, चयनित या टीम2WRITE CLEARLYविषय और संदेश3REVIEW HISTORYपरिणाम की पुष्टि करें
टीम ईमेल संगीतकार दर्शकों, विषय, संदेश और पिछले प्रसव के इतिहास को दर्शाता है।

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

समर्थन

मेलबॉक्स, वितरण और इनबाउंड ईमेल

यह कैसे कॉन्फ़िगर करें OpsIQ ईमेल भेजता है, टिकट में इनबाउंड संदेशों को बदल देता है और यह साबित करता है कि भेजने वाला डोमेन तैयार है।

उत्पाद स्क्रीन
ईमेल सेटिंग्सईमेल सेटिंग्स आउटबाउंड रूटिंग को जोड़ती है, पहचान से मेलबॉक्स ingestion, प्रसव की जाँच और परीक्षण ईमेल।ईमेल सेटिंग्सकार्यस्थलOutBoundSMTPMAILBOXES3डोमिनिकपासलाइव WORKSPACEPreferred कनेक्टरSMTP _/ प्रदाता कनेक्टरकॉन्फ़िगरपहचान सेSupport <[email protected]>रेडीIMAP मेलबॉक्स[email protected]· INBOXमतदानउपलब्धताएसपीएफ · डीकेआईएम · डीएमएआरसीपास1CHOOSE OUTBOUNDकनेक्टर या SMTP_2CONNECT INBOXIMAP या पाइप3टेस्टभेजना और सत्यापित करना
ईमेल सेटिंग्स आउटबाउंड रूटिंग को जोड़ती है, पहचान से मेलबॉक्स ingestion, प्रसव की जाँच और परीक्षण ईमेल।

आउटबाउंड ईमेल

पूर्ण प्रशासक पसंदीदा ईमेल कनेक्टर चुन सकते हैं; OpsIQ कॉन्फ़िगर करने के लिए वापस गिर जाता है SMTP उपयुक्त होने पर / मेल डिलीवरी। नाम / पते से एक recognisable सेट करें, एक परीक्षण भेजें और जांचें 24-घंटे की सफलता / विफलता मीट्रिक।

मेलबॉक्स

A IMAP मेलबॉक्स को एक नाम, ईमेल पता, लक्ष्य विभाग, होस्ट, पोर्ट, सुरक्षा मोड, उपयोगकर्ता नाम, पासवर्ड, फ़ोल्डर, मतदान राज्य और प्रमाणपत्र-वैलिडेशन विकल्प की आवश्यकता होती है। अब तक क्रोन की प्रतीक्षा करने से पहले ingestion को सत्यापित करना।

त्वरित पाइपिंग

उसी सर्वर पर, एक मेल पाइप सीधे कच्चे RFC822 संदेश पारित कर सकता है। एक रिमोट मेल सर्वर अपने टोकन का उपयोग करके संरक्षित इनबाउंड एंडपॉइंट को कच्चे संदेश पोस्ट कर सकता हैं। दोनों पथ समान डिडुप्लीशन, थ्रेडिंग और टिकट रूटिंग पाइपलाइन में प्रवेश करते हैं।

उपलब्धता

SPF/DKIM/DMARC चेक डोमेन से कॉन्फ़िगर किए गए सलाहकार सबूत हैं। एक ग्रीन चेक इनबॉक्स प्लेसमेंट की गारंटी नहीं देता है, लेकिन उत्पादन संदेश भेजने से पहले असफलता तय की जानी चाहिए।

समर्थन

समर्थन पोर्टल स्टूडियो

समर्थन पोर्टल स्टूडियो बाहरी छवि परिसंपत्तियों की आवश्यकता के बिना ग्राहक-facing समर्थन अनुभव को डिजाइन और प्रकाशित करता है।

उत्पाद स्क्रीन
समर्थन पोर्टल स्टूडियोपोर्टल स्टूडियो थीम, नेविगेशन, ज्ञान, टिकट, सहायक, फॉर्म, पाद लेख और के साथ एक उत्तरदायी पूर्वावलोकन दिखाता है CSS नियंत्रणसमर्थन पोर्टल स्टूडियोकार्यस्थलTEMPLATEआधुनिकपूर्वावलोकनडेस्कटॉपराज्यड्राफ्टलाइव WORKSPACEविषयब्रांड रंग और टाइपोग्राफीसंपादित करेंनेविगेशनज्ञान, टिकट, सहायकसंपादित करेंटिकट फॉर्मफील्ड्स, रूटिंग और कॉपीसंपादित करेंप्रकाशित करनामान्य करें और लाइव बनाएंसमीक्षा1CHOOSE TEMPLATEसंरचना से प्रारंभ2PREVIEW SIZESडेस्कटॉप मोबाइल3PUBLISH SAFELYफिर रिलीज की समीक्षा करें
पोर्टल स्टूडियो थीम, नेविगेशन, ज्ञान, टिकट, सहायक, फॉर्म, पाद लेख और के साथ एक उत्तरदायी पूर्वावलोकन दिखाता है CSS नियंत्रण

टेम्पलेट को एक प्रारंभिक बिंदु के रूप में उपयोग करें, फिर थीम, लेआउट, नेविगेशन, ज्ञान खोज, टिकट फॉर्म, सहायक, पाद लेख, ब्रांड, टिकट व्यवहार, कस्टम CSS और सामान्य सेटिंग्स को कॉन्फ़िगर करें। प्रकाशन से पहले डेस्कटॉप, टैबलेट और मोबाइल का पूर्वावलोकन करें।

समर्थन

ज्ञान अंतराल

ज्ञान-गैप कतार ग्राहक प्रश्नों को एकत्र करता है ताकि टीम कवरेज में सुधार कर सके तो एआई आत्मविश्वास से जवाब नहीं दे सकता।

उत्पाद स्क्रीन
ज्ञान अंतरालअंतर कतार रैंक याद या कम आत्मविश्वास सवाल और ट्रैक करता है कि क्या टीम ने उन्हें हल कर दिया है।ज्ञान अंतरालकार्यस्थलOPEN GAPS28REPEATED9RESOLVED116लाइव WORKSPACEप्रवास सीमापूछो 14 बारउच्चसप्ताहांत समर्थनपूछो 8 बारमध्यमरिफंड समयपूछो 6 बारमध्यमAPI क्षेत्रपूछो 3 बारकम1REVIEW QUESTIONबातचीत संदर्भ देखें2CHOOSE FIXअनुच्छेद या संकेत3RESOLVEअगले जवाब सत्यापित करें
अंतर कतार रैंक याद या कम आत्मविश्वास सवाल और ट्रैक करता है कि क्या टीम ने उन्हें हल कर दिया है।

मूल प्रश्न और पास की बातचीत पढ़ने के लिए एक अंतर खोलें, फिर सही फिक्स चुनें: मौजूदा लेख को अपडेट करें, एक नया ज्ञान आलेख बनाएं, एक व्यवसाय तथ्य जोड़ें, सही कनेक्टर डेटा बदलें या वृद्धि निर्देश बदल दें। मार्क यह केवल मूल्यांकन या वास्तविक परीक्षण के बाद ही स्वीकार्य उत्तर देता है।

समर्थन

स्थिति पृष्ठ प्रशासन

स्टेटस एडमिनिस्ट्रेशन पेज घटकों, वर्तमान राज्यों और अद्यतनों का उपयोग करके सेवा स्वास्थ्य और घटनाओं को सूचित करता है।

उत्पाद स्क्रीन
स्थिति प्रशासनस्थिति प्रशासन घटकों और घटनाओं को सूचीबद्ध करता है ताकि ऑपरेटर स्पष्ट, समय-समय पर सेवा की जानकारी प्रकाशित कर सकें।स्थिति प्रशासनकार्यस्थलOVERALLसंचालनात्मकघटक7INCIDENTS1लाइव WORKSPACEवेबसाइटसंचालनात्मकग्रीनAPIअवक्रमित प्रदर्शनदेखोईमेल ingestionसंचालनात्मकग्रीनवर्तमान घटनाAPI विलंबता जांचखुला1UPDATE COMPONENTस्पष्ट अवस्था चुनें2POST INCIDENTसमय पर अद्यतन3RESOLVEसारांश के साथ बंद
स्थिति प्रशासन घटकों और घटनाओं को सूचीबद्ध करता है ताकि ऑपरेटर स्पष्ट, समय-समय पर सेवा की जानकारी प्रकाशित कर सकें।

जब कोई घटना ग्राहकों को प्रभावित करती है, तो एक प्रारंभिक नोटिस प्रकाशित करें, तथ्यों के रूप में समयबद्ध अद्यतन जोड़ें, और एक संक्षिप्त संकल्प सारांश के साथ बंद करें। स्थिति पृष्ठ का उपयोग आंतरिक डीबग लॉग के रूप मे न करें; संवेदनशील निदान में संबंधित हैं OpsIQ और सर्वर लॉग।

एआई

अपना AI सेट अप करें

एआई कॉन्फ़िगरेशन वह है जहां आप अपने एआई प्रदाता, मॉडल और लागत नियंत्रण का चयन करते हैं। OpsIQ एकाधिक प्रदाताओं का समर्थन करता है: क्लाउड (क्लॉड)Anthropic GPT-4o (GPT-4O)OpenAI), Gemini (Google), और ग्रोक (xAI)। आप अपना खुद का उपयोग कर सकते हैं API कुंजीBYOK यदि आपकी योजना पर उपलब्ध हो तो एआई प्रबंधित करें।

AI सेट अप करें
एआई विन्यासएक AI सेटिंग्स पैनल: एक प्रबंधित-AI / BYOK प्रदाता टॉगल, एक मॉडल चयनकर्ता और मासिक टोकन-बजट मीटर।एआई विन्यासकार्यस्थलएआई विन्यासप्रदाताप्रबंधित एआईआपकी कुंजी ()BYOK)मॉडलCrech · संतुलितमासिक एआई बजट62%1TWO MODESप्रबंधित एआई या BYOK_2PICK A MODELस्पीड बनाम गहराई3BUDGETSटोकन कैप्स और लागत नियंत्रण
प्रबंधित एआई या अपनी कुंजी चुनें, स्पीड बनाम गहराई के लिए एक मॉडल चुनें और एक टोकन बजट के साथ मासिक खर्च करें।

एक प्रदाता का चयन करना

क्लोद (Calude)Anthropic)

मजबूत तर्क, तथ्यों के साथ सावधान, निम्नलिखित जटिल निर्देशों पर अच्छा है। मॉडल: claude-sonnet-4-20250514, claude-3.5-sonnet. के लिए सर्वश्रेष्ठ: समर्थन बातचीत, तकनीकी प्रश्न, विस्तृत विश्लेषण।

GPT-4o (GPT-4O)OpenAI)

फास्ट, रचनात्मक, अच्छा सामान्य ज्ञान। मॉडल: gpt-4o, gpt-3o-mini. के लिए सर्वश्रेष्ठ: त्वरित प्रतिक्रियाएं, रचनात्मक लेखन, व्यापक ज्ञान प्रश्न।

Gemini(Google)

वास्तव में पूछे जाने वाले प्रश्न, बहु भाषा समर्थन। मॉडल:gemini-2.0-फ्लैश gemini-1.5-pro के लिए सर्वश्रेष्ठ: बहु भाषा समर्थन, तथ्यात्मक लुकअप।

पीला (xAI)

फास्ट, संक्षिप्त उत्तर। मॉडल: grok-3-मिनी-फास्ट: के लिए सर्वश्रेष्ठ त्वरित जवाब, आकस्मिक स्वर।

BYOK बनाम प्रबंधित AI

BYOK (Bring your own key)

आप प्रदाता से अपना खुद का API key प्रदान करते हैं। आप सीधे प्रदाता को भुगतान करते हैं मॉडल चयन और उपयोग पर पूर्ण नियंत्रण।

प्रबंधित एआई

एआई आपके हिस्से के रूप में प्रदान की जाती है OpsIQ योजना नहीं API कुंजी की जरूरत है। उपयोग आपकी योजना के एआई क्रेडिट संतुलन के खिलाफ मीटर है।

चरण-दर-चरण सेटअप

1
एआई कॉन्फ़िगरेशन पर जाएं

OpsIQ _admin में, सेटिंग्स> AI कॉन्फ़िगरेशन पर नेविगेट करें।

2
प्रदाता का चयन करें

ड्रॉपडाउन से अपने एआई प्रदाता का चयन करें।

3
प्रवेश API कुंजी

यदि उपयोग करना BYOK, अपना दर्ज करें API कुंजी प्रबंधित AI के लिए, यह स्वचालित रूप से संभाला जाता है।

4
मॉडल चुनें

विशिष्ट मॉडल का उपयोग करने के लिए चुनें। छोटे मॉडल तेजी से और सस्ता हैं। बड़े मॉडल बेहतर गुणवत्ता वाले उत्तर देते हैं।

5
परीक्षण कनेक्शन

सत्यापित करने के लिए "टेस्ट कनेक्शन" पर क्लिक करें API कुंजी और मॉडल काम कर रहे हैं। एक ग्रीन चेकमार्क का मतलब सफलता है।

6
सेव

अपने एआई कॉन्फ़िगरेशन को सक्रिय करने के लिए सेव करें।

लागत नियंत्रण

मासिक बजट

AI टोकन पर अधिकतम मासिक खर्च करें। जब बजट पहुंच जाता है, तो एआई पूरी तरह से रोकने के बजाय gracefully गिरावट (शॉर्टर प्रतिक्रियाओं, कोई ऑटो-रिप्लाई नहीं) की सुविधा देता है।

प्रति वार्तालाप टोकन सीमा

प्रति एकल बातचीत अधिकतम टोकन। अत्यधिक क्रेडिट लेने से दूर-दूर तक बातचीत को रोकता है।

कम संतुलन अलर्ट

जब आपका एआई क्रेडिट बैलेंस थ्रेसहोल्ड के नीचे गिर जाता है (डिफ़ॉल्ट: 50,000 Tokens, व्यवस्थापक में एक चेतावनी दिखाई देती है। इसे एआई कॉन्फ़िगरेशन में सेट करें।

प्रति-कार्य स्थान विन्यास

एआई विन्यास प्रति-कार्य स्थान है। यदि आप एकाधिक साइटों का प्रबंधन करते हैं, तो प्रत्येक कार्यक्षेत्र एक अलग प्रदाता, मॉडल और बजट का उपयोग कर सकता है। वर्कस्पेस वैश्विक डिफ़ॉल्ट को ओवरराइड नहीं होने तक विरासत में मिलती है। प्रति कार्यस्थान को कॉन्फ़िगर करने के लिए: कार्यस्थल पर स्विच करें, फिर AI कॉन्फ़िगरेशन पर जाएं और वहां सेटिंग्स को बचाएं।

हो रही API कुंजी

Anthropic (क्लॉड)

जाओ console.anthropic.com > API कुंजी बनाएं: "sk-ant-" के साथ शुरू होने वाली कुंजी को कॉपी करें।

OpenAI (GPT)

जाओ platform.openai.com > API कीज़ > नई गुप्त कुंजी बनाएँ। "sk-" के साथ शुरू होने वाली कुंजी को कॉपी करें।

गूगल (Google)Gemini)

जाओ aistudio.google.com > प्राप्त करना API कुंजी। अपनी परियोजना के लिए एक कुंजी बनाएं। कुंजी कॉपी करें।

xAI (ग्रीक)

जाओ console.x.ai > API कुंजी बनाएं और अपनी कुंजी कॉपी करें।

अपने एआई सेटअप का परीक्षण

परिदृश्य:
अपने API key में प्रवेश करने के बाद, "टेस्ट कनेक्शन" पर क्लिक करें। आपको एक ग्रीन चेकमार्क और AI से नमूना प्रतिक्रिया देखना चाहिए।
क्या करना है:

यदि परीक्षण विफल हो जाता है: (1) जांचें कि API कुंजी सही है (कोई अतिरिक्त रिक्त स्थान नहीं)।2) जांचें कि आपके खाते ने प्रदाता के साथ बिलिंग की स्थापना की है।3) जांचें कि मॉडल का नाम मान्य है।4यदि आप प्रबंधित AI का उपयोग करते हैं तो अपने लाइसेंस को सत्यापित करें।

कौन से प्रदाता सबसे अच्छा है?+

कोई भी सर्वश्रेष्ठ प्रदाता नहीं है क्लाउड समर्थन बातचीत के लिए उत्कृष्ट है। GPT-4o तेज और बहुमुखी है। Gemini एकाधिक भाषाओं को अच्छी तरह से संभालती है। प्रत्येक की कोशिश करें और देखें कि कौन आपके विशिष्ट उपयोग मामले के लिए सर्वोत्तम परिणाम पैदा करता है।

क्या मैं बाद में प्रदाताओं को स्विच कर सकता हूँ?+

हाँ। किसी भी समय प्रदाता और API key को बदलें। मौजूदा वार्तालाप इतिहास संरक्षित है। AI भविष्य में सभी बातचीत के लिए नए प्रदाता का उपयोग करेगा।

जब मैं क्रेडिट से बाहर निकलता हूँ तो क्या होता है?+

एआई कृपापूर्वक गिरावट: प्रतिक्रियाएं कम, ऑटो-रिप्लाई ठहराव बन जाती हैं और व्यवस्थापक एक कम संतुलन चेतावनी दिखाता है। कोर ट्रैकिंग, टिकट और CRM बिना AI के काम जारी रहता है।

एआई

स्मार्ट और सस्ता ग्राहक चैट

ऑप्ट-इन नियंत्रणों का एक सेट जो आपके ग्राहक को स्मार्ट चैट करने के लिए या तो स्मार्ट (इस कारण किसी ग्राहक के खाते में मानव एजेंट की तरह) या सस्ता (यह एआई कम, या कुछ चरणों में जवाब भेजता है)। हर नियंत्रण डिफ़ॉल्ट और स्वतंत्र रूप से बंद होता है, जिससे कोई भी अन्य व्यवहार कभी नहीं बदल पाता है। अधिकांश सेटिंग्स> क्लाइंट चैट > व्यवहार; कुछ पर अपने एआई को स्थापित कर रहे हैं और अपनी एआई ट्रेन करते हैं।

स्मार्ट उत्तर (एजेंट मोड)

एक सामान्य chatbot एक दृष्टिकोण से एक सवाल का जवाब देता है। एजेंट मोड पर, सहायक एक ही मोड़ में कई बार पढ़ा-केवल खाता चेक कर सकता है और उन्हें क्रॉस-रिफरेंस कर सकता हैं, उदाहरण के लिए "मैंने खुला टिकट किया है, और मेरा शेष मेरे अगले नवीनीकरण के लिए पर्याप्त है?" गणित के साथ एक उत्तर में जवाब दिया जाता है। यह केवल खाते या वापसी प्रश्नों पर सत्यापित ग्राहकों के लिए संलग्न है; सब कुछ सामान्य एकल लीवर पथ चलाता है।

एजेंट मोड

प्रति बारी में कुछ ही पढ़ने-केवल लुकअप तक, जवाब देने से पहले क्रॉस-रिफरेंस। जब आपके पास एक जुड़ा हुआ प्लेटफॉर्म है तब चालू करें (WHMCS, Shopify, Stripe, Zendesk, आदि)। बंद = आज के एकल-lookup व्यवहार, अपरिवर्तित।

एजेंट उत्तर के लिए गहराई को सोचना

जटिल मोड़ पर मॉडल कारणों (कम / मध्यम / उच्च) कितना कठिन है। कम से शुरू; सबसे समर्थन सवाल वहाँ अच्छी तरह से संभाला जाता है।

एजेंट मॉडल

जटिल एजेंट के लिए एक मजबूत मॉडल पिन करें, इसलिए रोज़मर्रा की चैट प्रकाश, सस्ते मॉडल पर रहती है और केवल हार्ड टर्न गहराई तक भुगतान करती है। खाली = आपका सामान्य ग्राहक-चैट मॉडल.

आगे की योजना · एक-पास उत्तर (beta)

एक छोटी योजना कदम तय करता है कि कौन से लुकअप को खींचने के लिए और क्या ज्ञान आधार की आवश्यकता है, फिर कई चरणों के बजाय एक मुख्य कॉल में जवाब देता है। एजेंट मोड के तहत उप-टोगल। यह तब तक सक्षम नहीं किया जा सकता जब तक कि एजेंट मोड चालू न हो।

बातचीत और समझ

लंबी वार्तालाप स्मृति (beta)

पुराने संदेशों (नाम, टिकट / चालान संख्या, राशि, निर्णय) का संक्षिप्त चल सारांश रखता है ताकि सहायक पूरे ट्रांसक्रिप्ट को फिर से समाप्त किए बिना बहुत लंबे चैट में लगातार रहता है। समर्थन-भारी, लंबे धागे के लिए सर्वश्रेष्ठ; एजेंट मोड वाले जोड़े।

Typo सहिष्णुता

छोटे टाइपो ("मेरे ओपन टिकट", "अवैतनिक चालान") को इच्छित शब्दों के रूप में पढ़ता है ताकि सही जानकारी याद होने की बजाय पाई जा सके। हर जुड़े प्लेटफॉर्म के साथ काम करता है डिफ़ॉल्ट रूप से बंद; मोबाइल-भारी चैट के लिए उपयोगी।

लीन खाता संदर्भ

केवल ग्राहक के खाते में स्नैपशॉट संलग्न करता है जब सवाल वास्तव में उनके खाते (संतुलन, चालान, टिकट, सेवाएं) के बारे में होता है, इसे सामान्य प्रश्नों पर छोड़ देता है। कोई गुणवत्ता हानि नहीं होने के साथ लागत काटता है। सहायक अभी भी खाता लाइव प्राप्त कर सकता है जब एक बारी की जरूरत होती है।

लागत बचत

greetings (beta) के लिए ज्ञान खोज छोड़ें

"हाय", "thanks" और "ok" एक ज्ञान-आधारित खोज को ट्रिगर नहीं करते हैं, वे कभी इसका उपयोग नहीं करते। वास्तविक सामग्री के साथ कोई संदेश अभी भी सामान्य रूप से खोजता है।

सबसे लंबे उत्तर की अनुमति (टोकन)

कैप्स कितनी देर तक एक उत्तर हो सकता है। जवाब देने की लंबाई कॉल का सबसे महंगा हिस्सा है, इसलिए एक समझदार टोपी (around) 500 समर्थन के लिए) एकल सबसे प्रभावी चैट लागत नियंत्रण है। केवल अपनी वैश्विक सीमा को कम करता है, कभी भी इसे बढ़ा नहीं देता है।

अपने AI को सेट अप करें

सोच गहराई (ग्राहक और व्यवस्थापक चैट)

कितना मॉडल जवाब देने से पहले सोचता है (न्यूनतम से उच्च). ग्राहक गपशप को गति के लिए न्यूनतम/निम्न पर रखें; विश्लेषण और प्रशासक सहचालक के लिए अधिक विन्यास रिजर्व करें.

प्रति-AI मॉडल (प्रति कार्य)

प्रत्येक AI सतह (जीवन चैट, टिकट ड्राफ्ट, सारांश, विश्लेषण, व्यवस्थापक copilot, पदोन्नति, साइट इंटेलिजेंस और अधिक) अपने मॉडल पर चल सकते हैं। लाइट जहां गति मायने रखती है, मजबूत जहाँ गुणवत्ता के मामले। उस नौकरी के लिए एक सतह = प्रदाता डिफ़ॉल्ट पर रिक्त।

व्यवस्थापक चैट लागत नियंत्रण

व्यवस्थापक copilot एक बाध्य कार्यशील स्मृति रख सकते हैं और हर बारी के बजाय केवल उपकरण को एक सवाल की जरूरत (लेन टूल) लोड कर सकते हैं।

अपने एआई को प्रशिक्षित करने पर

निर्देश

आपके निर्देश हर मोड़ पर भेजे जाते हैं, इसलिए उनकी लंबाई एक आवर्ती लागत है। संपीड़न बटन कुछ शब्दों में समान बात कहने के लिए स्लॉट को फिर से लिखते हैं। यह पुनः लिखने से इनकार करता है अगर यह किसी भी {variable} या नियम को छोड़ देगा और रिपोर्ट करता है कि यह क्या सुरक्षित है, तो यह कभी चुपचाप अर्थ नहीं बदलता है।

"क्या पहले से ही मस्तिष्क में है" (i️)

यह दिखाता है कि कौन से OpsIQ पहले से ही आपके व्यवसाय के प्रति स्लॉट जानता है, इसलिए आप अपने निर्देशों में दोहराए गए कुछ भी हटा सकते हैं।

💡
जहां पैसे जाते हैं? शॉर्ट सपोर्ट के लिए इनपुट (निर्देश + खाता डेटा + इतिहास, प्रत्येक मोड़ भेजा) को आमतौर पर लघु उत्तर, कैशिंग और दुबला संदर्भ की तुलना में अधिक खर्च होता है। लंबे समय तक उत्पन्न सामग्री के लिए आउटपुट हावी है। उत्तर-लंबाई टोपी और एक कम सोच गहराई वहां से भुगतान करती है। अपने एआई को तत्काल कैशिंग रखने के लिए सेट करें, जो प्रत्येक मोड़ का बड़ा दोहरा हिस्सा सस्ता बनाता है।
क्या ये परिवर्तन करते हैं कि चैट पहले से ही कैसे उत्तर देती है?+

नहीं, हर नियंत्रण डिफ़ॉल्ट और स्वतंत्र द्वारा बंद है। एक को चालू करने से केवल अपने व्यवहार को जोड़ता है; इसे बंद कर देता है वास्तव में बात करने के लिए कैसे यह पहले काम किया था।

मुझे क्या करना चाहिए?+

एक प्रकाश मॉडल पर रोजमर्रा की चैट चलाने और एक मजबूत एजेंट मॉडल पिन। फिर, यदि आपके पास जुड़ा हुआ प्लेटफ़ॉर्म है, तो एजेंट मोड को सक्षम करें, फिर आगे बढ़ें, फिर लंबी बातचीत स्मृति। फिर दुबला संदर्भ, स्किप-KB-for-greetings, और उत्तर कैप। अंत में अपने निर्देशों को संपीड़ित करें। प्रत्येक परिवर्तन के बाद कुछ वास्तविक चैट देखें।

व्यवस्थापक एजेंट किट: वेब खोज, रनबुक, मिशन, फ़ाइल स्थानांतरण

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

वेब खोज

निर्मित

एजेंट डॉक्स, त्रुटि संदेश और वर्तमान जानकारी के लिए वेब को खोजता है जबकि यह काम करता है। बॉक्स में से यह डकडुकगो का उपयोग करता है, जिसे कोई कुंजी और सेटअप की आवश्यकता नहीं होती है।

पुस्तक

चैट

अपने प्रक्रियाओं की एक बचाया पुस्तकालय ("हम यहां X कैसे करते हैं")। एजेंट एक मुश्किल काम को नाखून बनाने के बाद नीचे लिखता है और अगले समय इसका अनुसरण करता है, इसलिए पता चलता है कि चैट के अंत में जीवित रहता है।

मिशन

अनुसूचित

अनुसूचित पढ़े जाने वाले गश्ती। "हर सुबह, डिस्क स्पेस और त्रुटि लॉग की जांच करें और मुझे बताएं।" खोज आपके व्यवस्थापक घंटी पर पहुंचते हैं।

फ़ाइल स्थानांतरण

चैट

एक लॉग फ़ाइल के लिए पूछो और एक निजी डाउनलोड लिंक प्राप्त करें, या एक फाइल को एक कनेक्टेड सर्वर से दूसरे में कॉपी किया गया है। दोनों ने एक-दूसरे पर कब्जा कर लिया। 5 MB.

व्यवस्थापक एजेंट वेब खोज (आपके AI सेट अप)

खोज प्रदाता

क्या एजेंट वेब खोज का उपयोग करता है। डिफ़ॉल्ट DuckDuckGo है: बिना चाबी, मुफ्त, हर इंस्टॉल पर काम करता है ब्राव सर्च, Tavily और Serper.dev (Google परिणाम) आमतौर पर बेहतर परिणाम वापस आ जाते हैं लेकिन प्रत्येक को आवश्यकता होती है API उस प्रदाता से कुंजी। यदि कोई कुंजी प्रदाता किसी भी कारण (बाद की, कोटा ने इस्तेमाल किया, नेटवर्क परेशानी) के लिए विफल रहता है, तो यह खोज स्वचालित रूप से DuckDuckGo में वापस आती है, इसलिए खोज कभी अंधेरा नहीं होती है।

खोज API कुंजी

अपने चुने प्रदाता के लिए कुंजी, केवल ब्राव, Tavily या Serper के लिए आवश्यक है। एक बार बचाया यह मास्क किया जाता है और कभी पृष्ठ पर फिर से दिखाया नहीं है; इसे बदलने के लिए एक नया पेस्ट करें। एक कीड प्रदाता तभी सक्रिय हो जाता है जब दोनों प्रदाता और इसकी कुंजी बचाई जाती हैं।

पुस्तक

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

💡
एक रनबुक मार्गदर्शन है, कोई मुफ्त पास नहीं। जब एजेंट एक का अनुसरण करता है तो हर कदम जो सर्वर को बदल देगा फिर भी आपकी वर्तमान अनुमति मोड से गुजरता है और सामान्य अनुमोदन कार्ड दिखाता है। एक रन बुक कभी भी अनुमोदन को बायपास नहीं कर सकता है।

मिशन

एक मिशन एक आवर्ती नौकरी है जो एजेंट अपने आप में चला जाता है: हर घंटे, दैनिक एक सेट घंटे पर या साप्ताहिक एक निर्धारित दिन पर। मिशन केवल डिजाइन द्वारा पढ़ा जाता है। वे सर्वर, डेटा और वेब को पढ़ सकते हैं, लेकिन वे कभी भी कुछ नहीं बदल सकते; वे जांच करते हैं और रिपोर्ट करते हैं। जब कोई मिशन खत्म हो जाता है तो निष्कर्ष आपके व्यवस्थापक घंटी पर अधिसूचना के रूप में उतरते हैं। "अब सुबह गश्ती चलाएं" मांग पर एक ट्रिगर करने के लिए कहें, या एजेंट से सूची, रोकें या मिशनों को हटा दें।

⚠️
मिशन OpsIQ क्रोन को बंद करते हैं, इसलिए इसे स्थापित करने की आवश्यकता होती है (क्रोन और स्वचालन देखें)। अधिकांश सर्वरों पर क्रॉन रन के बीच चैट कार्यों से एक-बंद "अब इसे चलाएं"।

फाइलों को स्थानांतरित करना

एक फ़ाइल के लिए पूछो ("मुझे आज की त्रुटि लॉग वेब सर्वर से प्राप्त करें") और एजेंट इसे चरणों में बदल देता है और निजी डाउनलोड लिंक पर निर्भर करता है। लिंक केवल हस्ताक्षरित व्यवस्थापकों के लिए काम करता है और लगभग एक दिन बाद समाप्त हो जाता है। फ़ाइलें 5 MB पर बंद कर दी जाती हैं; कुछ भी बड़े होने के लिए, पहले सर्वर पर इसे संपीड़ित या ट्रिम करने के लिए एजेंट से पूछें।

एजेंट दो जुड़े सर्वरों के बीच एक फ़ाइल भी कॉपी कर सकता है, फिर से 5 MB_ तक। गंतव्य पर लिखने का इलाज किसी अन्य बदलाव की तरह किया जाता है: पूछ मोड में आपको पहले अनुमोदन कार्ड मिलता है, मौजूदा फाइल को वापस ले लिया जाता है और प्रतिलिपि प्रतिवर्ती होती है। सुरक्षा के लिए, फ़ाइल सामग्री उस समय स्रोत से पुनः पढ़ने वाली है जब प्रतिलिपि लागू की जाती है, चैट से नहीं ली जाती है।

एआई

अपने एआई को प्रशिक्षित करें

एआई ट्रेनिंग वह जगह है जहां आप सिखाते हैं OpsIQ कैसे व्यवहार करें। आप ऐसे संकेत लिखते हैं जो व्यक्तित्व, सीमाओं, ज्ञान ध्यान और वृद्धि नियमों को परिभाषित करते हैं। एक नए समर्थन एजेंट के लिए प्रशिक्षण मैनुअल लिखने के रूप में सोचें।

ट्रेन एआई
अपने एआई को प्रशिक्षित करेंग्राहक / व्यवस्थापक टैब और सादे अंग्रेजी स्वर के साथ एक एआई निर्देश संपादक हमेशा और कभी नियम नहीं।अपने एआई को प्रशिक्षित करेंकार्यस्थलग्राहक एआईव्यवस्थापक AIटोनीदोस्ताना, संक्षिप्त, कभी धक्का नहीं।हमेशाबिलिंग विवादों के लिए मानव हैंडऑफ़ प्रदान करें।कभी नहींखाते की जांच के बिना वापसी का वादा करें।1TWO MANUALSग्राहक और व्यवस्थापक एआई2PLAIN ENGLISHहमेशा कभी नहीं3GROUNDEDअपने ज्ञान के आधार पर
एआई को एक नए किराए, ग्राहक और व्यवस्थापक मैनुअल की तरह ट्रेन करें जो सादे अंग्रेजी (टोन, हमेशा कभी नहीं) में लिखे गए थे।

दो प्रशिक्षण क्षेत्र

ग्राहक AI शीघ्र

यह नियंत्रित करता है कि कैसे एआई चैट विजेट में अपने ग्राहकों से बात करती है। यह सही पाने के लिए सबसे महत्वपूर्ण संकेत है।

व्यवस्थापक AI शीघ्र

यह नियंत्रित करता है कि कैसे एआई ऑपरेटर डैशबोर्ड में आपकी व्यवस्थापक टीम की सहायता करती है।

एक महान ग्राहक AI प्रॉम्प्ट लेखन

आपके ग्राहक एआई प्रॉम्प्ट को इन क्षेत्रों को कवर करना चाहिए:

1
पहचान

कौन है? इसे नाम, भूमिका और व्यक्तित्व दें। उदाहरण: "आप लूना हैं, जो Acme स्टोर के लिए एक दोस्ताना और जानकार ग्राहक सहायता सहायक हैं"।

2
टोन और शैली

यह कैसे संवाद करना चाहिए? उदाहरण: " पेशेवर लेकिन गर्म रहें। सरल भाषा का प्रयोग करें। जार्गन से बचें। जवाब दें (concise)2-3 पैराग्राफ अधिकतम)।

3
ज्ञान की सीमा

क्या यह पता होना चाहिए और नहीं? उदाहरण: "आप हमारे उत्पादों, मूल्य निर्धारण, शिपिंग और वापसी नीति के बारे में जानते हैं। आप प्रतियोगी उत्पादों या आंतरिक कंपनी निर्णयों के बारे मे नहीं जानते हैं"।

4
नियम

जब यह एक मानव को सौंपना चाहिए? उदाहरण: "जब एक मानव एजेंट के लिए वृद्धि: ग्राहक वापसी के लिए पूछता है, कानूनी कार्रवाई का उल्लेख करता है, सुरक्षा मुद्दे की रिपोर्ट करता है या तीन बार उसी प्रश्न से पूछता हैं।

5
कभी नहीं करना

उदाहरण: "कोई भी वादा वापसी नहीं करता है। कभी आंतरिक मूल्य निर्धारण सूत्र साझा नहीं करते हैं। उत्पाद की विशेषताएँ कभी नहीं बनातीं जो मौजूद नहीं होती हैं। कभी चिकित्सा, कानूनी या वित्तीय सलाह नहीं देते।

उदाहरण संकेत

उदाहरण के लिए ग्राहक AI शीघ्र · ऑनलाइन स्टोर
You are Aria, a friendly customer support assistant for TechGear.

PERSONALITY:
- Warm and professional
- Concise (2-3 paragraphs max per response)
- Use simple language, no jargon
- If unsure, say so honestly

KNOWLEDGE:
- Our products: laptops, accessories, software subscriptions
- Pricing: as listed in the knowledge base
- Shipping: free over $50, 3-5 business days standard, 1-2 days express ($12)
- Returns: 30-day money-back guarantee, must be in original condition

ESCALATION (hand off to human):
- Refund requests over $100
- Account security concerns
- Legal threats or complaints
- Customer explicitly asks for a human

NEVER DO:
- Promise specific delivery dates (say "estimated")
- Share discount codes not in the knowledge base
- Make up product specifications
- Give financial or legal advice
उदाहरण के लिए ग्राहक AI प्रॉम्प्ट · होस्टिंग कंपनी
You are Atlas, an AI assistant for CloudHost web hosting.

TONE: Technical but accessible. Assume the customer has basic web knowledge.

KNOWLEDGE:
- Shared hosting, VPS, dedicated servers
- cPanel, DNS, SSL, email configuration
- WordPress, Joomla, Drupal installation
- Common error codes and troubleshooting

ESCALATION:
- Server outages affecting multiple customers
- Data loss or security breach reports
- Billing disputes over $50
- Complex migration requests

BOUNDARIES:
- Do NOT access customer servers or databases
- Do NOT change DNS records or passwords
- Always recommend the customer makes changes themselves
- For code issues, suggest steps but clarify you cannot debug their application

समय के साथ अपने शीघ्र को परिष्कृत करना

1
बुनियादी बातों के साथ लॉन्च

पहचान, स्वर और कुंजी सीमाओं के साथ शुरू करें। दिन में सब कुछ कवर करने की कोशिश न करें।

2
A weekly in the United States

जहां एआई ने गलत या उप-उत्तम जवाब दिया, वहां बातचीत पढ़ें।

3
शीघ्र अद्यतन

आवर्ती मुद्दों के लिए विशिष्ट नियम जोड़ें। उदाहरण: यदि एआई रिफंड का वादा करता है, तो "कोई भी वापसी का वादा नहीं करता" जोड़ें।

4
ज्ञान जोड़ें

यदि एआई किसी प्रश्न का उत्तर नहीं दे सकता है, तो संकेत में सब कुछ फिट करने की कोशिश के बजाय नॉलेज बेस को जवाब दें।

⚠️
नीचे अपना प्रॉम्प्ट रखें 2,000 शब्दों। ओवरली लांग प्रॉम्प्ट एआई को भ्रमित कर सकते हैं और टोकन लागत बढ़ा सकते हैं। इसके बजाय नॉलेज बेस में विस्तृत जानकारी दें।
क्या संकेत और ज्ञान आधार के बीच अंतर है?+

संकेत व्यक्तित्व, सीमाओं और नियमों को परिभाषित करता है। ज्ञान आधार तथ्यात्मक जानकारी (उत्पाद विवरण, मूल्य निर्धारण, नीतियों) प्रदान करता है, जबकि KB उत्तर प्रदान करता हैं तो AI दोनों पढ़ता है, लेकिन शीघ्र आकार व्यवहार करता है.

क्या मैं विभिन्न विभागों के लिए अलग-अलग संकेत दे सकता हूं?+

यह संकेत प्रति कार्यस्थान है। यदि आपको विभिन्न विभागों के लिए अलग-अलग एआई व्यवहार की आवश्यकता होती है, तो विभाग-विशिष्ट जानकारी प्रदान करने और अपने शीघ्र में विभाग संदर्भ का उल्लेख करने के लिए ज्ञान आधार का उपयोग करें।

एआई

एआई इतिहास

एआई इतिहास हर बातचीत को दिखाता है कि एआई के पास ग्राहकों और व्यवस्थापकों के साथ था। एआई प्रदर्शन का ऑडिट करने, गलत जवाब खोजने और प्रशिक्षण अंतराल की पहचान करने के लिए इसका उपयोग करें।

एआई इतिहास
एआई इतिहासAI का एक लॉग टाइप बैज, प्रश्न और उत्तर, जवाब समय और परिणाम के साथ बदल जाता है।एआई इतिहासकार्यस्थलहर AI टर्न, रिकॉर्डचैटQ: मेरा आदेश कहाँ है?A: आज भेज दिया, UPS ट्रैकिंग ...0.9sजवाब देनाटिकटT- के लिए ड्राफ्ट उत्तर 12345वापसी की स्वीकृति तैयार1.4sdraftedव्यवस्थापकइस सप्ताह के टिकट को संक्षेप में प्रस्तुत करें12-line Summary लौटा2.1sकियाचैटQ: मेरी योजना रद्द कर दीएक मानव के लिए बंद0.7sescalated1EVERY TURNशीघ्र, जवाब देना, कार्रवाई2SEARCHABLEफ़िल्टर और निर्यात3OWNER-ONLYपूर्ण लेखा परीक्षा ट्रेल
हर AI टर्न (chat, टिकट ड्राफ्ट, एडमिन एक्शन) ने सटीक संकेत, उत्तर, अवधि और परिणाम के साथ लॉग इन किया।

प्रत्येक वार्तालाप क्या दिखाता है

तारीख और समय

जब बातचीत हुई।

ग्राहक पहचान

यदि ज्ञात हो तो नाम और ईमेल, अन्यथा IP और देश।

चैनल

चैट विजेट, टिकट ऑटो-रिप्लाई, ईमेल ड्राफ्ट या एडमिन एआई।

संदेश

बातचीत का पूर्ण ट्रांसक्रिप्ट: ग्राहक संदेश और एआई प्रतिक्रियाएं।

टोकन उपयोग

कितने टोकनों का सेवन किया। उच्च टोकन उपयोग से संकेत मिलता है कि एआई ओवरली क्रियाओं के उत्तर दे रहा है या बातचीत सर्कल में चली गई थी।

कार्रवाई की

किसी भी कार्रवाई के दौरान ऐ ने बातचीत (ऑर्डर, बनाया टिकट आदि) को निष्पादित किया।

रेटिंग

यदि CSAT सक्षम है, तो इस बातचीत के लिए ग्राहक की संतुष्टि रेटिंग।

समस्याओं का पता लगाना

कीवर्ड द्वारा खोज

विशिष्ट विषयों के लिए खोज करने के लिए देखें कि एआई उन्हें कैसे संभालती है। उदाहरण: जांचने के लिए "वापसी" की तलाश करें कि क्या एआई आपकी वापसी नीति का पालन कर रहा है।

रेटिंग द्वारा फ़िल्टर करें

असंतुष्ट ग्राहकों पर ध्यान केंद्रित करने के लिए केवल कम दर्ज की गई बातचीत दिखाएं।

चैनल द्वारा फ़िल्टर करें

केवल टिकट ऑटो-रिप्लीज़ को चैट से अलग-अलग स्वचालित प्रतिक्रियाओं का ऑडिट करने के लिए दिखाएं।

Token उपयोग द्वारा क्रमबद्ध

उच्च टोकन वार्तालाप समस्याओं को इंगित कर सकता है: एआई रैमिंग, सर्कल में जा रहा है या प्रश्न का उत्तर देने में विफल हो गया।

साप्ताहिक लेखा परीक्षा दिनचर्या

1
कम दर्ज की गई बातचीत की जाँच करें

पूर्ण प्रतिलिपि पढ़ें। क्या गलत हो गया? क्या यह ज्ञान का अंतर, एक स्वर मुद्दा या गलत उत्तर था?

2
उच्च टोकन वार्तालापों की जाँच करें

ये भ्रम की स्थिति को इंगित कर सकते हैं। क्या एआई खुद को दोहरा रहा था? क्या यह सवाल समझने में विफल रहा?

3
प्रशिक्षण

ज्ञान अंतराल के लिए, नॉलेज बेस में लेख जोड़ें। व्यवहार मुद्दों के लिए एआई प्रॉम्प्ट को अपडेट करें। गलत उत्तरों की पुनरावृत्ति के लिए स्पष्ट सुधार नियम जोड़ें।

ज्ञान अंतराल का पता लगाना

परिदृश्य:
आप "स्थापित" के लिए AI इतिहास की खोज करते हैं और पाते हैं 15 बातचीत जहां एआई ने कहा "इस उत्पाद के लिए मेरे पास विशिष्ट स्थापना निर्देश नहीं हैं।
क्या करना है:

इसका मतलब है कि आपका नॉलेज बेस इंस्टॉलेशन गाइड गायब है। प्रत्येक उत्पाद के स्थापना चरणों के लिए ज्ञान आधार लेख बनाएं। उन्हें जोड़ने के बाद, एआई इंस्टॉलेशन प्रश्नों को पूछने से परीक्षण करें।

एआई

एआई अंतर्दृष्टि

एआई इनसाइट्स स्वचालित रूप से बातचीत पैटर्न और सतहों के क्रियान्वयन योग्य निष्कर्षों का विश्लेषण करती है: आम सवाल, संतुष्टि रुझान, ज्ञान अंतराल और वृद्धि पैटर्न।

एआई अंतर्दृष्टि
A-Sight of the world's life.इंटेलिजेंस हब: एक एआई टुडे का संक्षिप्त, स्मार्ट अलर्ट्स, स्कोर-ए-लीड / एनालिस-एक पेज टूल और एक 14-दिन का ट्रैफिक पैटर्न चार्ट।एआई अंतर्दृष्टिकार्यस्थलTODAY's BRIEFऊपर यातायात 12%; 3 गर्म बिक्री;2सौदों को फ़ॉलो-अप की आवश्यकता है।स्मार्ट अलर्टचेकआउट त्रुटियों को चोरीपर उतरना /pricingसंयुक्त राज्य अमेरिका से नया गर्म नेतृत्वपिछले सप्ताह से पहले राजस्वएक पृष्ठ का विश्लेषण करने के लिए लीड / एनालिसिस स्कोर करेंIP या URL…रन14_Day ट्रैफिक पैटर्न1TODAY's BRIEFAI सुबह सारांश लिखता है2SMART ALERTSAnomalies सतह3ON DEMANDएक पृष्ठ का विश्लेषण
रियल इंटेलिजेंस हब: एक एआई-लिखित टुडे का संक्षिप्त, स्मार्ट अलर्ट्स फॉर anomalies, ऑन-डिमांड लीड स्कोरिंग और पेज विश्लेषण, और 14-दिन का यातायात पैटर्न।

What is a fact.

शीर्ष प्रश्न

अक्सर पूछे जाने वाले प्रश्न अगर "मैं अपना पासवर्ड कैसे रीसेट करूं?1, आपके ज्ञान आधार को एक प्रमुख पासवर्ड रीसेट गाइड की आवश्यकता होती है।

Satisfaction रुझान

CSAT समय के साथ स्कोर करता है। क्या एआई संतुष्टि में सुधार या गिरावट आई है? अचानक बूंदों से ज्ञान आधार परिवर्तन का संकेत मिलता है जो कुछ टूट जाता है।

संकल्प दर

क्या बातचीत का प्रतिशत एआई को मानव हस्तक्षेप के बिना हल करता है? ऊपर की दर 70% अच्छा है। नीचे 50% इसका मतलब है कि एआई को अधिक प्रशिक्षण की आवश्यकता होती है।

कारण

क्यों बातचीत मनुष्यों को सौंप दिया जाता है। आम कारण: ग्राहक ने मानव से अनुरोध किया, एआई जवाब नहीं दे सकता, संवेदनशील विषय, बिलिंग मुद्दा।

ज्ञान अंतराल

विषय जहां एआई अक्सर "मैं नहीं जानता" कहलाता है या कम विश्वास जवाब देता है।

औसत वार्तालाप की लंबाई

प्रति वार्तालाप कितने संदेश। बहुत लंबे समय तक बातचीत ()10+ संदेश) इंगित कर सकता है कि एआई प्रश्न को समझ नहीं पाता है।

बेहतर बनाने के लिए अंतर्दृष्टि का उपयोग करना

परिदृश्य:
एआई इनसाइट्स से पता चलता है कि 23% of escalation "ग्राहक ने वारंटी के बारे में पूछा" और AI जवाब नहीं दे सकता।
क्या करना है:

यह एक स्पष्ट ज्ञान अंतर है। चरण:1) नॉलेज बेस में एक व्यापक वारंटी लेख लिखें जिसमें सभी वारंटी शर्तों, दावा प्रक्रिया और बहिष्कार शामिल हैं।2(A) A-Processation of the application of a penetary.3अगले सप्ताह AI इनसाइट्स को मॉनिटर करने के लिए यह देखने के लिए कि वारंटी में वृद्धि क्या है।

एआई

व्यवस्थापक ऐ प्लेबुक

व्यवस्थापक एआई (Ask)OpsIQ आपकी टीम को प्रबंधित करने में मदद करता हैOpsIQ व्यवस्थापक डैशबोर्ड के भीतर से। आप इसे डेटा को देखने, सुविधाओं की व्याख्या करने, टिकटों को संक्षेप में प्रस्तुत करने और प्लेटफॉर्म कार्यों को निष्पादित करने के लिए कह सकते हैं।

व्यवस्थापक AI
व्यवस्थापक ऐ प्लेबुकपूछोOpsIQ एक एआई-प्रस्तावित प्लेटफॉर्म एक्शन कार्ड के साथ कमांड बॉक्स पैरामीटर दिखा रहा है और पुष्टि/कैंसेल करता है।पूछो OpsIQकार्यस्थलपूछो OpsIQओवरड्यू खाता # के लिए सेवा निलंबित 4821एआईप्रस्तावना: निलंबित_सेवाखाता:4821 (overdue) $120)मंच: WHMCS _·\ reversible · लेखा परीक्षापुष्टिरद्द करना1ASK ANYTHINGप्लेन-अंग्रेजी कमांड2PROPOSE FIRSTइससे पहले कि यह रन दिखा3YOU CONFIRMस्कोप्ड और ऑडिट
व्यवस्थापक एआई को बताएं कि आप क्या चाहते हैं?

क्या प्रशासन AI कर सकता है

डेटा देखें

पूछो: "मुझे सब से टिकट दिखाएं [email protected]"ord-" क्या है?5523?"

संक्षेप

पूछो: "अंतिम 10 टिकट" या "इस सप्ताह शीर्ष समर्थन मुद्दे क्या हैं?

सुविधाओं को समझाना

पूछो: "मैं ऑटो-रिप्लाई कैसे सेट करूं?" या " बाउंस रेट कार्ड का क्या मतलब है?

कार्रवाई

पूछो: "के लिए एक टिकट बनाएँ [email protected] बिलिंग के बारे में या "क्लोज टिकट टी -12345"

मंच क्वेरीज़

पूछो: "किससे कई आगंतुक आज हम प्राप्त करते हैं?" या "इस महीने हमारे राजस्व क्या है?

उदाहरण बातचीत

ग्राहक की तलाश

परिदृश्य:
व्यवस्थापक पूछता है: "Find customer [email protected] _" और मुझे अपनी हाल की गतिविधि दिखाओ"
क्या करना है:

एआई सभी जुड़े डेटा स्रोतों में ग्राहक को देखता है: आगंतुक सत्र, टिकट, चैट वार्तालाप, आदेश औरCRMसंपर्क. यह प्रत्येक आइटम के लिए लिंक के साथ हाल ही में गतिविधि का एक सारांश देता है।

दैनिक सारांश प्राप्त करना

परिदृश्य:
व्यवस्थापक पूछता है: "आज क्या हुआ?
क्या करना है:

The AI summarizes: "आज तुमने किया था 245 आगंतुकों (ऊपर) 12%), 8नया टिकट (नया टिकट)3 एआई द्वारा हल),2नए ऑर्डर कुल $198, और1एक शिपिंग देरी के बारे में बात करना।

कार्रवाई को निष्पादित करना

परिदृश्य:
व्यवस्थापक पूछता है: "चेंज टिकट टी -5523 प्राथमिकता के लिए Urgent
क्या करना है:

एआई पुष्टि करता है: "मैं टिकट टी बदलूंगा5523सामान्य से अर्जेंट तक प्राथमिकता। इससे प्रभावित होगाSLAआप पुष्टि करते हैं, और कार्रवाई निष्पादित की जाती है।

💡
एडमिन एआई केवल एक्शन रजिस्ट्री में पंजीकृत कार्यों को निष्पादित करता है। यह बाहर की कार्रवाई या एक्सेस सिस्टम को आविष्कार नहीं कर सकता OpsIQ.
एआई

ग्राहक एआई परिदृश्य

इस खंड में अपेक्षित व्यवहार और प्रशिक्षण सुझावों के साथ आम ग्राहक-फेसिंग एआई परिदृश्य शामिल हैं।

ग्राहक एआई
ग्राहक एआई परिदृश्यग्राहक प्रश्नों की एक पुस्तकालय अपेक्षित एआई व्यवहार और प्रत्येक के लिए परिणाम टैग से मिलकर बनती है।ग्राहक एआई परिदृश्यकार्यस्थलपरिदृश्य पुस्तकालय · अपेक्षित एआई व्यवहार"मैं कहां से हूं?कनेक्टर के माध्यम से ऑर्डर को देखें, ट्रैकिंग देंहल"मैं एक वापसी चाहते हैं"Acknowledge, कभी वादा नहीं करता है कि मानव को हाथ से हाथ मिलाया जाएहैंडऑफ"क्या यह सेवा नीचे है?स्थिति की जांच करें, वर्तमान स्थिति की रिपोर्ट करेंस्थिति"मेरे खाते को रद्द करें"इरादे की पुष्टि करें, फिर एक मानव के लिए मार्गपुष्टि1SCENARIOSसामान्य प्रश्न2EXPECTEDकैसे एआई को जवाब देना चाहिए3टेस्टप्रशिक्षण अंतराल का पता लगाएं
वास्तविक ग्राहक प्रश्नों की एक लाइब्रेरी और वास्तव में कैसे एआई को अपने प्रशिक्षण का परीक्षण करने और अंतराल खोजने के लिए प्रत्येक को कैसे संभालना चाहिए।

परिदृश्य

ऑर्डर स्टेटस जांच

परिदृश्य:
ग्राहक: "मैं कहां हूं मेरा आदेश #12345?"
क्या करना है:

एआई व्यवहार की उम्मीद: ()1) मंच कनेक्टर के माध्यम से आदेश देखें।2) वर्तमान स्थिति रिपोर्ट करें (प्रोसेसिंग, भेज दिया गया, वितरित किया गया).3यदि उपलब्ध हो तो ट्रैकिंग नंबर शामिल करें।4यदि आदेश में देरी हो जाती है, तो मान लें और अनुमानित समयरेखा प्रदान करें।5कभी भी ट्रैकिंग जानकारी का आविष्कार नहीं किया जाता है।

पासवर्ड रीसेट अनुरोध

परिदृश्य:
ग्राहक: "मैं अपना पासवर्ड भूल गया और लॉग इन नहीं कर सकता"
क्या करना है:

एआई व्यवहार की उम्मीद: ()1) ज्ञान आधार से पासवर्ड रीसेट कदम प्रदान करें।2) रीसेट लिंक या पृष्ठ पथ को शामिल करें।3To make a recessation of the email may be able to take some minutes. ()4() स्पैम फ़ोल्डर की जाँच करने का सुझाव दें।5यदि ग्राहक अभी भी रीसेट नहीं कर सकता है, तो एक इंसान को scalate करें।

सुविधा अनुरोध

परिदृश्य:
ग्राहक: "क्या आप मोबाइल ऐप में डार्क मोड जोड़ सकते हैं?
क्या करना है:

एआई व्यवहार की उम्मीद: ()1() उन्हें सुझाव के लिए धन्यवाद।2) यह समझाएं कि किस तरह के फीचर अनुरोधों को संभाला जाता है (लॉग्ड, समीक्षा की गई, प्राथमिकता दी जाती है)।3क्या यह वादा नहीं किया जाएगा कि सुविधा बनाई जाएगी।4यदि एक समान विशेषता मौजूद है, तो इसका उल्लेख करें।

बिलिंग विवाद

परिदृश्य:
ग्राहक: "मैं चार्ज किया गया था लेकिन मेरी सेवा काम नहीं कर रही है"
क्या करना है:

एआई व्यवहार की उम्मीद: ()1(d) Acknowledge the frustration.2यदि संभव हो तो सेवा स्थिति की जांच करें।3) सभी विवरणों के साथ बिलिंग विभाग को एस्केलेट करें।4() वापसी का वादा न करें।5) टिकट प्राथमिकता उच्च करने के लिए।

ऑफ-टॉपिक प्रश्न

परिदृश्य:
ग्राहक: "आज लंदन में मौसम की तरह क्या है?
क्या करना है:

एआई व्यवहार की उम्मीद: ()1Politely redirect. "मैं तुम्हारा हूँ [Company] समर्थन सहायक और हमारे उत्पादों और सेवाओं के बारे में सवालों के साथ मदद कर सकते हैं। मौसम की जानकारी के लिए, एक मौसम सेवा का प्रयास करें।2यदि उनके पास एक उत्पाद सवाल है तो पूछो।

मैं ग्राहक AI व्यवहार का परीक्षण कैसे करूं?+

अपनी वेबसाइट को एक निजी/इंगोनिटो ब्राउज़र में खोलें और एआई के साथ ग्राहक के रूप में चैट करें। सामान्य प्रश्न, किनारे के मामले और प्रतिकूल परिदृश्यों की कोशिश करें। जांचें कि AI आपके तत्काल नियमों का पालन करता है और सही ढंग से ज्ञान आधार सामग्री का उपयोग करता है।

एआई

एआई ज्ञान आधार

नॉलेज बेस उन लेखों की एक पुस्तकालय है जो AI प्रश्नों का उत्तर देने के लिए उपयोग करती हैं। जब कोई ग्राहक कुछ पूछता है, तो एआई प्रासंगिक लेखों के लिए ज्ञान आधार की खोज करता है और उन्हें सटीक, ग्राउंडेड प्रतिक्रिया उत्पन्न करने के लिए इस्तेमाल करता है।

ज्ञानकोश
ज्ञानकोशएक ज्ञान स्टोर में खिलाए गए स्रोत, फिर एक AI ने जमीनी, उद्धृत उत्तर उत्पन्न किया।ज्ञानकोशकार्यस्थलस्रोतवेबसाइट क्रॉललेखों की मददसामान्य प्रश्नआयातित डॉकज्ञानशब्दएआईग्राउंडेड उत्तरएक उद्धृत स्रोत के साथ।"वापसी"3–5व्यापार दिवस1INGESTक्रॉल, एफएक्यू, आयात2RETRIEVEशब्दार्थ + कुंजीशब्द3GROUNDEDआपकी सामग्री से उत्तर
अपनी साइट को क्रॉल करें और ज्ञान आधार में डॉक्स आयात करें; एआई सही टुकड़ों और उत्तरों, ग्राउंडेड और उद्धृत किए गए जवाबों को पुनः प्राप्त करता है।

यह कैसे काम करता है

1
ग्राहक एक सवाल पूछता है

"आपकी वापसी नीति क्या है?

2
AI ने ज्ञान आधार की खोज की

OpsIQ कीवर्ड और अर्थ मिलान करके "Return Policy" लेख पाता है।

3
AI एक प्रतिक्रिया उत्पन्न करता है

एआई ने लेख को पढ़ा और लेख सामग्री के आधार पर एक प्राकृतिक भाषा का जवाब लिखा।

4
ग्राहक को सटीक जवाब मिल जाता है

प्रतिक्रिया आपकी वास्तविक नीति में आधारित है, एआई के सामान्य प्रशिक्षण डेटा नहीं।

अच्छा लेख बनाना

प्रति लेख एक विषय

प्रत्येक विषय के लिए एक अलग लेख लिखें: वापसी नीति, शिपिंग दर, खाता सेटअप, पासवर्ड रीसेट करें। असंबंधित विषयों को गठबंधन न करें।

A एफएक्यू

प्रश्न ग्राहकों के साथ शुरू करें, फिर जवाब दें। इससे एआई मैच प्रश्नों को लेखों में मदद मिलती है।

विशिष्ट होना

"Returns" के भीतर शुरू किया जाना चाहिए 30 प्रसव के दिन "हम एक वापसी नीति है" से बेहतर है।

किनारे के मामलों को शामिल करें

क्या अंतर्राष्ट्रीय रिटर्न के बारे में? डिजिटल उत्पादों के बारे मे? क्या आइटम बिक्री पर खरीदा? अपवादों को कवर करें।

इसे चालू रखें

तिमाही समीक्षा. अलग जानकारी हटाएँ. मूल्य निर्धारण अद्यतन करें, नीतियों और प्रक्रियाओं जब वे बदल जाते हैं.

स्टार्टर लेख आपको लिखना चाहिए

शिपिंग और वितरण

शिपिंग लागत, प्रसव के समय, ट्रैकिंग, अंतर्राष्ट्रीय शिपिंग और हैंडलिंग देरी।

रिटर्न और रिफंड

खिड़की, स्थिति, प्रक्रिया, वापसी समयरेखा और अपवादों को वापस लौटें।

लेखा प्रबंधन

पासवर्ड रीसेट, ईमेल परिवर्तन, खाता हटाने और डेटा निर्यात।

मूल्य निर्धारण और बिलिंग

योजना विवरण, बिलिंग चक्र, भुगतान विधियां, चालान और मुद्रा।

उत्पाद गाइड

प्रत्येक उत्पाद या सुविधा का उपयोग कैसे करें स्क्रीनशॉट के साथ चरण-दर-चरण निर्देश।

समस्या निवारण

सामान्य समस्याएं और समाधान त्रुटि संदेश और उनके फिक्सेस।

संपर्क जानकारी

व्यापार के घंटे, समर्थन चैनल, प्रतिक्रिया समय और वृद्धि पथ।

कानूनी और अनुपालन

गोपनीयता नीति सारांश, सेवा सारांश की शर्तें, GDPR डेटा अनुरोध।

कनेक्टर ज्ञान

प्रत्येक कनेक्टर एआई को ज्ञान का योगदान कर सकता है। जब एक कनेक्टर सक्षम हो जाता है, तो इसका अंतर्निहित ज्ञान लेख (उत्पाद सूची, सामान्य प्रश्न, प्लेटफ़ॉर्म-विशिष्ट समस्या निवारण) स्वचालित रूप से एआई के लिए उपलब्ध हैं। आप कनेक्टर सेटिंग्स में प्रति कनेक्टर पर या बंद कनेक्टर ज्ञान को टॉगल कर सकते हैं।

Token बजट

ज्ञान आधार में एक विन्यास योग्य टोकन छत (डिफ़ॉल्ट): 32,000 टोकन) जो नियंत्रित करता है कि प्रति वार्तालाप एआई को कितना ज्ञान संदर्भ भेजा जाता है। यदि आपका ज्ञान आधार बहुत बड़ा है, तो एआई इस बजट के भीतर सबसे प्रासंगिक लेखों का चयन करती है। अगर एआई प्रासंगिक लेख नहीं ढूँढ रहा है तो छत बढ़ाएं; इसे कम करें यदि आप टोकन लागत को कम करना चाहते हैं।

मुझे कितने लेखों का होना चाहिए?+

शुरू करना5-10 अपने सबसे आम सवालों को कवर करने वाले लेख। अधिक जोड़ें क्योंकि आप एआई इतिहास और एआई इनसाइट्स के माध्यम से अंतराल की पहचान करते हैं। अधिकांश व्यवसायों की जरूरत है। 20-50 व्यापक कवरेज के लिए लेख।

क्या मैं किसी अन्य सिस्टम से लेख आयात कर सकता हूँ?+

वर्तमान में, लेख मैन्युअल रूप से OpsIQ_ में बनाए जाते हैं। आप मौजूदा FAQs, मदद केंद्र या दस्तावेज़ों से सामग्री की प्रतिलिपि बना सकते हैं।

कौन से प्रारूप में होना चाहिए?+

सादा पाठ सबसे अच्छा काम करता है। एआई संरचित HTML या मार्कडाउन से बेहतर प्राकृतिक भाषा को समझता है। जैसा कि आप ग्राहक को समझाते हैं, उसे लिखें।

एआई

AI मूल्यांकन और वॉचटोवर

मूल्यांकन सेट उत्तर गुणवत्ता, उद्धरण, वृद्धि और कार्रवाई सुरक्षा के लिए दोहराए जाने योग्य परीक्षणों में महत्वपूर्ण ग्राहक प्रश्नों को बदल देता है।

उत्पाद स्क्रीन
एआई मूल्यांकनएआई मूल्यांकन में सुनहरा परीक्षण के मामलों, आवश्यक व्यवहार, नवीनतम परिणाम और अनुसूचित वॉचटूवर रन सूचीबद्ध हैं।एआई मूल्यांकनकार्यस्थलSETS6CASES84PASS RATE96%लाइव WORKSPACEशिपिंग नीतिआवश्यक प्रशस्ति पत्रपासरिफंड अनुरोधमानव पुष्टि की आवश्यकतापासअसमर्थित दावानिषिद्ध कार्रवाईपासप्रवासन प्रश्नअपेक्षित स्रोत लापताविफल1CREATE CASESगोल्डन इनपुट और नियम2RUN SAFELYड्राई रन या लाइव इवल3WATCHदैनिक या साप्ताहिक अनुसूची
एआई मूल्यांकन में सुनहरा परीक्षण के मामलों, आवश्यक व्यवहार, नवीनतम परिणाम और अनुसूचित वॉचटूवर रन सूचीबद्ध हैं।

पूर्ण प्रशासक एक शीघ्र, अपेक्षित स्रोत लेबल, आवश्यक उद्धरण, मानव पुष्टिकरण नियम, वृद्धि की उम्मीद और निषिद्ध कार्रवाई के साथ मूल्यांकन सेट बना सकते हैं। सीधे सेट करें, इसे सूखा लें, या चयनित इतिहास को फिर से खेलना।

वॉचटूर दैनिक या साप्ताहिक चेकों को क्रॉन के माध्यम से शेड्यूल करें और मामलों की एक सीमित संख्या (प्रति अनुसूचित पास आठ तक) चलाएं। उत्पादन व्यवहार बदलने से पहले प्रदाता / मॉडल, प्रॉम्प्ट संस्करण, ज्ञान संस्करण, कार्यों का प्रस्ताव और लागत के साथ समीक्षा विफलताओं।

एआई

भाषाएँ और अनुवाद

भाषाएँ अनुवादित ग्राहक-फेसिंग टेक्स्ट का प्रबंधन करती हैं और जब तक कि OpsIQ एक ग्राहक की भाषा का अनुसरण करता है तो इसका इस्तेमाल किया जाने वाला व्यवहार होता है।

उत्पाद स्क्रीन
भाषाभाषा पृष्ठ स्रोत भाषा, अनुवादित भाषाओं, ड्राफ्ट/जीवन राज्य और ग्राहक-भाषा व्यवहार को दर्शाता है।भाषाकार्यस्थलस्रोतअंग्रेज़ीLANGUAGES4जीना3लाइव WORKSPACEफ्रेंचइंटरफ़ेस और सामग्रीलाइवजर्मनइंटरफ़ेस और सामग्रीलाइवस्पेनिशअनुवादड्राफ्टग्राहक का अनुसरण करेंपता लगाया भाषा में जवाब देंपर1SET SOURCEमूल ऑपरेटर भाषा2ADD LANGUAGEपृष्ठभूमि में अनुवाद करें3PUBLISHड्राफ्ट या लाइव
भाषा पृष्ठ स्रोत भाषा, अनुवादित भाषाओं, ड्राफ्ट/जीवन राज्य और ग्राहक-भाषा व्यवहार को दर्शाता है।

OpsIQ ऑपरेटर-प्रेरित ग्राहक-फेसिंग टेक्स्ट का अनुवाद करता है। अनुवाद बनाने से पहले स्रोत भाषा को सही ढंग से सेट करें, लक्ष्य भाषाओं को जोड़ने के लिए, फिर प्रकाशन से पहले ड्राफ्ट की समीक्षा करें। "Follow ग्राहक भाषा" प्रतिक्रिया भाषा को नियंत्रित करती है; विजेट इंटरफ़ेस का अनुवाद इसके बटन, लेबल और सिस्टम टेक्स्ट को नियंत्रित करता है ।

अनुवाद क्षेत्र केवल ड्राफ्ट या लाइव हो सकता है। मानव समीक्षा के बिना कानूनी, वापसी, सुरक्षा या सुरक्षा पाठ के लिए मशीन अनुवाद पर भरोसा न करें।

हर जगह जो आपका अपना खुद का शब्द रखता है, उसकी संदेश गिनती के साथ सूचीबद्ध है: क्लाइंट चैट संदेश, प्रोन्नति, सक्रिय संदेश, चैट प्रवाह, निर्देशित पर्यटन, घोषणाएं, चिढ़ बुलबुले और सर्वेक्षण और रूपोंसर्वेक्षण सतह प्रत्येक प्रकाशित सर्वे को पूरी तरह से कवर करती है: शीर्षक, हर प्रश्न, हर उत्तर विकल्प, बटन, स्वागत और धन्यवाद प्रतिलिपि, पृष्ठ क्रोम और परिणाम पृष्ठों। कुंजी सवाल ID और विकल्प मान से बंधे हैं, इसलिए पुन: व्यवस्थित प्रश्न या विकल्प कभी अनुवाद खो नहीं देता है, और एक संदेश पुनः अनुवाद केवल उस संदेश को त्याग देता है। लाइव सर्वे प्रकाशित डिफ़ॉल्ट रूप से प्रस्तुत किए जाते हैं; ड्राफ्ट जब आप दायरे को चौड़ा करते हैं तब शामिल हो जाते हैं।

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

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

PeopleOS HR

पीओएस: शासित कार्यबल ऑपरेटिंग सिस्टम

कर्मचारी जीवन चक्र को मोबाइल स्वयं सेवा, साक्ष्य समर्थित कार्यप्रवाहों, टाइप्ड इंटीग्रेशन और मानव नियंत्रण के साथ बंद करने की मांग से लेकर संवेदनशील निर्णयों पर चलाते हैं।

इंटरैक्टिव सिस्टम का नक्शा
पीपुल्स लाइफसाइकल कमांड सेंटरतीन आयामी पीओएस डैशबोर्ड भर्ती, कर्मचारियों, पेरोल, सीखने और नियंत्रित एआई को जोड़ने।लोको पायलट कमांड सेंटरEVIDENCE लाइवलोग248खुला12नियंत्रण गेट15 / 15जीवनशैलीभर्तीकिरायाबढ़नाइनामसंक्रमणएक रिकॉर्डपहचान + रोजगार सबूतमानव नियंत्रणअपील, सुधार, अधिग्रहणइसे प्रोवाइड करेंआउटकम और रिलीज सबूत
पीओएस एक शासित रिकॉर्ड पर जीवन चक्र, नियंत्रण और सबूत रखता है।

प्रशासक

संचालन

लोगों, संगठन, भर्ती, ऑनबोर्डिंग, दस्तावेजों, छुट्टी, पेरोल सामंजस्य, लाभ, प्रदर्शन, सीखने, कर्मचारी संबंधों, विश्लेषण और शासन का प्रबंधन करें।

कर्मचारी और प्रबंधक

स्व-सेवा

निजी रिकॉर्ड, अनुरोध, दस्तावेज़, ऑनबोर्डिंग, टाइम, भुगतान स्पष्टीकरण, सीखने, कंपनी की जानकारी और अधिकारों के लिए एक मोबाइल-पहली पोर्टल का उपयोग करें।

डेवलपर्स

विस्तार

क्यूरेट का उपयोग करें hr.* क्रियाएँ और समीक्षा की गई platform.hr.* एक अनुबंध के माध्यम से संचालन, साथ ही कनेक्टर वर्गों का टाइप किया गया। PeopleOS में उत्पन्न सूचकांक API अनुभाग अपने दायरे के साथ हर किसी को सूचीबद्ध करता है।

⚠️
पीओएस एक पेरोल लेजर, कानूनी सलाहकार, पृष्ठभूमि चेक ब्यूरो या पहचान प्रदाता नहीं है। प्रमाणित बाहरी सिस्टम उन जिम्मेदारियों को बरकरार रखते हैं। एक ग्रीन तकनीकी जांच कभी कानूनी अनुमोदन या प्रदाता सबूत पैदा नहीं करती है।

POS एचआर

पीओएस एचआर को एंटरप्राइज प्लान में शामिल किया गया है। हर अन्य भुगतान योजना पर यह ऐड-ऑन होता है: खाता मालिक खुलता है खाता → Add-ons & Tokens, एक PeopleOS HR टियर चुनना और या तो फ्री ट्रायल शुरू करना शुरू कर देता है या इसे सीधा जोड़ता है। बायर्स कितने लोगों में भिन्न होते हैं और वे कितनी भर्ती, साक्षात्कार और एआई गतिविधि करते हैं। मूल्य और सीमा खाते पर निर्धारित की जाती है, उत्पाद में नहीं लिखा जाता है, इसलिए वर्तमान स्तरों को उत्पाद में सूचीबद्ध किया गया है। मूल्य निर्धारण पृष्ठक्या मॉड्यूल करता है, सतह से सतह, पर है PleOS HR उत्पाद पृष्ठ.

कौन इसे जोड़ सकता है

एक भुगतान योजना जो सक्रिय है। एक मुफ्त योजना इसे नहीं जोड़ सकती है, और एक भुगतान की योजना जो अभी भी अपने स्वयं के प्लान परीक्षण के अंदर है उसे तब तक इंतजार करना पड़ता है जब तक कि वह परीक्षण समाप्त हो जाता है।

मुफ्त परीक्षण

परीक्षण आपके द्वारा चुने गए टियर पर चलता है। जब यह खरीद के बिना समाप्त होता है तो पात्रता को हटा दिया जाता है और कुछ भी चार्ज नहीं किया जाता है। कुछ भी नष्ट नहीं किया गया है: रिकॉर्ड फिर से वहाँ हैं पल ऐड-ऑन जोड़ा जाता है ।

जब यह स्वामित्व नहीं है

PeopleOS HR साइडबार, कमांड पैलेट, सेटिंग्स या इन-ऐप मदद में प्रकट नहीं होता है। एक HR पेज के लिए एक सीधा लिंक पृष्ठ के बजाय ऐड-ऑन प्रदान करता है।

एक टियर कैप तक पहुंचना

जब पृष्ठ पर पहुंचने की सीमा अगले स्तर को प्रदान करती है। पहले से मौजूद संपादन या हटाने के लिए कभी अवरुद्ध नहीं होता है।

स्व-होस्टेड इंस्टॉल

पात्रता लाइसेंस में यात्रा करती है। ऐड-ऑन को अपने पर जोड़ेंOpsIQखाता और इंस्टॉल इसे अपने अगले लाइसेंस चेक पर उठाता है।

प्रथम सप्ताह का सेटअप

नीचे सब कुछ एक वास्तविक स्क्रीन है; यहाँ कुछ भी नहीं एक डेवलपर की जरूरत है।

1
मॉड्यूल चालू करें

खुला PeopleOS → Hr Homeध्वज बोर्ड मास्टर स्विच के साथ शुरू होता है, PeopleOS HRइसके साथ कोई मानव संसाधन पृष्ठ या कर्मचारी की सतह तक पहुंच योग्य नहीं है। एक स्विच चालू करना दो-क्लिक पुष्टिकरण है; एक बंद मोड़ना एक क्लिक है। एआई इसके नीचे स्विच करता है (ड्राफ्टिंग मदद, एप्लिकेशन स्क्रीनिंग, स्वायत्त सहायक, एआई साक्षात्कार, स्वचालित प्रस्ताव भेजने, पहचान सत्यापन) जब तक आप निर्णय लेते हैं।

2
सेटअप Copilot को विन्यास करने के लिए चलो

खुला पीपुल्स→सेटअप Copilot और कहते हैं कि आप किस भाषा में चाहते हैं: अपने दिनों और नोटिस के साथ एक छुट्टी नीति, किसी देश के लिए सार्वजनिक अवकाश, उसके साथ एक मामला श्रेणीSLA, एक व्यय टोपी, एक ऑनबोर्डिंग टेम्पलेट, एक मासिक पल्स। आपको योजना वापस मिल जाती है जिसे यह समझा जाता है और क्या यह माना जाता है। जब तक आप पुष्टि नहीं करते हैं तब तक कुछ भी नहीं चलता; मध्यम जोखिम वाले कदम को दूसरे व्यक्ति की आवश्यकता होती है; हर रन रसीद छोड़ देता है।

3
कर्मचारी पोर्टल का नाम

खुला पीपुल्स→फ्रंटलाइन→साइन-इन डिज़ाइनएक स्व-होस्टेड पर पोर्टल को जीवन में स्वयं स्थापित करें /hr/<address>; पोर्टल का पता इसे तुरंत नाम दिया जाता है और पुराने साइन-इन लिंक काम करते रहते हैं क्योंकि पुराना पता आगे बढ़ता है। क्लाउड पर पोर्टल है /hr अपने कार्यक्षेत्र होस्ट पर और कोई पता की जरूरत नहीं है।

4
अपने करियर साइट प्रकाशित करें

खुला PeopleOS → Regruitingप्रत्येक पोस्टिंग आप एक अनुमोदित मांग से प्रकाशित सार्वजनिक करियर पृष्ठ पर दिखाई देता है; लिंक सार्वजनिक करियर पेज खोलें भर्ती के शीर्ष पर वास्तव में एक उम्मीदवार क्या देखता है।

5
साझा उपकरणों के लिए एक कियोस्क पंजीकृत करें

खुला पीपुल्स→फ्रंटलाइन→कियोस्क और चुनें एक कियोस्क पंजीकृत करेंThe device token is दिखाया गया है, the page on the table or PC (यह है) /kiosk पोर्टल होस्ट पर और इसे पेस्ट करें। लोग अपने काम ईमेल और पिन के साथ या उनके पोर्टल से अल्पकालिक बैज कोड के साथ घड़ी करते हैं। एक कियोस्क को फिर से शुरू करने से डिवाइस को एक बार बंद कर देता है।

6
यह तय करना कि कर्मचारी क्या कर सकते हैं?

खुला सेटिंग्स → HRप्रत्येक स्वयं सेवा शक्ति (रिकॉर्ड्स, अनुरोध, दस्तावेज, छुट्टी, भुगतान स्पष्टीकरण आदि) केवल हर कर्मचारी, प्रबंधकों या उसके तहत एक टीम और टीमों के लिए सेट किया गया है। हर बदलाव रिकॉर्ड जो इसे बनाया और क्यों, और आप जिस शक्ति को बंद कर दिया है वह चुपचाप लापता होने की बजाय कर्मचारी को समझाया गया है ।

7
लोगों को जोड़ें और उन्हें एक्सेस दें

पर पीपुल्स→लोग व्यक्ति, उनके रोजगार और उनके प्रबंधक का निर्माण। प्रावधान पोर्टल केवल एक बार जब व्यक्ति के पास वैध ईमेल और इच्छित रोजगार संबंध होता है; निमंत्रण उसी स्क्रीन से बाहर निकल जाता है और आपके द्वारा स्थापित यात्रा से शुरू होता है।

जीवनचक्र

योजना और भर्ती

अनुमोदित मांग, प्रकाशन नौकरियां बनाएं, फिर से क्वेरी-सुरक्षित वेबहुक, संरचना समीक्षा, अनुसूची साक्षात्कार, रिकॉर्ड निर्णय, अंक प्रस्ताव और किराया के माध्यम से आवेदन प्राप्त करें।

शामिल हों और प्रावधान

साक्ष्य-बैक्ड ऑनबोर्डिंग यात्रा का निर्माण, सही दस्तावेज़ संस्करण इकट्ठा, अनुरोध उपकरण, अनुदान स्वीकृत एक्सेस टेम्प्लेट और प्रावधान सीट रहित पोर्टल एक्सेस।

काम और विकास

छुट्टी, शेड्यूल, भुगतान स्पष्टीकरण, लाभ, खर्च, लक्ष्य, प्रतिक्रिया, समीक्षा, सीखने, कौशल, आंतरिक अवसर, उत्तराधिकार और कार्यबल विश्लेषण का संचालन करें।

समर्थन और सुरक्षा

निजी मानव संसाधन समर्थन प्रदान करते हैं, कर्मचारी-रिलाएशन मामलों, कानूनी रखती है, डेटा अनुरोध, सुधार, स्पष्टीकरण, अपील और स्वतंत्र मानवीय समीक्षा को नियंत्रित करती है।

परिवर्तन और छुट्टी

प्रभावी-डेट रोजगार परिवर्तन का उपयोग करें, पहुंच रद्द करें, उपकरण पुनर्प्राप्त करें, बाह्य प्रदाताओं को पुनः प्राप्त करें, प्रतिधारण लागू करें और आवश्यक सबूतों को संरक्षित करें।

प्रवेश और पहचान

एक canonical व्यक्ति रोजगार रिकॉर्ड का मालिक है और बाहरी पहचान पहलू सत्यापित करता है। ईमेल mutable संपर्क डेटा है, कभी स्थायी पहचान कुंजी नहीं है। पोर्टल पढ़ता है स्वयं-स्किप; प्रबंधक और प्रशासक विचारों को स्पष्ट अनुमतियों की आवश्यकता होती है।APIमार्ग अनुमतियों के शीर्ष पर स्थित गुंजाइश परत और उन्हें कभी भी बाईपास नहीं।

एक नया कार्यकर्ता जोड़ें

परिदृश्य:
व्यक्ति बनाएं, रोजगार और प्रबंधक को असाइन करें, पोर्टल एक्सेस का प्रावधान करें, फिर ऑनबोर्डिंग यात्रा खोलें।
क्या करना है:

ड्राई रन और आइडमपॉटेंसी का उपयोग API लिखा जाता है। इस बात की पुष्टि करें कि व्यक्ति को पहुंच भेजने से पहले वैध ईमेल और इच्छित रोजगार संबंध है।

एक डुप्लिकेट पहचान को हल करें

परिदृश्य:
दो बाहरी सिस्टम अलग-अलग वर्कर की पहचान करते हैं।
क्या करना है:

दोनों सत्यापित पहलुओं को कैनोनिकल व्यक्ति से लिंक करें और स्पष्ट रूप से संघर्ष का समाधान करें। केवल रिकॉर्ड्स को मर्ज न करें क्योंकि दो उत्परिवर्तनीय ईमेल मान मैच हैं।

PeopleOS HR

मानव संसाधन कार्यप्रवाह और कर्मचारी पोर्टल

प्रत्येक प्रमुख पीपुलोस क्षेत्र कैसे संचालित होता है और कौन से कर्मचारी साइन-इन के बाद देखते हैं।

संगठन

कैनोनिकल व्यक्ति, रोजगार, कार्यकर्ता प्रकार, प्रबंधक, टीम, स्थान, कौशल, दस्तावेज़ और प्रभावी-घृत संगठन संरचना को बनाए रखें।

भर्ती और प्रदान करता है

अनुमोदित मांग से लेकर पोस्टिंग, आवेदन, संरचित साक्ष्य, साक्षात्कार, निर्णय लेने, प्रस्ताव और आवास और अपील मार्गों के साथ काम करने की अनुमति दी।

ऑनबोर्डिंग और दस्तावेज

आदेश दिया मालिक विशिष्ट चरणों को सौंपना; इकट्ठा, समीक्षा, संकेत, समय सीमा समाप्त करना, पकड़ना और संस्करण और एक्सेस सबूत के साथ दस्तावेजों को हटा देना।

समय, छुट्टी और शेड्यूलिंग

पॉलिसी समर्थित छुट्टी प्रकार, शेष राशि, अनुरोध, अनुमोदन, अवकाश, उपलब्धता, कैलेंडर घटनाओं और मिलान को परिभाषित करें।

भुगतान, लाभ और खर्च

वेतन की व्याख्या करें, हाथ ने नौकरी करने वाले कार्यकर्ताओं को मंजूरी दी, अपवादों को रद्द करने, लाभ पात्रता का प्रबंधन और प्रतिपूर्ति को नियंत्रित करने के लिए।

प्रदर्शन और विकास

लक्ष्य, चेक-इन, फीडबैक, समीक्षा, अंशांकन, सीखने, कौशल, सलाह देने, आंतरिक अवसर और उत्तराधिकार का संचालन करें।

मानव संसाधन सेवा और संबंध

कर्मचारियों को समर्पित अनुमति सीमाओं में शिकायत, अनुशासन, सीटीब्लोअर और सीलबंद मामले के सबूत रखने के दौरान निजी समर्थन देना।

विश्लेषिकी और योजना

कार्यबल उपायों, हेडकाउंट योजनाओं, बेंचमार्क और रिकॉर्ड से प्राप्त अनुभव मेट्रिक्स का उपयोग करें; सफलता के रूप में लापता परिणामों को कभी भी लागू नहीं किया जाता है।

कर्मचारी पोर्टल का नक्शा

अवलोकन

अपनी ध्यान की आवश्यकता है, आखिरी यात्रा के बाद से परिवर्तन, खुले अनुरोधों, आगामी घटनाओं, प्रगति और घोषणाओं पर सवार।

प्रोफ़ाइल और रिकॉर्ड

रोजगार, सत्यापित रिकॉर्ड, दस्तावेज, अनुमतियां, गोपनीयता अनुरोध और सुधार अनुरोध।

मानव संसाधन सहायता और कार्य

निजी बातचीत, अनुरोध, कार्रवाई जो कर्मचारी और कंपनी के स्वामित्व वाले कार्यों को अलग से दिखाने की आवश्यकता होती है।

आपका पहला दिन

मालिक, देय राज्य, पूरा होने और अवरुद्ध काम के साथ साक्ष्य-बैक्ड ऑनबोर्डिंग टाइमलाइन।

समय और छुट्टी

शेष, छुट्टी अनुरोध, उपलब्धता, अनुसूची और कैलेंडर परिणाम।

कौशल और विकास

सीखने, कौशल सबूत, लक्ष्य, फीडबैक, सलाह और आंतरिक अवसर।

मेरा वेतन, समझाया

सादे भाषा मुआवजा और पेरोल मिलान जानकारी कर्मचारी को देखने की अनुमति है।

कंपनी

निर्देशिका और संगठन चार्ट सीमित जानकारी सहयोगियों को चुन लिया है या नीति उन्हें साझा करने की अनुमति देता है।

अधिकार और निर्णय

स्पष्टीकरण, अपील, सहमति, सुधार, अभिगम और विलोपन अनुरोध।

💡
पोर्टल मोबाइल-पहली है। खाता कार्ड व्यापक स्क्रीन पर स्वतंत्र रूप से पहुंच योग्य, नेविगेशन और सामग्री स्क्रॉल रहता है, और पृष्ठ को धक्का देने या कवर करने के बजाय मोबाइल नेविगेशन ओवरले करता है। लंबी व्याख्यात्मक प्रतिलिपि सुलभ टूलटिप या प्रकटीकरण घटकों में संबंधित है।

सुरक्षित ऑपरेटिंग अनुक्रम

1
नीति और अनुमतियों को कॉन्फ़िगर करें

लाइव रिकॉर्ड लोड करने से पहले अधिकार क्षेत्र, भूमिकाओं, अनुमोदन पथ, प्रतिधारण, सहमति और सुविधा नियंत्रण सेट करें।

2
बाह्य प्रदाताओं से जुड़ना

उचित हस्ताक्षरित पैकेज स्थापित करें, कम से कम प्रवीणता प्राप्तियों में प्रवेश करें और कनेक्शन और अनुरूपता परीक्षण पास करें।

3
सैंडबॉक्स या छाया में भाग लें

वास्तविक प्रदाता निष्पादन को सक्षम करने से पहले अपेक्षित साक्ष्यों की तुलना में, नियत डेटा के साथ पूर्ण कार्यप्रवाह का प्रयोग करें।

4
दोहरी नियंत्रण के तहत रिलीज

एक अलग अधिकृत समीक्षक प्रदाता, सुरक्षा, गोपनीयता, कानूनी, निष्पक्षता और अभिगम्यता प्रमाण की जांच करता है।

PeopleOS HR

एआई, निष्पक्षता, वीडियो और कानूनी नियंत्रण

पीओपी एक नियंत्रित उपकरण पथ के रूप में स्वचालन का इलाज करता है: नीति अनुमति, निष्पादन का प्रयास किया, प्रदाता परिणाम और सबूत अलग-अलग तथ्य हैं।

एआई और एजेंट नियंत्रण

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

परियों

कोहोर्ट्स, न्यूनतम नमूना नियमों, मीट्रिकों, मूल्यांकनकर्ता पहचान और कानूनी रूप से जारी मूल्यांकन की परिभाषा करें। लापता डेटा गायब रहता है; इसे कभी भी पास में परिवर्तित नहीं किया जाता है।

स्पष्टीकरण और अपील

सीलबंद निर्णय और नीति साक्ष्य से स्पष्टीकरण का निर्माण। स्वतंत्र मानव को अपील भेजें और परिणाम साक्षरता बनाए रखें।

न्यायिकरण

केवल एक नामित जवाबदेह कानूनी मालिक के साथ देश नीति पैक जारी करना, कानूनी स्रोतों का हवाला देते हुए और परीक्षण पास करते हैं। उच्च-गति कानून परिवर्तन प्रभावित लेन को निलंबित कर देता है।

यूरोपीय संघ एआई अधिनियम

सिस्टम सूची, जोखिम वर्ग, मौलिक अधिकार प्रभाव आकलन, नोटिस, ओवरसीजर, मीटरिंग और सबूत बनाए रखें।

वीडियो स्क्रीनिंग सीमा

प्रावधान भागीदारी नहीं है

hr.interview.room.provision केवल बैठक का स्थान बनाता है। hr.interview.room.connect मीडिया कार्यकर्ता तक पहुंच सकता है।

उद्देश्य-विशिष्ट सहमति

रिकॉर्डिंग, ट्रांसक्रिप्शन और बॉयोमीट्रिक जीवन अलग विकल्प हैं। विड्रॉल चयनित उद्देश्य पर लागू होता है।

कोई उपस्थिति विश्लेषण नहीं

वीडियो अनुबंध में भावना, ध्यान, आकर्षण, दौड़, विकलांगता या उपस्थिति की संभावना के लिए कोई क्षेत्र या विधि नहीं है।

मानव और पाठ मार्ग

एक समीक्षक सत्र के लिए स्थायी रूप से ले सकता है, और एक पाठ आवास मार्ग उपलब्ध रहता है।

अवधारण और हटाने

कनेक्टर ने एन्क्रिप्टेड ट्रांसपोर्ट, सक्रिय रिटेंशन पॉलिसी और प्रदाता मीडिया संदर्भों की रिपोर्ट की है, और सत्यापन योग्य हटाने का समर्थन करना चाहिए।

कक्ष बनाया गया, एआई अनुपस्थित

परिदृश्य:
एक ज़ूम रूम URL मौजूद है, लेकिन मीडिया ब्रिज ने साक्षात्कारकर्ता को ऑडियो/वीडियो नहीं दिया है।
क्या करना है:

बैठक को प्रावधान और एआई भागीदारी के रूप में झूठी के रूप मे दिखाएं। मानव साक्षात्कार और पाठ आवास पथ उपलब्ध रखें।

कॉलबैक कहते हैं कि एक जांच पास हुई

परिदृश्य:
एक हस्ताक्षरित पृष्ठभूमि-चेक वेबहुक रिपोर्ट पूरा होने।
क्या करना है:

कॉलबैक को एक संकेत के रूप में रिकॉर्ड करें, फिर प्रदाता को क्वेरी करें। केवल प्रामाणिक स्थिति प्रतिक्रिया जांच को अपडेट कर सकती है।

🚫
तकनीकी अभिगम्यता मूल्यांकन अपने मूल्यांकनकर्ता द्वारा दर्ज किया जा सकता है, लेकिन डब्ल्यूसीएजी सत्यापन के लिए एक अलग व्यक्ति की आवश्यकता होती है। प्रदाता प्रमाण, कानूनी रिलीज और निष्पक्षता सबूत को उनके वास्तविक नाम वाले मालिकों की भी आवश्यकता होती हैं।
PeopleOS HR

पीपुल्स API और कनेक्टर विकास

जनरल का प्रयोग करें API शासित एचआर प्रचालनों के लिए और आधिकारिक बाहरी प्रणालियों के लिए कनेक्टर अनुबंध टाइप किया गया।

General API _Stronomy of reality

भेजेंJSONto POST /api/v1.phpचल रहा सतह के माध्यम से खोज meta.actions, OpenAPI पर /api/v1/openapi.php, और पोस्टमैन पर /api/v1/postman.phpनीचे उत्पन्न सूचकांक में ठीक किए गए की सटीक गिनती होती है hr.* क्रियाओं और समीक्षा platform.hr.* इस बिल्ड में संचालन, इसलिए इस पृष्ठ पर कुछ भी नहीं लिखा जाता है।

सूची
curl -sS https://your-opsiq.example/api/v1.php \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"action":"hr.people.list","page":1,"per_page":50}'
ड्राय-रन एक लिखना
curl -sS https://your-opsiq.example/api/v1.php \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"action":"hr.people.create","display_name":"Ada Reaudit","primary_email":"[email protected]","worker_type":"employee","idempotency_key":"hire-2026-0042","dry_run":true}'

उपयोग hr.read या hr.write केवल आवश्यकतानुसार लक्ष्य प्रशासक मार्ग अभी भी अपनी अनुमति की जांच करता है। लेखकों को एक स्थिर idempotency कुंजी की आवश्यकता होती है; उच्च जोखिम वाले लिखने के लिए पुष्टिकरण की आवश्यकता है। अनिश्चित समय के बाद उसी कुंजी और क्वेरी वसूली स्थिति के साथ क्षणिक विफलताओं को फिर से देखें।

हर इलाज hr.* कार्रवाई

48 curated hr.* actions (22 reads, 26 writes) and 484 reviewed platform.hr.* operations, out of 2420 named actions in this build. Generated from the action registry, the same source as meta.actions, OpenAPI and Postman.

लोग, संगठन और पहचान (9)

hr.employee.provision

Write. Scope: hr.write. Provision seatless employee access and send the invitation. Required: person_uuid.

hr.employee.restore

Write. Scope: hr.write. Lift an employee access suspension (written reason required) and provision again. Required: person_uuid, reason.

hr.identity.facets

Read. Scope: hr.read. List a person's identity facets and open conflicts. Required: person_uuid.

hr.identity.link

Write. Scope: hr.write. Link an identity facet to a person. Required: person_uuid, facet_type, facet_key.

hr.org.tree

Read. Scope: hr.read. Read the organisation tree.

hr.people.create

Write. Scope: hr.write. Create an HR person. Required: display_name.

hr.people.get

Read. Scope: hr.read. Get one HR person. Required: person_uuid.

hr.people.list

Read. Scope: hr.read. List HR people.

hr.people.update

Write. Scope: hr.write. Update an HR person. Required: person_uuid, display_name, primary_email.

पूछताछ और पोस्टिंग (3)

hr.postings.list

Read. Scope: hr.read. List job postings.

hr.requisitions.create

Write. Scope: hr.write. Create a requisition. Required: title, openings, justification.

hr.requisitions.list

Read. Scope: hr.read. List requisitions.

छुट्टी, सीखने और कनेक्टर बाजार (3)

hr.learning.overview

Read. Scope: hr.read. Read courses, paths and enrolments.

hr.leave.overview

Read. Scope: hr.read. Read leave types and requests.

hr.marketplace.overview

Read. Scope: hr.read. Read HR connector accounts, conflicts and deliveries.

कनेक्टर प्रमाणन और स्वास्थ्य (2)

hr.connectors.certify

Write. Scope: hr.write. Certify an HR connector (scope sandbox|production; production demands provider-side proof under dual control). Required: connector_class, connector_key, scope, evidence, submitted_by.

hr.connectors.health

Read. Scope: hr.read. One connector account's health: certification level and scope, last reconciliation verdict, failures and webhook backlog. Required: account_uuid.

साक्षात्कार कक्ष (7)

hr.booking.slots_reconcile

Write. Scope: hr.write. Release booking slots whose claim never became a booked meeting.

hr.interview.room.connect

Write. Scope: hr.write. Connect the AI to interview media; refuses unless media really reaches the worker. Required: media_uuid.

hr.interview.room.consent

Write. Scope: hr.write. Record or withdraw consent for ONE interview purpose (recording, biometric_liveness, transcription). Required: media_uuid, purpose, state.

hr.interview.room.pause

Write. Scope: hr.write. Pause a live interview. Required: media_uuid.

hr.interview.room.provision

Write. Scope: hr.write. Provision an interview room (a place to meet — NOT AI participation). Required: session_uuid, transport, accommodation_route.

hr.interview.room.state

Read. Scope: hr.read. Read an interview room, including whether the AI is actually participating. Required: media_uuid.

hr.interview.room.takeover

Write. Scope: hr.write. A human takes the interview; the AI cannot speak in it again. Required: media_uuid, reason.

एजेंट और जीवनचक्र लेन (7)

hr.agent.incident.close

Write. Scope: hr.write. Close an agent incident — the same act that lifts the suspension it caused. Required: incident_uuid, resolution.

hr.agent.step

Write. Scope: hr.write. Run one agent step: gate verdict, execution and outcome reported separately. Required: run_uuid, agent_key, tool_key, jurisdiction, purpose.

hr.agent.step.status

Read. Scope: hr.read. What actually happened at a step (permitted, executed, proven, failed, compensated). Required: run_uuid, seq.

hr.agent.takeover

Write. Scope: hr.write. A human takes an agent run; no further agent steps are accepted. Required: run_uuid.

hr.agent.tool.grant

Write. Scope: hr.write. Grant an agent a tool for one jurisdiction and purpose, up to a risk ceiling. Required: agent_key, tool_key, jurisdiction, max_risk, purpose.

hr.agent.tools

Read. Scope: hr.read. List the registered typed tools an agent may use, and open agent incidents.

hr.lifecycle.lanes

Read. Scope: hr.read. Every lifecycle lane with its mode, KPIs and whether a live tool path really exists behind it.

अधिकार (5)

hr.jurisdiction.capabilities

Read. Scope: hr.read. What this product may do in one country, per feature, with the law behind each answer. Required: code.

hr.jurisdiction.change.raise

Write. Scope: hr.write. Report a change in the law; a high or critical one suspends every lane in that jurisdiction at once. Required: pack_key, summary, severity.

hr.jurisdiction.coverage

Read. Scope: hr.read. Computed coverage for every market: released pack, named counsel owner, cited sources, passing tests.

hr.jurisdiction.explain

Read. Scope: hr.read. Why an action about one person is allowed, reduced or blocked, with the rule and citation. Required: person_uuid, feature.

hr.jurisdiction.pack.release

Write. Scope: hr.write. Put a drafted policy pack into effect; refused without a named counsel owner and a cited law. Required: release_uuid.

निर्णय और अपील (2)

hr.decisions.appeals

Write. Scope: hr.write. File an appeal against an AI decision on a person's behalf; it must be heard by an independent human. Required: decision_uuid, subject_type, subject_id, grounds.

hr.decisions.explanation

Read. Scope: hr.read. Plain-language explanation of one AI decision: what was looked at, which policy, and how to appeal. Required: decision_uuid, audience.

एआई गुणवत्ता (2)

hr.ai.corrections

Write. Scope: hr.write. Bundle recent reviewer corrections into a dataset; it is pending privacy review and trains nothing.

hr.ai.quality.overview

Read. Scope: hr.read. The AI quality board: sampled defect rate, override pressure per workflow, coaching reception.

कार्यबल बातचीत और प्रतिधारण (4)

hr.thread.delete

Write. Scope: hr.write. Delete a workforce conversation; refused while it is under legal hold. Required: thread_uuid, reason.

hr.thread.legal_hold

Write. Scope: hr.write. Place or lift a legal hold on a workforce conversation. Required: thread_uuid, on, reason.

hr.thread.retention

Write. Scope: hr.write. Set a conversation's retention class (standard|extended|permanent). Required: thread_uuid, retention_class.

hr.threads.retention_sweep

Write. Scope: hr.write. Run the conversation retention sweep; legal holds are never swept.

तैयारी और रिलीज (4)

hr.experience.metrics

Read. Scope: hr.read. Measured persona experience metrics (self-service rate, decision cycle, coaching usefulness, quality) from live journeys.

hr.global.readiness

Read. Scope: hr.read. The whole launch picture: 15-gate leadership score, release readiness checks and jurisdiction coverage.

hr.readiness.read

Read. Scope: hr.read. Run the HR release readiness report.

hr.release.verify

Write. Scope: hr.write. Run the four HR release gates (schema, manifest, probe, readiness).

कनेक्टर कक्षा

भर्ती

hr_job_board, hr_background_check, hr_identity_verification, hr_assessment और hr_tax_right_to_work.

किराया और ऑनबोर्डिंग

hr_esignature, hr_calendar, hr_video और hr_equipment_it.

कार्यबल संचालन

hr_payroll, hr_benefits, hr_learning, hr_expense_payment, hr_directory और hr_data_warehouse.

संचार

hr_messaging केवल एक ही अनुबंध में कर्मचारी-विपणन की कोई विधि नहीं है।

प्रदाता गेटवे समापन बिंदु

पीपुल्स एचआर प्रदाता गेटवे1.0
GET    /v1/hr/health
POST   /v1/hr/job-postings
PATCH  /v1/hr/job-postings/{provider_ref}
POST   /v1/hr/job-postings/{provider_ref}/close
GET    /v1/hr/job-postings/{provider_ref}
POST   /v1/hr/background-checks
GET    /v1/hr/background-checks/{provider_ref}
POST   /v1/hr/identity-verifications
GET    /v1/hr/identity-verifications/{provider_ref}
DELETE /v1/hr/identity-subjects/{subject_ref}
POST   /v1/hr/payroll/worker-events
GET    /v1/hr/payroll/state?cursor=...
GET    /v1/hr/payroll/exceptions
POST   /v1/hr/equipment/requests
POST   /v1/hr/access/requests
GET    /v1/hr/provisioning/requests/{request_ref}
POST   /v1/hr/provisioning/requests/{request_ref}/revoke

प्रवेश द्वार की आवश्यकता है एचटीटीपी, ब्लॉक असुरक्षित/निजी लक्ष्य, पिन मान्यDNSपरिणाम, कोई रीडायरेक्ट का अनुसरण नहीं करते हैं, प्रतिक्रिया आकार को सीमित करते हैं।JSON, निर्धारक idempotency करता है, और टाइमटाम्प्ड का समर्थन करता हैHMACदोनों दिशाओं में वेबहुक हमेशा संकेत होते हैं जिसके बाद प्रदाता फिर से क्वेरी करते हैं।

इनबाउंड वेबहुक दरवाजे

तीन सार्वजनिक दरवाजे प्रदाता कॉलबैक प्राप्त करते हैं: POST /opsiq/ajax_api.php?ajax=hr_connector_webhook (क्षेत्र) connector_class, connector_key, topic), ?ajax=hr_esign_webhook (connector_key, offer_uuid, provider_ref(in) और ?ajax=hr_check_webhook (check_uuidप्रत्येक व्यक्ति शरीर को प्रमाणित कनेक्टर के माध्यम से सत्यापित करता है, डिलीवरी को जला देता है ताकि एक पुनः खेलना मर जाता है और केवल एक लंबित फिर से क्वेरी रिकॉर्ड करता है; प्रदाता का अपना जवाब रिकॉर्ड बदलता है। हर इनकार उद्देश्य पर समान सामान्य उत्तर है। पीपल्स आज कोई बाहरी वेबहुक इवेंट नहीं बचाता है: webhooks.events.list अधिकार और नाम में कोई नहीं hr परिवार, इसलिए मतदान करें hr.* पढ़ता है या उपयोग करता है hr.connectors.health.

विस्तृत संदर्भ

POS हैंडबुक

पढ़िए doc/contracts/PEOPLEOS_HR.md प्रत्येक ऑपरेटर के लिए एक स्वयं-होस्टेड इंस्टॉलेशन में, API_, कनेक्टर, वेबहुक और रिलीज नियम।

गेटवे डेवलपर अनुबंध

बाज़ार पैकेज में शामिल हैं README.md, DEVELOPER.md, connector_contract.json, hr_profile.json और एक हस्ताक्षरित फ़ाइल प्रकट होती है।

PeopleOS HR

परीक्षण और उत्पादन तत्परता

एक लॉन्च दावा सबूत से समझौता किया गया है। पैकेज तत्परता, प्रदाता प्रमाणन, कानूनी अनुमोदन, निष्पक्षता मूल्यांकन और अभिगम्यता सत्यापन जानबूझकर अलग हो जाते हैं।

1
कोड और अनुबंध को मान्य करें

रन PHP वाक्यविन्यास, HR PHPUnit, मार्ग/APIसमानता, OpenAPI/पोस्टमैन चेक, पैकेज प्रकट औरJSONस्कीमा सत्यापन।

2
व्यायाम पूर्ण कार्यप्रवाह

परीक्षण भर्ती, एआई समीक्षा, साक्षात्कार / वीडियो, ऑनबोर्डिंग, हस्ताक्षर, छुट्टी, पेरोल, पोर्टल, अधिसूचनाएं, मोडल और कनेक्टर विफलता पथ।

3
टेस्ट उत्तरदायी और सुलभ यूआई

डेस्कटॉप, टैबलेट और फोन लेआउट ड्राइव; कीबोर्ड, फोकस, लेबल, विपरीत, रिफ़्लो, टूलटिप, संवाद, अधिसूचना स्क्रॉल और स्वतंत्र नेविगेशन।

4
बाह्य साक्ष्य एकत्र करना

वास्तविक प्रदाता राउंडट्रिप्स और डिलेशन, कानूनी नीति रिलीज, प्रतिनिधि निष्पक्षता डेटा और स्वतंत्र मानव डब्ल्यूसीएजी सत्यापन का उपयोग करें।

5
दोहरी नियंत्रण के तहत रिलीज

प्रस्तुतकर्ता से अलग एक समीक्षक कनेक्टर को मंजूरी देता है और सबूत जारी करता है। यदि इसके प्रमाण समाप्त हो जाता है तो एक कनेक्टर को फिर से बुलाएं या मारें।

प्रत्येक परिणाम का क्या मतलब है

पैकेज हस्ताक्षरित

फ़ाइल को अधिकृत पैकेज हस्ताक्षर के बाद से नहीं बदला है। यह तीसरे पक्ष का खाता कार्य साबित नहीं करता है।

सैंडबॉक्स पारित

निर्धारणात्मक व्यवहार और राज्य संक्रमण के अनुरूप है। यह एक वास्तविक प्रदाता, निवास अवधि या विलोपन साबित नहीं करता है।

उत्पादन कनेक्टर प्रमाणित

एक विशिष्ट कार्यक्षेत्र खाता ने दोहरी नियंत्रण के तहत पांच प्रदाता-साइड दायित्वों को पारित किया।

तकनीकी WCAG रिपोर्ट

स्वचालित और मूल्यांकनकर्ता के नेतृत्व में सबूत नामित सतहों के लिए मौजूद हैं। यह दूसरा व्यक्ति सत्यापन नहीं है।

तैयार करना

सभी आवश्यक द्वार एक ही समय में हरे होते हैं और कोई सबूत नहीं समाप्त हो जाता है, रद्द कर दिया गया है, लापता या लाइव स्वास्थ्य के विपरीत।

⚠️
कभी भी गेट को साफ़ करने के लिए केवल पासिंग कानूनी, निष्पक्षता, प्रदाता या स्वतंत्र-परीक्षण रिकॉर्ड नहीं बनाते हैं। इसके बजाय ब्लॉकर और मालिक को रिकॉर्ड करें। तत्परता का दृश्य ठीक से मूल्यवान है क्योंकि यह बिना समर्थित दावों से इनकार करता है।
क्यों एक कनेक्टर स्थापित है लेकिन अभी भी अनुपलब्ध है?+

स्थापना पैकेज उपस्थिति साबित करती है। इसे सक्षम करें, वास्तविक कम से कम प्रवीणता को बचायें, कनेक्शन परीक्षण पास करें, फिर मेलिंग पीपल्स खाता उत्पादन क्षेत्र को वास्तविक प्रदाता सबूत और एक अलग समीक्षक का उपयोग करके प्रदान करें।

क्यों एक वेबहुक रिकॉर्ड को बदल नहीं रहा?+

कॉलबैक मान्य हो सकता है लेकिन केवल एक संकेत। वेबहुक इनबॉक्स, प्रदाता स्थिति समापन बिंदु और मिलान परिणाम की जाँच करें। पीपुल्स पुनः-क्वायरी के बाद आधिकारिक राज्य बदलता है।

पूर्ण मशीन पठनीय HR API कहाँ है?+

hr. और platform.hr के लिए Metamatical.actions और फ़िल्टर कॉल करें; या उपयोग करें/api/v1/openapi.phpऔर/api/v1/postman.php.वे एक ही रनटाइम रजिस्ट्री से उत्पन्न होते हैं।

समर्थन

सहायता केंद्र

आपका मदद केंद्र एक स्वयं-सर्वे सहायता साइट है जो आपके द्वारा प्रकाशित लेखों से बनाई गई है। ग्राहक इसे अपने सार्वजनिक पृष्ठ पर पढ़ और खोज सकते हैं, और चैट विजेट के ठीक अंदर, इसलिए वे कभी भी बातचीत खोलने से पहले अपने आप में जवाब पा सकते हैं। इसमें सब कुछ आपके ज्ञान आधार से आता है, इसलिए वही सामग्री जो आपकी AI को जमीन देता है, आपकी मदद भी करता है।

जहां आपका ग्राहक इसे देख सकते हैं

अपने सार्वजनिक पेज

एक स्वच्छ, खोज योग्य मदद साइट पर /help.phpग्राहक श्रेणी, खोज और किसी भी लेख को खोलकर ब्राउज़ करते हैं। आप इसे अपना नाम और शैली दे सकते हैं।

चैट विजेट के अंदर

इसलिए ग्राहक चैट छोड़ने के बिना अपने लेखों को खोज सकते हैं, तो चैट विजेट में एक मदद लिंक। यदि उन्हें अभी भी किसी व्यक्ति की आवश्यकता है, तो वे बातचीत शुरू करने से दूर एक टैप होते हैं।

इसे चालू करें

1
सहायता केंद्र पृष्ठ खोलें

जाने Config, then Help Center अपने व्यवस्थापक में और चालू करें सार्वजनिक सहायता केंद्र.

2
इसे एक नाम और एक नज़र डालें

हेल्प सेंटर का नाम सेट करें, जो हेडर और ब्राउज़र टैब में दिखाता है, और एक दृश्य शैली चुनें। आप बिना मेनू के स्वच्छ पृष्ठ के लिए शीर्ष नेविगेशन को बंद कर सकते हैं।

3
कुछ लेख प्रकाशित करें

जब तक आप इसे लेख प्रकाशित नहीं करते तब तक कुछ भी नहीं दिखाता है।

मदद केंद्र के लिए लेख प्रकाशित करें

लेख आपके ज्ञान के आधार पर रहते हैं। एक आलेख मदद केंद्र में दिखाई देता है जब यह प्रकाशित हो जाता है और सार्वजनिक रूप से चिह्नित होता है। ऐसा करने के कुछ तरीके हैं:

एक लेख प्रकाशित करें

लेख खोलें, इसे प्रकाशित करें और उसे सहायता केंद्र में दिखाने के विकल्प पर बारी दें।

सब कुछ एक बार में प्रकाशित करें

उपयोग सबको प्रकाशित करें एक क्लिक में अपने पूरे प्रकाशित सेट को सपोर्ट सेंटर में पुश करने के लिए बटन, बजाय उन्हें एक बार में करने के।

अक्सर पूछे जाने वाले प्रश्न लेखों में बदल जाते हैं

पहले से ही पूछे जाने वाले प्रश्न हैं? मदद करने के लिए सब कुछ प्रकाशित करें उन्हें मदद लेख में बदलने के लिए ताकि वे सब कुछ और के साथ बैठे।

मौजूदा ज्ञान आधार आयात करें

एक अन्य सहायता डेस्क से चलती है? आयात KB लेख टैब पर बटन आपके लिए एक मौजूदा ज्ञान आधार लाता है। आपकी सामग्री पर इंगित करने के तीन तरीके हैं:

A URL

इसे अपने वर्तमान सहायता केंद्र का पता दें। यदि यह प्लेटफ़ॉर्म (उदाहरण के लिए Zendesk) को पहचानता है तो यह उस प्लेटफॉर्म से सटीक श्रेणी पेड़ पढ़ता है। अन्यथा यह साइट क्रॉल करता है और पृष्ठों से संरचना को फिर से बनाता है, केवल वास्तविक लेख आयात करता है तथा लॉगइन, मूल्य निर्धारण और संपर्क पृष्ठ छोड़ देता है।

कनेक्टेड ऐप चुनें

यदि कोई प्लेटफ़ॉर्म पहले से ही इस वर्कस्पेस से जुड़ा हुआ है और यह एक ज्ञान आधार रखता है, तो यह नीचे की ओर एक ड्रॉपडाउन में दिखाता है। कनेक्टेड ऐप से आयात करेंइसे चुनें और आयात करें, नहीं URL या पासवर्ड की जरूरत है। एप्लिकेशन को केवल एक बार सूचीबद्ध किया गया है जब यह जुड़ा हुआ है और सेट हो जाता है।

A CSV_

कोई लाइव साइट पर इंगित करने के लिए? एक स्प्रेडशीट को अपलोड करें title, category, और body स्तंभ। रखो Parent / Child श्रेणी में स्तंभ नेस्टेड श्रेणियों का निर्माण किया।

जो भी आप चुनते हैं, आपको एक बार फिर से जाना जाता है पहला पूर्वावलोकन: यह पाया गया लेख, श्रेणी के अनुसार समूहीकृत है, प्रत्येक एक चेकबॉक्स के साथ ताकि आप कुछ भी नहीं छोड़ सकते हैं। जब तक आप आयात पर क्लिक करते हैं तब तक कोई बचाया नहीं जाता है। बाद में आप कर सकते हैं पहले जैसा करें संपूर्ण आयात एक क्लिक में, या फिर से सिंक करें a URL बाद में नए और परिवर्तित लेखों को खींचने के लिए कनेक्टेड-ऐप आयात।

💡
डेवलपर्स: किसी भी कनेक्टर को इस ड्रॉपडाउन के लिए अपने ज्ञान आधार का विज्ञापन कर सकता है, जिससे एक घोषित किया जा सकता है। kb_capabilities इसके अंतर्गत ब्लॉक settings.json (type) kb_source, एक साथ adapter A, a, a base_template(information)) कनेक्टर्स अनुभाग और प्लेटफ़ॉर्म-कनेक्टर संदर्भ देखें।

AI के साथ व्यवस्थित करें

एक टेडी मदद केंद्र ब्राउज़ करना आसान है और खोजना आसान है। AI के साथ व्यवस्थित करें बटन आपके लिए काम करता है। एक क्लिक में यह आपके प्रकाशित लेखों को पढ़ता है, उन्हें समझदार श्रेणियों में सॉर्ट करता है और टैग जोड़ता है। जब इसकी आवश्यकता होती है तो यह एक श्रेणी बनाता है जो पहले से ही फिट बैठता है और कुछ भी छोड़ देता है जिसे आपने पहले ही व्यवस्थित किया है, इसलिए आप इसे फिर से चला सकते हैं किसी भी समय आप नए लेख जोड़ते हैं। आइए, AI को सब-श्रेणी में व्यवस्थित करें सहायता केंद्र सेटिंग्स में और यह घोंसले के तहत लेख भी दायर कर सकता है Parent / Child श्रेणियों, जो एक ज्ञान आधार है कि उपधारा था आयात करने के बाद सही है।

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

अपने चैट विजेट के अंदर मदद केंद्र

आप चैट विजेट के अंदर मदद केंद्र को सही दिखा सकते हैं ताकि लोग आपको संदेश देने से पहले जवाब खोज सकें। अपने चैट विंटर सेटिंग्स में, चुनें कि कौन-सा सहायता लिंक दिखाई देता है:

हेडर में

विजेट के शीर्ष पर एक छोटी मदद आइकन।

नीचे

संदेश बॉक्स के तहत एक टेक्स्ट लिंक, उदाहरण के लिए "ब्राउज़ मदद केंद्र"। आप शब्द बदल सकते हैं।

दोनों जगह

इसे हेडर में और सबसे अधिक दृश्यता के लिए नीचे दिखाया गया है।

मदद लिंक विजेट उपस्थिति सेटिंग्स के तहत अपना खुद का रंग नियंत्रण है। इसे छोड़ दें कोई नहीं अपने लॉन्चर रंग से मेल खाने के लिए, या एक चुनना ठोस रंग या रंग ग्रेडियेंटपूरे मदद अनुभव आपके विजेट थीम का अनुसरण करता है, इसलिए यह हमेशा आपके ब्रांड के हिस्से की तरह दिखता है।

अपने वेब पते पर अपना मदद केंद्र रखें

बॉक्स में से आपके मदद केंद्र पहले से ही अपने स्वयं के एक स्वच्छ, साझा करने योग्य पता है (उदाहरण के लिए) /help/your-help-centerआप एक कदम आगे जा सकते हैं और इसे अपने नीचे सेवा कर सकते हैं। अपने डोमेनइसलिए ग्राहक और खोज इंजन इसे अपने ब्रांड के हिस्से के रूप में देखते हैं, उदाहरण के लिए yourdomain.com/help या help.yourdomain.comसब कुछ आपके डोमेन पर काम करता है: लिंक, चित्र, खोज और लेख रेटिंग।

अपनी मुख्य साइट के तहत

में Config, फिर मदद केंद्र, खुला एम्बेड टैब और "अपने वेब पते पर अपनी मदद केंद्र दिखाने" खोजने के लिए। अपने सेटअप (अपनी मदद सेंटर) चुनें (आपके वेब एड्रेस पर अपना समर्थन केन्द्र दिखाओ).Cloudflare, Nginx या अपाचे), तैयार ब्लॉक की प्रतिलिपि बनाएँ और इसे अपनी साइट में पेस्ट करें। प्रत्येक विकल्प के पास एक विकल्प होता है, जिसमें प्रत्येक विकल्प का एक विकल्प होती है। सेटअप गाइड इसके आगे बटन सटीक चरणों के साथ।

एक उप-डोमेन पर

पसंदीदा help.yourdomain.comउसी पैनल में एक उप-डोमेन विकल्प है। पर Cloudflare एक सबडोमेन सबसे विश्वसनीय मार्ग है, और यह आपको इसके बाद कुछ नहीं के साथ साफ पता देता है।

💡
उपयोग Cloudflare यह केवल एक पते पर अपने कार्यकर्ता को चलाता है जो कि माध्यम से प्राप्त होता है।Cloudflare(Syntheant cloud)। आपका मुख्य डोमेन अक्सर आपकी वेबसाइट पर सीधे अंकित करता है, इसलिए मुख्य डोमेन पर रखे गए नियम चुपचाप कुछ नहीं कर सकते हैं। भरोसेमंद तरीका एक प्रॉक्सीड सबडोमेन जैसा होता है। help.yourdomain.comThe Setup Guide to walk in one. DNS रिकॉर्ड और मार्ग।
Good for SEO. एक बार जब आपका मदद केंद्र अपने डोमेन पर है, तो सर्च इंजन आपके ब्रांड के तहत अपने लेखों को अनुक्रमित करते हैं। प्रत्येक पृष्ठ ने अपना सही पता घोषित किया और साइटमैप उन्हें सूचीबद्ध करता है, इसलिए उसी लेख में दो बार कभी अनुक्रमित नहीं किया जाता है।
💡
In-widget मदद लिंक का भी उपयोग करना? चैट विजेट के "हेल्प सेंटर में खुलें" सेटिंग्स में सेट जहाँ लिंक चला जाता है दो आपकी मदद केंद्र डोमेन और उसी पते में प्रवेश करें। फिर वे लेख आपके डोमेन पर भी खुलते हैं, न कि ऑन OpsIQ पता

देखें कि आपका पूरा मदद केंद्र कैसे कर रहा है

बेयोन्ड सिंगल-आर्टिकल वोटों के अलावा, मदद सेंटर का अपना खुद का है एनालिटिक्सइसे हेल्प सेंटर सेटिंग्स में स्विच करें और यह चुपचाप रिकॉर्ड करता है कि लोग आपकी मदद का उपयोग कैसे करते हैं: सबसे ज्यादा देखी जाने वाली लेख, वे क्या खोजते हैं, और जो खाली (एक तैयार करने के लिए लिखने की सूची) वापस आए थे, आगंतुक देश और अपने आप में उपकरण बाहर काम करते हैं, इसलिए रिपोर्ट करने के लिये चैट विजेट को स्थापित करने की आवश्यकता नहीं है। हर नंबर के लिए दिखाया गया है, जिसके लिए वे खोज रहे हैं और खोज कर सकते हैं जो खाली हो गए थे (एक रेडी-निर्मित से-राइट लिस्ट), आगंतुक देश में काम करना और डिवाइस खुद ही था, इसलिए उसे रिपोर्ट करने हेतु इंस्टॉल किए गए चैट विंटर की आवश्यकता नही है। दोनों आपकी मदद को प्रदर्शित करता है, सार्वजनिक पृष्ठ और इन-विजेट सहायता के साथ-साथ संयुक्त भी, इसलिए आप देख सकते हैं कि प्रत्येक वास्तव में किस तरह का उपयोग किया जाता है।

💡
जब तक आप इसे स्विच नहीं करते हैं, तब तक एनालिटिक्स बंद रहता है और आपके पास आगंतुक हो सकते हैं IP पते अनामित।

क्या पृष्ठ के प्रत्येक भाग पर दिखाई देता है चुनें

प्रत्येक अनुभाग के हेल्प सेंटर (घर पृष्ठ पर श्रेणियों, लोकप्रिय लेखों, एक श्रेणी पृष्ठ और अधिक पर लेख सूची) अपनी खुद की सरल नियम है। प्रत्येक के लिए आप इसे दिखा सकते हैं या छिपा सकते हैं, और दिखा सकते है कि यह पता चलता है कि वह उसे कैसे दिखाता है? सब आइटम, एक सेट नंबर, the नवीनतमकेवल वही जो आप सुविधा एक स्टार के साथ जब कोई नियम एक सूची में कैप करता है, तो ग्राहक अभी भी "सभी दिखाएँ" लिंक प्राप्त करते हैं, इसलिए वास्तव में कुछ नहीं पहुंचता।

आप यह भी तय करते हैं कि सहायक वोट कैसे दिखते हैं: छिपे हुए, एक दोस्ताना अनुपात जैसे "12 of 14 यह सहायक पाया गया, या सादे अंगूठे की गिनती। एक न्यूनतम-वोट सेटिंग एक ब्रांड-नए लेख को बंद कर देती है जो एक अजीब " दिखाती है0बाहर0".

कौन से लेख काम कर रहे हैं

हर लेख में एक शो होता है क्या यह मददगार था? प्रहार: प्रत्येक हाँ या नहीं प्रति लेख की गिनती होती है, इसलिए आप एक नज़र में देख सकते हैं जो लेख प्रश्नों का अच्छी तरह जवाब देते हैं और जिन्हें फिर से लिखना पड़ता है। उसी आगंतुक से दोहराए गए वोटों को अनदेखा कर दिया जाता है, ताकि गणना ईमानदार रहती है।

पाठ और लेबल

आप अपनी आवाज़ से मिलान करने के लिए सहायता केंद्र पर हेडिंग्स और लेबल बदल सकते हैं। किसी भी क्षेत्र को खाली छोड़ दें और यह एक समझदार डिफ़ॉल्ट में वापस आ जाता है, इसलिए आप केवल उस शब्द को संपादित करते हैं जिसे आप वास्तव में बदलना चाहते हैं।

सहायता केंद्र आपके एआई के साथ एक पुस्तकालय साझा करता है। प्रत्येक लेख आप यहां प्रकाशित करते हैं वही सामग्री है जो AI चैट और टिकट का जवाब देने का उपयोग करती है, इसलिए किसी को सुधारने से दूसरे को बेहतर ढंग से सुधार होता है।

सामान्य प्रश्न

क्या मुझे मदद केंद्र के लिए अलग सामग्री लिखने की आवश्यकता है?+

नहीं, यह उसी ज्ञान आधार लेखों से बनाया गया है जो पहले से ही उपयोग करता है। एक बार एक लेख प्रकाशित करें और यह दोनों को सेवा प्रदान कर सकता है।

क्या मैं कुछ लेखों को आंतरिक रूप से रख सकता हूँ?+

हाँ, केवल लेखों को आप प्रकाशित करते हैं और सार्वजनिक रूप से सहायता केंद्र में दिखाई देते हैं। कुछ भी अप्रकाशित रहता है।

क्या ग्राहक अभी भी किसी व्यक्ति तक पहुंचने में सक्षम होंगे?+

हाँ, विजेट लिंक एक बातचीत शुरू करने से दूर एक टैप बैठते हैं, इसलिए स्व-सर्व कभी किसी को भी फंस नहीं देता है।

विकास & SEO

साइट इंटेलिजेंस (SEO सूट)

साइट इंटेलिजेंस हैOpsIQ'निर्मित'SEOऔर खोज-visibility सूट। यह आपकी साइट को एक सर्च इंजन की तरह क्रॉल करता है, ट्रैक्स जहां आप रैंक करते हैं, कीवर्ड पर शोध करते हैं और बैकलिंक्स और प्रतियोगियों को देखता है, अपनी स्थानीय मानचित्र उपस्थिति को स्कैन करता है , पृष्ठ गति की जांच करता है और इसे सभी ग्राहक तैयार रिपोर्टों में बदल देता है, जिसमें एआई विश्लेषक जो बताता है कि क्या ठीक हो सकता है और फिक्स का प्रारूप तैयार कर सकता है। यह एक प्रीमियम सुविधा है; जब यह साइडबार में साइट इंटेलिजेंस के रूप में दिखाई देती है। प्रत्येक डोमेन का डेटा अलग रहता है, क्रॉल्स, रैंकिंग और रिपोर्ट कभी डोमेन के बीच मिश्रण नहीं करती है।

साइट इंटेलिजेंस
साइट इंटेलिजेंस डैशबोर्डएक SEO डैशबोर्ड साइट-हेल्थ स्कोर, कीवर्ड रैंक ट्रैकिंग और ट्रैफिक ट्रेंड दिखा रहा है।साइट इंटेलिजेंसyoursite.com86साइट स्वास्थ्य3 महत्वपूर्ण मुद्दोंकीवर्ड रैंक ट्रैकिंगAi helpdesk#3लाइव चैट सास#7एजेंसियों के लिए chrm#12कार्बनिक क्लिक1सीआरएडब्ल्यूएलतकनीकी मुद्दों का पता लगाना2ट्रैकरैंक, कीवर्ड, बैकलिंक3ANALYSTव्याख्या और ड्राफ्ट फिक्स
साइट इंटेलिजेंस अवलोकन: नवीनतम क्रॉल, लाइव कीवर्ड रैंक ट्रैकिंग, एक कार्बनिक-क्लिक प्रवृत्ति और तीन चरण लूप से साइट-हेल्थ स्कोर: क्रॉल करें, ट्रैक करें, एआई को फिक्स का प्रारूप दें।

साइट इंटेलिजेंस

साइट इंटेलिजेंस उन योजनाओं का हिस्सा है जो इसे ले जाते हैं। ऐसी योजना पर जो नहीं करती, यह वास्तव में PeopleOS HR की तरह काम करता है: खाता मालिक खुलता है खाता → Add-ons & Tokens, एक साइट इंटेलिजेंस टियर को चुनता है और मुफ्त परीक्षण शुरू करता है या इसे सीधे जोड़ता है। एक नि: शुल्क योजना, या अभी भी अपने खुद के प्लान ट्रायल के अंदर भुगतान की गई योजना, इसे नहीं जोड़ सकती। जब तक यह सूट का स्वामित्व साइडबार से छिपा हुआ है और एक सीधा लिंक ऐड-ऑन प्रदान करता है; जब एक टियर कैप पृष्ठ पर पहुंच जाता है तो अगले स्तर को प्रदान करता हैं; जब कोई परीक्षण बिना किसी खरीदे समाप्त होता है तो पात्रता हटा दिया जाता है और कुछ भी चार्ज नहीं किया जाता है। टियर्स और कीमतें खाते में रहते हैं, इसलिए वर्तमान स्तरों को देखें मूल्य निर्धारण पृष्ठ.

एक क्रॉल रन · यहाँ शुरू

एक क्रॉल है OpsIQ अपने पृष्ठों पर जाने के तरीके से खोज इंजन तकनीकी मुद्दों को खोजने के लिए होगा: टूटे हुए लिंक, लापता शीर्षक, पतली सामग्री, धीमी पृष्ठ, अनुक्रमण समस्याओं।

1
क्रॉल शुरू करें

अवलोकन पर, क्रॉल शुरू करने के लिए क्लिक करें। OpsIQ इसे कतार और पृष्ठभूमि में अपने पृष्ठों के माध्यम से काम करता है; एक स्थिति सूचक प्रगति को दर्शाता है।

2
रिपोर्ट पढ़ें

जब यह खत्म हो जाता है, तो मुद्दों और पृष्ठ सूची को खोलें। प्रत्येक मुद्दे को गंभीरता से समूहीकृत किया जाता है ताकि आप पहली बार सबसे बड़ी जीत का सामना कर सकें।

3
एआई मदद करते हैं

एआई विश्लेषक गलत होने का एक सादे भाषा में संक्षिप्त पैदा करता है और यह क्यों मायने रखता है, और सुझाव दिया गया कि आप आवेदन करने से पहले समीक्षा कर सकते हैं।

साइट इंटेलिजेंस ट्रैक्स

Crawls & साइट स्वास्थ्य

तकनीकी के लिए अपने पृष्ठों को स्कैन करें SEO प्रत्येक पृष्ठ को अपनी समस्याओं के साथ सूचीबद्ध करता है। किसी भी समय फिर से शुरू करें, या इसे शेड्यूल करें।

रैंक ट्रैकिंग

आप जिस कीवर्ड की परवाह करते हैं उसे जोड़ें; OpsIQ यह जाँच करता है कि आपकी साइट समय-समय पर चलती है।

कीवर्ड अनुसंधान

लक्ष्य करने के लिए नए कीवर्ड विचारों को खोजें, एआई कीवर्ड कोच के साथ प्राथमिकता में मदद करने के लिये।

बैकलिंक

जो आपको लिंक करते हैं, सूची को ताज़ा करें और उन लिंकों को अलग करें जिन्हें आप अपनी साइट से संबद्ध नहीं चाहते।

प्रतियोगी

प्रतियोगी डोमेन जोड़ें और एआई प्रतियोगी विश्लेषण के साथ अपनी दृश्यता की तुलना करें।

स्थानीय (map) ग्रिड

एक भौगोलिक ग्रिड में स्थानीय लिस्टिंग दृश्यता को देखने के लिए जहां आप मानचित्र पर दिखाई देते हैं, साथ ही Google बिजनेस प्रोफाइल टूल।

पृष्ठ गति

पेज-स्पीड चेक चलाएं ताकि आप धीमी पृष्ठों को ठीक कर सकें जो रैंकिंग और रूपांतरणों को चोट पहुंचाते हैं।

एआई सामग्री

सामग्री संक्षेप और ड्राफ्ट उत्पन्न करें जिसका उद्देश्य आपके द्वारा लक्षित कीवर्ड पर है।

रिपोर्ट

प्रिंट करने योग्य, ऊपर सब कुछ की ग्राहक-पढ़ी रिपोर्ट बनाएं।

Google को सटीक डेटा के लिए कनेक्ट करें

दो गूगल कनेक्टर वास्तविक संख्या में अनुमान बदल जाते हैं:

Google Search कंसोल

खोज

सटीक प्रश्नों को खींचो, क्लिक करें और अपनी साइट के लिए गूगल रिपोर्ट खींचें, अपनी संपत्ति का मानचित्र लें और Google के अपने डेटा से सीधे सतही रैंकिंग अवसर दें।

Google Analytics 4

यातायात

अपने यातायात और सगाई डेटा को अपने SEO डाटा के साथ लाओ, इसलिए रिपोर्ट दृश्यता और व्यवहार को एक साथ दिखाती है।

अनुसूचित ताज़ा और सफेद लेबल रिपोर्ट

आपको हाथ से सब कुछ चलाने की जरूरत नहीं है। अनुसूचित रिफ्रेश फिर से रन क्रॉल, रैंक चेक, कीवर्ड चेक, बैकलिंक रिफ़्रेश, स्थानीय ग्रिड स्कैन और एक कैडेंस (डेली या साप्ताहिक प्लान और वॉल्यूम के आधार पर) पर रिपोर्ट जेनरेशन। ये योजना और मात्रा पर निर्भर करता है।OpsIQक्रोन, Cron और स्वचालन अनुभाग देखें। जनित रिपोर्ट मुद्रण योग्य, ग्राहक तैयार दस्तावेजों के रूप में निर्यात करती है: एजेंसियां प्रत्येक क्लाइंट को नियमित रूप से भेजती हैंSEOअद्यतन करें, और क्योंकि हर डोमेन का डेटा अलग है, प्रत्येक ग्राहक केवल कभी भी अपने आप को देखता है।

कुछ साइट इंटेलिजेंस में बाह्य डेटा प्रदाताओं और एआई को माध्यम से कॉल करने की सुविधा हैOpsIQ's कॉन्फ़िगर प्रदाता. वे बॉक्स से बाहर काम करते हैं जब सूट आपकी योजना के लिए सक्षम होता है। यदि एक ताज़ा रन नहीं करता है, तो पुष्टि करें कि वह अपनी योजना को पूरा करेगा।OpsIQ क्रोन चल रहा है (क्रोन और स्वचालन देखें)।
क्या मुझे मेरी साइट पर कुछ भी जोड़ने की आवश्यकता है SEO ट्रैकिंग?+

क्रॉल, रैंक ट्रैकिंग, कीवर्ड अनुसंधान और बैकलिंक्स आपकी साइट को छूने के बिना काम करते हैं। यातायात और सटीक खोज डेटा के लिए Google Search कंसोल और GA4 कनेक्ट करें।

क्या मैं एक से अधिक डोमेन ट्रैक कर सकता हूँ?+

हाँ। प्रत्येक डोमेन को अलग से जोड़ें; उनके क्रॉल, रैंकिंग और रिपोर्ट पूरी तरह एक दूसरे से अलग रहती हैं।

मुझे कितनी बार क्रॉल करना चाहिए?+

साप्ताहिक अधिकांश साइटों के लिए बहुत अच्छा है; एक बड़ी सामग्री या संरचना परिवर्तन के बाद मांग पर क्रॉल करें। ऐसा शेड्यूल सेट करें ताकि आप कभी नहीं भूल सकें।

विकास & SEO

ऑटो इम्प्लीमेंट (SEO एजेंट)

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

ऑटो इम्प्लीमेंट
ऑटो इम्प्लीमेंट SEO एजेंटएक प्रवाह दिखाने की सिफारिश की SEO फिक्स पूर्वावलोकन, अनुमोदन और लाइव लिखने के माध्यम से चलती है, जिसमें एक साबित-it फिर से क्रॉल होता है।ऑटो इम्प्लीमेंटyoursite.comसिफारिश की फिक्सAdd missing <title>स्वीकृतरोबोट. txt को ठीक करेंस्वीकृतसाइटमैप xmlसमीक्षाDRY-RUN PREVIEW (DRIFF)+ <title>AI Helpdesk - OpsIQ</title>+ <meta name=description ...>- <title>Home</title>स्वीकृतिA-A-S-E-Bआईटी प्रोवाइड - RE-CRAWLOpen Issues 12_4स्नैपशॉट बचाया1पूर्वावलोकनप्रत्येक फिक्स का ड्राई-रन डिफ2अनुमोदित करें तथा लिखेंSSH या होस्ट API3प्रोवाइड और रोलबैकRe-Cryp + स्नैपशॉट
एक सत्र कैसे चलता है: एजेंट पहले से ही फिक्स साइट इंटेलिजेंस को सूचीबद्ध करता है, प्रत्येक के ड्राई-रन डिफॉ दिखाता है, जो आपको स्वीकार करने वाले लोगों को लागू करता है। SSH या एक होस्ट API हर लेखन से पहले स्नैपशॉट, और फिर से क्रॉल करने के लिए ओपन-इस्स्यू गिनती को गिरा दिया गया।

क्या यह बदल सकता है

एजेंट केवल कभी ही फिक्स लागू होता है कि साइट इंटेलिजेंस (या एआई विश्लेषक) पहले से ही उस डोमेन के लिए अनुशंसित था। समर्थित प्लेटफार्मों में जो कवर करता है:

सर्वर विन्यास

साइटमैप xml, रोबोट.txt, और पुनर्निर्देशित, canonical and header नियमों में .htaccess (Apache / LiteSpeed) या nginx config.

पुनर्निर्देशित श्रृंखला

एक बहु-हॉप रीडायरेक्ट चेन को एक एकल हॉप में सीधे अंतिम URL_ के लिए नीचे की ओर मुड़ता है, उसी प्रबंधित . htaccess ब्लॉक के अंदर, इसलिए अतिरिक्त हॉप्स के माध्यम से गति और लिंक मूल्य बंद लीक हो जाता है।

Page <head>

मिसिंग या कमजोर पेज शीर्षक, मेटा विवरण, कैनोनिकल टैग और संरचित-डाटा (schema) ब्लॉक।

WordPress SEO

Yoast, रैंक गणित और SEOPress शीर्षकों & मेटा, और छवि alt पाठ, WP-CLI के माध्यम से लागू SSH पथ या आरईटी API होस्ट पथ पर।

WordPress संरचित डेटा

ऐड्सJSON-LD (schema) उन पृष्ठों पर जो इसे याद कर रहे हैं।SSHपथ एक छोटा प्रबंधित सहायक (एक आवश्यक उपयोग प्लगइन) मार्कअप प्रिंट करता है ताकि यह किसी के साथ या बिना काम कर सकेSEOप्लगइन; होस्टेड पथ पर आपकाSEOयह प्लगइन करता है।

आंतरिक लिंक

मौजूदा के अंदर एक प्रासंगिक आंतरिक लिंक जोड़ें WordPress सामग्री अनाथ पृष्ठों को बचाने और संबंधित पदों को जोड़ने के लिए। प्रति पृष्ठ एक लिंक, कभी भी हेडिंग के अंदर नहीं, एक मौजूदा लिंक या शॉर्टकोड होता है, और हमेशा आपको पहले ही अनुमोदित करता है।

थिन-पेज सामग्री फिर से लिखते हैं

पतले पृष्ठों के लिए पूर्ण प्रतिस्थापन सामग्री का ड्राफ्ट (एक क्रॉल विकल्प द्वारा चालू किया गया) नीचे देखें। प्रत्येक ड्राफ्ट की समीक्षा और अनुमोदन किसी भी प्रकाशित होने से पहले की जाती है, और पुरानी सामग्री को रखा जाता है ताकि इसे बहाल किया जा सके।

पेज कैश (Page कैश)WordPress)

W3 टोटल कैश पेज कैशिंग पर बारी जब क्रॉल गति की समस्याओं को ढूंढता है और उस प्लगइन को स्थापित किया जाता है, इसलिए पृष्ठ तेजी से काम करते हैं।

Shopify SEO

उत्पाद और संग्रह एसईओ शीर्षक और विवरण, पृष्ठ और ब्लॉग लेख SEO, प्लस 301 रीडायरेक्ट करता है, माध्यम से Shopify व्यवस्थापक API.

Webflow SEO

प्रति पृष्ठSEOशीर्षक और मेटा विवरण के माध्यम सेWebflowडेटाAPIv2.

फिक्स को स्वचालित रूप से तैयार करें (दो क्रॉल विकल्प)

साइट इंटेलिजेंस एक डोमेन के लिए पैनल को कॉन्फ़िगर करता है (इसकी क्रॉल सेटिंग्स) में दो विकल्प होते हैं जो तय करते हैं कि समय से पहले आपके लिए एजेंट कितने लाइन तक होता है। दोनों डिफ़ॉल्ट रूप से बंद हो जाते हैं और दोनों एआई क्रेडिट का उपयोग करते हैं, इसलिए आप उन्हें तभी स्विच करते हैं जब आप चाहते हैं कि काम आपके लिए किया जाए।

प्रत्येक क्रॉल के बाद ऑटो-प्रीपर एआई फिक्स

हर क्रॉल में कंक्रीट फिक्स सामग्री (शीर्षक, मेटा विवरण, alt टेक्स्ट, स्कीमा, रीडायरेक्ट्स) भी लिखा जाता है, ताकि फिक्स उस क्षण की समीक्षा करने और लागू करने के लिए तैयार हों जो क्रॉल फिनिश बाद में मांग पर उत्पन्न होने के बजाय। प्रत्येक क्रॉल पर AI क्रेडिट का उपयोग करता है।

AI content rewrites (thin page)

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

💡
दोनों विकल्प केवल काम तैयार और ड्राफ्ट करते हैं। हर बदलाव अभी भी प्रति-चरण अनुमोदन, स्नैपशॉट और रोलबैक के माध्यम से किसी अन्य फिक्स के रूप में चला जाता है, इसलिए उन्हें कभी भी अपने आप को लाइव नहीं डालता।

दो तरीके जिनसे यह जुड़ता है

SSH / SFTP पथ

स्व-प्रबंधित

अपने सर्वर पर साइटों के लिए, एजेंट कनेक्ट हो जाता है SSH/SFTP आप स्टोर करने वाले क्रेडेंशियल का उपयोग करके सर्वर को सीधे कॉन्फ़िगर और पेज फ़ाइलों को संपादित करें, और WP-CLI चलाता है WordPress जब आपके पास शेल एक्सेस होती है और फ़ाइल का पूर्ण नियंत्रण चाहते हैं तो सबसे अच्छा।

होस्ट-API पथ (कोई नहीं) SSH)

कोई खोल नहीं

उन प्लेटफार्मों के लिए जो अनुमति नहीं देते हैं SSH एजेंट पूरी तरह से एक अधिकारी के माध्यम से काम करता हैAPI कनेक्टर, WordPress (REST + Application passwords) Webflow (Data)API v2) और Shopify (Admin)API(d)) मेजबान पर कुछ भी स्थापित नहीं है।

💡
विक्स और स्क्वरस्पेस में कोई सार्वजनिक नहीं हैSEO-writeAPIइसलिए उन प्लेटफार्मों पर ऑटो इम्प्लीमेंट सलाहकार मोड में चलता है: यह आपको हाथ से आवेदन करने के लिए सटीक शीर्षक, मेटा या सेटिंग बनाने के लिए सही बदलाव दिखाता है। सब कुछ केवल और सुरक्षित होता है।

कनेक्टर्स को चालू करें

एजेंट प्रत्येक प्लेटफॉर्म को कनेक्टर के माध्यम से एक्सेस करता है:

निर्मित

Shopify और WordPress कनेक्टर्स के साथ जहाज OpsIQ, बस उन्हें कनेक्टर्स के तहत सक्षम करें और स्टोर / साइट क्रेडेंशियल जोड़ें।

बाज़ार से

Webflow, Wix और Squarespace कनेक्टर्स → मार्केटप्लेस से स्थापित है, फिर उसी तरह कनेक्ट करें।

कैसे एक सत्र रन

1
फिक्स चुनें

साइट इंटेलिजेंस सेक्शन से ओपन ऑटो इम्प्लीमेंट (रॉकेट)। यह पहले ही पाया गया कि यह इस डोमेन पर ठीक हो सकता है, मुद्दों को सूचीबद्ध करता है।

2
प्रत्येक परिवर्तन का पूर्वावलोकन करें

प्रत्येक के लिए एजेंट को ठीक करने से किसी भी चीज से पहले एक सूखी रन वाली डिफ (वास्तव में यह क्या लिखेगा) दिखाई देती है।

3
कदम से कदम

आप प्रत्येक बदलाव को व्यक्तिगत रूप से स्वीकार करते हैं। उस कदम पर अपने स्पष्ट गो-एडहेड के बिना कुछ भी लागू नहीं होता है।

4
यह लिखते हैं, फिर स्नैपशॉट

अनुमोदन पर एजेंट लाइव बदलाव को चालू करता है SSH या होस्ट किया गया API पहले स्नैपशॉट बचाता है, इसलिए किसी भी बदलाव को वापस रोल किया जा सकता है।

5
इसे साबित करें, जीना

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

सुरक्षा और बिलिंग

SEOकेवल

एजेंट केवल उस डोमेन के लिए क्या साइट इंटेलिजेंस की सिफारिश कर सकता है। यह आपकी साइट या सर्वर पर मनमाने ढंग से बदलाव नहीं कर सकता।

प्रति-चरण अनुमोदन

प्रत्येक लिखने को एक diff के रूप में पूर्वावलोकन किया जाता है और केवल उस विशिष्ट कदम को स्वीकार करने के बाद लागू होता है।

स्नैपशॉट & रोलबैक

प्रत्येक लिखने से पहले एक स्नैपशॉट बचाया जाता है, इसलिए किसी भी बदलाव को वापस कर दिया जा सकता है।

प्रति चरण सबूत लाइव

प्रत्येक परिवर्तित पृष्ठ को तत्काल लिखा जाता है और इसे "फिक्स्ड लाइव" फैसले मिलता है, इसलिए एक निश्चित की पुष्टि सिर्फ समापन फिर से क्रॉल में ही नहीं हुई।

कभी नहीं स्वत: प्रकाशित

आंतरिक लिंक और पतली पृष्ठ सामग्री फिर से लिखना उच्च प्रभाव वाले होते हैं, इसलिए उन्हें हमेशा अनुमोदन के लिए दिखाया जाता है और कभी भी स्वचालित रूप से लागू नहीं किया जाता है जो भी मोड आप चलाते हैं।

केवल प्रबंधित-AI

ऑटो इम्प्लीमेंट प्रबंधित एआई पर चलता है; यह तब अवरुद्ध हो जाता है जब एक वर्कस्पेस अपने आप का उपयोग कर रहा होता है ()BYOK) चाबियाँ

बिलिंग

एआई टोकन बिल आम तौर पर आप उन्हें उपयोग करते हैं, साथ ही एक फ्लैट प्रति-उपयोग शुल्क प्रति ऑटो इम्प्लीमेंट सत्र, दोनों समान प्रबंधित-AI क्रेडिट से तैयार किए गए।

ऑटो इम्प्लीमेंट डिफ़ॉल्ट रूप से बंद है। इसे एआई कॉन्फ़िगरेशन पेज (ऑटो इम्प्लेमेंट कार्ड) पर सक्षम करें और यह सुनिश्चित करें कि आपके प्लेटफॉर्म के लिए कनेक्टर पहले जुड़ा हुआ है।
क्या यह बिना किसी सवाल के कुछ बदल सकता है?+

नहीं, हर बदलाव को एक सूखी रन के रूप में देखा जाता है और केवल तभी लागू होता है जब आप उस सटीक कदम को स्वीकार करते हैं। प्रत्येक लिखने से पहले एक स्नैपशॉट बचाया जाता है ताकि आप वापस रोल कर सकें।

क्या मुझे जरूरत है SSH पहुँच?+

नहीं WordPress, Shopify या Webflow वे अपने अधिकारी के माध्यम से काम करते हैं APIs कोई शेल एक्सेस नहीं है। SSH केवल दो पथों में से एक है, जब आप चाहते हैं कि एजेंट सर्वर कॉन्फ़िगरेशन को संपादित करें और सीधे अपने सर्वर पर फ़ाइलों को संपादित करे।

मैं कैसे जानता हूँ कि यह काम करता है?+

अनुमोदित फिक्स लगाने के बाद एजेंट साइट को फिर से क्रॉल करता है और पहले और बाद में ओपन-इस्स्यू गिनती दिखाता है, इसलिए आप तय मुद्दों को कम कर सकते हैं।

क्या यह पृष्ठ सामग्री को अपने आप में फिर से लिखना या प्रकाशित करना होगा?+

नहीं, एआई सामग्री फिर से लिखते हैं जब तक कि आप उन्हें क्रॉल विकल्पों में बदल देते हैं, वे प्रति पास कुछ पतले पृष्ठों तक सीमित होते हैं और हर ड्राफ्ट आपको किसी भी प्रकाश के पहले साइड-बाय-साइड अनुमोदन के लिए दिखाया जाता है। पिछली सामग्री को रखा जाता है, इसलिए एक पुनर्लेखन हमेशा वापस कर दिया जा सकता है।

क्या मैं इसे अपने स्वयं के AI कुंजी के साथ इस्तेमाल कर सकता हूँ?+

नहीं। ऑटो इम्प्लीमेंट केवल प्रबंधित-AI है और इसे BYOK_ के तहत अवरुद्ध किया जाता है। यह आम तौर पर AI टोकनों को उसी प्रबंधित-A क्रेडिट से प्रति सत्र एक फ्लैट प्रति उपयोग शुल्क प्रदान करता है।

विकास और सगाई

सर्वेक्षण स्टूडियो

सर्वे स्टूडियो संपादन योग्य सर्वेक्षण बनाने के लिए कार्यस्थान है जिसे अमीर स्टैंडअलोन पेज, वेबसाइट विजेट या इनलाइन एम्बेड के रूप में वितरित किया जा सकता है। वर्तमान उत्पाद होस्ट लिंक, हस्ताक्षरित ड्राफ्ट पूर्वावलोकन, निजी निमंत्रण, क्यूआर साझाकरण, प्रतिक्रिया ब्राउज़िंग और सर्वेक्षण-स्कैप्ड एनालिटिक्स भी प्रदान करता है। वेबसाइट विजिट एक वितरण विकल्प है; यह सर्वेक्षण की परिभाषा नहीं है।

⚠️
वर्तमान बनाम लक्ष्य सीमा: प्रीमियम निर्माण और पूर्वावलोकन अनुभव, कनेक्टर बिल्डर survey क्षमता और सर्वेक्षण के स्वामित्व वाले प्रदाता registry/health सीमा अब उपलब्ध हैं। सर्वे स्टूडियो को अभी भी स्वतंत्र बहु-निर्भरीकरण वास्तुकला, हस्ताक्षरित टोकन सर्वे पहचान गेटवे, लक्ष्यीकरण / परिवर्तनीय तारों की आवश्यकता है।CRMआउटरीच भेजना प्रवाह और टाइप करना surveys.* API.

एक सर्वेक्षण बनाएँ

1
कैसे लोग इसे ले जाएगा चुनें

वर्तमान विज़ार्ड स्टैंडअलोन पेज और लिंक, वेबसाइट विजेट और इनलाइन एम्बेड प्रदान करता है। अनुमोदित लक्ष्य प्रवाह सर्वेक्षण के प्रकार से शुरू होता है और बाद में प्रथम श्रेणी विकल्पों के रूप में CRM ईमेल, निजी-लिंक और QR तैनाती जोड़ता है।

2
उद्देश्य चुनें

पिकNPS, CSAT CES, उत्पाद प्रतिक्रिया, पोस्ट-purchase, रद्दीकरण, ऑनबोर्डिंग, वेबसाइट, घटना, वेबिनार, समर्थन, नेतृत्व / डेमो, परीक्षण, प्रशंसापत्र, अनुसंधान, कर्मचारी, सेवन या सामान्य फीडबैक।

3
एक पूर्ण टेम्पलेट का उपयोग करें या रिक्त प्रारंभ करें

वर्तमान सूची में उद्देश्य से समूहित संपादन योग्य शुरुआत है। टेम्पलेट चुनना एक कॉपी किए गए ड्राफ्ट बनाता है: अपने सर्वेक्षण को बदलने से स्टार्टर या किसी अन्य सर्वेक्षण को नहीं बदलता है।

4
अनुकूलित करें या त्वरित समीक्षा

अनुकूलित हर प्रश्न, डिजाइन, व्यवहार और वितरण नियंत्रण को खोलता है। त्वरित समीक्षा अंतिम ग्राहक-व्यू चेक पर समान ड्राफ्ट को खोलती है। कुछ भी प्रकाशित नहीं होता है या स्वचालित रूप से भेजता है

वितरण विकल्प और व्यवहार प्रस्तुत करना

स्टैंडअलोन पेज & लिंक

अपने खुद के साथ एक उत्तरदायी ब्रांडेड पेज URL. निजी निमंत्रण और समाप्ति का उपयोग करें जब प्रत्येक प्राप्तकर्ता को नियंत्रित लिंक की आवश्यकता होती है। इस होस्ट किए गए अनुभव पर क्यूआर शेयरिंग पॉइंट्स।

वेबसाइट विजेट

यह पृष्ठ, भूगोल, उपकरण, आगंतुक, दिनांक, नमूनाकरण, कूलडाउन, यात्रा और कोटा नियमों का उपयोग कर सकता है। यह अभी भी विरासत सक्रिय-विजेट पुल द्वारा समर्थित है जबकि तैनाती वास्तुकला बनाई गई है।

इनलाइन एम्बेड

एक पृष्ठ, पोर्टल, उत्पाद या सहायता केंद्र के अंदर रखा गया एक उत्तरदायी सर्वेक्षण। इसे प्रोमोशन स्टूडियो की आवश्यकता नहीं है।

ईमेल

आज स्टूडियो निमंत्रण उत्पन्न कर सकता है HTML और निजी लिंक। CRM संपर्कों / सेगमेंट से अंत-से-अंत भेजने के साथ सहमति, दमन, शेड्यूलिंग, रिट्री एंड रिस्पांस कोरिलेशन के साथ अनुमोदित सीआरएम आउटरीच एकीकरण लक्ष्य है।

एंटरप्राइज़ डिजाइन और पूर्वावलोकन

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

💡
सर्वेक्षण स्टूडियो प्रमोशन स्टूडियो से स्वतंत्र है। रनटाइम लक्ष्यीकरण, पहचान, परिसंपत्तियां, प्रतिपादन और विश्लेषण सर्वेक्षण के स्वामित्व में होना चाहिए। पदोन्नति सामग्री केवल एक स्पष्ट एक बार प्रतिलिपि / आयात के माध्यम से पुन: उपयोग किया जा सकता है जो अलग-अलग सर्वेक्षण डेटा बनाता है; बाद में संवर्धन संपादन का कोई प्रभाव नहीं पड़ता।

पूर्ण रूप उत्पाद

स्वतंत्र तैनाती

लाइव

एक सर्वेक्षण में अलग से पृष्ठ, विजेट, एम्बेड, CRM ईमेल, निजी लिंक और QR तैनाती हो सकती है, प्रत्येक अपने राज्य, डिजाइन, दर्शकों और विश्लेषण के साथ। हर सर्वेक्षण को ठहराए जा सकते हैं, अक्षम या हटा दिए गए हैं।

CRM आउटरीच और अभियान

लाइव

CRM सेगमेंट और सर्वे-क्षम कनेक्टरों से सत्यापित दर्शकों का निर्माण, इसे एक अपरिवर्तनीय संस्करण में फ्रीज करें, प्रत्येक को एक हस्ताक्षरित निमंत्रण जारी करें और प्रति-इन्विटेशन डिलीवरी प्रूफ के साथ पिन आउटबाउंड ईमेल कनेक्टर के माध्यम से भेजें।

फील्ड किट और सत्यापन

लाइव

स्लाइडर्स, छवि विकल्प, फ़ाइल अपलोड, हस्ताक्षर, पता, फ़ोन, शीर्षकों और अमीर पाठ के साथ न्यूनतम / अधिकतम लंबाई, ईमेल /URL/number presets, कस्टम त्रुटि पाठ और प्रति-question प्रीफिल URL पैरामीटर।

तर्क, सूत्रों, परिणामों

लाइव

और/OR शर्त समूह, शाखा के नियमों, उत्तरों पर एक सुरक्षित सूत्र इंजन, और स्कोर बैंड जो अपना परिणाम पृष्ठ ले जाते हैं: इसके फैसले पर एक अंकित क्विज भूमि।

भाषा, कियोस्क, प्रीफिल

लाइव

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

संस्करण A/B परीक्षण

लाइव

किसी भी तैनाती पर एक चुनौती देने वाला संस्करण प्रकाशित करें जिसमें यातायात विभाजन शामिल है। आगंतुकों को चिपचिपा रूप से सौंपा गया है, प्रतिक्रियाओं को वास्तव में सेवा के साथ मुहर लगा दिया जाता है और तुलना तालिका प्रति संस्करण प्रतिक्रियाएं, पूरा होने और औसत स्कोर दिखाता है। विजेता को एक क्लिक में बढ़ावा देना।

साप्ताहिक पाचन

लाइव

पिछले के साथ साप्ताहिक ईमेल 7 दिन सर्वेक्षण KPI, सबसे व्यस्त सर्वेक्षणों, फीडबैक पल्स और नवीनतम AI ब्रीफिंग, पिन्ड आउटबाउंड कनेक्टर के माध्यम से भेजा गया। इसे डिलिवरी सेंटर, ऑटोमेशन में कॉन्फ़िगर करें।

शासन

लाइव

प्रति सर्वेक्षण एक्सेस सूचियों को प्रतिबंधित करता है जो एक सर्वेक्षण संपादित, प्रकाशित या हटा सकता है। अनुमोदन (चार-आंखों) को सटीक ड्राफ्ट जारी करने के लिए दूसरे व्यवस्थापक की आवश्यकता होती है; संपादन स्वीकृति रीसेट करता है। ड्राफ्ट शेयर लिंक्स एक समीक्षक को लॉग इन किए बिना वास्तविक ड्राफ्ट देखने देते हैं।

डेवलपर प्लेटफॉर्म

लाइव

कनेक्टर अनुबंध2.2, टाइपिंग सर्वे* और फीडबैक.* पर कार्यapi/ v1, canonical सर्वेक्षण। * घटनाओं, टिकाऊ हस्ताक्षरित वेबहुक के साथSlackGoogle शीट्स रिले प्रारूपों और एक-रिस्पोंसPDFनिर्यात

विकास और सगाई

सर्वेक्षण विश्लेषण और प्रतिक्रिया विभिन्न उत्पाद हैं

सर्वेक्षण एनालिटिक्स बताते हैं कि कैसे एक सर्वेक्षण स्वयं लोगों तक पहुंच रहा है और प्रदर्शन कर रहा है। प्रतिक्रिया बताती है कि ग्राहकों ने सभी अनुमति स्रोतों में क्या कहा और इसके बारे में क्या करना चाहिए। दो उत्पाद एक दूसरे के लिए लिंक करते हैं लेकिन विश्लेषणात्मक सत्य को साझा या ओवरराइट नहीं करते हैं।

सर्वेक्षण विश्लेषण

सर्वेक्षण स्टूडियो में व्यक्तिगत सर्वेक्षण से प्रवेश किया गया, वैश्विक पक्ष नेविगेशन से नहीं। यह पात्रता, जोखिम, ट्रिगर व्यवहार, शुरू होने, पूरा करने, परित्याग, सवाल और शाखा घर्षण, समय, तैनाती / कैम्पेन/वर्जन परिणाम और रनटाइम विश्वसनीयता को मापता है।

प्रतिक्रिया अवलोकन & इनबॉक्स

पूर्ण सर्वेक्षण प्रतिक्रियाओं, विरासत विजेट फीडबैक, चैट और टिकट CSAT के लिए एक अनुमति-जारी क्रोनोलॉजिकल फ़ीड, टिकट उत्तर प्रतिक्रिया, ग्राहक AI-answer रेटिंग, ज्ञान-आधार सहायक वोट और अनुमोदित बाहरी/कस्टम स्रोतों।

प्रतिक्रिया विश्लेषिकी

ग्राहक का विश्लेषण अर्थ: मूल मीट्रिक रुझान, विषय/स्तम्भ, भावना, इरादे, आग्रह, शिकायत, प्रशंसा, यात्रा/उत्पाद/सेवा/टीम खंडों, घटानेवाला और बंद लूप परिणाम।

डेटा स्वामित्व

सर्वेक्षण के उत्तर सर्वे भंडारण में आधिकारिक रहते हैं। फीडबैक एक पुनर्निर्माण योग्य स्रोत संदर्भ और व्युत्पन्न संकेतों को स्टोर करता है, फिर मांग पर सबूत की अनुमति देता है। एक पूर्ण सर्वे प्रतिक्रिया अधिकांश एक प्रतिक्रिया आइटम पर हो जाती है।

⚠️
वर्तमान फीडबैक पृष्ठ में अभी भी एक सर्वेक्षण प्रतिक्रिया ब्राउज़र है और एक अलग विरासत विजेट इनबॉक्स है, और इसके AI कुल अभी तक पूर्ण सामान्यीकृत स्रोत मॉडल का उपयोग नहीं करते हैं। एकीकृत अवलोकन / इनबॉक्स / एनालिटिक्स / सोर्स एंड हेल्थ डिज़ाइन कार्यान्वयन लक्ष्य है।

NPS, CSAT CES, सितारों, अंगूठे और सहायकता हमेशा अपनी मूल विधि, स्केल, सैंपल, डेट विंडो और डिनोमिनेटर को बनाए रखना चाहिए। उन्हें कभी भी एक अनपेक्षित औसत में जोड़ा नहीं जाना चाहिए।

विकास & SEO

प्रमोशन स्टूडियो

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

प्रमोशन स्टूडियो
प्रमोशन स्टूडियो डिजाइनरएक ब्लॉक पैलेट के साथ एक दृश्य अभियान डिजाइनर, कैनवास पर पॉप-अप और लक्ष्य पैनल।पदोन्नति स्टूडियो - डिजाइनरब्लाकxआपका स्वागत है, {first_name}!प्राप्त करना 15% अपना पहला ऑर्डर बंद करेंSAVE15मेरा कूपन दावा करेंआयोजनदेशअमेरिका, CAट्रिगरबाहर निकलेंA/B विभाजन50 / 50प्रकाशित करना1डिजाइनकैनवास पर ब्लॉक खींचें2लक्ष्यदेश, पृष्ठ, दर्शक3उपायA/B विजेता + AI अंतर्दृष्टि
दृश्य डिजाइनर: बाईं ओर एक ब्लॉक पैलेट, कैनवास पर आपका अभियान (एक व्यक्तिगत कूपन पॉप-अप का उपयोग करके) {first_name} Token, and the targeting + प्रकाशन पैनल on the right.

बड़ी तस्वीर

अभियान

क्या

एक पदोन्नति: एक पॉप-अप, बैनर, बार, स्लाइड-इन, फुल स्क्रीन, इनलाइन ब्लॉक या जियो-रेडायरेक्ट। प्रत्येक का लक्ष्य है: बिक्री, नेतृत्व, साइन-अप , चैट, सर्वेक्षण, घोषणा।

डिजाइन और संस्करण

कैसे

आप दृश्य संपादक में नज़र का निर्माण करते हैं। हर सहेजने से एक नया संस्करण बन जाता है, इसलिए आप हमेशा वापस रोल कर सकते हैं। कभी नहीं हारे।

लक्ष्यीकरण

Who

यह कौन देखता है: देश, पृष्ठ, उपकरण, यातायात स्रोत, नया बनाम वापसी, अनुसूची और (एक कनेक्टर के साथ) अपने लॉग-इन ग्राहकों.

ट्रिगर्स

कब

जब यह दिखाई देता है: तुरंत, देरी पर स्क्रॉल पर, बाहर निकलने के इरादे पर, जब निष्क्रिय हो जाता है, एक क्लिक पर, एन पेजों के बाद या चैट / टिकट गतिविधि से।

एनालिटिक्स

परिणाम

लाइव इंप्रेशन, क्लिक-थ्रू, कन्वर्ज़न, एक ड्रॉप-ऑफ फ़नल, देश / पृष्ठ / डिवाइस स्प्लिट्स, ए/बी विजेताओं और एआई अंतर्दृष्टि।

अपनी पहली पदोन्नति में लॉन्च करें 5 कदम

1
टेम्पलेट या रिक्त से शुरू

ओपन प्रमोशन स्टूडियो और क्लिक करें नया अभियान, या टेम्पलेट्स गैलरी से तैयार डिजाइन चुनें। एक ड्राफ्ट डिजाइनर में खुलता है।

2
इसे डिजाइन करें

ब्लॉक, हेडिंग, टेक्स्ट, बटन, इमेज, बैज, आँकड़े, उलटी गिनती, फॉर्म, कूपन, वीडियो, रेटिंग, स्पिन-व्हील में खींचें। स्लाइडर्स के साथ स्टाइल कलर्स, ग्रेडिएंट और 3 डी प्रभाव। पूर्वावलोकन डेस्कटॉप / टैबलेट / मोबाइल, और कहीं भी कुछ भी जगह पर फ्री मूव का उपयोग करें।

3
इसे व्यक्तिगत करें

जैसे टोकन टाइप करें {first_name}, {country} या {company} किसी भी पाठ में। शो-टाइम पर वे आगंतुक के वास्तविक मान बन जाते हैं।

4
लक्ष्य और ट्रिगर

कौन इसे देखता है (देश, पृष्ठ, उपकरण, दर्शक) और जब यह आग (delay, स्क्रॉल, निकास-जांच)। हर किसी को एक नियम खाली छोड़ दें।

5
जांच, फिर प्रकाशित

एक त्वरित पूर्व-लॉन्च स्कैन के लिए चेक क्लिक करें, फिर प्रकाशित करें। यह सेकंड के भीतर रहता है और एनालिटिक्स का संग्रह शुरू होता है।

आप बना सकते हैं ब्लॉक

सामग्री

कोर

शीर्षक, पैराग्राफ, सूची, उद्धरण, छवि, आइकन, बैज, आँकड़ा, विभक्त और स्पेसर, किसी भी संदेश के निर्माण ब्लॉक।

कार्रवाई करने के लिए बुलाओ

कोर

वास्तविक कार्यों के साथ बटन: एक लिंक खोलें, चैट शुरू करें, टिकट बनाएं, एक कूपन कॉपी करें, या किसी पेज पर कूदें।

उर्जा और कब्जा

प्रीमियम

उलटी गिनती टाइमर, फॉर्म (ईमेल / फोन / टेक्स्ट), कूपन प्रकट करता है और वीडियो एम्बेड।

Gamified and फीडबैक

प्रीमियम

स्पिन-टू-विन पहियों, स्क्रैच कार्ड,NPS/ स्टार रेटिंग और बहु-चरण फ़नल।

लेआउट और प्रभाव

प्रीमियम

कॉलम, प्रगति सलाखों, सामाजिक शेयर, सामाजिक सबूत tickers, हाँ / नहीं दो कदम, quizzes, और 3D प्रभाव, झुकाव, चमक, लंबन, कांचरूपवाद।

निजीकरण टोकन

इनमें से किसी भी प्रकार के हेडिंग, पैराग्राफ़, बटन, बैज, आँकड़े, सूचियों या उद्धरण में टाइप करें। उन्हें आगंतुक के लाइव विवरणों के साथ बदल दिया जाता है जो उस क्षण को पदोन्नति दिखाता है (कभी-कभी सुरक्षा के लिए साफ किया गया):

उपलब्ध टोकन
From the visit:   {country} {city} {device} {page_path} {utm_source} {referrer}
From your CRM:    {first_name} {last_name} {email} {company} {segment} {lifecycle_stage}
From a connector: {balance_due} {unpaid_invoices}   (logged-in customers only)

लक्ष्यीकरण संदर्भ

देश और स्थान

केवल जियोआईपी के माध्यम से चयनित देशों, शहरों या टाइमज़ोन में दिखाएं। क्षेत्र-विशिष्ट प्रस्तावों या भू-निर्देशित के लिए महान।

पृष्ठ & URLs

कुछ पृष्ठों को समान / स्टार्ट-साथ / शामिल / रेगेक्स का उपयोग करके सीमित करें और पृष्ठों को भी बाहर निकालें।

उपकरण

डेस्कटॉप, टैबलेट या मोबाइल जैसे मोबाइल पर एक पतला बार, डेस्कटॉप पर एक मोडल।

आगंतुक प्रकार

नया, रिटर्निंग, ज्ञात (आपके सीआरएम में) या अनाम; CRM खंडों, lifecycle मंच, लीड स्कोर या ब्राउज़र भाषा।

यातायात स्रोत

UTM (utm_source, utm _campaign) या साइट का जिक्र करते हुए, उदाहरण के लिए केवल एक विशिष्ट विज्ञापन से आगंतुक।

अनुसूची और आवृत्ति

प्रारंभ / समाप्ति तिथियां, समय-समय पर विंडोज़ और कितनी बार कोई व्यक्ति इसे प्रति सत्र (प्रति दिन) देख सकता है, जब वे बंद / क्लिक / परिवर्तित हो जाते हैं।

A/B यातायात विभाजन

आगंतुकों और रन वेरिएंट हेड-टू-हेड के एक प्रतिशत को दिखाएं; वही व्यक्ति हमेशा उसी संस्करण को देखता है।

दर्शकों (logged-in)

एक कनेक्टर सक्षम के साथ, लाइव खाता राज्य द्वारा लक्ष्य, उदाहरण के लिए अनपेड चालान वाले ग्राहक या सक्रिय ग्राहकों।

ट्रिगर्स

कैसे पदोन्नति प्रकट होता है चुनें: तुरंत, देरी के बाद, स्क्रॉल गहराई पर, निकास-आशय पर, जब निष्क्रिय हो जाता है, एक तत्व के क्लिक पर, कई पृष्ठों को देखा गया था, फॉर्म-एबैंडन पर या चैट / टिकट गतिविधि से। डेवलपर्स अपने स्वयं के कोड से एक को फायर कर सकते हैं। window.OpsIQPromo.fire('event').

लक्ष्य लॉग-इन ग्राहकों (कनेक्टर)

यह क्या बनाता है OpsIQ प्रचार विशेष: एक प्लेटफॉर्म को जैसे कनेक्ट करें WHMCS (या किसी भी कनेक्टर जो दर्शकों का समर्थन करता है) और स्टूडियो आगंतुकों को उनके लाइव अकाउंट स्टेट द्वारा लक्षित कर सकता है।

1
एक दर्शक कनेक्टर सक्षम करें

कनेक्टर्स के तहत, वह सक्षम करता है जो दर्शकों के तथ्यों को उजागर करता है ()WHMCS बॉक्स में से एक है)। ग्राहकों को सुरक्षित रूप से पहचाना जाता है जब उस प्लेटफॉर्म में लॉग इन किया जाता है, OpsIQ कभी भी एक टाइप-इन ईमेल पर भरोसा नहीं करता है।

2
एक दर्शक नियम जोड़ें

अभियान के लक्ष्यीकरण में > श्रोता को लॉग-इन की आवश्यकता होती है और बिना भुगतान किए गए चालान जैसे नियमों को जोड़ती है >= 1, सदस्यता अतीत में है, या खाता क्रेडिट > 0.

3
अपने डेटा के साथ व्यक्तिगत रूप से

जैसे टोकनों का उपयोग करें {first_name} या {balance_due} एक "आप के पास एक अतिदेय चालान है" अनुस्मारक खुद को लिखते हैं।

दर्शक लक्ष्यीकरण विफल रहता है: यदि कनेक्टर एक तथ्य की पुष्टि नहीं कर सकता (या आगंतुक लॉग इन नहीं किया गया), तो पदोन्नति केवल नहीं दिखाती, इसलिए बिलिंग-टैरगेट प्रस्ताव कभी गलत व्यक्ति तक पहुंचता है। अपने स्वयं के कनेक्टर का निर्माण? नीचे "प्रचारण दर्शकों को निशाना बना" देखें।

कनेक्टेड commerce (स्टूडियो सुपरपावर)

अपने स्टोर से उत्पाद कार्ड

लाइव डेटा

एक उत्पाद ब्लॉक वास्तविक आइटम (नाम, मूल्य, बिक्री की कीमत, छवि, लिंक) सीधे से खींचता है WHMCS, WooCommerce, Shopify या आपका OpsIQ बिलिंग। टिक "Keep fresh" और कार्ड प्रकाशित होने के दौरान हर घंटे प्लेटफॉर्म से अपनी कीमत अपडेट करता है।

स्टोर-प्रेमी कूपन

कूपन

एक कूपन ब्लॉक आपके स्टोर में वास्तविक छूट कोड बना सकता है जिस क्षण को आप प्रकाशित करते हैं, इसलिए कोड एक आगंतुक हमेशा चेकआउट पर काम करता है।

आदेश-सत्ता राजस्व

योगदान

आपके प्लेटफ़ॉर्म के वास्तविक ऑर्डरों को हर घंटे अभियानों (उम्र कूपन कोड द्वारा इस्तेमाल किया गया या लीड्स ईमेल द्वारा) से मिलान किया जाता है ताकि वे जो राजस्व आपको देखते हैं वह वास्तविक बिक्री से है, अनुमान नहीं है।

वास्तविक सामाजिक प्रमाण

ट्रस्ट

सोशल-प्रूफ टिकर वास्तविक हाल के आदेशों ("Ada ordered स्टार्टर योजना's नेतृत्व कर सकते हैं 2h पहले) "(")", "पहले नाम और आइटम केवल, कभी ईमेल या राशि नहीं।

प्रयोग और यात्रा

A/B वेरिएंट & ऑटो विजेता

डिज़ाइन वेरिएंट में स्प्लिट ट्रैफिक; स्टूडियो को स्वचालित रूप से सांख्यिकीय विजेता को बढ़ावा देने, या बैंडिट ऑप्टिमाइज़र के लिए हाथ यातायात को बढ़ावा देना जो आगंतुकों को सबूतों के रूप में बदलने की ओर बदल देता है।

होल्डआउट उत्थान

आगंतुकों का एक टुकड़ा आरक्षित करें जो कुछ नहीं देखते हैं, इसलिए आप साबित कर सकते हैं कि अभियान खुद ही लिफ्ट का कारण बनता है।

सेगमेंट वेरिएंट

SAME अभियान (मोबाइल आगंतुक, बड़ी गाड़ियां, ग्राहकों को वापस लौटने) पर दर्शकों के प्रति अलग-अलग सामग्री प्रत्येक खंड का अपना संस्करण मिलता है।

ट्रिगर प्रयोग

वेरिएंट भी दिखाई देने के लिए WHEN परीक्षण कर सकते हैं: तत्काल बनाम देरी बनाम बाहर निकलने वाले इरादे, मापा सिर से सिर।

जर्नी (चेनिंग)

लक्ष्य द्वारा किसी ने एक अन्य अभियान ("एसए अभियान ए लेकिन परिवर्तित नहीं किया") के साथ बहु-चरण पदोन्नति अनुक्रम बनाने के लिए।

टीज़र

एक छोटी गोली आगंतुक अभियान बंद करने के बाद फिर से खुल सकते हैं, इसलिए एक बंद पॉप-अप कभी अच्छा नहीं चला जाता है।

क्या हुआ पता

हीटमैप क्लिक करें

डिजाइनर

डिजाइनर में, वास्तविक आगंतुक को पेंट करने के लिए हीटमैप को टॉगल करें अपने डिजाइन के हर ब्लॉक पर क्लिक करें।

स्टेपपटल

फ़नल

मल्टी-स्टेप अभियान बिल्कुल दिखाते हैं जहां लोग छोड़ देते हैं, स्क्रीन द्वारा स्क्रीन करते हैं।

अभियानों की तुलना

स्टूडियो

चार अभियानों को पक्ष में (संपीड़न, क्लिक, रूपांतरण) तक रखो, सर्वोत्तम मूल्य पर प्रकाश डाला गया।

साप्ताहिक कहानी और पचाना

एआई

हर सोमवार को आपकी अधिसूचनाओं में एक पाचन भूमि;📖साप्ताहिक कहानी बटन जब भी आप चाहते हैं तो अगले चरणों के साथ एक सादे भाषा सारांश लिखते हैं।

आराम से काम करना

A copilot and idea

कैनवास को संपादित करने के लिए डिज़ाइन कॉपियोलॉट से चैट करें ("सिरलाइन तत्काल चुनें, एक उलटी गिनती जोड़ें"), अपने स्वयं के यातायात डेटा से अभियान विचार प्राप्त करें, प्रति देश एक अभियान का अनुवाद करें, या ऑटो-फिक्स कम डिजाइन स्कोर।

ब्रांड किट आयात

एक कमांड ने आपकी वेबसाइट को पढ़ा और अपने असली ब्रांड रंग और फ़ॉन्ट्स का प्रस्ताव किया; सहेजें और हर पिकर उनके साथ आगे बढ़ जाता है।

मल्टी स्क्रीन फ़नल

स्टेप्स ब्लॉक प्रति स्क्रीन संपादन को सही करते हैं: प्रत्येक स्क्रीन के लिए टैब, ऐड या रीऑर्डर स्क्रीन और पूर्वावलोकन के साथ अनुसरण करता है।

नाम के संस्करण और उपस्थिति

नाम महत्वपूर्ण संस्करण ("लॉन्च उम्मीदवार"), उनमें से किसी को बहाल करते हैं और एक चेतावनी देखते हैं जब टीममेट उसी अभियान को संपादित कर रहा है।

डिवाइस स्ट्रिप और शासक

डेस्कटॉप, टैबलेट और मोबाइल साइड को एक दृष्टिकोण में देखें; सटीक प्लेसमेंट के लिए पिक्सेल शासकों को टॉगल करें।

होस्ट पेज और चैनल

हर अभियान जैव और क्यूआर कोड के लिए एक स्टैंडअलोन होस्ट किया गया पेज भी हो सकता है, कैप्चर किए गए लीड्स के लिए ईमेल ड्रिप अनुक्रम या एक क्लिक वेब-पुश ड्राफ्ट।

उद्यम सुरक्षा

फ्रीज विंडो (बदलें-फ्रीज अवधि), एक आपातकालीन रोकें-सभी स्विच, अनुमोदन, लेखा परीक्षा ट्रेल और संस्करण रोलबैक प्रकाशित करें।

क्या मुझे अपनी साइट पर कोड जोड़ने की आवश्यकता है?+

नहीं प्रचार उसी द्वारा वितरित किए जाते हैं OpsIQ आप पहले से ही स्थापित विजेट. डिजाइन, प्रकाशन, किया गया।

क्या आगंतुक उसी पॉप-अप को देखेंगे?+

No. सेट आवृत्ति कैप्स (प्रति सत्र / प्रति दिन, या किसी बंद होने के बाद रुकें, क्लिक करें या परिवर्तित)। संवेदी डिफ़ॉल्ट लागू किए जाते हैं।

कौन प्रकाशन कर सकता है?+

प्रकाशन, पीछा करना, संग्रह और रोलिंग वापस कार्यक्षेत्र मालिकों और पूर्ण प्रशासकों तक सीमित हैं। कोई भी टीम सदस्य ड्राफ्ट बना सकते हैं और डिजाइन कर सकते हैं।

विकास & SEO

संवर्धन डिजाइनर

प्रमोशन डिजाइनर एक अभियान अनुभव के निर्माण, समीक्षा करने, संस्करण बनाने और प्रकाशित करने के लिए एक उत्तरदायी ब्लॉक संपादक है।

उत्पाद स्क्रीन
संवर्धन डिजाइनरडिजाइनर एक लाइव कैनवास, डिवाइस पूर्वावलोकन, ब्लॉक, निजीकरण चर, टिप्पणियों और संस्करण इतिहास को जोड़ती है।संवर्धन डिजाइनरकार्यस्थलVIEWPORTडेस्कटॉपप्रवेशv12राज्यड्राफ्टलाइव WORKSPACEहीरो ब्लॉकहेडलाइन, मीडिया और सीटीएसंपादित करेंब्लॉकछूट और समय सीमासंपादित करेंनिजीकरणसंपर्क और अभियान चररेडीचेकटिप्पणियाँ और सत्यापनसमीक्षा1BUILD BLOCKSलाइव लेआउट संपादित करें2पूर्वावलोकनडेस्कटॉप, टैबलेट, मोबाइल3PUBLISHसंस्करण
डिजाइनर एक लाइव कैनवास, डिवाइस पूर्वावलोकन, ब्लॉक, निजीकरण चर, टिप्पणियों और संस्करण इतिहास को जोड़ती है।

अनुभव को समझने के लिए ब्लॉक का उपयोग करें, प्रत्येक समर्थित व्यूपोर्ट को पूर्वावलोकन करें और अनुमोदित निजीकरण चर डालें। प्रक्षेपण से पहले टिप्पणियों और एआई-मीडिया सिद्धि की समीक्षा करें। सेविंग संस्करण बनाता है इसलिए पिछले डिजाइन का निरीक्षण किया जा सकता है या बहाल किया जा सके।

विकास & SEO

संवर्धन टेम्पलेट

टेम्पलेट्स प्रोमोशन स्टूडियो अभियानों के लिए एक खोज योग्य, वर्गीकृत प्रारंभिक गैलरी प्रदान करते हैं।

उत्पाद स्क्रीन
संवर्धन टेम्पलेटटेम्पलेट गैलरी प्रीमियम लेआउट फिल्टर और वर्कस्पेस ब्रांड रंग लागू करता है जब एक टेम्पलेट ड्राफ्ट बन जाता है।संवर्धन टेम्पलेटकार्यस्थलश्रेणीरूपांतरणRESULTS24ब्रांडआवेदनलाइव WORKSPACEएक्सिट प्रस्तावurgency और सीटीए के साथ मोडलपूर्वावलोकननया आगंतुक स्वागतबैनर और लाभ सूचीपूर्वावलोकनउत्पाद लॉन्चहीरो, सबूत और उलटी गिनतीपूर्वावलोकनप्रतिक्रियाकॉम्पैक्ट सर्वेक्षण संकेतपूर्वावलोकन1FILTERश्रेणी और खोज2पूर्वावलोकनपूर्ण डिजाइन का निरीक्षण करें3USEएक ब्रांडेड ड्राफ्ट बनाएं
टेम्पलेट गैलरी प्रीमियम लेआउट फिल्टर और वर्कस्पेस ब्रांड रंग लागू करता है जब एक टेम्पलेट ड्राफ्ट बन जाता है।

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

विकास & SEO

संवर्धन विश्लेषण

संवर्धन विश्लेषण प्रभाव को जोड़ता है और रूपांतरण, दर्शकों के संदर्भ, कनेक्टर कार्रवाई परिणाम और अभियान सीखने के लिए क्लिक करता है।

उत्पाद स्क्रीन
संवर्धन विश्लेषणपदोन्नति विश्लेषण हेडलाइन प्रदर्शन, दर्शकों और ट्रिगर ब्रेकडाउन, लीड्स एक्सपोर्ट और कनेक्टर एक्शन परिणाम दिखाता है।संवर्धन विश्लेषणकार्यस्थलIMPRESSIONS42.8kसीटीआर6.4%CONVERSIONS814लाइव WORKSPACEदेशयूनाइटेड किंगडम · 31%ब्रेकडाउनपृष्ठ/pricing · 22%ब्रेकडाउनट्रिगरबाहर होने की कोशिश · 44%ब्रेकडाउनकनेक्टर कार्रवाईकूपन बनाया गया · 97% सफलताआउटकम1उपायरूपांतरण के लिए छाप2SLICEपृष्ठ, देश, युक्ति3LEARNअंतर्दृष्टि लागू करें
पदोन्नति विश्लेषण हेडलाइन प्रदर्शन, दर्शकों और ट्रिगर ब्रेकडाउन, लीड्स एक्सपोर्ट और कनेक्टर एक्शन परिणाम दिखाता है।

छापें, क्लिक-थ्रू रेट और रूपांतरण एक साथ पढ़ें। ब्रेक परिणाम देश, पृष्ठ, ट्रिगर और डिवाइस द्वारा नीचे; आवश्यक होने पर निर्यात कैप्चर लीड्स का उपयोग करता है। कनेक्टर एक्शन परिणाम दिखाते हैं कि पदोन्नति के वादा किए गए अनुवर्ती वास्तव में क्या हुआ है। एआई अंतर्दृष्टि और सीखने की सारांश को सत्यापित करने के लिए परिकल्पना के रूप में माना जाना चाहिए, स्वचालित प्रमाण नहीं।

विकास & SEO

घोषणा

घोषणाओं ने वैकल्पिक लक्ष्यीकरण, अनुसूची और कार्रवाई के लिए कॉल करने के साथ विजेट अधिसूचना क्षेत्र में एक संदेश प्रकाशित किया।

उत्पाद स्क्रीन
घोषणाघोषणा संपादक में सामग्री, सीटीए, दर्शक, खंड, पृष्ठ नियम, सक्रिय तिथियां और दृश्य शैली शामिल हैं।घोषणाकार्यस्थलसक्रिय3AUDIENCEसेगमेंटशहीदजुलाई 22–29लाइव WORKSPACEशीर्षकयोजनाबद्ध रखरखावरेडीसामग्रीमार्कडाउन संदेशरेडीसीटीएअद्यतन पढ़ेंवैकल्पिकनियममूल्य निर्धारण पृष्ठ · सक्रिय ग्राहकलक्ष्य1WRITEशीर्षक और मार्कडाउन2लक्ष्यश्रोता, खंड, पृष्ठ3शहीदसक्रिय विंडो
घोषणा संपादक में सामग्री, सीटीए, दर्शक, खंड, पृष्ठ नियम, सक्रिय तिथियां और दृश्य शैली शामिल हैं।

सभी आगंतुकों, हस्ताक्षरित-इन आगंतुक या नए आगंतुकों का चयन करें; वैकल्पिक रूप से दर्शकों को संपर्क खंड और पृष्ठ नियम के साथ संकीर्ण करें। सक्रिय-से / सक्रिय-टू तिथियां और एक सक्रिय ध्वज सेट करें। प्रीमियम शैली प्रीसेट और रंग परिवर्तन प्रस्तुति लेकिन स्पष्ट सामग्री की जगह नहीं है।

विकास & SEO

पुश अभियान

पुश अभियान साइट को छोड़ने के बाद आगंतुकों को सब्सक्राइब करने के लिए ब्राउज़र सूचनाएं भेजता है।

उत्पाद स्क्रीन
पुश अभियानपुश संगीतकार सदस्यता पहुंच, सामग्री, मीडिया, कार्यों, लक्ष्य नियमों और अनुसूची राज्य दिखाता है।पुश अभियानकार्यस्थलSUBSCRIBERS8,214सेंट31.6kCLICK RATE5.8%लाइव WORKSPACEशीर्षकआपकी गाड़ी इंतजार कर रही हैरेडीशरीरआज मुफ्त डिलीवरी के लिए वापसीरेडीसीटीएओपन कार्टरेडीअनुसूचीअब भेजें या निर्धारित करेंड्राफ्ट1PREPARE PUSHशीर्षक, शरीर, आइकन2लक्ष्यश्रोता, खंड, पृष्ठ3SENDअब, अनुसूची या ड्राफ्ट
पुश संगीतकार सदस्यता पहुंच, सामग्री, मीडिया, कार्यों, लक्ष्य नियमों और अनुसूची राज्य दिखाता है।

वेब पुश कुंजी को पहले वेब पुश सेटिंग्स के तहत कॉन्फ़िगर करें। एक अभियान में शीर्षक, शरीर, आइकन, हीरो इमेज, बैज, सीटीए और दो एक्शन बटन शामिल हो सकते हैं; जब तक आगंतुक बातचीत नहीं करता तब तक लगातार अधिसूचना बनी रहती है।

दर्शकों, वैकल्पिक संपर्क खंड और पृष्ठ नियम द्वारा लक्ष्य। एक ड्राफ्ट सहेजें, इसे शेड्यूल करें या तुरंत भेजें। सदस्यता का उपयोग करें और अनुबंध तक पहुंचने के लिए क्लिक करें।

विकास & SEO

सक्रिय संदेश

सक्रिय संदेश स्वचालित रूप से उस क्षण तक पहुंचते हैं जब कोई आगंतुक का व्यवहार एक नियम से मेल खाता है, इससे पहले कि वे पूछते हैं। आप प्रत्येक को तीन भागों के साथ एक नियम के रूप में बनाते हैं: क्या होना चाहिए, कब इसे आग लगना चाहिए और कितनी बार। सब कुछ माध्यम से वितरित किया जाता है। OpsIQ अपनी साइट पर पहले से ही विजेट करें।

सक्रिय
सक्रिय संदेशतीन भागों में एक सक्रिय-नियम संगीतकार: एक कार्रवाई (चैट, बैनर, टूर, पुश, ईमेल) चुनें, स्थिति जोड़ें और आवृत्ति कूलडाउन सेट करें।सक्रिय संदेशकार्यस्थल1 कार्रवाईचैट संदेशबैनरटूरपुशईमेल2 · शर्तpage = /pricingपृष्ठ पर समय > 20sवापसी3 · फ़्रिक्वेंसीएक बार प्रति सत्रस्थिति1कार्रवाईचैट, बैनर, ईमेल, पुश ......2CONDITIONSपृष्ठ, समय, स्कोर, वापसी3आवृत्तिप्रति आगंतुक कूलडाउन
हर सक्रिय नियम तीन विकल्प हैं: क्या होता है (चैट, बैनर, टूर, पुश, ईमेल, वेबहुक), कब (कंडीशन) और कितनी बार (cooldown).

नियम के तीन भाग

1
क्या होना चाहिए (action)

एक चैट बबल या ऑन-पेज बैनर दिखाएं, एक गाइड टूर शुरू करें, वेब पुश या ईमेल भेजें, किसी विभाग को असाइन करें, या एक वेबहुक फायर करें। जैसे टोकन {{visitor_name}} और {{page_title}} वास्तविक मूल्य बन जाते हैं।

2
जब इसे आग (कंडीशन) होना चाहिए

संकीर्ण जो इसे ट्रिगर करता है: पृष्ठ /URL, पृष्ठ पर समय, स्क्रॉल गहराई, लीड स्कोर, रिटर्निंग बनाम नया, निष्क्रिय। कोई स्थिति नहीं है, नियम हर आगंतुक के लिए आग लगाता है। इसे लक्षित करने के लिए कम से कम एक जोड़ें। शर्तें इसके साथ गठबंधन करती हैं।

3
अक्सर (आवृत्ति)

एक ठंडा होना इसलिए उसी व्यक्ति कीट नहीं है, उदाहरण के लिए प्रति सत्र या एक बार प्रति दिन। प्रत्येक नियम में एक चालू/बंद स्थिति होती है।

⚠️
Workspace toggle "Run time/idle Rules hour" सर्वर-साइड एक्शन (ईमेल, पुश, वेबहुक, असाइन) को उन ज्ञात संपर्कों के लिए एक अनुसूची पर फायर देता है जो वर्तमान में पृष्ठ पर नहीं हैं, इसलिए आप स्वचालित रूप से "email निष्क्रिय गर्म लीड्स" कर सकते हैं। इसकी आवश्यकता होती है सर्वर-side कार्यों (email, धक्का, webhook, असेंबल) को उस समय प्रकाशित करने की अनुमति देता है जब तक कि आप वर्तमान में पेज पर मौजूद नहीं होते हैं, तो आप "Email निष्क्रिय हॉट लीड्स") को स्वचालित तरीके से मेल कर सकती हैं। OpsIQ यदि आप केवल पृष्ठ पर रहते हैं तो इसे छोड़ दें।
क्या यह सभी के लिए आग लग सकती है?+

केवल तभी जब आप कोई शर्त नहीं जोड़ते हैं। सही आगंतुकों को लक्षित करने के लिए कम से कम एक शर्त (पृष्ठ, लीड स्कोर, रिटर्निंग) जोड़ें।

ये प्रवाह और पर्यटन से कैसे संबंधित हैं?+

वे एक साथ काम करते हैं: एक सक्रिय नियम एक निर्देशित टूर शुरू कर सकता है, और एक चैटबॉट फ्लो को एक सक्रिय शासन द्वारा ट्रिगर किया जा सकता है। एक एकल चैट संदेश नियम के साथ शुरू करें, फिर दूसरों को परत दें।

विकास & SEO

चैटबॉट प्रवाह

चैटबॉट फ्लो स्क्रिप्ट ब्रांचिंग वार्तालाप के अंदर अपने चैट विजेट (greetings, कीवर्ड उत्तर, निर्देशित पथ) कोई कोड नहीं है। एक प्रवाह कनेक्टेड चरणों का एक सेट है (नोड): आप सवाल पूछते हैं, आगंतुक एक विकल्प चुनता है और प्रवाह उन्हें मिलान शाखा में भेज देता है। केवल सक्रिय प्रवाह आपकी साइट पर चल रहा है।

यह कैसे काम करता है
चैटबॉट प्रवाहएक प्रवाह कैनवास: तीन विकल्प बटन में एक ग्रीटिंग नोड शाखाएं, प्रत्येक अगले कदम के लिए अग्रणी, ऑर्डर देखें, या मानव को बंद करने के लिए।बधाईमैं कैसे मदद कर सकता हूँ?मेरी ऑर्डर ट्रैक करेंबिलिंग प्रश्नमानव से बात करेंऑर्डर देखें→ मानव एजेंटTriggers: ग्रीटिंग · कीवर्ड · मैनुअल · बाद में विवरण · ऑन-चैट-एंड
चैटबॉट प्रवाह

A-O-A-V-S-H-B-D-W-E-G-H, जिसका उपयोग करने के लिए किया जाता है।

प्रवाह का उपयोग करें

जब पथ पूर्वानुमान योग्य होता है और आप चाहते हैं कि यह हर बार समान हो: बुकिंग कदम, रिटर्न विज़ार्ड, एक "जो योजना?" चयनकर्ता, हैंडऑफ़ से पहले एक ईमेल एकत्र करना। प्रवाह कभी सुधार नहीं करते।

AI का उपयोग करें

जब प्रश्न खुले-ended होते हैं, तो "इस काम को मेरे सेटअप के साथ करता है? ग्राहक चैट AI आपके प्रशिक्षित ज्ञान से उत्तर देता है। एक प्रवाह किसी भी कदम पर एआई (या मानव) को सौंप सकता है।

ट्रिगर्स

बधाई

जब कोई आगंतुक पहले चैट खोलता है तो ओपनिंग संदेश के रूप में चला जाता है।

कीवर्ड

जब आगंतुक आपके द्वारा सूचीबद्ध एक शब्द टाइप करता है (जैसे रिफंड, मूल्य निर्धारण, रद्द)।

विवरण के बाद / देरी के बाद

एक बार संपर्क विवरण साझा करने के बाद शुरू होता है, या बातचीत में एक निर्धारित समय होता है।

चैट अंत / सक्रिय

चैट लपेटता है (जैसे रेटिंग) के रूप में भाग लेता है, या एक सक्रिय संदेश नियम द्वारा शुरू किया जाता है।

चार चरणों में एक बनाएँ

1
प्रवाह बनाएँ

नया प्रवाह क्लिक करें, इसे नाम दें, एक ट्रिगर प्रकार चुनें (और कीवर्ड यदि कीवर्ड), सेव करें। यह बंद हो जाता है।

2
कैनवास खोलें

क्लिक करें कैनवास संपादित करें दृश्य बिल्डर जहां आप चरणों (संदेश, बटन के साथ सवाल, शाखाओं) जोड़ते हैं और उन्हें कनेक्ट करते हैं।

3
शाखाएँ और एक हाथ से बंद जोड़ें

प्रत्येक विकल्प के लिए, अगले चरण में एक शाखा आकर्षित करें। हल करके अंत पथ, एआई को सौंपना या मानव में स्थानांतरित करना।

4
इसे सक्षम करें

सक्षम करें। प्रवाह तुरंत अपने विजेट में रहता है। डिजाइन खोने के बिना किसी भी समय अक्षम करें।

क्या प्रवाह AI की जगह ले सकते हैं?+

नहीं, वे पक्ष में भाग लेते हैं। पूर्वानुमानित पथों और खुले अंत वाले प्रश्नों के लिए एआई के लिए प्रवाह का उपयोग करें; एक प्रवाह हमेशा या तो हाथ कर सकता है।

विकास & SEO

निर्देशित पर्यटन

निर्देशित पर्यटन चरण-दर-चरण वॉकथ्रू हैं जो आपके पेज के कुछ हिस्सों में भाषण बुलबुले और स्पॉटलाइट के साथ इंगित करते हैं, जो ऑनबोर्डिंग या एक नई सुविधा के माध्यम से आगंतुक को मार्गदर्शन करते हैं। वे पूरी तरह से थीम्ड हैं और लाइव पूर्वावलोकन के साथ एक दृश्य डिजाइनर में निर्मित होते हैं। जब यह सक्रिय चिह्नित होता है तो एक टूर केवल चलाता है।

यह कैसे काम करता है
निर्देशित पर्यटनऐड-डेल बटन और एक थीम्ड स्पीच बबल रीडिंग स्टेप के आसपास स्पॉटलाइट रिंग के साथ एक डिमेड पेज 1 of 4 एक आगामी बटन के साथ।+ सौदा जोड़ेंकदम 1 (a) 4अपना पहला सौदा बनाएंअपनी पाइपलाइन में एक सौदा जोड़ने के लिए यहां क्लिक करें।आगामी →
निर्देशित पर्यटन

कैसे एक दौरे का निर्माण किया है

चरण

प्रत्येक चरण एक तत्व को लक्षित करता है और आपके पाठ के साथ एक बुलबुला दिखाता है। वॉकथ्रू जरूरतों के रूप में कई स्टॉप जोड़ें और उन्हें ऑर्डर करें।

Presets & विषय

एक पूर्व निर्धारित से शुरू करें या अपने खुद के बुलबुले (रंग, ढाल, स्पॉटलाइट) को डिजाइन करें, जिसमें दाईं ओर लाइव पूर्वावलोकन शामिल है।

ट्रिगर

वैकल्पिक रूप से एक सक्रिय नियम को लिंक करें ताकि उस नियम की आग (जैसे कि लौटने वाले आगंतुक का पहला डैशबोर्ड दौरा) जब टूर ऑटो शुरू होता है।

सक्रिय toggle

सक्रिय होने के बावजूद, एक टूर केवल तभी चलने योग्य है जब सक्रिय टिक जाता है। इसे हटाने के बिना इसे लेने के लिए Untick।

चार चरणों में एक बनाएँ

1
नया दौरा

न्यू गाइडेड टूर पर क्लिक करें, इसे नाम दें और वैकल्पिक रूप से एक सक्रिय नियम को लिंक करें ताकि यह स्वचालित रूप से शुरू हो जाए।

2
चरण जोड़ें

प्रत्येक स्टॉप जोड़ें: वह तत्व चुनें जो इसे इंगित करता है और बबल टेक्स्ट लिखते हैं। पथ प्रवाह तक रीऑर्डर करें।

3
इसे डिजाइन करें

अपने आप को बुलबुला शैली में एक पूर्व निर्धारित या चुनें। लाइव पूर्वावलोकन वास्तव में क्या आगंतुकों को देखने से पता चलता है।

4
सक्रिय

सक्रिय बात यह है कि यह दौरा अब अपने स्वयं के ट्रिगर पर चल सकता है, या एक सक्रिय संदेश नियम द्वारा शुरू किया जा सकता है।

कैसे शुरू होता है?+

अपने स्वयं के ट्रिगर पर, या एक सक्रिय संदेश नियम की "गाइड टूर" कार्रवाई के माध्यम से, इसलिए आप तय करते हैं कि कौन आगंतुक किस दौरे और कब देखते हैं।

विकास & SEO

रूपांतरण लक्ष्य

रूपांतरण गोल आपके बारे में एक गतिविधि बदल देते हैं (एक इनबाउंड वेबहुक इवेंट, एक चैट संदेश, टिकट रिज़ॉल्यूशन) पूर्ण प्रयास के साथ रिकॉर्ड किए गए रूपांतरण में। जब गतिविधि आग लग जाती है, तो OpsIQ संपर्क के खिलाफ रूपांतरण लॉग करता है और यह अभियानों, खंडों और स्रोतों से वापस आता है जो वहां नेतृत्व करते हैं।

यह कैसे काम करता है
रूपांतरण लक्ष्यएक गोल प्रवाह: भुगतान। सफल वेबहुक घटना एक रिकॉर्ड "purchase" रूपांतरण मूल्य बन जाता है $49, इसके स्रोत और अभियान के लिए जिम्मेदार, ऊपर त्वरित शुरू चिप्स के साथ।त्वरित शुरुआतStripeखरीदडेमो बुकन्यूज़लेटर साइनअपpayment.succeededवेबहुकरूपांतरण"purchase" ·$49योगदानस्रोत · अभियान
रूपांतरण लक्ष्य

तीन चरणों में एक लक्ष्य को परिभाषित करें

1
ट्रिगर गतिविधि चुनें

नए रूपांतरण लक्ष्य पर क्लिक करें। गतिविधि प्रकार चुनें जो रूपांतरण के रूप में गिना जाता है, या क्विक-स्टार्ट प्रीसेट का उपयोग करता है,Stripeखरीद, डेमो बुक, न्यूज़लेटर साइनअप या सदस्यता शुरू हुई।

2
इसे नाम दें और एक मान निर्धारित करें

रूपांतरण को एक नाम (purchase, demo_booked, signup) और वैकल्पिक रूप से एक निश्चित मूल्य और एक विशेषता खिड़की दें।

3
सेव

सेव करें और सक्षम करें। तब से, जब भी गतिविधि आग लग जाती है, OpsIQ पूर्ववर्ती स्पर्शों के लिए प्रयास के साथ संपर्क के खिलाफ एक रूपांतरण रिकॉर्ड करता है।

गोल पहले से ही इनबाउंड वेबहुक में वायर किए गए हैं: किसी भी लक्ष्य जिसका ट्रिगर एक इनबाउंड इवेंट के टाइप फायर्स को स्वचालित रूप से उस क्षण से जोड़ता है। कनेक्ट करने के लिए इनबाउंड Webhooks पेज का उपयोग करेंStripeCalendly, या किसी भी प्रणाली है कि POST कर सकते हैंJSON.
क्या रूपांतरण हो सकता है?+

किसी भी रिकॉर्ड गतिविधि: एक इनबाउंड वेबहुक घटना (payer. succeed), एक चैट ईमेल कैप्चर, एक टिकट संकल्प, संपर्क समयरेखा पर कुछ भी।

एनालिटिक्स

कस्टम डैशबोर्ड

कस्टम डैशबोर्ड आपको उन मीट्रिकों के अपने दृष्टिकोण का निर्माण करने देते हैं जो केवल मानक अवलोकन पर निर्भर होने के बजाय, इस विषय में हैं। वे विजेट्स जोड़ें जिन्हें आप चाहते हैं, खींचें और उन्हें आपके पसंद के लेआउट में आकार दें, इसे बचायें और अपनी टीम के साथ साझा करें।

कस्टम डैशबोर्ड
कस्टम डैशबोर्डKPI और चार्ट विजेट टाइल्स, एक डैश ड्रॉप जोन और ऐड-विजेट बटन के साथ एक डैशबोर्ड बिल्डर।कस्टम डैशबोर्डकार्यस्थलमेरा डैशबोर्ड+ विजेट जोड़ेंदर्शक2,481राजस्व$8 2.2kयातायातयहाँ एक विजेट खींचेंशीर्ष पेज/pricing/docs/signup1ADD WIDGETSमीट्रिक और चार्ट चुनें2ARRANGEखींचें और आकार बदलें3शौरीअपनी टीम के साथ
अपना खुद का बोर्ड बनाएं: KPI, चार्ट और लिस्ट विजेट्स जोड़ें, उन्हें इच्छित लेआउट में खींचें और आकार दें, फिर इसे टीम के साथ साझा करें।

तीन चरणों में एक बनाएँ

1
विजेट जोड़ें

क्लिक करें विजेट जोड़ें और उस मीट्रिक या चार्ट को चुनें जिसे आप ट्रैक करना चाहते हैं। बोर्ड पर जो कुछ भी चाहते हैं उसके लिए दोहराएं।

2
लेआउट की व्यवस्था करें

विजेट्स को फिर से व्यवस्थित करने और अपने किनारों को आकार देने के लिए खींचें। शीर्ष पर KPI, नीचे दिए गए चार्ट। जो भी सबसे अच्छा पढ़ता है।

3
सहेजें और साझा करें

डैशबोर्ड को सेव करें और इसे अपनी टीम के साथ साझा करें ताकि हर कोई उसी नंबर को देखता है।

अलग-अलग नौकरियों के लिए अलग बोर्ड रखें (एक "दैनिक" लाइव गिनती के साथ बोर्ड, और ट्रेंड चार्ट्स के साथ एक "मासिक समीक्षा" बोर्ड।
विकास & SEO

आउटरीच अभियान

प्रवेश है OpsIQ's'1:1और थोक ईमेल इंजन: एक व्यक्तिगत संदेश की रचना करें या CRM सेगमेंट में एक अभियान चलाएं, जिसमें उत्तर का पता लगाना, समय-समय पर नियंत्रण, खुला/क्लिक ट्रैकिंग, ट्रैकिंग पिक्सेल और एक क्लिक अनसब्सक्राइब करना शामिल है।

आउटरीच
आउटरीच अभियानComposer/Campaigns/Templates/Replies टैब के साथ आउटरीच स्क्रीन और एक अभियान तालिका जिसमें भेजा गया, खुला दर और उत्तर-दर दिखाया गया है।आउटरीचकार्यस्थलअभियानसंगीतकारटेम्पलेट्सउत्तराधिकारकैमपागलसेंटखुलाजवाबजून न्यूजलेटर1,20048%7%ट्रायल अनुवर्ती34062%14%विन बैक82039%5%उत्तर का पता लगाने ऑटो-stop अनुवर्ती · प्रत्येक प्रेषक पर एक क्लिक सदस्यता रद्द करना11:1 & BULKरचना या अभियान2TRACKEDओपन, क्लिक, जवाब3COMPLIANTUnsubscribe में बनाया गया
आउटरीच इंजन: भेजें1:1या किसी सेगमेंट में अभियान चलाएं, ट्रैक खुलता है और जवाब देता है, और अंतर्निहित सदस्यता रद्द करने और उत्तर का पता लगाने के अनुरूप रहें।

चार टैब

संगीतकार

एक व्यक्तिगत लेखन1:1ईमेल{tokens}संपर्क से औरCRM.

अभियान

एक CRM खंड, अनुसूचित या अब, कैप्स और भेजने के समय नियंत्रण के साथ भेजें।

टेम्पलेट्स

बार-बार आउटरीच के लिए पुन: प्रयोज्य संदेश टेम्पलेट।

उत्तराधिकार

उत्तर का पता लगाने के लिए रिकॉर्ड जवाब और ऑटो-स्टॉप ने जवाब देने वाले किसी को भी फॉलो-अप किया।

कैसे एक अभियान चलाता है

1
दर्शकों को चुनें

एक CRM खंड चुनें (या सूची अपलोड करें)। दमन और सहमति स्वचालित रूप से लागू की जाती है।

2
रचना

व्यक्तिगतकरण टोकन के साथ संदेश लिखें; वास्तविक संपर्क के खिलाफ पूर्वावलोकन करें।

3
अनुसूची और भेजें

अब या सबसे अच्छे समय में भेजें। एक ट्रैकिंग पिक्सेल रिकॉर्ड खुलता है; क्लिक और जवाब दिया जाता है।

आउटरीच सहमति है- और दमन-गेटेड, इसमें प्रत्येक प्रेषक पर एक क्लिक सदस्यता शामिल है, और CAN-SPAM / CASL का अनुसरण करता है। उत्तर स्वचालित रूप से आगे अनुवर्ती कार्रवाई को रोक देता है।
एनालिटिक्स

अनुसूचित रिपोर्ट

अनुसूचित रिपोर्ट एक प्रिंट करने योग्य, सफेद लेबल के रूप में एक अनुसूची (दैनिक, साप्ताहिक या मासिक) पर चयनित प्राप्तकर्ताओं को चुने गए मीट्रिक सेट ईमेल करते हैं। PDF इसे एक बार सेट करें और रिपोर्ट स्वचालित रूप से इनबॉक्सों में उतरती है। OpsIQ क्रोन।

अनुसूचित रिपोर्ट
अनुसूचित रिपोर्टअनुसूचित रिपोर्ट स्क्रीन: उनके शेड्यूल, प्राप्तकर्ताओं और अंतिम सत्र के साथ रिपोर्टों की एक तालिका, साथ ही एक सेव-रिपोर्ट बटन।अनुसूचित रिपोर्टकार्यस्थलअनुसूचित रिपोर्ट+ रिपोर्ट सहेजेंरिपोर्टशहीदरेजिडेंटलेस्टेंटसाप्ताहिक यातायातसोम 9:00[email protected]2ddaySEOग्राहक रिपोर्टमासिक[email protected]जून 1बिक्री सारांशदैनिक[email protected]todayएक सफेद लेबल के रूप में वितरित PDF के माध्यम से OpsIQ क्रोन1AUTOMATEDदैनिक साप्ताहिक · मासिक2सफेद-लेबलPDF ग्राहकों के लिए3रेजिडेंटअनुसूची पर ईमेल
एक बार (मीट्रिक सेट, रेंज, शेड्यूल, प्राप्तकर्ता) और एक रिपोर्ट निर्धारित करें OpsIQ एक सफेद लेबल ईमेल PDF स्वचालित रूप से अपने ताल पर।

एक रिपोर्ट सेट करें

1
क्या भेजना है?

मीट्रिक सेट (यात्रा, SEO_, बिक्री, समर्थन...) और एक तारीख सीमा चुनें।

2
अनुसूची और प्राप्तकर्ता सेट करें

दैनिक, साप्ताहिक या मासिक, एक समय में आप चुनते हैं, एक या अधिक ईमेल प्राप्तकर्ताओं के लिए।

3
सेव

सेव और सक्षम रिपोर्ट शेड्यूल पर खुद को उत्पन्न करती है और ईमेल करती है, कोई मैनुअल स्टेप नहीं।

💡
अनुसूचित रिपोर्ट के माध्यम से चल रही है OpsIQ यदि कोई रिपोर्ट नहीं आती है, तो यह पुष्टि करें कि क्रोन चल रहा है (क्रोन और स्वचालन देखें)।
गोपनीयता

गोपनीयता और अनुपालन

गोपनीयता और अनुपालन पृष्ठ एक लेखा परीक्षक को दिखाने के लिए एकल स्थान है जिसे आप व्यक्तिगत डेटा जिम्मेदारी से संभालते हैं: सहमति का नेतृत्वकर्ता, व्यवस्थापक एक्सेस लॉग, आपका डाटा रेजीडेंसी और रिटेंशन पॉलिसी, और एक तैयार-से-प्रिंट DPA, एक टैब्ड व्यू में। केवल पूर्ण प्रशासक इसे खोल सकते हैं।

गोपनीयता और अनुपालन
गोपनीयता और अनुपालनगोपनीयता और अनुपालन स्क्रीन: कॉन्सेंट लीडर, एक्सेस लॉग, रेजीडेंसी और DPA के लिए टैब, अनुदान की एक सहमति के नेतृत्व वाली तालिका के साथ और चैनल द्वारा फिर से बुलाए गए।गोपनीयता और अनुपालनकार्यस्थलकांसेंट लेजरप्रवेशनिवासDPAसंपर्कचैनलकार्रवाईतारीख[email protected]ईमेलअनुदानजून 12[email protected]pushरद्द करनाजून 10[email protected]marketingअनुदानजून 9हर सहमति अनुदान और रद्द करने का सर्चेबल सबूत चैनल द्वारा1सहमति एलईडीगरप्रत्येक अनुदान का प्रमाण2ACCESS LOGकौन स्पर्श डेटा3DPAमुद्रण योग्य टेम्पलेट
एक ऑडिटर-सज्जित स्क्रीन: एक खोज योग्य सहमति लेजर (चैनल द्वारा अनुदान / रद्द), डाटा, निवास / रखरखाव सेटिंग्स और एक प्रिंट करने लायक को छूने वाला एक पहुँच लॉग DPA.

चार टैब

कांसेंट लेजर

प्रत्येक सहमति अनुदान का एक खोज योग्य रिकॉर्ड और फिर से बुलाना, संपर्क, चैनल (ईमेल, पुश, एसएमएस, इन-विजेट), एक्शन, सोर्स और तारीख। आपका प्रमाण एक संपर्क सहमत (या वापस ले लिया गया) है।

प्रवेश

आपकी टीम पर कौन ने एक संपर्क के डेटा को देखा, संपादित किया, निर्यात किया, मिटाया या संदेश दिया, व्यवस्थापक, संपर्क, कार्रवाई, कहा कारण और IP_. वास्तव में क्या नियामक पूछता है।

रेजीडेंसी और रिटेंशन

यह बताते हुए कि इस कार्यस्थान के डेटा जीवन में कितने दिन की गतिविधि पंक्तियां रखी गई हैं ()0 = हमेशा के लिए), और अपने डेटा नियंत्रक और डीपीओ रिकॉर्ड।

DPA टेम्पलेट

एक प्रिंट करने योग्य डेटा प्रोसेसिंग एडेंडम जो आपके नियंत्रक, पते, डीपीओ, रेजीडेंसी और रिटेंशन को भरता है। प्रिंट या सहेजने के रूप में PDF.

कुकी सहमति स्टूडियो (जो सहमति एकत्र करता है) और निर्यात पृष्ठ के साथ गोपनीयता और अनुपालन जोड़े (जो डेटा प्रतिलिपि को DSAR_ के लिए पैदा करता है). रात में प्रतिधारण सफाई के लिए क्रोन और स्वचालन भी देखें।
कनेक्टर्स

अपने प्लेटफॉर्म को कनेक्ट करें

कनेक्टर्स लिंक OpsIQ बाह्य प्लेटफार्मों के लिए: ई-कॉमर्स स्टोर, बिलिंग सिस्टम, भुगतान प्रोसेसर, ईमेल प्रदाता और कस्टम APIs एक बार कनेक्ट होने के बाद, एआई ऑर्डर, ग्राहक डेटा, सदस्यता और अधिक देख सकता है और आपकी मंजूरी के साथ कार्रवाई कर सकता है।

यह कैसे काम करता है
कनेक्टर्स हबOpsIQकोर से जुड़ेWHMCS, Shopify, Stripe, WooCommerce, SendGrid और Google Business Profile, प्रत्येक एक जुड़े हुए दर्जा दिखा रहा है।WHMCSShopifyStripeWooCommerceSendGridगूगल बीपीOpsIQकोर1PLUG IN25 पूर्व निर्मित कनेक्टर2AI CONTEXTरियल प्लेटफॉर्म डेटा3ACTIONSअपनी स्वीकृति के साथ
कनेक्टर्स

शिप OpsIQ_

ये क्षण आप स्थापित कर रहे हैं और केवल उनके क्रेडेंशियल की जरूरत है।

WHMCS

बिलिंग

वेब होस्टिंग बिलिंग: ग्राहक, सेवाएं, टिकट, चालान, डोमेन, सर्वर।

Shopify

ई-कॉमर्स

ई-कॉमर्स: ऑर्डर, ग्राहक, उत्पाद, सूची, भुगतान, वेबहुक।

WooCommerce

ई-कॉमर्स

WordPress ई-कॉमर्स: ऑर्डर, ग्राहक, उत्पाद, कूपन, शिपिंग।

WordPress

सीएमएस

सामग्री और उपयोगकर्ताओं पर एकWordPressसाइट।

स्क्वायर

भुगतान

भुगतान और बिक्री के बिंदु: आदेश, ग्राहक, सूची।

osCommerce

ई-कॉमर्स

विरासत ई-कॉमर्स: आदेश, ग्राहक, उत्पाद।

बोटल होटल

ब्रिज

हस्ताक्षरित के माध्यम से एक Botble CMS होटल साइटOpsIQपुल। कोई मंच के लिए संदर्भ कार्यान्वयन नहीं हैAPI.

Zendesk

समर्थन

Helpdesk: टिकट, उपयोगकर्ता, संगठन, टिप्पणियां।

गूगल व्यवसाय प्रोफ़ाइलQuery

विपणन

स्थानीय व्यवसाय: समीक्षा, पोस्ट, क्यू एंड ए, अंतर्दृष्टि। उपयोग OAuth.

गूगल कैलेंडर

उत्पादकता

कैलेंडर और इवेंट्स का उपयोग करता है OAuth

GmailऔरIMAP

ईमेल

मेलबॉक्स: इनबाउंड और आउटबाउंड मेल, एड्रेस-बुक सिंक।

SendGrid

ईमेल

ईमेल वितरण: ईमेल भेजने और टेम्पलेट्स का प्रबंधन करने के लिए।

मेलगिन

ईमेल

ईमेल वितरण: मेलगन के माध्यम से ईमेल भेजने।

Slack, तार, रेखा, X DM

संदेश

इनबाउंड और आउटबाउंड वार्तालापों के लिए मैसेजिंग चैनल।

मेटा चैनल

संदेश

फेसबुक मैसेंजर, इंस्टाग्राम डीएम और व्हाट्सएप।

साइट इंटेलिजेंस (साइट इंटेलिजेंस)GA4, खोज कंसोल

एनालिटिक्स

एनालिटिक्स और खोज डेटा के लिएSEOसूट

वेबसाइट संवर्धन और CRM आयात

CRM

कंपनी संवर्धन और थोक ग्राहक आयात।

बाज़ार से उपलब्ध

ये पैकेज प्रकाशित किए जाते हैं, इंस्टॉल का हिस्सा नहीं है। कनेक्टर्स, मार्केटप्लेस से एक स्थापित करें और इसे लाइव कनेक्टर फ़ोल्डर में कॉपी किया जाता है जिसके बाद यह ठीक ऊपर वाले लोगों की तरह व्यवहार करता है।

Stripe

बाज़ार

भुगतान: शुल्क, ग्राहक, चालान, सदस्यता, भुगतान, विवाद।

BigCommerce

बाज़ार

ई-कॉमर्स: ऑर्डर, ग्राहक, उत्पाद, श्रेणियां, ब्रांड।

Magento2

बाज़ार

ई-कॉमर्स: ऑर्डर, ग्राहक, उत्पाद, श्रेणियां, सूची।

PrestaShop

बाज़ार

ई-कॉमर्स: ऑर्डर, ग्राहक, उत्पाद, कार्ट नियम, वाहक।

OpenCart

बाज़ार

ई-कॉमर्स: ऑर्डर, ग्राहक, उत्पाद, श्रेणियां।

अमेज़न SES, पोस्टमार्क, Resend

बाज़ार

लेनदेन ईमेल वितरण।

जिरा, रैखिक

बाज़ार

समस्या और परियोजना ट्रैकिंग।

ज़ूम, माइक्रोसॉफ्ट कैलेंडर, आउटलुक मेल

बाज़ार

बैठक, कैलेंडर और मेल।

DocuSign, अपोलो, SerpApi,Google Analytics

बाज़ार

हस्ताक्षर, संभावना, खोज और विश्लेषण डेटा।

Webflow_, Wix, Squarespace

बाज़ार

वेबसाइट प्लेटफॉर्म।

💡
कनेक्टर सूची पैकेज के रूप में चलती है प्रकाशित कर रहे हैं। अपने स्थापित करने के लिए आधिकारिक सूची कनेक्टर्स पृष्ठ है: क्या वहाँ सूचीबद्ध है कि रनटाइम खोजा गया है, और बाज़ार टैब आपको जो जोड़ सकते हैं पता चलता है।

एक कनेक्टर स्थापित करना

1
कनेक्टर्स पर जाएं

व्यवस्थापक साइडबार में कनेक्टर्स को नेविगेट करें।

2
कनेक्टर खोजें

सूची ब्राउज़ करें या खोज। कनेक्टर्स को श्रेणी के अनुसार समूहीकृत किया गया है।

3
इसे सक्षम करें

कनेक्टर पर क्लिक करें और सक्षम करें।

4
क्रेडेंशियल

आवश्यक फ़ील्ड भरें: API कुंजी, URL प्रत्येक कनेक्टर की विशिष्ट आवश्यकताओं को अपने सेटिंग्स पैनल में दस्तावेज किया गया है।

5
परीक्षण कनेक्शन

"टेस्ट कनेक्शन" पर क्लिक करें एक ग्रीन परिणाम का मतलब है कि कनेक्टर बाहरी प्लेटफॉर्म तक पहुंच सकता है। एक लाल परिणाम त्रुटि दिखाता है।

6
सुविधाओं को कॉन्फ़िगर करें

कौन से सुविधाओं को सक्षम करने के लिए चुनें: ज्ञान सिंक, वेबहुक सिंक, एआई क्रियाएं। सभी कनेक्टर सभी विशेषताओं का समर्थन नहीं करते हैं।

क्या कनेक्टर्स आपको दे

एआई संदर्भ

एआई कनेक्टर के माध्यम से ग्राहक डेटा, ऑर्डर, सदस्यता और अधिक देख सकता है। जब कोई ग्राहक चैट करता है तो AI में संदर्भ के लिए वास्तविक प्लेटफ़ॉर्म डेटा होता है।

एआई संदर्भ (कनेक्टर लेखक)

आपका कनेक्टर का संदर्भप्रोविडर टिकट-एआई को टिकट मालिक के एक रीड-ऑनली खाता सारांश खिलाता है। ग्राहक को उसके द्वारा हल करें customer_id जब ज्ञात हो, अन्यथा, टिकट ऑटो-रिप्लीज़ पर जहां ctx झंडा customer_trust_email सही है, खाता देखिए customer_email (Referteet प्रेषक) रिमोट प्लेटफॉर्म एक बार फिर से शुरू होता है /context/customer-by-email एंडपॉइंट और कनेक्टर इसे कॉल करता है। यह वही है जो AI को "कृपया लॉग इन" कहने के बजाय वास्तविक संतुलन / चालान देता है। ऑपरेटर के डेटा-क्लास टॉगल्स को सम्मान दें ()customer_sections, customer_allow_credit(in) और केवल पढ़ने के लिए सख्ती से रहना, कभी भी रहस्यों का उत्सर्जन नहीं करना।

ग्राहक निर्देशिका (कनेक्टर लेखक)

आपके कनेक्टर की पहचानप्रोविडर तीन सार्वभौमिक टिकट लुकअप फ़ीड: lookupCustomerById() (ग्राहक कार्ड) lookupCustomerServices() (उत्पाद/सेवा तालिका) और listCustomers($query,$limit): "खोज ग्राहक या प्रकार ईमेल" पिकर मूल रचना-न्यू-टिकट फॉर्म पर। रिटर्न पंक्तियों की वापसी करें {id, external_id, name, email, company, phone, platform, platform_label}. रिमोट नियम: यदि आपके ग्राहक किसी अन्य डेटाबेस या सेवा में रहते हैं, तो उन्हें अपने प्लेटफॉर्म पर ले जाएँAPI इन तरीकों के अंदर, कभी भी अन्य सिस्टम की तालिकाओं को सीधे नहीं पढ़ती (in the form of the system's table) OpsIQ डीबी वे खाली प्लेसहोल्डर हैं, यही कारण है कि स्थानीय पढ़ने के लिए एक खाली पिकर लौटाता है। अपने कॉन्फ़िगर किए गए रिमोट पथ पर जाएंAPI URL केवल एक ही-DB गिरावट के रूप में स्थानीय पढ़ने रखें।

ईमेल-पाइप टिकट, पता लगाने और रूटिंग (कनेक्टर लेखक)

जब इनबाउंड ईमेल एक मूल टिकट बन जाता है, OpsIQ कॉल करके प्रेषक का पता लगाता है lookupCustomerById(0, ['email'=>$sender]) प्रत्येक कनेक्टर में; पहला मैच "owns" ग्राहक और उसके platform स्लग पर मुहर लगाई जाती है ticket.created घटना _pipe_owner_platform (empty = Guest)WHMCS ग्राहक ईमेल में एक टिकट खोलता हैWHMCS (WHMCS नंबरिंग, एक के रूप में प्रतिबिंबित), जबकि एक अज्ञात प्रेषक एक मूल अतिथि रहता है। यदि आपका कनेक्टर अपने प्लेटफॉर्म पर मूल टिकटों को प्रतिबिंबित करता है, आपका ticket.created इस पर हैंडलर को गेट होना चाहिए: if (array_key_exists('_pipe_owner_platform',$payload) && $payload['_pipe_owner_platform'] !== '<your-slug>') return;कुंजी गैर-पाइप (चैट / मैनुअल / एआई) टिकट पर अनुपस्थित है, इसलिए पहले दर्पण। प्रति-विभाग नियंत्रण टीम और विभागों के तहत रहता है → ईमेल के माध्यम से ओपन टिकट (केवल ग्राहक / बंद)।

कार्य

एआई कनेक्टर के माध्यम से कार्य कर सकता है: ट्रस्ट लेयर के माध्यम में अपनी स्वीकृति के साथ टिकट, अद्यतन आदेश, सदस्यता रद्द करने, सब कुछ बना सकते हैं।

ज्ञान

कनेक्टर एआई के लिए प्लेटफॉर्म-विशिष्ट ज्ञान लेखों का योगदान करते हैं। Shopify कनेक्टर ई-कॉमर्स समस्या निवारण जोड़ता है; WHMCS कनेक्टर होस्टिंग ज्ञान जोड़ता है।

ज्ञान-आधारित आयात (कनेक्टर लेखक)

यदि आपका प्लेटफ़ॉर्म ज्ञान का आधार होस्ट करता है, तो उसे घोषित करें kb_capabilities ब्लॉक settings.json (type) kb_source(information) और आपका कनेक्टर सहायक केंद्र संपादक में दिखाई देता है आयात केबी → कनेक्टेड ऐप से आयात करें जब भी यह कार्यस्थान में सक्षम और कॉन्फ़िगर किया जाता है तो ड्रॉपडाउन। यह घोषणात्मक है, कार्यान्वयन करने का कोई तरीका नहीं: एक अंतर्निहित नाम adapter (zendesk सटीक-ट्री मदद केंद्र के लिए API, या crawl किसी भी KB साइट के लिए base_template जैसे https://{subdomain}.zendesk.com, जो OpsIQ अपने कनेक्टर की संग्रहीत सेटिंग्स से भरता है। क्रेडेंशियल कभी सर्वर को नहीं छोड़ते हैं; ब्राउज़र केवल कनेक्टर स्लैग भेजता है एक नए मंच का समर्थन करने के लिए, एक जोड़ें opsiq_kb_<platform>_manifest() एडाप्टर और इसे नाम से संदर्भित करता है। connectors/PLATFORM_CONNECTORS.md §5.

वेबहूक्स

कुछ कनेक्टर वास्तविक समय की घटना अधिसूचनाओं (नए आदेश, टिकट अद्यतन आदि) के लिए बाहरी मंच के साथ वेबहुक पंजीकृत करते हैं।

बिक्री ट्रैकिंग

ई-कॉमर्स कनेक्टर एट्रिब्यूशन और एनालिटिक्स के लिए बिक्री डैशबोर्ड में राजस्व डेटा को खिलाते हैं।

💡
कनेक्टर कार्यक्षेत्र-स्किप किए गए हैं। प्रत्येक कार्यस्थान में विभिन्न कनेक्टर्स को अलग-अलग क्रेडेंशियल के साथ सक्षम किया जा सकता है।WHMCS कार्यक्षेत्र का उपयोग करता हैWHMCS कनेक्टर; a Shopify कार्यक्षेत्र का उपयोग करता हैShopify कनेक्टर।
क्या मैं एक बार में कई कनेक्टर्स का उपयोग कर सकता हूँ?+

हाँ। आप कर सकते हैंShopifyआदेशों के लिए औरStripeउसी कार्यक्षेत्र में भुगतान के लिए। एआई सभी सक्षम कनेक्टर्स से डेटा को मर्ज करता है।

क्या होगा अगर मेरे प्लेटफॉर्म सूचीबद्ध नहीं है?+

REST API के साथ किसी भी प्लेटफॉर्म के लिए एक कस्टम कनेक्टर बनाने के लिए कनेक्टर बिल्डर का उपयोग करें। या सामुदायिक-निर्मित कनेक्टर्स के लिए मार्केटप्लेस की जांच करें।

क्या कनेक्टर्स स्वयं-होस्टेड OpsIQ_ के साथ काम करते हैं?+

हाँ। कनेक्टर्स बादल और स्व-होस्टेड दोनों संस्करणों में समान रूप से काम करते हैं।

कनेक्टर्स

बिक्री और बिलिंग कनेक्टर अनुबंध

हर वाणिज्य कनेक्टर एक ही प्लेटफॉर्म-न्यूट्रल इवेंट अनुबंध का उपयोग करता है। WHMCS संदर्भ कार्यान्वयन है, लेकिन सास ब्रिज, स्टोर्स, भुगतान प्रदाता, बाज़ार कनेक्टर और कनेक्टर बिल्डर पैकेज को उसी नियमों का पालन करना चाहिए।

प्रत्येक वाणिज्य कनेक्टर को प्रकाशित करना चाहिए

एक आधिकारिक लेजर

Publish realised economic events to opsiq_sales_events through CommerceEventRegistry::normalize(). Do not build a connector-specific Sales table or make core analytics query a remote platform directly.

स्थिर स्रोत पहचान

मंच कनेक्टर रजिस्ट्री स्लग है, जैसे कि whmcs, shopify या opsiq_saas. Traffic_source में जब आपूर्ति की जाती है तो सत्यापित अधिग्रहण का प्रयास होता है; अन्यथा इस तरह के स्लग को गिरने पर इस्तेमाल किया जाता है। स्टोर पहचानकर्ता लेबल प्रदर्शित नहीं करते हैं। OpsIQ यूआई में दोस्ताना कनेक्टर नाम को हल करता है।

निष्क्रियता

घटना_आईडी को निश्चित रूप से निर्धारित किया जाना चाहिए। कम से कम एक immutable order_ref, चालान_reef या सदस्यता_reff इसलिए webhook retries और backfills डुप्लिकेट बिक्री बनाने के बजाय उसी कार्यक्रम को अद्यतन करते हैं। service_reph प्रभावित उत्पाद या सेवा उदाहरण की पहचान करता है जब कोई मौजूद होता है।

स्रोत समय-समय पर

घटित_at भुगतान या आर्थिक घटना समय है जो स्रोत प्लेटफॉर्म द्वारा रिपोर्ट किया गया है। आयात के समय के साथ ऐतिहासिक भुगतान तिथियों को कभी भी प्रतिस्थापित नहीं किया जाता है।

मुद्रा और FX

स्रोत राशि और एक वैध तीन-अक्षीय आईएसओ मुद्रा भेजें। यदि कनेक्टर सेटिंग सक्षम हो जाती है, तो यह संभव है कि स्रोत की मात्रा और एक मान्य तीन-पत्रिका ISO मुद्रा को भेजें। OpsIQ FX रूपांतरण, रिपोर्टिंग वर्कस्पेस रिपोर्टिंग मुद्रा में परिवर्तित होती है; अन्यथा रिपोर्ट स्टोर या बिलिंग प्लेटफॉर्म मुद्रा को संरक्षित करती है। कनेक्टर कोड को एक रिपोर्टिंग मुद्रा या विनिमय दर को हार्डकोड नहीं करना चाहिए।

साक्ष्य आधारित जीवन चक्र

नए, नवीकरण, उन्नयन, वापसी, क्रेडिट या अज्ञात का उपयोग करें। चालान कारण, सदस्यता या सेवा संबंध, लाइन-item प्रकार, या किसी अन्य आधिकारिक स्रोत क्षेत्र से वर्गीकृत करें। उसी ग्राहक द्वारा एक दोहराई गई खरीद स्वचालित रूप से नवीनीकरण नहीं है।

बिक्री सीमा

केवल सकारात्मक भुगतान नए, नवीकरण, उन्नयन या वैध रूप से अज्ञात वाणिज्य रसीद बिक्री और रूपांतरणों में संबंधित है। रिफंड को धनवापसी और शुद्ध प्रतिशोध विश्लेषण द्वारा रिपोर्ट किया जाता है। खाता क्रेडिट, वॉलेट टॉप-अप, टोकन टॉप-up और ऐड फंड बिलिंग-लेजर इवेंट्स रहते हैं और कभी भी बिक्री, रूपांतरण, ऑर्डर वॉल्यूम या बिक्री राजस्व के रूप में गिनती नहीं करते हैं।

CRM अलग रहता है

CRM सौदे पाइपलाइन और सौदा गतिविधि का प्रतिनिधित्व करते हैं। वे वाणिज्य-प्लेटफॉर्म बिक्री नहीं होते जब तक कि एक कनेक्टेड बिलिंग या स्टोर प्लेटफॉर्म इस अनुबंध के माध्यम से वास्तविक भुगतान आदेश या चालान का उत्सर्जन नहीं करता है।

हर भुगतान संकेत पंक्ति को खोलता है

जब प्लेटफॉर्म एक भुगतान (इनवॉइस भुगतान, ऑर्डर भुगतान, लेनदेन जोड़ा गया, भुगतान पूरा) की कई पुष्टि भेजता है तो उनमें से कोई भी ग्राहक को बिक्री के लिए भुगतान करने की पुष्टि करता है, तो वह खाता खोलने की प्रक्रिया में सक्षम हो सकता है; बिक्री फिंगरप्रिंट एक पंक्ति में भाई बहनों को ढहने देता है।

अनुसूचित संशोधन (Contract 2.3)

A connector whose platform can list completed sales declares sales_reconciliation and implements SalesReconciliationInterface::reconcileSales(). Core re-reads the platform list on a schedule (once per workspace interval, bounded, cursored) through the same idempotent writer, so a dropped webhook cannot lose revenue. Conformance fails a package that can list history but does not reconcile. The Connector Builder derives the capability from the sales backfill action.

धोखा दिया

opsiq_conversions और डैशबोर्ड सारांश अनुकूलता अनुमान हैं जो लेजर से पुनर्निर्माण किया जाता है। कनेक्टर्स को सत्य के वित्तीय स्रोत के रूप में एक प्रक्षेपण का इलाज नहीं करना चाहिए। अनुबंध संशोधन अंतर्निहित बिलिंग इतिहास को हटाने के बिना व्युत्पन्न पंक्तियों को फिर से मूल्यांकन कर सकते हैं।

रिमोट प्लेटफॉर्म सीमा

एक रिमोट कनेक्टर ने अपने प्लेटफॉर्म को कॉन्फ़िगर किए गए प्रमाणित API_ के माध्यम से पढ़ा। यह कभी भी उसी सर्वर डेटाबेस टेबल पर निर्भर नहीं होना चाहिए। सटीक प्रमाणीकरण डोमेन site_key को कनेक्टर रजिस्ट्री द्वारा आपूर्ति की जाती है और इसे प्रत्येक लेजर लिखने और बैकफिल पर लागू किया जाना चाहिए। कार्यक्षेत्र या समूह का दायरा केवल पठन-समय एकत्रीकरण होता है; इसे कभी संग्रहीत घटना स्वामित्व को व्यापक रूप से विस्तारित नहीं करना चाहिए।

Canonical pay-event उदाहरण

सामान्यीकृत वाणिज्य कार्यक्रम
{
  "event_id": "acme_store:invoice:INV-1042",
  "event_name": "invoice.paid",
  "platform": "acme_store",
  "order_ref": "ORDER-884",
  "invoice_ref": "INV-1042",
  "subscription_ref": "SUB-28",
  "service_ref": "SERVICE-91",
  "status": "paid",
  "lifecycle_type": "renewal",
  "amount": 129.00,
  "currency": "USD",
  "traffic_source": "acme_store",
  "occurred_at": "2026-07-23 08:30:27"
}

कनेक्टर बिल्डर मैपिंग

जब सेल्स एंड बिलिंग को कनेक्टर बिल्डर, मैप राशि, मुद्रा, स्रोत स्थिति और स्रोत तिथि में सक्षम किया जाता है, साथ ही कम से कम एक ऑर्डर, चालान या सदस्यता संदर्भ। मानचित्र lifecycle_type जब तक कि जब बिक्री और बिलिंग संबंधकर्ता बिल्डर, नक्शा राशि, करेंसी, स्रोत की स्थिति और सोर्स तारीख में सक्षम हो जाती है, तो इसके अलावा कम एक आदेश, इनवॉइस या सब्सक्रिप्शन संदर्भ होता है। API आधिकारिक जीवनचक्र सबूत को उजागर करता है। उत्पन्न SalesIngest एक ही वाणिज्य के माध्यम से हर पंक्ति में गुजरता है EventRegistry Normalizer का उपयोग अंतर्निहित और बाज़ार कनेक्टर्स द्वारा किया जाता है।

⚠️
क्रेडिट और ऐड फंड्स को जानबूझकर बिलिंग इतिहास, ग्राहक संतुलन संदर्भ और लेजर विश्लेषण के लिए बनाए रखा जाता है। उन्हें बिक्री से बाहर निकालने से उन्हें हटा नहीं जाता है; यह केवल उन्हें वाणिज्य प्रदर्शन में शामिल होने से रोकता है।

Lifecycle_type, तय करता है कि क्या हो जाता है?CRMसौदा

lifecycle_type एक एनालिटिक्स लेबल नहीं है। OpsIQ यह तय करने के लिए पढ़ता है कि क्या बिक्री CRM पाइपलाइन में प्रवेश करती है, इसलिए हर बिक्री कनेक्टर एक पाइप लाइन निर्णय कर रहा है कि यह क्या करना है या नहीं।

नया

एक बंद-वॉन सौदा (नए कारोबार) खोलता है।

नवीनीकरण, उन्नयन

पुनरावर्ती राजस्व के रूप में रिकॉर्ड किया गया। कोई नया व्यवसाय सौदा नहीं - नवीकरण एक अलग संभावना वक्र पर परिवर्तित और उन्हें मिश्रण दोनों पूर्वानुमानों को भ्रष्ट करता है।

धनवापसी, क्रेडिट

कभी भी किसी भी मोड में कोई सौदा नहीं खुलता। ग्राहक को वापस लौटाया गया पैसा जीत नहीं है।

omitted / अज्ञात

केवल राजस्व। बिक्री दर्ज की गई है लेकिन कभी पाइप लाइन तक नहीं पहुंचती है।

एक बिक्री, एक लेजर पंक्ति: पहचान SALE है, घटना नहीं

पर मैच नहीं event_id और खुद को डालें। event_id is platform:eventName:externalId"क्या हम पहले से ही इस डिलीवरी की प्रक्रिया करते हैं" का जवाब देते हैं और "हमने पहले ही इस बिक्री को रिकॉर्ड किया है" का उत्तर नहीं दे सकते। एक ऐसा मंच जो दो बार भुगतान करने की घोषणा करता है - जैसा कि हम पहले ही यह वितरण प्रक्रिया कर रहे हैं" और "इस बिक्री को पहले ही दर्ज कर चुके हैं" के उत्तर देने में सक्षम नहीं हो सकता है। invoice.paid फिर से payment.completed - दो ids को मिंट करता है और दो बार उसी पैसे को जमीन देता है, जिसमें कुछ भी नहीं मिलाया जाता है और चेतावनी देने के लिए कुछ नहीं।

💡
संदर्भ इंस्टॉल पर स्थापित: प्रत्येक में तीन लेजर पंक्तियों के साथ छह चालान, तीन अलग-अलग ईवेंट_आईडी योजनाओं का उपयोग करके तीन कोड पथों से। 0.00 इसलिए कोई कुल गलत नहीं देखा, और बाद में किसी भी प्रक्रिया ने वास्तविक राशि को बहाल करने के लिए तीन बार एक भुगतान की गणना की थी।

इसके बजाय साझा लिखने को बुलाओ। कोर बिक्री की व्यावसायिक पहचान (Corry) को computes करता है (Cerchérérática)sale_fingerprint), उस पर एक मौजूदा पंक्ति से मेल खाता है, मूल को संरक्षित करता है event_id अद्यतन पर और वास्तविक स्तंभों के लिए फिल्टर:

बिक्री के लिए एकमात्र समर्थित तरीका
\OpsIQ\Commerce\CommerceEventContract::upsertSaleRow('opsiq_sales_events', $row);
एक ही बिक्री, कई घटनाओं

चालान भुगतान, भुगतान.पूरी और बिक्री.एक इनवॉइस के लिए पूर्ण एक फिंगरप्रिंट साझा करें और एक पंक्ति अद्यतन करें।

रिफंड अलग रहते हैं

धन निकालने से अलग तथ्य होता है। चालान की वापसी अपनी पहचान रखती है, इसलिए यह कभी भी भुगतान को ओवरराइट नहीं कर सकता है।

कोई संदर्भ नहीं, फिंगरप्रिंट नहीं

कोई ऑर्डर, चालान, सदस्यता या सेवा संदर्भ लेने वाली पंक्ति बिल्कुल भी फिंगरप्रिंट नहीं हो सकती है, इसलिए दो असंबंधित पंक्तियों को कभी भी सिर्फ इसलिए नहीं मिला क्योंकि दोनों एक आईडी याद कर रहे हैं।

संदर्भ पूर्वता

चालान_ref, फिर order_reef, फिर सदस्यता_reff, फिर service_reph — सबसे मजबूत पहले, इसलिए एक बिक्री स्थिर पहचान रखती है।

हमेशा के लिए, एक बिक्री को फिर से लिखना

एक वापसी, रद्दीकरण या संशोधन है नई दिनांकित प्रवेशकभी भी पंक्ति को सही नहीं करते। एक वापसी में भुगतान लिखना सुव्यवस्थित दिखता है और तीन चीजें एक बार में तोड़ देता है:

यह सकल राजस्व को नष्ट कर देता है

सकल बिक्री और वापसी दर अलग होने से रोकती है - और रिफंड रेट मीट्रिक है जो सूचना देने के लिए उलटा मौजूद है।

यह गलत अवधि में उलटा किताब करता है

जनवरी की बिक्री का मार्च रिफंड मार्च को कम होना चाहिए। जनवरी की पंक्ति को फिर से लिखना बंद अवधि को चुपचाप आराम देता है।

यह लेखा परीक्षा का निशान टूट जाता है

एक यात्री प्रविष्टि रिकॉर्ड जो समय में एक बिंदु पर हुआ था। सुधार विपरीत प्रवेश हैं, जो कि डबल प्रवेश वाली बहीखाता पांच शतकों के लिए काम करती है।

इसलिए कनेक्टर इसे लागू करने के बजाय उलटी हुई रिपोर्ट करता है: वापसी refunded_at और refund_amount बिक्री के अपने जीवन चक्र के साथ, और कॉलर को रिफंड होने पर अपनी खुद की पंक्ति के रूप में वापस लिखने दें। दोनों कभी नहीं बोल सकते क्योंकि बिक्री फिंगरप्रिंट एक बिक्री से वापसी अलग हो जाता है।

💡
समान सिद्धांत राशि पर लागू होता है। "मरम्मत" को मंच के वर्तमान मूल्य में संग्रहीत राशि नहीं करना चाहिए: वैध रूप से दर्ज किए गए खाते क्रेडिट से बसे हुए चालान0भुगतान समय पर, और जब ग्राहक ऊपर उठता है तो पैसा पहले ही दर्ज किया गया था। चेहरे के मूल्य को बहाल करने से इसे दो बार गिना जाता है।

वर्गीकरण अनुबंध

OpsIQ जीवनचक्र का फैसला करता है एक बार, in \OpsIQ\Commerce\SaleLifecycleClassifierA कनेक्टर केवल वही घोषित करता है जो अपने खुद के मंच शब्दों का मतलब क्या है, कार्यान्वयन करके \OpsIQ\Connectors\SalesLifecycleConnectorInterface::salesLifecycleVocabulary()फिर से तर्क को पुनः कार्यान्वित न करें।

घोषणापत्र, निर्णय को प्रत्यायोजित करें
public static function salesLifecycleVocabulary(): array
{
    return [
        'credit'             => ['addfunds'],                  // adds balance, sells nothing
        'upgrade'            => ['upgrade'],                   // resizes an existing commitment
        'recurring'          => ['hosting', 'domainrenew'],    // continues something owned
        'acquisition'        => ['domainregister'],            // obtains something new
        'recurring_prefixes' => ['domainaddon'],               // families that grow over releases
    ];
}

$lifecycle = \OpsIQ\Commerce\SaleLifecycleClassifier::classify([
    'explicit'    => $platformSaidSo,     // wins outright when present
    'line_types'  => $types,              // your platform's own line/item types
    'vocabulary'  => self::salesLifecycleVocabulary(),
    'is_order'    => $cameFromANewOrder,
    'is_refunded' => $moneyWentBack,
]);
💡
प्राथमिकता तय और साझा की जाती है: स्पष्ट, फिर वापस / रद्द कर दिया गया, फिर क्रेडिट, फिर अपग्रेड किया गया, तो is_order, फिर आवर्ती, फिर अधिग्रहण, फिर अज्ञात। उन्नयन ऑर्डर चेक के ऊपर बैठता है क्योंकि प्लेटफॉर्म उन्नयन के लिए एक आदेश भी बढ़ाते हैं; आवर्ती इसके नीचे बैठ जाता है क्योंकि नई सदस्यता का पहला चालान एक आवर्ती लाइन प्रकार रखता है। एक अस्पष्ट गैर-ऑर्डर पर क्लासिफायर को राजस्व में उतारने और पाइपलाइन से दूर करने के लिए बेचता है।

मंच के पूरे शब्दावली को घोषित करना

यह असफलता है कि सबसे ज्यादा खर्च होता है और कम से कम गलत दिखता है।WHMCS कनेक्टर मिलान ['hosting','addon','domain'] — एक सूची जो पूरी तरह से पढ़ती है। WHMCS _\'s not emit a नंगे Domain वास्तविक डोमेन लाइनों के लिए प्रकार; यह उत्सर्जन करता है DomainRegister, DomainRenew, DomainTransfer, PromoHosting, PromoDomain, DomainAddon* और Upgradeउनमें से सभी सूची में गिर गए थे। unknown: 1,288 चालान, तीन साल, कोई त्रुटि और लॉग लाइन नहीं।

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

💡
एक व्यावहारिक जांच: गणना कैसे अपनी खुद की पंक्तियों में से कई अज्ञात पर जमीन। एक स्वस्थ बिक्री कनेक्टर लगभग सब कुछ वर्गीकृत करता है। अज्ञात की एक स्थिर धारा लगभग कभी डेटा नहीं है - यह एक शब्दावली है जो कनेक्टर ने कभी पढ़ा नहीं सीखा है।

आयातित इतिहास की मरम्मत

प्रत्येक भेज दिया OpsIQ बिक्री कनेक्टर इस को लागू करता है — WHMCS, Shopify, WooCommerce, osCommerce, SaaS Bridge, Stripe, BigCommerce and Magento 2. Treat it as expected, not optional: a customer imports their old records on day one, so a classification fix that cannot reach that history only helps people who signed up afterwards. Implement \OpsIQ\Connectors\SalesLifecycleRepairInterface::reclassifySale() जो भी प्रति रिकॉर्ड का उपयोग करने से पहले ही आपके कनेक्टर को प्राप्त होता है। tools/crm_backfill_sales_lifecycle.php फिर अपने कनेक्टर के आयातित इतिहास की मरम्मत प्रति-कनेक्टर कोड के साथ: डिफ़ॉल्ट रूप से ड्राइ रन, लिखने से पहले पंक्ति गिनती को वापस ले जाता है और उसे सत्यापित करता है, जो एक undo लेजर के माध्यम से बदला जा सकता है, और यह कभी भी जवाब देने में विफल नहीं होता है।

💡
यदि आपका कनेक्टर रिकॉर्ड को फिर से पढ़ नहीं सकता है - एक वेबहुक-केवल कनेक्टर नहीं कर सकते हैं - विधि को ठूंठ न करें। अज्ञात लौटने वाला एक स्टब कोई कार्यान्वयन से भी बदतर है: बैकफिल अच्छी पंक्तियों को अवर्गीकृत और रिपोर्ट सफलता के रूप में फिर से लिखेगा। केवल शब्दावली इंटरफ़ेस लागू करें।
💡
विस्तृत पैकेज संदर्भ कनेक्टर्स / CONNECTOR_EVENTS. md और कनेक्टर/PLATFORM_CONNECTOORS. MD में स्व-होस्टेड सोर्स वितरण में उपलब्ध रहते हैं।
कनेक्टर्स

यात्रा कार्यक्रम अनुबंध

जर्नी इंटेलिजेंस ब्राउज़र विजेट, बिल्ट-इन कनेक्टर, सास ब्रिज, मार्केटप्लेस पैकेज और कनेक्टर बिल्डर आउटपुट से एक प्लेटफॉर्म-न्यूट्रल इवेंट लिफाफे को स्वीकार करता है। प्लेटफ़ॉर्म-विशिष्ट नामों का अनुवाद किनारे पर किया जाता है; फ़नल, एट्रिब्यूशन और साइट इंटेलिजेंस कोड केवल कैनोनिकल घटनाओं का उपभोग करता है ।

अलगाव और विश्वास सीमा

Exact सहकर्मी डोमेन कुंजी

प्रत्येक घटना अधिकृत डोमेन site_key के लिए बाध्य है। एक कनेक्टर को उस कुंजी को कनेक्टर रजिस्ट्री या उसके प्रमाणीकरण वाले समापन बिंदु से लेना चाहिए, कभी भी किसी अविश्वासित अनुरोध निकाय से नहीं। डोमेन अलग रिकॉर्ड रखते हैं; एक डोमेन समूह केवल एक पठनीय समय का कुल होता है।

Idempotent पहचान

कनेक्टर्स के लिए event_id की आवश्यकता होती है और उसी मूल घटना के लिए निश्चित होना चाहिए। Retries, webhooks और backfills एक यात्रा या बिक्री को डुप्लिकेट करने के बजाय एक कार्यक्रम अद्यतन करते हैं।

मूल प्लस canonical नाम

सबूत और समस्या निवारण के लिए Source_event_name को संरक्षित करें, फिर इसे event_name_canonical में मैप करें। कोर एनालिटिक्स को कभी कनेक्टर स्लग पर शाखा नहीं करनी चाहिए।

सर्वर सबूत जीत

ब्राउज़र अवलोकन एक यात्रा शुरू या अनुमान लगा सकता है। प्रमाणीकरणित कनेक्टर घटनाएं साइनअप, लॉगिन, भुगतान, खरीद, नवीकरण, वापसी और अन्य टर्मिनल परिणामों की पुष्टि करती हैं। एक वैध साइट-बाउंड कोरिलेशन टोकन सबसे मजबूत जुड़ना है; एक अमान्य टोकन को खारिज कर दिया जाता है और इसकी एम्बेडेड आईडी पर भरोसा नहीं किया जाता है।

गोपनीयता

केवल घोषणा की यात्रा के लिए पहचानकर्ता और फ़ील्ड आवश्यक हैं। सहमति, मास्किंग और रिटेंशन सेटिंग्स का सम्मान करें। कभी भी संपत्ति में क्रेडेंशियल, कार्ड डेटा, प्रमाणीकरण रहस्य या निजी संदेश निकायों को नहीं रखते।

कैनोनिकल लिफाफे

यात्रा कार्यक्रम लिफाफे
{
  "contract_version": 1,
  "event_id": "myshop:order:884:paid",
  "source": "myshop",
  "source_event_name": "order.paid",
  "event_name_canonical": "commerce.purchase.completed",
  "site_key": "exact_domain_site_key",
  "occurred_at": "2026-07-23T08:30:27Z",
  "visitor_id": "optional-browser-visitor",
  "session_id": "optional-browser-session",
  "journey_id": "optional-journey",
  "attempt_id": "optional-attempt",
  "correlation_token": "optional-signed-token",
  "customer_ref": "C-42",
  "user_email": "[email protected]",
  "object_type": "order",
  "object_ref": "884",
  "order_ref": "884",
  "outcome": "succeeded",
  "evidence_level": "server_confirmed",
  "confidence": 1,
  "properties": {"amount": 129, "currency": "USD"}
}

कैनोनिकल वर्गीकरण

सबसे संकीर्ण सत्य नाम का उपयोग करें। समर्थित परिवारों में सगाई पृष्ठ / सीटीए कार्यक्रम शामिल हैं; खाता साइनअप, लॉगिन, एमएफए और पासवर्ड रीसेट; लीड और फॉर्म चरण; उत्पाद, गाड़ी, चेकआउट, भुगतान, खरीद, सदस्यता, नवीकरण और वापसी; पदोन्नति छापें और रूपांतरण; मदद-केंद्रित, चैट और टिकट की घटनाओं; सुरक्षा की घटनाओं, और नामस्थानीय कस्टम इवेंट्स। विशिष्ट टर्मिनल नामों को विशेष रूप से कहा जाता है: account.signup.succeeded, account.login.succeeded, lead.form.succeeded, commerce.payment.succeeded, commerce.purchase.completed, commerce.subscription.renewed और commerce.refund.completed.

ब्राउज़र की पुष्टि, पुष्टि और परित्याग

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

योगदान और राजस्व

विशेषता एक वैध हस्ताक्षरित सहसंबंध टोकन पसंद करती है, फिर एक सटीक यात्रा, प्रयास, सत्र या वाणिज्य संदर्भ, फिर सहमति प्राप्त पहचान ग्राफ और अंत में एक सीमित व्यवहारिक मैच। अनमैटेड बिक्री अप्रतिभूत रहती है। मल्टी-टच लेजर वजन कुल 1होना चाहिए। साइट इंटेलिजेंस ने इस ledger को राजस्व दिया; क्रेडिट्स, वॉलेट टॉप-अप, टोकन टॉप- अप और ऐड फंड कभी रूपांतरण नहीं खरीद रहे हैं। कनेक्टर FX व्यवहार उस कनेक्टर सेटिंग द्वारा नियंत्रित रहता है।

⚠️
विशेषता मॉडल, लुकबैक विंडो, डायरेक्ट-ट्रैफिक हैंडलिंग, न्यूनतम आत्मविश्वास, परित्यक्त टाइमआउट और फ़नल परिभाषा यूआई नीति हैं। कनेक्टर कोड को हार्डकोड नहीं करना चाहिए।

कनेक्टर प्रकट और बिल्डर

कनेक्टर यात्रा घोषणा
{
  "capabilities": ["sales", "journey_events"],
  "journey_capabilities": {
    "journey_events": true,
    "payments": true,
    "subscriptions": false,
    "correlation_token": false,
    "backfill": true
  },
  "journey_event_mappings": [{
    "source_event_name": "order.paid",
    "event_name_canonical": "commerce.purchase.completed",
    "field_map": {
      "order_ref": "order.id",
      "customer_ref": "order.customer_id",
      "amount": "order.total",
      "currency": "order.currency",
      "occurred_at": "order.paid_at"
    }
  }]
}

केवल पैकेज को वास्तव में वितरित करने की क्षमता को घोषित करें। कनेक्टर बिल्डर मैपिंग को मान्य करता है और पहले-पार्टी पैकेजों द्वारा उपयोग किए जाने वाले समान प्लेटफॉर्म-न्यूट्रल एडाप्टर उत्पन्न करता है। जर्नी ingestion एक घटना या उत्पन्न प्रामाणिक एकीकरण समापन बिंदु के माध्यम से 100 का एक सीमित बैच स्वीकार करता है ।

💡
वाणिज्य के नेतृत्व में सत्य का वित्तीय स्रोत रहता है। वाणिज्य-से-जर्नी पुल सर्वर की पुष्टि परिणामों को प्रकाशित करता है और मौजूदा विचारधारा वाले लेजर अप्सर्ट के बाद पुनर्संभव अग्रभाग प्रकाशित करता हैं, इसलिए एक भुगतान कभी दो बिक्री नहीं हो जाता है।
कनेक्टर्स

कैसे एआई क्रियाएं काम करती हैं

प्रत्येक कनेक्टर ने कार्रवाई का एक सेट घोषित किया: एआई बाहरी प्लेटफॉर्म के माध्यम से क्या कर सकता है। एक्शन "एआई कहते हैं" और "ए आई करता है" के बीच पुल हैं।

एआई क्रिया
कैसे एआई क्रियाएं काम करती हैंएक ग्राहक अनुरोध जिसे डिलीट-टाइप एक्शन कार्ड के नाम से जाना जाता है, फिर एक चेकलिस्ट: अनुमति की जांच, आप पुष्टि करते हैं, API बुलाना।कैसे एआई क्रियाएं काम करती हैंकार्यस्थल"मेरे सदस्यता रद्द करें"ग्राहकएआईcancel_subscriptiondeleteआवश्यक पुष्टिपैराम: सदस्यता_id (संदर्भ से)कार्रवाई के प्रकारreadलिखनाdeleteअनुमति और भूमिका की जांचआप कार्रवाई की पुष्टि करते हैंAPI कहा जाता है · परिणाम रिपोर्ट1DECLAREDप्रत्येक कनेक्टर कार्रवाई को सूचीबद्ध करता है2GATEDअनुमति + पुष्टि3THEN RUNAPI कॉल, परिणाम वापस
एक अनुरोध एक घोषित कार्रवाई (टाइप्ड रीड / राइट / डिलीट) बन जाता है जो अनुमति-चेक की गई, पुष्टि की जाती है, फिर निष्पादित और रिपोर्ट की जाती हैं।

एक्शन lifecycle

1
ग्राहक कुछ के लिए पूछता है

"मेरे सदस्यता रद्द करें" एआई की पहचान करता है, जिसके लिए "cancel_subscription" कार्रवाई की आवश्यकता होती है।

2
एआई चेक अनुमति

क्या यह कार्रवाई की अनुमति है? क्या यह सक्षम है?

3
एआई पैरामीटर इकट्ठा करता है

कार्रवाई को सदस्यता ID की आवश्यकता होती है। एआई इसे ग्राहक संदर्भ से देखता है या ग्राहक से पूछता है।

4
पुष्टिकरण

विनाशकारी या उच्च प्रभाव कार्रवाई के लिए, एआई निष्पादन से पहले पुष्टि के लिए पूछती है।

5
निष्पादन

The action of the बाह्य platform API_

6
परिणाम

एआई ग्राहक को परिणाम की रिपोर्ट करता है।

कार्य प्रकार

क्रियाएँ पढ़ें

बिना किसी चीज़ को बदलने के डेटा को देखें उदाहरण: list_orders, get_customer. सुरक्षित, कोई पुष्टि की जरूरत नहीं है।

कार्रवाई लिखें

डेटा को बनाने या संशोधित करने के उदाहरण: build_ticket, update_order. May need पुष्टिकरण.

कार्रवाई को हटा दें

उदाहरण निकालें: रद्द_subscription. हमेशा पुष्टि की आवश्यकता होती है।

HTTP क्रियाएँ

कार्यों में घोषणा की।json, सामान्य API निश्चित रूप से परिभाषित कॉल करता है।

क्षमता टैग

क्रियाओं में वैकल्पिक प्रति-क्रिया "क्षमता" क्षेत्र।json, एक कनेक्टर-न्यूट्रल क्लास टैग (उदाहरण के लिए टिकट पढ़ने/देखने के लिए "tickets", टिकट खोलने के लिए 'ticket_create')।OpsIQ हर कनेक्टर में समान रूप से पूरे वर्ग के गेट्स: जब ऑपरेटर एआई टिकट जागरूकता बंद हो जाता है तो टिकट एआई से बाहर निकलता है, और टिकट निर्माण के लिए आरक्षित हैOpsIQ'अपने संगीतकार' (इसलिए एक कनेक्टर का निर्माण उपकरण इसे डुप्लिकेट नहीं कर सकता)। इसे घोषित करें और आपका कनेक्टर अनुरूप है।OpsIQ कभी भी अपने एक्शन नाम को जानने की जरूरत नहीं है। कनेक्टर बिल्डर ने इसे प्रति कार्य क्षमता ड्रॉपडाउन के रूप में उजागर किया।

कोड क्रियाएँ

PHP में कनेक्टर वर्ग में कार्यान्वित किया गया। तर्क पर पूर्ण नियंत्रण।

उदाहरण के लिए कार्रवाई परिभाषा
{
  "lookup_order": {
    "label": "Look up an order",
    "description": "Find an order by ID or email",
    "method": "GET",
    "endpoint": "/admin/api/2024-01/orders.json",
    "params": {
      "order_id": { "type": "string", "label": "Order ID" },
      "email":    { "type": "email",  "label": "Customer email" }
    }
  }
}
कनेक्टर्स

एक कनेक्टर बनाएँ

कनेक्टर बिल्डर आपको किसी भी प्लेटफ़ॉर्म के लिए एक पूर्ण कनेक्टर बनाने की अनुमति देता है, जिसमें REST API_ शामिल हैं। बुनियादी कनेक्टर्स के लिए कोई कोडिंग आवश्यक नहीं है।

एक कनेक्टर बनाएँ
कनेक्टर बिल्डरएक गैर-कोड कनेक्टर फ़ॉर्म: नाम, प्रमाणीकरण प्रकार, आधार URL, एक क्रिया मैपिंग, एक पास टेस्ट और एक प्रकाशित बटन.कनेक्टर बिल्डरकार्यस्थलकनेक्टर बिल्डरनाममेरा मंचप्रमाणीकरणOAuth 2.0(PKCE)बेस URLhttps://api.example.com/v2कार्रवाईGET/customers→ list_customersटेस्ट पासपैकेज कनेक्टर1NO-CODEनाम, auth, आधार URL2ANY APIकुंजी, बियरर, बेसिक, HMAC, OAuth3PUBLISHInto /connectors/<slug>/
किसी भी REST पर बिल्डर को इंगित करें API Auth, base URL और कार्रवाई, इसे परीक्षण करें और एक काम करने वाले कनेक्टर को प्रकाशित करें। कोई कोड आवश्यक नहीं है।

पूर्ण प्रदाता API कवरेज

प्रत्येक उत्पन्न API कनेक्टर अलग-अलग मूल को उजागर कर सकता हैAPI पढ़ना और मूल API क्रियाएं लिखें क्यूरेट किए गए कार्यों को प्राथमिकता दी गई है; बाद में मूल कार्य कवर प्रदाता समापन बिंदुओं को जोड़ा गया। रनटाइम आरईटी, ग्राफक्यूएल का समर्थन करता है, JSON, प्रपत्र, XML, कच्चे और बहुभागी निकायों, बाध्य पानिनेशन,API कार्यक्षेत्र कनेक्टर सेटिंग्स के अंदर क्रेडेंशियल रखते हुए -version headers और idempotency।

⚠️
मार्केटप्लेस पैकेज से सोर्स किए जाते हैं /marketplace_connectors साथ ही बंडल भी /connectors. पैकेज संस्करण को बढ़ाएं, अनुबंध और प्रलेखन को फिर से उत्पन्न करें, अनुरूपता परीक्षण चलाएं, फिर नए मार्केटप्लेस संस्करण को पुनः हस्ताक्षरित और प्रकाशित करें।

कनेक्टर बिल्डर विज़ार्ड

विज़ार्ड में छह चरण हैं, जो शीर्ष पर टैब के रूप में दिखाए गए हैं। आप स्वतंत्र रूप से उनके बीच कूद सकते हैं और वे अपने ऊपर छलांग लगा सकते हैं। ड्राफ्ट सहेजें पाद लेख में किसी भी बिंदु पर अपना काम रखता है।

1
पहचान और प्रोफ़ाइल

नाम, स्लग, विवरण और आइकन, फिर एक अनुबंध प्रोफ़ाइल चुनें: मानक API, वाणिज्य, हेल्डेस्क, मेलबॉक्स, साइट इंटेलिजेंस, सास ब्रिज, स्थानीय पीएचपी प्लेटफार्म, या No API_ जब प्लेटफॉर्म कॉल करने योग्य नहीं होता है और OpsIQ एक पुल स्थापित करने के लिए है। प्रोफ़ाइल एक पूर्ण क्षमता शुरू बिंदु का चयन करता है; आप अभी भी व्यक्तिगत क्षमताओं को समायोजित कर सकते हैं।

2
प्रमाणीकरण

प्रमाणीकरण पैटर्न चुनें, प्लेटफ़ॉर्म अपने क्षेत्रों का उपयोग करता है और उसे भरता है। यहां वास्तविक परीक्षण क्रेडेंशियल भी दर्ज करें: उनका इस्तेमाल अगले चरण में कनेक्शन टेस्ट के लिए किया जाता है, और वे आपके प्रकाशन के बाद संग्रहीत नहीं होते हैं।

3
टेस्ट

प्रवेश करें API आधार URL और एक सत्यापित समापन बिंदु, फिर कदम से क्रेडेंशियल का उपयोग करके लाइव कनेक्शन परीक्षण चलाएं 2इससे पहले कि आप किसी भी कार्रवाई को परिभाषित करते हैं, अगर दूसरे या आधार URL गलत है, आपके द्वारा बाद में लिखने वाली हर कार्रवाई उसी कारण असफल होगी और आप गलत बात को खारिज कर देंगे।

4
कार्य

प्रत्येक ऑपरेशन को परिभाषित करें: नाम, HTTP विधि, समापन बिंदु पथ, पैरामीटर, प्रतिक्रिया क्षेत्र मानचित्रण और विश्वसनीयता सेटिंग नीचे वर्णित है। आप इस कदम से लाइव API के खिलाफ व्यक्तिगत रूप से प्रत्येक कार्रवाई चला सकते हैं।

5
ट्रिगर्स

अपने प्लेटफॉर्म को वेबहुक इवेंट्स में मैप करेंOpsIQ घटनाओं, तो चीजें जो आपके प्लेटफॉर्म पर होती हैं, में काम शुरू कर सकते हैंOpsIQ.

6
समीक्षा, उद्यम अनुबंध और प्रकाशन

Review every action, trigger and capability. Enterprise profiles expose the generated queue, worker, hook, migration, ticket-mirror, attachment and conflict contract before publishing. Publishing writes the package into /connectors/<slug>/.

⚠️
प्रकाशन की आवश्यकता नहीं है। केवल आइज़र्ड फॉर्म को मान्य करने और उन चेतावनीओं का उत्सर्जन करने के लिए प्रकाशित करें जो ब्लॉक नहीं करते हैं। पूर्ण सूट - प्रकटन, क्षमता फ़ाइलें, पहचान टोकन अनुबंध और पुल-निप्पेट चेक - जब आप ड्राई रन दबाते हैं तो चलाता है, फिर से इंस्टॉल समय पर।

क्या प्रकाशन करता है कि फॉर्म आपको नहीं दिखाता है

जनरेटर के पांच व्यवहार आश्चर्य लोगों को नहीं। कोई भी एक बग है; उनमें से सभी आपको दोपहर का खर्च करेंगे यदि आप उन्हें दुर्घटना से मिलते हैं।

एक सवाल यह है कि गद्दी का फैसला करता है: क्या मंच एक API_ की सेवा करता है?

इसे चरण में उत्तर दें1डेटा-एक्सेस मोड (या "प्लैटफ़ॉर्म विथ नो" को चुनकरAPI" प्रोफ़ाइल"।APIमोड घोषणा native_api and emits the <slug>_api_call passthrough. Bridge mode declares platform_bridge बजाय और STRIPS native_api भले ही एक पुरानी कल्पना ने इसे किया, तो प्रकट होना, उत्पन्न वर्ग और विशेषज्ञता डॉक्स असहमत नहीं हो सकते। ai_brain_aware किसी भी तरह से जोड़ा जाता है।

SILENCE MEANS "इसमें एक हैAPI"

बिल्डर आपके उत्तर का अनुसरण करता है; यह स्वयं के लिए सत्य को बाहर नहीं काम करता है, और कुछ भी कहा जाता है जब डिफ़ॉल्टAPIमोड। तो एक no-API"Platform with no.API"प्रोफ़ाइल, सेट डेटा एक्सेस टू ब्रिज, या टिक platform_bridge; any one of the three is enough and they cannot contradict each other. Skip the question on a platform with no API and you are back to the old failure: a dead <slug>_api_call the model keeps reaching for. This used to be stamped unconditionally, so the trap is now escapable rather than gone.

कनेक्शन परीक्षण डिफॉल्ट्स को GET /ping

यदि आप सत्यापित पथ खाली छोड़ते हैं, तो बिल्डर लिखते हैं /ping उत्पन्न कनेक्टर में और प्रोफ़ाइल में।json'परीक्षण ब्लॉक' लगभग कोई वास्तविक मंच उस मार्ग पर काम नहीं करता है, इसलिए टेस्ट कनेक्शन HTTP के साथ विफल हो जाता है404प्रत्येक इंस्टॉल पर और एक पैकेज दोष के बजाय ग्राहक गलत विन्यास की तरह पढ़ा जाता है। एक सत्यापित पथ सेट करें कि आपका प्लेटफ़ॉर्म वास्तव में जवाब देता है। पुल कनेक्टर के लिए, इसे अपने स्वयं के निदान समापन बिंदु पर इंगित करें - यह पूरी श्रृंखला को एक कॉल में साबित करता है: पुल तैनात किया गया है, कुंजी मैच और पुल डेटाबेस तक पहुंच सकता है।

फिर से प्रकाशित अभी भी अपने हाथ की आदतों को ओवरराइट करता है

क्षमताओं अब डेटा-एक्सेस उत्तर का पालन करते हैं, इसलिए वे अब बहाव नहीं करते। बाकी सब कुछ अभी भी उत्पन्न हुआ है: संपादित करें ContextProvider. php या किसी अन्य उत्सर्जित फ़ाइल और अगली प्रकाशन इसे बदल देता है। एक संरक्षित अपवाद पुल फ़ाइल है - विज़ार्ड केवल अपने मार्कर को ले जाने वाले पुल को ओवरराइट करता है, इसलिए एक हाथ से लिखने वाला अकेले छोड़ दिया जाता है।

Republishing नष्ट करने वाली फ़ाइलों

Un-tick एक क्षमता और अगले प्रकाशन अपने प्रदाता फ़ाइल को हटा देता है। किसी भी उत्पन्न फ़ाइल में हाथ से संपादित करें - ContextProvider.php सब के ऊपर - चेतावनी के बिना अतिरिक् त हैं। पहले अनुकूलन की प्रतिलिपि बनाएँ, या हटाने के द्वारा पैकेज का स्वामित्व लें।opsiq- बिल्डर।json(जिसके बाद जादूगर अब इसका प्रबंधन नहीं करेगा)।

release_status हमेशा पूर्वावलोकन है

विज़ार्ड के पास इसके लिए कोई नियंत्रण नहीं है। एक पैकेज का मतलब था कि जहाज को उत्पादन में रिलीज_स्टैटस होना चाहिए जो हाथ से सेटिंग्स में बदल जाता है।json- और यह संपादित हस्ताक्षर को तोड़ देता है, इसलिए बाद में इस्तीफा दे दिया जाता है।

हस्ताक्षर अखंडता साबित करता है, मूल नहीं

बिल्डर पैकेज इस इंस्टॉल की अपनी सममित कुंजी के साथ हस्ताक्षर किए गए हैं। यह छेड़छाड़ का पता लगाता है। यह साबित नहीं करता कि कौन पैकेज लिखा था, और एक ही कुंजी रखने वाला कोई भी स्थापित उसी हस्ताक्षर का उत्पादन कर सकता है। स्थानीय रूप से साइन किए गए पैकेज को स्वयं-सिग्न किया गया था।

स्लग टकराव केवल एक पेड़ में जांच की जाती है

प्रकाशन ने एक स्लग को मना कर दिया जो पहले से ही नीचे मौजूद है/connectors/.यह नहीं दिखता/marketplace_connectors/,इसलिए एक ही स्लग के साथ हाथ से अधिकृत प्रथम-पार्टी पैकेज को छायांकित किया जा सकता है।

💡
विज़ार्ड के पास ज्ञान-लेखन चरण नहीं है। एक ज्ञान फ़ाइल जिसमें आपका प्लेटफ़ॉर्म वर्णन किया गया है, वह आपके लिए परिभाषित नाम, विवरण, auth प्रकार और क्रियाओं से उत्पन्न होता है, और कनेक्टर सक्षम होने पर इसे AI में लोड किया जाता है।

एक कार्रवाई को परिभाषित करना (चरण 4)

प्रत्येक कार्रवाई की निम्नलिखित सेटिंग्स होती है। केवल पहले चार आवश्यक हैं; बाकी नियंत्रण जो इसे चला सकते हैं और कैसे सावधानीपूर्वक।

एक्शन कुंजी और लेबल

कुंजी वह है जो एआई कॉल करता है; लेबल वह है जिसे एक मानव पढ़ा जाता है। कुंजी को अपने कनेक्टर स्लग के साथ स्वचालित रूप से नाम दिया गया है, इसलिए दो कनेक्टरों में बिना किसी संबंध के "list_order" हो सकते हैं।

HTTP विधि

सेट, पोस्ट, पुट, PATCH या DELETE।

URL पथ

आधार पर उपस्थित URL उपयोग {name} उदाहरण के लिए, प्लेसहोल्डर के लिए /opportunities/{id}/stage

पैरामीटर

प्रत्येक पैरामीटर के लिए आप यह भी चुनते हैं कि यह कहाँ जाता है: शरीर, पथ, क्वेरी या हेडरएक पथ पैरामीटर एक भरता है {placeholder} एक क्वेरी पैरामीटर के लिए परिशिष्ट किया जाता है URL.

प्रतिक्रिया मानचित्रण

कहा जाता है कि कौन से क्षेत्र में JSON प्रतिक्रिया का मतलब क्या है, जो ग्राहक का नाम है, यह ईमेल है, जिसका क्रम कुल है। यही कारण है कि AI ने अपने प्लेटफॉर्म के डेटा को इसके बजाय समझने की अनुमति दी है।

इसका उपयोग कौन कर सकता है

आपकी टीम (admin AI), हस्ताक्षरित ग्राहकों (ग्राहक चैट) दोनों, या लेखन सहायक। ग्राहक कार्रवाई केवल हस्ताक्षरित ग्राहक के लिए चलाती है और पहचान क्षेत्र उन्हें स्वचालित रूप से बंद कर दिया जाता है ताकि एक ग्राहक दूसरे के बारे में नहीं पूछ सके।

पुष्टि की आवश्यकता है

एक व्यक्ति को कार्रवाई रन से पहले स्वीकृति करनी चाहिए।

विनाशकारी

इस कार्रवाई को हटाने या बदलने की स्थिति के रूप में चिह्नित करता है। इससे पहले कि वह दौड़ता है चेतावनी देने के लिए इस्तेमाल किया जाता था।

आवश्यक अनुमति

व्यवस्थापक को एआई के लिए इस अनुमति को अपनी ओर से कार्रवाई चलाने के लिए रखना चाहिए; पूर्ण प्रशासक हमेशा पास होते हैं। से चुनें manage_integrations, manage_general, manage_billing, manage_sales_bridge, manage_knowledge, manage_appearance, manage_behavior, manage_permissions, manage_dangerzone, reply_to_chats, escalate_to_ticket, send_agent_emailकिसी भी तरह के व्यवस्थापक का अर्थ नहीं है।

विवरण / AI संकेत

वैकल्पिक, लेकिन लिखने योग्य. यह एआई को बताता है कि इस क्रिया के लिए कब पहुँचना है, उदाहरण के लिए "यह प्रयोग करें जब प्रशासक एक सौदा चरण बदलने के लिए पूछता है". एक अच्छा संकेत ऐसी क्रिया के बीच अंतर है जो एआई सही ढंग से उपयोग करता है और वह इसे अनदेखा करता है.

क्षमता

वैकल्पिक वर्ग टैग, या तो टिकट (एक टिकट पढ़ाया जाता है या तलाशना) या टिकट_create (एक टास्क खुलता है). टांग की अनुमति देता है OpsIQ पूरी कक्षा को एक बार में गेट करें, उदाहरण के लिए, जब कोई ऑपरेटर AI टिकट जागरूकता बंद कर देता है तो टिकट पढ़ने को छुपाता है।

सूची पथ

वैकल्पिक। उन समापन बिंदुओं के लिए जो एक सूची वापस लौटते हैं, बिंदीदार पथ सरणी में, उदाहरण के लिए डेटा या data. items

त्रुटि पथ

वैकल्पिक। एक शरीर क्षेत्र जिसका उपस्थिति का मतलब है कि कॉल विफल हो गया, उदाहरण के लिए त्रुटि.message, उपयोगी के लिए APIs HTTP वापस लौटे 200 असफलता पर।

इसे चलाएं

प्रत्येक कार्रवाई लाइव के खिलाफ चलाया जा सकता है API इस कदम से, इसलिए आप किसी और का उपयोग करने से पहले गलत पथ या फ़ील्ड नाम को ठीक कर सकते हैं।

⚠️
कार्य डिफ़ॉल्ट रूप से संरक्षित हैं। POST, PUT, PATCH या DELETE का उपयोग करके कोई भी कार्रवाई प्रबंधन_integration अनुमति की आवश्यकता शुरू हो जाती है। और इससे पहले कि यह रनों से मानव पुष्टि होती है। यह जानबूझकर है। एआई को अपने डेटा को असुरक्षित बदलने की बजाय एक नई लिखने वाली कार्रवाई बंद हो जाती है। आप दोनों को एक्शन पर बदल सकते हैं, लेकिन उन्हें जानबूझकर बदल सकते है।
💡
ग्राहक चैट से कॉल करने के लिए, एक क्रिया को सिर्फ पढ़ने योग्य होना चाहिए: दोनों पुष्टि की आवश्यकता है और विनाशकारी चिह्नित नहीं छोड़ें. एक क्रिया जो कि एक ग्राहक ट्रिगर कर सकता है जो स्थिति भी बदलता है वह कुछ ऐसा नहीं है जिसे विज़ार्ड आपको दुर्घटनावश भेजने देगा.

वेबहुक प्राप्त करना (चरण 5)

ट्रिगर्स स्टेप आपको एक वेबहुक देता है URL अपने प्लेटफॉर्म के साथ रजिस्टर करने के लिए, और उस पर आने वाले हर अनुरोध को सत्यापित करता है।

हस्ताक्षरित हैडर

अपने प्लेटफॉर्म के साथ शीर्षलेखित संकेत, उदाहरण के लिए X-Hub-Signature-256.

हस्ताक्षर एल्गोरिथ्म

HMAC-SHA1, HMAC SHA256 या HMAC SCHA512।

हस्ताक्षर योजना

सरल, एक सादे हेक्स या base64 पाचन। याStripe-शैली, t=..., v1=... प्रारूप द्वारा इस्तेमाल कियाStripeऔर कई प्लेटफॉर्म जो इसे कॉपी करते हैं।

संकेतन

वैकल्पिक। कुछ प्लेटफॉर्म पाचन को निर्धारित करते हैं, उदाहरण के लिए sha256 =. यदि आपका नहीं है तो इसे खाली छोड़ दें।

कार्यक्रम के नक्शे

प्रत्येक घटना को मैप करें आपका प्लेटफ़ॉर्म ऑन-लाइन पर भेजता है OpsIQ घटना यह उठाना चाहिए।

वेबहुक को ऑटो-पंजीकरण

यदि आपके पास एक मंच है API अपने स्वयं के वेबहुक को प्रबंधित करने के लिए, आपको पंजीकृत नहीं करना पड़ता है URL हाथ से खुला इस वेबहुक को सक्षम करने के लिए ऑटो-रजिस्टर और इसे दो कार्यों पर इंगित करते हैं जिन्हें आपने चरण में परिभाषित किया है 4:

वेबहुक कार्रवाई

जब एक व्यवस्थापक कनेक्टर को सक्षम बनाता है तो बुला लिया। आप पैरामीटर नाम देते हैं जो URL, वैकल्पिक रूप से वह होता है जो घटना सूची में रहता है और प्रतिक्रिया में पथ जिसमें नया वेबहुक आईडी रखता है।

Delicate-webhook कार्रवाई

जब कनेक्टर को अक्षम किया जाता है, तो आईडी का उपयोग ऊपर कब्जा कर लिया गया, इसलिए कनेक्टर को अलग करने से भी आपके प्लेटफॉर्म को मृत समापन बिंदु पर भेज दिया जाता है।

आप जिस क्षमता पर स्विच कर सकते हैं, वह क्षमताएं आपको चालू कर सकती हैं

प्रोफाइल और क्षमताओं को कनेक्टर अनुबंध 2.2_ द्वारा परिभाषित किया गया है। उत्पन्न और घोषित क्षमताओं का सीधे उत्सर्जन होता है; उद्यम क्षमता एक उत्पन्न करती है EnterpriseExtension.php रनटाइम लाइफसाइकिल वायरिंग के साथ मचान।

कार्य

एआई आपके प्लेटफॉर्म पर चल सकता है: सूची ऑर्डर, ग्राहक को ढूंढें, वापसी जारी करें।

ट्रिगर्स

अपने प्लेटफॉर्म से वेबहुक प्राप्त करें और उन्हें अपनी जगह में बदल दें OpsIQ कार्यक्रम।

एआई टिकट

एआई ट्रेज और उत्तर Copilot टिकट पर जो आपके प्लेटफॉर्म पर रहते हैं। उस समापन बिंदु को चुनें जो अपने जवाबों के साथ एक टिकट लौटाता है और फ़ील्ड का नक्शा देता है; OpsIQ इसके माध्यम से धागे को पढ़ता है।

मेलबॉक्स और संपर्क

अपने समयरेखा पर ग्राहक के मेल को दिखाएं, एक सौदे से भेजें और अपनी पता पुस्तिका को अपनी एड्रेस बुक में सिंक करें।OpsIQ CRM.

ग्राहक आयात

अपनी ग्राहक सूची के माध्यम से पृष्ठ करें और प्रत्येक को एक के रूप में आयात करें OpsIQ संपर्क करें। यह वही है जो आयात बटन चलाता है।

संदर्भ

अपने प्लेटफॉर्म से हर AI वार्तालाप में लाइव डेटा को पुश करें।

पहचान

अपने ग्राहकों में से कौन-सा आगंतुक है, और उनके प्रोफ़ाइल को दिखाने और टिकट पर खरीद करने का काम करता है।

बिक्री और बिलिंग

राजस्व घटनाओं और MRR आंकड़े को OpsIQ डैशबोर्ड में खिलाएं।

इनबाउंड टिकट

अपने प्लेटफॉर्म को वेबहुक द्वारा वितरित करने के लिए टिकट और ईमेल करें OpsIQ धागे का समर्थन करें।

आउटबाउंड उत्तर

पोस्ट OpsIQ कर्मचारी मंच पर वापस लौट आते हैं जो धागा उत्पन्न होता है।

उपयोगकर्ता सिंक करें

अपने स्टाफ खाते में आयात करें OpsIQ व्यवस्थापक उपयोगकर्ता।

सिंक विभाग

अपने समर्थन विभागों को OpsIQ_ में आयात करें।

प्रोमो लक्ष्य और उत्पाद फ़ीड

Let प्रमोशन स्टूडियो आप किसी व्यक्ति के बारे में जानने वाले तथ्यों पर लक्ष्य रखता है और अपने असली उत्पादों को बढ़ावा देने के अंदर प्रस्तुत करता है।

सर्वे स्टूडियो प्रदाता

सर्वर सत्यापित सर्वेक्षण तथ्यों को उजागर करें, एक समर्पित सर्वेProvider. php के माध्यम से चर और बाध्य CRM आउटरीच प्राप्तकर्ता पृष्ठों से बच निकलें।

Native IP अवरोधन

कब OpsIQ एक ब्लॉक IP अपने प्लेटफॉर्म के अपने ब्लॉक को कॉल करें API इसलिए ब्लॉक भी लागू होता है।

सुरक्षा कार्यक्रम

अवरुद्ध प्राप्त करना-IP से खतरा संकेत OpsIQ.

एआई के लिए प्लेटफॉर्म ज्ञान

प्रत्येक कनेक्टर आप जहाजों को एक संक्षिप्त संदर्भ बनाते हैं, जिसमें वर्णन किया गया है कि आपका प्लेटफ़ॉर्म क्या है और इसके कार्य क्या करते हैं। OpsIQ Admin AI ने इसे पढ़ा जब भी आपका कनेक्टर सक्षम हो जाता है तो यह आपके प्लेटफॉर्म को सिर्फ एक्शन नामों की सूची देखने के बजाय समझता है। यह आपके लिए उत्पन्न होता है।

API गद्दी

आपका कनेक्टर हमेशा एक सामान्य उद्देश्य वाला कॉल प्राप्त करता है ताकि एआई आपके द्वारा किये गए किसी प्रकार की कार्रवाई को परिभाषित न करने के लिए एक समापन बिंदु तक पहुंच सके। टाइप किए गए कार्यों का उपयोग करें जहां आप कर सकते हैं; यह बचे हुए हैच है।

कैनोनिकल कनेक्टर अनुबंध 2.2 संदर्भ

अनुबंध संस्करण: 2.4 · 57 capabilities · 8 profiles.

कनेक्टर प्रोफाइल

standard_api · Standard REST or GraphQL API

Actions, triggers, OAuth/API-key authentication and optional context/identity mappings. Capabilities: actions, triggers, native_api, ai_brain_aware.

commerce · Commerce and billing platform

Customers, orders, sales, subscriptions, billing, promotions and journey events. Capabilities: actions, triggers, journey_events, sales, sales_reconciliation, billing, sync_orders, customer_import, survey, promo_audience, promo_feed, context, identity.

helpdesk · Helpdesk and ticket platform

Inbound tickets, outbound replies/notes, customer roster, AI triage and bidirectional ticket mirroring. Capabilities: actions, triggers, inbound_ticket, outbound_reply, outbound_note, ai_tickets, customer_import, survey, context, identity, ticket_mirror, ticket_merge, attachment_bridge, conflict_resolution.

mailbox · Mailbox and email provider

Inbound/outbound mail, address-book sync, multi-account OAuth and CRM timeline integration. Capabilities: inbound_email, outbound_email, mailbox, email_mailbox, oauth, actions, customer_import, ai_reply.

site_intelligence · Site Intelligence data provider

SEO, analytics, search-console, local-search or monitoring provider with scheduled sync. Capabilities: actions, triggers, site_intelligence, seo, scheduled_workers, durable_queue.

saas_bridge · SaaS bridge

Deep two-way SaaS integration with customers, billing, identity, tickets, webhooks, queues, attachments and workers. Capabilities: actions, triggers, webhook, context, identity, customer_import, survey, journey_events, sales, sales_reconciliation, billing, inbound_ticket, outbound_reply, ticket_mirror, ticket_merge, attachment_bridge, durable_queue, scheduled_workers, database_migrations, conflict_resolution, enterprise_hooks, admin_assets.

no_api_bridge · Platform with no API (OpsIQ installs a bridge)

For a self-hosted PHP application that serves no callable API. The wizard generates a signed bridge file the operator drops into their own site, plus the typed actions that read and write through it. Capabilities: actions, platform_bridge, ai_brain_aware.

local_php_platform · Local PHP platform bridge

WHMCS-style local hooks, database access, two-way tickets, billing/customer sync, queues and migrations. Capabilities: actions, native_data, context, identity, customer_import, survey, journey_events, sales, sales_reconciliation, billing, inbound_ticket, outbound_reply, ticket_mirror, ticket_merge, attachment_bridge, durable_queue, scheduled_workers, database_migrations, conflict_resolution, enterprise_hooks, admin_assets.

कैनोनिकल क्षमताओं

क्रिया

Universal actions. Capability version: 1.0. Mode: generated. Runtime methods: registerActions. Package files: actions.json.

ट्रिगर

Inbound event triggers. Capability version: 1.0. Mode: generated. Runtime methods: handleWebhook. Package files: actions.json.

वेबहुक

Inbound webhook endpoint. Capability version: 1.0. Mode: generated. Runtime methods: handleWebhook.

journey_events

Universal Journey Event Contract mapping. Capability version: 1.1. Mode: generated. Interfaces: OpsIQ\Connectors\JourneyEventConnectorInterface. Package files: settings.json.

संदर्भ

AI context providers. Capability version: 1.0. Mode: generated. Runtime methods: contextProviders. Interfaces: OpsIQ\Connectors\ContextConnectorInterface. Package files: ContextProvider.php.

guest_lookup

Guest record lookup without login (reference + proof match). Capability version: 1.0. Mode: generated. Runtime methods: contextProviders. Interfaces: OpsIQ\Connectors\ContextConnectorInterface. Package files: GuestLookupProvider.php.

पहचान

Admin/customer identity providers. Capability version: 1.0. Mode: generated. Runtime methods: identityProviders, detectAdmin, detectCustomer. Interfaces: OpsIQ\Connectors\IdentityConnectorInterface. Package files: IdentityProvider.php.

sales

Sales and revenue ingestion. Capability version: 1.2. Mode: generated. Interfaces: OpsIQ\Connectors\CommerceConnectorInterface. Package files: SalesIngest.php.

sales_reconciliation

Scheduled sales-ledger reconciliation against the platform. Capability version: 1.0. Mode: generated. Runtime methods: reconcileSales. Interfaces: OpsIQ\Connectors\SalesReconciliationInterface.

बिलिंग

Cross-platform billing snapshot. Capability version: 1.0. Mode: generated. Runtime methods: billingProviders. Interfaces: OpsIQ\Connectors\BillingConnectorInterface. Package files: BillingProvider.php.

payments

Payment-provider capability bus. Capability version: 1.0. Mode: generated. Runtime methods: paymentsCapabilities.

वाणिज्य

Sell through chat: canonical commerce role map. Capability version: 1.0. Mode: declarative. Package files: commerce_roles.json.

inbound_ticket

External ticket/email to OpsIQ ticket ingestion. Capability version: 1.0. Mode: generated. Runtime methods: handleWebhook. Interfaces: OpsIQ\Connectors\TicketMirrorConnectorInterface.

outbound_reply

Reply mirroring to the external platform. Capability version: 1.0. Mode: generated. Runtime methods: pushReply. Interfaces: OpsIQ\Connectors\TicketMirrorConnectorInterface.

ticket_merge

Ticket merges applied on the platform (native merge or private transcript note). Capability version: 1.0. Mode: generated. Runtime methods: mergeTickets. Interfaces: OpsIQ\Connectors\TicketMergeConnectorInterface.

sync_users

Staff/customer synchronisation. Capability version: 2.0. Mode: generated. Runtime methods: listCustomers. Interfaces: OpsIQ\Connectors\CustomerImportConnectorInterface. Package files: SyncImport.php.

sync_departments

Department/team synchronisation. Capability version: 1.0. Mode: generated. Package files: SyncImport.php.

sync_orders

Order roster and order-event synchronisation. Capability version: 1.0. Mode: declarative. Interfaces: OpsIQ\Connectors\CommerceConnectorInterface.

sync_products

Product, catalog and inventory synchronisation. Capability version: 1.0. Mode: declarative. Runtime methods: registerActions.

sync_projects

Project, issue and workspace synchronisation. Capability version: 1.0. Mode: declarative. Runtime methods: registerActions.

customer_import

CRM customer roster import. Capability version: 2.0. Mode: generated. Runtime methods: listCustomers, backfillChunk. Interfaces: OpsIQ\Connectors\CustomerImportConnectorInterface.

security_events

Receive and emit security events. Capability version: 1.1. Mode: generated. Runtime methods: securityCapabilities, syncBlockedIp, removeBlockedIp. Interfaces: OpsIQ\Connectors\SecuritySyncConnectorInterface.

security_native_block

Native remote IP/CIDR blocking. Capability version: 1.0. Mode: generated. Runtime methods: syncBlockedIp, removeBlockedIp. Interfaces: OpsIQ\Connectors\SecuritySyncConnectorInterface.

survey

Survey identity, audiences, recipients and variables. Capability version: 1.0. Mode: generated. Runtime methods: surveyAudienceCatalog, surveyAudienceFacts, surveyVariableCatalog, surveyVariables, surveyRecipientPage. Interfaces: OpsIQ\Connectors\SurveyConnectorInterface. Package files: SurveyProvider.php.

reply_feedback

Ticket reply feedback mirror (platform reply ratings land via the portal write method). Capability version: 1.0. Mode: generated. Runtime methods: replyFeedbackCatalog, pullReplyFeedback. Interfaces: OpsIQ\Connectors\ReplyFeedbackConnectorInterface.

promo_audience

Promotion targeting facts. Capability version: 1.0. Mode: generated. Runtime methods: subscribers. Interfaces: OpsIQ\Connectors\PromotionConnectorInterface.

promo_feed

Promotion product/content feed. Capability version: 1.0. Mode: generated. Interfaces: OpsIQ\Connectors\PromotionConnectorInterface.

email_mailbox

Mailbox bus, outbound mail and address-book sync. Capability version: 1.0. Mode: generated. Runtime methods: emailAccounts. Interfaces: OpsIQ\Connectors\MailboxConnectorInterface.

inbound_email

Receive inbound email. Capability version: 1.0. Mode: declarative. Runtime methods: poll, handleWebhook. Interfaces: OpsIQ\Connectors\MailboxConnectorInterface.

outbound_email

Send outbound email. Capability version: 1.0. Mode: declarative. Runtime methods: registerActions. Interfaces: OpsIQ\Connectors\MailboxConnectorInterface.

mailbox

Mailbox connector. Capability version: 1.0. Mode: declarative. Runtime methods: emailAccounts. Interfaces: OpsIQ\Connectors\MailboxConnectorInterface.

ai_tickets

AI triage and Inbox Copilot for remote tickets. Capability version: 1.0. Mode: generated. Runtime methods: loadTriageContext. Package files: AiOperations.php.

ai_reply

AI-assisted reply drafting. Capability version: 1.0. Mode: declarative. Runtime methods: registerActions.

ai_brain_aware

Connector expertise supplied to Admin AI. Capability version: 1.0. Mode: generated. Package files: ai_expertise_admin.md, ai_api_reference.md.

native_api

Native API passthrough. Capability version: 1.0. Mode: generated. Runtime methods: registerActions.

platform_bridge

Signed platform bridge (for platforms with no API). Capability version: 1.0. Mode: generated. Runtime methods: registerActions. Package files: bridge/.

native_data

Local database/platform data adapter. Capability version: 1.0. Mode: declarative. Runtime methods: nativeDataProviders. Interfaces: OpsIQ\Connectors\NativeDataConnectorInterface.

chrong

CRM capability provider (calendar, enrichment, telephony or customer data). Capability version: 1.0. Mode: declarative. Runtime methods: crmCapabilities. Interfaces: OpsIQ\Connectors\CrmCapabilityConnectorInterface.

block_registry

Remote sender block-registry synchronisation. Capability version: 1.0. Mode: declarative. Runtime methods: blockSender, unblockSender, isSenderBlocked. Interfaces: OpsIQ\Platform\BlockRegistryInterface.

inbound_comment

Inbound comment ingestion. Capability version: 1.0. Mode: declarative. Runtime methods: handleWebhook.

outbound_note

Outbound private note. Capability version: 1.0. Mode: declarative. Runtime methods: registerActions.

outbound_notification

Outbound notification delivery. Capability version: 1.0. Mode: declarative. Runtime methods: registerActions.

oauth

OAuth 2.0 authorisation. Capability version: 1.0. Mode: generated.

reviews

Review ingestion and response. Capability version: 1.0. Mode: declarative. Runtime methods: registerActions.

स्थानीय

Local search/location data. Capability version: 1.0. Mode: declarative. Runtime methods: registerActions.

सू

SEO data and actions. Capability version: 1.0. Mode: declarative. Runtime methods: registerActions.

site_intelligence

Site Intelligence provider. Capability version: 1.0. Mode: declarative. Runtime methods: siteIntelligenceProviders. Interfaces: OpsIQ\Connectors\SiteIntelligenceConnectorInterface.

एनालिटिक्स

Analytics data provider. Capability version: 1.0. Mode: declarative. Runtime methods: analyticsCapabilities.

comms

Communications/video-meeting provider. Capability version: 1.0. Mode: declarative. Runtime methods: commsCapabilities.

admin_assets

Connector-provided admin/account/public browser assets. Capability version: 1.0. Mode: generated. Runtime methods: adminAssets. Interfaces: OpsIQ\Connectors\AdminAssetConnectorInterface.

enterprise_hooks

Platform-native hooks and lifecycle callbacks. Capability version: 1.0. Mode: extension. Package files: EnterpriseExtension.php.

durable_queue

Durable outbox/inbox queue and retry policy. Capability version: 2.0. Mode: extension. Package files: EnterpriseExtension.php.

ticket_mirror

Bidirectional ticket mirror with conflict handling. Capability version: 2.0. Mode: extension. Interfaces: OpsIQ\Connectors\TicketMirrorConnectorInterface. Package files: EnterpriseExtension.php.

attachment_bridge

Attachment upload/download transfer. Capability version: 2.0. Mode: extension. Package files: EnterpriseExtension.php.

database_migrations

Connector-owned schema migrations. Capability version: 1.0. Mode: extension. Package files: EnterpriseExtension.php.

scheduled_workers

Connector-owned scheduled/background workers. Capability version: 1.0. Mode: extension. Package files: EnterpriseExtension.php.

conflict_resolution

Two-way sync conflict strategy. Capability version: 1.0. Mode: extension. Package files: EnterpriseExtension.php.

⚠️
बिल्डर विनिर्देश आधिकारिक स्रोत बने रहते हैं। उत्पन्न विस्तार बिंदुओं में प्लेटफ़ॉर्म-विशिष्ट व्यवसाय नियम रखो; पैकेज लाइफसाइकल, कतार, श्रमिक, माइग्रेशन और अनुरूपता परीक्षण बिल्डर-प्रबंधित रहे।

प्रत्येक कार्रवाई पर विश्वसनीयता सेटिंग्स

रिट्री

एक असफल कॉल को फिर से पाने के लिए कितने समय तक, एक बैकऑफ के साथ जो प्रत्येक प्रयास को दोगुना करता है। केवल टाइमआउट्स, 429s और 5xx त्रुटियों को पुनर्प्राप्त किया जाता है; 4x आपके अनुरोध की गलती है और इसे दोहराते हुए सिर्फ़ अपनी दर सीमा जला देगा।

दर सीमा

इस क्रिया के लिए प्रति मिनट की छत, इसलिए एक व्यस्त ट्रिगर आपके प्लेटफॉर्म को हथौड़ा नहीं दे सकता है। इसे बिना किसी सीमा के 0 पर छोड़ दें।

टाइमआउट

जब तक आप अपने प्लेटफॉर्म को छोड़ने से पहले इंतजार कर रहे हैं।

पुष्टिकरण

एक आदमी को कार्रवाई रन से पहले स्वीकार करने की आवश्यकता है। इसे किसी भी विनाशकारी के लिए उपयोग करें।

प्रमाणीकरण प्रकार

चरण 2 सात पैटर्न प्रदान करता है। एक ऐसा चुनें जो आपके प्लेटफॉर्म से मेल खाता है API प्रलेखन, जनरेटर इसके लिए सही HTTP क्लाइंट का उत्सर्जन करता है।

API हेडर में कुंजी

एक स्थिर कुंजी को एक निश्चित हेडर के रूप में भेजा जाता है, उदाहरण के लिए X-API-कुंजी। आप हेडर का नाम देते हैं और लेबल व्यवस्थापक फॉर्म को दिखाना चाहिए। यह केवल एक शीर्षलेख के रूप में कुंजी भेजता है; यदि आपकाAPI इसके बजाय एक क्वेरी पैरामीटर के रूप में कुंजी की उम्मीद है, कस्टम हेडर या पूर्ण-कोड कनेक्टर का उपयोग करें।

भालू टोकन

Token sent as Authorization: Bearer <token>. Common for modern APIs.

मूल auth

उपयोगकर्ता नाम और पासवर्ड, base64-encoded में प्राधिकरण शीर्षलेखक. आप लेबल दोनों फ़ील्ड व्यवस्थापक फॉर्म पर प्रदर्शित चुनें।

HMAC- हस्ताक्षरित

एक सार्वजनिक कुंजी प्लस एक गुप्त, अनुरोध निकाय हस्ताक्षरित के साथ। आप हस्ताक्षर हेडर, प्रमुख हैडर और टाइमस्टैम्प हेडर को अपने प्लेटफॉर्म की उम्मीद करते हैं।

OAuth 2.0(client credentials)

सर्वर-टू-सर्वर, कोई उपयोगकर्ता बातचीत और कोई पुनर्निर्देशित नहीं है। आप टोकन देते हैं URL और एक वैकल्पिक गुंजाइश; व्यवस्थापक एक ग्राहक आईडी और रहस्य की आपूर्ति करता है। इसका उपयोग तब किया जाता है जब आपका प्लेटफ़ॉर्म किसी व्यक्ति के बजाय किसी एप्लिकेशन को क्रेडेंशियल्स से संबंधित होता है।

OAuth 2.0 (कनेक्ट बटन)

PKCE के साथ प्राधिकरण-कोड प्रवाह, के लिएStripe, Shopify, SlackQuickBooks-style apps. आप प्राधिकरण देनाURLToken, tokenURLऔर गुंजाइश प्रकाशन के बाद, व्यवस्थापक क्लिक कनेक्टर पर कनेक्ट करें, अपने प्लेटफॉर्म पर अधिकृत करता है, औरOpsIQरीफ्रेश टोकन को स्टोर करता है और मांग पर टोकन एक्सेस करता है। पुनर्निर्देशितURIअपने आप में पंजीकरण करने के लिएOAuthएप्लिकेशन को कनेक्टर के सेटिंग पेज पर दिखाया गया है।

कस्टम हेडर

एक स्वतंत्र स्वरूप JSON ऊपर दिए गए पैटर्न के लिए शीर्षलेख का नक्शा, उदाहरण के लिए {"X-API-कुंजी{api_key}"X-Tenant":{tenant_id} प्रत्येक प्लेसहोल्डर एडमिन फॉर्म पर एक फील्ड बन जाता है।

💡
PKCE केवल कनेक्ट-बटन प्रवाह पर लागू होता है। क्लाइंट क्रेडेंशियल प्रवाह में कोई रीडायरेक्ट नहीं होता और कोई उपयोगकर्ता कदम नहीं होता, इसलिए PKSE उस पर लागू नहीं होता है

पगिनेशन शैली

ऑफसेट

ऑफसेट और सीमा मापदंडों का उपयोग करता है। उदाहरण:? ऑफ़सेट =100===50.

पृष्ठ

पृष्ठ संख्या का प्रयोग करें. उदाहरण: ? page=3To make a way of the page.50.

कर्सर

पिछले जवाब से कर्सर टोकन का उपयोग करता है।

लिंक हेडर

rel="next" के साथ लिंक प्रतिक्रिया शीर्षलेख का उपयोग करता है।

उन्नत: कस्टम PHP कोड

कनेक्टर.php एक उदाहरण returns. यह एक नामित वर्ग है कि घोषणा नहीं करता हैOpsIQके लिए शिकार। नीचे दिए गए विधि नाम हैं कनेक्टरइंटरफेस की आवश्यकता है; एक गलत हो रही लोड पर घातक नहीं है, चेतावनी नहीं है।

कनेक्टर. php - वास्तविक अनुबंध, न्यूनतम और रनेबल
<?php
/* connectors/myplatform/connector.php */
declare(strict_types=1);

use OpsIQ\Connectors\AbstractConnector;

require_once __DIR__ . '/Client.php';

return new class extends AbstractConnector {

    /* ── the three identity methods. NOT identifier()/label(). ── */
    public function slug(): string        { return 'myplatform'; }
    public function name(): string        { return 'My Platform'; }
    public function description(): string { return 'Orders and customers from My Platform.'; }

    public function capabilities(): array { return ['actions', 'context']; }

    public function settingsSchema(): array
    {
        $f = __DIR__ . '/settings.json';
        if (!is_file($f)) return [];
        $j = json_decode((string)file_get_contents($f), true);
        return is_array($j['settings'] ?? null) ? $j['settings'] : [];
    }

    /* ── NOTE THE ARGUMENT. testConnection() with no parameter is a fatal. ── */
    public function testConnection(array $settings): array
    {
        try {
            $resp = \OpsIQ\Connectors\MyPlatform\Client::callWithSettings($settings, 'GET', '/me', [], []);
            $code = (int)($resp['http_code'] ?? 0);
            return ($code >= 200 && $code < 300)
                ? ['success' => true,  'info'  => ['message' => 'Connection OK', 'http_code' => $code]]
                : ['success' => false, 'error' => "Verify endpoint returned HTTP $code"];
        } catch (\Throwable $e) {
            return ['success' => false, 'error' => 'Test failed: ' . $e->getMessage()];
        }
    }

    public function onEnable(array $settings): array  { return ['success' => true]; }
    public function onDisable(array $settings): array { return ['success' => true]; }

    public function handleWebhook(array $payload, array $headers, array $settings): array
    {
        return ['success' => true, 'note' => 'No triggers declared.'];
    }

    /* Inherited from AbstractConnector: reads actions.json for you.
     * Override only to ADD actions the manifest cannot express. */
    public function registerActions(array $settings): array
    {
        return parent::registerActions($settings);
    }
};
⚠️
Three things that fatal at class load rather than failing gracefully. The identity methods are slug(), name() and description() — not identifier() and label(). testConnection() TAKES an array of settings; a no-argument version is an incompatible signature. And there is no $this->http() or runAction() on AbstractConnector — HTTP goes through your own Client.php or through an action declared in actions.json.

देशी टिकट प्रणाली में मिरर टिकट

जब आपका प्लेटफॉर्म टिकट का मालिक हो जाता है, तो इसे मिरर करें OpsIQ अपने कनेक्टर से टिकट ingest सहायक का उपयोग करके अपने कनेक्टर को विरासत में मिला (एक नए टिकट के लिए बनाया गया है, अनुवर्ती के लिए ऐड-रेप्लाई)। subscribers() विधि, ticket.created, ticket.replied, ticket.updated, ticket.deletedऑटो-रिप्लाई, एस्केलेटर, SLA और CSAT सभी एक ही घटना को हुक करते हैं, इसलिए आप उन्हें अतिरिक्त कोड के साथ विरासत में देते हैं।

यदि आप संभालते हैं ticket.deleted, आप भी विलय संभालते हैं। एक विलय टिकट हटा देता है merged_into और एक कनेक्टर को नहीं भेजा जाता है जो घोषणा करता है ticket_merge; मर्ज एक बार के रूप में आता है ticket.merged इसके बजाय, इसलिए आप अपने प्लेटफॉर्म पर विलय कर सकते हैं, बल्कि वहां विलय टिकट बंद कर सकते है। देखें टिकट विलय क्षमता (Contract 2.4).

जो संदेश के उद्घाटन को लिखा था

हमेशा एक टिकट है के लिए ग्राहक, लेकिन उद्घाटन संदेश द्वारा लिखा जा सकता है कर्मचारी: एक एजेंट ग्राहक की ओर से टिकट खोलता है, या सक्रिय रूप से बाहर पहुंच जाता है। हर हेल्पडेस्क इसका समर्थन करता है, इसलिए यह सार्वभौमिक का हिस्सा है ticket.created प्रत्येक कनेक्टर निजी तौर पर हल करने के बजाय अनुबंध।

author_type

ग्राहक (डिफ़ॉल्ट) या व्यवस्थापक। इसे छोड़ दें और ग्राहक को मान लिया जाता है।

author_id

जब लेखक_type=admin. कभी भी ग्राहक आईडी नहीं है, तब स्टाफ आईडी।

author_name

एजेंट या विभाग का नाम प्रदर्शित करता है। "स्टफ" पर वापस गिर जाता है।

author_email

एजेंट पता ग्राहक को कभी नहीं। ग्राहक ई-मेल के तहत एक कर्मचारी संदेश एक रिपोर्टिंग और ऑडिट त्रुटि है।

यह कॉस्मेटिक नहीं है। उपभोक्ता पढ़ते हैं author_type यह तय करने के लिए कि कौन है। एक कर्मचारी-लिखित उद्घाटन ने बताया कि किस तरह की बारी है। client अपने स्वयं के एजेंट को एक संदेश देने के लिए पात्र ऑटो-रिप्लाई छोड़ देता है, और उस खोलने का अपना प्लेटफॉर्म बदल जाता है जो एक नए ग्राहक संदेश की तरह दिखता है, फिर डुप्लिकेट के रूप में भूमि करता है और टिकट को फ्लिप करता है ताकि वह आपके खाते में भेज सके। जवाब देनाअपने प्लेटफॉर्म के संकेत को अपने कनेक्टर में मैप करें घटना सामान्यीकरणकभी उपभोक्ताओं में नहीं।

केंद्रीय अवरोधन

जब कोई एजेंट एक प्रेषक को अवरुद्ध करता है, तो वह पूरे हो जाता है हर तुरंत चैनल (e-mail, chat, portal, विजेट और प्रत्येक कनेक्टर जुड़वां) क्योंकि ब्लॉक केंद्रीय रूप से लागू होता है, इससे पहले कि किसी भी कनेक्टर संदेश को देखता है। आपका कनेक्टर इसे कुछ भी करके विरासत में मिला है। कार्यान्वयन के लिए कोई इनबाउंड काम नहीं है और इसे गलत तरीके से पाने का कोई तरीका नहीं है।

वैकल्पिक आधा है आउटबाउंड: अपने प्लेटफॉर्म को बताने के लिए एक ग्राहक को यहां अवरुद्ध कर दिया गया था। इसे केवल तभी लागू करें जब आपका प्लेटफ़ॉर्म कुछ बराबर व्यक्त कर सकता है।

क्षमताओं ()

ब्लॉक_registry शामिल होना चाहिए और वर्ग को ब्लॉकरीस्टफेस लागू करना होगा। ध्वज एक दावा है; इंटरफ़ेस गारंटी है। रजिस्ट्री दोनों की आवश्यकता होती है।

blockSender($b)

प्राप्त करना (emaildomain)ip), मूल्य, कारण, admin_id, समाप्त होता है_at, site_key. रिटर्न [result, विस्तार?, Remote_ref?]।

unblockSender($b)

एक ही पेलोड, उलटा होना चाहिए। कभी अवरुद्ध नहीं है, कोई त्रुटि नहीं है कुछ को अनब्लॉक करना

isSenderBlocked($b)

पुनर्संयोजन के लिए, इसलिए ग्राहक द्वारा खोजे जाने की बजाय बहाव को रिपोर्ट किया जाता है। रिटर्न [विक्रय, अवरुद्ध]।

परिणाम मान

ठीक

अपने प्लेटफॉर्म पर लागू होने पर दूरस्थ_ref शामिल करें जब आपके पास आईडी लायक रिकॉर्डिंग है।

noop

पहले से ही अनुरोधित राज्य में।

unsupported

आपका प्लेटफ़ॉर्म कोई समतुल्य अवधारणा नहीं है।

असफल

आपने इसे किया है और यह गलत हो गया। विस्तार से शामिल करें; यह ऑडिट ट्रेल में उतरता है।

डिक्लिनिंग एक सही उत्तर है। कई प्लेटफार्मों में कोई "इस प्रेषक को ब्लॉक करें" अवधारणा नहीं है और केवल ACCOUNT निलंबन प्रदान करता है, जो सिर्फ समर्थन मेल के बजाय बिलिंग, लॉगिन और सेवाओं को बंद कर देता है। मैपिंग "एक एजेंट ने स्पैम एड्रेस अवरुद्ध किया" पर "इस ग्राहक के खाते को बंद करें" एक गलत क्लिक किए गए ब्लॉक को भुगतान करने वाले ग्राहकों की सेवाओं को समाप्त करने देगा। यदि ऐसा एकमात्र लीवर है तो आप वापस लौटें। unsupported और इसे अकेले छोड़ दें।

यह भी मामला है जहां मंच को शामिल करना कर सकते हैं लेकिन आपको नहीं देना चाहिए। APIएक ऐसा लीवर जो केवल प्लेटफॉर्म के व्यवस्थापक यूआई में मौजूद है, वह एक लीवर है जिसका आपका कनेक्टर नहीं है।

कार्य उदाहरण · Zendesk (अनुप्रयोग कार्यान्वयन)

पढ़िए connectors/zendesk/connector.php alongside this. It is short, and every branch below is a decision you will face too.

ईमेल → ठीक

पुट्ट /api/v2/users/{id} निलंबित=true के साथ। एक निलम्बित अंत उपयोगकर्ता के नए अनुरोधों ने एक खोलने के बजाय निलंबित टिकट पर विभक्त किया, वास्तव में उसी विचार को एक प्रेषक को अवरुद्ध करने के रूप में, और यह कोई बिलिंग बंद नहीं होता क्योंकि Zendesk अंत उपयोगकर्ताओं के पास कोई भी नहीं है। उपयोगकर्ता आईडी को दूरस्थ_ref के तौर पर लौटा देता है।

डोमेन → unsupported

Zendesk एक पूरे डोमेन को निलंबित कर सकते हैं, लेकिन केवल निलंबित के माध्यम से: व्यवस्थापक केंद्र ब्लॉकलिस्ट textarea में कीवर्ड, और नहीं API उस क्षेत्र को लिखते हैं। यह सुविधा मौजूद है; लीवर नहीं करता है।

ip → असमर्थित

कोई टिकट-स्तर नहीं IP ब्लॉक मौजूद है।

अज्ञात पता → noop

Zendesk एक ऐसा पता नहीं लगा सकता है जिसे कभी देखा नहीं गया है। कुछ भी करने के लिए असफलता नहीं है, और स्थानीय ब्लॉक अभी भी टिकट बंद हो जाता है।

एजेंट या व्यवस्थापक → असमर्थित

REFUSED. निलंबित स्टाफ एक सहयोगी को सहायता डेस्क से बाहर लॉक करेगा। एक कर्मचारी का पता ब्लॉकलिस्ट तक पहुंचना, किसी निर्देश की तुलना में गलती होने की संभावना अधिक है, उस पर कार्य करने से पहले भूमिका की जांच करें।

यह अंतिम पंक्ति एक योग्य प्रतिलिपि है। अनुबंध आपको किसी भी विनाशकारी पर ब्लॉक मैप करने से रोक नहीं सकता, इसलिए प्रत्येक कनेक्टर को खुद के लिए निर्णय लेना पड़ता है कि वह क्या मना करेगा। जोर से इनकार करते हुए, एक साथ detail एक ऑपरेटर पढ़ने के लिए, ओबीइंग को हरा सकता है।

ईमानदारी से रिपोर्ट करें। उन पंक्तियों में से कुछ को कैसे देखा जाए okयह सही परिणाम है, एक अंतर नहीं: एक डोमेन ब्लॉक अभी भी काम करता है (यह कोर में लागू होता है जब इसे लिखा जाता है); यह बस बाहर की ओर दर्पण नहीं किया जा सकता। रिटर्निंग ok कुछ ऐसा करने के लिए आप एक ऑपरेटर को नहीं बता सकते कि ब्लॉक कभी भी छोड़ दिया जब आपका मंच तक पहुंच गया OpsIQ_

नियम

स्थानीय ब्लॉक हमेशा जीतता है

यह लिखा गया है कि पहले आपको बुलाया जाता है और जो भी आप वापस लौटते हैं वह खड़ा होता है। आप किसी ऑपरेटर को अवरुद्ध नहीं कर सकते।

कभी नहीं फेंकना

एक फेंक को बिना समर्थित और रिकॉर्ड के रूप में माना जाता है। रिटर्न एक विस्तार से विफल रहा, क्योंकि कारण जीवित रहता है।

Be the first time of a idempotent.

उसी ब्लॉक को एक बार से अधिक घोषित किया जा सकता है।

जल्दी वापस लौटें

फैन-आउट ऑपरेटर के साथ सिंक्रोनस है क्लिक करें। अनुरोध को खोलने की बजाय क्वीयू धीमी गति से काम करते हैं।

वापस बुलाना

कभी भी अपने हैंडलर से OpsIQ में फिर से ब्लॉक नहीं। रजिस्ट्री मूल कनेक्टर को छोड़ देती है, लेकिन दूसरा हॉप लूप होगा।

प्रत्येक घोषणा को लिखा जाता है opsiq_block_registry_log (operation, तरह, मान, कारण, व्यवस्थापक, मूल, कनेक्टर स्लग, परिणाम, विस्तार और समय-समय पर) तो एक ऑपरेटर एक एजेंट के बजाय अपने प्लेटफॉर्म से आया ब्लॉक देख सकते हैं, और प्रत्येक कनेक्टर इसके बारे में क्या किया।

सही ढंग से संलग्न होना

हाथ attachments बनाने के लिए सरणी ()/addReply(). प्रत्येक आइटम तीन आकारों में से एक में फ़ाइल रखता है:

content_b64

RAW फ़ाइल बाइट्स के बेस 64, auth (सबसे अधिक इनबाउंड मामलों) के पीछे फ़ाइलों के लिए उपयोग करते हैं। OpsIQ इसे डिकोड करता है और आपके लिए फ़ाइल को फिर से होस्ट करता है। सबसे पोर्टेबल आकार।

url/ Source_url

एक सार्वजनिक https URL (जैसे एक Zendesk content_url). होना चाहिए https; एसएसआरएफ पास करना / अनुमतिसूची जांचना इससे पहले कि यह संग्रहीत हो।

stored_path

एक संग्रहीत फ़ाइल संदर्भ जिसे आप पहले से ही लिखते हैं (क्या मूल संगीतकार अपलोडर पैदा करता है)।

Items also accept filename, mime_type and size_bytes. Caps: 12 MB/file, ~24 MB total, 10 files per call. Most platform read APIs return attachment केवल फाइल नाम (बिस्तरों) तो विश्वसनीय इनबाउंड पैटर्न है: बाइट्स को पढ़ें जहां आपका कोड पहले से ही चलाता है (प्लेटफॉर्म के अंदर, या वेबहुक पेलोड से), बेस64 उन्हें और उन्हें जहाज जैसा कि content_b64 घटना पर।

आउटबाउंड (आउटबाउंड)OpsIQ → अपने मंच। जब कोई एजेंट एक फ़ाइल संलग्न करता है, तो वह एक फ़ाइल को जोड़ती है। ticket.replied पेलोड आपको उत्तर की फाइल को देता है क्योंकि stored_path नीचे आइटम OpsIQ फ़ाइल स्टोर उन्हें पढ़ें और अपने प्लेटफॉर्म के स्वयं के प्रारूप में पुश करें, और प्लेटफ़ॉर्म डॉक्स की जांच करें, एन्कोडिंग मामले: WHMCS चाहते हैं base64_encode(json_encode([[name,data]])) (JSON, क्रमांकित नहीं;Zendeskकच्चे बाइट्स को अपलोड करना /uploads.json तब एक टोकन सेट के लिए comment.uploadsGmail एक multipart/मिश्रित RFC भेजता है-822 संदेश base64url-encoded in raw; Amazon SES inbound attachments need the S3 receive action (the SNS path caps at 150 KB).

दूरस्थ प्लेटफ़ॉर्म: API + webhook, कभी किसी अन्य ऐप की तालिका नहीं

यदि आपका प्लेटफ़ॉर्म है तो एक ऐसा प्लेटफॉर्म है जो आपके लिए एक मंच है। अलग-अलग ऐप या डेटाबेस (a hosted SaaS, a Remote WHMCS, एक ही सर्वर पर एक अलग DB) कभी भी अपने टेबल को सीधे नहीं लिखिए: एक क्रॉस-डाटाबेस लिखने वाली भूमि जिस पर कनेक्शन सक्रिय है और चुपचाप वास्तविक पंक्तियों को याद करता है। हमेशा: आउटबाउंड = "Plates" पर हस्ताक्षर किए गए REST API (replies, स्टेटस, डिपार्टमेंट, डिलीट); भीतर = a webhook, your Webhook, or a webहूक handleWebhook() इसे सत्यापित करें और मिलान को आग लगा दें ticket.* घटना। दर्पण लूप को रोकने के लिए, टैग करें कि आप एक मूल मार्कर (जैसे) के साथ क्या धक्का देते हैं। mirror_origin:'opsiq'(d)) यह मंच वेबहुक पर इसे गूंजता है और आपका इनबाउंड हैंडलर अपनी खुद की गूंध छोड़ देता है। चेक OpsIQEvents::isMirroredEvent() हर हैंडलर के शीर्ष पर।

दर्पण स्थिति, प्राथमिकता और विभाग

उत्तर स्वचालित रूप से स्थिति में जाता है, एक एजेंट जवाब देना→ answered, a ग्राहक जवाब देना→ customer_replyA scent of the same way. ticket.updated पढ़ना payload['changes'] (e. g.) {status:'closed'}).

स्थिति: OpsIQ_ का कैनोनिकल सेट है open, customer_reply, answered, in_progress, pending, closedअपने प्लेटफॉर्म के शब्दावली में एक छोटा सा दो-तरफा नक्शा रखें और यह सुनिश्चित करें कि आपका कॉलम वास्तव में आपके द्वारा लिखे गए मूल्यों को स्वीकार करता है (एक) ENUM कुछ डेटाबेस द्वारा चुपचाप खाली हो जाता है। विभाग: The the most of the sorry. OpsIQ डिपार्टमेंट आई डी आपके पक्ष में अर्थहीन है, कभी इसे नहीं भेजनाA book of the code (A)name, email और slug(a) और इसे अपने विभागों के खिलाफ ई-मेल → नाम → स्लग, इसलिए "बिलिंग डिपार्टमेंट" भूमि में हल करें आपका बिलिंग विभाग के बजाय सामान्यदोनों पर ट्रिगर ticket.escalated A, a, a department_id में परिवर्तन ticket.updated.

💡
स्थिति / प्राथमिकता / विषय / विभाग / हटाने दर्पण प्रति कनेक्टर टॉगल (mirror_status_changes, mirror_priority_changs, mirror _subject_change, Mirror_department_changedes, दर्पण_deletes) द्वारा साझा किए गए हैं। OpsIQ\Connectors\MirrorOptions सहायक। उस ब्लॉक को अपनी सेटिंग्स में एम्बेड करें।json और हर टिकट दर्पण कनेक्टर ने समान रूप से टॉगल पढ़ा।

किसी उत्पाद / सेवा के लिए टिकट लिंक करें

यदि ग्राहक टिकट खोलने पर एक विशिष्ट उत्पाद का चयन करता है, तो एक संकेत को स्टैम्प करें ताकि एजेंट ध्यान केंद्रित सेवा कार्ड (एक क्लिक के साथ "अन्य उत्पाद देखें" बाकी के लिए मोडल) देख सके।

related_service_id

Preferred: the service id exactly as it appears in your IdentityProvider::lookupCustomerServices() list (each service's id). Unambiguous match.

related_service_label

एक मंच सेवा-कोड, उदाहरण के लिए। WHMCS S396 (सेवा396 D11 (domain)11). OpsIQ वैकल्पिक प्रकार-पत्रिका + आईडी को विघटित करता है और अपनी सेवा सूची से मेल खाता है, जिसमें एक प्रकार की गार्ड होती है इसलिए डोमेन कोड कभी भी उसी आईडी के उत्पाद से मेल नहीं खाती। सटीक मैच के लिए प्रत्येक सेवा पर मिलान करने वाले रेफरी को उजागर करें।

related_domain

डोमेन नाम; प्रत्येक सेवा के विस्तार / डोमेन के खिलाफ एक सबस्ट्रिंग के रूप में मिलान किया गया।

💡
ऊपर दिए गए आकार में, एक बार अनुलग्नक सूची बनाएं और OpsIQ बाकी संभालती है: होस्ट किया गया URLs इसके अलावा, आपको कभी भी प्रति-प्लेटफ़ॉर्म फ़ाइल हैंडलिंग लिखने की आवश्यकता नहीं है।
⚠️
एक्शन कुंजियां लोअरकेस अक्षर, अंक और अंडरस्कोर हैं। बिल्डर स्वीकार करता है3to80वर्ण और भी डॉट्स की अनुमति देता है; एक्शन स्टोर स्वीकार करता है2to100कोई डॉट्स के साथ पात्र, इसलिए अक्षरों, अंकों और अंडरस्कोर को बनाए रखें और आप दोनों को संतुष्ट करते हैं। एक कार्रवाई जोड़ना एजेएएक्स मार्ग नहीं बनाता है, इसलिए कनेक्टर को फिर से सहेजने के लिए कुछ भी नहीं है और इसे सिंक किया जाता है।

आइए, एआई इसे आपके लिए बनाया

आपको छह चरणों को हाथ से भरने की जरूरत नहीं है। कनेक्टर को अपने शब्दों में बताएं और OpsIQ_'s AI पूरे विनिर्देश का ड्राफ्ट करता है, इसे उसी मान्यकर्ता के माध्यम से चला जाता है जो विज़ार्ड उपयोग करता है और आपको डिस्क पर कुछ भी लिखने से पहले योजना दिखाता है। ऐसा करने के लिए दो स्थान हैं और वे एक ही पैकेज का उत्पादन करते हैं।

विज़ार्ड में

खुला कनेक्टर्स→+ कनेक्टर जोड़ें→कनेक्टर का निर्माणThe step on the step.1आप देखेंगे ✨इसे मेरे लिए बनाएंक्या कनेक्टर के लिए है टाइप करें - मंच, क्याOpsIQपढ़ना चाहिए और इसे क्या लिखना चाहिए, और कौन इसका उपयोग करता है - इसमें जोड़ेंAPIयदि आप इसे जानते हैं तो जड़ें, और इसे दबाएँ। विज़ार्ड ड्राफ्ट से हर कदम को भर देता है, और आपने समीक्षा की और ठीक उसी तरह संपादित किया जैसे कि आपने इसे टाइप किया था। चरण पर6उसी पैनल के रूप में दिखाई देता है ✨ _I के साथ परिष्कृत करेंइसलिए आप संपादन क्षेत्रों के बजाय एक बदलाव ("भी पढ़े गए चालान") की मांग कर सकते हैं।

पूछोOpsIQ

खुला पूछो OpsIQ कहीं भी व्यवस्थापक में और कहो कि आप क्या चाहते हैं? आपको कभी एक कार्रवाई का नाम देने की जरूरत नहीं है या जादूगर मौजूद है।

1
इसके लिए पूछो

उदाहरण के लिए: "Trello के लिए मुझे एक कनेक्टर का निर्माण करें। इसे अपने बोर्डों और सूचियों, कार्ड पढ़ने और एक बोर्ड पर एक कार्ड बनाने की सूची होनी चाहिए। Trello एक बोर्ड का उपयोग करता हैAPI"The copilot उत्तर एक वाक्य में है और एक दिखाता है इस कनेक्टर को प्रारूपित करें कार्ड. आपका संदेश संक्षिप्त है, इसलिए मंच, पठन और उसमें लिखता है।

2
ड्राफ्ट की पुष्टि करें

अभी तक कुछ भी नहीं लिखा गया है। copilot विनिर्देश का ड्राफ्ट करता है, इसे मान्य करता है और योजना के जवाब देता है: कनेक्टर क्या करता है; यह क्रियाएँ उजागर होगी (लेखित)), इसके द्वारा की गई धारणाओं और आपके द्वारा दिए गए प्रश्नों को अभी भी उत्तर देना होगा - आमतौर पर जो प्रतिलिपियाँ आपूर्ति करती हैं। मसौदा एक आईडी के तहत पार्क किया जाता है और इसके लिए उपलब्ध रहता है।24घंटे।

3
"इसे बनाने" कहो

कॉपियोलॉट एक दिखाता है निर्माण card naming the connector and its slug. This one writes: it publishes the package into /connectors/<slug>/. Confirm it and you get the path back, together with the setting you still have to fill.

4
क्रेडेंशियल दर्ज करें और सक्षम करें

नया कनेक्टर प्रकाशित किया गया है लेकिन सक्षम नहीं है और इसमें कोई रहस्य नहीं है। अपनी सेटिंग्स खोलें, API key या token दर्ज करें, प्रेस करें टेस्टफिर सक्षमजब तक आप करते हैं, तब तक यह कुछ नहीं करता है।

💡
दोनों कार्डों को आपके क्लिक की आवश्यकता होती है। ड्राफ्ट स्टेप बिल्कुल कुछ नहीं लिखते हैं; बिल्ड स्टेप डिस्ट्रक्टरीव के रूप में चिह्नित होता है और हमेशा पूछता है। एआई एक कनेक्टर प्रकाशित नहीं कर सकता, सक्षम हो सकता है, या अपने आप में क्रेडेंशियल दर्ज कर सकता है।

क्या है और क्या करने की अनुमति नहीं है

सत्यापनकर्ता दीवार है

एक तैयार विनिर्देश वास्तव में वही मान्य () के माध्यम से जाता है जो विज़ार्ड का पब्लिश बटन उपयोग करता है। यदि यह पास नहीं होता है, तो एआई को त्रुटियों को दिया जाता है और फिर कोशिश की जाती है, तीन बार तक, और फिर सत्यापनकर्ता के अपने शब्दों में मना कर देता है। ऐसा ड्राफ्ट जो विफल हो जाता है वह कभी भी पैकेज नहीं बन जाता है।

यह कोई क्रेडेंशियल नहीं लिखा गया है

ड्राफ्ट में प्रमाणीकरण पैटर्न और सेटिंग्स फ़ील्ड का नाम दिया गया है; यह कभी भी एक कुंजी, टोकन या गुप्त आविष्कार नहीं करता। आप उन को कनेक्टर के सेटिंग पृष्ठ पर बाद में भर देते हैं।

यह प्रश्नों के उत्तर देता है, अनुमान नहीं लगाता

कुछ भी यह नहीं जानता कि आपका खाता आईडी, कौन सा क्षेत्र, जो दो में से एक आपकी योजना को उजागर करता है - चुप धारणा के बजाय योजना पर सवाल के रूप में वापस आता है।

एक आविष्कारित समापन बिंदु जोर से विफल हो गया

एआई को कभी भी पथ का आविष्कार नहीं किया जाता है, लेकिन कोई मॉडल बिल्कुल सही नहीं है। एक गलत मार्ग एक कार्रवाई के रूप में प्रकाशित होता है जो एक्शन स्टेप पर अपना लाइव टेस्ट विफल हो जाता है या पहली बार यह रन करता है - यह कभी भी चुप सफलता नहीं होती है।

पैकेज साधारण है

यह क्या पैदा करता है एक सामान्य बिल्डर पैकेज: समान उत्पन्न हुई फाइलें, समान अनुबंध, उसी हस्ताक्षर, जो विज़ार्ड में संपादन योग्य हैं, कनेक्टर्स पेज से हटाने योग्य है। कोई अलग "AI कनेक्टर" प्रकार नहीं है।

आपका मॉडल ड्राफ्टिंग करता है

गुणवत्ता उस मॉडल का अनुसरण करती है जिसे आपने सेटिंग्स के तहत कॉन्फ़िगर किया था→एआई एक छोटा, सस्ता मॉडल एक सही लेकिन सादे कनेक्टर का ड्राफ्ट करता है और अधिक सवाल पूछता है; एक मजबूत मॉडल पहली बार एंडपॉइंट्स से अधिक हो जाता है। इसे AI कॉन्फ़िगरेशन के तहत बदलें; किसी अन्य को बदलने की जरूरत नहीं है।

⚠️
कॉपिलोट केवल इस इंस्टॉल को चलाने के लिए वास्तव में पंजीकृत है। यदि कनेक्टर बिल्डर क्रिया गायब हो जाती है - एक ऐसी योजना जिसमें उन्हें शामिल नहीं किया जाता है, या बिना किसी भूमिका के manage_connectors — कॉपिलोट कहते हैं कि ऐसा कार्ड देने के बजाय जो क्लिक करते समय विफल हो जाएगा।
कनेक्टर्स

चैट के माध्यम से बेचें: वाणिज्य भूमिका मानचित्र

एक कनेक्टर जो बेच सकता है - एक स्टोर प्लेटफॉर्म, एक बुकिंग सिस्टम, भुगतान गेटवे — घोषणा करता है कि इसके ओडब्ल्यूएन परिचालनों में से कौन-सा जवाब देता हैOpsIQ's canonical commerce roles. इसे घोषित करें और कनेक्टर सेटिंग्स के तहत दिखाई देता है→ग्राहक चैट→स्वचालित रूप से चैट के माध्यम से बेचना; घोषणा करना बंद करें और यह गायब हो जाता है। पंजीकरण करने की कोई सूची नहीं है।

फ़ाइल: commerce_roles.json

घोषणा पैकेज रूट पर अपनी खुद की फ़ाइल में रहती है - फ़ाइल की उपस्थिति दावा हैयह नहीं रह सकता connector_contract.json: उस फ़ाइल को पैकेजिंग उपकरण द्वारा पुनर्निर्मित किया जाता है और इसकी स्कीमा अज्ञात कुंजी को खारिज कर देती है, इसलिए एक हाथ से ग्रस्त ब्लॉक मान्यकरण विफल हो जाएगा और फिर ओवरराइट किया जा सकता है।

commerce_roles.json
{
  "commerce": {
    "roles": {
      "catalog_search": { "operation": "acme_search_products", "transport": "http" },
      "customer_lookup": { "operation": "acme_customer_lookup", "transport": "http" },
      "quote":          { "operation": "acme_quote_order",     "transport": "http" },
      "payment_methods": { "operation": "acme_payment_methods", "transport": "http" },
      "order_get":      { "operation": "acme_get_order",       "transport": "http" },
      "order_create":   { "operation": "acme_create_order",    "transport": "http",
                          "recovery": "acme_get_order" }
    },
    "customer_ordering": {
      "enabled": true,
      "version": 1,
      "mode": "direct_order",
      "audience": "clients_only",
      "account_flow": "existing_client",
      "payment_flow": "connector_methods",
      "identity_parameter": "external_customer_id",
      "quantity_parameter": "quantity",
      "label": "Acme Store",
      "checkout_hosts": [],

      "transaction_kind": "purchase",
      "decision_mode": "immediate",
      "payment_timing": "on_confirmation",
      "reversibility": "reversible",
      "cancellation_flow": "platform_only",
      "fulfilment_presence": "remote_delivery",
      "notify_flow": "platform_automatic",
      "customer_fields": {"name": "required", "email": "required", "address": "required", "phone": "optional"},
      "client_tools": ["catalog_search", "catalog_get", "quote"],
      "account_timing": "before_quote"
    }
  }
}

नियम, और क्यों प्रत्येक मौजूद है

रोल्स एक बंद शब्दावली हैं

OpsIQ कभी भी कार्रवाई के नाम से एक भूमिका नहीं लेती। घोषित किया गया ऐसा कोई तरीका मौजूद नहीं है - घोषणा पूरी अनुबंध है।

ऑपरेशन आपके कार्यों में से एक होना चाहिए

हर मैप्ड ऑपरेशन आपके पास मौजूद होना चाहिए actions.jsonएक टाइपो ने एक क्षमता की घोषणा की जो नहीं चल सकती है, और यह ग्राहक को "मैं इसे आपके लिए देख सकता हूं" के रूप में संदर्भित करता है।

पढ़ने की भूमिका कभी भी विनाशकारी संचालन पर नहीं होती है

भूमिकाओं को पढ़ें (कैटलोग, उपलब्धता, उद्धरण, आदेश तलाश) उन कार्यों के लिए मानचित्र बनाना चाहिए जो आपके प्लेटफॉर्म पर कुछ भी नहीं बदलते।

एक सामान्य रिकॉर्ड ऑपरेशन के लिए कभी भी कोई नक्शा नहीं

मैपिंग order_create एक कच्चे टेबल डालने के लिए — record.create, db.insert, recordCreateकिसी भी विभाजक को संरचनात्मक रूप से अस्वीकार कर दिया जाता है। एक पंक्ति सीधे अपने प्लेटफॉर्म के मूल्य निर्धारण, स्टॉक लॉकिंग और पुष्टिकरण मेल को बायपास करती है, जिससे ऑर्डर आपके स्वयं का सिस्टम पूरी तरह से विश्वास नहीं करता है।

एक लिखने की भूमिका ने वसूली के संचालन को घोषित किया

एक idempotent lookup जो "मेरे लिखने की भूमि को छिपाने" का उत्तर देता है। सबसे खतरनाक टाइमआउट आपके प्लेटफॉर्म के बाद पहले ही ऑर्डर बनाया जा सकता है; बिना किसी रिकवरी लुकअप के, एकमात्र विकल्प अंधा कर रहे हैं या इसे खो सकते हैं।

प्रदाता-facing भुगतान भूमिकाओं में तीन अतिरिक्त दायित्व होते हैं

एक ऐसा पैकेज जो सीधे भुगतान प्रदाता से बात करता है, उसे भी घोषणा करनी चाहिए payment_profile (मुद्राओं, देशों, विधियों और तरीकों) वातावरण - एक अस्थाई वातावरण यह है कि कैसे परीक्षण एकीकरण को लाइव भुगतान करना पड़ता है) webhook_verify (प्रोफाइडर की असली हस्ताक्षर योजना; एक सामान्य गुप्त-समर्पण मना कर दिया जाता है) और event_map (कैनोनिकल लोगों पर विशेष घटनाओं)। एक व्यापारी कनेक्टर जो केवल कार्यान्वयन करता है record_payment पहले से ही सत्यापित कैनोनिकल भुगतान प्रमाण प्राप्त करता है; यह प्रवेश द्वार होने का नाटक नहीं करना चाहिए।

यह घोषणा करें कि ग्राहक कैसे जुड़े स्टोर से ऑर्डर कर सकते हैं

एक व्यापारी कनेक्टर और भुगतान-गेटवे कनेक्टर अलग अनुबंधों के अंतर्गत आता है। कनेक्टेड स्टोर ग्राहक ऑर्डर, सबसे गहरी मोड चुनें जो प्लेटफ़ॉर्म साबित हो सकता है। पसंद को अंदर हस्ताक्षरित किया जाता है commerce_roles.jsonस्टोर और क्लाइंट चैट ने इसे निष्पादन समय पर फिर से पढ़ें। एक भूमिका को हटाने या कनेक्टर की स्थापना रद्द करने / स्थापित करने के लिए इसलिए पीछे की कहानी प्राधिकरण छोड़ने के बजाय पहले प्रस्तुत प्रस्ताव को अवैध ठहराना।

catalog_only

नक्शे catalog_search या catalog_get. OpsIQउत्पादों की खोज और व्याख्या कर सकते हैं, लेकिन यह एक निष्पादन योग्य आदेश या चेकआउट पुष्टि नहीं दिखा सकता है। हर पैकेज इस सच में डिफ़ॉल्ट रहता है जब तक कि इसके अपने प्रकार के उद्धरण और चेकआउट / ऑर्डर क्रियाओं ने गहरी अनुबंध और बाज़ार प्रमाणीकरण पारित किया; कभी भी किसी प्लेटफॉर्म नाम से लेन-देन समर्थन को सत्यापित नहीं किया जाता है।

platform_checkout

इसके अलावा नक्शे quote और platform_checkoutThe व्यापारी कार्रवाई-not OpsIQ कोर रिटर्न checkout_url, checkout_reference और कैनोनिकल उद्धरण।URLएचटीटीपी होना चाहिए, इसका मेजबान नाम मिलान करना चाहिए customer_ordering.checkout_hosts या HTTPS होस्ट से व्युत्पन्न checkout_host_setting, और उद्धरण अधिक से ज्यादा के लिए नहीं रह सकता15मिनट। एक उत्पाद permalink, स्थानीय रूप से इकट्ठे गाड़ीURLया वापसीURLएक व्यापारी-जारी चेकआउट क्षमता नहीं है।

direct_order

इसके अलावा नक्शे quote, order_create और order_getसाथ order_create.recoveryकोर तुरंत निष्पादन से पहले उद्धरण को ताज़ा करता है, idempotency key की आपूर्ति करता है और किसी भी retry से पहले हर अज्ञात परिणाम के बाद वसूली ऑपरेशन पूछता है। जब कोर निष्पादन से तुरंत पहले उद्धरण ताज़ा करता हैं, तो idemspotency कुंजी की आपूर्ति करती है, और किसी अन्य रिट्री से पहले प्रत्येक अज्ञात परिणाम पर रिकवरी ऑपरेशन पूछती है। payment_flow=opsiq_gatewayइसके अलावा, इसे मानचित्र भी करना चाहिए record_payment एक आधिकारिक वसूली / रीड-बैक ऑपरेशन के साथ। OpsIQ गेटवे लेनदेन को सक्रिय रूप से सत्यापित करता है, मैच राशि, मुद्रा, व्यापारी और ऑर्डर संदर्भ, प्रदाता संदर्भ को एक बार लिखते हैं, फिर व्यापारी चालान / आदेश वापस पढ़ता है। mark_invoice_paid स्टेटस टॉगल को अस्वीकार कर दिया जाता है क्योंकि यह भुगतान प्रमाण नहीं रखता है। निर्माण कार्रवाई को प्लेटफॉर्म के अपने मूल्य निर्धारण, स्टॉक और ऑर्डर बिजनेस लॉजिक को बुलाना चाहिए; कच्चे डेटाबेस लिखते मना किए जाते हैं।

पहचान सत्यापन, और ऑपरेटर क्या बदल सकता है

जब OpsIQ भुगतान का मालिक होता है, तो एक चैट ग्राहक को पहुंचना चाहिए। email_otp आदेश तैयार होने से पहले —OpsIQएक ईमेल6-अंकीय कोड और इसके लिए पूछता है। यह कुछ नहीं है जो एक कनेक्टर से बाहर निकल जाता है; यह आश्वासन का फर्श है जिसके लिए निष्पादन कर्नेल मांग की जाती है। order_create.

एक अपवाद, और कौन इसे नियंत्रित करता है

एक ऑपरेटर केवल तभी एक एकीकृत पता स्वीकार कर सकता है जब आपका कनेक्टर घोषित करता है fulfilment_presence: customer_presentएक होटल अतिथि आना चाहिए, इसलिए गलत पता एक रसीद को गलत तरीके से निर्देशित करता है और कमरा अभी भी वहाँ है। घोषित करना remote_delivery - भेज दिया, प्रावधान किया, डाउनलोड - और सत्यापन की आवश्यकता है जो ऑपरेटर सेट करता है क्योंकि मूल्य अकेले उस पते की ताकत पर छोड़ देता है। सेटिंग minimum_assurance या reversibility: irreversible ऑपरेटर की क्षमता को भी हटा देता है।

कितना समय तक कोड रहता है

डिफ़ॉल्ट रूप से तीस मिनट, ऑपरेटर से विन्यास योग्य5मिनट24घंटे। ग्राहक एक लाइव उलटी गिनती में प्रस्तुत देखता है अपने टाइमज़ोन, ऑपरेटर के नहीं। एक समाप्त कोड इतना स्पष्ट रूप से कहता है और एक अवैध कोड की रिपोर्टिंग के बजाय एक नया प्रदान करता है - एक ग्राहक को सही-लेकिन पुराने कोड टाइप करने में कोई गलती नहीं हुई है, और उन्हें बताता है कि वे उन्हें उसी लूप के दौर में भेज देते हैं।

ग्राहक को क्या प्रदान करना चाहिए: customer_fields

नाम और ईमेल हमेशा की आवश्यकता होती है और पहले एकत्र किए जाते हैं। घोषणा address, phone और company as required या optional व्यापार को फिट करने के लिए: एक दुकान जो जहाज पार्सल पते की आवश्यकता घोषित करती है; एक होटल फोन की आवश्यकता बताता है, क्योंकि एक अतिथि के पास कॉल नहीं कर सकता है। सहायक उन्हें उद्धृत करने से पहले बातचीत में पूछता है और OpsIQ एक आदेश देने से इनकार करता है जिसमें आवश्यक फ़ील्ड का अभाव होता है। बिल्डर सामान्यीकृत मानचित्र लिखता है।

जब खाता बनाया जाता है: account_timing

at_order (डिफ़ॉल्ट) ऑर्डर लिखने की अनुमति देता है, जो पहली बार खरीदार का खाता बनाती है। घोषित before_quote जब आपका प्लेटफ़ॉर्म प्रति खाता मूल्य होता है -WHMCSग्राहक की अपनी प्रोफ़ाइल और बोली द्वारा क्लाइंट की मुद्रा में कर - औरOpsIQअपने खाते के माध्यम से बनाता है customer_create जैसे ही आवश्यक फ़ील्ड ज्ञात हों, तब उस खाते के लिए उद्धरण पूछता है, इसलिए पुष्टिकरण कार्ड वह कुल रखता है जिसे आप वास्तव में चालान करेंगे। आवश्यकता account_flow: connector_signup.

सहायक प्राप्त करता है, यह नहीं पढ़ता: customer_tools

आदेश बनाने के साथ, सहायक कभी भी एक पेस्टेड कैटलॉग नहीं पढ़ता है। commerce_catalog_search (एक खाली क्वेरी उत्पाद परिवारों का अवलोकन है; सीमा से परे परिणाम नाम द्वारा सूचीबद्ध हैं) commerce_catalog_get एक वस्तु के लिए पूर्ण रूप से, और commerce_quote, जो उसी दीवारों के माध्यम से हस्ताक्षरित पुष्टि कार्ड सर्वर-साइड को मिंट करता है, कनेक्टर पथ हमेशा होता है। प्रति क्रिया एक उपकरण, आपके कनेक्टर को पैरामीटर के रूप में, इसलिए छह कनेक्टर्स वाला स्टोर अठारह की बजाय तीन टूल प्राप्त करता है। client_tools डिफ़ॉल्ट को प्रतिबंधित करता है; अनुपस्थित का मतलब हर मैप्ड एक और एक है catalog_only कनेक्टर कभी नहीं उद्धरण करता है। पुष्टिकरण एक उपकरण कभी नहीं है: वेब पर कार्ड का बटन, सटीक CONFIRM एक चैनल पर कमांड करें और कुछ भी नहीं कहता है कि कोई पैसा खर्च करता है।

आपकी सूची आइटम क्या लेना चाहिए

id, nameग्राहक सुरक्षित summary, a category या उत्पाद परिवार (इस तरह एक ग्राहक का शब्द एक ऐसी वस्तु को ढूंढता है जिसका नाम एक कोड है) currency, unit_amount_minor, available, और input_schema फ़ील्ड को एक ऑर्डर की जरूरत का नाम देना। खोज ने ग्राहक के शब्दों को नाम, परिवार, चक्र और सारांश के खिलाफ स्कोर किया है।

ग्राहक को एक कारण से इनकार करने के लिए कार्य कर सकते हैं

वापसी {"success":false,"error":"…","missing":["domain"],"retryable":true} जब कोई मूल्य गलत या लापता हो जाता है। एक इनकार जो नाम देता है missing या retryable ग्राहक क्रियाशीलता तक पहुंचता है; एक मुश्किल विफलता सामान्य रूप से रहती है इसलिए आंतरिक लीक कुछ भी नहीं।

भू-मुद्रा और आपातकालीन रोक

जब ऑपरेटर जियो मुद्रा (क्लिएंट चैट) पर बदल जाता है→Behaviour), ग्राहक हर सतह पर अपनी मुद्रा में कीमतों को पढ़ता है - चैट टेक्स्ट, वेब कार्ड, चैनल टेक्स्ट कार्ड और स्टोरफ्रंट की ओपनिंग करेंसी — प्लेटफॉर्म के अपने FX स्टोर का उपयोग करते हुए। आपकी कीमत कभी भी प्रतिस्थापित नहीं होती: कार्ड आगंतुक के आंकड़े को स्टोर कुल के बगल में दिखाता है, और प्रवेश द्वार वास्तव में उस राशि को प्रदर्शित करता है। सभी बिक्री को रोकें (setting)→वाणिज्य) है मार स्विच: सूची, उद्धरण और लुकअप खुला रहता है; प्रस्तावना और पुष्टि करना बंद हर चैनल पर।

जब चैट के माध्यम से बिक्री व्यवहार नहीं करती है

व्यापारी को नहीं पहुंचा जा सकता

पैकेज की मुहर टूट गई है: हस्ताक्षर के बाद एक फ़ाइल संपादित की गई थी। पैकेज को फिर से प्रकाशित करें। एक स्थापित बाज़ार प्रतिलिपि कभी भी जगह में संपादित नहीं की जाती है; इसे बाजार पैनल से अपडेट करें।

अभी ऑर्डर करना इस स्टोर के लिए पलायन है

मार स्विच चालू है। सेटिंग्स→वाणिज्य→सभी बिक्री को रोकें।

अभी तक इस चैनल पर ऑर्डरिंग उपलब्ध नहीं है

चैनल को जहां ग्राहक खरीद सकते हैं, उसके तहत नहीं किया जाता है। सर्वर लॉग चैनल का नाम देता है।

सहायक एक आइटम का वर्णन करता है लेकिन कोई कार्ड नहीं दिखाई देता है

हर कॉल को लॉग इन करने से इनकार कर दिया जाता है। [opsiq][commerce][client_tool] कारण के साथ: एक गलत आइटम आईडी, एक क्षेत्र वस्तु घोषणा नहीं करता है, एक डोमेन लिया जाता है, या व्यापारी का अपना इनकार कर दिया। लॉग को पढ़ने से पहले सहायक के पैराफ्रेज पर भरोसा किया जाता है।

सहायक कहते हैं कि यह उत्पाद नहीं देख सकता है

पृष्ठ किसी अन्य कार्यक्षेत्र से संबंधित है। प्रत्येक वेबसाइट विजेट एक कार्यस्थान के अंतर्गत आता है और स्टोर कनेक्टर को वहाँ सक्षम होना चाहिए।

उत्तर के बजाय एक डिब्बाबंद जवाब

"मुझे जो कुछ भी चाहिए उसके बारे में थोड़ा अधिक जानकारी दें" का मतलब है कि एआई प्रदाता खुद को असफलता दे रहा है; एआई इतिहास उस मोड़ के तहत सटीक त्रुटि दिखाता है, और उपकरण कभी नहीं पहुंच गए थे।

एक कनेक्टर संपादन चैट में नहीं दिखाता है

कार्यकर्ता एक मिनट के भीतर कोड परिवर्तन पर फिर से साइकिल चला जाता है, लेकिन बातचीत अपने अंतिम कार्ड को फिर से खेलना शुरू कर देता है।

एक नाइजीरियाई आगंतुक डॉलर देखता है हालांकि जियो मुद्रा चालू है

जाँच करें कि भू-IPडेटाबेस को कॉन्फ़िगर किया गया है (क्लिएंट चैट)→जियो) और आगंतुक की मुद्रा में FX का दर है; कोई दर नहींOpsIQगलत संख्या के बजाय स्टोर की कीमत दिखाती है।

आपका कुल एकमात्र ऐसा आंकड़ा है जो धन को स्थानांतरित करता है

एक उद्धरण होता है unit_amount_minor, quantity और total_amount_minorयह पहले दो से ही derivable के रूप में तीसरे का इलाज करने के लिए लुभाने वाला है। ऐसा नहीं है, और यह अनुमान लगाना कि ग्राहक वास्तविक धन की कीमत पहले से ही है।

quantity क्या CUSTOMER ने चुना - एक कमरा, एक लाइसेंस, एक नीति। आपका गुणक कुछ हो सकता है।OpsIQकभी नहीं देखता: रात, सीटें, बिलिंग चक्र, दूरी, वजन, बायर। एक होटल में तीन रातों के लिए मात्रा के रूप में एक कमरा उद्धृत किया जाता है।1इकाई105,000कुल315,000. OpsIQएक पुष्टि कार्ड की कीमत के लिए मात्रा से गुणा इकाई ने अतिथि को दिखाया105,000, और उसके बाद आरोप लगाया315,000वास्तव में व्यापारी वापस आ गया। एक आंकड़े की बधाई और दूसरे आरोप लगाया जा रहा है, यह अनुबंध सबसे खराब बात हो सकती है।

नियम

total_amount_minor एकमात्र आंकड़ा है OpsIQ शो, संकेत, आरोप और इसके खिलाफ सामंजस्य। unit_amount_minor यदि आपका कुल वास्तव में वही नहीं है जिसे आप चार्ज करना चाहते हैं, तो आपका उद्धरण गलत है —OpsIQइसे सही नहीं करेगा क्योंकि जो कुल सहायक रूप से समायोजित किया गया है वह है जिसे आप कभी सम्मान करने के लिए सहमत नहीं थे।

यह आपके उद्धरण कार्रवाई के लिए क्या मतलब है

सभी आंकड़े वापस लौटें। जवाब देने से पहले अपनी खुद की रात, tiers, छूट, करों और फीस लागू करें। यदि आपकी लाइन दोहराई नहीं जाती है - इकाई समय कुछ पूरी संख्या कभी आपके कुल के बराबर नहीं होती है -OpsIQपूरी तरह से अपनी वास्तविक कीमत पर एक पंक्ति के रूप में व्यवहार करता है, बल्कि ब्रेकडाउन को आविष्कार करने के बजाय जो कुछ भी नहीं करना चाहिए।

इस अनुबंध को किसी भी उद्योग में फिट करने के छह जवाब

ऊपर की घोषणा दुकान की घोषणा के रूप में शुरू हुई: एक चीज खरीदो, अब भुगतान करें, यह तुम्हारा है, आप रद्द कर सकते हैं। उनमें से प्रत्येक चार एक धारणा है कि कुछ वास्तविक व्यवसाय साझा नहीं करता है। बैंक मूविंग मनी इसे नहीं कर सकता। एक बीमाकर्ता "सफल" कह सकता है जब तक कि अंडरराइटर ने देखा है। बाद में एक व्यापारी चालान। एक क्लिनिक किसी ऐसे व्यक्ति को बिल देता है जो रोगी नहीं है। ऐसा करने का कोई तरीका नहीं है, वे या तो अपने स्वयं के ग्राहकों को अपनी प्रक्रिया का गलत प्रतिनिधित्व करते हैं या सब पर कनेक्ट नहीं कर सकते।

इसलिए एक लेन-देन कनेक्टर छह और सवालों का जवाब देता है। हर एक सख्त पढ़ने के लिए डिफ़ॉल्ट — कुछ भी नहीं हमेशा सुरक्षित है और कभी भी permisive, क्योंकि यह कहना कि जब उन्होंने सवाल नहीं सोचा था तो कोई लेखक क्या करता है।

transaction_kind

purchase, booking, subscription, bill_payment, transfer, application, top_up, renewalव्यवहार के बजाय शब्दावली: यह आपके ग्राहक द्वारा पढ़ा गया शब्द का फैसला करता है। तार हस्तांतरण को बुलाकर "आदेश" सहायक ध्वनि बनाता है जैसे कि वह व्यवसाय को समझ नहीं पाता है, जिसके लिए कोई सही पाइपलाइन उस से ठीक नहीं होती है। डिफ़ॉल्ट रूप से अपने ग्राहकों को पढ़ने वाले शब्दों को परिभाषित करता है, ताकि एक तार अंतरण को "आर्डर" कहा जा सके, जिससे वह सहायक ध्वनि को समझ न सके कि वह व्यापार को इसके लिए बोलता है और उसके लिए सही पाइपलाइन की कोई राशि नहीं हो सकती है। purchase.

decision_mode

immediate या deferredA. चुनें deferred कुछ भी है कि अंडरराइटिंग, क्रेडिट मूल्यांकन, संदर्भ, प्रवेश या एक समिति के लिए जाता है।OpsIQतो कहते हैं प्रस्तुत करना बजाय पुष्टिइसके बारे में पूछने के लिए, और उसके संदर्भ में हाथ। किसी को उनके आवेदन की पुष्टि होती है जबकि यह एक इंसान के साथ बैठता है, सबसे हानिकारक बात है जो एक चैट सहायक विनियमित व्यवसाय के लिए कर सकता है, और यह प्रत्येक खुदरा आकार के प्रवाह का डिफ़ॉल्ट व्यवहार है। डिफ़ॉल्ट रूप से अपने आवेदन को बताते हुए पुष्टि की जाती है, जबकि यह मानव के साथ बैठता है, वह सबसे हानिकारक चीज है जिसे एक चैट असिस्टेंट एक विनियमित व्यापार के लिए किया जा सकता है। immediate.

payment_timing

on_confirmation, deposit_then_balance, invoice_later या no_paymentयह तय करता है कि क्या OpsIQ एक भुगतान पृष्ठ खोलता है सबइसलिए इसे से नहीं समझा जा सकता payment_flow — that says कौन यह कहना है कि धन की प्राप्ति होती है क्या और कबबाद में आप चालान करते हैं, और उन अनुप्रयोगों को जो कुछ भी जमा नहीं करते हैं और एक गेटवे सूची तक पहुंचने के बजाय पुष्टिकरण पर समाप्त होते हैं जो खाली या गलत है।

reversibility

reversible या irreversibleसबसे महत्वपूर्ण बात यह है कि एक वित्तीय कनेक्टर कहता है। एक कमरा जारी किया जा सकता है और पार्सल वापस आ सकते हैं; एक पूरा स्थानांतरण नहीं हो सकता - कोई ऐसा नहीं है, पैसा दूसरे छोर पर होता है, और एकमात्र उपाय अजनबी को इसे वापस करने के लिए पूछ रहा है। घोषणा करना irreversible स्वचालित रूप से बलों cancellation_flow दो none और किसी भी ऑपरेटर सेटिंग को स्किपिंग पहचान सत्यापन से मना करता है, जो कुछ और यह घोषणा कहती हैदो क्षेत्रों असहमति एक राज्य नहीं है जो रनटाइम पर हल करने के लिए, जिसके द्वारा पहले पढ़ा जाता है। डिफ़ॉल्ट reversible.

cancellation_flow

none, platform_only या connector_cancelरद्द करने की भूमिका पहले से ही उन तक पहुंचने वाले किसी नियम के साथ मौजूद थी, और दो गलत अनुमान विपरीत दिशा में विफल हो गए: खुले का अनुमान लगाएं और एक चैट संदेश बिना शुल्क के भुगतान किए जाने वाली बुकिंग को रद्द कर देता है; बंद का अनुमान लगाएँ और एक ग्राहक जो रद्द करना चाहता है उसे फोन पर बताया गया है। connector_cancel इसके अलावा आवश्यकता cancellation_quote और order_cancel एक वसूली के साथ - OpsIQ यह कहकर कभी रद्द नहीं होता। none.

fulfilment_presence

customer_present या remote_deliveryक्या एक अत्यावश्यक ईमेल पता किसी को कुछ भी खर्च कर सकता है। होटल के अतिथि आना चाहिए, इसलिए गलत पते की प्राप्ति का गलत निर्देशन किया जाता है और यह कमरा अभी भी वहाँ है; पोस्ट पार्सल, एक अनुमत सर्वर या उस पते की ताकत पर एक डाउनलोड लिंक छोड़ देता है। यह क्या एक ऑपरेटर की "स्किप ईमेल सत्यापन" सेटिंग सभी पर उपलब्ध बनाता हैइसलिए एक होटल का तर्क कभी भी किसी कनेक्टर द्वारा विरासत में नहीं लिया जा सकता है जो जहाज के सामान को कभी नहीं पहुंचाया जा सकता। remote_delivery.

minimum_assurance और disclosure (वैकल्पिक)

minimum_assurance आप की मांग अधिक पहचान प्रमाण OpsIQ आवश्यकता नहीं है, कभी भी कम - एक हस्तांतरण के लिए कदम-अप की आवश्यकता वाले बैंक अनुबंध को बहिष्कार कर रहा है। इसे सेट करने से आपके कनेक्टर के सत्यापन के लिए ऑपरेटर की क्षमता को भी दूर किया जा सकता है क्योंकि व्यापारी का अपना जोखिम निर्णय ऑपरेटर की सुविधा को रेखांकित करता है। disclosure दिखाया गया शब्द है पहले पुष्टि बटन, एक दर के लिए, एक शुल्क या एक ठंडा बंद सही आप पेश करना चाहिए; इसके बिना विनियमित कारोबार smuggle एक उत्पाद नाम में शब्द की आवश्यकता होती है।

notify_flow

platform_automatic, platform_triggered या noneजब OpsIQ भुगतान करने के लिए अपना स्वयं का चेकआउट कभी नहीं चलता, तो वह जो भी सामान्य रूप से ईमेल कभी आग नहीं देता। भुगतान की रिकॉर्डिंग आदेश भुगतान को चिह्नित करता है; यह किसी को बताने के लिए कोई मंच नहीं मानता है। platform_triggered आवश्यकता order_notify एक वसूली के साथ भूमिका, औरOpsIQभुगतान के बाद ही पूछता है कि पैसे को रिकॉर्ड किया जाता है। घोषणा करना none बनाता हैOpsIQ-साइड कन्फर्मेशन कम्प्युल्सरी, क्योंकि अन्यथा भुगतान करने वाला ग्राहक बिल्कुल भी कुछ नहीं सुनता है। none.

उसी अनुबंध, नौ असंबंधित कारोबार

इनमें से कोई भी डिज़ाइन नहीं किया गया था। प्रत्येक अनुबंध एक अलग उद्योग के लिए ईमानदारी से जवाब दे रहा है, साथ ही साथ OpsIQ उनमें से किसी के बारे में कुछ भी नहीं जानते हैं।

एक अनुबंध, नौ उद्योग
Hotel        booking      immediate  deposit_then_balance  reversible    -> payment page, "confirmed", identity may be waived
Online shop  purchase     immediate  on_confirmation       reversible    -> payment page, "confirmed", identity always verified
Bank         transfer     immediate  on_confirmation       IRREVERSIBLE  -> payment page, no cancel route, never waived
Insurer      application  DEFERRED   no_payment            reversible    -> no payment page, "submitted", never "confirmed"
Utility      bill_payment immediate  on_confirmation       IRREVERSIBLE  -> payment page, nothing to give back
Clinic       booking      immediate  invoice_later         reversible    -> NO payment page, billed afterwards
Tradesman    booking      immediate  invoice_later         reversible    -> NO payment page, invoiced on completion
Telecom      top_up       immediate  on_confirmation       IRREVERSIBLE  -> payment page, final once sent
University   application  DEFERRED   no_payment            reversible    -> no payment page, decision follows
भुगतान की गई घटना ने प्लेटफार्मों को आपूर्ति की

एक मूल स्टोरफ्रंट भुगतान के बाद सक्रिय रूप से सत्यापित और प्रतिबद्ध है,OpsIQउत्सर्जन payment.completed साथ order_id, payment_id/provider_ref, gateway, सटीक amount_minorआईएसओ currencyग्राहक, रेखा आइटम, चैनल और paid_atएक व्यापारी कनेक्टर को उस सबूत के माध्यम से जारी रखना चाहिए record_payment इसे वापस पढ़े; एक होस्ट-चेकआउट कनेक्टर अपने स्वयं के आधिकारिक भुगतान कार्यक्रम का उपभोग करता है और उसे डुप्लिकेट भुगतान लिखने की अनुमति नहीं मिलती।

एआई एक प्रस्तावक नहीं है, कोई अधिकार स्रोत नहीं

मॉडल एक घोषित उत्पाद और मात्रा का चयन कर सकता है, लेकिन यह एक ऑपरेशन नाम नहीं चुन सकता, एक चेकआउट को छोटाURLया पाठ से व्यापारी राज्य बनाते हैं। ग्राहक को एक सटीक हस्ताक्षरित कार्ड प्राप्त होता है और उसे अपने पुष्टिकरण बटन दबाना पड़ता है। यह पुष्टि कार्यस्थान, कनेक्टर, आइटम, मात्रा, उद्धरण, मुद्रा, धागा और समाप्ति के लिए बाध्य होती है।

सामाजिक ग्राहक ईमेल प्रॉम्प्ट के बिना समान प्रवाह रखते हैं

WhatsApp, मैसेंजर,Instagram, Telegram, लाइन, एसएमएस और एक्स ग्राहक पहचान के रूप में प्रदाता-सत्यापित चैनल खाता का उपयोग करते हैं। प्रस्ताव उस चैनल खाते पर हस्ताक्षर किए जाते हैं और पुष्टि अभी भी उसी नए उद्धरण, स्टॉक, विचारधारा, भुगतान और वसूली नियंत्रण के माध्यम से चलती है। एक सामाजिक ग्राहक अपनी बातचीत में दिए गए सटीक एक बार की पुष्टि कार्रवाई का उपयोग करता है; सामान्य प्रश्न जैसे कि "हाँ" कभी ऑर्डर प्राधिकरण नहीं होता है।

ऑर्डर इतिहास एक सटीक पहचान लिंक का अनुसरण करता है, कभी भी ईमेल अनुमान नहीं लगाता

मूल आदेश को एक अपारदर्शी चैनल पहचान द्वारा अनुक्रमित किया जाता है, इसलिए एआई ईमेल या ऑर्डर नंबर के लिए पूछे बिना "मेरे ऑर्डर" का जवाब दे सकता है। जुड़े स्टोर इतिहास के लिए, वर्कस्पेस से चैनल की पहचान को लिंक करेंCRM/ क्लाइंट रिकॉर्ड और कनेक्टर में आधिकारिक ग्राहक / ऑर्डर लुकअप को लागू करते हैं। ग्राहक संदर्भ प्रदाताओं को उस संग्रहीत लिंक प्राप्त होता है; उन्हें डिस्प्ले नाम से एक खाता नहीं चुनना चाहिए या किसी ईमेल को चैट में टाइप करना चाहिए। एक मिलान आदेश के साथ एआई जवाब सीधे; कई के साथ यह मैचों की संक्षेप में प्रस्तुत करता है और पूछता है कि कौन सा; कोई भी ऐसा इतिहास जुड़ा हुआ नहीं है।

एक सार्वभौमिक भुगतान: प्रकार के फ़ील्ड और सर्वर स्वामित्व वाली पहचान

कोर में कोई WHMCS, होटल, सास, स्टोर, बैंक, उत्पाद, मार्ग या विक्रेता शाखा शामिल है। उद्धृत कार्रवाई का प्रकार parameters ग्राहक फॉर्म और एआई स्लॉट स्कीमा हैं। एक बुकिंग कनेक्टर तिथियों और मेहमानों को घोषित कर सकता है; एक बिलिंग कनेक्टर एक चक्र घोषित कर सकते हैं; भविष्य में उद्यम कनेक्टर अपने स्वयं के सुरक्षित क्षेत्रों की घोषणा कर सकता हैं। OpsIQ प्राइमिटिव कंट्रोल को साफ करता है और एकत्र किए गए मूल्यों को केवल मैप्ड कनेक्टर एक्शन पर भेज देता है।

टाइपिंग कोट एक्शन
{
  "action_id": "acme_customer_quote",
  "scope": "client",
  "is_destructive": false,
  "parameters": [
    {"name":"external_customer_id","type":"string","required":true},
    {"name":"item_id","label":"Product","type":"string","required":true},
    {"name":"quantity","label":"Quantity","type":"integer","required":true,"minimum":1},
    {"name":"cycle","label":"Billing cycle","type":"select","required":false,
     "options":[{"value":"monthly","label":"Monthly"},{"value":"annual","label":"Annual"}]}
  ]
}

के लिए clients_only, सेट customer_ordering.identity_parameter यह क्षेत्र कभी ग्राहक को नहीं दिखाया जाता है और किसी भी कॉलर-अनुपूरित मूल्य को हटा दिया जाता है; OpsIQ केवल सत्यापित कनेक्टर लिंक से आईडी इंजेक्ट करता है। अतिथि चेकआउट इसे खाली छोड़ देता है। एक टाइप ई-मेल घोषित अतिथि के लिए सबूत है, लॉगइन नहीं होता है और खरीद प्राधिकरण नहीं है।

समूहीकृत डोमेन: हस्ताक्षरित ग्राहक खातों और कनेक्टर विन्यास समूह-प्राथमिक पोर्टल वर्कस्पेस से संबंधित है। हालांकि, पहचान टोकन को सटीक सदस्य साइट के लिए साइन किया जाना चाहिए जो उस सदस्य के वेबहुक रहस्य का उपयोग करके विजेट को एम्बेड करता है। OpsIQ सत्यापित करता है कि पहले सतह और उसके बाद ही समूह प्राथमिक माध्यम से वाणिज्य और संबद्ध ग्राहक को हल करती है। कभी भी सदस्य साइट कुंजी को प्राथमिक कुंजी के साथ बदलें और कभी किसी सदस्य साइट पर प्राथमिक गुप्त की प्रतिलिपि नहीं करें।

कैनोनिकल लिफाफे कनेक्टर को वापस करना होगा

कैटलॉग
{
  "success": true,
  "data": {"items":[{
    "id":"42", "name":"Example product", "summary":"Customer-safe summary",
    "currency":"USD", "unit_amount_minor":2500, "available":true,
    "selection":{"item_id":"42"}
  }]}
}
उद्धरण
{
  "success": true,
  "data": {
    "quote_id":"opaque", "currency":"USD",
    "unit_amount_minor":2500, "total_amount_minor":5000,
    "selection":{"item_id":"42","quantity":2},
    "expires_at":"2026-08-31T14:05:00Z"
  }
}

प्लेटफॉर्म-चेकआउट प्रतिक्रिया मान्य कैनोनिकल उद्धरण को दोहराती है और एक HTTPS जोड़ती है checkout_urlकोर पुष्टिकरण पर उद्धरण को ताज़ा करता है और मुद्रा, कुल और स्थिर चयन की तुलना बिल्कुल करता है। कनेक्टर इन लिफाफे में अपनी मंच प्रतिक्रिया का अनुवाद करता है; कोर कभी विक्रेता फ़ील्ड का अनुवाद नहीं करता है या व्यापारी का निर्माण नहीं करताURL.

एक ऑपरेटर-निर्मित गेटवे को मूल स्टोर और चैट में उपलब्ध कराएं

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

नेटिव स्टोर गेटवे अनुबंध
{
  "commerce": {
    "roles": {
      "checkout_create": { "operation": "acme_checkout_create", "transport": "http",
                           "recovery": "acme_payment_status" },
      "payment_status":  { "operation": "acme_payment_status", "transport": "http" },
      "payment_profile": { "operation": "acme_payment_profile", "transport": "http" },
      "webhook_verify":  { "operation": "acme_webhook_verify", "transport": "http" },
      "event_map":       { "operation": "acme_event_map", "transport": "http" },
      "payment_refund":  { "operation": "acme_refund", "transport": "http",
                           "recovery": "acme_refund_status" }
    },
    "storefront_gateway": {
      "enabled": true, "version": 1, "label": "Acme Pay",
      "checkout_hosts": ["checkout.acmepay.com", "*.acmepay.com"]
    }
  }
}
कैनोनिकल चेकआउट आउटपुट

The चेकआउट कार्रवाई के नक्शे checkout_url और जब प्रदाता के पास एक होता है, session_idThe URL को एचटीटीपी होना चाहिए, इसमें कोई क्रेडेंशियल नहीं है और एक स्वीकार्य होस्ट से मेल खाता है।

कैनोनिकल स्टेटस आउटपुट

स्टेटस एक्शन एक नया प्रदाता API lookup और मानचित्र करता है। paid एक असली बोओलान के रूप में, amount_minor एक पूर्णांक के रूप में, currency एक तीन अक्षर ISO कोड के रूप में, और provider_refA return URL, क्वेरी स्ट्रिंग, क्लाइंट पेलोड या कनेक्टर-अनुपयोगित "confirmed" अनुदेश कभी भुगतान सच नहीं है।

वैकल्पिक वापसी अनुबंध

यदि प्रवेश द्वार वापसी का समर्थन करता है, तो नक्शा payment_refund और इसकी वसूली कार्रवाई। रिफंड सृजन सख्त रिटर्न देता है accepted और completed बोओलांस प्लस provider_refवसूली एक प्रदाता की तलाश और रिटर्न करता है statusदोनों कार्यों के बिना, OpsIQ कनेक्टर रिफंड को विज्ञापित नहीं करता है।

कौन आदेश की पुष्टि करता है

कनेक्टर कभी नहीं लिखते हैंOpsIQआदेश की स्थिति।OpsIQरिटर्न राशि और मुद्रा की तुलना वास्तव में करता है और प्रदाता संदर्भ को रिकॉर्ड करता है; केवल तब कोर प्रदाता-सत्यापित संक्रमण का प्रदर्शन करता है। मैनुअल बैंक ट्रांसफर एकमात्र ऐसा प्रवाह बना रहता है जिसका नाम एजेंट अनुमोदन कर सकता है।

कनेक्टर बिल्डर में, टिक वाणिज्य, भूमिकाओं का नक्शा, और या तो कॉन्फ़िगर करें कनेक्टेड स्टोर ग्राहक ऑर्डर, मूल स्टोर भुगतान गेटवेजब कनेक्टर वास्तव में दोनों अनुबंध प्रदान करता है, या दोनों। विज़ार्ड घोषणा को मान्य करता है और लिखते हैं commerce_roles.jsonअभी भी प्रकाशित सामान्य बाज़ार समीक्षा और हस्ताक्षर प्रक्रिया का उपयोग करता है; यह अनुबंध कभी पैकेज सत्यापन को बायपास नहीं करता है या कनेक्टर को गैर-अनइंस्टॉल करने योग्य बनाता है। हाथ से किसी भी पैकेज को सत्यापित करें php tools/verify_commerce_contracts.php.
💡
परिवहन है http दूरस्थ के लिए API या bridge एक तैनात पुल पर नामित संचालन के लिए (NO- देखें)APIनीचे पैटर्न)। रोल्स परिवहन-एग्नोस्टिक हैं; रनटाइम को सिर्फ़ ट्रांसपोर्ट की जरूरत है ताकि यह संस्करण-जोड़ा एक पुल हो सके।
कनेक्टर्स

एक कनेक्टर के बिना चैट के माध्यम से बेचें: एक्शन एंड ट्रिगर

ऊपर वाणिज्य अनुबंध को कनेक्टर पैकेज की आवश्यकता नहीं है। यदि आपका प्लेटफ़ॉर्म अपना है - एक कस्टम बैक ऑफिस, एक आंतरिक API, एक सिस्टम नोबॉडी एक कनेक्टर को भेजता है - आप उसी बिक्री मशीनरी तक पहुंच सकते हैं जिसमें दो उपकरण पहले से ही कुछ और एकीकृत करने के लिए उपयोग करते हैं: कस्टम एक्शन (आपका HTTP समापन बिंदु, एक्शन पेज पर परिभाषित) और ट्रिगर्स (वेबहुक को बाहर निकालते हुए)। समान अनुबंध, वही कार्ड, समान पहचान आश्वासन, एक ही भुगतान कर्नेल, समान रसीद। केवल एक चीज गायब हो रही है पैकेज, क्योंकि साइन करने के लिये कोई तीसरे पक्ष का कोड नहीं है ।

यह कैसे एक साथ फिट बैठता है

आप प्रति वाणिज्य भूमिका एक कस्टम कार्रवाई का निर्माण करते हैं - प्रत्येक आपकी तरफ एक सादे HTTPS समापन बिंदु है, जो नीचे परिभाषित किया गया है। एआई और स्वचालन → कार्य इसके साथ URL, auth header और मापदंडों। फिर आप एक घोषणा को बचाते हैं कि उन कार्यों में मैप भूमिकाओं का वर्णन करता है। उस समय से आपका स्टोर वास्तव में कनेक्टर समर्थित एक की तरह चैट में दिखाई देता है: AI उद्धरण से उद्धृत करता है आपका उद्धरण कार्रवाई, पुष्टिकरण कार्ड प्रस्तुत करता है, ग्राहक अपने ईमेल को सत्यापित करता है। आपका एक idempotency कुंजी के साथ आदेश कार्रवाई,OpsIQवर्कस्पेस गेटवे के माध्यम से भुगतान करता है, और आपका रिकॉर्ड भुगतान कार्रवाई यह किताब है। ग्राहक अनुभव के बारे में कुछ भी नहीं कहते "कस्टम"।

घोषणा

इसे सहेजें JSON वर्कस्पेस सेटिंग के रूप में commerce_custom_integration (setting)→उन्नत सेटिंग्स, या आरईएसटी सेटिंग के माध्यम सेAPIयह एक पैकेज के समान आकार है commerce_roles.json वाणिज्य नोड, साथ action अपने कस्टम एक्शन ids का नामकरण:

commerce_custom_integration
{
  "enabled": true,
  "roles": {
    "catalog_search":  { "action": "acme_catalog" },
    "quote":           { "action": "acme_quote" },
    "order_get":       { "action": "acme_order_get" },
    "customer_create": { "action": "acme_customer_create",
                         "recovery": "acme_customer_by_email" },
    "order_create":    { "action": "acme_order_create",
                         "recovery": "acme_order_by_key" },
    "record_payment":  { "action": "acme_record_payment",
                         "recovery": "acme_payment_by_key" }
  },
  "customer_ordering": {
    "enabled": true, "version": 1,
    "mode": "direct_order",
    "audience": "guests_and_clients",
    "account_flow": "connector_signup",
    "payment_flow": "opsiq_gateway",
    "label": "Acme Store",
    "identity_parameter": "client_identifier",
    "quantity_parameter": "quantity",
    "transaction_kind": "purchase",
    "fulfilment_presence": "remote_delivery",
    "notify_flow": "platform_automatic"
  }
}

अंत में, जोड़ें custom_commerce सेटिंग के तहत बेचने के लिए सक्षम कनेक्टर्स के लिए→ग्राहक चैट→चैट के माध्यम से बेचना। प्रवेश पर फिर से जांच की जाती है हर अनुरोध, और यह आपके स्टोर को चुपचाप छिपाने के बजाय नामित कारणों से मना करता है: एक भूमिका आपके मोड की आवश्यकता होती है कि मैप्स कुछ भी नहीं, वसूली कार्रवाई के बिना एक लिखने की भूमिका (§)15.7- एक लिखने जिसके परिणाम को फिर से खारिज नहीं किया जा सकता है), एक ऐसी कार्रवाई जिसे आपके सहेजने के बाद से हटा दिया गया या अक्षम कर दिया गया है।

प्रत्येक कार्रवाई क्या करना चाहिए

कनेक्टर लिफाफे वापस

जवाब देना {"success": true, "data": { ... }} - या {"success": false, "error": "a sentence a customer may read"}The action of the action of a action. उत्तरदायित्व सफलता पथ लिफाफे पर इंगित करना चाहिए।

उद्धरण: all-in कुल, लघु इकाइयों में

वापसी quote_id, product_name, quantity, unit_amount_minor, total_amount_minor, currency, selection, selection_summary, expires_at"आपका कुल एकमात्र ऐसा आंकड़ा है जो धन को ले जाता है" अनुभाग ऊपर क्रियाविधि लागू करता है: कर, शुल्क और गुणक अपने कुल में जाने के कारण आपका कुल क्या होता है, दिखाया गया है और चार्ज किया जाता है।

आदेश बनाना: idempotency कुंजी सम्मान

आपको प्राप्त करना idempotency_keyहस्ताक्षरित total_minor और currencyसत्यापित customer_emailअपने स्वयं के उद्धरण मापदंडों को और अधिक पढ़ें. आदेश के साथ कुंजी स्टोर करें; यदि आपने पहले ही इसके लिए एक ऑर्डर बनाया है, तो उस क्रम को दूसरे के बजाय वापस लौटा दें। पैसे सत्यापित करें - अगर आपकी प्रणाली हस्ताक्षरित कुल की तुलना में अलग-अलग ऑर्डर की कीमतें रखती है, तब तक पुनः प्राप्त करने से मना कर देती है। reference आपका प्लेटफ़ॉर्म मान्यता देता है।

वसूली: एक लिखने के बारे में जवाब

order_by_key idempotency key and answers {"found": true, "order": {...}} या {"found": false}पाया गया: झूठ एक वादा है -OpsIQइसकी ताकत पर लिखने को फिर से तैयार कर सकते हैं। स्टेटस फीड या हाल के आदेशों की सूची एक लेखन के बारे में जवाब नहीं है।

रिकॉर्ड भुगतान: अपने स्वयं के निपटान पथ

गेटवे लेनदेन आईडी को आइडमेटेंसी कुंजी के रूप में प्राप्त करता है और इसके बाद आपका ऑर्डर संदर्भ, OpsIQ ने प्रवेश द्वार के साथ सक्रिय रूप से सत्यापित राशि और मुद्रा निर्धारित की है। अपने प्लेटफॉर्म के स्वयं के तर्क के माध्यम से भुगतान किए गए आदेश को चिह्नित करें - अपना खुद का ईमेल आग लगाएँ, अपना खुदका स्टॉक कम करें। platform_notified: true यदि आपका प्लेटफ़ॉर्म ग्राहक को ईमेल करता है।

कार्ड इनपुट आपके एक्शन पैरामीटर से आते हैं

आपके द्वारा घोषित किसी भी पैरामीटर को अपने QUOTE एक्शन (पहचान पैरामीटर से परे) पर कहा जाता है कि AI ने एकत्र नहीं किया है, पुष्टिकरण कार्ड पर एक इनपुट के रूप में प्रस्तुत किया है जो ग्राहक खुद को भरता है - डोमेन, एक तारीख, एक सीट। उन्हें अच्छी तरह लेबल करें; लेबल वह है जो ग्राहकों को पढ़ा जाता है।

ट्रिगर: अपनी बिक्री सुनो

दो घटनाओं साझा घटना बस पर आग, तो अपने वेबहुक और स्वचालन जहां भी यह निष्पादित किया हर चैट बिक्री सुन:

commerce.order.created

जिस समय ऑर्डर व्यापारी पक्ष पर उतरता है, भुगतान से पहले — संदर्भ, कनेक्टर (या custom_commerce), राशि, मुद्रा, ग्राहक ईमेल, धागा आईडी।

commerce.payment.confirmed

जब प्रवेश द्वार सक्रिय रूप से भुगतान को सत्यापित करता है तो एक बार ऑर्डर के अनुसार। यह उसी दावे की सवारी करता है जो डुप्लिकेट रसीदों को रोकता है, इसलिए यह आपके वेबहुक को दोगुना नहीं कर सकता है।

जब एक कनेक्टर में स्नातक करने के लिए

कस्टम एकीकरण कार्यक्षेत्र विन्यास है: यह आपके कार्यस्थल पर, आपकी दुकान को काम करता है। जिस क्षण आप एकीकरण वितरित करना चाहते हैं - अन्य कार्यस्थानों, बाज़ार, संस्करणिंग, हस्ताक्षर करने, भुगतान किए गए इंस्टॉल - एक ही कार्रवाई का पैकेज और कनेक्टर के समान घोषणा। अनुबंध बदल नहीं जाता; केवल रैपर ही करता है

कनेक्टर्स

एक ऐसा मंच कनेक्ट करें जिसमें कोई API (पट्टिका पैटर्न) नहीं है।

रियल प्लेटफॉर्म के बहुत सारे जहाज़ नहीं आरईएसटीAPIसभी पर एक होटल सीएमएस, एक पुराना बिलिंग सिस्टम, एक बेस्पोक आंतरिक उपकरण। आप अभी भी पूरी तरह से लिख सकते हैंOpsIQएक के लिए कनेक्टर: कनेक्टर एक एकल पीएचपी फ़ाइल को जहाज करता है कि ऑपरेटर अपने सार्वजनिक वेबरूट में गिर जाता है, और वह फाइल आई.एस.APIयह पृष्ठ पूरी तरह से पैटर्न है, जिसमें नियम जो इसे चलाने के लिए सुरक्षित हैं और प्रत्येक नियम के पीछे का कारण बनता है।

इसका आकार

एक सामान्य कनेक्टर किसी और के बारे में कहता है API. एक पुल कनेक्टर अपने आप को लाता है। कुछ और परिवर्तन नहीं: समान कार्य, समान संदर्भ प्रदाता, वही पहचान अनुबंध, उसी पैकेज लेआउट।

1
आप एक PHP फ़ाइल लिखने

It lives in your package at bridge/opsiq-<platform>-bridge.php. It talks to the platform's database directly, or boots the platform's framework, or both. It answers JSON.

2
ऑपरेटर इसे अपने वेबरूट में कॉपी करता है

प्लेटफॉर्म के अपने index. php के आगे कोई प्लेटफ़ॉर्म कोड संशोधित नहीं किया गया है, कोई प्लगइन स्थापित नहीं है, जो प्लेटफॉर्म अपग्रेड में बनाए रखने के लिए कुछ भी नहीं है।

3
कनेक्टर पैनल उन्हें फाइल को सौंप देता है

आपकी सेटिंग्स।jsonवेबहुक_help.snippet_template की घोषणा करता है। कनेक्टर पृष्ठ इसे पहले से ही उनके लाइव सेटिंग्स के साथ एक प्रतिलिपि योग्य फ़ाइल के रूप में प्रस्तुत करता है, इसलिए हाथ से संपादित करने के लिए कुछ भी नहीं है।

4
OpsIQइसे सर्वर-टू-सर्वर कहते हैं

आपका क्लाइंट.php एक X- में साझा कुंजी के साथ GET अनुरोध भेजता हैOpsiq-Bridge कुंजी हैडर। आधारURLसेटिंग प्लेटफॉर्म साइट रूट है।

कनेक्टर बिल्डर अब आपके लिए यह उत्पन्न कर सकता है। "प्लैटफॉर्म विद नोAPI"प्रोफ़ाइल (या पुल के लिए डेटा एक्सेस सेट) और यह पुल फ़ाइल, मेलिंग पैनल स्निपेट और टाइप किए गए कार्यों का उत्सर्जन करता है जो इसके माध्यम से पढ़े और लिखते हैं - लारवेल एप्लिकेशन के लिए इसकी .env पढ़ने के लिए, forWordPressपढ़ना wp-config.php, या क्रेडेंशियल के साथ आप किसी अन्य चीज़ के लिए पेस्ट करते हैं। ब्रिज मोड निश्चित करता है प्रमाणीकरण करने के लिएOpsIQपुल प्रोटोकॉल: कनेक्टर सुरक्षित रूप से उत्पन्न होता है api_key जब सक्षम हो जाता है, तो इसे भेज देता है X-Opsiq-Bridge-Key, और उस मूल्य को उसी तरह बचाए गए मान को बांधता है OPSIQ_BRIDGE_KEY प्रतिलिपि योग्य फ़ाइल में। केवल तभी हैंड-ऑफ़्टर जब आपका प्लेटफॉर्म उनमें से कोई नहीं है, या जब आपको व्यवहार की आवश्यकता होती है तो उत्पन्न पुल कवर नहीं होता है। एक हाथ से लिखने वाला पुल विज़ार्ड से सुरक्षित है: यह केवल अपने मार्करों को ले जाने वाली ब्रिज फाइल को ओवरराइट करता है।
💡
इस पृष्ठ पर सब कुछ PHP के खिलाफ दिखाया गया हैMySQLक्योंकि यह संदर्भ कार्यान्वयन है और एकमात्र संयोजन पैकेजिंग पाइपलाइन पूरी तरह से समर्थन करता है। पैटर्न स्वयं भाषा-एग्नोस्टिक और इंजन-एग्नोस्टिक है: नोड, पायथन, गो, रूबी, .NET और जावा में गेट के लिए "अन्य भाषाओं और अन्य डेटाबेस में पुल" देखें, परिचय क्वेरी फॉर नोडे, पाइथन (noty), गो, रुबी, (nnet) और जावा (jav) में प्रवेश करने के लिए।PostgreSQL, SQLसर्वर,SQLiteओरेकल, औरMongoDBसमतुल्य - पैकेजिंग बाधा के साथ जो यह तय करता है कि कैसे एक गैर-पीएचपी पुल ऑपरेटर तक पहुंचता है।

सुरक्षा मॉडल, और प्रत्येक नियम क्यों है

यह फ़ाइल एक साझा कुंजी के पीछे सार्वजनिक वेबरूट में बैठता है। वह एकल तथ्य नीचे हर नियम को चलाता है। अपने पुल को सरल बनाने के लिए उनमें से किसी को आराम न करें।

कॉलर कभी नहीं आपूर्ति करता SQL

एक WHERE क्लॉज नहीं, कोई ORDER BY विखंडित नहीं है, न कि "इस बार" कच्चे क्वेरी पैरामीटर। कॉलर एक टेबल, एक कॉलम और एक मान का नाम देता है; आपकी फ़ाइल स्टेटमेंट बनाती है। पल जब एक कॉलर योगदान कर सकता हैSQLपाठ, एक साझा कुंजी मध्यस्थ डेटाबेस निष्पादन हो जाता है।

तालिका और स्तंभ नामों information_schema के खिलाफ मान्य हैं

पहचानकर्ता को पैरामीटर के रूप में बाध्य नहीं किया जा सकता है, इसलिए उन्हें इसके बजाय जांच करनी होगी। इस डेटाबेस के लिए वास्तविक तालिका और स्तंभ सूची पढ़ें और उस पर कुछ भी मना करें। एक पहचानकर्ता जो इस स्कीमा का असली वस्तु नहीं है तो सभी पर कोई क्वेरी नहीं पहुंच सकता - जो कि हर टेबल को बेनकाब करने के लिए इसे सुरक्षित बनाता है।

हर मान एक बाध्य पैरामीटर है

अपवाद के बिना, जिसमें खोज के अंदर मूल्यों शामिल हैं। मान्य पहचानकर्ता प्लस बाध्य मान वह जोड़ी है जो सतह को कुल और इंजेक्शन की सतह शून्य बनाता है।

पढ़े सार्वभौमिक हैं, लिखते हैं अनुमति-सूचीबद्ध

अगले ब्लॉक को देखें। यह नियम है जो लोग सबसे अधिक छोड़ना चाहते हैं।

गुप्त स्तंभों को पढ़ने और लिखने पर मना करने से इनकार कर दिया जाता है

कॉलम पर मैच NAME: पासवर्ड, याद_टोकन, रहस्य, api_key, private_key. इस तरह से एक प्लेसहोल्डर के साथ मूल्य बदलें। पूरी तरह से लिखने में मना करें - कच्चे पासवर्ड हैश लिखना एक ऑपरेशन नहीं है, यह एक footgun है। ऑपरेटर को प्लेटफॉर्म के अपने पासवर्ड प्रवाह के लिए भेजें।

डिले एकल पंक्ति हैं, प्राथमिक कुंजी द्वारा

कभी भी एक थोक हटाने, फ़िल्टर द्वारा कभी भी कोई डिलीट नहीं। एक थोक हटाना यह है कि डेटाबेस कैसे मर जाता है। यदि किसी को वास्तव में एक की जरूरत होती है तो वे इसे मंच पर कर सकते हैं।

पढ़े गए हैं पंक्ति-capped

एक हार्ड छत के साथ सीमा पैरामीटर दबाना। एक रनवे क्वेरी को चैट संदेश के माध्यम से डेटाबेस को डंप करने में सक्षम नहीं होना चाहिए।

जब तक कुंजी निर्धारित नहीं होती तब तक विफल रहता है

एक अनकॉन्फ़िगर पुल जवाब 403 सब कुछ करने के लिए। एक पुल जो इससे पहले कि इसे कॉन्फ़िगर किया गया है, वह एक पुल है जो किसी अजनबी के लिए सहायक था।

लगातार समय की तुलना, एक शीर्षलेख में कुंजी

हैश_equals, कभी नहीं ==. कुंजी X- में चला जाता हैOpsiq-ब्रिज कुंजी, क्वेरी स्ट्रिंग नहीं है, इसलिए यह एक्सेस लॉग्स, प्रॉक्सी लॉग और रेफरर हेडर्स से बाहर रहता है।

केवल

एक विधि, एक आकार, किसी शरीर में धब्बा करने के लिए कुछ भी नहीं है। सब कुछ पुल वैध मापदंडों के साथ एक GET के रूप में व्यक्त किया जाता है, औरOpsIQएकमात्र कॉलर है।

सार्वभौमिक पढ़ता है, अनुमति-सूचीबद्ध लिखा जाता है - और क्यों

यह वह नियम है जो साथ बहस करता है, इसलिए यहां पूर्ण तर्क है। सहायक पूरे मंच को SEE करने में सक्षम होना चाहिए: यही कारण है कि यह उपयोगी बनाता है और एक पढ़ा कुछ भी नष्ट नहीं कर सकता है। राइट्स अलग हैं। यह फ़ाइल किसी साझा कुंजी के पीछे सार्वजनिक वेबरूट में बैठता है। यदि उस कुंजी लीक, तो एक अप्रतिबंधित लेखन सतह पूरी डेटाबेस नियंत्रण के बराबर रिसाव बनाती है - एक नया व्यवस्थापक उपयोगकर्ता, एक खाली बुकिंग तालिका। एक अनुमति-सूची का मतलब है कि एक लीक कुंजी अभी भी ऑपरेटर कभी सक्षम नहीं हो सकती है।

⚠️
The OpsIQ अनुमोदन कार्ड AI को गेट करता है, कुंजी नहीं। व्यवस्थापक क्लिक करने के लिए एक विनाशकारी कार्रवाई की अनुमति सहायक पर नियंत्रण है। यह उन पर कोई नियंत्रण नहीं है जिनके पास पुल कुंजी भी है। वे दो अलग-अलग खतरे हैं और स्वीकार्य सूची दूसरे व्यक्ति का उत्तर है।
ऑपरेटर-फेसिंग घुंडी, बोटल पुल से
/* ── WRITE ALLOW-LIST — which tables the assistant may CHANGE here.
 *
 * READS are unrestricted: the assistant can see every table in the platform.
 * WRITES are limited to this list, because this file sits in a PUBLIC webroot
 * behind ONE shared key — an allow-list means that even a leaked key cannot
 * reach a table you never enabled (no new admin users, no emptied bookings).
 *
 * Comma-separated table names. Add tables as you need them — e.g. append
 * ',pages,posts' to let the assistant edit site content. Set it to '*' to
 * allow every table, deliberately. Empty falls back to the hotel defaults. ── */
const OPSIQ_WRITE_TABLES = 'ht_bookings,ht_booking_rooms,ht_booking_addresses,ht_rooms,ht_room_types,ht_customers,customers';

नीचे की जाँच में दो विवरण गलत होने के लिए आसान हैं। तालिका का नाम पहले से ही ROLVED आता है, जिसमें इंस्टॉल की टेबल उपसर्ग होता है, जबकि एक ऑपरेटर अनुमति-सूची को अप्रस्तुत लिखते हैं क्योंकि यह वह है जो वे स्वाभाविक रूप से टाइप करेंगे। दोनों तरीकों या एक पूर्व निर्धारित स्थापित की तुलना चुपचाप कुछ भी नहीं और हर लिखने वाले ब्रेक की अनुमति देती है। और इनकार खुद को समझाना चाहिए, क्योंकि व्यक्ति इसे पढ़ने वाला व्यक्ति चैट विंडो में एक व्यवस्थापक है, न कि स्टैक ट्रेस के साथ डेवलपर।

अनुमति-सूची की जांच, बाज़ार से क्रियाविधि_कनेक्टर/बोतल/ब्रिज/opsiq-botble-bridge.php
/** Tables a WRITE may touch. Empty = the built-in defaults. */
$writeAllowed = static function (string $table) use ($prefix): bool {
    $raw = trim((string)(defined('OPSIQ_WRITE_TABLES') ? OPSIQ_WRITE_TABLES : ''));
    if ($raw === '') $raw = 'ht_bookings,ht_booking_rooms,ht_rooms,ht_customers,customers';
    if (trim($raw) === '*') return true;                     // explicit opt-in to everything
    $bare = ($prefix !== '' && stripos($table, $prefix) === 0) ? substr($table, strlen($prefix)) : $table;
    foreach (explode(',', $raw) as $t) {
        $t = trim($t);
        if ($t === '') continue;
        if (strcasecmp($t, $table) === 0) return true;
        if (strcasecmp($t, $bare)  === 0) return true;
        if ($prefix !== '' && strcasecmp($prefix . $t, $table) === 0) return true;
    }
    return false;
};

/** One refusal, one explanation — used by every write op. */
$requireWritable = static function (string $table) use ($writeAllowed): void {
    if ($writeAllowed($table)) return;
    opsiq_bridge_out(['success' => false, 'error' =>
        'write_not_allowed: "' . $table . '" is not in this bridge\'s write allow-list. '
        . 'Reads are unrestricted. To permit writes here, add the table to OPSIQ_WRITE_TABLES '
        . 'in opsiq-botble-bridge.php (or set it to "*" to allow every table).'], 403);
};

गेट, पूर्ण रूप से

इस क्रम में, किसी भी चीज से पहले डेटा को छूने के लिए चार चेकों की जाँच करें। ऑर्डर के साथ-साथ चेकों को कॉपी करें।

चार गेट चेक, क्रम में
<?php
declare(strict_types=1);

/* ── EDIT THIS: a long random secret (40+ chars). Empty = bridge OFF. ── */
const OPSIQ_BRIDGE_KEY = '';

header('Content-Type: application/json; charset=utf-8');
header('Cache-Control: no-store');

function opsiq_bridge_out(array $payload, int $code = 200): void
{
    http_response_code($code);
    echo json_encode($payload, JSON_UNESCAPED_SLASHES);
    exit;
}

/* 1. Fail closed. An unconfigured bridge answers nothing to anyone. */
if (OPSIQ_BRIDGE_KEY === '' || strlen(OPSIQ_BRIDGE_KEY) < 24) {
    opsiq_bridge_out(['success' => false, 'error' => 'bridge_not_configured'], 403);
}
/* 2. One method. */
if (strtoupper((string)($_SERVER['REQUEST_METHOD'] ?? '')) !== 'GET') {
    opsiq_bridge_out(['success' => false, 'error' => 'method_not_allowed'], 405);
}
/* 3. Constant-time key comparison, key from a header (never the query string). */
$given = (string)($_SERVER['HTTP_X_OPSIQ_BRIDGE_KEY'] ?? '');
if ($given === '' || !hash_equals(OPSIQ_BRIDGE_KEY, $given)) {
    opsiq_bridge_out(['success' => false, 'error' => 'forbidden'], 403);
}
/* 4. Only now read credentials and connect. */

सूचना के खिलाफ पहचानकर्ता को मान्य करना

यह वह टुकड़ा है जो "सहायक किसी भी टेबल तक पहुंच सकता है" को बिना किसी सुरक्षित में बदल देता है। वास्तविक स्कीमा के खिलाफ कॉलर का नाम फिर से स्थापित करें, एक लापता या अतिरिक्त तालिका उपसर्ग बर्दाश्त करें और कुछ अन्य लोगों के लिए शून्य वापस लौटें। सबकुछ डाउनस्ट्रीम तब उस नाम के साथ काम करता है जो संभवतः मौजूद है।

पहचानकर्ता सत्यापन और रिडीक्शन, बोटल पुल से क्रियाशील
/** Real tables in THIS database — the allow-list, straight from the DB. */
$allTables = static function () use ($pdo, $db): array {
    static $cache = null;
    if ($cache !== null) return $cache;
    $st = $pdo->prepare('SELECT TABLE_NAME FROM information_schema.TABLES WHERE TABLE_SCHEMA = ? ORDER BY TABLE_NAME');
    $st->execute([$db]);
    return $cache = array_map('strval', $st->fetchAll(PDO::FETCH_COLUMN));
};

/** Resolve a caller-supplied table name to a REAL one, or null. */
$resolveTable = static function (string $name) use ($allTables, $prefix): ?string {
    $name = trim($name);
    if ($name === '' || !preg_match('/^[A-Za-z0-9_]+$/', $name)) return null;
    $tables = $allTables();
    foreach ($tables as $t) if (strcasecmp($t, $name) === 0) return $t;
    /* Tolerate a missing or extra table prefix. */
    foreach ($tables as $t) {
        if (strcasecmp($t, $prefix . $name) === 0) return $t;
        if ($prefix !== '' && strcasecmp($prefix . $t, $name) === 0) return $t;
    }
    return null;
};

/** Column introspection: table => [column => true]. Cached per request. */
function opsiq_bridge_columns(PDO $pdo, string $db, string $table): array
{
    static $cache = [];
    if (isset($cache[$table])) return $cache[$table];
    $stmt = $pdo->prepare('SELECT COLUMN_NAME FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = ? AND TABLE_NAME = ?');
    $stmt->execute([$db, $table]);
    $cols = [];
    foreach ($stmt->fetchAll(PDO::FETCH_COLUMN) as $c) $cols[strtolower((string)$c)] = true;
    return $cache[$table] = $cols;
}

/** Columns whose VALUES must never leave the platform. */
$secretCol = static function (string $c): bool {
    return (bool)preg_match('/(^|_)(password|remember_token|secret|api_key|private_key|salt|token)($|_)/i', $c);
};
/** Columns a write may never touch — auth material. */
$writeBanned = static function (string $c): bool {
    return (bool)preg_match('/(^|_)(password|remember_token)($|_)/i', $c);
};
/** Strip secret values from a row before it leaves the server. */
$redact = static function (array $row) use ($secretCol): array {
    foreach ($row as $k => $v) if ($secretCol((string)$k)) $row[$k] = '[redacted]';
    return $row;
};

A read op and a लिखने op, full

नोट क्या बाध्य है और क्या मान्य है। फिल्टर कॉलम वास्तविक स्तंभ सूची के खिलाफ जांच की जाती है और फिर पहचानकर्ता के रूप में बातचीत की जाती हैं; इसका मूल्य बाध्य है। सीमा को दबा दिया जाता है। पंक्तियां रास्ते पर रीडीटेड होती हैं। अद्यतन प्राथमिक कुंजी और किसी भी auth स्तंभ से इनकार करता है, और जब तालिका एक होती है तो उसे अपडेट किया गया टिकट।

किसी भी तालिका को पढ़ें - मान्यता प्राप्त पहचानकर्ता, बाध्य मान, छायांकित पंक्तियां
case 'query': {
    $t = $resolveTable((string)($_GET['table'] ?? ''));
    if ($t === null) opsiq_bridge_out(['success' => false, 'error' => 'unknown_table'], 404);
    $cols = opsiq_bridge_columns($pdo, $db, $t);
    if (!$cols) opsiq_bridge_out(['success' => false, 'error' => 'unknown_table'], 404);

    $sql = "SELECT * FROM `$t` WHERE 1=1";
    $args = [];

    /* Equality filter: column must be REAL, value is bound. */
    $wc = strtolower(trim((string)($_GET['where_column'] ?? '')));
    if ($wc !== '') {
        if (!isset($cols[$wc])) opsiq_bridge_out(['success' => false, 'error' => 'unknown_column: ' . $wc], 400);
        $sql .= " AND `$wc` = ?";
        $args[] = (string)($_GET['where_value'] ?? '');
    }
    /* Ordering: column validated, direction from a fixed pair. */
    $ob = strtolower(trim((string)($_GET['order_by'] ?? '')));
    if ($ob !== '' && isset($cols[$ob])) {
        $dir = strtoupper(trim((string)($_GET['order'] ?? 'DESC'))) === 'ASC' ? 'ASC' : 'DESC';
        $sql .= " ORDER BY `$ob` $dir";
    } elseif (isset($cols['id'])) {
        $sql .= " ORDER BY `id` DESC";
    }
    /* Hard row cap. */
    $lim = (int)($_GET['limit'] ?? 25);
    if ($lim < 1)   $lim = 25;
    if ($lim > 200) $lim = 200;
    $off = max(0, (int)($_GET['offset'] ?? 0));
    $sql .= " LIMIT $lim OFFSET $off";

    $st = $pdo->prepare($sql);
    $st->execute($args);
    $rows = array_map($redact, $st->fetchAll());
    opsiq_bridge_out(['success' => true, 'data' => [
        'table' => $t, 'returned' => count($rows), 'rows' => $rows,
    ]]);
}
एक पंक्ति लिखें - अनुमति-सूचीबद्ध तालिका, प्राथमिक कुंजी द्वारा auth स्तंभों, एकल पंक्ति से इनकार कर दिया
case 'record.update': {
    $t = $resolveTable((string)($_GET['table'] ?? ''));
    if ($t === null) opsiq_bridge_out(['success' => false, 'error' => 'unknown_table'], 404);
    $requireWritable($t);                       // the allow-list, before anything else
    $cols = opsiq_bridge_columns($pdo, $db, $t);
    $pk   = $primaryKey($t);
    $id   = (string)($_GET['id'] ?? '');
    if ($id === '') opsiq_bridge_out(['success' => false, 'error' => 'id_required'], 400);

    $set = json_decode((string)($_GET['set'] ?? ''), true);
    if (!is_array($set) || !$set) opsiq_bridge_out(['success' => false, 'error' => 'set_json_required'], 400);

    $frag = []; $args = [];
    foreach ($set as $col => $val) {
        $col = strtolower(trim((string)$col));
        if (!isset($cols[$col]))  opsiq_bridge_out(['success' => false, 'error' => 'unknown_column: ' . $col], 400);
        if ($writeBanned($col))   opsiq_bridge_out(['success' => false, 'error' => 'refused: "' . $col . '" is auth material - change it through the platform own password flow, never by direct write.'], 400);
        if ($col === $pk)         opsiq_bridge_out(['success' => false, 'error' => 'refused: the primary key cannot be rewritten.'], 400);
        if (is_array($val) || is_object($val)) $val = json_encode($val, JSON_UNESCAPED_SLASHES);
        $frag[] = "`$col` = ?";
        $args[] = ($val === null) ? null : (string)$val;
    }
    if (isset($cols['updated_at']) && !isset($set['updated_at'])) $frag[] = '`updated_at` = NOW()';

    $before = $pdo->prepare("SELECT * FROM `$t` WHERE `$pk` = ? LIMIT 1");
    $before->execute([$id]);
    $prev = $before->fetch();
    if (!$prev) opsiq_bridge_out(['success' => false, 'error' => 'not_found'], 404);

    $args[] = $id;
    $up = $pdo->prepare("UPDATE `$t` SET " . implode(', ', $frag) . " WHERE `$pk` = ? LIMIT 1");
    $up->execute($args);
    opsiq_bridge_out(['success' => true, 'data' => [
        'table' => $t, 'id' => $id, 'changed' => $up->rowCount(),
        'before' => $redact(array_intersect_key($prev, $set)),
    ]]);
}

जीवित स्कीमा मतभेद

मंच संस्करण अलग हैं। कॉलम आगे बढ़ते हैं, नाम बदल जाते हैं या अनुपस्थित होते हैं। एक पुल जो एक स्कीमा को एक इंस्टॉल पर काम करता है। इसके बजाय इंट्रोस्पेक्ट और अनुकूल: केवल उन स्तंभों का चयन करें जो यहां मौजूद हों, टेबल के उपसर्ग को सहन करते हैं, और संदर्भ की संभावित वर्तनी की कोशिश करते हैं।

स्कीमा सहिष्णुता, बोटल पुल से
/* Only ever select columns that exist on THIS install. */
$pick = static function (array $cols, array $wanted, string $alias = 'b'): string {
    $out = [];
    foreach ($wanted as $c) if (isset($cols[$c])) $out[] = "`$alias`.`$c`";
    return $out ? implode(', ', $out) : "`$alias`.*";
};

/* References vary: stored with or without a leading "#", with or without an
 * operator-configured alpha prefix, or only as a numeric id. Try every
 * plausible form — the PROOF match is what actually gates disclosure, so
 * tolerant matching here is safe. */
$refCandidates = [$ref, '#' . $ref];
$digitsOnly = preg_replace('/\D+/', '', $ref);
if ($digitsOnly !== '' && $digitsOnly !== $ref) {
    $refCandidates[] = $digitsOnly;
    $refCandidates[] = '#' . $digitsOnly;
}
$refCandidates = array_values(array_unique($refCandidates));
💡
अपने पुल को एक op = diag दें जो केवल STRUCTURE की रिपोर्ट करता है - जिसमें टेबल्स हल होते हैं, जो मुख्य तालिकाओं में स्तंभों और हर अंकित मास्क के साथ सबसे नए संदर्भ का SHAPE है। यह सब कुछ अन्य तरह से कुंजी-gated है, और यह दस सेकंड के उत्तर में समर्थन टिकट से "चढ़ाना" नहीं पाता है। कभी भी इसे वास्तविक रिकॉर्ड वापस नहीं होने देते।

समान त्रुटियां, और एनमेशन जाल

सब कुछ के लिए एक आकार

Success is {"success":true,"data":{...}}. Failure is {"success":false,"error":"snake_case_reason"}. Your Client.php and every action then have exactly one response shape to handle.

नहीं-found और no-match होना चाहिए समान

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

कभी भी किसी आगंतुक के लिए कारण लीक नहीं

पुल के साथ सटीक हो सकता हैOpsIQक्या एक आगंतुक तक पहुँचता है द्वारा निर्णय लिया जाता हैOpsIQ, एक निश्चित इनकार में।

कनेक्टर पैनल में प्रतिलिपि योग्य फ़ाइल

ऑपरेटर कभी भी आपकी रिपॉज़िटरी को खोलता है। वे कनेक्टर के पैनल को खोलने में सक्षम होते हैं।OpsIQऔर प्रेस कॉपी। यह प्रतिलिपि सेटिंग्स से आती है।jsonयह पुल/*.php के समान कार्यक्रम होना चाहिए।

सेटिंग्स।json- एक पुल कनेक्टर के लिए पैनल प्रविष्टि
{
  "settings": [
    { "key": "base_url", "label": "API base URL", "type": "text", "required": true },
    { "key": "api_key",  "label": "Bridge key",   "type": "password", "required": true,
      "autogenerate": true,
      "help": "Auto-generated the moment you enable the connector. It must match OPSIQ_BRIDGE_KEY inside the bridge file; the copyable file below already carries this value once saved." }
  ],
  "webhook_help": {
    "title": "One file, three surfaces",
    "body": "This platform has no public REST API, so this ONE file IS the API. Copy it into the site PUBLIC webroot, keeping the filename.",
    "snippet_filename": "opsiq-yourplatform-bridge.php   (drop next to the site index.php)",
    "snippet_template": "<?php\n/* ... the whole bridge file ... */\nconst OPSIQ_BRIDGE_KEY = \u0027{{setting:api_key}}\u0027;\n..."
  },
  "snippet_bindings": [
    { "assignment": "OPSIQ_BRIDGE_KEY", "setting": "api_key" }
  ]
}
{{setting:key}} carries live values

The connector panel substitutes {{setting:<key>}} in the snippet with that connector's saved value, so the copied file already contains the operator's generated bridge key and needs no hand-edit. An empty or unsaved setting leaves the token visible, so the operator can see exactly what is still missing.

Snippet_bindings पुनर्जन्म से बचे

प्रत्येक उत्पन्न गुप्त असाइनमेंट को स्पष्ट रूप से घोषित करें। सिंक टूल भेजी गई पुल से पैनल कॉपी का पुनर्निर्माण करता है और फिर पुनर्स्थापित करता है OPSIQ_BRIDGE_KEY = {{setting:api_key}} इस बंधन से। इसके बिना, एक अपग्रेड ईमानदारी से कुंजीहीन पैकेज फ़ाइल की प्रतिलिपि बना सकता है और चुपचाप ऑपरेटर के तैनात करने योग्य कुंजी प्लेसहोल्डर को हटा सकता है। कनेक्टर बिल्डर उत्पन्न पुल पैकेजों के लिए स्वचालित रूप से इस बाध्यकारी का उत्सर्जन करता है।

अन्य प्लेसहोल्डर सर्वर-साइड के स्थान पर हैं

स्वतंत्र रूप से,{webhook_url}, {webhook_path}, {webhook_secret}, {site_key}, {base_url}और{slug}इससे पहले कि पैनल कभी भी स्निपेट को देखता है।

Webhook_help एक वस्तु या सूची हो सकती है

एक सूची आपको एक पैनल में कई स्निपेट्स देती है, उदाहरण के लिए एक पुल फ़ाइल और एक अलग रिले हुक।

🚫
हाथ से स्निपेट को बनाए रखने के लिए नहीं। पुल फ़ाइल और पैनल प्रतिलिपि एक कार्यक्रम की दो प्रतियां हैं, और वे बहाव करेंगे - एक पुल को अपग्रेड किया गया था और इसकी पैनल कॉपी नहीं थी, इसलिए जो कोई भी पैनल से पुनर्स्थापित और कॉपी किया गया है, पुराने पुल स्थापित किया गया और चुपचाप हर नई क्षमता खो दिया। कुछ भी पता चला: अनुरूपता पारित, हस्ताक्षर पारित, परीक्षण पारित कर दिया।
दो प्रतियां समान रखें
# Regenerate every package's panel snippet from its bridge file
php tools/sync_connector_bridge_snippets.php --apply

# Show what would change, without writing
php tools/sync_connector_bridge_snippets.php

Drift is now a failing conformance check, not a support ticket: the verifier compares the two line by line (ignoring the {{setting:...}} placeholders, which are supposed to differ) and names the first line that differs. Run the sync tool as the last step before every release, right before signing.

क्या पुल को उजागर करना चाहिए

आकार का संचालन और एक सार्वभौमिक डेटा सतह, साथ में। आकार वाले लोग वास्तव में पूछे जाने वाले प्रश्नों के लिए सुव्यवस्थित, उद्देश्य-निर्मित उत्तर वापस लौटते हैं; सार्वभौमिक लोग सब कुछ अन्य को कवर करते हैं ताकि सहायक कभी अटक न जाए।

आकार

आँकड़े, फिल्टर के साथ मुख्य वस्तु सूची, इसकी संबंधित पंक्तियों के साथ एक वस्तु, जो बेची जाती है उसका सूची, ग्राहक इतिहास के साथ खोज करते हैं। ये पांच के बजाय एआई को एक कॉल में अच्छा जवाब देते हैं।

आकृति लिखने

दो या तीन राज्य परिवर्तन जो विषय - निर्धारित स्थिति, रद्द कर दिया। स्वीकृत मानों को सूचीबद्ध रखने की अनुमति दें।

टाइप वाणिज्य

एक बेचने योग्य मंच के लिए उद्देश्य-निर्मित सूची, उद्धरण, चेकआउट / आदेश और भुगतान-साक्ष्य संचालन का पता लगाया जाता है, फिर उन्हें इनका नक्शा दिया जाता है। commerce_roles.json साथ transport: bridgeकभी भी एक वाणिज्य के लिए सार्वभौमिक रिकॉर्ड करने की भूमिका नहीं है।

यूनिवर्सल खोज

तालिकाओं (कवर गिनती के साथ) और वर्णन (कॉलम, प्रकार, प्राथमिक कुंजी, प्लस पठनीय और प्रति स्तंभ लिखने योग्य झंडे). यह कैसे सहायक एक मंच है जिसे आप अनुमान नहीं करते थे जानने के लिए।

यूनिवर्सल पढ़ने और लिखने

क्वेरी, रिकॉर्ड. get, रिकॉर्ड करें। बनाएँ, रिकॉर्ड . update, रिकॉर्ड। हटाएं। उनमें से प्रत्येक को ऊपर दिखाया गया है।

पहचान, कुंजी गेट से पहले

पहचान जांच को ADMIN'S BROWSER, उसी ओरिजन द्वारा बुलाया जाता है, इसलिए वे एक कस्टम हेडर नहीं भेज सकते। उनका प्रमाणीकरण मंच सत्र ही है। उन्हें मुख्य गेट से आगे रखो, उन्हें सभी रिकॉर्ड डेटा से दूर रखें और कभी भी उन्हें गुप्त वापस न दें। कनेक्टर पहचान पृष्ठ देखें।

निदान

op=diag, structure only, masked.

ब्रिज वाणिज्य भूमिका नक्शा
{
  "commerce": {
    "roles": {
      "catalog_search": {"operation":"hotel_catalog_search","transport":"bridge"},
      "quote":          {"operation":"hotel_quote","transport":"bridge"},
      "order_create":   {"operation":"hotel_order_create","transport":"bridge",
                           "recovery":"hotel_order_get"},
      "order_get":      {"operation":"hotel_order_get","transport":"bridge"},
      "record_payment": {"operation":"hotel_record_payment","transport":"bridge",
                           "recovery":"hotel_order_get"}
    },
    "customer_ordering": {
      "enabled":true, "version":1, "mode":"direct_order",
      "audience":"guests_and_clients", "account_flow":"guest_checkout",
      "payment_flow":"opsiq_gateway"
    }
  }
}
💡
कैनोनिकल भूमिका नियंत्रण अनुक्रम और प्राधिकरण; पुल ऑपरेशन मंच के अपने टाइप पेलोड को रखता है। एक होटल में आगमन, प्रस्थान और मेहमानों की आवश्यकता हो सकती है,WHMCSएक मौजूदा ग्राहक या कनेक्टर के स्वामित्व वाली साइनअप की आवश्यकता हो सकती है, और एक सास प्लेटफॉर्म को बिलिंग चक्र की आवश्यकता पड़ सकती है। कोर उन क्षेत्रों को कभी भी हार्डकोड नहीं करता है। पुल को मंच की व्यावसायिक सेवाओं को इतना स्टॉक, करों, चालान, पुष्टिकरण मेल और सभी रनों को हुक करना चाहिए।
⚠️
record_payment एक मार्क-पेड शॉर्टकट नहीं है। केवल सर्वर सत्यापित प्रदाता साक्ष्य स्वीकार करें: सटीक आदेश, व्यापारी, राशि, आईएसओ मुद्रा, प्रदाता संदर्भ, ताजा सत्यापित समयstamp और idempotency कुंजी। यह मंच के भुगतान / चालान API_ के माध्यम से विशेषज्ञ, फिर आधिकारिक आदेश या चालान पढ़ने-बैक वापस लौटें। किसी भी retry से पहले अज्ञात परिणाम को वसूली करनी चाहिए।
💡
एक पठनीय कनेक्टर को सभी पर कोई अनुमति-सूची की आवश्यकता नहीं है। यदि आपका प्लेटफ़ॉर्म हमेशा ही जवाब देता है, तो किसी भी लिखने वाले ऑप्स के साथ पुल को जहाज करें और लिखने का जोखिम पूरी श्रेणी गायब हो जाता है। जब कोई उनके लिए पूछता है तो लिखा गया है।

चेकलिस्ट से पहले आप एक पुल जहाज

पुल ने सब कुछ को कोई कुंजी सेट के साथ मना कर दिया

इसे टेस्ट करें। खाली करने के लिए स्थिर नाम बदलें और प्रत्येक op उत्तर की पुष्टि करें 403_

एक गलत कुंजी को लगातार समय में मना कर दिया जाता है

हैश_equals, और कुंजी केवल हेडर से पढ़ा।

एक तालिका नाम मना कर दिया है

और एक वास्तविक तालिका का नाम गलत उपसर्ग के साथ अभी भी हल हो गया है।

कभी भी एक पासवर्ड कॉलम पढ़ने में नहीं दिखाई देता है

और एक लिखने के लिए कि नामों को एक स्पष्टीकरण से मना कर दिया जाता है।

अनुमति-सूची के बाहर एक तालिका में लिखने से मना कर दिया जाता है

संदेश के साथ जो ऑपरेटर को बताता है कि कैसे इसे चौड़ा करना है।

पैनल स्निपेट पुल फ़ाइल से मेल खाता है

php उपकरण/sync_connector_bridge_snippets. php ने इसे कदम में रिपोर्ट किया।

कनेक्टर को पुनर्स्थापित करना पर्याप्त नहीं है

यदि आपका पैकेज एक पुल फ़ाइल को जहाज करता है, तो एक ऑपरेटर को कनेक्टर को अपग्रेड करना चाहिए ताकि वे अपने वेबरूट में फाइल कर सकें। ऐसा पैनल बॉडी में और आपके CHANGELOG में हर रिलीज़ हो।

कनेक्टर्स

एक पुल से मंच के अपने ढांचे को बूट करना

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

डेटाबेस में एक पंक्ति ऑर्डर नहीं है

रॉ INSERTs एक shadow रिकॉर्ड बनाते हैं

पंक्ति दिखाई देती है, व्यवस्थापक इसे सूचीबद्ध करता है और यह अभी भी एक रिकॉर्ड नहीं है जो प्लेटफ़ॉर्म का मानना है कि यह बनाया गया है: कोई मूल संदर्भ संख्या, कोई मॉडल हुक नहीं, कोई घटना नहीं, चालान नहीं, ग्राहक ईमेल नहीं, किसी कामकाजी ग्राहक-फेसिंग लिंक नहीं। ग्राहक एक संदर्भ को उद्धृत करता है कि प्लेटफॉर्म कभी कर्मचारियों को जारी नहीं किया जाता है जो इसे नहीं ढूंढ सकते हैं। मंच की अपनी सेवा के माध्यम से बनाएं; अगर यह केवल भुगतान सेवा को उजागर करता है, तो उस रेखा पर इसकी उम्मीदों और हाथ से बना ग्राफ बनाता है।

कभी भी मंच की संख्या को फिर से लागू नहीं करना

एक संदर्भ प्रारूप के दो नमूने इसे पुन: उत्पन्न करना आसान बनाते हैं, और इसका पुन: उत्पादन करना समान छाया-लेखन एक स्तर नीचे है: जिस दिन प्लेटफ़ॉर्म अपनी योजना बदलता है, आपके रिकॉर्ड में से प्रत्येक गलत है और कुछ भी आपको चेतावनी नहीं देता है। अपने जनरेटर को बुलाएं (रिफ्लेक्शन एक गैर-स्थिर तक पहुंच जाता है), और संग्रहीत मूल्य वापस पढ़ने के बजाय जो आपने भेजा था वह भरोसा करता है।

प्लेटफार्म कॉलम का अर्थ है

इससे पहले कि आप अपने प्लेटफॉर्म कॉलम में कुछ भी स्टोर करें, हर रीडर को ढूंढें। एक मुफ्त स्लॉट की तरह नामित स्तंभ लोड-असर हो सकता है: संदर्भ एकीकरण पर, transaction_id ग्राहक के ईमेल "अपनी बुकिंग देखें" लिंक के माध्यम से हल करने के लिए टोकन आउट हो गया: एक विचारधारा पाचन वहां चुपचाप संग्रहीत हर अतिथि लिंक को तोड़ दिया। अपने बुककीपिंग को पुल-own टेबल में रखें: UNIQUE (ऑपरेशन, आपकी बुकिंग देखें) idempotency_key) फिर से खेलना गार्ड है, बाधाएं समवर्ती जुड़वां को मना कर देती हैं, और रिकवरी लुकअप ने उसी टेबल को लिखा था। उस तालिका को बनाएं BEFORE startTransaction: MySQL डीडीएल एक खुला लेनदेन को अनिवार्य रूप से करता है।

आयोजन, श्रोता और डबल-ईमेल जाल

अपनी घटनाओं को भेजने से पहले सेवा का स्रोत पढ़ें

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

getListeners () सत्य को छिपाता है; getRawListners (), उसे बताती है

लारवेल ने क्लास श्रोताओं को बंद करने में लपेटा, इसलिए getListeners () रिपोर्ट [email protected] सब कुछ के लिए। getRawListners (a person) वास्तविक वर्गों का नाम है। कभी भी एक ऐसी घटना को न छोड़ें जिसका श्रोता आपको नाम नहीं दे सकता।

To bet in a "reprehen" or "in"

queue=sync (उत्पादन इंस्टॉल के बहुत सारे पर डिफ़ॉल्ट) के साथ एक queued श्रोता आपके पुल अनुरोध में इनलाइन चलाता है। आपका बूट संदर्भ इसके प्रतिपादन संदर्भ है: हर पंजीकरण या URL ग्राहक के इनबॉक्स में अपनी बूट भूमि में दोष। चेक config('queue.default') इससे पहले कि किस चीज़ को चलाता है, और नौकरियों/failed_jobs एक कार्यकर्ता को संभालने से पहले शामिल किया गया था।

गार्ड मंच के अपने राज्य के साथ वापस लौटते हैं

एक ऐसी सेवा जो बिना शर्त प्रेषण करती है, उसे बिल्कुल एक बार बुलाया जाना चाहिए। मार्कर जो बहाव नहीं कर सकता वह मंच का अपना रिकॉर्ड स्टेट (केवल कॉल करते समय रिकॉर्ड अभी भी लंबित है), न कि आपके समानांतर ध्वज जो इसके साथ असहमत हो सकते हैं।

हेडलेस बूट वेब बूट नहीं है

वेब बूट रजिस्टर क्या पंजीकृत करता है

Template variables, module settings, filter hooks: platform service providers often register them only on a web request. On the reference integration the email handler substitutes only REGISTERED variables: every value was set correctly and the customer's confirmation still rendered with empty name, phone and link, no error anywhere, because registration lives in a runtime registry the headless boot never filled. Find the platform's registration call (for Botble: EmailHandler::addTemplateSettings with the module's email config) and make it in your boot, exactly as the platform's own provider does.

पिन Eever URL जड़, न सिर्फ रूटर

अपने पुल स्क्रिप्ट पर कब्जा अनुरोध अंक, इसलिए मार्ग (), url() और परिसंपत्ति () उत्पन्न site.comसार्वजनिक/opsiq-bridge.php/checkout/TOKEN: एक ग्राहक के माध्यम से लिंक JSON endpoint. forceRootUrl(config('app).url') जनरेटर को ठीक करता है; STORAGE डिस्क की अपनी जड़ होती है, इसलिए ईमेल लोगो फ़ाइल सिस्टम तक टूट जाता रहता है।url यह भी सेट है (यह लाज़ीली को हल करता है, इसलिए इसे बूट कार्यों पर सेट करता है और केवल तभी खाली या स्क्रिप्ट-relative: एक ऑपरेटर का CDN URL क्या आपको ओवरराइड करना है?

पहले आप पर हाथ से

मंच की सेवाओं को अपने स्वयं के कनेक्शन से पढ़ी जाती है और आपके खुले लेनदेन को नहीं देख सकती। प्रतिबद्ध होने से पहले बुलाए जाने वाले भुगतान सेवा को पूरा भुगतान नहीं मिलता, चुपचाप रिकॉर्ड को अदायगी छोड़ देता है और फिर भी इसके कार्यक्रमों को आग लगाता है, इसलिए ग्राहक को एक रिकार्ड के बारे में ईमेल किया जाता है जो प्लेटफ़ॉर्म सोच का भुगतान नहीं किया जाता। ग्राफ को कम करें, फिर कॉल करें।

ईमानदारी नियम

कोई छाया गिरती है

यदि मूल पथ अप्रवर्तनीय है, तो किसी भी पैसे की चाल से पहले एक पुनः प्राप्त करने योग्य त्रुटि से इनकार कर दिया। कभी भी संदर्भ का आविष्कार नहीं किया जाता है, कभी भी आधे-एकीकृत रिकॉर्ड को समाप्त करने के लिए स्थिति को नहीं उतारा। सत्यापित भुगतान जिसका मूल प्रसंस्करण असफल हो गया था, वह needs_attention: पैसा वास्तविक है, राज्य ईमानदारी से "भुगतान अभी तक संसाधित नहीं" है।

तथ्यों की रिपोर्ट करें, अपनी घोषणा नहीं

"The service ran" और "ग्राहक को बताया गया था" अलग-अलग तथ्य हैं: संदर्भ एकीकरण ने प्रत्येक क्षेत्र रिक्त के साथ एक पूर्ण दिखने वाला ईमेल भेज दिया, जबकि रन-फ्लैग सही कहा। उन्हें अलग से वापस लौटें (प्रोसेसिंग पूरा हो गया, अधिसूचना प्रयास किया गया), प्रति कॉल रखें platform_notified कि बलों OpsIQ जब भी प्लेटफॉर्म ने प्रक्रिया नहीं की, तब गिर गया और कभी वितरण का दावा नहीं किया: एक इनबॉक्स सर्वर से अनुरक्षित नहीं है।

उपाय, फिर लिखना

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

कनेक्टर्स

अन्य भाषाओं और अन्य डेटाबेस में पुल

पुल पैटर्न एक PHP पैटर्न नहीं है।OpsIQकॉल एक समापन बिंदु है, इसलिए फ़ाइल नोड, पायथन, गो, रूबी, .NET या जावा हो सकती है, और इसके पीछे की दुकान कोई भी हो सकता है।SQLइंजन याMongoDBक्या है PHP के आकार का पैकेजिंग पाइपलाइन है, और यह बाधा तय करती है कि आपका पुल ऑपरेटर तक कैसे पहुंचता है। पहले डिलीवरी सेक्शन पढ़ें: यह वह हिस्सा है जो लोगों को आश्चर्यचकित करता है।

वास्तव में क्या कनेक्टर की आवश्यकता है

यह पूरी तरह से अनुबंध है। इसमें कुछ भी भाषा का नाम नहीं है।

परिवहन

HTTPS. One GET request per call. No body, no other method.

प्रमाणीकरण

में साझा रहस्य X-Opsiq-Bridge-Key अनुरोध है कि हेडर, स्थिर समय की तुलना में। क्वेरी पैरामीटर नहीं, कुकी नहीं, बेसिक auth नहीं।

पैरामीटर

क्वेरी स्ट्रिंग। op सतह का नाम do इसके अलावा, यह भी कहा जाता है कि ऑपरेशन के तर्क हैं।

जवाब

JSON. {"success":true,"data":{...}} या {"success":false,"error":"snake_case_reason"}सामग्री-प्रकार आवेदन/json, और कोई कैशिंग नहीं।

स्टेटस कोड

200सफलता पर।403असंबद्ध या गलत कुंजी,404नहीं पाया,405गलत विधि,400बुरा तर्क,501इस स्कीमा में असमर्थित।

सब कुछ

कोई ढांचा नहीं, कोई रनटाइम नहीं OpsIQ पुस्तकालय आपकी तरफ। अगर यह उस पर काम कर सकता है तो यह पुल हो सकता है।

डिलिवरी: पुल में क्या रह सकता है / और क्या नहीं होना चाहिए

हस्ताक्षरित पैकेज में फ़ाइल एक्सटेंशन की एक निश्चित सूची शामिल है, और उस सूची के बाहर एक फ़ाइल ZIP से बाहर छोड़ दी गई है। किसी भाषा में एक पुल सूची को कवर नहीं करता इसलिए पैकेज के अंदर जहाज नहीं कर सकता - लेकिन यह अब आप पर गायब नहीं हो सकता है। चूंकि26अगस्त2026में एक फ़ाइल bridge/ यह पैकेजर गिरा होगा एक कठिन अनुरूपता विफलता है, इसलिए पैकेज में कोई पुल स्थापित करने के बजाय पास होने से मना कर दिया गया।

कैसे एक पुल/फ़ोल्डर का निर्माण समय पर किया जाता है
bridge/bridge.php     ->  SHIPPED, and drift-checked against the panel snippet
bridge/server.js      ->  SHIPPED, and drift-checked against the panel snippet
bridge/bridge.py      ->  REFUSED at conformance: "Bridge files are packaged" FAILS
bridge/bridge.rb      ->  REFUSED at conformance
bridge/main.go        ->  REFUSED at conformance
bridge/Bridge.cs      ->  REFUSED at conformance
bridge/Bridge.java    ->  REFUSED at conformance
PHP और PHP JavaScript — पूरी तरह से समर्थित

हस्ताक्षरित ZIP में फ़ाइल जहाज और स्निपेट वेरिफायर अपने पैनल कॉपी को बाइट-identical रखता है, जो भी यह दो में से एक है। बहाव चेक पुल में हर फाइल पढ़ता है / न सिर्फ PHP लोग, इसलिए एक स्टोरी पैनल प्रतिलिपि के साथ अपग्रेड ब्रिज किसी भाषा में निर्माण विफल हो जाता है।

सब कुछ - केवल पैनल के माध्यम से वितरित करें

पैनल स्निपेट सादा पाठ है जिसमें कोई विचार नहीं है कि इसमें किस भाषा की भाषा है, इसलिए यह किसी भी स्टैक के लिए काम करता है। पूरे कार्यक्रम को वेबहुक_help. snippet_template में रखें, फाइल का नाम snipple_filename में करें और पुल/-अनुरूपण में एक प्रतिलिपि न छोड़ें, इसके बजाय पैकेज को खोखले जहाज से मना कर देगा। स्पष्ट रूप से webhook_help पर कहो कि ऑपरेटर इस फ़ाइल को पैकेज से प्राप्त करने के बजाय कॉपी करता है, ताकि वह उस पैकेज से वापस आ जाए।

यदि आपको वास्तव में पैकेज में किसी अन्य भाषा की आवश्यकता है

Widen PackageSigner::EXTENSIONS deliberately, then re-sign and re-seed. That is a decision about what executable code Nabtech distributes, so make it on purpose — do not discover it from a missing file.

💡
फाइल को नाम दें webhook_help.snippet_filename जब भी आपका पैकेज एक से अधिक पुल जहाज़ करता है। यही कारण है कि कैसे कनिष्ठ जानता है कि कौन एक पैनल कॉपी को ब्रिज करता है; इसके बिना, एक अस्पष्ट जोड़ी को अनुरूपता चेतावनी के रूप में रिपोर्ट किया जाता है और यह स्निपेट को अनचेक छोड़ दिया जाता है।
⚠️
बहाव जांच का बिंदु यह है कि एक पुल फ़ाइल और इसकी पैनल प्रति दो प्रतियां हैं, जो एक प्रोग्राम की है और WILL में भिन्न होती हैं। हाथ से संपादित करने के बजाय पुनर्जन्म करें: php tools/sync_connector_bridge_snippets.php --applyफिर पैकेज को पुनः हस्ताक्षर करें।

गेट, छह भाषाओं में

हर जगह एक ही क्रम में चार चेक भी हैं: कोई कुंजी, एक विधि, हेडर से निरंतर समय की कुंजी तुलना के साथ बंद नहीं हो सकता है, फिर कनेक्ट होता है। एकमात्र वास्तविक जाल तुलना है, और यह प्रत्येक भाषा में एक अलग जाल है।

⚠️
SHA- की तुलना256दो कुंजी के बजाय खुद को कुंजियों का पाचन करता है। यह हर भाषा में सही है, और यह इस तथ्य की ओर इशारा करता है कि कई स्थिर समय के कम्पेटर या तो एक लंबाई के धुंध पर फेंकते हैं या रिसाव करते हैं - नोड का टाइमसेफइक्वल रेंजएर को बढ़ाता है जब बफर लंबाई में भिन्न होते हैं, जो गलत कुंजी को एक गलत कुंजी में बदल देता है।500इसके बजाय403.
Node. js - गेट
// Node.js — no dependencies
const http = require("http"), crypto = require("crypto"), url = require("url");

const BRIDGE_KEY = process.env.OPSIQ_BRIDGE_KEY || "";   // empty = bridge OFF

const sameKey = (a, b) => {
  const ha = crypto.createHash("sha256").update(String(a)).digest();
  const hb = crypto.createHash("sha256").update(String(b)).digest();
  return crypto.timingSafeEqual(ha, hb);                 // equal lengths, always
};
const out = (res, payload, code = 200) => {
  res.writeHead(code, { "Content-Type": "application/json; charset=utf-8",
                        "Cache-Control": "no-store" });
  res.end(JSON.stringify(payload));
};

http.createServer(async (req, res) => {
  if (BRIDGE_KEY.length < 24)         return out(res, { success: false, error: "bridge_not_configured" }, 403);
  if (req.method !== "GET")           return out(res, { success: false, error: "method_not_allowed" }, 405);
  const given = req.headers["x-opsiq-bridge-key"] || "";
  if (!given || !sameKey(BRIDGE_KEY, given))
                                      return out(res, { success: false, error: "forbidden" }, 403);

  const q = url.parse(req.url, true).query;
  // ... dispatch on q.op / q.do exactly as the PHP bridge does
}).listen(process.env.PORT || 8787);
पायथन - गेट
# Python — Flask
import hashlib, hmac, os
from flask import Flask, request, jsonify

app = Flask(__name__)
BRIDGE_KEY = os.environ.get("OPSIQ_BRIDGE_KEY", "")      # empty = bridge OFF

def same_key(a: str, b: str) -> bool:
    return hmac.compare_digest(
        hashlib.sha256(a.encode()).digest(),
        hashlib.sha256(b.encode()).digest(),
    )

def out(payload, code=200):
    resp = jsonify(payload)
    resp.status_code = code
    resp.headers["Cache-Control"] = "no-store"
    return resp

@app.before_request
def gate():
    if len(BRIDGE_KEY) < 24:
        return out({"success": False, "error": "bridge_not_configured"}, 403)
    if request.method != "GET":
        return out({"success": False, "error": "method_not_allowed"}, 405)
    given = request.headers.get("X-Opsiq-Bridge-Key", "")
    if not given or not same_key(BRIDGE_KEY, given):
        return out({"success": False, "error": "forbidden"}, 403)
Go, Ruby, . NET and जावा — समान तुलना
// Go
func sameKey(a, b string) bool {
    ha := sha256.Sum256([]byte(a))
    hb := sha256.Sum256([]byte(b))
    return subtle.ConstantTimeCompare(ha[:], hb[:]) == 1
}

func gate(next http.HandlerFunc) http.HandlerFunc {
    return func(w http.ResponseWriter, r *http.Request) {
        w.Header().Set("Content-Type", "application/json; charset=utf-8")
        w.Header().Set("Cache-Control", "no-store")
        key := os.Getenv("OPSIQ_BRIDGE_KEY")
        if len(key) < 24 { out(w, 403, "bridge_not_configured"); return }
        if r.Method != http.MethodGet { out(w, 405, "method_not_allowed"); return }
        given := r.Header.Get("X-Opsiq-Bridge-Key")
        if given == "" || !sameKey(key, given) { out(w, 403, "forbidden"); return }
        next(w, r)
    }
}

// Ruby
def same_key?(a, b)
  OpenSSL.secure_compare(Digest::SHA256.digest(a.to_s), Digest::SHA256.digest(b.to_s))
end

// C# / .NET
static bool SameKey(string a, string b) =>
    CryptographicOperations.FixedTimeEquals(
        SHA256.HashData(Encoding.UTF8.GetBytes(a)),
        SHA256.HashData(Encoding.UTF8.GetBytes(b)));

// Java
static boolean sameKey(String a, String b) throws Exception {
    MessageDigest d = MessageDigest.getInstance("SHA-256");
    return MessageDigest.isEqual(d.digest(a.getBytes(UTF_8)), d.digest(b.getBytes(UTF_8)));
}

प्रत्येक डेटाबेस इंजन पर पहचानकर्ता को मान्य करना

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

MySQLऔरMariaDB

तालिका: SELECT TABLE_NAME FROM information_schema.TABLES WHERE TABLE_SCHEMA = ?The spherical of the valent; the opposed. information_schema.COLUMNS साथ AND TABLE_NAME = ?To be a backticks. LIMIT n OFFSET m.

PostgreSQL

Same Information_schema दृष्टिकोण, लोअर-केस नाम, WHERE table_schema = $1 (आमतौर पर) public(d))। डबल उद्धरण के साथ बोली, किसी भी डबल उद्धरण को अंदर डुबोना। LIMIT n OFFSET mतह नियम देखें: एक unquoted पहचानकर्ता को कम मामले में मोड़ दिया जाता है, इसलिए जब आप किसी नाम का समाधान करते हैं तो केस-असंवेदनशील रूप से तुलना करें।

SQL Server

समान जानकारी_SCHEMA दृष्टिकोण। वर्ग कोष्ठक के साथ उद्धरण, किसी भी समापन ब्रैकेट को अंदर डुबोना। पेजिंग को ORDER BY की आवश्यकता है: ORDER BY [id] DESC OFFSET @o ROWS FETCH NEXT @n ROWS ONLY.

SQLite

तालिका: SELECT name FROM sqlite_master WHERE type = 'table' AND name NOT LIKE 'sqlite_%'The spherical of the valent; the estine. SELECT name FROM pragma_table_info(?) — उस तालिका के मूल्य वाले रूप का उपयोग करें, क्योंकि नंगे PRAGMA table_info(x) कथन एक बाध्य पैरामीटर नहीं ले सकता है और स्ट्रिंग इंटरपोलेशन आमंत्रित कर सकता है, वास्तव में वह छेद है जिसे आप बंद करने की कोशिश कर रहे हैं। डबल उद्धरण के साथ उद्धृत करें। LIMIT n OFFSET m.

ओरेकल

तालिका: SELECT TABLE_NAME FROM ALL_TABLES WHERE OWNER = :ownerसे स्तंभ ALL_TAB_COLUMNSडबल उद्धरण के साथ उद्धृत करें, और यूपीपर मामले में एक unquoted पहचानकर्ता फोल्ड्स को याद रखें, PostgreSQL_ के विपरीत। पृष्ठ के साथ OFFSET :o ROWS FETCH NEXT :n ROWS ONLY 12c और बाद में।

MongoDB

No SQL, इसलिए कोई पहचानकर्ता इंटरपोलेशन और कोई बाध्य पैरामीटर नहीं - एक ही लक्ष्य के लिए एक अलग अनुशासन। नीचे देखें।

प्रति इंजन इंट्रोस्पेक्शन क्वेरी
-- MySQL / MariaDB
SELECT TABLE_NAME  FROM information_schema.TABLES  WHERE TABLE_SCHEMA = ?;
SELECT COLUMN_NAME FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = ? AND TABLE_NAME = ?;

-- PostgreSQL
SELECT table_name  FROM information_schema.tables  WHERE table_schema = $1;
SELECT column_name FROM information_schema.columns WHERE table_schema = $1 AND table_name = $2;

-- SQL Server
SELECT TABLE_NAME  FROM INFORMATION_SCHEMA.TABLES  WHERE TABLE_SCHEMA = @schema;
SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = @schema AND TABLE_NAME = @table;

-- SQLite
SELECT name FROM sqlite_master WHERE type = 'table' AND name NOT LIKE 'sqlite_%';
SELECT name FROM pragma_table_info(?);

-- Oracle
SELECT TABLE_NAME  FROM ALL_TABLES      WHERE OWNER = :owner;
SELECT COLUMN_NAME FROM ALL_TAB_COLUMNS WHERE OWNER = :owner AND TABLE_NAME = :tbl;
💡
फिर से हल करें, फिर ROLVED नाम का उपयोग करें। कभी भी कॉलर की वर्तनी को जांचने के बाद क्वेरी में पास नहीं करना चाहिए - वास्तविक नाम को उस सूची में देखें जिसे आप स्कीमा से पढ़ते हैं और इसे इंटरपोलैट करते हैं। इसकी लागत कुछ भी नहीं है और यह "इस नाम से मेल खाता है" के बीच अंतर बंद कर देता है और "यह वही नाम है जो मैं चल रहा हूँ" है।

MongoDB: एक ही नियम, बिनाSQL

इंजेक्शन लगाने के लिए कोई क्वेरी स्ट्रिंग नहीं है, इसलिए लोग मानते हैं कि गार्ड के लिए कुछ भी नहीं है। वहाँ है: फिल्टर दस्तावेज़। कॉलर-supplied पास करनाJSONसीधे find() कॉलर प्रेषक की सुविधा देता है {"$ne": null} या {"$gt": ""} जहाँ आप एक मूल्य की उम्मीद करते हैं और चुपचाप प्रत्येक दस्तावेज़ का चयन करते हैं। फ़िल्टर को स्वयं बनाएं।

MongoDB — संग्रह अनुमति सूची, स्केलर-बल फिल्टर, प्रक्षेपण के रूप में रिडीक्शन
// Node + the official driver
const names = (await db.listCollections({}, { nameOnly: true }).toArray()).map(c => c.name);

function resolveCollection(given) {
  if (!/^[A-Za-z0-9_.-]+$/.test(given || "")) return null;
  return names.find(n => n.toLowerCase() === String(given).toLowerCase()) || null;
}

const coll = resolveCollection(q.collection);
if (!coll) return out(res, { success: false, error: "unknown_collection" }, 404);

// Build the filter from a validated field and a SCALAR value. Never spread
// caller JSON into it: {"$ne":null} would match every document.
const filter = {};
if (q.where_field) {
  if (!/^[A-Za-z0-9_.]+$/.test(q.where_field))
    return out(res, { success: false, error: "unknown_field: " + q.where_field }, 400);
  filter[q.where_field] = String(q.where_value ?? "");   // String() is the guard
}

// Projection is the redaction allow-list: drop secrets, never return them.
const projection = { password: 0, remember_token: 0, api_key: 0, secret: 0, token: 0 };

const limit = Math.min(Math.max(parseInt(q.limit ?? "25", 10) || 25, 1), 200);
const rows  = await db.collection(coll)
                      .find(filter, { projection })
                      .limit(limit)
                      .skip(Math.max(0, parseInt(q.offset ?? "0", 10) || 0))
                      .toArray();
संग्रह नाम सूची से आते हैंकोडा

यह आपकी जानकारी है_schema. इसके खिलाफ कॉलर की वर्तनी को हल करें और हल किए गए नाम का उपयोग करें।

हर फिल्टर मूल्य को एक स्कैलर के लिए मजबूर करें

इसके आसपास एक स्ट्रिंग () या नंबर () ऑपरेटर इंजेक्शन के खिलाफ पूरी रक्षा है। एक दस्तावेज जहां आप उम्मीद करते हैं कि मूल्य एक स्ट्रे उद्धरण के बराबर NoSQL है।

प्रोजेक्शन लालित्य नियम है

प्रक्षेपण में गुप्त आकार के क्षेत्रों को छोड़कर इसलिए वे कभी भी सर्वर नहीं छोड़ते, बल्कि बाद में परिणाम से उन्हें हटाने की बजाय।

Deletes stay one-docment by _id

एक हल के साथ एक को हटा दें _id. मैनी को कभी भी नष्ट नहीं किया जाता है और कभी भी कॉलर को प्रभावित नहीं करता।

लेखक रहने की अनुमति-सूचीबद्ध

उसी तर्क के रूप में SQL: नाम संग्रह एक लेखन स्पर्श कर सकते हैं, और बाकी को स्पष्टीकरण से मना कर सकते है।

अन्य भाषाओं में पहचान समापन बिंदु

पहचान जांच एक पुल का दूसरा आधा हिस्सा है, और यह HTTP भी है। संकेत ब्लॉक हर भाषा में समान है: base64url the पेलोड.HMAC-SHA256 उस स्ट्रिंग, एक डॉट के साथ जुड़ना।

Do not hand-write this from scratch. Settings, Support Portal carries a ready route per language for the portal (one-time, two-minute token). Remote Sites, your site, Codes, C. Recognise logged-in customers automatically carries the chat version per language (one-hour token plus the refresh handler). Take the signer from the flavour that matches your stack.
जब आप इसका पुन: उपयोग करते हैं तो क्या बदलना है

वे स्निपेट्स एक PORTAL हैंडऑफ़ टोकन को मिंट करते हैं, जो जानबूझकर सख्त है: यह JTI और Single_use:true और जीवन के बारे में रखता है।120सेकंड क्योंकि यह एक में यात्रा करता हैURLएक पुल या विजेट पहचान टोकन उनमें से न तो वहन करता है और लंबे समय तक, मिनट-समय पर इसका उपयोग करता है।

क्या रहता है

site_key, iat, exp और एक शीर्ष स्तर प्रमाणित:true, साथ ही एक व्यवस्थापक या ग्राहक के विषय में एक आईडी और एक उपयोगकर्ता नाम या ईमेल के साथ। समान दावे, एक ही हस्ताक्षर, एक भी गुप्त है।

दोनों टोकन आकार सत्यापित

एक तीन-भाग JWT ने HS256 कार्यों पर हस्ताक्षर किए, और इसलिए दो-पार्ट बेस64url पेलोड प्लस हेक्स HMAC है कि PHP संदर्भ उत्सर्जन करता है। जिस भी आपकी भाषा की पुस्तकालयें प्राकृतिक बनाती हैं उसका प्रयोग करें - एक JWP लाइब्रेरी आमतौर पर PHP के बाहर का छोटा रास्ता है।

कभी भी इसे ब्राउज़र में नहीं जाना चाहिए

हर भाषा में सच है। साइनिंग क्लाइंट-साइड का मतलब साइट को प्रत्येक आगंतुक के लिए गुप्त रूप से भेज रहा है।

ईमानदारी से चुनना

मंच PHP है

PHP में पुल लिखें। यह पैकेज में जहाज करता है, यह बहती-जांचित होता है और यह पहचान जांच के लिए लाइव सत्र पढ़ने के लिए प्लेटफॉर्म का अपना ढांचा बूट कर सकता है। कुछ भी आपको तीन देता है।

मंच नोड है

A . js पुल जहाजों, संकेत और वास्तव में एक PHP की तरह drift-checked है। कुछ भी नहीं दिया जाता है।

मंच पायथन, रूबी, गो, . NET या जावा है

पैनल स्निपेट के माध्यम से वितरित करें और ऐसा कहें कि पैनल बॉडी में; पुल में फ़ाइल को न छोड़ें / जहां अनुरूपता पैकेज को मना कर देगी। कनेक्टर अन्यथा पूरी तरह सामान्य है: क्रियाएं, संदर्भ प्रदाता, पहचान और अतिथि की तलाश सभी समान काम करते हैं, क्योंकि उनमें से कोई भी परवाह नहीं करता जो HTTP कॉल का जवाब देता है।

आप मंच होस्ट पर एक प्रक्रिया नहीं चला सकते

फिर पुल पैटर्न सही उपकरण नहीं है। एक पुल अपने मेजबान के अंदर से एक मंच तक पहुंचने के लिए मौजूद है। यदि आप केवल इसे बाहर से ही पहुंच सकते हैं, तो आप एक साधारण लेखन लिख रहे हैंAPIजो कुछ भी सतह यह उजागर करता है उसके खिलाफ कनेक्टर।

⚠️
एक और अधिक बाधा के आसपास योजना बना रहा है: एक पहचान जांच को मंच के लॉगिन सत्र को पढ़ना पड़ता है, जिसका मतलब आमतौर पर प्लेटफॉर्म की अपनी प्रक्रिया के अंदर या कम से कम अपने मेजबान पर अपने सत्र स्टोर तक पहुंच के साथ चल रहा है। प्लेटफ़ॉर्म से अलग भाषा में लिखे गए पुल डेटा को आराम से सेवा प्रदान कर सकता है और फिर भी op=admin_identity का जवाब देने के लिए संघर्ष कर सकता हैं। यदि ऐसा हो तो, आपकी भाषा में डेटा ब्रिज और प्लेटफॉर्म के भीतर पहचान जांच जहाज करें।
कनेक्टर्स

सहायक को दोनों हिस्सों में दें: कार्य और संदर्भ

यह एक कनेक्टर से लापता सबसे आम बात है कि "काम करता है लेकिन बेकार है"। एक्शन AI DO चीज़ों को देते हैं। संदर्भ अनुभाग इसे KNOW चीज़ें देते हैं एक कनेक्टर की जरूरत है, और अधिकांश प्रश्न एक व्यवस्थापक पूछता संदर्भ द्वारा उत्तर दिया जाता है, कभी भी कार्रवाई के द्वारा नहीं। सही कार्यों वाला एक कनेक्टर और कोई संदर्भ प्रदाता सत्यतापूर्वक रिपोर्ट करेगा कि यह कुछ भी नहीं देख सकता है।

दो हिस्सों

क्रियाएँ - कैसे एआई चीज़ करता है

कार्रवाई में घोषणा की।jsonया रजिस्टर द्वारा लौटा Actions ()। मॉडल एक को चुनता है, अपने मापदंडों को भर देता है, औरOpsIQक्रियाओं के लिए क्रियाएँ हैं: इस बुकिंग को रद्द करें, उस टिकट को खोलें, इस स्थिति को बदल दें।

A-A-S-D-H-B-D - कैसे a-the-s-respectives

मॉडल रन से पहले एक कॉन्टेक्स्टप्रोविडर द्वारा इकट्ठे हुए। "इस महीने कितने ऑर्डर", "मैं अपने नवीनतम ग्राहकों को कौन हूँ", "हम क्या बेचते हैं" सभी संदर्भ लुकअप के माध्यम से हल करते हैं, और कभी भी कार्रवाई को बिल्कुल नहीं छूते।

⚠️
एक लापता प्रदाता का लक्षण: सहायक उत्तर "कोई सक्षम कनेक्टर ने इस संदर्भ अनुभाग की आपूर्ति नहीं की" जबकि कनेक्टर स्थापित किया गया है, सक्षम और अपने कनेक्शन परीक्षण को पारित किया। कुछ भी लॉग नहीं किया गया, कुछ त्रुटियां नहीं हैं। उस संदेश का मतलब कोई प्रदाता ने खंड का दावा नहीं किया।

सार्वभौमिक अनुभाग शब्दावली

OpsIQसामान्य नाम से अनुभागों के लिए पूछता है। आपका काम यह तय करना है कि प्रत्येक का मतलब आपके प्लेटफॉर्म पर क्या होता है और इसका जवाब देता है। एक होटल बुकिंग होटल का ऑर्डर है; एक कमरा आईएस क्या है? नक्शा, आविष्कार नहीं करते हैं।

आदेश / लंबित_orders

आपके प्लेटफॉर्म पर कौन-सा लेनदेन होता है: ऑर्डर, बुकिंग, आरक्षण, नौकरी, शिपमेंट। लंबित_ऑर्डर एक ही सूची है जो तैयार लोगों को फ़िल्टर करती है।

ग्राहक

ग्राहक रोस्टर।

products

क्या प्लेटफ़ॉर्म बेचता है: उत्पाद, कमरे, योजना, सेवाएं।

बिलिंग

राजस्व और धन के आकार का कुल, साथ ही राज्य द्वारा गिनती।

टिकट, सेवाएं, डोमेन, सर्वर, गतिविधि

जब आपका प्लेटफ़ॉर्म वास्तव में उनके पास है तो इसका उपयोग करें। एक मानचित्रण को मजबूर न करें - एक अनुत्तरित अनुभाग गलत से बेहतर होता है।

कुछ और आपके प्लेटफॉर्म में है

अपने खुद की घोषणा करें। एक प्रदाता जो अनुभागों को घोषित करता है (): ['licenses', 'shipment'] में सार्वभौमिक लुकअप की अनुमति-सूची में विलय हो गया है, इसलिए प्लेटफ़ॉर्म-विशिष्ट लुकअप किसी भी कोर परिवर्तन के साथ उपलब्ध हो गए हैं।

गलती जो एक दिन की लागत है

एक संदर्भ प्रदाता MUST इंटरफ़ेस को लागू करता है। रजिस्ट्री प्रकार-चेक इसे, इसलिए एक वर्ग जो केवल सही ढंग से देखता है - कोई त्रुटि नहीं, कहीं भी।

ContextProvider. php — अनुबंध, Botble संदर्भ पैकेज से
use OpsIQ\Platform\ContextProviderInterface;

/* MUST implement ContextProviderInterface: ContextRegistry::collectAll()
 * type-checks it, so a provider that merely LOOKS right is skipped and every
 * section answers "No enabled connector supplied this context section" — the
 * exact symptom, with no error anywhere. */
final class ContextProvider implements ContextProviderInterface
{
    public function slug(): string  { return 'yourplatform_context'; }
    public function label(): string { return 'Your Platform (orders, customers, products)'; }
    public function priority(): int { return 30; }   // lower renders earlier

    /** ADMIN only. The guest surface has its own provider and its own rules. */
    public function surfaces(): array { return ['admin']; }

    /** The universal section names this connector can answer. */
    public function sections(): array
    {
        return ['orders', 'pending_orders', 'clients', 'products', 'billing'];
    }

    public function isAvailable(): bool
    {
        try {
            $s = \OpsIQ\Connectors\ConnectorRegistry::getSettings('yourplatform') ?: [];
            return trim((string)($s['base_url'] ?? '')) !== '' && trim((string)($s['api_key'] ?? '')) !== '';
        } catch (\Throwable $e) {
            return false;
        }
    }

    public function build(array $ctx): string
    {
        $section = strtolower(trim((string)($ctx['section'] ?? '')));
        $limit   = max(3, min(50, (int)($ctx['limit'] ?? 20)));
        $query   = trim((string)($ctx['query'] ?? ''));
        try {
            switch ($section) {
                case 'orders':
                case 'pending_orders': return $this->orders($limit, $query, $section === 'pending_orders');
                case 'clients':        return $this->customers($limit, $query);
                case 'products':       return $this->products($limit);
                case 'billing':        return $this->billing();
            }
        } catch (\Throwable $e) {
            return '';   // a provider must NEVER break prompt assembly
        }
        return '';
    }
}
इसे कनेक्टर से पंजीकृत करें

ContextConnectorInterface लागू करें और अपने प्रदाताओं को संदर्भProviders () से वापस लौटें। कनेक्टर वर्ग सीधे कॉन्टेक्स्टप्रोविडरइंटरफेस को भी कार्यान्वित कर सकता है और इसे स्वयं पंजीकृत किया जा सकता है।

सादा पाठ लौटाएं, नहींJSON

() निर्माण () एक टेक्स्ट ब्लॉक लौटाता है जिसे प्रॉम्प्ट में शामिल किया जाता है। इसे रीडर के लिए लिखें: एक शीर्षक, फिर प्रति पंक्ति एक पंक्ति।

"" फेंकने के बजाय वापस लौटें

अपने अपवाद को पकड़ो। एक प्रदाता जो फेंकता है उसे लॉग किया जाता है और छोड़ दिया जाता है, लेकिन "वापसी अनुबंध" होती है।

बिल्डर आपके लिए सेक्शन () नहीं लिख सकता है

उत्पन्न ContextProvider. php जहाजों अनुभाग (): सरणी { वापसी []; } और विज़ार्ड के पास इसके लिए कोई क्षेत्र नहीं है। इसे हाथ से भरें - और याद रखें कि विज़ार्द OVERWRITES फ़ाइल से प्रकाशन करना। पहले अपने संपादन की प्रतिलिपि बनाएँ।

⚠️
स्टेट द रियल TOTAL, नहीं पंक्तियों की संख्या जो आपने भेजा है। एक पृष्ठ कुल नहीं है। ऐसा प्रदाता जो बीस पंक्तियों को बिना कहे सूचीबद्ध करता है ताकि सहायक आत्मविश्वास से जवाब मिल सके "आपने पास किया है"20जब मंच रखता है तो बुकिंग669एक सस्ते काउंटी और एक स्पष्ट लाइन - "TAL on file:669(यह सूची नवीनतम दिखाता है)20केवल) — पूरी तरह ठीक है, और एक आत्मविश्वास से गलत गिनती नहीं की तुलना में बदतर है।
एक खंड ब्लॉक जिसे गलत नहीं किया जा सकता है
$lines = ['YOUR PLATFORM — ORDERS (live, newest first)'];
$lines[] = 'TOTAL orders on file: ' . (int)$total
         . ' (this list shows the newest ' . count($rows) . ' only — never count these rows to answer "how many")'
         . ' | by status: ' . $byStatus;
foreach ($rows as $r) {
    $lines[] = '#' . (int)$r['id'] . ' ' . $r['reference'] . ' | ' . $r['status']
             . ' | amount ' . $r['amount'] . ' | ' . substr((string)$r['created_at'], 0, 16);
}
$lines[] = 'Use yourplatform_get_order (order_id) for the full record.';
return implode("\n", $lines);

अपने कार्यों को इसलिए नाम दें OpsIQ = लिखने से पढ़ सकते हैं

OpsIQ WORDS द्वारा अपनी एक्शन_id में एक कार्रवाई को वर्गीकृत करता है, और यह जानबूझकर रूढ़िवादी है: कुछ भी इसे मान्यता नहीं दी जाती है उसे लिखने के रूप में माना जाता है और अनुमोदन कार्ड की मांग करता है।

1
is_destructive or need_confirmation wins

यदि कोई सेट हो तो कार्रवाई को हमेशा अनुमोदन की आवश्यकता होती है। उन्हें ईमानदारी से घोषित करें - यह वही है जो व्यवस्थापक के अनुमोदन कार्ड को दर्शाता है।

2
id में कहीं भी लिखने वाला शब्द इसे एक लिखना बनाता है

जोड़ें, बनाएं, खुला, अद्यतन करें, संपादित करें, बदलें, संशोधित करें, हटाएँ, नष्ट करें, रद्द करें, वापसी, निलंबित करना, बंद करना, मंजूरी देना, अस्वीकार करना, भेजना, चिन्हित करना, रीसेट करना, बन्द करना, खोलना, पुनर्स्थापना, देना, अनुदान देना, सेट करना, सक्षम करना, अक्षम करना, जारी करना, लागू करना, शुल्क देना, प्रावधान, नवीनीकृत करना, अपग्रेड करना, विलय करना, स्थानांतरित करना, स्थानांतरण, escalate, ध्वज, रजिस्टर, सिंक, धक्का, आयात, रन, ट्रिगर, प्रारंभ करना, रोकना, पुनः आरंभ करना और कुछ अधिक।

3
फिर एक शब्द पढ़ा जाता है

प्राप्त, सूची, खोज, ढूंढना, राय, प्रदर्शन, लाने, गिनती, लुकअप, वर्णन, पढ़ने, निर्यात, पूर्वावलोकन, परीक्षण, पिंग, स्थिति, सारांश, विस्तार, हाल ही में, इतिहास, चेक, लॉग, आँकड़े, मीट्रिक, अवलोकन, राजस्व, ब्रेकडाउन, रिपोर्ट, विश्लेषण, संतुलन, उपयोग, कोटा, स्नैपशॉट, अंतर्दृष्टि, फ़ीड, ड्राफ्ट, ट्राइज़, वर्गीकरण, सुझाव।

4
फिर HTTP विधि का फैसला करती है

गेट, हेड और विकल्प पढ़े जाते हैं।

5
अन्यथा यह एक लेखन है

Unrecognised मतलब अनुमोदन की आवश्यकता है। यह डिफ़ॉल्ट जानबूझकर है।

⚠️
शब्दों को लिखने से पहले शब्द पढ़ा जाता है, इसलिए एक मिश्रित नाम जैसे get_and_sync_orders को एक WRITE के रूप में वर्गीकृत किया गया है। एक क्रिया चुनें, इसे पहले रखें और इसे साफ रखें: list_order, get_customer, search_booking, रद्द_bookिंग, set_order_status.

अगर प्लेटफॉर्म वास्तव में एक है तो केवल मूल_api घोषित करें

The native_api capability registers a generic <slug>_api_call passthrough so the model can reach endpoints your typed actions do not cover. On a platform with no API it is worse than useless: the model keeps reaching for a tool that cannot succeed, instead of using the tools that can.

बिल्डर इसे अपने डेटा-एक्सेस उत्तर से तय करता है

Say the platform has an API and it declares native_api and emits the passthrough. Say it has none (bridge mode, or the "Platform with no API" profile) and it declares platform_bridge instead and strips native_api, so the two can never both be true. You no longer hand-edit this.

हाथ से अधिकृत संकुल अभी भी इसे सही होना चाहिए

यदि आप अपने आप को प्रकट करते हैं, तो वास्तव में देशी_api या प्लेटफॉर्म_bridge में से एक घोषित करें। अनुरूपण मंच_ब्रिज का इलाज करता है क्योंकि भागने के लिए एक पुल कनेक्टर होने की उम्मीद है, और बिल्डर एक ऐसी कल्पना से इनकार कर देता है जो प्लेटफ़ॉर्म_ब्रेज़ को किसी व्यक्ति पर दावा करता है।APIकनेक्टर।

Ai_api_reference. md को किसी भी तरह से ईमानदार रखें

On a connector that declares native_api the admin brain heads that file with a line naming <slug>_api_call. Without native_api it is headed neutrally instead, so a bridge connector no longer advertises a tool it does not have. Describe your real surface — for a bridge, that is your op and do vocabulary, not a REST endpoint table.

अपने प्लेटफॉर्म के बारे में व्यवस्थापक मस्तिष्क को सिखाएं

Declare ai_brain_aware and ship two Markdown files. They are read from the INSTALLED package directory (opsiq/connectors/<slug>/) for ENABLED connectors only, and injected into the admin agent's system prompt.

ai_expertise_admin.md

इस प्लेटफॉर्म IS क्या है, इसका डेटा किस प्रकार आकार दिया जाता है, इसकी वस्तुओं को क्या कहा जाता है और इसके लिए वे क्वेर्क्स जो अन्यथा सहायक अनुमान लगाते हैं। इसे एक सक्षम सहयोगी के लिए लिखें जिन्होंने कभी मंच नहीं देखा है।

ai_api_reference.md

कॉल करने योग्य सतह। एक पुल कनेक्टर के लिए यह आपका op है और उनके मापदंडों के साथ शब्दावली करना, REST समापन बिंदु तालिका नहीं।

बजट

रूखा और कठोर6,000वर्ण प्रति कनेक्टर रखा गया है, और लगभग24,000प्रत्येक सक्षम कनेक्टर में पूरे ब्लॉक के लिए पात्र। प्रति-कनेक्टर कैप पर आपकी फ़ाइल को truncated किया जाता है; ट्रांकेटर से पहले संक्षिप्त करें।

प्रेसिजन भुगतान

ये फाइलें सहायक के बीच आपके सार्वभौमिक टेबल टूल्स का उपयोग करके और गलत सेक्शन से जवाब देने में अंतर हैं क्योंकि कभी भी उन उपकरणों को नहीं बताया गया है।

💡
दोनों फाइलों को INSTALLED पैकेज में होना चाहिए, न सिर्फ आपका स्रोत पेड़। वे साधारण पैकेज फाइलें हैं, इसलिए उन्हें हस्ताक्षर द्वारा कवर किया गया है और ZIP में भेज दिया जाता है - जिसका मतलब यह भी है कि साइन करने के बाद एक संपादन सील टूट जाता है। फिर से हस्ताक्षर करें।
कनेक्टर्स

एक कनेक्टर के माध्यम से पहचान: व्यवस्थापक, ग्राहक, पोर्टल

एक हस्ताक्षर अनुबंध तीन सतहों पर कार्य करता है। कनेक्टर का काम "जो मंच पर लॉग इन है" को एक हस्ताक्षरित टोकन में बदलना है।OpsIQसत्यापित कर सकते हैं, और फिर सत्यापित विषय पेश करने के लिएOpsIQ's shape. कनेक्टर कभी किसी को भी प्रमाणित नहीं करता है - मंच करता है, और हस्ताक्षर उस दावे का वहन करती है।

तीन सतहों, एक संकेतक

व्यवस्थापक - अपने कर्मचारियों, अपने बैकएंड के अंदर

एक व्यवस्थापक विषय. विजेट मंच के व्यवस्थापक पैनल के अंदर लोड करता है और हर स्टाफ सदस्य अपने स्वयं के लिए मिलान किया जाता हैOpsIQएजेंट। व्यवस्थापक विजेट पृष्ठ पर पूर्ण walkthrough।

ग्राहक - एक हस्ताक्षरित ग्राहक, क्लाइंट चैट में

ग्राहक विषय यह है कि लॉग-इन करने वाले ग्राहकों को गुमनाम लुकअप के बजाय अपना डब्ल्यूएचओएल खाता प्राप्त करने देता है: हर आदेश, पूर्ण विस्तार और आपके द्वारा अनुमति देने वाली किसी भी स्व-सेवा कार्रवाई।

पोर्टल - समर्थन पोर्टल में एक गहरी लिंक

उसी दावे के साथ-साथ jti और एकल_use, एक साथ120-दूसरे जीवन, क्योंकि टोकन एक में यात्रा करते हैंURLऔर एक बार खर्च करने योग्य होना चाहिए। इस एक को हाथ से नहीं घुमाएं: सेटिंग्स, सपोर्ट पोर्टल प्रति भाषा तैयार स्निपेट रखता है, और जब खाता क्षेत्र इस सर्वर पर चलता है तो यह मंच आपके लिए मिनट देता है।

पेलोड अनुबंध

ये दावा करते हैं कि सत्यापनकर्ता चेक करते हैं। यहां कुछ भी वैकल्पिक नहीं है, जो कहीं भी एक आंशिक उदाहरण सुझा सकता है।

site_key

शीर्ष स्तर। अनुरोध की साइट कुंजी के बराबर होना चाहिए, या टोकन को मना कर दिया जाता है।

iat और exp

शीर्ष स्तर, unix सेकंड। भविष्य में और आईट के बाद यह होना चाहिए। भविष्य की एक मिनट से अधिक टोकन मना कर दिया जाता है। जीवन को कम रखें - मिनट से घंटे तक।

प्रमाणित: सच

शीर्ष स्तर, घात के बगल में। आपका मंच का दावा है कि एक वास्तविक मानव लॉग इन है।

मंच

शीर्ष स्तर। एक लघु स्लग ने मूल नाम दिया। अनुशंसित, और यह कनेक्टर की पहचान प्रदाता को दूसरे प्लेटफॉर्म के अपने टोकनों को बता देता है।

व्यवस्थापक या ग्राहक

किसी वस्तु को नाम देने वाला एक विषय है। यह एक गैर-खाली आईडी और उपयोगकर्ता नाम या ईमेल - उन पर प्रति व्यवस्थापक एक्सेस गेट मैच ले जाना चाहिए। जब आपके पास दोनों हों, तो दोनों शामिल करें।

मिंटिंग, बोटल पुल से क्रिया-कलाप
$payload = [
    'site_key'      => $cfgSiteKey,
    'iat'           => time(),
    'exp'           => time() + 6 * 3600,
    'authenticated' => true,
    'platform'      => 'yourplatform',
    /* 'admin' or 'customer' — OpsIQ stamps the matching session identity
     * from whichever key is present. */
    $opsiqSubject   => $subjectPayload,
];
$payload64     = rtrim(strtr(base64_encode(json_encode($payload, JSON_UNESCAPED_SLASHES)), '+/', '-_'), '=');
$identityToken = $payload64 . '.' . hash_hmac('sha256', $payload64, $cfgSecret);

दो verifiers, और विफलता वे कारण

OpsIQ में दो टोकन वेरिफायर हैं और वे समान नहीं थे। यह जानने से आपको दोपहर बचाता है, क्योंकि लक्षण कारण की तरह कुछ भी नहीं दिखता है।

व्यवस्थापक विजेट अपने स्वयं के verifier है

opsiq/embed/admin_ajax.php एक स्थानीय सत्यापनकर्ता है जो किसी भी स्थिति में प्रमाणित ध्वज को स्वीकार करता है। वार्तालाप सूची, इतिहास और पढ़ना बाकी सभी इसके माध्यम से जाते हैं, इसलिए वे ठीक प्रामाणिक होते हैं।

साझा सत्यापन सख्त है

opsiq/includes/customer_identity_token_verify.php चैट स्ट्रीम और कोर AJAX के पीछे बैठता हैAPIयह ऐतिहासिक रूप से शीर्ष स्तर पर ध्वज की आवश्यकता है।

लक्षण

इतिहास और बातचीत कार्य। हर चैट बारी उत्तर "Admin लॉगिन की आवश्यकता" होती है। यह बिल्कुल एक सत्र बग की तरह पढ़ता है और नहीं: टोकन शीर्ष स्तर के ध्वज लापता है।

वर्तमान कोर क्या करता है

यह अब विषय के अंदर या ऊपर के स्तर पर ध्वज को स्वीकार करता है, इसलिए अनुबंध समान है। पुराने कोर केवल शीर्ष स्तर पर पढ़ाते हैं। कैनोनिकल आकार और आपके पैकेज हर रिलीज पर काम करते हैं।

यह अब मशीन-चेक है। आपके पैकेज में कोई भी फ़ाइल जो मिंट्स पहचान टोकन को अनुबंध के खिलाफ स्थिर रूप से स्कैन किया जाता है, और एक पेलोड मंच सटीक फाइल और लाइन के साथ अनुपालन विफल हो जाएगा। इसे स्वयं चलाएं: php उपकरण / Vify_identity_contracts. php।

ग्राहक चैट में साइन-इन ग्राहकों

दो चीजें सच हो सकती हैं। कोर ग्राहक सत्यापित करने के लिए टिकट चाहिए, और आपके कनेक्टर को इसे पेश करना होगा।

1
आपका पुल या समापन बिंदु एक ग्राहक टोकन को मिंट करता है

एक ग्राहक विषय के साथ, व्यवस्थापक के रूप में भी हस्ताक्षरकर्ता। मंच के अपने सत्र से ग्राहक को पढ़ें। यदि आपका प्लेटफ़ॉर्म व्यवस्थापकों से अलग-अलग गार्ड पर ग्राहकों को संकेत देता है तो आपके द्वारा चाहते गार्ड को पढ़ाएं और कभी विषयों पर वापस नहीं लौटें - यही कारण है कि ग्राहक को एडमिन टोकन कैसे सौंपा जाएगा।

2
कोर सत्यापित करता है और उसे टिकट देता है

एक वैध टोकन पर, कोर सत्र में सत्यापित विषय को स्टैम्प करता है। आपका प्रदाता एक सिद्ध पहचान पढ़ता है; यह कभी प्रमाणित नहीं होता है।

3
आपकी पहचान प्रोविडर्स ने इसे प्रस्तुत किया

ग्राहक () का पता लगानेOpsIQआकृति: यह MUST लागूOpsIQ\Platform\IdentityProviderInterface, या रजिस्ट्री चुपचाप इसे छोड़ देता है - संदर्भ प्रदाता के समान जाल।

4
ग्राहक-स्किप किए गए कार्यों को ग्राहक_id स्वीकार करते हैं

और OpsIQ इसे निष्पादन से पहले सत्यापित पहचान में लॉक करता है। मॉडल इसकी आपूर्ति नहीं कर सकता है।

IdentityProvider. php — सिद्ध पहचान पढ़ें, इसे OpsIQ's शेप में पेश करें
use OpsIQ\Platform\IdentityProviderInterface;

final class IdentityProvider implements IdentityProviderInterface
{
    public function slug(): string  { return 'yourplatform_identity'; }
    public function label(): string { return 'Your Platform identity (bridge-signed identity_token)'; }
    public function priority(): int { return 25; }   // ahead of the generic session provider

    public function isAvailable(): bool
    {
        try {
            $s = \OpsIQ\Connectors\ConnectorRegistry::getSettings('yourplatform') ?: [];
            return trim((string)($s['base_url'] ?? '')) !== '';
        } catch (\Throwable $e) { return false; }
    }

    public function detectAdmin(): ?array
    {
        $row = $this->sessionRowFor('_opsiq_admin_identity');
        if (!$row || !$this->isOurs($row)) return null;
        return [
            'id'       => (int)($row['id'] ?? 0),
            'name'     => $this->displayName($row, 'Admin'),
            'email'    => (string)($row['email'] ?? ''),
            'username' => (string)($row['username'] ?? ''),
            'role'     => (string)($row['role'] ?? ''),
            'platform' => 'yourplatform',
            'source'   => 'yourplatform_identity_token',
        ];
    }

    public function detectCustomer(): ?array
    {
        $row = $this->sessionRowFor('_opsiq_customer_identity');
        if (!$row || !$this->isOurs($row)) return null;
        return [
            'id'       => (int)($row['id'] ?? 0),
            'name'     => $this->displayName($row, 'Customer'),
            'email'    => (string)($row['email'] ?? ''),
            'phone'    => (string)($row['phone'] ?? ''),
            'platform' => 'yourplatform',
            'source'   => 'yourplatform_identity_token',
        ];
    }

    /* A session identity stamped by ANOTHER platform's token must not be
     * claimed here. An empty platform is accepted because older bridges did
     * not stamp one, and the site key already scoped the token. */
    private function isOurs(array $row): bool
    {
        $p = strtolower(trim((string)($row['platform'] ?? '')));
        return $p === '' || $p === 'yourplatform' || $p === 'remote';
    }

    private function sessionRowFor(string $key): ?array
    {
        if (session_status() !== PHP_SESSION_ACTIVE) return null;
        $row = $_SESSION[$key] ?? null;
        return (is_array($row) && (int)($row['id'] ?? 0) > 0) ? $row : null;
    }
}

ग्राहक-स्किप किए गए कार्य: दो ताले, दोनों की आवश्यकता

मॉडल को कभी नहीं चुनना चाहिए जिसका डेटा यह पढ़ता है।OpsIQयह लागू करता है कि इसके पक्ष में, और आपके प्लेटफॉर्म को दूसरी तरफ भी इसे लागू करना चाहिए। एक लॉक लीक से दूर एक बग है; दो ताले अनुबंधित हैं।

लॉक1 — OpsIQपहचान मापदंडों को ओवरराइट करता है

ग्राहक-चैट एक्शन रन से पहले, OpsIQ सत्यापित आगंतुक पहचान के साथ प्रत्येक पहचान के आकार का पैरामीटर को प्रतिस्थापित करता है: ग्राहक_id, ग्राहक_आईडी, उपयोगकर्ता_id; userid, customer_id.

Lock 2 — आपका प्लेटफ़ॉर्म हर क्वेरी को फिर से कॉपी करता है।

आपको दी गई आईडी को ले लो और उसे हर पढ़ने के WHERE क्लॉज में जोड़ें और उस सतह पर हर लिखने का अनुरोध करें। कभी भी अपने अनुरोध पर संदर्भ पर भरोसा न करें। किसी और के आदेश के बारे में पूछने वाले एक हस्ताक्षरित ग्राहक खाली वापस आना चाहिए, मना नहीं करना चाहिए।

अपने मापदंडों को इसलिए लॉक करें 1 उन्हें ढूंढ सकते हैं

इसे customer_id कहते हैं, क्यूएसटी या रेफरी नहीं है। एक पैरामीटर OpsIQ पहचान नहींती वह पैरामीटर नहीं है जिसे यह लॉक नहीं कर सकता है।

⚠️
हस्ताक्षरित ग्राहक को अपने OWN ऑपरेशन की सतह दें, जो व्यवस्थापकों से अलग है, यहां तक कि जब SQL समान दिखता है। विभिन्न नियमों के साथ दो सतहों ईमानदार रहते हैं; एक ध्वज के साथ एक सतह उस दिन लीक हो जाती है जिसे कोई गलत शाखा संपादित करता है।

शून्य पृष्ठ तारों: कनेक्टर घोषित जांच

You can spare the operator all page wiring. Add an admin_identity_probe_url setting (https only) pointing at your identity endpoint. The plain admin-widget loader from Remote Sites, Codes then works with no page attributes at all: the widget discovers the endpoint through the connector, calls it with the site key and widget token, and authenticates each admin individually. A page can still override with a data-identity-endpoint attribute or window.OpsIQAdminIdentityEndpoint.

सेटिंग्स।json- जांच सेटिंग
{
  "key": "admin_identity_probe_url",
  "label": "Admin identity probe URL",
  "type": "text",
  "placeholder": "https://your-site.com/opsiq-yourplatform-bridge.php?op=admin_identity",
  "help": "Set this to your bridge admin_identity endpoint and the plain admin-widget loader works with NO page wiring: the widget probes this URL by itself, the bridge answers with the signed identity of the CURRENTLY logged-in admin, and every admin is matched to their own OpsIQ agent. Leave empty to keep the admin embed off."
}
जांच को ब्राउज़र द्वारा बुलाया जाता है

एक ही ओरिजिन, इसलिए यह एक कस्टम हेडर नहीं ले सकता है। इसका प्रमाणीकरण मंच सत्र है। इसे अपने पुल-की गेट के AHEAD रखो, इसे रिकॉर्ड डेटा से दूर रखें और लॉग आउट आगंतुक के लिए बिल्कुल भी कुछ नहीं लौटाएं।

यह एक निश्चित आकार का जवाब देता है

{"success":true,"authenticated":true,"admin":{...},"identity_token":"..."} — and {"success":false,"authenticated":false,"error":"..."} when nobody is signed in.

पृष्ठ स्रोत में कोई लंबे समय तक रहने वाला रहस्य नहीं

केवल हस्ताक्षरित, टोकन को समाप्त करना।

लारवेल के लिए पूर्ण समापन बिंदु कार्यान्वयन,WordPress, WHMCS, सिम्फनी और सादे PHP, साथ ही हार्ड-वोन लारवेल स्पेसिफिक्स और समस्या निवारण आदेश व्यवस्थापक विजेट पृष्ठ पर हैं। वे एक ग्राहक विषय के लिए समान कोड हैं: आपके द्वारा पढ़ा जाने वाले गार्ड को बदल दें और जिस विषय की कुंजी आप साइन इन करें।

कनेक्टर्स

प्रकाशन: फ़ोल्डर को संपादित करना प्रकाशित नहीं है

दोपहर को खोने का सबसे आम तरीका मार्केटप्लेस_कनेक्टर्स के तहत एक कनेक्टर को संपादित करना है / इसे फिर से स्थापित करें और कुछ भी नहीं बदला गया। इंस्टॉल उस फ़ोल्डर को पढ़ा नहीं जाता है। वे बाज़ार कैटलॉग से एक हस्ताक्षरित ZIP खींचते हैं। प्रकाशन अनुक्रम है जो आपके परिवर्तनों को ZIP में डाल देता है।

क्यों संपादित नहीं किया

marketplace_connectors/<slug>/ is the SOURCE

यहीं है जहाँ आप काम करते हैं। इससे कुछ भी नहीं स्थापित होता है।

कैटलॉग में एक हस्ताक्षरित ZIP है

एक इंस्टॉल डाउनलोड जो ZIP हस्ताक्षर को सत्यापित करता है और इसे अनपैक करता है। जब तक आप ZIP का पुनर्निर्माण नहीं करते हैं, तब तक हर इंस्टॉल पुराने पैकेज प्राप्त करने में रहता है।

कनेक्टर बिल्डर कहीं और प्रकाशित करता है

It writes into /connectors/<slug>/ on this install. That is a local connector, not a marketplace release. The two paths do not overlap.

रिलीज अनुक्रम

1
TWO फ़ाइलों में संस्करण को टक्कर दें

सेटिंग्स।jsonऔर कनेक्टर_संविदा।jsonConformance उन की तुलना करता है और विफल रहता है अगर स्लग, संस्करण या क्षमता असहमत हो जाती है। जब आप वहाँ हैं तो CHANGELOG.md प्रविष्टि जोड़ें - यह एक आवश्यक फ़ाइल है।

2
फिर से सिंक पुल स्निपेट

php tools/sync_connector_bridge_snippets.php --apply — only relevant if your package ships bridge/*.php, and mandatory if it does. Skipping it means the panel hands operators the previous bridge.

3
प्रत्येक पैकेज को फिर से हस्ताक्षर करें

php उपकरण/resign_all_connectors. php — हस्ताक्षर फ़ाइल hashes को कवर करता है, इसलिए कोई भी इसे अमान्य रूप से संपादित करता है। आखिर में साइन इन करें, प्रत्येक फाइल के अंतिम होने के बाद।

4
साइनिंग कुंजी निर्यात करें, फिर बीज

बीजदाता प्रत्येक पैकेज पर संकेत देता है क्योंकि यह ZIP बनाता है, और यह एक संदर्भ में चलता है जहां कुंजी को सेटिंग्स से पढ़ा नहीं जा सकता - इसलिए इसे पर्यावरण से आना चाहिए।

5
यदि आप एक जहाज करते हैं, तो पुल फ़ाइल को फिर से हटा दें

कनेक्टर को पैकेज अद्यतन करने की स्थापना रद्द करना। यह ऑपरेटर के वेबरूट में बैठे प्रतिलिपि को स्पर्श नहीं करता है। उन्हें पैनल और चेंजलॉग में बताएं।

क्रम में पूरे रिलीज
# 2 — hold the panel copy identical to the shipped bridge
php tools/sync_connector_bridge_snippets.php --apply

# 3 — re-sign (do this last, after every file is final)
php tools/resign_all_connectors.php

# 4 — the seeder reads the signing key from the ENVIRONMENT only
export OPSIQ_CONNECTOR_SIGNING_KEY="$(php -r 'require "bootstrap/init.php"; echo opsiq_setting("connector_signing_key","");')"
php saas/scripts/maint/seed_marketplace_free.php --apply --only=<slug>

# verify before and after
php tools/verify_identity_contracts.php
php vendor/bin/phpunit tests/phpunit/Unit/Connectors
⚠️
क्यों निर्यात वैकल्पिक नहीं है: हस्ताक्षरकर्ता OPSIQ_CONNECTOR_SIGNING_KEY पहले और कनेक्टर_signing_key सेटिंग दूसरे में कुंजी के लिए देखता है। बीजदाता SaaS बूटस्ट्रैप और उपकरण/sign_connector. php जूते बिल्कुल भी कुछ नहीं, इसलिए दोनों सेटिंग्स रीडर मौजूद नहीं है - कोई पर्यावरण चर वहाँ कोई कुंजी नहीं है, और आपको "कोई संकेत कुंजी उपलब्ध" प्राप्त नहीं होता है या हर पैकेज ने साइनिंग_failed के रूप में रिपोर्ट की थी। केवल टूल / resign_all_connectors. php बूट्स OpsIQ _\ और अपने आप पर कुंजी पा सकते हैं।

वास्तव में जहाज़ क्या

केवल हस्ताक्षर कवर को फाइलें करता है

ZIP हस्ताक्षरकर्ता की अपनी फ़ाइल सूची से बनाया गया है, इसलिए आपके पैकेज फ़ोल्डर में बैठे एक स्ट्रे फाइल भेजी नहीं जाती है। यह जानबूझकर है: ग्राहकों के साथ सवारी करने के लिए इस्तेमाल किया जाने वाला एक असाइन्ड फाइल।

कवर एक्सटेंशन

php,json, js,css, एमडी, txt,html, sh, svg, png, jpg, jpeg, gif, webp, ico, yml, yaml - recursively, पुल सहित / और परीक्षण/। हस्ताक्षर.jsonखुद को हैश से बाहर रखा गया है और फिर ZIP में जोड़ा गया ताकि इंस्टॉल सत्यापित कर सकें।

कुछ और नहीं_packaged के रूप में रिपोर्ट किया गया है

बीजदाता ने हर फाइल को इसके पीछे छोड़ दिया है। उस सूची को पढ़ें। एक फ़ाइल आपको जहाज की उम्मीद थी जिसमें गलत विस्तार या गलत स्थान होता है - चुप सफलता नहीं होती।

किसी भी कवर फ़ाइल को संपादित करने से सील टूट जाती है

एक मार्कडाउन फ़ाइल को शामिल करना। उस पैकेज को फिर से हस्ताक्षर करें।

एक वितरण पैकेज में आवश्यक फाइलें

connector.php

कनेक्टरइंटरफेस का एक उदाहरण वापस करना चाहिए।

settings.json

Manifest: स्लग, नाम, संस्करण, प्रकटन_version, संगतता, क्षमताओं, Connector_contract_version.

connector_contract.json

मशीन पठनीय अनुबंध इसके स्लग, संस्करण और क्षमता सेट सेटिंग्स के समान होना चाहिए।json.

README. md, DEVELOPER. mD, CHANGELOG. m डी

सभी तीनों को अस्तित्व और न्यूनतम आकार के लिए चेक किया जाता है। DEVELOPER. md वास्तविक सामग्री की जरूरत है, न कि एक ठूंठ।

प्रति घोषित क्षमता एक फ़ाइल

प्रत्येक क्षमता का नाम फ़ाइल की उम्मीद है - संदर्भ के लिए ContextProvider. php, पहचान के लिए IdentityProviding. php , GuestLookupProviders. php अतिथि_lookup के लिए और इतने पर - जब तक कनेक्टर क्षमता को लागू नहीं करता है।

कुछ ऐसा नहीं जो एक क्रेडेंशियल की तरह दिखता है

अनुरूपता गुप्त आकार के मूल्यों और निजी कुंजी के लिए तीन मार्कडाउन फ़ाइलों को स्कैन करती है, और हिट पर विफल हो जाती है।

इसे खरीदने से पहले चेक करें

पूर्ण अनुरूपता सूट एक ही स्थापित रन है। यह कैनोनिकल अनुबंध के खिलाफ प्रकट होने की जांच करता है, जो रनटाइम और प्रकट क्षमताओं को स्वीकार करते हैं, कि प्रत्येक घोषित क्षमता में इसकी फ़ाइल और उसके तरीके होते हैं, हर मिनट फाइल में पहचान टोकन अनुबंध, पुल-निप्पेट मैच, अतिथि-lookup अनुमति देता है स्वच्छता, कार्रवाई अद्वितीयता और पुष्टि सुरक्षा, और पैकेज हस्ताक्षर।

हर रिलीज से पहले सभी चार रन
# conformance for every marketplace package
php tools/test_marketplace_connector_conformance.php

# the identity-token contract, statically, with file:line on failure
php tools/verify_identity_contracts.php

# the connector unit suite
php vendor/bin/phpunit tests/phpunit/Unit/Connectors

# the release gate
php tools/release_gate_connectors.php
💡
एक विफलता की उम्मीद है और यह कोई समस्या नहीं है: पैकेज हस्ताक्षर चेक अभी भी संपादन करते समय चेतावनी रिपोर्ट करता है। यह उस क्षण को साफ़ करता है जब आप इस्तीफा दे देते हैं। हर अन्य असफलता वास्तविक है।
कनेक्टर्स

कनेक्टर पैकेज और जीवनचक्र संदर्भ

यह एक कनेक्टर के निर्माण के लिए स्रोत स्तर का अनुबंध है कि OpsIQ, पहचान सकते हैं, कॉन्फ़िगर कर सकते हैं , मान्य कर सकते है, सक्षम कर सकते थे, निष्पादित कर सकतें हैं, परीक्षण, साइन और वितरित कर सकते...

डेवलपर संदर्भ
कनेक्टर पैकेजएक कनेक्टर पैकेज में एक आवश्यक कनेक्टर कार्यान्वयन और प्रकट होता है, जिसमें वैकल्पिक क्रियाएं, व्यंजनों, ज्ञान, संपत्तियां और हस्ताक्षर मेटाडाटा शामिल हैं।कनेक्टर पैकेजdeveloperMANIFESTv1जीवनशैलीप्रबंधितवर्कशॉपस्कोपलाइव WORKSPACEconnector.phpकनेक्टर वर्ग / कारखानाआवश्यकsettings.jsonManifest and सेटिंग्स स्कीमाआवश्यकactions.jsonकार्य परिभाषावैकल्पिकsignature.jsonपैकेज हस्ताक्षर मेटाडाटारिलीज1DECLAREसबसे महत्वपूर्ण और क्षमताओं2IMPLEMENTजीवनचक्र और प्रदाता3वैलिडेटटेस्ट, संकेत, पैकेज
एक कनेक्टर पैकेज में एक आवश्यक कनेक्टर कार्यान्वयन और प्रकट होता है, जिसमें वैकल्पिक क्रियाएं, व्यंजनों, ज्ञान, संपत्तियां और हस्ताक्षर मेटाडाटा शामिल हैं।

न्यूनतम पैकेज

connectors/example_platform/
├── connector.php          # connector implementation / entry point
├── settings.json          # manifest + configuration schema
├── actions.json           # optional action catalogue
├── README.md              # setup, scopes, webhooks and limits
├── workflow_recipes.json  # optional reusable recipes
├── knowledge.json         # optional provider knowledge
├── profile.json           # optional connector profile
├── src/                   # optional client/provider classes
├── assets/                # optional admin assets
└── signature.json         # signed release metadata

मैनिफेस्ट अनुबंध

settings.json प्रकट संस्करण का उपयोग करता है 1The Validator उम्मीद करता है एक slug, नाम, संस्करण, घोषणा_version, संगतता, विवरण और क्षमताओं. संगतता घोषणा opsiq_min और opsiq_maxThe state of a sorry, or the status is one of the उत्पादन, बीटा, पूर्वावलोकन या टेम्पलेटक्षमता परिपक्वता स्तर L1-L6 का उपयोग करता है। विरासत पैकेज चेतावनी के साथ सामान्यीकृत किया जा सकता है, लेकिन एक नया पैकेज बिना चेतावनी के पास होना चाहिए।

कोर कनेक्टर इंटरफ़ेस

  • पहचान और सेटअप: slug(), name(), description(), capabilities(), settingsSchema(), testConnection().
  • लाइफसाइकल: onEnable() और onDisable()अक्षम होना चाहिए; डेटा प्यूज एक अलग जानबूझकर ऑपरेशन है।
  • इनबाउंड / सिंक: handleWebhook(), poll(), backfill()Poll वृद्धिशील काम संभालती है; बैकफिल आयात इतिहास और दोहराने के लिए सुरक्षित होना चाहिए।
  • समर्थन: pushReply() जहां मंच जवाब स्वीकार करता है।
  • कार्य: registerActions() निष्पादन योग्य कार्रवाई अनुबंध की आपूर्ति करता है।
  • सुरक्षा: securityCapabilities(), syncBlockedIp(), removeBlockedIp(), testSecuritySync().

अमूर्त आधार भी वैकल्पिक चंकी बैकफिल, ग्राहक सूचीकरण, ईमेल-खाता खोज / निर्माण, ग्राहकों, व्यवस्थापक / ग्राहक का पता लगाने, बिलिंग/context/identity प्रदाताओं, प्रतिक्रिया निष्कर्षण, HTTP कॉल को पुनः प्राप्त करने के लिए प्रदान करता है। JSON-पैथ एक्सेस, फजी रैंकिंग और पैगिनेशन सहायक।

क्षमताओं और प्रमाणीकरण

समर्थित क्षमता नामों में एक्शन, ट्रिगर्स, संदर्भ, पहचान, बिक्री, बिलिंग, इनबाउंड_टिकट, आउटबाउंड_रिप्लाई, सिंक_यूज़र, सिंक-विभाग, सुरक्षा_events, customer_import, Security_native_block, promo_audience, प्रोमो_फ़ीड, ईमेल_मेलबॉक्स, देशी_api, ai_brain_aware और ai _tickets शामिल हैं। बिल्डर प्रदान करता है API कुंजी, भालू, बुनियादी, HMAC,OAuth 2ग्राहक क्रेडेंशियल,OAuth 2प्राधिकरण कोड और कस्टम प्रमाणीकरण टेम्पलेट्स।

रजिस्ट्री जीवनचक्र

  1. खोज पैकेज को लोड करता है और इसके प्रकट होने को मान्य करता है।
  2. विन्यास प्रति कार्यक्षेत्र संग्रहीत है; रहस्य एन्क्रिप्टेड हैं।
  3. कनेक्शन परीक्षण कनेक्टर को सक्षम किए बिना क्रेडेंशियल साबित करता है।
  4. कॉल सक्षम करें onEnable(), एक्शन परिभाषाओं को सिंक्रनाइज़ करता है और प्रारंभिक बैकफिल शुरू कर सकता है।
  5. मतदान/वेबहुक/उपस्सक्राइबर निष्पादन हमेशा कार्यस्थान संदर्भ में होता है।
  6. कॉल अक्षम करें onDisable() और आयातित डेटा को हटाने के बिना गतिविधि बंद कर देता है।
  7. प्रेज एक अलग अभियान है।

सुधार नियम

  • प्रत्येक पढ़ने, लिखने, कैश कुंजी, डिडुप्लिकेशन कुंजी और वेबहुक लुकअप में वर्कस्पेस / साइट कुंजी का उपयोग करें।
  • बैकफिल, वेबहुक ingestion बनाएं और एक्शन आइडमेटेंट लिखें। जहां भी प्लेटफॉर्म एक प्रदान करता है वहां एक बाहरी आईडी / इवेंट आईडी रिकॉर्ड करें।
  • दूरस्थ प्रणालियों के लिए, उनका उपयोग करें API कभी भी अपने डेटाबेस तालिकाओं में मौजूद नहीं माना जाता है OpsIQ कनेक्शन।
  • संरचित, ग्राहक-सुरक्षा त्रुटियों को वापस लौटें। कभी भी रहस्यों, कच्चे प्रदाता निशान या किसी अन्य कार्यक्षेत्र के अस्तित्व का खुलासा नहीं किया जाता है।
  • केवल पैकेज को वास्तव में लागू करने की क्षमता को घोषित करना। actions.json कैटलॉग तब तक एक कार्रवाई का उपयोग नहीं कर सकता जब तक कनेक्टर स्थापित, सक्षम, कॉन्फ़िगर और इसका कनेक्शन मान्य न हो।

परीक्षण और रिलीज

PHP लिंट, प्रकट सत्यापन, कनेक्शन परीक्षण, एक्शन स्कीमा टेस्ट, वेबहुक हस्ताक्षर / प्रदर्शन परीक्षण, कार्यक्षेत्र-अलगाव परीक्षण, बैकफिल-रिप्ट परीक्षण, अक्षम कनेक्टर परीक्षण और विफलता / मरम्मत परीक्षण चलाएं। एक बाज़ार पैकेज पर हस्ताक्षर किए जाने चाहिए और सत्यापित किया जाना चाहिए, इसमें सेटअप / अनुमतियां / Webhook प्रलेखन शामिल हैं, और इसकी वास्तविक रिलीज स्थिति को इंगित करते हैं। कनेक्टर टाइल और प्रकट आधिकारिक उपलब्धता संकेत है।

कनेक्टर्स

कनेक्टर व्यंजनों

सामान्य कनेक्टर सेटअप के लिए चरण-दर-चरण व्यंजनों।

व्यंजन
कनेक्टर नुस्खाA Shopify एक चेकलिस्ट के रूप में सेटअप नुस्खा: ऐप बनाएं, अनुदान गुंजाइश, पेस्ट टोकन और परीक्षण करें, वेबहुक को सक्षम करें, एक टेस्ट ऑर्डर दें।कनेक्टर नुस्खाShopifyरेसिपी · Shopify वेबहुक के साथOne who has a custom app in Shopify _admin.अनुदान गुंजाइश: read_orders, read_customers...पेस्ट स्टोर डोमेन + टोकन, टेस्ट क्लिक करेंसक्षम Webhook सिंक (ऑर्डर ऑटो-रेजिस्टर)एक परीक्षण आदेश जगह → में बिक्री में दिखाई देता है 30s1STEP BY STEPप्रति-पेस्ट व्यंजनों2REAL PLATFORMSShopify · WHMCS · Stripe· GBP3वेरिफटेस्ट ऑर्डर 30s_ में दिखाता है
प्रत्येक नुस्खा एक चेकलिस्ट है जिसे आप नीचे के ऊपर अनुसरण करते हैं, यहाँ, Shopify वास्तविक समय के ऑर्डर वेबहुक के साथ, एक परीक्षण आदेश द्वारा सत्यापित।

पकाने की विधि: Shopify रियल टाइम वेबहुक के साथ

परिदृश्य:
Goal: कनेक्ट Shopify स्वचालित ऑर्डर सिंक के साथ GDPR अनुपालन।
क्या करना है:

1. Create a custom app in Shopify admin (Settings > Apps > Develop apps). 2. Grant scopes: read_orders, read_customers, read_products, write_customers. 3. Copy the Admin API access token. 4. In OpsIQ Connectors > Shopify, enter store domain and token. 5. Click Test Connection. 6. Enable Webhook sync, OpsIQ registers order/customer webhooks automatically. 7. GDPR webhooks register automatically (data_request, customers/redact, shop/redact). 8. Verify: place a test order, check it appears in OpsIQ Sales within 30 seconds.

विधि: WHMCS एकीकरण

परिदृश्य:
Goal: कनेक्ट WHMCS इसलिए AI ग्राहकों, सेवाओं, टिकटों और चालानों को देख सकता है।
क्या करना है:

1. In WHMCS admin, Setup > Staff Management > Manage API Credentials. Create a key. 2. In OpsIQ Connectors > WHMCS, enter URL, API identifier, and secret. 3. Click Test Connection. 4. Install the WHMCS module addon for ticket relay. 5. Verify: ask the admin AI "Find client [email protected]". WHMCS data should appear.

पकाने की विधि: Stripe भुगतान

परिदृश्य:
Goal: Track Stripe Payments and let AI लेनदेन को देखने के लिए।
क्या करना है:

1. In Stripe Dashboard > Developers > API keys, create a restricted key (read: Customers, Charges, Invoices, Subscriptions). 2. In OpsIQ Connectors > Stripe, enter the restricted key. 3. Test Connection. 4. Add webhook endpoint in Stripe: copy the webhook URL shown on the connector's own settings page. It carries a per-connector token and looks like https://your-domain.com/api/connectors.php?slug=stripe&token=THE_TOKEN A URL without the token is rejected with "Missing slug or token". 5. Select events: charge.succeeded, invoice.paid, customer.subscription.updated. 6. Copy the webhook signing secret to OpsIQ. 7. Verify: make a test payment, check it in OpsIQ Sales.

पकाने की विधि: Google Business Profile

परिदृश्य:
Goal: समीक्षा प्रबंधन, पोस्ट और अंतर्दृष्टि के लिए GBP कनेक्ट करें।
क्या करना है:

1. Create a Google Cloud project, enable Business Profile API. 2. Create OAuth 2.0 credentials (Web application). 3. Set redirect URI: copy it from the connector's own settings page. Google and Microsoft connectors share one slug-less callback: https://your-domain.com/connectors.php?oauth=callback Everything else uses https://your-domain.com/connectors.php?slug=<slug>&oauth=callback OAuth redirect URIs must match EXACTLY, and a URI missing oauth=callback is read as a webhook and answered with "Missing slug or token". 4. In OpsIQ, enter Client ID and Client Secret. 5. Click Authorize, sign in, grant access. 6. Select your business location. 7. Verify: reviews, posts, and insights should appear.

कनेक्टर्स

CRM & Site Intelligence

OpsIQ सबसिस्टम एक्सटेंशन के लिए खुला है। एक कनेक्टर CRM या साइट इंटेलिजेंस में नई क्षमता को प्लग कर सकता है जिसमें कोई बदलाव नहीं होता है।OpsIQ कोर, मंच क्षमता रजिस्ट्री (\) के माध्यम सेOpsIQ\Platform\CapabilityRegistry). क्षमता की घोषणा, अपनी छोटी विधि सेट को लागू करने, कनेक्टर को जहाज़,OpsIQ यह पता चलता है और इसे यूआई में तार करता है, ग्राहक 360 समयरेखा और स्थापित संकेत।

CRM और SI का विस्तार
मंच क्षमताओंबाएं फीडिंग क्षमता बसों पर एक कनेक्टर ()CRM, साइट इंटेलिजेंस, एनालिटिक्स) कैपेबिलिटी रेजिस्ट्री द्वारा खोजा गया।मंच क्षमताओंकार्यस्थलआपका कनेक्टरक्षमताओं की घोषणाCRMकैलेंडर · संवर्धन · esign · भुगतान · मेलबॉक्ससाइट इंटेलिजेंसLocal_listing · रैंक_dataएनालिटिक्सWeb_analytics · रिपोर्ट & ingestCapabilityRegistryइसे और तार यूआई + टाइमलाइन की खोज करता है1DECLAREक्षमताओं, कोर संपादन नहीं2PLUG INCRM · SI · एनालिटिक्स बसें3AUTO-WIREDयूआई, टाइमलाइन, प्रॉम्प्ट
एक कनेक्टर क्षमताओं (कैलेंडर, संवर्धन, रैंक डेटा, विश्लेषण) और OpsIQ ऑटो उन्हें CRM और साइट इंटेलिजेंस में तार करता है, कोई कोर परिवर्तन नहीं होता।

क्षमताओं की घोषणा

घोषणात्मक (सेटिंग)।json)

जोड़ें <domain>_capabilities सरणी, no-code/marketplace कनेक्टर्स के लिए सबसे अच्छा। डोमेन: crm, site_intelligence.

कोड (connector. php) में

कार्यान्वयन crmCapabilities() / siCapabilities() उसी वर्णनकर्ता को वापस लौटाना।

एक CRM कैलेंडर प्रदाता (सेटिंग) की घोषणा करें।json)

परिदृश्य:
गोल: CRM अनुसूची-मीटिंग पैनल में एक कैलेंडर कनेक्टर दिखाई देता है।
क्या करना है:

"crm_capabilities": [ { "type": "calendar", "label": "Calendar (Acme)", "actions": ["createEvent","listEvents","freeBusy"], "requires_auth": true } ]

एक साइट इंटेलिजेंस प्रदाता (सेटिंग्स) की घोषणा करना।json)

परिदृश्य:
लक्ष्य: स्थानीय लिस्टिंग डेटा को साइट इंटेलिजेंस में फ़ीड करें।
क्या करना है:

"site_intelligence_capabilities": [ { "type": "local_listing", "actions": ["listLocations","listReviews","getInsights"], "requires_auth": true } ]

क्षमता बसों और उनकी विधि की सतह

Crm / कैलेंडर

createEvent($settings,$params) →{success,event_id,html_link,meet_link_gov.in listEvents; freeBusyद्वारा संचालित \OpsIQ CRM\CalendarBridge.

chrong / संवर्धन

enrich($settings,$params) → {success,traits}. \\ द्वारा संचालित OpsIQ\CRM\EnrichmentBridge (यह भी स्वचालित रूप से कंपनी के निर्माण पर चलाता है जब एक प्रदाता जुड़ा हुआ है)।

सीआरएम / ई- हस्ताक्षर

sendForSignature($settings,$params) → {success,envelope_id,sign_url}. द्वारा संचालित \OpsIQ\CRM \EsignBridge।

site_intelligence/local_listing

listLocations, listReviews, getInsightsGoogle Business Profile कनेक्टर के माध्यम से जहाज।

site_intelligence / रैंक_data

keywordRanks($settings,$params) → {success,ranks}. द्वारा संचालित \OpsIQ\SiteIntelligence \RankDataBridge। जहाजों: SerpApi कनेक्टर।

विश्लेषणात्मक / Web_analytics

report($settings,$params) (सिंक/निर्यात) + ingest($settings,$events) (आयात)। \ द्वारा संचालित OpsIQ\Analytics \WebAanticsBridge। जहाजों: Google Analytics (GA4) कनेक्टर। डेटा API रिपोर्टों के लिए, आयात के लिए मापन प्रोटोकॉल। एनालिटिक्स CRM + साइट इंटेलिजेंस (डोमेन) जैसे कनेक्टर्स के लिए खुला है analytics / analytics_capabilities).

भुगतान / भुगतान_provider

listPayments, customerPayments, createPaymentLinkद्वारा संचालित \OpsIQ\Payment\Bridge. CRM समयरेखा पर ग्राहक का भुगतान दिखाएं + एक सौदे पर भुगतान लिंक भेजें।Stripeभुगतान कनेक्टर। डोमेन payments / payments_capabilities.

मेलबॉक्स / ईमेल_sync

listMessages + sendMessageद्वारा संचालित \OpsIQ\Mailbox \mailboxBridge। ग्राहक पर एक ग्राहक के ईमेल 360 समयरेखा + एक सौदे से ईमेल भेजें। जहाजों: Gmail + Outlook/Microsoft 365 कनेक्टर्स. डोमेन mailbox / mailbox_capabilities.

Shared OAuth ऐप + One redirect

सभी गूगल कनेक्टर \ के माध्यम से एक ऐप साझा करते हैंOpsIQ\OAuth\SharedGoogleApp. सेट google_oauth_client_id/_secret एक बार और कैलेंडर, एनालिटिक्स, बिजनेस प्रोफाइल +Gmailसभी कार्य (प्रति-कनेक्टर "(वैकल्पिक)" फ़ील्ड ओवरराइड हैं)। वे एक पुनर्निर्देशित भी साझा करते हैं।URI, <site>/connectors.php?oauth=callback (कोई प्रति कनेक्टर स्लग नहीं) क्योंकि गूगल ने कोई खुलासा नहीं किया API URIs को एक ऐप में रीडायरेक्ट करने के लिए; OpsIQ हस्ताक्षरित से कनेक्टर को ठीक कर देता है OAuth state नॉन्सी रजिस्टर करें कि सिंगल URI एक बार और हर गूगल कनेक्टर (वर्तमान + भविष्य) ने आगे कंसोल सेटअप के साथ अधिकृत किया है। वापसी SharedGoogleApp::resolve(...)A's redirect_uri अपने आप से oauthParams()कभी भी हार्ड-कोड एक प्रति स्लग रीडायरेक्ट नहीं है। माइक्रोसॉफ्ट कनेक्टर \ के माध्यम से समान करते हैंOpsIQ\OAuth\SharedMicrosoftApp (Merthe MicrosoftApp)microsoft_oauth_*).

आयात बटन क्षमता-gated हैं

आयात (Historical backfill) और ग्राहकों को आयात बटन केवल उन कनेक्टर्स के लिए दिखाते हैं जो वास्तव में उन्हें लागू करते हैं, प्रतिबिंब द्वारा पता चला है, इसलिए घोषणा करने का कोई झंडा नहीं है। ओवरराइड backfill() या backfillChunk() आयात बटन कमाने के लिए; ओवरराइड listCustomers() (Return {email, first_name, ...} पृष्ठों) आयात ग्राहकों को कमाने के लिए। AbstractConnector कोई नहीं, बटन छिपा रहता है, इसलिए यूआई कभी एक आयात प्रदान नहीं करता है।

A-A-Fered, a-freet.

सीआरएम एजेंट प्रस्ताव और पुस्तकों की बैठकों से निपटने के संकेतों (\)OpsIQ\CRM\MeetingProposer → calendarBridge), और ऑटो-संवर्धित नए खातों, "AI CRM" पाश संचालित करता है, जो कनेक्टर बसों में निष्पादित होता है।

ग्राहक-चैट टिकट की तलाश (Cental-chat)fetchTicket())

दो-स्तरीय, कोई कोर परिवर्तन नहीं

जब कोई आगंतुक क्लाइंट चैट में टिकट नंबर का उल्लेख करता है ("T- की स्थिति क्या है)000123?"), OpsIQ इसे दो स्तरों में हल करता है। टीयर 1 साझा OpsIQ टिकट स्टोर, प्रत्येक कनेक्टर के साथ पढ़ा जाता है inbound_ticket इसके टिकटों को प्रतिबिंबित करता है, इसलिए सिंक किए गए टिकट केवल सभी कनेक्टर्स के लिए काम करते हैं जो प्रति-कनेक्टर कोड शून्य होते हैं। टीयर 2 ओएलडी टिकट के लिए एक लाइव गिरावट है जो कभी भी प्रतिबिंबित नहीं हुई थी: कोर एक वैकल्पिक कॉल करता है fetchTicket() प्रत्येक सक्षम कनेक्टर पर जो इसे लागू करता है। यह है duck-typed (d) method_exists(), लाइक contextProviders()/audienceCatalog()), इसलिए हस्ताक्षर किए गए ConnectorInterface अनछिपा हुआ और कनेक्टर जो इसकी आवश्यकता नहीं है (email/chat सूत्रों कि स्थानीय रूप से टिकट बनाने) बस इसे छोड़ दें।

⚠️
स्वामित्व अनिवार्य है और आपकी लागू करने के लिए। fetchTicket() में सत्यापित आगंतुक पहचान प्राप्त करता है $ctx (client_id + client_emailउसी सत्यापित पहचान क्लाइंट चैट AI उपयोग करता है). उस पहचान से प्लेटफॉर्म ग्राहक को हल करें और केवल उस ग्राहक के टिकट पर क्वेरी करें, फिर विवरण रिकॉर्ड पर स्वामित्व की पुनः जांच करें. वापसी null किसी भी मिस, गलतफहमी या त्रुटि पर, कभी किसी अन्य ग्राहक के डेटा को नहीं। एक वापसी की छूट null "इस टिकट को नहीं मिला" के लिए कृपापूर्वक गिरावट।
Connector.php, the entreference: कनेक्टर्स/whmcs और कनेक्टर्स/zendesk)
<?php
// connector.php — OPTIONAL universal client-chat ticket resolver (Tier 2).
// Only add it if your platform keeps its OWN ticket store that may hold tickets
// not yet mirrored into OpsIQ. Return the normalised array below, or null.
//
// $ref      = ['mode' => 'id'|'tid', 'value' => string]  (from extract_ticket_ref)
// $ctx      = ['client_id' => int, 'client_email' => string]  (VERIFIED visitor)
// $settings = your connector settings
public function fetchTicket(array $ref, array $ctx, array $settings): ?array
{
    try {
        $email = trim((string)($ctx['client_email'] ?? ''));
        $cid   = (int)($ctx['client_id'] ?? 0);
        if ($cid <= 0 && $email === '') return null;            // no verified identity → refuse

        // 1) Resolve THIS visitor on your platform (by verified email/id).
        // 2) List ONLY their tickets and match $ref against the ticket number/id.
        // 3) Re-confirm ownership on the detail record before returning.
        //    On any miss/mismatch/error → return null (never leak).

        return [
            'tid'        => 'T-000123',     // the customer-facing reference
            'id'         => 123,            // your internal id
            'status'     => 'open',
            'subject'    => '…',
            'department' => 'Billing',     // '' if your platform has none
            'priority'   => 'high',
            'opened_at'  => '2026-06-29 10:00:00',
            'last_reply' => '2026-06-29 12:00:00',
            'message'    => 'opening message text',
            'replies'    => [               // oldest → newest; opening message may be first
                ['who' => 'You',   'date' => '…', 'message' => '…'],
                ['who' => 'Staff', 'date' => '…', 'message' => '…'],
            ],
        ];
    } catch (\Throwable $e) {
        error_log('[yourslug][fetchTicket] ' . $e->getMessage());
        return null;                                             // graceful degrade
    }
}

यह कैसे उपयोग करता है

डिस्कवरी

CapabilityRegistry::providers($domain,$type) स्थापित / सक्षम / तैयार स्थिति (फ़ाइलसिस्टम आधारित) के साथ प्रदाताओं को सूचीबद्ध करता है; डीबी केवल सक्षम ध्वज के लिए।

चयन

CapabilityRegistry::active($domain,$type) इसके लोड कनेक्टर और सेटिंग्स के साथ पहले तैयार प्रदाता को लौटा देता है। ब्रिज हार्डकोडिंग स्लग्स के बजाय इसे बुलाते हैं।

सूचित करने के लिए स्थापित

जहां एक सुविधा को अभी तक कनेक्ट नहीं होने की क्षमता की आवश्यकता होती है, यूआई एक क्लिक कनेक्ट/इंस्टॉल प्रॉम्प्ट दिखाता है, कभी भी मृत नियंत्रण नहीं होता।

पूर्ण गाइड

देखें connectors/PLATFORM_CONNECTORS.md (CRM + Site Intelligence) और connectors/CRM_CONNECTORS.md पैकेज में।

कनेक्टर्स

ग्राहक स्वयं सेवा लुकअप और रिफंड (ग्राहक चैट के लिए अपने कनेक्टर का निर्माण)

साइन-इन ग्राहक अपने ओडब्ल्यूएन खाते ("मेरे संतुलन", "मेरी ऑर्डर", "डीड सपोर्ट मेरी टिकट का जवाब") के बारे में कस्टमर चैट एआई से पूछ सकते हैं और अगर व्यवसाय इसे सक्षम करता है, तो रिफंड अनुरोध करता है। यह सब आपके कनेक्टर की घोषणाओं द्वारा संचालित होता है: नहीं OpsIQ कोर परिवर्तन, कोई मंच हार्डकोडिंग नहीं। एआई आपके लुकअप को मूल उपकरण के रूप में कहता है (यह एक आविष्कार नहीं कर सकता), पहचान सत्यापित ग्राहक के लिए सर्वर-साइड लॉक हो जाती है और परिणाम स्वचालित रूप से AI के लिए छंटनी की जाती हैं।

एक ग्राहक की तलाश को घोषित करना

अपने आप में actions.jsonएक बार फिर से पढ़ने वाली कार्रवाई सभी THREE के साथ ग्राहक-समाप्त हो जाती है: "scope":"client", "requires_confirmation":false, "is_destructive":falseउपयोग "scope":"both" जब एक ही लुकअप को एडमिन एआई में आपकी टीम द्वारा भी कॉल करने योग्य होना चाहिए। पूर्ण शब्दावली है admin, client, both और system (system नहीं तो AI पहुँचता है - API और वेबहुक मार्ग केवल)। कुछ और भी सही ढंग से खारिज कर दिया जाता है: पैकेज सत्यापन विफल हो जाता है और कार्रवाई स्थापित नहीं होती है। वहाँ कोई नहीं है writing गुंजाइश - लेखन सहायक सेवा की जाती है admin कार्रवाई सेट।

पहचान नियम (प्रबंधक)

मानक सेट से अपनी पहचान पैरामीटर का नाम दें। सत्यापित संख्यात्मक आईडी पर बंद: client_id, clientid, customer_id, user_id, userid, account_idउस आईडी को स्ट्रिंग के रूप में लॉक किया गया: client_identifier, customer_identifier, account_identifierसत्यापित ईमेल के लिए बंद: email, client_email, customer_email, user_email. OpsIQ लॉक्स और ऑटो इसे प्लेटफॉर्म-सत्यापित हस्ताक्षरित ग्राहक से भर देता है; एआई कभी पहचान नहीं देखता या चुनता है। एक गैर मानक नाम बंद (denied, कभी लीक) विफल रहता है।

क्या होना चाहिए व्यवस्थापक-केवल

उस पहचान से कोई भी गुंजाइश नहीं: वाहिनी-बाय-द (Bury-d)order_id/ticket_id अकेले), स्टोर-व्यापी सूची, मुफ्त टेक्स्ट खोज। वे किसी भी प्लेटफॉर्म पर क्रॉस-ग्राहक लीक हैं। उन्हें रखें "scope":"admin".

परिणाम आकार देने (answer-bearing कुंजी)

देखने के परिणाम संरचनात्मक रूप से एआई तक पहुंचने से पहले छंटनी की जाती हैं: गुप्त आकार की कुंजी गिरा दी गई है, लंबी स्ट्रिंग्स और सूचियों को कैप किया जाता है, रिक्त क्षेत्र प्रणित होते हैं, और एक फ्लैट मानचित्र जो कुंजी टोपी की तुलना में व्यापक रहता है, इसकी रक्षा करता है। उत्तर देने वाली कुंजी पहले(in) धनcredit, balance, amount, total, due, paid), पहचान (email, *name, phone, company), राज्य (status, active, expir*, renew*), तारीख, योजना/उत्पाद/domain/service/subscription/order/invoice/ticket फ़ील्ड्स, मुद्रा, गिनती और stats/summary/totalsकिसी भी शेष सीट से पहले अन्य कुंजी के लिए सबसे छोटा मूल्य-पहली बार जाना चाहिए। प्रैक्टिकल मार्गदर्शन: उस मानक शब्दावली के साथ अपने क्षेत्रों का नाम दें और उन फ़ील्ड को वापस करें जो कच्चे के बजाय ग्राहक के प्रश्न का उत्तर देते हैं।100-कुंजी प्लेटफॉर्म डंप; एक क्षेत्र जिसे शब्दावली के बाहर नामित किया गया है, जो बचे हुए सीटों के लिए प्रतिस्पर्धा करता है और इसे बहुत व्यापक पेलोड से छंटनी की जा सकती है।

क्या आपके कनेक्टर प्रदान करता है?

दो कच्चे संचालन, पॉलिसी-मुक्त: ()1(a) एक भुगतान-सत्यापन को पहचान और लेन-देन के संदर्भ में फ़िल्टर करने योग्य पढ़ा जाता है (आपका) API होना चाहिए और फिल्टर करना; उदाहरण के लिए। whmcs_get_transactions; (2(in) एक वापसी निष्पादित कार्रवाई ()scope:"admin", requires_confirmation:true, is_destructive:trueकभी ग्राहक-बाहर नहीं, उदाहरण के लिए। whmcs_refund_orderThe business is also picks in Settings → क्लाइंट चैट; OpsIQ भुगतान सर्वर-साइड को फिर से सत्यापित करता है, व्यापार के नीति बॉक्स (amount cap, आयु खिड़की, मासिक सीमा), बॉक्स के अंदर मुद्दों पर लागू होता है और सभी चीज़ों के लिए एक समीक्षा टिकट फाइल करता है।

कोई कोड बिल्डर

कनेक्टर बिल्डर के एक्शन एडिटर में समान नियंत्रण हैं: साइन-इन ग्राहकों को "Who इसका उपयोग कर सकते हैं" सेट करें, चेकबॉक्सों को बंद करने और मानक पहचान पैरामीटर नाम का उपयोग करने दोनों को छोड़ दें।

संदर्भ कार्यान्वयन

"ग्राहक स्वयं सेवा" प्रविष्टियों में connectors/whmcs/actions.json, woocommerce/actions.json, oscommerce/actions.jsonपूर्ण अनुबंध connectors/README.md §8.1–8.2 और ConnectorInterface::registerActions().

कनेक्टर्स

अतिथि लुकअप - आगंतुकों को एक बुकिंग, शिपमेंट या आदेश के बिना साइन इन (guest_lookup) में हस्ताक्षर करने की अनुमति दें

होटल, कूरियर और कई वाणिज्य प्लेटफॉर्म उन ग्राहकों की सेवा करते हैं जो एक संदर्भ रखते हैं लेकिन कोई लॉगिन नहीं: बुकिंग पुष्टि के साथ एक अतिथि, ट्रैकिंग नंबर वाला प्राप्तकर्ता। guest_lookup क्षमता (कनेक्टर अनुबंध, मोड: उत्पन्न) आपके कनेक्टर को क्लाइंट चैट AI में उन आगंतुकों की सेवा करने देता है - नहींOpsIQकोर परिवर्तन, कोई मंच हार्डकोडिंग नहीं। आपका कनेक्टर घोषणा करता है कि पात्रता क्या साबित होता है और WHICH फ़ील्ड दिखाई दे रहे हैं;OpsIQस्विच को लागू करता है, थ्रॉटल और वर्दी मना करती है।

ट्रस्ट मॉडल

संदर्भ + सबूत, कभी पहचान नहीं

आगंतुक रिकॉर्ड संदर्भ की आपूर्ति करता है (आप जो रेगेक्स घोषित करते हैं) इसके अलावा आपके द्वारा चुने गए प्रमाण - आम तौर पर रिकॉर्ड पर ईमेल। आपकी प्राप्ति कार्रवाई संदर्भ द्वारा रिकॉर्ड SERVER-SIDE को पुनर्प्राप्त करती है; OpsIQ का जेनरेट प्रदाता FETCHED रिकॉर्ड के खिलाफ सबूत की तुलना करता है। आगंतुक का इनपुट कभी विश्वसनीय नहीं होता और कोई सत्यापित पहचान बनाई गई नहीं जाती: मैच उस आगंतुक को एक रिकॉर्ड के स्वीकार्य फ़ील्ड, कुछ और नहीं बताता है।

वर्दी इनकार (कोई enumeration oracle)

नो-ाउंड और प्रूफ-मिस्मैच एक समान उत्तर उत्पन्न करते हैं। एआई स्पष्ट रूप से निर्देशित है कि यह पुष्टि करने के लिए कि कोई संदर्भ मौजूद नहीं है और कभी भी रिकॉर्ड विवरण को आविष्कार नहीं किया जा सकता है। प्रयास प्रति बातचीत + दर सीमित हैं IP इससे पहले कि आपके कनेक्टर को कभी परामर्श दिया जाता है।

डबल ऑप्ट-इन, दोनों डिफ़ॉल्ट बंद

कुछ भी मेहमानों को तब तक काम नहीं करता जब तक कि व्यवसाय BOTH स्विचेस को सक्षम बनाता है: सेटिंग्स में वर्कस्पेस-वाइड कंट्रोल→सुरक्षा→"ग्राहक चैट में सबसे अच्छा रिकॉर्ड लुकअप" (प्रेषण-gated और हमेशा पासवर्ड की पुष्टि, यहां तक कि जब वैकल्पिक स्टेप-अप बंद हो जाता है), और आपके कनेक्टर का अपना खुद का guest_lookup_enabled सेटिंग्स टॉगल। अकेले कनेक्टर को स्थापित करना या सक्षम करना कभी भी अतिथि की सतह को खोल नहीं पाता है।

समर्पित अतिथि सतह

उत्पन्न प्रदाता रजिस्टर पर guest संदर्भ सतह - संरचनात्मक रूप से अलग admin और customerमौजूदा संदर्भ प्रदाताओं को कभी गुमनाम आगंतुकों के लिए परामर्श नहीं दिया जाता है, और अतिथि प्रदाता ने हस्ताक्षरित लोगों के लिए कभी परामर्श नहीं किया है। ctx इसे प्राप्त करता है वह चैट संदेश, थ्रेड आईडी और आगंतुक का दावा (अनवीकृत) प्री-चैट ईमेल एक सबूत उम्मीदवार के रूप में होता है - कोई पहचान क्षेत्र नहीं।

इसे बिल्डर में घोषित करना

1
प्राप्त कार्रवाई को परिभाषित करें

एक्शन चरण पर, एक पठनीय कार्रवाई जोड़ें जो अपने संदर्भ द्वारा एक रिकॉर्ड लौटाता है (उदाहरण के लिए) GET /bookings/{booking_number}Aliases साथ अपने प्रतिक्रिया क्षेत्रों का मानचित्र: स्थिति, आगमन, प्रस्थान, room_type, customer_email...

2
टिक "Guest lookup"

क्षमता चरण पर सक्षम guest_lookupएक समर्पित पैनल दिखाई देता है: लाने की क्रिया को चुनें, संदर्भ पैरामीटर का नाम दें, संदर्भ पैटर्न (जैसे कि रेगेक्स बॉडी) दें। \bBK-[0-9]{4,10}\b), रिकॉर्ड ("बुकिंग") का नाम दें, और सबूत चुनें - रिकॉर्ड पर ईमेल (अनुशंसित) या कोई भी नहीं (केवल पुनरावृत्ति, केवल स्थिति-केवल कूरियर ट्रैकिंग के लिए).

3
दृश्य फ़ील्ड को सूचीबद्ध करें

वास्तव में फ़ील्ड को एक अतिथि देख सकता है। बाकी सब कुछ DROPPED है - कभी भी रिहा नहीं किया गया। बिल्डर ने अनुमति सूची में PII के आकार का क्षेत्र (email, फ़ोन, पता, भुगतान ...) से इनकार कर दिया और रिलीज-gate अनुरूपता सूट प्रकाशन से पहले उसी नियम की फिर से जांच करता है, इसलिए हाथ से संपादित कल्पना किसी को चुपचाप नहीं कर सकती। ध्यान दें कि इंस्टॉल-टाइम सत्यापन प्रकटन को कवर करती है और हस्ताक्षर केवल, इसलिए आपके जहाज से पहले खुद को अनुरूपता प्रदान करती है। सबूत क्षेत्र स्वयं कभी नहीं दिखाया जा सकता है

4
प्रकाशित करें और सक्षम करें

बिल्डर उत्सर्जन करता है GuestLookupProvider.php - प्रत्येक उत्पन्न पैकेज के लिए समान, कैनोनिकल कठोर कार्यान्वयन - और जोड़ता है guest_lookup_enabled अपने कनेक्टर की सेटिंग में टॉगल करें। व्यवसाय दो स्विचों को बाँध देता है और चैट AI तब लुकअप पेश करना शुरू कर देता है जब कोई आगंतुक आपके रिकॉर्ड प्रकार के बारे में पूछता है।

अनुबंध नियम

केवल स्थिति के आकार का क्षेत्र

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

एआई केवल ब्लॉक से उत्तर देता है

उत्पन्न प्रदाता अपने आउटपुट को केवल सूचीबद्ध क्षेत्रों से उत्तर देने और किसी अन्य चीज़ के लिए टिकट प्रदान करने के लिए एक निर्देश के साथ समाप्त करता है।

अनुवर्ती कार्य करना

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

हाथ से अधिकृत संकुल

एक बाज़ार पैकेज अपने खुद के जहाज़ कर सकता है GuestLookupProvider.php implementing ContextProviderInterface साथ surfaces(): ['guest']उत्पन्न टेम्पलेट के अनुबंध को ठीक से पालन करें - संदर्भ, सबूत-मैच सर्वर साइड, वर्दी इनकार, अनुमति देने वाले केवल आउटपुट द्वारा प्राप्त करें - और घोषणा guest_lookup in capabilitiesThe affairs of the opposing of the first time.

💡
अतिथि लुकअप्स चैट एआई के लिए केवल संदर्भ हैं। वे कभी कार्रवाई को निष्पादित नहीं करते, पहचान पैदा नहीं करते हैं और कभी भी ग्राहक स्वयं सेवा कार्य पथ को अनलॉक नहीं करते - उस रास्ते में अभी भी एक मंच-सत्यापित हस्ताक्षरित ग्राहक की आवश्यकता होती है।
कनेक्टर्स

पदोन्नति दर्शकों लक्ष्यीकरण (promo_audience)

अपने प्लेटफॉर्म से लाइव क्लाइंट और बिलिंग स्टेट द्वारा प्रमोशन स्टूडियो लक्ष्य अभियानों को दें: "एक अदायगी चालान है", "ऑर्डर लंबित", "subscription रद्द कर दिया गया"। किसी भी कनेक्टर (पूर्व-स्थापित, बाज़ार, या आप खुद का निर्माण करने वाला) दो छोटे तरीकों को लागू करके जुड़ जाता है। नहीं OpsIQ कोर परिवर्तन, कोई मंच हार्डकोडिंग: आपका कनेक्टर स्टूडियो टारगेटिंग टैब में तथ्यों की अपनी ड्रॉपडाउन के साथ एक प्लेटफॉर्म के रूप में दिखाई देता है और कई कनेक्टर्स को साइड-साइड से सक्षम किया जा सकता है।

प्रोमो दर्शक
पदोन्नति दर्शकों लक्ष्यीकरणएक सत्यापित पहचान कनेक्टर दर्शकों को पारित किया गया हैफ्लैग्स ने उन तथ्यों का उत्पादन किया जो लक्ष्य नियम चलाते हैं, जिनमें असफल-बंद नोट होता है।पदोन्नति दर्शकों लक्ष्यीकरणकार्यस्थललॉगइनसत्यापित पहचानदर्शक (Flags)आपका कनेक्टरएफ.ए.टी.एस.unpaid_invoices = 2रौलेunpayed_invoices ≥ 1अभियान शोविफल रहता है: अज्ञात ग्राहक या कोई त्रुटि → अभियान छिपा रहता है।1TWO METHODSदर्शककैटलो + झंडे2LIVE STATEअनपेड, लंबित, स्थिति3FAIL-SAFEकभी गलत व्यक्ति को नहीं दिखाता
आपका कनेक्टर लॉग-इन आगंतुक के लिए लाइव बिलिंग तथ्यों का जवाब देता है; स्टूडियो उन पर लक्ष्य रखता है, और बंद हो जाता है इसलिए बिलिंग प्रस्ताव कभी गलत व्यक्ति तक नहीं पहुंचता।

यह कैसे काम करता है

1
अपने तथ्यों को घोषित करना

अपने कनेक्टर वर्ग पर दर्शकों को कैटलॉग (Catalog) लागू करें। यह एक लेबल लौटाता है और आपके प्लेटफॉर्म की चाबियाँ जवाब दे सकती हैं। प्रत्येक कुंजी आपके प्लेटफ़ॉर्म नाम के तहत स्टूडियो ड्रॉपडाउन में दिखाई देती है।

2
एक ग्राहक के लिए उत्तर

Implement audienceFlags(array $identity). OpsIQ calls it at delivery time with the VERIFIED logged-in visitor identity (from the widget identity token, the same identity the client chat AI uses). Return a flat key => value map.

3
दान

कनेक्टर को सक्षम करें। प्रमोशन स्टूडियो टारगेटिंग टैब आपके प्लेटफॉर्म की सूची में एक "क्लिएंट एंड बिलिंग" अनुभाग विकसित करता है; व्यवस्थापक "unpay_invoices> = जैसे नियम बनाते हैं 1"; हर तथ्य यह भी एक निजीकरण चर हो जाता है जैसे कि {unpaid_invoices}.

कनेक्टर. php, पूर्ण promo_audience अनुबंध
public function audienceCatalog(): array
{
    return ['label' => 'My Billing Platform', 'keys' => [
        ['key' => 'unpaid_invoices', 'label' => 'Unpaid invoices (count)', 'type' => 'number'],
        ['key' => 'pending_orders',  'label' => 'Pending orders (count)',  'type' => 'number'],
        ['key' => 'client_status',   'label' => 'Client status',           'type' => 'text'],
    ]];
}

public function audienceFlags(array $identity): array
{
    // $identity = verified token payload: ['email' => ..., 'id' => ..., 'name' => ...]
    $email = strtolower(trim((string)($identity['email'] ?? '')));
    if ($email === '') return [];
    $client = $this->api('GetClient', ['email' => $email]); // your platform call
    if (!$client) return []; // unknown client -> return [] (fails CLOSED)
    return [
        'unpaid_invoices' => (int)$client['unpaid_count'],
        'pending_orders'  => (int)$client['pending_orders'],
        'client_status'   => (string)$client['status'],
    ];
}

अनुबंध नियम

क्षमता को विज्ञापित करना

जोड़ें 'promo_audience' अपने कनेक्टर के लिए capabilities() ऐसा मंच और बाज़ार इसे दर्शकों के लिए सक्षम (डिस्कवरी भी विधि उपस्थिति से काम करता है, लेकिन यह घोषित करना साफ संकेत है) के रूप में सूचीबद्ध करते हैं। पूर्व-स्थापित connectors/whmcs कनेक्टर पूर्ण संदर्भ कार्यान्वयन है।

कुंजी नामकरण

लोअरकेस Snake_case, 2-60 chars, मिलान ^ [a-z0-9_]+$. प्रकार: संख्या, पाठ, bool. Undeclared कुंजी दर्शकों द्वारा वापस लौटेFlags () अभी भी नियमों में प्रयोग किया जा सकता है, लेकिन सब कुछ आप समर्थन तो व्यवस्थापक इसे देख सकते हैं घोषणा कर सकते हैं।

पहचान सत्यापित है

The $identity array comes from the signed widget identity token issued by the customer site at login, never from client-supplied fields. If your platform cannot resolve the identity, return an empty array.

हमेशा बंद रहता है

ANY त्रुटि पर (ANY त्रुटि)API नीचे, क्लाइंट नहीं मिला, टाइमआउट) वापसी []। एक नियम जिसका तथ्य गायब है अभियान को प्रदर्शित नहीं करता है। एक बिलिंग-लक्षित पॉपअप कभी गलत व्यक्ति तक पहुंचना चाहिए; OpsIQ इसे नियम मैचर में भी लागू किया जाता है।

प्रदर्शन

दर्शकों को प्रति पृष्ठ देखने के लिए कनेक्टर प्रति एक बार में बुलाया जाता है, और केवल तभी जब कोई प्रकाशित अभियान वास्तव में आपके प्लेटफॉर्म के नियमों का उपयोग करता है। अनाम आगंतुक आपको शून्य कॉल खर्च करते हैं। इसे रखने के लिए रखें 1-2 API कॉल; OpsIQ अनुरोध के भीतर याद आती है।

मुक्त करने के लिए प्रदान की गई ऑपरेटर

व्यवस्थापक अपनी चाबियाँ =, !=>,>== <, <=, शामिल हैं, सेट है, खाली है, आप केवल आपूर्ति मानों.

निजीकरण टोकन

प्रत्येक तथ्य अभियान प्रतिलिपि में एक चर के रूप में दोगुना हो जाता है: {unpaid_invoices}, {client_status}, साथ ही बिल्ट-इन {first_name} और {client_email} मूल्य देने से पहले स्वच्छता की जाती है।

कोई कोड बाज़ार कनेक्टर

स्वचालित तथ्य

घोषणा (Declarative)JSON केवल) बाज़ार कनेक्टर्स को मुफ्त में प्रोमो कोड प्राप्त होता है: यदि आपका कनेक्टर ग्राहकों / उपयोगकर्ताओं, चालानों, आदेशों या सदस्यता संसाधनों की घोषणा करता है, तो OpsIQ अपने मौजूदा खोज कार्यों से ग्राहक_status, unpayed_invoices, राशि_due, pending_orders, Active_subscriptions और सदस्यता_statum प्राप्त करता है।

कस्टम सूची (सेटिंग)।json)

A slam, a shython, a "f" (e) sl.

अपने प्रदाता का परीक्षण

1
कनेक्टर को सक्षम करें

कनेक्टर्स > अपने कनेक्टर > सक्षम. फिर किसी भी अभियान के लक्ष्य टैब को खोलने के लिए। आपका मंच "क्लिएंट एंड बिलिंग (कनेक्टर्स)" के तहत दिखाई देना चाहिए।

2
नियम बनाना

जोड़ें: आपका प्लेटफॉर्म · एक कुंजी · 1 और "लॉग-इन क्लाइंट केवल" सेट करें। सहेजें और प्रकाशित करें।

3
दोनों दिशाओं को सत्यापित करें

अपने प्लेटफॉर्म पर एक क्लाइंट के रूप में लॉग इन करें जो नियम से मेल खाता है (पॉपअप को दिखाना चाहिए) और जैसा कि वह ऐसा नहीं करता है (popup को छिपाना चाहिए). लॉग-आउट आगंतुक कभी लॉग-इन नियमों का मिलान नहीं करते हैं।

अपने कोड (कस्टम ट्रिगर) से एक अभियान आग लगाएँ

क्यों

अंतर्निहित ट्रिगर (डेले, स्क्रॉल, निकास-आंतरिक, निष्क्रिय, क्लिक, पृष्ठ-देखा गया, चैट / टिकट गतिविधि) से परे, आप एक सफल चेकआउट चरण के बाद अपनी साइट या कनेक्टर फ्रंट एंड में कहीं से भी अभियान को आग लगा सकते हैं, जब एक गाड़ी छोड़ दी जाती है, जब आपका एसपीए मार्ग बदलता है, आदि।

कैसे

अभियान ट्रिगर सेट करने के लिए कस्टम एक घटना का नाम (जैसे) के साथ checkout_failedफिर अपने पेज से वैश्विक हुक को कॉल करें:

आपकी साइट / कनेक्टर फ्रंट-एंड जे एस
// Any campaign whose Custom trigger event matches will be evaluated
// (it still respects targeting, frequency caps and audience rules).
window.OpsIQPromo && window.OpsIQPromo.fire('checkout_failed');
💡
एक घटना को फायर करना कभी लक्ष्य या आवृत्ति को बाईपास नहीं करता है। यह केवल "जब" जारी करता है, तो अभियान को अभी भी हर नियम (जीओ, दर्शकों, सहमति, कैप) से पहले गुजरना पड़ता है।
पूर्ण कैसे उपयोग गाइड (डिज़ाइनिंग, ब्लॉक, एनालिटिक्स, ए / बी, प्रकाशन) इन-ऐप सहायता केंद्र में रहता है। Engage → _promation Studioयहाँ की क्षमता को कनेक्टर्स / या मार्केटप्लेस_कनेक्टर्स में किसी भी ENABLED कनेक्टर से स्वचालित रूप से खोजा जाता है। पंजीकरण करने के लिए कुछ नहीं है। दो तरीकों को शिप करें, और स्टूडियो बाकी काम करता है।
कनेक्टर्स

सर्वेक्षण कनेक्टर क्षमता (Contract 2.2)

survey क्षमता किसी भी प्लेटफ़ॉर्म की आपूर्ति सत्यापित ग्राहक पहचान एडाप्टर, दर्शकों के तथ्यों, सुरक्षित चर और प्राप्तकर्ता उम्मीदवारों को सर्वे स्टूडियो में देती है। यह से स्वतंत्र है promo_audience और सर्वेक्षण, प्रतिक्रियाओं, विश्लेषण या ईमेल वितरण का कनेक्टर स्वामित्व नहीं देता है।

💡
कार्यान्वयन की स्थिति। प्राधिकरण आज पूर्ण और उपयोगी है: कनेक्टर अनुबंध 2.2_, SurveyConnectorInterface, समर्पित बिल्डर पैनल, उत्पन्न SurveyProvider.phpपैकेज मेटाडाटा और अनुरूपता अलगाव सभी जहाज। उपभोग अभी तक वायर्ड नहीं है: SurveyConnectorRegistry कार्यान्वित और परीक्षण किया जाता है, लेकिन अभी तक कोई सर्वेक्षण रनटाइम कॉल नहीं करता है, इसलिए प्रदाता स्वास्थ्य व्यवस्थापक यूआई में सतही नहीं है और कोई प्रकाशित कनेक्टर पैकेज क्षमता घोषित नहीं करता। हस्ताक्षरित टोकन सर्वे पहचान गेटवे जारी करना, लक्ष्यीकरण और परिवर्तनीय एकीकरण,CRMआउटरीच मटेरियलाइज़ेशन और पहले भेज दिए गए प्रदाता मैपिंग अलग-अलग चरण रहते हैं। इस अनुबंध के खिलाफ अभी बनाएँ; बाद में रिलीज में इसे लेने शुरू करने के लिए रनटाइम की उम्मीद करें।

प्रदाता जिम्मेदारियों

दर्शक सूची और तथ्य

निर्दिष्ट कैनोनिक तथ्यों और केवल सर्वर सत्यापित, कार्यक्षेत्र-आधारित विषय के लिए मूल्यों को हल करने। विशिष्ट तथ्यों में क्रम_count, last_order_status, रद्द_order0काउंट, customer_created_at, Active_subscription_count., past_due_invoice_count and open_ticket_count शामिल हैं।

परिवर्तनीय सूची और मान

ग्राहक, खाता, आदेश, सदस्यता और समर्थन चर प्रकार, संवेदनशीलता और अनुमति संदर्भ के साथ घोषित करें। सर्वेक्षण प्रतिलिपि में गिरावट और आउटपुट-context escaping की आवश्यकता होती है।

Recipient पेजिंग

वैकल्पिक रूप से CRM आउटरीच के लिए उम्मीदवारों को स्थिर बाहरी ID, बाध्य पृष्ठ, नियतकालिक कर्सर और सहमति से संबंधित मेटाडाटा के साथ नामांकित करें। सर्वेक्षण किसी भी प्रेषक से पहले चुने गए दर्शकों को फ्रीज करता है।

पहचान

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

रनटाइम स्वास्थ्य

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

विफल बंद नियम

Undeclared कुंजी, गलत प्रकार, oversized मान, विषय mismatches, कनेक्टर टाइमआउट और अज्ञात पहचान को खारिज कर दिया गया है। एक लक्ष्य नियम जिसे अनुपलब्ध तथ्य की आवश्यकता होती है वह मैच नहीं करता है। प्राप्तकर्ता पृष्ठों को कैप्ड और ऑडिट किया जाता है। संवेदनशील मूल्यों कभी सार्वजनिक पूर्वावलोकन या लॉग में दिखाई नहीं देते हैं।

बिल्डर रिलीज गेट

अनुबंध 2.2 क्षमता रजिस्ट्री प्रविष्टि, अंतरफलक, सर्वेक्षण मैपिंग पैनल, उत्पन्न जहाजों SurveyProvider.php, क्षमता संस्करण, README/developer संदर्भ और अनुरूपता जुड़नार. वाणिज्य, helpdesk, SaaS पुल और स्थानीय PHP प्रोफाइल में शामिल हैं; मानक API कनेक्टर में चयन करते हैं। स्थैतिक गेट एक सर्वेक्षण प्रदाता को अस्वीकार करता है जो प्रमोशन नेमस्पेस, टेबल या क्षमता को कॉल करता है।

💡
प्रमोशन से प्रति आयात केवल है: बिल्डर एक बार संगत प्रमोशन मैपिंग का अनुवाद कर सकता है, पूरी सर्वे-स्वामित्व वाली प्रतिलिपि और रिकॉर्ड सिद्धि को बचा सकता है। पदोन्नति मानचित्रण को हटाने या बदलने के लिए सर्वेक्षण व्यवहार को बदलना नहीं चाहिए।
कनेक्टर्स

उत्तर फीडबैक क्षमता (Contract 2.2)

reply_feedback क्षमता एक मंच की अपनी प्रति-रिप्लाई रेटिंग को प्रतिबिंबित करती हैOpsIQ A star, a customer देता है एक स्टाफ के अंदर जवाब WHMCS'ग्राहक क्षेत्र' SAME जवाब पर उतरता हैOpsIQ व्यवस्थापक धागा, उसी चिप के साथ, एजेंट क्रेडिट, फीडबैक पेज प्रविष्टि और टीम & प्रदर्शन गणना एक रेटिंग पर दी गई के रूप मेंOpsIQ पोर्टल टिकट। एक भंडारण, एक चिप, एक पाइपलाइन; कनेक्टर केवल अनुवाद करता है।

एक लिखने का रास्ता

वास्तव में दो प्रवेश पथ हैं और एक सच्चाई है। OpsIQ portal टिकट मूल रूप से लिखते हैं। प्लेटफ़ॉर्म टिकट कनेक्टर के माध्यम से प्रवाहित होती है, और कोर हर घटना को हर घटना तक पहुंचाती है। ReplyFeedback::recordMirrored()एक ही स्तंभ, स्टाफ-केवल नियम, एक-रेटिंग-प्रति-reply नवीनतम जीत वाले अर्थिकी, वर्कस्पेस टिकट और वॉयस ऑफ कस्टमर्स ने पोर्टल लिखने के उपयोग को अनुक्रमित किया। कनेक्टर कभी भी फीडबैक पंक्तियों को स्वयं लिखते नहीं हैं।

अनुरूपण (चार फाइलें, फिर पुनः-sign)

1
connector_contract.json

क्षमताओं को जोड़ें.reply_feedback प्रविष्टि: संस्करण 1.0, उत्तर देंFeedbackConnectorInterface, विधियों का जवाबFeadbackCatalog और pullReplyFeEDback, inbound_ticket का तात्पर्य है।

2
settings.json

उत्तर_feedback को क्षमताओं की सूची में जोड़ें। यह क्या कनेक्टर खोज पढ़ता है।

3
spec.json

उत्तर_feedback. modes (poll and/or webhook) और प्लेटफॉर्म की रेटिंग स्केल घोषित करें। यह वही है जो अनुरूपता द्वार पढ़ता है।

4
रनटाइम क्लास

इंटरफ़ेस को लागू करें, क्षमताओं में उत्तर_फीडबैक सूची () तब पैकेज को फिर से हस्ताक्षर करें।

प्रदाता जिम्मेदारियों

कैटलॉग

मोड घोषित करें, प्लेटफ़ॉर्म का अपना रेटिंग स्केल (कोर मूल रूप से सामान्य करता है) 1-5), और किसी भी प्रतिक्रिया टोकन। कैटलॉग को कल्पना के साथ सहमत होना चाहिए।json.

अनुवाद खींचें

pullReplyFeedback रिटर्न कैनोनिकल इवेंट्स: प्लेटफॉर्म टिकट आईडी, प्लेटफ़ॉर्म उत्तर आईडी, रेटिंग, वैकल्पिक प्रतिक्रिया / टिप्पणी, जमा समय और एक स्थिर event_id। यह पढ़ता है और अनुवाद करता है। यह कभी नहीं लिखते हैं।

निष्क्रियता

event_id प्रति फीडबैक स्टेट स्थिर है, इसलिए एक पुनः खेला घटना एक नो-ऑप और एक बदली हुई रेटिंग ओवरराइट (प्लेटस्ट जीत, जैसे पोर्टल) है।

कर्सर अनुशासन

पेज बाध्य और निश्चित हैं; एक कर्सर जो आगे नहीं बढ़ता वह रन समाप्त होता है। ऐतिहासिक बैकफिल नालियों को रोलिंग विंडो के रूप में, कभी भी एक विशाल पुल नहीं होता।

जांच सुरक्षा

कोई विन्यास के साथ, फेंकने की बजाय खाली पूर्ण पृष्ठ वापस लौटें। खाली तर्कों के साथ अनुरूपता धावक जांच।

विफल बंद संकल्प

कोर प्रत्येक घटना को दर्पण मार्कर द्वारा स्थानीय उत्तर में हल करता है, टिकट पहले से ही टिकट मिरर (Tikips)<slug>:<ticket>:reply:<reply>(d)) किसी ऐसे कार्यक्रम को जो हल नहीं किया जा सकता है, उसे कभी भी अनुमान नहीं लगाया गया; प्रतिक्रिया केवल कर्मचारियों के उत्तरों से जुड़ी हुई है; और एजेंट क्रेडिट हमेशा उत्तर के मौजूदा लेखक से आता है। रेटिंग लिखने में कभी-कभी प्राधिकरण को बदलने की आवश्यकता नहीं होती है। यही कारण है कि क्षमता की आवश्यकता क्यों है, इसलिए योग्यता को आवश्यक रूप से पुष्टि नहीं की जाती है; प्रतिक्रिया सिर्फ कर्मचारी जवाब देने के लिए संलग्न होती है; तथा एजेंट क्रेडिट आमतौर पर उत्तर के वर्तमान लेखक से आती है। inbound_ticket या ticket_mirror.

Worked उदाहरण: WHMCS

WHMCS क्लाइंट-क्षेत्र प्रति-रिप्लाई स्टार रेटिंग स्टोर करता है tblticketreplies.ratingThe suffering of the world. WHMCS कनेक्टर एक के साथ मतदान मोड घोषित करता है 1-5 पैमाने पर, जहाज़ एक ticket_reply_ratings अपनी पुल फ़ाइल में रिले कमांड, और प्रत्येक पंक्ति को एक घटना में अनुवादित करता है जिसका आईडी मैच उस समय से मेल खाता है जिसमें प्रत्येक पंक्ति का मिलान होता है। whmcs:<ticket>:reply:<reply> मार्करों के टिकट दर्पण पहले से ही टिकट। कनेक्टर को अपग्रेड करने के बाद, पुल फ़ाइल को फिर से कॉपी करें WHMCS सर्वर इसलिए नया कमांड मौजूद है।

💡
इंटरफ़ेस, घटना आकार, सामान्यीकरण नियमों और अनुरूपता चेकलिस्ट के साथ पूर्ण डेवलपर अनुबंध: doc/contracts/TICKET_REPLY_FEEDBACK_CAPABILITY.md मेंOpsIQ पैकेज: स्वीकृति: प्लेटफॉर्म के अंदर एक जवाब की दर, घंटे के मतदान के लिए प्रतीक्षा करें और उसी उत्तर में उत्तर देंOpsIQ चिप दिखाता है, फीडबैक पेज इसे सूचीबद्ध करता है और एक फिर से खेलना घटना कुछ भी नहीं बदलता है।
कनेक्टर्स

टिकट विलय क्षमता (Contract 2.4)

ticket_merge क्षमता में एक टिकट विलय करता है OpsIQ हर कनेक्टेड टिकट प्लेटफॉर्म पर एक मर्ज। रखा गया प्लेटफ़ॉर्म टिकट को मर्ज किया गया टिकट संदेश प्राप्त होता है, जो प्रत्येक मर्ज किए गए टिकट के उद्घाटन संदेश से शुरू होता है बल्कि विलय वाले प्लेटफार्म टिकट केवल बंद होने की बजाय।

यह क्यों मौजूद है

में एक विलय OpsIQ विलय टिकट के हर संदेश को रखा टिकट में ले जाया जाता है और विलय टिकट हटा देता है। अनुबंध से पहले 2.4 एक कनेक्टर ने केवल सुना ticket.deleted प्रत्येक विलय टिकट के लिए। WHMCS उस टिकट को बंद कर दिया और रखा गया WHMCS टिकट को कभी नहीं मिला कि ग्राहक ने पहली बार लिखा था: विषय में दिखाया गया है [MERGED] और सामग्री लापता थी।

कौन सा कोर भेजता है

टिकट.मर्ज (प्रति मर्जी)

ticket_id, ticket_number, subject and external_ref of the KEPT ticket; native_table (opsiq_tickets); site_key; sources, the merged tickets oldest first, each with ticket_id, ticket_number, subject, external_ref, client_name, client_email, created_at and messages [{reply_id, author_type, author_name, created_at, body}]; merged_by; merged_at. Messages are the customer-visible conversation, captured before the move. Internal notes are never included.

टिकट. deleted (प्रति विलय टिकट)

अभी भी आग लग रही है, अब के साथ merged_into {ticket_id, ticket_number, external_refThe Core is not give it to a Connector ticket_mergeअन्य उपभोक्ताओं को एक नष्ट से विलय बता सकते हैं।

आउटबाउंड वेबहुक

टिकट.मर्ज किया गया एक वितरित घटना है। एक सास वेबहुक एंडपॉइंट टिकट के लिए सब्सक्राइब किया गया। इसे टिकट भी मिलाया जाता है, इसलिए 2.4 से पहले बनाया गया एकीकरण विलय को सुनता है।

आपका कनेक्टर क्या करता है

घोषणा

List ticket_merge in capabilities() and settings.json, and implement TicketMergeConnectorInterface::mergeTickets(array $merge, array $settings). Required on Contract 2.4 for any package that declares ticket_mirror or handles ticket.deleted; conformance fails it otherwise.

जब आप कर सकते हैं तो मूल रूप से मर्ज करें

When the kept ticket and a merged ticket both have a copy on your platform (TicketMergeContract::twins() resolves them from external_ref), call the platform's own merge.

अन्यथा निजी नोट जोड़ें

A merged ticket with no copy on your platform: add TicketMergeContract::transcript() to the kept platform ticket as a PRIVATE note. Never a public reply, which would email the customer their own old messages.

रिपोर्ट क्या नहीं मिली

रिटर्न {ok, मोड, विलय, नोट किया गया, unmerged, त्रुटि}। हर विलय प्रतिलिपि आप विलय नहीं कर सकते हैं, और कोर वास्तव में उन लोगों के लिए अपने सामान्य हटाने हैंडलिंग (बंद करें, या mirror_deletes) लागू होता है। केवल तभी लौटाएं जब प्लेटफॉर्म का कोई विलय नहीं हो जाता है और कोई निजी नोट नहीं होता है, तब ही सिस्टम को अनसपोर्ट किया जाता है। एक परिवहन या auth विफलता ठीक = कारण से झूठा है; यह नैदानिक में दर्ज की गई है।

अपने टॉगल का सम्मान करें

वही दर्पण सेटिंग्स जो आपके अन्य टिकट प्रतिबिंबित गेट को मर्ज करती है।

जो आपके प्लेटफॉर्म पर शुरू होता है

Resolve the platform ids and call TicketMergeContract::applyInbound(['<prefix>'], $keptId, $mergedIds). OpsIQ merges its copies with _origin=mirror, so nothing is pushed back to you.

कार्यान् वयन

WHMCS

MergeTicket (ticketid = रखा टिकट, mergeticketids = विलय टिकट) जब दोनों में हैं WHMCSA estimation of the transcript is not to bet OpsIQ जब स्टाफ में विलय WHMCS.

Zendesk

पोस्ट /api/v2/tickets/{id}/merge.json निजी मर्ज टिप्पणियों (प्रति कॉल पांच टिकट तक) के साथ-साथ रखी गई टिकट पर एक निजी टिप्पणी के रूप में ट्रांसक्रिप्ट भी शामिल है, क्योंकि Zendesk बिना किसी टिप्पणी के विलय टिकट बंद कर देता है।

OpsIQ सास पुल

पोस्ट /v1/tickets/{id}/merge साथ source_idsजो पोर्टल जवाब और संलग्नक को स्थानांतरित करता है; एक आंतरिक उत्तर में उस टिकट के लिए ट्रांसक्रिप्ट किया जाता है जो कभी पोर्टल पर नहीं थे। /manage मर्ज विलय OpsIQ प्रतियां।

कनेक्टर बिल्डर

ticket_merge व्युत्पन्न है, कभी नहीं टिक: एक उत्पन्न पैकेज यह घोषणा करता है कि जब यह मंच टिकट बनाता है (लिंक टिकट के साथ एक टिकट बनाया गया ग्राहक) को जोड़ता है, टिकट संभालता है। हटा दिया गया, या घोषित किया गया ticket_mirrorटिकट पर, नीचे कदम मर्ज, मंच की विलय कार्रवाई (मैप मर्ज) चुनें।target_remote_id, और मर्ज।source_remote_ids या मर्ज।source_remote_id(a) और एक निजी नोट कार्रवाई (मैप नोट)।remote_id और Note.body)। उत्पन्न मर्जी टिकट () दोनों का उपयोग करता है। न तो, बिल्डर ने चेतावनी दी कि एक विलय टिकट के संदेश मंच तक नहीं पहुंचेंगे।

💡
पूर्ण अनुबंध: doc/contracts/CONNECTOR_CONTRACT.md, अनुभाग टिकट विलय. स्वीकृति: दो टिकटों को merge में OpsIQ जो दोनों प्लेटफॉर्म पर मौजूद हैं, फिर प्लेटफ़ॉर्म पर रखा गया टिकट खोलें।
कनेक्टर्स

कनेक्टर बाज़ार

मार्केटप्लेस आपको समुदाय द्वारा निर्मित कनेक्टर्स को खोजने, स्थापित करने और प्रकाशित करने की अनुमति देता है।

बाज़ार
कनेक्टर बाज़ारश्रेणियों के साथ सामुदायिक कनेक्टर कार्ड का एक खोज योग्य ग्रिड, बटन और स्टार रेटिंग स्थापित करें।कनेक्टर बाज़ारकार्यस्थलकनेक्टर्स खोजें...कैलेंडलीशेडुलिंगस्थापित★ 4.8HubSpotCRMस्थापित★ 4.6मेलचिम्पईमेलस्थापित★ 4.7QuickBooksलेखास्थापित★ 4.5ड्रॉपएसएमएसस्थापित★ 4.9नोटियनदस्तावेज़स्थापित★ 4.41DISCOVERसामुदायिक कनेक्टर2स्थापनाएक क्लिक3PUBLISHअपना हस्ताक्षर करें तथा जमा करें
सामुदायिक कनेक्टर्स को ब्राउज़ करें, एक क्लिक में स्थापित करें, या साइन इन करें और अपने खुद के प्रकाशन, पूर्व-स्थापित और बाज़ार दोनों खोज योग्य हैं।

ढूँढना और स्थापित करने वाले कनेक्टर्स

1
दृश्य

कनेक्टर्स> मार्केटप्लेस पर जाएं। नाम, श्रेणी या मंच द्वारा खोजें।

2
समीक्षा

विवरण की जाँच करें, समर्थित कार्रवाई और रेटिंग.

3
स्थापित

क्लिक करें इंस्टॉल. कनेक्टर पैकेज डाउनलोड और बाज़ार_कनेक्टर्स/ में स्थापित होता है।

4
कॉन्फ़िगर करना

इसे कनेक्टर्स में सक्षम करें, API क्रेडेंशियल और टेस्ट दर्ज करें।

एक कनेक्टर प्रकाशित करना

1
निर्माण और परीक्षण

कनेक्टर बिल्डर का उपयोग करें सभी कार्यों को सत्यापित करें।

2
पैकेज

प्रोफ़ाइल उत्पन्न करना।json, क्रियाएं।json ज्ञान json, और PHP फ़ाइलें।

3
साइन

Run php tools/sign_connector.php <slug> to sign ONE package (it also accepts a path). It does not boot OpsIQ, so give it the key: either --key=<secret> or the OPSIQ_CONNECTOR_SIGNING_KEY environment variable, otherwise it stops with "No signing key available". tools/resign_all_connectors.php re-signs EVERY package on the install and reads the key from settings by itself, but it can also mint a NEW install-wide signing key, so reach for it only when that is what you want.

4
जमा करना

समीक्षा के लिए बाज़ार जमा प्रवाह के माध्यम से अपलोड करें।

दो कनेक्टर बाँध

कनेक्टर्स / - वास्तव में क्या चलाता है

रनटाइम खोज जड़ यहां सब कुछ लाइव है: कनेक्टर्स जो OpsIQ के साथ जहाज करते हैं, बाज़ार से स्थापित कुछ भी और कुछ भी कनेक्टर बिल्डर इस इंस्टॉल पर प्रकाशित होता है।

बाज़ार_कनेक्टर/ — जहां पैकेज अधिकृत हैं

प्रथम-पक्षीय बाज़ार पैकेजों के लिए प्रकाशन SOURCE. यह एक खोजी जड़ नहीं है: यहां कुछ भी नहीं लाइव है जब तक कि इसे पैक, हस्ताक्षरित किया जाता है, कैटलॉग में बीज और स्थापित किया गया है, जिस पर कनेक्टर/ में कॉपी लैंड्स इंगित करता है।

💡
दोनों जगहों पर देखो। एक पैकेज जिसे आप मार्केटप्लेस_कनेक्टर्स के तहत अधिकृत करते हैं / वह प्रतिलिपि नहीं है जो चलाता है - इसे कनेक्टर्स में कॉपी स्थापित करना और केवल उस प्रतिलिपि को रनटाइम पर खोजा जाता है।Stripe, BigCommerce, Magento2PrestaShop, OpenCart, Amazon SES, Postmark और Resend सभी बाज़ार पैकेज हैं: कनेक्टर्स में इसे खोजने की उम्मीद करने से पहले एक स्थापित करें।
डेवलपर

API और वेबहुक बिल्डर

द API और Webhook बिल्डर आपको मनपसंद बनाने देता हैAPI अंत बिंदु और वेबहूक सुनने वाले अंदर OpsIQ रॉ पीएचपी लिखने के बिना.

API बिल्डर
API और वेबहुक बिल्डरएक निर्माता जो ट्रिगर टाइप (इनबाउंड वेबहुक, शेड्यूल, इवेंट, मैनुअल) का चयन करता है जो एक विन्यास योग्य कार्रवाई में फ़ीड करता है।API वेबहुक बिल्डरकार्यस्थलट्रिगरInbound Webhookअनुसूची (क्रोन)OpsIQ घटनामैनुअलकार्रवाईमानचित्र आने वाले क्षेत्रों →टिकट / सूचित / कॉल बनाना APIएंडपॉइंट सेव करें1ट्रिगरWebhook · अनुसूची · घटना · मैनुअल2NO RAW PHPयूआई में निर्मित3कार्रवाईनक्शा क्षेत्र, फिर दौड़ें
बिना कच्चे PHP के एंडपॉइंट का निर्माण करें: एक ट्रिगर (इनबाउंड वेबहुक, शेड्यूल, इवेंट या मैनुअल) चुनें, फिर किसी कार्रवाई के लिए फ़ील्ड को मैप करें।

ट्रिगर्स

घटना

जब कुछ होता है तो भागो OpsIQ जब किसी बाहरी प्रणाली ने आपके वेबहुक के लिए एक मिलान कार्यक्रम पोस्ट किया URL उदाहरण के लिए, घटना का नाम टाइप करें टिकट.बनाया गया।

अनुसूची

घटना के नाम के रूप में अंतर्निहित अंतराल घटनाओं में से एक का उपयोग करें: cron.मिनट, crons. hourly या crond. daily। एक्शन एंड ट्रिगर स्क्रीन में इन बटन हैं, इसलिए आपको उन्हें याद नहीं करना होगा।

Apache

जब कोई व्यवस्थापक सादे भाषा में इसके लिए AI से पूछता है तो भागो। उस वाक्यांश को जोड़ें जिसे मिलान करना चाहिए, उदाहरण के लिए ग्राहक ढूंढें।

Inbound Webhook

एक बाहरी प्रणाली आपके लिए HTTP POST भेजती है OpsIQ वेबहुक URL एक घटना के नाम के साथ। उस घटना की आग के लिए किसी भी ट्रिगर सुनने के लिए।

कभी-कभी इसे चलाएं: स्थिति

एक घटना ट्रिगर स्थिति ले सकता है, इसलिए यह केवल आने वाले डेटा मैचों पर चलता है। परिस्थितियों के बिना यह हर बार घटना आग चला जाता है।

फील्ड

घटना डेटा में एक पथ। घोंसले मूल्यों के लिए डॉट का उपयोग करें, उदाहरण के लिए customer. email.

सभी मैच

प्रत्येक नियम का मिलान होना चाहिए या सिर्फ उनमें से एक है।

पाठ परीक्षण

बराबर नहीं होता, इसमें समान नहीं होता है, इसमें शामिल नहीं होता हैं, शुरू होता है और एक है। मिलान करने से पूंजी की उपेक्षा होती है।

संख्या परीक्षण

से बड़ा, कम से कम, इससे छोटा, अधिक से अधिक. संख्याएँ पाठ के रूप में लिखी जाती हैं तो भी उनकी तुलना सही ढंग से की जाती है.

उपस्थिति परीक्षण

मौजूद है, गायब हो रहा है, खाली है, रिक्त नहीं है।

केवल तत्काल टिकट के लिए ऑन-कॉल इंजीनियर को पृष्ठ दें

परिदृश्य:
घटना टिकट.बनाया, एक नियम के साथ: प्राथमिकता तत्काल बराबर है।
क्या करना है:

कार्रवाई तत्काल टिकट के लिए चलती है और बाकी सब कुछ के लिए छोड़ दिया जाता है। अपने अंत में कोई फ़िल्टरिंग की आवश्यकता नहीं है।

💡
यदि आप नियमों को खाली छोड़ देते हैं तो ट्रिगर हर मिलान घटना पर चलता है, जो पहले की स्थितियों के अस्तित्व में समान व्यवहार होता है।

कार्य

वेबहुक भेजें

एक कस्टम पेलोड के साथ HTTP POST को बाहरी URL में भेजें।

टिकट बनाएँ

निर्दिष्ट विभाग, विषय और संदेश के साथ एक समर्थन टिकट बनाएं।

ईमेल भेजें

एक कस्टम टेम्पलेट के साथ एक ईमेल भेजें।

रिकॉर्ड अद्यतन करें

ग्राहक, टिकट या CRM रिकॉर्ड को अपडेट करें।

रन कनेक्टर कार्रवाई

अपने कनेक्टर अनुमति और पुष्टि नियमों के साथ एक सक्षम कनेक्टर से पंजीकृत कार्रवाई को निष्पादित करें।

रन OpsIQ जनरल API कार्रवाई

पूरा नाम सामान्य API catalog. फ़ील्ड्स, स्कोप्स, अनुमतियां, पुष्टिकरण, विचारधारा और ड्राई रन सपोर्ट लाइव एक्शन अनुबंध से आते हैं; वर्कफ़्लो अपने बचाया कार्यक्षेत्र और प्रशासक संदर्भ के अंदर निष्पादित करता है।

प्रदाता-native API अनुरोध भेजें

कनेक्टर नेटिव का उपयोग करेंAPI पढ़ें या पुष्टि की मूल API जब प्रदाता समापन बिंदु में कोई क्यूरेट क्रिया नहीं होती है तो कार्रवाई लिखें। क्रेडेंशियल कनेक्टर के अंदर रहते हैं और केवल सापेक्ष प्रदाता पथ स्वीकार किए जाते हैं।

एक्शन एंड ट्रिगर बिल्डर, /api/v1.php, OpenAPI और पोस्टमैन एक ही एक्शन कॉन्ट्रैक्ट रेजिस्ट्री का उपयोग करते हैं, इसलिए चयन योग्य कार्रवाई रनटाइम प्रलेखन से नहीं बहती है।
डेवलपर

ट्रिगर्स पाकबुक

आम स्वचालन के लिए तैयार करने वाले ट्रिगर-एक्शन व्यंजनों का उपयोग करें।

यह कैसे काम करता है
ट्रिगर्स पाकबुकएक नुस्खा प्रवाह: a uptime. down वेबहुक एक उत्पादन फिल्टर से गुजरता है, फिर प्रशंसकों को तत्काल टिकट बनाने और सूचित करने के लिए बाहर Slackuptime.downवेबहुक की निगरानीअगर prodfilterतत्काल टिकट बनाएँसूचित करनाSlack#ops
ट्रिगर्स पाकबुक

निगरानी से ऑटो-create टिकट

परिदृश्य:
निगरानी प्रणाली जब सर्वर नीचे जाता है तो POST भेजती है।
क्या करना है:

Trigger: Inbound webhook Condition: payload.status = "down" Action: Create ticket · Dept: Technical, Subject: "Server {{payload.hostname}} down", Priority: Urgent

Slackबड़े आदेशों पर अधिसूचना

परिदृश्य:
Slackसंदेश हर बार ग्राहक एक आदेश पर रखता है$100.
क्या करना है:

Trigger: Event (order.completed) Condition: order.amount > 100 Action: Send webhook to Slack incoming webhook URL with order details

साप्ताहिक ईमेल

परिदृश्य:
हर सोमवार को 9am पर प्रबंधन के लिए सारांश ईमेल।
क्या करना है:

Trigger: Schedule (Monday 09:00) Action: Send email with last week's stats pulled from the REST API

Escalate stale टिकट

परिदृश्य:
यदि किसी टिकट के पास कोई जवाब नहीं है 24 घंटे, टीम लीड को असाइन करें।
क्या करना है:

Trigger: Schedule (every hour) Condition: ticket.status = "Open" AND ticket.last_reply_age > 86400 Action: Assign to team-lead, add internal note

डेवलपर

अपनी पहली कार्रवाई का निर्माण

इस walkthrough खरोंच से एक सरल कनेक्टर कार्रवाई बनाता है।

निर्माण कार्य
एक कार्रवाई का निर्माणएक क्रिया-परिभाषा फॉर्म: नाम lookup_order, को एक GET अनुरोध /orders/{id}, एक टाइप किया गया id पैरामीटर, और एक पासिंग 200 जाँचनई कार्रवाईकार्यस्थलनई कार्रवाईनामlookup_orderअनुरोधGET/orders/{id}पर्मid · स्ट्रिंग200 · आदेश मिला1DEFINEनाम, विधि, समापन बिंदु2PARAMSटाइप इनपुट3टेस्टLive 200 परिणाम
स्क्रैच से एक कार्रवाई का निर्माण करें। इसका नाम दें, विधि और समापन बिंदु निर्धारित करें, टाइप किए गए पैराम घोषित करें और इसे लाइव 200 पर परीक्षण करें।

दो प्रकार की कार्रवाई

शुरू करने से पहले, यह तय करें कि आपको किस तरह की आवश्यकता है। दोनों को उसी स्क्रीन में कॉन्फ़िगर किया गया है।

बाह्य API_

कार्रवाई आपके प्लेटफॉर्म के लिए HTTP अनुरोध भेजती है। इसे चुनें जब OpsIQ अपनी तरफ से कुछ करने की जरूरत है।

एक कनेक्टर कार्रवाई चलाएं

कार्रवाई पहले से ही कुछ स्थापित कनेक्टर प्रदान करती है। इसका चयन करें जब कार्य पहले से उपलब्ध हो और आप इसे ट्रिगर करना चाहते हैं। आप एक सूची से कनेक्टर एक्शन चुनते हैं, इसलिए वायर अप करने के लिए कुछ भी नहीं है।

दूसरा विकल्प यह है कि आप उन सब कुछ का पुन: उपयोग कैसे करते हैं जो आपके कनेक्टर्स को फिर से किसी भी निर्माण के बिना पहले ही कर सकते हैं: एक टिकट धागा पढ़ा, ग्राहक को देखने, संपर्क आयात करने और इतने पर। ड्रॉपडाउन से कनेक्टर कार्रवाई चुनें और आप किए जाते हैं।
1
कार्रवाई की योजना

उदाहरण: "lookup_product" नाम, रिटर्न प्राइस, स्टॉक और विवरण के आधार पर एक उत्पाद को देखो।

2
कार्रवाई में परिभाषित करना।json

एक्शन परिभाषा जोड़ें:

क्रियाएंjson- वास्तविक प्रकट आकार
{
  "actions": [
    {
      "action_id": "lookup_product",
      "label": "Look up a product",
      "category": "Catalogue",
      "description": "Find a product by name and return price, stock and description.",
      "scope": "admin",
      "requires_confirmation": false,
      "is_destructive": false,
      "delivery_type": "http",
      "http_method": "GET",
      "http_url": "/api/products/search",
      "parameters": [
        { "name": "name", "type": "string", "required": true, "in": "query",
          "description": "Product name to search for" }
      ],
      "returns": [
        { "alias": "id",          "path": "data.id",             "type": "string" },
        { "alias": "name",        "path": "data.name",           "type": "string" },
        { "alias": "price",       "path": "data.price",          "type": "number" },
        { "alias": "stock",       "path": "data.stock_quantity", "type": "number" }
      ]
    }
  ]
}
⚠️
तीन चीजें जो एक कार्रवाई को सब पर रजिस्टर करने में विफल हो जाती हैं। action_id आवश्यक है और होना चाहिए2to100लोअरकेस अक्षरों, अंक और अंडरस्कोर के पात्र - एक प्रविष्टि को बिना सीधे खारिज कर दिया जाता है। प्रकटन एक "एक्शन" LIST के साथ एक वस्तु है, जो एक्शन नाम की कुंजी नहीं है। और प्रतिक्रिया मानचित्रण DOTTED पथ (data.id) के साथ "वापसी" है, JSONPath ($.Data.id). — वहाँ कोई "response_mapping", "method", "endpoint" या "params" कुंजी कहीं भी रजिस्ट्री में है।
3
सूखी रन के साथ टेस्ट

कनेक्टर बिल्डर की समीक्षा चरण में, ड्राई रन दबाएं। यह आपके पैकेज के खिलाफ पूर्ण अनुरूपता चेकलिस्ट चलाता है और जब आपने क्रेडेंशियल्स की आपूर्ति की है तो एक वास्तविक कनेक्शन परीक्षण बनाता है। यह नमूना डेटा का उपयोग नहीं करता है।

4
एआई उपयोग सत्यापित करें

व्यवस्थापक एआई से पूछो: "उत्पाद Widget Pro देखो" AI को एक्शन को ढूंढना और निष्पादित करना चाहिए।

⚠️
कार्रवाई करने के लिए एक कार्रवाई जोड़ना।jsonAJAX मार्ग नहीं बनाती, इसलिए पुनर्जन्म करने के लिए कुछ भी नहीं है। कनेक्टर क्रियाओं को सिंक किया जाता हैOpsIQजब कनेक्टर सक्षम हो जाता है या इसकी सेटिंग्स को बचाया जा सकता है: कनेक्टर को फिर से सहेजना और नई कार्रवाई दिखाई देती है। उपकरण/gen_route_registry.php व्यवस्थापक AJAX प्रेषण को कवर करता है और इसमें कनेक्टर कार्यों पर कोई असर नहीं होता है।
डेवलपर

इनबाउंड इवेंट एंडपॉइंट्स

इनबाउंड एंडपॉइंट्स ने एक अन्य सिस्टम से हस्ताक्षरित JSON स्वीकार किया और इसे अलग संपर्क गतिविधि में बदल दिया जो टाइमलाइन, स्कोरिंग और वर्कफ़्लो को खिला सकता है।

उत्पाद स्क्रीन
इनबाउंड समापन बिंदुप्रत्येक भीतर का स्रोत अपना खुद का URL, गुप्त, मैपिंग और हाल के गतिविधि परिणाम है।इनबाउंड समापन बिंदुकार्यस्थलस्रोत5ACCEPTED12.4kREJECTED18लाइव WORKSPACEबिलिंग प्लेटफार्मसदस्यता कार्यक्रमस्वस्थउत्पाद अनुप्रयोगसाइनअप और उपयोग की घटनाओंस्वस्थइवेंट IDprovider_event_idडेडुपहस्ताक्षरX-OpsIQ-Inbound-SignatureHMAC1CREATE SOURCEURL गुप्त2MAP PAYLOADईमेल, घटना और आईडी3वेरिफHMAC तो ingest
प्रत्येक भीतर का स्रोत अपना खुद का URL, गुप्त, मैपिंग और हाल के गतिविधि परिणाम है।

प्रति भेजने प्रणाली एक स्रोत बनाएँ। OpsIQ उत्पन्न करना URL/token and secret. JSON साथ Content-Type: application/json और HMAC-SHA256 का उपयोग करके सटीक कच्चे शरीर पर हस्ताक्षर करें:

X-OpsIQ-Inbound-Signature: sha256=<hex hmac>

मानचित्र JSON संपर्क ईमेल, घटना का नाम और वैकल्पिक घटना ID के लिए पथ। इवेंट आईडी पसंदीदा डिडुप्लिकेशन कुंजी है। स्वीकृत गतिविधि संपर्क समयरेखा में प्रवेश करती है और लीड स्कोरिंग, सेगमेंट, लाइफसाइकल नियमों और वर्कफ़्लो को प्रभावित कर सकती है।

व्यापार डेटा को पार करने से पहले अवैध हस्ताक्षरों को अस्वीकार करें। एक नियंत्रित विंडो के अंदर दोनों पक्षों को अद्यतन करके एक गुप्त स्थान घुमाएं; रहस्य लॉग न करें।

डेवलपर

आउटबाउंड वेबहुक ऑपरेशन

आउटबाउंड वेबहुक प्रशासन ने हस्ताक्षरित सदस्यता, परीक्षण समापन बिंदुओं और निगरानीों को अतुल्यकालिक वितरण और स्वास्थ्य की पुनः प्राप्ति के लिए बनाया है।

उत्पाद स्क्रीन
आउटबाउंड वेबहुकआउटबाउंड वेबहुक पेज में HTTPS समापन बिंदुओं, घटना सदस्यता, वितरण स्वास्थ्य और एक क्लिक हस्ताक्षरित परीक्षण शामिल हैं।आउटबाउंड वेबहुककार्यस्थलENDPOINTS7SUCCESS99.2%रिट्रीइंग4लाइव WORKSPACECRM दर्पण* और सौदास्वस्थसमर्थन बस* और चैटस्वस्थडेटा गोदाम*फिर से कोशिश कर रहा हैपरीक्षण वितरणसाइन अप नमूना पेलोडरेडी1SUBSCRIBEएचटीटीपी://www.youtu/tweet URL घटनाओं और घटनाओं2AUTHENTICATEHMAC हस्ताक्षर3OBSERVEडिलिवरी रेल और रिट्री
आउटबाउंड वेबहुक पेज में HTTPS समापन बिंदुओं, घटना सदस्यता, वितरण स्वास्थ्य और एक क्लिक हस्ताक्षरित परीक्षण शामिल हैं।

पूर्ण प्रशासक एक HTTPS समापन बिंदु बनाते हैं, विशिष्ट घटनाओं या वाइल्डकार्ड चुनते हैं, गुप्त को सुरक्षित रूप से स्टोर करते हैं और परीक्षण भेजते हैं। OpsIQ HMAC-SHA256 के साथ कच्चे पेलोड संकेत:

X-OpsIQ-Signature: sha256=<hex hmac>

deserialising या अभिनय से पहले हस्ताक्षर सत्यापित करें। डिलिवरी लगभग बाद अतुल्यकालिक और स्वचालित रूप से पुनः प्राप्त होती है। 1 minute, 5 minutes, 30 minutes, 2 hours and 12 hoursहाल के डेलिवरी रेल का उपयोग स्टेटस, रिस्पांस कोड और प्रयास गिनती का निरीक्षण करने के लिए करें।

आपके रिसीवर को अलग होना चाहिए क्योंकि कोई भी अतुल्यकालिक प्रणाली रिलीवर कर सकती है। केवल टिकाऊ स्वीकृति के बाद एक 2xx प्रतिक्रिया लौटाएं।

डेवलपर

वेबहूक्स

वेबहुक बाह्य प्रणालियों को सूचित करते हैंOpsIQ जब कुछ होता है (inbound), और चलोOpsIQ जब कुछ आंतरिक रूप से होता है तो बाहरी सिस्टम को सूचित करें (बाहरी)।

वेबहूक्स
आउटबाउंड वेबहुकआउटबाउंड वेबहुक स्क्रीन: नाम, सदस्यता इवेंट्स, हाल के प्रसव की स्थिति डॉट्स और एक Send-test बटन के साथ एक समापन बिंदु तालिका।आउटबाउंड वेबहुककार्यस्थलसमापन बिंदु+ अंत बिंदु सहेजेंनामघटनानिर्देशिकाSlack #sale-alertshttps://hooks.slack.com/…crmDeal.won, आदेशटेस्टCRM दर्पणhttps://api.acme.com/hookसंपर्क*, टिकट. createdटेस्टज़ैपियरhttps://hooks.zapier.com/…chat.startedटेस्ट1ENDPOINTSनाम, घटनाओं, URL_2SIGNEDHMAC + ऑटो-retried3SEND TESTप्रसव की पुष्टि करें
वास्तविक आउटबाउंड-वेबहुक स्क्रीन: प्रत्येक समापन बिंदु के साथ अपनी घटनाओं, हाल ही में प्रसव स्वास्थ्य, और एक क्लिक भेजें परीक्षण, हस्ताक्षरित और पुनर्प्राप्त करें।

आउटबाउंड वेबहुक

सदस्यता

सेटिंग्स> Webhooks पर जाएं। एक समापन बिंदु जोड़ें URL और प्राप्त करने के लिए घटनाओं का चयन करें।

आयोजन

विशिष्ट घटनाओं की सदस्यता लें, या ["*"] सब कुछ के लिए। आपकी स्थापना की पूरी सूची नीचे है, और webhooks.events.list इसे JSON_ के रूप में लौटाता है।

रेस्त्री

विफल प्रसव एक्सोनेंशियल बैकऑफ के साथ वापसी करते हैं। 15 लगातार असफलता के बाद, समापन बिंदु ऑटो-डिसेबल है।

साइन करना

प्रत्येक प्रसव पर हस्ताक्षर किए जाते हैं। X-OpsIQ-Signature carries v2=<hex>, और हस्ताक्षरित स्ट्रिंग है version.timestamp.delivery_id.body — अकेले शरीर नहीं। हमेशा सत्यापित करें, और हमेशा स्ट्रिंग को ठीक तरह से पुनर्निर्माण करते हैं। नीचे दिए गए उदाहरण देखें।

एसएसआरएफ संरक्षण

OpsIQ निजी/आंतरिक को नहीं भेजेगा IPs (127 x, 10 x, 172.16 x, 192.168 x, 169.254.169.254).

Async डिलीवरी

वेबहुक को नौकरी कतार के माध्यम से वितरित किया जाता है, अवरुद्ध नहीं होता OpsIQ संचालन।

स्थिर घटना ID

प्रत्येक घटना में एक अद्वितीय event_id होता है जो डिडुप्लिकेशन के लिए रिट्रीज़ के पार रहता है।

हर प्रसव के साथ क्या आता है

X-OpsIQ-Event

उदाहरण के लिए, घटना का नाम ticket.created.

X-OpsIQ-Delivery

डिलीवरी आईडी यह रिट्राइज़ के पार भी रहता है - इसे डुप्लिकेट को अनदेखा करने के लिए उपयोग करें।

X-OpsIQ-Timestamp

यूनिक्स सेकंड साइनिंग टाइम में कुछ भी पुराने समय के बारे में पांच मिनट से अधिक उम्र का है।

X-OpsIQ-Signature

जैसा हस्ताक्षर v2=<hex>To make a part of the suffering. =: बाईं ओर संस्करण है, दाईं तरफ वह मान है जिसकी आप तुलना करते हैं।

X-OpsIQ-Signature-Version

वर्तमान में, उपयोग में योजना v2इसे हार्ड कोडिंग के बजाय हेडर से पढ़ें और यदि कोई v3 कभी जोड़ा जाता है तो आपका कोड काम करता रहता है।

⚠️
हस्ताक्षरित स्ट्रिंग है version.timestamp.delivery_id.bodyकेवल शरीर को ही हश करना एक सामान्य कारण है कि सत्यापन विफल हो जाता है - हर वास्तविक प्रसव अस्वीकार हो जाता और समापन बिंदु टूट गया दिखता है।

प्रसव की जाँच

PHP · सत्यापित करेंOpsIQवेबहुक
<?php
// Read the raw body BEFORE any framework parses it — the signature covers
// the exact bytes we sent, so a re-encoded array will not match.
$raw      = file_get_contents("php://input");
$sigHeader= $_SERVER["HTTP_X_OPSIQ_SIGNATURE"] ?? "";   // "v2=<hex>"
$ts       = (string)($_SERVER["HTTP_X_OPSIQ_TIMESTAMP"] ?? "");
$delivery = (string)($_SERVER["HTTP_X_OPSIQ_DELIVERY"] ?? "");
$secret   = "your endpoint signing secret";   // shown once when you add the endpoint

// 1. Refuse a stale delivery. This is what stops a captured request being replayed.
if ($ts === "" || abs(time() - (int)$ts) > 300) {
    http_response_code(401);
    exit(json_encode(["error" => "Stale delivery"]));
}

// 2. The header names its own version: "v2=<hex>".
[$version, $received] = array_pad(explode("=", $sigHeader, 2), 2, "");

// 3. Rebuild exactly what OpsIQ signed.
$canonical = $version . "." . $ts . "." . $delivery . "." . $raw;
$expected  = hash_hmac("sha256", $canonical, $secret);

// 4. Constant-time compare, so a timing attack cannot reveal the secret.
if ($received === "" || !hash_equals($expected, $received)) {
    http_response_code(401);
    exit(json_encode(["error" => "Invalid signature"]));
}

// 5. Accept. Deliveries retry, so treat a delivery id you have already
//    processed as a success and do the work only once.
$event = json_decode($raw, true);
// ... your handling ...

http_response_code(200);
echo json_encode(["received" => true]);
Node. js · सत्यापित करें a OpsIQ webhook
const crypto = require("crypto");

// express.raw gives you the exact bytes OpsIQ signed. express.json() does not.
app.post("/opsiq-webhook", express.raw({ type: "application/json" }), (req, res) => {
  const raw      = req.body;                                  // Buffer
  const sig      = req.headers["x-opsiq-signature"]  || "";   // "v2=<hex>"
  const ts       = req.headers["x-opsiq-timestamp"]  || "";
  const delivery = req.headers["x-opsiq-delivery"]   || "";
  const secret   = process.env.OPSIQ_WEBHOOK_SECRET;

  // 1. Reject stale deliveries (replay protection).
  if (!ts || Math.abs(Date.now() / 1000 - Number(ts)) > 300) {
    return res.status(401).json({ error: "Stale delivery" });
  }

  // 2. Split "v2=<hex>" into its version and its value.
  const [version, received] = sig.split("=", 2);

  // 3. Rebuild what OpsIQ signed: version.timestamp.delivery_id.body
  const canonical = Buffer.concat([
    Buffer.from(`${version}.${ts}.${delivery}.`),
    raw,
  ]);
  const expected = crypto.createHmac("sha256", secret).update(canonical).digest("hex");

  // 4. Constant-time compare. Lengths must match first or timingSafeEqual throws.
  const a = Buffer.from(expected), b = Buffer.from(received || "");
  if (a.length !== b.length || !crypto.timingSafeEqual(a, b)) {
    return res.status(401).json({ error: "Invalid signature" });
  }

  // 5. Accept, and make the work idempotent on the delivery id.
  const event = JSON.parse(raw.toString("utf8"));
  res.json({ received: true });
});

प्रत्येक घटना यह स्थापित भेज सकते हैं

यह हमेशा उस संस्करण से मेल खाता है जिस पर आप चल रहे हैं।

52 events can be delivered to a webhook endpoint on this install. Subscribe with ["*"] for all of them, or name the ones you want. The General API action webhooks.events.list इस सूची को उसी सूची में लौटाएं जैसाJSONइसलिए आपके कोड को हार्ड-कोड नहीं करना चाहिए।

एनालिटिक्स (1)

analytics.anomaly

Fired by PHASE_ANOMALY_ALERTS when a daily KPI (sessions, pageviews, conversions, revenue) deviates from its same-weekday 4-week baseline beyond the configured threshold. Payload: day (required), title, site_key, anomalies.

वाणिज्य (2)

commerce.order.created

Fired the moment a chat-confirmed order lands on the merchant platform (connector or custom-actions integration) - before payment. Subscribe to sync carts, reserve stock, or notify fulfilment systems. Payload: reference (required), connector, amount_minor, currency, customer_email, thread_id, occurred_at.

commerce.payment.confirmed

Fired exactly once per order when the gateway actively verifies the payment (amount and currency exact). This is the settlement signal - it rides the same claim that prevents duplicate receipts, so it can never double-fire. Payload: reference (required), connector, occurred_at.

संपर्क (6)

contact.conversion

Fired by OpsIQ.

contact.erased

Fired by OpsIQ.

contact.lifecycle_changed

Fired by OpsIQ.

contact.status_changed

Fired by OpsIQ.

contact.tag_added

Fired by OpsIQ.

opsiq.contact.upsert

Fired by OpsIQ.

conversation (5)

conversation.assigned

Fired when a conversation is assigned to an agent or unassigned. Payload: thread_id (required), site_key, assigned_admin_id, by_admin_id, occurred_at.

conversation.created

Fired when a new Client Chat conversation (thread) is opened. Payload: thread_id (required), site_key, channel, client_email, client_name, visitor_id, created_at.

conversation.message.created

Fired when a visible message is written to a conversation by the visitor, an agent, the AI or the system. Internal notes do not fire. Payload: thread_id (required), message_id (required), site_key, sender_type, admin_id, message, has_attachment, created_at.

conversation.rated

Fired when the visitor rates a conversation (1-5 stars). Payload: thread_id (required), site_key, stars, comment, trigger, admin_id, occurred_at.

conversation.resolved

Fired when an agent resolves a conversation and hands it back to the AI. Payload: thread_id (required), site_key, by_admin_id, occurred_at.

chrong (6)

crm.company.created

Fired when a CRM company/account is created. Payload: company_id (required), name.

crm.deal.created

Fired when a CRM deal/opportunity is created (by an order, the capture agent, or a human). Payload: deal_id (required), title, amount, currency, scope.

crm.deal.lost

Fired when a deal is moved to a Lost stage (closed-lost). Payload: deal_id (required), stage, amount.

crm.deal.stage_changed

Fired when a deal moves to a different pipeline stage. Payload: deal_id (required), stage, amount.

crm.deal.won

Fired when a deal is moved to a Won stage (closed-won). Payload: deal_id (required), stage, amount.

crm.task.created

Fired when a CRM task is created (incl. AI-suggested next-step / renewal tasks). Payload: task_id (required), title.

ईमेल (2)

email.bounced

Fired by OpsIQ.

email.replied

Fired by OpsIQ.

feedback (13)

feedback.analysis.completed

Fired when a Voice-of-Customer analysis run completes. Payload: analysis_run_id (required), workspace_key, sample_count, model_version.

feedback.detractor.detected

Fired when a newly indexed response meets its metric-specific detractor rule. Payload: feedback_item_id (required), workspace_key, source_kind, metric_kind, classification.

feedback.follow_up.completed

Fired when a Feedback follow-up is completed. Payload: feedback_item_id (required), workspace_key, actor_admin_id, outcome_code.

feedback.item.assigned

Fired when Feedback ownership changes. Payload: feedback_item_id (required), workspace_key, assignee_admin_id, team_id, actor_admin_id.

feedback.item.indexed

Fired when a source record is added to or refreshed in the canonical Feedback index. Payload: feedback_item_id (required), source_kind, source_id, workspace_key, metric_kind, classification.

feedback.item.redacted

Fired when source deletion or redaction removes Feedback content from the index. Payload: feedback_item_id (required), workspace_key, source_kind.

feedback.item.status_changed

Fired when the Feedback workflow state changes. Payload: feedback_item_id (required), workspace_key, state, actor_admin_id.

feedback.item.tagged

Fired when a tag is added to or removed from Feedback. Payload: feedback_item_id (required), workspace_key, tag, operation.

feedback.item.updated

Fired when a canonical Feedback item changes. Payload: feedback_item_id (required), workspace_key, change.

feedback.source.failed

Fired when a Feedback source replay or incremental index operation fails. Payload: workspace_key, source_kind (required), error_code, checkpoint.

feedback.source.lagging

Fired when a Feedback source checkpoint is behind its expected freshness window. Payload: workspace_key, source_kind (required), lag_seconds, last_success_at.

feedback.theme.detected

Fired when a canonical topic or theme signal is attached to Feedback. Payload: feedback_item_id (required), workspace_key, theme_key, confidence.

feedback.urgent.detected

Fired when an urgent Feedback signal is detected. Payload: feedback_item_id (required), workspace_key, source_kind, signal_key.

invoice (3)

invoice.created

Fired when an invoice is generated. Payload: invoice_id (required), customer_id, customer_email, amount, currency, due_date, items.

invoice.overdue

Fired when an invoice passes its due date unpaid. Payload: invoice_id (required), customer_id, customer_email, amount, currency, days_overdue.

invoice.paid

Fired when an invoice is paid in full. Payload: invoice_id (required), customer_id, customer_email, amount, currency, paid_at.

order (1)

order.created

Fired when a new order is placed. Payload: order_id (required), customer_id, customer_email, amount, currency, items, status, source.

भुगतान (3)

payment.completed

Fired when a payment succeeds. Payload: order_id (required), payment_id, provider_ref, customer_id, customer_email, amount, amount_minor, currency, gateway, invoice_id, items, paid_at.

payment.failed

Fired when a payment attempt fails. Payload: order_id, customer_id, customer_email, amount, currency, gateway, reason.

payment.refunded

Fired when a refund is issued. Payload: order_id, refund_id, customer_id, customer_email, amount, currency, reason.

सुरक्षा (1)

security.alert

Fired by PHASE_SECURITY_ALERTS when a security rule trips: failed-login wave, new automatic IP blocks, or a tamper-evidence (audit/consent hash chain) verification failure. Payload: rule (required), title, site_key, count, blocks, errors.

subscription (3)

subscription.cancelled

Fired when a subscription is cancelled. Payload: subscription_id (required), plan_name, customer_id, customer_email, cancel_reason, cancelled_at, ends_at.

subscription.created

Fired when a subscription is started. Payload: subscription_id (required), plan_id, plan_name, customer_id, customer_email, amount, currency, interval, trial_ends_at, next_billing_at.

subscription.renewed

Fired when a subscription renews successfully. Payload: subscription_id (required), plan_name, customer_id, customer_email, amount, currency, next_billing_at.

टिकट (5)

ticket.closed

Fired when a ticket is closed or resolved. Payload: ticket_id (required), resolution, closed_by_type, closed_by_id.

ticket.created

Fired when a new support ticket is opened. Payload: ticket_id (required), ticket_number, subject, department_id, department_name, customer_id, customer_email, priority, message, author_type, author_id, author_name.

ticket.merged

Fired when one or more tickets are merged into another ticket. Payload: ticket_id (required), ticket_number, subject, external_ref, native_table, site_key, sources, merged_by, merged_at.

ticket.renumbered

Fired when a connector mirror adopts the remote platform's ticket number for an OpsIQ ticket. Payload: ticket_id (required), old_number (required), ticket_number (required), connector, external_ref.

ticket.replied

Fired when a reply is posted to a ticket. Payload: ticket_id (required), reply_id, author_type, author_id, author_name, message.

user (1)

user.registered

Fired when a new user/customer account is created. Payload: user_id (required), email, firstname, lastname, company, country, source.

मैं स्थानीय रूप से वेबहुक का परीक्षण कैसे करूं?+

अपने स्थानीय सर्वर को उजागर करने के लिए ngrok का उपयोग करें। अपने ngroks URL_ पर वेबहुक समापन बिंदु सेट करें।

क्या होगा अगर मेरी समाप्ति की स्थिति अस्थायी रूप से नीचे है?+

OpsIQ एक्सोनेंशियल बैकऑफ़ के साथ वापसी। यदि आपका समापन बिंदु रिट्री विंडो में ठीक हो जाता है, तो कोई घटना नहीं खो जाती है।

डेवलपर

API कुंजियाँ

API चाबियाँ अनुरोधों को प्रमाणित करती हैं OpsIQ आरईटीAPI प्रत्येक कुंजी को अनुमतियों का दायरा दिया गया है।

API कुंजियाँ
API कुंजियाँAPI कुंजी स्क्रीन: एक्सेस स्तर और स्कोप चिप्स के साथ एक मुद्दे पैनल, रिवोक बटनों के साथ मौजूदा मास्केड कुंजियों की सूची के पास।API कुंजियाँकार्यस्थलएक कुंजी जारी करनाप्रवेशकेवलप्रतिबंधितगुंजाइशcontacts.readtickets.readevents.writeअंक कुंजीआपकी कुंजीZapier एकीकरणopq_••••4f2aरद्द करनामोबाइल ऐपopq_••••91c7रद्द करनाएनालिटिक्स निर्यातopq_••••2db0रद्द करना1SCOPEDकेवल पढ़ें या प्रतिबंधित2PER-ACTIONसटीक दायरे चुनें3REVOCABLEकभी भी घुमाएं
असली API कुंजी स्क्रीन: सटीक दायरे को चुनकर एक स्कोप्ड, रीड-ऑनली या प्रतिबंधित कुंजी जारी करें और किसी भी समय किसी भी कुंजी को रद्द कर दें।

एक बनाना API key

1
सेटिंग्स पर जाएं > API कुंजी

नेविगेट करने के लिए API मुख्य प्रबंधन।

2
कुंजी बनाएँ

इसे एक वर्णनात्मक नाम दें।

3
गुंजाइश चुनें

केवल वही कुंजी दें जो इसकी आवश्यकता है। क्षेत्र प्रति क्षेत्र जोड़े को पढ़ने और लिखने में आते हैं, इसलिए रिपोर्टिंग एकीकरण को पढ़ाया जा सकता है और कुछ नहीं।

उपलब्ध दायरे

सबसे कम समय में, जो नौकरी करता है। admin नीचे हर गुंजाइश को संतुष्ट करता है, इसलिए इसे केवल तभी उपयोग करें जब आपको वास्तव में व्यापक पहुंच की आवश्यकता हो।

Crm. read / crm. write

संपर्क, कंपनियों, सौदों, गतिविधियों, खंडों, आउटरीच, रूपांतरणों, lifecycle और CRM webhooks.

टिकट. read / टिकट. write

टिकट और उनके संदेश पढ़ने की सूची; उत्तर दें, अद्यतन करें, खुला और थोक कतार संचालन चलाएं।

बातचीत. read / वार्तालाप. write

लाइव चैट वार्तालाप और संदेश इतिहास पढ़ें; संदेश भेजने, असाइन करने और स्थिति बदलने के लिए।

kbread / kb. write

नॉलेज बेस प्रविष्टियों।

chat. read / chat. write

सेव्ड उत्तर टेम्पलेट्स।

connectors.read

यह देखें कि कौन से कनेक्टर स्थापित हैं, वे क्या कर सकते हैं और उनके क्रेडेंशियल का परीक्षण कर सकते है।

automations.read

अपने कार्यों, ट्रिगर और उनके रन इतिहास को देखें।

departments.read

रूटिंग के लिए उपलब्ध विभाग।

notifications.read

नामित ऑपरेटर के लिए अधिसूचनाएं।

analytics.read

रिपोर्ट अनुभाग, CSV निर्यात और निर्धारित रिपोर्ट परिभाषाएं।

site_intelligence.read

निगरानी साइटों और उनके SEO रिपोर्ट।

files.read

संलग्नक के लिए साइन किए गए डाउनलोड लिंक।

status.write

स्थिति पृष्ठ घटक और घटनाओं।

लेखन

एआई लेखन सहायक: ड्राफ्ट, सारांश, अनुवाद, पुनः लिखना, रचना, विश्लेषण।

व्यवस्थापक

सब कुछ, जिसमें संवेदनशील कार्यों की एक छोटी संख्या शामिल है जो जानबूझकर किसी भी संकीर्ण दायरे से पहुंच योग्य नहीं हैं: संपर्क को मिटाना, गोपनीयता सेटिंग्स बदलना और एक्सेस लॉग पढ़ना।

💡
अपने मुख्य कार्य के साथ मेटा-एक्शन को यह देखने के लिए कि कौन से क्रियाएं आपके इंस्टॉल पर चल सकती हैं। यह हमेशा एक सूची से काम करने की तुलना में अधिक विश्वसनीय है।

पहुँच स्तर

सब

कुंजी कुछ भी अपने दायरे अनुमति दे सकते हैं।

केवल

हर लिखने से मना कर दिया जाता है, जो भी गुंजाइश कहलाता है। रिपोर्टिंग, डैशबोर्ड और कुछ भी जो डेटा को कभी नहीं बदलना चाहिए के लिए सबसे सुरक्षित विकल्प।

प्रतिबंधित

आप सटीक कार्यों को सूचीबद्ध करते हैं जो कुंजी कह सकती है। कुछ और मना नहीं किया जाता है, यहां तक कि एक अनुमत दायरे के भीतर भी।

4
कुंजी कॉपी करें

एक बार दिखाया गया है। "opq_" के साथ शुरू होता है। इसे सुरक्षित रूप से स्टोर करें।

🚫
कभी शेयर नहीं API सार्वजनिक कोड, क्लाइंट-साइड में कुंजी JavaScript, या संस्करण नियंत्रण। पर्यावरण चर का उपयोग करें।
डेवलपर

अपनी वेबसाइट कनेक्ट करें

द OpsIQ विजेट एक है JavaScript स्निपेट आप ट्रैकिंग, एआई चैट, टिकट सृजन और ग्राहक पहचान के लिए अपनी वेबसाइट में जोड़ते हैं.

यह कैसे काम करता है
अपनी वेबसाइट कनेक्ट करेंबाईं ओर एक एक लाइन स्क्रिप्ट टैग और दाईं तरफ, एक वेब पेज के साथ OpsIQ चैट बबल कोने में दिखाई देता है।<!-- paste before </body> --><script src="https://cdn.opsiq.io/w.js" data-site="ws_8a2f" async></script>
अपनी वेबसाइट कनेक्ट करें

बुनियादी स्थापना

बेसिक विजेट स्निपेट
<script src="https://your-opsiq-domain.com/widget.php"
  data-site-key="site_abc123"
  async></script>

Paste before the closing </body> tag. The script loads asynchronously and does not block page rendering.

विन्यास गुण

data-site-key

आवश्यक है। कनेक्टेड साइटों से आपकी साइट कुंजी।

data-mode

वैकल्पिक। "चैट" (डिफ़ॉल्ट), "टिकेट्स", या "दोथ"।

data-position

वैकल्पिक। "बॉटम-राइट" (डिफ़ॉल्ट) या "बैटम-लेफ्ट"।

data-color

वैकल्पिक। प्राथमिक रंग हेक्स कोड।

data-greeting

वैकल्पिक। प्रारंभिक ग्रीटिंग संदेश।

data-language

वैकल्पिक यूआई भाषा: "en", "es", "fr", "de", "pt", "ar" आदि।

data-identity-token

वैकल्पिक सर्वर-जनरेट हस्ताक्षरित पहचान टोकन।

एसपीए समर्थन

मैनुअल एसपीए मार्ग ट्रैकिंग
// Manually notify OpsIQ of a route change (for custom routers)
window.OpsIQ = window.OpsIQ || [];
window.OpsIQ.push(["pageview", {
  url: window.location.href,
  title: document.title,
}]);

CSP नियम

CSP नियमों के लिए विजेट
script-src 'self' https://your-opsiq-domain.com;
connect-src 'self' https://your-opsiq-domain.com;
frame-src https://your-opsiq-domain.com;
क्या विजेट मेरी वेबसाइट को धीमा कर देता है?+

No. Under 15 KB gzipped, पृष्ठ सामग्री के बाद async लोड करता है।

क्या मैं उपस्थिति को अनुकूलित कर सकता हूँ?+

प्राथमिक रंग के लिए डेटा-रंग का उपयोग करें। CSS ओवरराइड विकल्प।

डेवलपर

विजेट स्थापित व्यंजनों

प्लेटफार्म-विशिष्ट स्थापना मार्गदर्शिका

यह कैसे काम करता है
विजेट स्थापित व्यंजनोंमंच के लिए कार्ड स्थापित करें WordPress, Shopify और Google Tag Manager प्रत्येक ने कहा कि विजेट को कहां जोड़ सकते हैं।डब्ल्यूपीWordPressप्लगइन स्थापित करें, दर्ज करेंआपकी साइट कुंजी, सहेजें।दुकानShopifyस्निपेट को अंदर पेस्ट करेंपहले विषय-वस्तु /body.जीटीएमटैग मैनेजरकस्टम HTML टैग, सभी पृष्ठ।
व्यंजनों को स्थापित करें

WordPress

परिदृश्य:
A WordPress site के सभी पृष्ठों को जोड़ें।
क्या करना है:

Option 1: Edit theme footer.php, paste snippet before </body>. Option 2: Use "Insert Headers and Footers" plugin > Scripts in Footer. Option 3: Use a child theme footer.php to survive theme updates.

Shopify

परिदृश्य:
अपने Shopify स्टोर में जोड़ें।
क्या करना है:

Online Store > Themes > Edit Code > Layout > theme.liquid. Paste before </body>. Save.

React / Next. js

परिदृश्य:
React or Next. js app में जोड़ें।
क्या करना है:

In Next.js, use next/script in app/layout.tsx: import Script from "next/script"; <Script src="https://your-opsiq.com/widget.php" data-site-key="site_abc" strategy="lazyOnload" />

WHMCS

परिदृश्य:
अपने WHMCS क्लाइंट क्षेत्र में जोड़ें।
क्या करना है:

सेटअप > जनरल सेटिंग > अन्य > ग्लोबल पाद लेख सामग्री. स्निपेट पेस्ट करें। या अपने टेम्पलेट footer. tpl संपादित करें।

Google Tag Manager

परिदृश्य:
GTM के माध्यम से जोड़ें।
क्या करना है:

कस्टम बनाएं HTML टैग, पेस्ट स्निपेट. ट्रिगर: सभी पेज प्रकाशित करें।

डेवलपर

अपने बैकएंड (एक अनुबंध, किसी भी प्लेटफॉर्म) में व्यवस्थापक विजेट

एम्बेड करेंOpsIQव्यवस्थापक सहायक - व्यवस्थापक चैट, टिकट इनबॉक्स और एआई लेखन - अपने ओडब्ल्यूएन प्लेटफॉर्म के एडमिन पैनल के अंदर, इसलिए आपकी टीम कभी भी उनके उपकरण नहीं छोड़ती है। आगंतुक पहचान और पोर्टल की तरहSSOयह एक सामान्य अनुबंध है जिसे ~ में कार्यान्वित किया गया है15अपने प्लेटफॉर्म के सर्वर कोड की लाइनें - एक ही पैटर्नZendesk, इंटरकॉम और डिसोरम के लिए उपयोग करेंSSOवहाँ के लिए इंतजार करने के लिए कोई प्रति मंच प्लगइन है: किसी भी स्टैक है कि एक समझौता कर सकते हैंHMACआज यह कर सकते हैं।

Step 1 — एम्बेड लाइन

से रिमोट साइट→आपकी साइट→संहिता, लोडर लाइन की प्रतिलिपि बनाएँ और इसे अपने व्यवस्थापक पैनल के पृष्ठों (फुटर्स में शामिल हैं, लेआउट टेम्पलेट या एक व्यवस्थापक-केवल कस्टम-JS बॉक्स) में जोड़ें:

एक लाइन एम्बेड
<script async src="https://YOUR-OPSIQ/opsiq/embed/admin_widget.php?site_key=SITE_KEY&identity_token=TOKEN_FROM_STEP_2"></script>

चरण2- बतानेOpsIQजो लॉग इन है (सर्वर हस्ताक्षरित)

केवल आपका अनुप्रयोग जानता है कि किस व्यवस्थापक में हस्ताक्षर किए गए हैं - यह एक कम होने वाला नहीं है, यह सुरक्षा मॉडल है। आपका सर्वर अपने सत्र से थोड़े समय तक चलने वाले हस्ताक्षरित टोकन उत्पन्न करता है, ठीक उसी साइट वेबहुक गुप्त के साथ साइन इन किया गया आगंतुक पहचान टोकन की तरह:

PHP · अपने सत्र से व्यवस्थापक पहचान पर हस्ताक्षर
<?php
$secret  = "opsiq_whsec_your_site_secret";   // Remote Sites → Codes
$payload = json_encode([
    "site_key"      => "SITE_KEY",
    "iat"           => time(),
    "exp"           => time() + 6 * 3600,
    "authenticated" => true,          // REQUIRED, top level — see note below
    "platform"      => "your-platform",
    "admin"    => [
        "id"            => (string)$admin->id,      // from YOUR session
        "name"          => $admin->name,
        "username"      => $admin->username,
        "email"         => $admin->email,
        "role"          => $admin->role,
        "authenticated" => true,
    ],
]);
$payload64 = rtrim(strtr(base64_encode($payload), "+/", "-_"), "=");
$identityToken = $payload64 . "." . hash_hmac("sha256", $payload64, $secret);
// Put $identityToken into the embed line (identity_token=…), or expose it as
// window.OpsIQAdminIdentityToken before the loader script.
स्वचालित रूप से प्रति व्यवस्थापक पहुँच

प्रत्येक व्यवस्थापक जो आपके प्लेटफॉर्म में लॉग इन करते हैं, व्यक्तिगत रूप से मिलान किया जाता है:OpsIQ'प्रति-व्यवस्थापक प्रवेश द्वार' एक के खिलाफ टोकन का उपयोगकर्ता नाम + ईमेल को हल करता हैOpsIQएजेंट (टीम पेज; प्लेटफॉर्म ईमेल अलग होने पर एजेंट की "मैच ईमेल" सूची का उपयोग करें) और उस एजेंट के कार्यस्थान, विभाग और इनबॉक्स अनुमतियों को लागू करता है।OpsIQकोई भी परिवर्तन नहीं।

रोल्स सवारी साथ

जो भी भूमिका स्ट्रिंग आपके प्लेटफ़ॉर्म भेजता है उस पर दिखाया गया हैOpsIQविशेषता के लिए पक्ष; प्राधिकरण हमेशा से आता हैOpsIQएजेंट रिकॉर्ड, कभी जोरदार भूमिका से नहीं।

क्यों नहीं पढ़ा हमारे लॉगिन कुकी?

ब्राउज़र कभी भी किसी अन्य मूल के लिए अपने व्यवस्थापक कुकी को भेजते हैं - कोई विक्रेता आपके लॉगिन क्रॉस-डोमेन का पता लगाने" नहीं लगा सकता है। हर गंभीर उत्पाद इस तरह से हल करता है: आपका सर्वर वाउच, हस्ताक्षरित होता है। यह पूरी अनुबंध है।

अपनी साइट पर कोई साझा मोड नहीं

बंद OpsIQ होस्ट वहाँ कोई हस्ताक्षरित या साझा लॉगिन मोड नहीं है: लोडर एक हस्ताक्षरित व्यवस्थापक टोकन आने तक छिपा रहता है। कोड लोडर में टोकन =... मान एक विजेट कुंजी है जो केवल साइट की पहचान करता है; यह कभी भी किसी को साइन इन नहीं कर सकता है।

authenticated — इसे शीर्ष स्तर पर डाल दिया

यह ध्वज आपके सर्वर का दावा है कि एक इंसान वास्तव में लॉग इन है, और OpsIQ इसके बिना किसी भी टोकन को मना नहीं करता। "authenticated" => true beside site_key/iat/expनहीं admin ऑब्जेक्ट। वर्तमान OpsIQ इसे किसी भी स्थिति में स्वीकार करता है, लेकिन पुरानी रिलीज केवल शीर्ष स्तर को पढ़ती हैं - और विफलता निर्णायक है: बातचीत सूची, इतिहास और सभी प्रामाणिक ठीक नहीं पढ़ते जबकि हर चैट टर्न जवाब "Admin log" की आवश्यकता है।यदि आप इस बात को देखते हैं कि विभाजन पहले ही इस ध्वज की जाँच करें।

Token स्वच्छता

केवल सर्वर पर साइन इन करें, कभी भी ब्राउज़र में नहींJavaScript(a day)OpsIQखारिज कर दिया समाप्त हो गया और भविष्य में दिनांकित टोकन, और हस्ताक्षर अपनी साइट कुंजी के लिए टोकन बांधता है।

संदर्भ कार्यान्वयन

The WHMCS module does this automatically from the WHMCS admin session; the Botble Hotel connector's bridge file does it from the Laravel session (op=admin_identity). Both are just this contract in their platform's dialect — copy whichever reads closest to your stack.

शून्य पृष्ठ तारों (कनेक्टर घोषित जांच)

जब आपका OpsIQ कनेक्टर अपनी पहचान को उसके समापन बिंदु में स्टोर करता है admin_identity_probe_url सेटिंग, PLAIN लोडर लाइन आपके सभी व्यवस्थापक पृष्ठों की आवश्यकता है: विजेट कनेक्टर से जांच को पता चलता है, इसे अपनी साइट कुंजी + विजेट टोकन के साथ कॉल करता है और प्रत्येक व्यवस्थापक को स्वचालित रूप से प्रमाणित करता है। पृष्ठ अभी भी एक व्यवस्थापक के साथ ओवरराइड कर सकता है। data-identity-endpoint विशेषता या window.OpsIQAdminIdentityEndpoint.

💡
संकेतन रहस्य आपके लिए भरा हुआ है। दूरस्थ साइटों में, आपकी साइट, कोड, Option 3, अपने कर्मचारियों पर हस्ताक्षर करें, हर उदाहरण पहले से ही इस साइट का अपना रहस्य शामिल है, इसलिए कोड पेस्ट के रूप में काम करता है: प्रतिलिपि बनाने या कॉन्फ़िगर करने के लिए कुछ भी नहीं है। इस पृष्ठ पर दिए गए उदाहरणों को दिखाया गया है। opsiq_whsec_YOUR_SITE_SECRET प्रत्येक उदाहरण के लिए दिखता है OPSIQ_SITE_SECRET (या आपके ढांचे की अपनी सेटिंग, जिसका नाम इसके नोट्स में रखा गया है) पहले सर्वर पर और इसका उपयोग करता है कि जब यह सेट हो जाता है तो आप जब भी चाहें फ़ाइल से बाहर निकलने के लिए क्लिक कर सकते हैं, उदाहरण के लिए इसे संपादन कोड के बिना घुमाने के लिए। किसी भी तरह फ़ाइल केवल अपने सर्वर पर चलती है: कभी भी इसे एक वेब पेज या ब्राउज़र में पेस्ट नहीं करें JavaScriptकभी-कभी इसे सार्वजनिक भंडार में नहीं लिया, क्योंकि किसी को भी गुप्त रखने से आपके ग्राहकों या कर्मचारियों में से किसी के रूप में साइन इन कर सकता है। WHMCS और Botble इसमें से कोई नहीं: WHMCS हुक में भरा रहस्य के साथ आता है, और Botble कनेक्टर पैनल इसे पुल में भर देता है।

पूरा कोड, प्लेटफॉर्म द्वारा

प्रत्येक उदाहरण केवल एक हस्ताक्षरित कर्मचारी सदस्य के लिए व्यवस्थापक चैट टैग प्रिंट करता है, जिसमें हस्ताक्षर किए गए टोकन जोड़ा गया है और विजेट के ताज़ा जवाब ()?opsiq_identity_refresh=1&role=adminसाथ {"success":true,"identity_token":"…"} या 401रिमोट साइट्स, आपकी साइट, संहिताओं, विकल्प 3, अपने स्टाफ में साइन इन करें अपनी साइट कुंजी के साथ उसी कोड को प्रिंट करता है और गुप्त रूप से भरा होता है।

⚠️
व्यवस्थापक टोकन दो-भाग का रूप है: base64url(payload), एक डॉट, फिर हेक्स HMACउस base64url पाठ का -SHA256। यह एक JWT नहीं है, और JWF को मना कर दिया गया है। व्यवस्थापक वस्तु को आईडी और ईमेल की आवश्यकता होती है और ऍक्स को भीतर होना चाहिए। 24 घंटे।

WHMCS

Nothing to add: the WHMCS hook in Option 1 already signs your logged-in staff into Admin Chat and refreshes the token. Do not paste the Option 3 loader as well.
1

Install the Option 1 hook as includes/hooks/opsiq_tracker.php.

2

Each staff member needs an OpsIQ agent account with the same email (or username): that is how their own permissions apply.

includes/hooks/opsiq_tracker.php
/* WHMCS: no extra code. Option 1 (the All-in-One WHMCS Hook) signs the logged-in
 * admin into Admin Chat on every admin page and answers ?opsiq_identity_refresh=1&role=admin. */

Botble (connector bridge)

Nothing to add: the Botble bridge signs your logged-in admins. Copy the bridge from the Botble connector panel (it arrives with OPSIQ_HOST, OPSIQ_SITE_KEY and OPSIQ_SITE_SECRET filled in), then put its one admin_embed line in Botble's admin Custom JS.
1

In Botble admin → Custom JS, add: <script async src="https://YOUR-BOTBLE-SITE/opsiq-botble-bridge.php?op=admin_embed"></script>

2

Each staff member needs an OpsIQ agent account with the same email (or username): that is how their own permissions apply.

public/opsiq-botble-bridge.php
<!-- Botble admin → Custom JS. The bridge signs the logged-in admin; nothing secret is in the page. -->
<script async src="https://YOUR-BOTBLE-SITE/opsiq-botble-bridge.php?op=admin_embed"></script>

PHP (no dependencies)

1

Save as opsiq-admin-chat.php. This site's signing secret is already filled in, so the code works as pasted. To keep it out of the file, set OPSIQ_SITE_SECRET in the environment on the server instead: that value is used first. Keep this file on the server and never commit it to a public repository.

2

At the very top of every ADMIN page, before any output: require 'opsiq-admin-chat.php'; opsiq_admin_chat_refresh(); and before </body>: <?= opsiq_admin_chat_tag() ?> (it replaces the Option 3 loader).

3

Replace opsiq_admin_chat_user() with your signed-in staff member. Each staff member needs an OpsIQ agent account with the same email (or username): that is how their own permissions apply.

opsiq-admin-chat.php
<?php
/* opsiq-admin-chat.php — sign your logged-in staff into OpsIQ Admin Chat. */

// WHO IS SIGNED IN AS STAFF — replace the body. Return null for anyone who is not staff.
function opsiq_admin_chat_user(): ?array
{
    $u = $_SESSION['admin'] ?? null;    // e.g. ['id' => 3, 'email' => '…', 'username' => '…', 'name' => '…', 'role' => 'Owner']
    return is_array($u) && !empty($u['id']) && !empty($u['email']) ? $u : null;
}

// The admin token is base64url(payload) . '.' . hex HMAC — NOT a JWT.
function opsiq_admin_chat_token(array $u): string
{
    $secret = (string) (getenv('OPSIQ_SITE_SECRET') ?: 'opsiq_whsec_YOUR_SITE_SECRET');   // this site's secret; the environment wins when set
    if ($secret === '') return '';                           // fail closed: no Admin Chat
    $now = time();
    $payload = rtrim(strtr(base64_encode(json_encode([
        'site_key'      => 'YOUR_SITE_KEY',
        'iat'           => $now,
        'exp'           => $now + 3600,                      // at most 24 hours
        'authenticated' => true,
        'platform'      => 'php',
        'admin'         => [
            'id'       => (string) $u['id'],                 // REQUIRED
            'email'    => (string) $u['email'],              // REQUIRED
            'username' => (string) ($u['username'] ?? ''),
            'name'     => (string) ($u['name'] ?? ''),
            'role'     => (string) ($u['role'] ?? ''),
        ],
    ], JSON_UNESCAPED_SLASHES)), '+/', '-_'), '=');
    return $payload . '.' . hash_hmac('sha256', $payload, $secret);
}

// Call at the top of every admin page, before any output.
function opsiq_admin_chat_refresh(): void
{
    if (empty($_GET['opsiq_identity_refresh'])) return;
    header('Content-Type: application/json; charset=utf-8');
    header('Cache-Control: no-store');
    $u = opsiq_admin_chat_user();
    $t = $u ? opsiq_admin_chat_token($u) : '';
    if ($t === '') { http_response_code(401); echo json_encode(['success' => false, 'login_required' => true]); exit; }
    echo json_encode(['success' => true, 'role' => 'admin', 'identity_token' => $t]);
    exit;
}

// Print before </body> on admin pages. Prints nothing for anyone who is not staff.
function opsiq_admin_chat_tag(): string
{
    $u = opsiq_admin_chat_user();
    $t = $u ? opsiq_admin_chat_token($u) : '';
    if ($t === '') return '';
    $src = 'https://YOUR-OPSIQ/opsiq/embed/admin_widget.php?site_key=YOUR_SITE_KEY&identity_token=' . rawurlencode($t);
    return '<script async src="' . htmlspecialchars($src, ENT_QUOTES) . '" data-opsiq-widget="admin-chat"></script>';
}

Laravel

1

This site's signing secret is already filled in, so the code works as pasted. To keep it out of the file, set OPSIQ_SITE_SECRET=… in .env with 'opsiq' => ['site_secret' => env('OPSIQ_SITE_SECRET')] in config/services.php on the server instead: that value is used first. Keep this file on the server and never commit it to a public repository.

2

Save the class as app/Support/OpsiqAdminChat.php; adjust isStaff() to your admin guard or role. Add the refresh middleware from the bottom of the code to your admin routes.

3

In your admin Blade layout before </body>: {!! \App\Support\OpsiqAdminChat::tag() !!}. Each staff member needs an OpsIQ agent account with the same email (or username): that is how their own permissions apply.

app/Support/OpsiqAdminChat.php
<?php
// app/Support/OpsiqAdminChat.php — no packages needed.
namespace App\Support;

final class OpsiqAdminChat
{
    /** WHO IS STAFF — adjust to your admin guard, role or gate. */
    private static function staff()
    {
        $user = auth('web')->user();                    // or auth('admin')->user()
        return ($user && $user->can('access-admin')) ? $user : null;
    }

    /** The admin token is base64url(payload) . '.' . hex HMAC — NOT a JWT. */
    public static function token(): string
    {
        $user = self::staff();
        $secret = (string) (config('services.opsiq.site_secret') ?: 'opsiq_whsec_YOUR_SITE_SECRET');   // this site's secret; config wins when set
        if (!$user || $secret === '') return '';
        $now = time();
        $payload = rtrim(strtr(base64_encode(json_encode([
            'site_key'      => 'YOUR_SITE_KEY',
            'iat'           => $now,
            'exp'           => $now + 3600,
            'authenticated' => true,
            'platform'      => 'laravel',
            'admin'         => [
                'id'       => (string) $user->id,           // REQUIRED
                'email'    => (string) $user->email,        // REQUIRED
                'username' => (string) ($user->username ?? $user->email),
                'name'     => (string) $user->name,
                'role'     => 'Admin',
            ],
        ], JSON_UNESCAPED_SLASHES)), '+/', '-_'), '=');
        return $payload . '.' . hash_hmac('sha256', $payload, $secret);
    }

    /** For the admin Blade layout, before </body>. Prints nothing for non-staff. */
    public static function tag(): string
    {
        $t = self::token();
        if ($t === '') return '';
        return '<script async src="' . e('https://YOUR-OPSIQ/opsiq/embed/admin_widget.php?site_key=YOUR_SITE_KEY&identity_token=' . rawurlencode($t)) . '" data-opsiq-widget="admin-chat"></script>';
    }
}

/* Refresh — Admin Chat asks ?opsiq_identity_refresh=1&role=admin on the admin page it is on.
 * app/Http/Middleware/OpsiqAdminChatRefresh.php, added to your admin route group:
 *
 *   public function handle($request, \Closure $next) {
 *       if (!$request->query('opsiq_identity_refresh')) return $next($request);
 *       $t = \App\Support\OpsiqAdminChat::token();
 *       return $t === ''
 *           ? response()->json(['success' => false, 'login_required' => true], 401)->header('Cache-Control', 'no-store')
 *           : response()->json(['success' => true, 'role' => 'admin', 'identity_token' => $t])->header('Cache-Control', 'no-store');
 *   }
 */

WordPress / WooCommerce

1

This site's signing secret is already filled in, so the code works as pasted. To keep it out of the file, add define('OPSIQ_SITE_SECRET', '…'); to wp-config.php instead: that value is used first. Keep this file on the server and never commit it to a public repository.

2

Paste into your theme's functions.php or a small plugin. It shows Admin Chat inside wp-admin to users who can manage_options; change the capability to suit your team.

3

Each staff member needs an OpsIQ agent account with the same email (or username): that is how their own permissions apply.

functions.php
/* functions.php or a small plugin — OpsIQ Admin Chat inside wp-admin. */

if (!defined('OPSIQ_SITE_SECRET')) define('OPSIQ_SITE_SECRET', 'opsiq_whsec_YOUR_SITE_SECRET');   // this site's secret; wp-config.php wins when set

function opsiq_admin_chat_token(): string {
    if (!is_user_logged_in() || !current_user_can('manage_options')) return '';     // who counts as staff
    if (!defined('OPSIQ_SITE_SECRET') || OPSIQ_SITE_SECRET === '') return '';
    $u   = wp_get_current_user();
    $now = time();
    // The admin token is base64url(payload) . '.' . hex HMAC — NOT a JWT.
    $payload = rtrim(strtr(base64_encode(wp_json_encode([
        'site_key'      => 'YOUR_SITE_KEY',
        'iat'           => $now,
        'exp'           => $now + 3600,
        'authenticated' => true,
        'platform'      => 'wordpress',
        'admin'         => [
            'id'       => (string) $u->ID,                   // REQUIRED
            'email'    => (string) $u->user_email,           // REQUIRED
            'username' => (string) $u->user_login,
            'name'     => (string) $u->display_name,
            'role'     => (string) (reset($u->roles) ?: 'administrator'),
        ],
    ])), '+/', '-_'), '=');
    return $payload . '.' . hash_hmac('sha256', $payload, OPSIQ_SITE_SECRET);
}

// Refresh: Admin Chat asks ?opsiq_identity_refresh=1&role=admin on the admin page it is on.
add_action('admin_init', function () {
    if (empty($_GET['opsiq_identity_refresh'])) return;
    nocache_headers();
    $t = opsiq_admin_chat_token();
    if ($t === '') wp_send_json(['success' => false, 'login_required' => true], 401);
    wp_send_json(['success' => true, 'role' => 'admin', 'identity_token' => $t]);
});

// The loader, on every wp-admin page, for staff only.
add_action('admin_footer', function () {
    $t = opsiq_admin_chat_token();
    if ($t === '') return;
    echo '<script async src="' . esc_url('https://YOUR-OPSIQ/opsiq/embed/admin_widget.php?site_key=YOUR_SITE_KEY&identity_token=' . rawurlencode($t)) . '" data-opsiq-widget="admin-chat"></script>';
});

Node.js / Express

1

No packages needed. This site's signing secret is already filled in, so the code works as pasted. To keep it out of the file, set OPSIQ_SITE_SECRET in the environment on the server instead: that value is used first. Keep this file on the server and never commit it to a public repository.

2

adminRouter.use(opsiqAdminChat) on your ADMIN routes, after your session middleware; adjust isStaff(). It answers the refresh and sets res.locals.opsiqAdminChatTag.

3

Print res.locals.opsiqAdminChatTag (unescaped) before </body> in your admin layout. Each staff member needs an OpsIQ agent account with the same email (or username): that is how their own permissions apply.

opsiq-admin-chat.js
// opsiq-admin-chat.js — no packages needed.
const crypto = require("crypto");

const isStaff = (user) => !!(user && user.isAdmin);        // WHO IS STAFF — adjust

// The admin token is base64url(payload) + "." + hex HMAC — NOT a JWT.
function opsiqAdminChatToken(user) {
  const secret = process.env.OPSIQ_SITE_SECRET || "opsiq_whsec_YOUR_SITE_SECRET";   // this site's secret; the environment wins when set
  if (!isStaff(user) || !secret) return "";
  const now = Math.floor(Date.now() / 1000);
  const payload = Buffer.from(JSON.stringify({
    site_key: "YOUR_SITE_KEY",
    iat: now,
    exp: now + 3600,                                        // at most 24 hours
    authenticated: true,
    platform: "node",
    admin: { id: String(user.id), email: user.email, username: user.username || user.email, name: user.name || "", role: user.role || "Admin" },  // id + email REQUIRED
  })).toString("base64url");
  return payload + "." + crypto.createHmac("sha256", secret).update(payload).digest("hex");
}

// adminRouter.use(opsiqAdminChat)
function opsiqAdminChat(req, res, next) {
  const token = opsiqAdminChatToken(req.user);
  if (req.query.opsiq_identity_refresh) {
    res.set("Cache-Control", "no-store");
    return token
      ? res.json({ success: true, role: "admin", identity_token: token })
      : res.status(401).json({ success: false, login_required: true });
  }
  res.locals.opsiqAdminChatTag = token
    ? '<script async src="' + ("https://YOUR-OPSIQ/opsiq/embed/admin_widget.php?site_key=YOUR_SITE_KEY&identity_token=" + encodeURIComponent(token)).replace(/"/g, """) + '" data-opsiq-widget="admin-chat"></script>'
    : "";
  next();
}

module.exports = { opsiqAdminChat };

Python (Flask)

1

No packages beyond Flask and flask-login. This site's signing secret is already filled in, so the code works as pasted. To keep it out of the file, set OPSIQ_SITE_SECRET in the environment on the server instead: that value is used first. Keep this file on the server and never commit it to a public repository.

2

Call init_opsiq_admin_chat(app) where you create the app, and adjust is_staff().

3

In your admin base template before </body>: {{ opsiq_admin_chat_tag }}. Each staff member needs an OpsIQ agent account with the same email (or username): that is how their own permissions apply.

opsiq_admin_chat.py
# opsiq_admin_chat.py — Flask + flask-login, no other packages.
import base64, hashlib, hmac, json, os, time, urllib.parse
from flask import request, jsonify
from flask_login import current_user
from markupsafe import Markup, escape

def is_staff(user):                                           # WHO IS STAFF — adjust
    return user.is_authenticated and getattr(user, "is_admin", False)

def opsiq_admin_chat_token():
    secret = os.environ.get("OPSIQ_SITE_SECRET") or "opsiq_whsec_YOUR_SITE_SECRET"   # this site's secret; the environment wins when set
    if not secret or not is_staff(current_user):
        return ""
    now = int(time.time())
    # The admin token is base64url(payload) + "." + hex HMAC — NOT a JWT.
    payload = base64.urlsafe_b64encode(json.dumps({
        "site_key": "YOUR_SITE_KEY", "iat": now, "exp": now + 3600,
        "authenticated": True, "platform": "python",
        "admin": {"id": str(current_user.id), "email": current_user.email,           # REQUIRED
                  "username": getattr(current_user, "username", current_user.email),
                  "name": getattr(current_user, "name", ""), "role": "Admin"},
    }, separators=(",", ":")).encode()).decode().rstrip("=")
    return payload + "." + hmac.new(secret.encode(), payload.encode(), hashlib.sha256).hexdigest()

def init_opsiq_admin_chat(app):
    @app.before_request
    def _opsiq_admin_refresh():
        if request.args.get("opsiq_identity_refresh"):
            t = opsiq_admin_chat_token()
            if t:
                resp = jsonify({"success": True, "role": "admin", "identity_token": t})
            else:
                resp = jsonify({"success": False, "login_required": True})
                resp.status_code = 401
            resp.headers["Cache-Control"] = "no-store"
            return resp

    @app.context_processor
    def _opsiq_admin_tag():
        t = opsiq_admin_chat_token()
        if not t:
            return {"opsiq_admin_chat_tag": ""}
        src = "https://YOUR-OPSIQ/opsiq/embed/admin_widget.php?site_key=YOUR_SITE_KEY&identity_token=" + urllib.parse.quote(t, safe="")
        return {"opsiq_admin_chat_tag": Markup('<script async src="%s" data-opsiq-widget="admin-chat"></script>' % escape(src))}

Django

1

No packages needed. This site's signing secret is already filled in, so the code works as pasted. To keep it out of the file, set OPSIQ_SITE_SECRET in settings.py (for example os.environ["OPSIQ_SITE_SECRET"]) on the server instead: that value is used first. Keep this file on the server and never commit it to a public repository.

2

Add "yourapp.opsiq_admin_chat.OpsiqAdminChatMiddleware" to MIDDLEWARE (after AuthenticationMiddleware) and "yourapp.opsiq_admin_chat.opsiq_admin_chat" to TEMPLATES context_processors. Staff = user.is_staff.

3

In your admin base template before </body>: {{ opsiq_admin_chat_tag }}. Each staff member needs an OpsIQ agent account with the same email (or username): that is how their own permissions apply.

opsiq_admin_chat.py
# yourapp/opsiq_admin_chat.py — no packages needed.
import base64, hashlib, hmac, json, time, urllib.parse
from django.conf import settings
from django.http import JsonResponse
from django.utils.html import format_html

def opsiq_admin_chat_token(user):
    secret = getattr(settings, "OPSIQ_SITE_SECRET", "") or "opsiq_whsec_YOUR_SITE_SECRET"   # this site's secret; settings win when set
    if not secret or not user.is_authenticated or not user.is_staff:
        return ""
    now = int(time.time())
    # The admin token is base64url(payload) + "." + hex HMAC — NOT a JWT.
    payload = base64.urlsafe_b64encode(json.dumps({
        "site_key": "YOUR_SITE_KEY", "iat": now, "exp": now + 3600,
        "authenticated": True, "platform": "django",
        "admin": {"id": str(user.pk), "email": user.email, "username": user.get_username(),   # id + email REQUIRED
                  "name": user.get_full_name(), "role": "Superuser" if user.is_superuser else "Staff"},
    }, separators=(",", ":")).encode()).decode().rstrip("=")
    return payload + "." + hmac.new(secret.encode(), payload.encode(), hashlib.sha256).hexdigest()

class OpsiqAdminChatMiddleware:
    def __init__(self, get_response):
        self.get_response = get_response
    def __call__(self, request):
        if request.GET.get("opsiq_identity_refresh"):
            t = opsiq_admin_chat_token(request.user)
            resp = (JsonResponse({"success": True, "role": "admin", "identity_token": t}) if t
                    else JsonResponse({"success": False, "login_required": True}, status=401))
            resp["Cache-Control"] = "no-store"
            return resp
        return self.get_response(request)

def opsiq_admin_chat(request):
    t = opsiq_admin_chat_token(request.user)
    if not t:
        return {"opsiq_admin_chat_tag": ""}
    src = "https://YOUR-OPSIQ/opsiq/embed/admin_widget.php?site_key=YOUR_SITE_KEY&identity_token=" + urllib.parse.quote(t, safe="")
    return {"opsiq_admin_chat_tag": format_html('<script async src="{}" data-opsiq-widget="admin-chat"></script>', src)}

.NET / C#

1

No packages needed. This site's signing secret is already filled in, so the code works as pasted. To keep it out of the file, set OpsIQ:SiteSecret (user-secrets, the OpsIQ__SiteSecret environment variable or Key Vault) on the server instead: that value is used first. Keep this file on the server and never commit it to a public repository.

2

In Program.cs after app.UseAuthentication(): app.Use(OpsiqAdminChat.Refresh); staff = users in the "Admin" role (adjust).

3

In your admin layout before </body>: @Html.Raw(OpsiqAdminChat.Tag(Context)). Each staff member needs an OpsIQ agent account with the same email (or username): that is how their own permissions apply.

OpsiqAdminChat.cs
// OpsiqAdminChat.cs — no packages needed.
using System.Net;
using System.Security.Claims;
using System.Security.Cryptography;
using System.Text;
using System.Text.Json;

public static class OpsiqAdminChat
{
    // The admin token is base64url(payload) + "." + hex HMAC — NOT a JWT.
    public static string Token(HttpContext ctx)
    {
        var secret = ctx.RequestServices.GetRequiredService<IConfiguration>()["OpsIQ:SiteSecret"];
        if (string.IsNullOrEmpty(secret)) secret = "opsiq_whsec_YOUR_SITE_SECRET";   // this site's secret; configuration wins when set
        if (string.IsNullOrEmpty(secret) || !ctx.User.IsInRole("Admin")) return "";      // WHO IS STAFF — adjust
        var now = DateTimeOffset.UtcNow.ToUnixTimeSeconds();
        var json = JsonSerializer.Serialize(new Dictionary<string, object> {
            ["site_key"] = "YOUR_SITE_KEY", ["iat"] = now, ["exp"] = now + 3600,
            ["authenticated"] = true, ["platform"] = "dotnet",
            ["admin"] = new Dictionary<string, string> {
                ["id"] = ctx.User.FindFirstValue(ClaimTypes.NameIdentifier) ?? "",      // REQUIRED
                ["email"] = ctx.User.FindFirstValue(ClaimTypes.Email) ?? "",            // REQUIRED
                ["username"] = ctx.User.Identity?.Name ?? "", ["name"] = ctx.User.Identity?.Name ?? "", ["role"] = "Admin" },
        });
        var payload = Convert.ToBase64String(Encoding.UTF8.GetBytes(json)).TrimEnd('=').Replace('+', '-').Replace('/', '_');
        using var h = new HMACSHA256(Encoding.UTF8.GetBytes(secret));
        return payload + "." + Convert.ToHexString(h.ComputeHash(Encoding.UTF8.GetBytes(payload))).ToLowerInvariant();
    }

    // app.Use(OpsiqAdminChat.Refresh)
    public static async Task Refresh(HttpContext ctx, Func<Task> next)
    {
        if (string.IsNullOrEmpty(ctx.Request.Query["opsiq_identity_refresh"])) { await next(); return; }
        ctx.Response.Headers["Cache-Control"] = "no-store";
        var t = Token(ctx);
        if (t == "") { ctx.Response.StatusCode = 401; await ctx.Response.WriteAsJsonAsync(new { success = false, login_required = true }); return; }
        await ctx.Response.WriteAsJsonAsync(new { success = true, role = "admin", identity_token = t });
    }

    public static string Tag(HttpContext ctx)
    {
        var t = Token(ctx);
        if (t == "") return "";
        return "<script async src=\"" + WebUtility.HtmlEncode("https://YOUR-OPSIQ/opsiq/embed/admin_widget.php?site_key=YOUR_SITE_KEY&identity_token=" + Uri.EscapeDataString(t)) + "\" data-opsiq-widget=\"admin-chat\"></script>";
    }
}

Ruby on Rails

1

No gems needed. This site's signing secret is already filled in, so the code works as pasted. To keep it out of the file, set OPSIQ_SITE_SECRET in the environment on the server instead: that value is used first. Keep this file on the server and never commit it to a public repository.

2

include OpsiqAdminChat in your admin base controller; adjust opsiq_staff.

3

In your admin layout before </body>: <%= opsiq_admin_chat_tag %>. Each staff member needs an OpsIQ agent account with the same email (or username): that is how their own permissions apply.

app/controllers/concerns/opsiq_admin_chat.rb
# app/controllers/concerns/opsiq_admin_chat.rb — no gems needed.
require "base64"
require "cgi"
require "json"
require "openssl"

module OpsiqAdminChat
  extend ActiveSupport::Concern

  included do
    before_action :opsiq_admin_identity_refresh
    helper_method :opsiq_admin_chat_tag
  end

  private

  def opsiq_staff                                        # WHO IS STAFF — adjust
    current_user if respond_to?(:current_user, true) && current_user&.try(:admin?)
  end

  # The admin token is base64url(payload) + "." + hex HMAC — NOT a JWT.
  def opsiq_admin_chat_token
    secret = ENV["OPSIQ_SITE_SECRET"].presence || "opsiq_whsec_YOUR_SITE_SECRET"   # this site's secret; the environment wins when set
    staff = opsiq_staff
    return "" if secret.blank? || staff.nil?
    now = Time.now.to_i
    payload = Base64.urlsafe_encode64({
      site_key: "YOUR_SITE_KEY", iat: now, exp: now + 3600,
      authenticated: true, platform: "rails",
      admin: { id: staff.id.to_s, email: staff.email,              # REQUIRED
               username: staff.try(:username).to_s, name: staff.try(:name).to_s, role: "Admin" }
    }.to_json, padding: false)
    payload + "." + OpenSSL::HMAC.hexdigest("SHA256", secret, payload)
  end

  def opsiq_admin_identity_refresh
    return unless params[:opsiq_identity_refresh].present?
    response.headers["Cache-Control"] = "no-store"
    t = opsiq_admin_chat_token
    return render(json: { success: false, login_required: true }, status: :unauthorized) if t.blank?
    render json: { success: true, role: "admin", identity_token: t }
  end

  def opsiq_admin_chat_tag
    t = opsiq_admin_chat_token
    return "" if t.blank?
    helpers.tag.script(nil, async: true, src: "https://YOUR-OPSIQ/opsiq/embed/admin_widget.php?site_key=YOUR_SITE_KEY&identity_token=#{CGI.escape(t)}", data: { opsiq_widget: "admin-chat" })
  end
end

Java (Spring Boot)

1

No libraries needed. This site's signing secret is already filled in, so the code works as pasted. To keep it out of the file, set opsiq.site.secret (for example from OPSIQ_SITE_SECRET) on the server instead: that value is used first. Keep this file on the server and never commit it to a public repository.

2

Replace staff() with your admin lookup. The filter answers the refresh; @ControllerAdvice exposes opsiqAdminChatTag to views.

3

Admin Thymeleaf layout before </body>: <th:block th:utext="${opsiqAdminChatTag}"/>. Each staff member needs an OpsIQ agent account with the same email (or username): that is how their own permissions apply.

OpsiqAdminChat.java
// OpsiqAdminChat.java — no libraries needed.
import jakarta.servlet.*;
import jakarta.servlet.http.*;
import java.io.IOException;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
import java.util.*;
import javax.crypto.Mac;
import javax.crypto.spec.SecretKeySpec;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.util.HtmlUtils;

@Component
@ControllerAdvice
public class OpsiqAdminChat implements Filter {
    @Value("${opsiq.site.secret:opsiq_whsec_YOUR_SITE_SECRET}")   // this site's secret; opsiq.site.secret wins when set
    private String secret;

    /** WHO IS STAFF — replace: id, email, username, name, role. Null for anyone else. */
    private Map<String, String> staff(HttpServletRequest req) {
        if (req.getUserPrincipal() == null || !req.isUserInRole("ADMIN")) return null;
        String n = req.getUserPrincipal().getName();
        return Map.of("id", n, "email", n, "username", n, "name", n, "role", "Admin");
    }

    // The admin token is base64url(payload) + "." + hex HMAC — NOT a JWT.
    String token(HttpServletRequest req) {
        Map<String, String> u = staff(req);
        if (u == null || secret.isEmpty()) return "";
        try {
            long now = System.currentTimeMillis() / 1000;
            Map<String, Object> claims = new LinkedHashMap<>();
            claims.put("site_key", "YOUR_SITE_KEY"); claims.put("iat", now); claims.put("exp", now + 3600);
            claims.put("authenticated", true); claims.put("platform", "java"); claims.put("admin", u);   // id + email REQUIRED
            String payload = Base64.getUrlEncoder().withoutPadding().encodeToString(new ObjectMapper().writeValueAsBytes(claims));
            Mac mac = Mac.getInstance("HmacSHA256");
            mac.init(new SecretKeySpec(secret.getBytes(StandardCharsets.UTF_8), "HmacSHA256"));
            return payload + "." + HexFormat.of().formatHex(mac.doFinal(payload.getBytes(StandardCharsets.UTF_8)));
        } catch (Exception e) { return ""; }
    }

    @Override // Admin Chat refreshing on the admin page it is on
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
        HttpServletRequest req = (HttpServletRequest) request;
        if (req.getParameter("opsiq_identity_refresh") == null) { chain.doFilter(request, response); return; }
        HttpServletResponse res = (HttpServletResponse) response;
        res.setHeader("Cache-Control", "no-store");
        res.setContentType("application/json");
        String t = token(req);
        if (t.isEmpty()) { res.setStatus(401); res.getWriter().write("{\"success\":false,\"login_required\":true}"); return; }
        res.getWriter().write("{\"success\":true,\"role\":\"admin\",\"identity_token\":\"" + t + "\"}");
    }

    @ModelAttribute("opsiqAdminChatTag")
    public String tag(HttpServletRequest req) {
        String t = token(req);
        if (t.isEmpty()) return "";
        String src = "https://YOUR-OPSIQ/opsiq/embed/admin_widget.php?site_key=YOUR_SITE_KEY&identity_token=" + URLEncoder.encode(t, StandardCharsets.UTF_8);
        return "<script async src=\"" + HtmlUtils.htmlEscape(src) + "\" data-opsiq-widget=\"admin-chat\"></script>";
    }
}

Go

1

No modules needed. This site's signing secret is already filled in, so the code works as pasted. To keep it out of the file, set OPSIQ_SITE_SECRET in the environment on the server instead: that value is used first. Keep this file on the server and never commit it to a public repository.

2

Replace staff() with your session lookup and wrap your admin router: OpsiqAdminChatRefresh(adminMux).

3

Pass OpsiqAdminChatTag(r) to your admin layout and print it before </body>. Each staff member needs an OpsIQ agent account with the same email (or username): that is how their own permissions apply.

opsiq_admin_chat.go
// opsiq_admin_chat.go — standard library only.
package main

import (
    "crypto/hmac"
    "crypto/sha256"
    "encoding/base64"
    "encoding/hex"
    "encoding/json"
    "html"
    "html/template"
    "net/http"
    "net/url"
    "os"
    "time"
)

type OpsiqStaff struct{ ID, Email, Username, Name, Role string }

// WHO IS STAFF — replace with your session lookup. Return nil for anyone who is not staff.
func staff(r *http.Request) *OpsiqStaff { return nil }

// The admin token is base64url(payload) + "." + hex HMAC — NOT a JWT.
func opsiqAdminChatToken(r *http.Request) string {
    u, secret := staff(r), os.Getenv("OPSIQ_SITE_SECRET")
    if secret == "" {
        secret = "opsiq_whsec_YOUR_SITE_SECRET" // this site's secret; the environment wins when set
    }
    if u == nil || secret == "" {
        return ""
    }
    now := time.Now().Unix()
    body, _ := json.Marshal(map[string]any{
        "site_key": "YOUR_SITE_KEY", "iat": now, "exp": now + 3600,
        "authenticated": true, "platform": "go",
        "admin": map[string]string{"id": u.ID, "email": u.Email, "username": u.Username, "name": u.Name, "role": u.Role}, // id + email REQUIRED
    })
    payload := base64.RawURLEncoding.EncodeToString(body)
    mac := hmac.New(sha256.New, []byte(secret))
    mac.Write([]byte(payload))
    return payload + "." + hex.EncodeToString(mac.Sum(nil))
}

// OpsiqAdminChatRefresh answers Admin Chat's ?opsiq_identity_refresh=1&role=admin.
func OpsiqAdminChatRefresh(next http.Handler) http.Handler {
    return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
        if r.URL.Query().Get("opsiq_identity_refresh") == "" {
            next.ServeHTTP(w, r)
            return
        }
        w.Header().Set("Cache-Control", "no-store")
        w.Header().Set("Content-Type", "application/json")
        if t := opsiqAdminChatToken(r); t != "" {
            json.NewEncoder(w).Encode(map[string]any{"success": true, "role": "admin", "identity_token": t})
            return
        }
        w.WriteHeader(http.StatusUnauthorized)
        json.NewEncoder(w).Encode(map[string]any{"success": false, "login_required": true})
    })
}

// OpsiqAdminChatTag prints the loader for staff only.
func OpsiqAdminChatTag(r *http.Request) template.HTML {
    t := opsiqAdminChatToken(r)
    if t == "" {
        return ""
    }
    src := "https://YOUR-OPSIQ/opsiq/embed/admin_widget.php?site_key=YOUR_SITE_KEY&identity_token=" + url.QueryEscape(t)
    return template.HTML(`<script async src="` + html.EscapeString(src) + `" data-opsiq-widget="admin-chat"></script>`)
}

लारवेल (हार्ड-वॉन नोट्स) पर पहचान समापन बिंदु को लागू करना

यदि आपका प्लेटफ़ॉर्म Laravel (Botble, Bagisto, Custom apps) है और आपका समापन बिंदु एक स्टैंडअलोन फ़ाइल है जो लॉग-इन व्यवस्थापक को पढ़ने के लिए ढांचे को बूट करता है, तो तीन विशिष्ट आपको घंटों में बचेंगे - प्रत्येक ने सीखा जाने से पहले वास्तविक उत्पादन विफलता का उत्पादन किया:

To make a request to before bootstrap

आपके सेवा प्रदाता हल कर सकते हैं request बूट के दौरान कंटेनर से। लारवेल का अपना जीवन चक्र कैप्चर किए गए अनुरोध को पहली बार अंदर बांधता है Kernel::handle() — दर्पण कि आदेश: $app->instance('request', Request::capture()) बफ़र $kernel->bootstrap(), या आप प्राप्त "Target class [request] मौजूद नहीं है".

सत्र-कोकी उपसर्ग HMAC_कीड है

आधुनिक लारवेल कुकी मूल्यों को एक साथ परिभाषित करता है HMAC एपीपी कुंजी के साथ समझौता किया गया ()CookieValuePrefixA slant; a sneak. sha1(name."v2") कभी भी इसे मैच नहीं कर सकता। साथ में स्ट्रिप CookieValuePrefix::validate($name, $decrypted, $keys)एक संरचनात्मक गिरावट के साथ ()40हेक्स chars + | स्थिति में40(d))।40chars (chars)81= अभी भी जुड़ा हुआ है) और एक सत्र जो केवल उसी के साथ लोड होता है _token इसमें शामिल हैं।

जहाँ लॉग इन रहता है

Auth Stamp is the auth state. login_<guard>_<sha1(guard class)> - डिफ़ॉल्ट वेब गार्ड के लिए: 'login_web_' . sha1(Illuminate\Auth\SessionGuard::class)To make a new account. login_* कस्टम गार्ड के लिए एक गिरती हुई कुंजी के रूप में संख्यात्मक कुंजी।

पुल की तरह डेबग करता है

जहाज़ debug=1 वह मोड जो असफल STEP और अपवाद का नाम देता है - एक अंधा पकड़-सभी ने एक लाइव तैनाती को अव्यवस्थित बनाया।0.7) संदर्भ है: कर्नेल/bind/bootstrap/decrypt/session/auth/db पर कदम मार्कर।

Laravel · पूर्ण पहचान समापन बिंदु (प्रतिलिपि, दो स्थिरांक निर्धारित किया गया है)
<?php
/* identity endpoint · LARAVEL (Botble, Bagisto, any Laravel admin)
 * Drop this in your PUBLIC web root, e.g. /opsiq-identity.php
 * Answers: {"success":true,"authenticated":true,"admin":{...},"identity_token":"..."} */
define("OPSIQ_SITE_KEY", "SITE_KEY");
define("OPSIQ_SITE_SECRET", "opsiq_whsec_your_site_secret");   // Remote Sites → Codes

header("Content-Type: application/json");
$step = "boot";
try {
    require __DIR__ . "/../vendor/autoload.php";
    $app = require_once __DIR__ . "/../bootstrap/app.php";

    $step = "bind";
    // ORDER MATTERS: bind the request BEFORE bootstrapping, or providers that
    // resolve "request" during boot throw "Target class [request] does not exist".
    $request = Illuminate\Http\Request::capture();
    $app->instance("request", $request);

    $step = "bootstrap";
    $kernel = $app->make(Illuminate\Contracts\Http\Kernel::class);
    $kernel->bootstrap();

    $step = "session";
    $app["session"]->driver()->setId($request->cookie(config("session.cookie")));
    $app["session"]->driver()->start();

    $step = "auth";
    $user = auth()->guard("web")->user();   // use YOUR admin guard name
    if (!$user) {
        echo json_encode(["success" => false, "authenticated" => false, "error" => "no admin session"]);
        exit;
    }

    $step = "sign";
    $admin = [
        "id"            => (string)$user->id,
        "name"          => (string)($user->name ?? $user->username),
        "username"      => (string)($user->username ?? $user->email),
        "email"         => (string)$user->email,
        "role"          => (string)optional($user->roles->first())->name,
        "authenticated" => true,
    ];
    $payload = json_encode([
        "site_key"      => OPSIQ_SITE_KEY,
        "iat"           => time(),
        "exp"           => time() + 6 * 3600,
        "authenticated" => true,          // TOP LEVEL — required
        "platform"      => "laravel",
        "admin"         => $admin,
    ], JSON_UNESCAPED_SLASHES);
    $p64   = rtrim(strtr(base64_encode($payload), "+/", "-_"), "=");
    $token = $p64 . "." . hash_hmac("sha256", $p64, OPSIQ_SITE_SECRET);

    echo json_encode(["success" => true, "authenticated" => true,
                      "admin" => $admin, "identity_token" => $token]);
} catch (\Throwable $e) {
    // debug=1 names the failing STEP — never ship a blind catch-all
    $err = ($_GET["debug"] ?? "") === "1"
        ? get_class($e) . " at [" . $step . "]: " . $e->getMessage()
        : "identity unavailable";
    echo json_encode(["success" => false, "authenticated" => false, "error" => $err]);
}

अन्य स्टैक पर समान समापन बिंदु

केवल "जो लॉग इन है? लाइन परिवर्तन - साइनिंग ब्लॉक हर जगह समान है। सर्वर पर हस्ताक्षर करें, कभी नहीं JavaScript_ में।

WordPress · WHMCS· Symfony · सादे PHP — swap, हस्ताक्षरकर्ता रखने
<?php
/* The ONE helper every platform shares. Keep it verbatim. */
function opsiq_identity_token(array $admin, string $siteKey, string $secret, string $platform): string {
    $payload = json_encode([
        "site_key"      => $siteKey,
        "iat"           => time(),
        "exp"           => time() + 6 * 3600,
        "authenticated" => true,          // TOP LEVEL — OpsIQ refuses the token without it
        "platform"      => $platform,
        "admin"         => $admin + ["authenticated" => true],
    ], JSON_UNESCAPED_SLASHES);
    $p64 = rtrim(strtr(base64_encode($payload), "+/", "-_"), "=");
    return $p64 . "." . hash_hmac("sha256", $p64, $secret);
}

/* ── WORDPRESS ─────────────────────────────────────────────────────────── */
require_once ABSPATH . "wp-load.php";
if (!current_user_can("manage_options")) { /* not an admin → refuse */ }
$u = wp_get_current_user();
$admin = ["id" => (string)$u->ID, "name" => $u->display_name,
          "username" => $u->user_login, "email" => $u->user_email,
          "role" => implode(",", $u->roles)];

/* ── WHMCS (inside an addon/hook, admin area) ──────────────────────────── */
$aid = (int)($_SESSION["adminid"] ?? 0);
if ($aid <= 0) { /* not an admin → refuse */ }
$row = Capsule::table("tbladmins")->where("id", $aid)->first();
$admin = ["id" => (string)$row->id, "name" => trim($row->firstname . " " . $row->lastname),
          "username" => $row->username, "email" => $row->email, "role" => "administrator"];

/* ── SYMFONY ───────────────────────────────────────────────────────────── */
$u = $security->getUser();                    // Symfony\Bundle\SecurityBundle\Security
if (!$u) { /* not an admin → refuse */ }
$admin = ["id" => (string)$u->getId(), "name" => $u->getName(),
          "username" => $u->getUserIdentifier(), "email" => $u->getEmail(),
          "role" => implode(",", $u->getRoles())];

/* ── PLAIN PHP / your own app ──────────────────────────────────────────── */
session_start();
if (empty($_SESSION["admin_id"])) { /* not an admin → refuse */ }
$admin = ["id" => (string)$_SESSION["admin_id"], "name" => $_SESSION["admin_name"] ?? "",
          "username" => $_SESSION["admin_username"] ?? "", "email" => $_SESSION["admin_email"] ?? "",
          "role" => $_SESSION["admin_role"] ?? ""];

/* ── then, on EVERY stack ──────────────────────────────────────────────── */
$token = opsiq_identity_token($admin, "SITE_KEY", "opsiq_whsec_your_site_secret", "wordpress");
echo json_encode(["success" => true, "authenticated" => true,
                  "admin" => $admin, "identity_token" => $token]);

जब यह काम नहीं करता है - इस क्रम में निदान

विजेट कभी प्रकट नहीं होता है, कंसोल कहते हैं "सिग्नेड एडमिनिस्ट्रेशन आइडेंटिफिकेशन टोकन की आवश्यकता है"

आपका समापन बिंदु वापस नहीं आया identity_tokenTo open the endpoint URL सीधे लॉग-इन व्यवस्थापक ब्राउज़र में साथ &debug=1 - आप असफल कदम देखेंगे। लारवेल पर यह लगभग हमेशा अनुरोध-binding या कुकी-प्रीफिक्स आइटम ऊपर है।

इतिहास और बातचीत कार्य, लेकिन हर चैट टर्न कहते हैं "Admin log" की आवश्यकता है।

क्लासिक विभाजन। आपका टोकन टॉप-लेवल लापता है authenticated — विजेट का अपना समापन बिंदु टोकन स्वीकार करता है, चैट स्ट्रीम के पीछे साझा सत्यापनकर्ता इसे मना कर देता है। "authenticated" => true beside exp.

"admin in OpsIQ_ में प्रावधान नहीं किया गया" (HTTP) 401

Token सत्यापित, लेकिन इसके उपयोगकर्ता नाम + ईमेल मैच नहींOpsIQएजेंट जोड़ेंOpsIQ →टीम, या उस एजेंट के मैच-ईमेल सूची में प्लेटफॉर्म ईमेल जोड़ें जब यह उनके अलग से भिन्न होता हैOpsIQईमेल

सब कुछ 403s ब्राउज़र से लेकिन कर्ल के साथ काम करता है

एक CORS प्रीफ़लाइट आपके अनुरोध हेडर में से एक को अस्वीकार कर देता है। आपका समापन बिंदु जवाब देना चाहिए OPTIONS और अनुरोध मूल को गूंजें, या बस कस्टम हेडर से बचने के लिए - विजेट केवल कुकी की जरूरत है।

आज काम करना

चेक exp: टोकन डिजाइन द्वारा अल्पकालिक रहते हैं। विजेट स्वचालित रूप से पुन: जांच करता है, इसलिए इसका मतलब आमतौर पर अंतिम बिंदु का मतलब सत्र को देखना बंद कर दिया जाता है - एक ऐप कुंजी रोटेशन, सत्र-चालक परिवर्तन या कुकी डोमेन बदलाव।

💡
व्यवस्थापक विजेट पहचान के समाधान तक छिपा हुआ प्रदान करता है, और प्रत्येक चैट/इनबॉक्स/डेटा कॉल को मिलान करने के खिलाफ सर्वर-साइड लागू किया जाता है।OpsIQकिसी भी विषय पर ध्यान दिए बिना, टोकन यूआई को अनलॉक करता है; अनुमतियां हमेशा से आती हैंOpsIQ.
डेवलपर

आगंतुक पहचान

पहचान के बाद अज्ञात आगंतुकों को ज्ञात ग्राहकों से जोड़ता है। OpsIQ ग्राहक प्रोफ़ाइल के लिए ब्राउज़िंग इतिहास, चैट और टिकट लिंक करें।

यह कैसे काम करता है
आगंतुक पहचानएक प्रवाह: आपकी साइट पर उपयोगकर्ता लॉग इन करते हैं, आप एक हस्ताक्षरित पहचान टोकन जारी करते हैं और OpsIQ अपने सत्रों को एकीकृत करता है, चैट और टिकट एक प्रोफ़ाइल में।उपयोगकर्ता लॉग इनअपनी साइट परहस्ताक्षरित टोकनपहचान_token (HMAC)एक प्रोफ़ाइलsessions+ चैटटिकट
आगंतुक पहचान

दो स्तर की पहचान और जब प्रत्येक पर्याप्त हो

स्तर 1 — एक संकेतित संकेत

आप विजेट को बताते हैं कि कौन आगंतुक एक सादे के साथ हैJavaScriptयह आगंतुक लॉग पर ईमेल और ग्राहक आईडी भरता है, इसलिए आपका डैशबोर्ड साइन-इन ट्रैफिक दिखाता है और सत्रों में शामिल हो जाता है। यह एक HINT है: कोई भी इसे अपने ब्राउज़र में संपादित कर सकता है, ताकि वह अपने ब्राउज़र को संपादित कर सके।OpsIQकभी भी इसकी ताकत पर खाता डेटा जारी नहीं किया जाता है।

Level 2 — a signed idence token

आपका सर्वर साइट वेबहुक रहस्य के साथ एक अल्पकालिक टोकन पर हस्ताक्षर करता है। OpsIQ हस्ताक्षर को सत्यापित करता है और उसके बाद ही व्यक्ति को सिद्ध ग्राहक के रूप में व्यवहार करता है यह वह स्तर है जो ग्राहक चैट और कनेक्टर लुकअप में खाता उत्तर अनलॉक करता है । किसी भी अजनबी के लिए इसका उपयोग नहीं करना चाहिए।

⚠️
स्तर1एक प्रदर्शन सुविधा है। स्तर2यदि कोई प्रश्न केवल वास्तविक खाता धारक के लिए उत्तर दिया जा सकता है, तो आपको स्तर की आवश्यकता होगी।2.
💡
आपको लेवल लिखने की जरूरत नहीं है 2 हाथ से: रिमोट साइट → आपकी साइट → संहिता → C. Signed-in ग्राहक PHP के लिए साइनिंग कोड और रिफ्रेश हैंडलर उत्पन्न करते हैं, WordPress, लारवेल Node.js, पायथन, Django, .NET, रेल, जावा और जाओ। WHMCS हुक और Botble कनेक्टर पुल पहले से ही ग्राहकों पर हस्ताक्षर करते हैं। पहचान का कहना है कि ग्राहक कौन है; उनके आदेश या बुकिंग एक कनेक्टर के माध्यम से चैट तक पहुंचती हैं (एक पुल फ़ाइल केवल तभी जब प्लेटफॉर्म में कोई नहीं होता है) API).

स्तर 1 — unsigned संकेत

ऑब्जेक्ट को विजेट स्क्रिप्ट से पहले सेट करें, या कॉल पहचान () बाद में एक बार जब आपका ऐप जानता है कि कौन साइन इन होता है। दोनों रूपों को पढ़ा जाता है; जो भी आपके पृष्ठ पर फिट बैठता है उसका उपयोग करें।

JavaScriptदो समर्थित रूपों
<!-- Form A: set the global before the loader -->
<script>
  window.OpsIQClient = {
    id:    "cust_1001",
    email: "[email protected]",
    name:  "Jane Smith",
    plan:  "pro"
  };
</script>
<script async src="https://YOUR-OPSIQ/widget.php?site_key=YOUR_SITE_KEY"></script>

<!-- Form B: identify later, e.g. after a client-side login -->
<script>
  window.opsiq.identify({
    id:    "cust_1001",
    email: "[email protected]",
    name:  "Jane Smith",
    plan:  "pro"
  });
</script>
⚠️
Only these forms are read: the window.OpsIQClient global, window.opsiqConfig.user, and window.opsiq.identify(). There is no OpsIQ.push(['identify', ...]) queue and no OpsIQClientSignature global — if you find either in an old note, it does nothing.

Level 2 — सर्वर-सिग्न पहचान टोकन

वास्तव में, एक ही टोकन अनुबंध व्यवस्थापक विजेट के रूप में, साथ ही customer इसके बजाय एक विषय admin एक. इसे अपने सर्वर पर साइन इन करें और इसे विजेट में पास करें। दो विवरण यह तय करते हैं कि क्या यह सत्यापित है, और दोनों गलत होने के लिए आसान हैं:

The HMAC covers the BASE64URL string, not the JSON

साइन $payload64नहीं $payloadTo make a raw JSON एक टोकन का उत्पादन करता है जो सही दिखता है और हर बार हस्ताक्षरित बेमेल के साथ अस्वीकार कर दिया जाता है।

base64url, unpadded

अनुवाद +/ दो -_ और स्ट्रिप = पैडिंग। सादे आधार64 आज जीवित रहने के लिए होता है; base64url अनुबंध है और क्या हर कोई है OpsIQ वेरिफायर और संदर्भ कनेक्टर उत्सर्जन करता है।

प्रमाणित शीर्ष स्तर पर चला जाता है

देहात site_key, iat और expयह आपके दावे के लिए है कि एक असली इंसान लॉग इन है, और OpsIQ इसके बिना टोकन को मना कर देता है।

ग्राहक आईडी अनिवार्य है

एक टोकन केवल एक ईमेल को हस्ताक्षर के रूप में सत्यापित करता है और फिर चुपचाप छोड़ दिया जाता है। हमेशा आईडी भेज दें।

शीघ्र रहें

घंटों के लिए मिनट। टोकन एक सत्र का दावा है, स्टोर करने के लिए क्रेडेंशियल नहीं है।

PHP - एक ग्राहक पहचान टोकन (यह सटीक कोड सत्यापित करता है) पर हस्ताक्षर करें
<?php
/* Server-signed customer identity. Runnable as-is: set the two constants. */
$siteKey = "YOUR_SITE_KEY";                        // Remote Sites -> Codes
$secret  = "opsiq_whsec_your_site_secret";         // Remote Sites -> Codes

$payload = json_encode([
    "site_key"      => $siteKey,
    "iat"           => time(),
    "exp"           => time() + 3600,
    "authenticated" => true,                       // TOP LEVEL - required
    "platform"      => "your-platform",
    "customer"      => [
        "id"            => (string)$user->id,      // REQUIRED
        "email"         => (string)$user->email,   // REQUIRED
        "name"          => (string)$user->name,
        "plan"          => (string)($user->plan ?? ""),
        "authenticated" => true,
    ],
], JSON_UNESCAPED_SLASHES);

/* base64url(payload) . "." . hex HMAC-SHA256 OF THAT STRING. */
$payload64 = rtrim(strtr(base64_encode($payload), "+/", "-_"), "=");
$token     = $payload64 . "." . hash_hmac("sha256", $payload64, $secret);

/* Hand it to the widget either way: */
printf(
    '<script async src="https://YOUR-OPSIQ/widget.php?site_key=%s&identity_token=%s"></script>',
    rawurlencode($siteKey),
    rawurlencode($token)
);
// or, if the loader is already on the page:
// echo '<script>window.opsiqConfig = window.opsiqConfig || {}; '
//    . 'window.opsiqConfig.identityToken = ' . json_encode($token) . ';</script>';
🚫
केवल सर्वर पर साइन इन करें। ब्राउज़र में एक टोकन माइन किया गया हैJavaScriptप्रत्येक आगंतुक को साइट को गुप्त रूप से भेजता है, जो किसी भी ग्राहक को व्यक्तिगत करने की क्षमता रखता है।

एक ही अनुबंध, तीन सतहों

ग्राहक चैट अपनी साइट पर

ग्राहक विषय, के रूप में पारित identity_token ऊपर विजेट.php को कवर किया गया। वैकल्पिक: स्निपेट ए और कनेक्टर के साथ चैट पहले से ही ग्राहकों को स्वयं सत्यापित करती है (प्रमाण के साथ बुकिंग या ऑर्डर नंबर, या ऑर्डर करने से पहले एक ईमेल कोड)। रिमोट साइट्स, कोड, सी स्वचालित मान्यता के लिए कोड उत्पन्न करता है ग्राहक पहले से लॉग इन अपनी साइट पर।

व्यवस्थापक अपने बैकएंड के अंदर चैट करें

व्यवस्थापक विषय, opsiq/embed/admin_widget. php. सैम हस्ताक्षरकर्ता, विभिन्न विषय कुंजी। देखें "Admin विजेट अपने बैकएंड में"।

समर्थन पोर्टल गहरी लिंक

एक सख्त संस्करण: वही दावा प्लस जेटी और एकल उपयोग: ट्रूस, और एक120-दूसरे जीवन, क्योंकि टोकन एक में यात्रा करते हैंURLऔर एक बार खर्च करने योग्य होना चाहिए। इसे हाथ से रोल न करें। सेटिंग्स, सपोर्ट पोर्टल में आपकी भाषा के लिए तैयार स्निपेट है, और जब आपका खाता क्षेत्र इस सर्वर पर चलता है तो यह मंच आपके लिए मिनट देता है।

क्या होगा अगर कोई आगंतुक कुकीज़ को साफ़ करता है?+

जब तक उन्हें फिर से पहचान नहीं मिलती तब तक वे अज्ञात हो जाते हैं। OpsIQ ग्राहक प्रोफ़ाइल में नए अनाम रिकॉर्ड को उस क्षण को एक संकेत या टोकन आने के लिए जोड़ता है।

क्यों मेरी टोकन आगंतुक लॉग के लिए सत्यापित करता है लेकिन नहीं खाते के सवालों के लिए?+

यह स्तर है1/ स्तर2विभाजन। एक निर्दिष्ट संकेत आगंतुक लॉग को भरता है और कुछ नहीं करता है। खाता उत्तरों को सत्यापित हस्ताक्षर की आवश्यकता होती है।

डेवलपर

हर मंच के लिए कोड

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

यह कैसे काम करता है

1
ग्राहक अपने ऐप में समर्थन क्लिक करता है

उदाहरण के लिए, अपने सर्वर पर एक छोटे से मार्ग पर लिंक अंक /support-portal. कभी भी एक लिंक पर जो पहले से ही एक टोकन होता है: पेज सोर्स, ब्राउज़र इतिहास और रेफरर हेडर के माध्यम से पृष्ठ लीक में एक टोकन।

2
मार्ग की जाँच जो साइन इन है

यह ग्राहक को अपने सत्र से पढ़ता है। एक आगंतुक जो साइन इन नहीं किया जाता है वह पहले लॉगिन पर भेज दिया जाता है और बाद में वापस आने के लिए वापस आता है।

3
मार्ग एक बार टोकन संकेत करता है

एक मानक HS256 JWT ने इस वर्कस्पेस के हस्ताक्षर रहस्य के साथ हस्ताक्षर किए, जो केवल आपके सर्वर को रखता है। यह समाप्त होने के बाद समाप्त हो जाता है। 120 सेकंड और एक बार इस्तेमाल किया जा सकता है।

4
मार्ग पोर्टल पर रीडायरेक्ट करता है

पोर्टल पृष्ठ पर ग्राहक तब से आया जब पोर्टल ने एक के लिए पूछा ()opsiq_portal_return, केवल अपने पोर्टल पते के अंदर स्वीकार किए जाते हैं, अन्यथा पोर्टल घर। जवाब में रेफरर-नीति होती है: कोई-रेफ़र और कैश-कंट्रोल नहीं: कोई स्टोर नहीं।

5
पोर्टल ग्राहक को सत्यापित करता है और संकेत देता है

हस्ताक्षर, कार्यक्षेत्र कुंजी, समाप्ति और एक बार आईडी की जांच की जाती है। ग्राहक ईमेल द्वारा पाया जाता है या बनाया जाता है और उनके मौजूदा अनुरोधों को उनसे मेल खाता है।

दावा द्वारा टोकन, दावे से दावा

site_key

आपकी वर्कस्पेस कुंजी। किसी अन्य कार्यस्थान के लिए किए गए एक टोकन को भी इनकार कर दिया जाता है जब इसे सही ढंग से हस्ताक्षर किया जाता है।

iat / exp

जारी किया गया और समाप्ति, सेकंड में। पोर्टल टोकन जीवन 120 सेकंड: यह केवल एक ही समय में रहने के लिए है।

प्रमाणित: सच

आपके ऐप का बयान यह है कि वास्तव में इस व्यक्ति पर हस्ताक्षर किए गए हैं।

Jti + single_use: True

एक यादृच्छिक आईडी और एक बार ध्वज। उसी लिंक का दो बार उपयोग नहीं किया जा सकता है।

मंच

जहां ग्राहक (Php) से आया, उसके लिए एक नि: शुल्क लेबल wordpress, whmcs...)। ग्राहक की प्रोफ़ाइल में दिखाया गया है।

ग्राहक आईडी और ग्राहक. email

दोनों की आवश्यकता है। आईडी आपके ऐप का अपना ग्राहक आईडी है; ईमेल यह है कि पोर्टल ग्राहक को कैसे ढूंढता है और उनके अनुरोधों से मेल खाता है।

ग्राहक का नाम / external_id

वैकल्पिक प्रदर्शन का नाम, और आईडी OpsIQ अपने प्लेटफॉर्म के खिलाफ स्टोर।

सेटअप

1
मार्ग की प्रतिलिपि

सेटिंग्स, सपोर्ट पोर्टल, अपने ऐप से निर्बाध साइन-इन चुनें। अपना ऐप क्या चल रहा है; सूची के नीचे कोड में आपका पोर्टल पता और वर्कस्पेस कुंजी है जो उस प्लेटफॉर्म के लिए नंबर वाले नोटों के साथ भरा गया है।

2
गुप्त पहले से ही कोड में है

इस कार्यस्थान के हस्ताक्षर गुप्त मार्ग में शामिल है, इसलिए यह चिपका हुआ काम करता है। इसे फ़ाइल से बाहर रखने के लिए सेट करें OPSIQ_SITE_SECRET (या आपके ढांचे की सेटिंग) सर्वर पर इसके बजाय: उस मूल्य का पहले इस्तेमाल किया जाता है। कभी भी किसी पृष्ठ में मार्ग न डालें, JavaScriptकिसी भी व्यक्ति को गुप्त रखने से ग्राहक के रूप में साइन इन कर सकते हैं।

3
अपने समर्थन बटन को मार्ग में लिंक करें

उदाहरण के लिए https://your-app.com/support-portal.

4
पोर्टल का साइन इन बटन बनाएं अपने ऐप का उपयोग करें

पोर्टल स्टूडियो, साइन-इन पृष्ठ, मेरी वेबसाइट के लॉगिन का उपयोग करें, आपका लॉग इन पेज URL: इसे उसी मार्ग पर सेट करें। पोर्टल जोड़ता है opsiq_portal_return अपने आप में और मार्ग ग्राहक को उस पृष्ठ पर वापस लाती है, जिसमें हस्ताक्षर किए गए हैं।

5
वैकल्पिक: हर जगह साइन आउट करें

सेटिंग्स, सपोर्ट पोर्टल हर जगह साइन आउट करें: आपका ऐप साइन-आउट URL, इसलिए पोर्टल से बाहर संकेत करने के लिए ग्राहक को आपके ऐप से बाहर भी इंगित करता है।

6
टेस्ट

उसी सेटिंग पृष्ठ पर एक हस्ताक्षरित परीक्षण लिंक उत्पन्न करने के लिए पोर्टल की तरफ अकेले चेक करें, फिर अपने ऐप में साइन किए जाने के दौरान अपना मार्ग खोल दें।

WHMCS कोई कोड की आवश्यकता नहीं है: WHMCS दूरस्थ साइटों से हुक पहले से ही ग्राहकों को पोर्टल में संकेत देते हैं और उन्हें पृष्ठ पर वापस लाते हैं।
💡
संकेतन रहस्य आपके लिए भरा हुआ है। सेटिंग्स में, सपोर्ट पोर्टल, आपके ऐप से निर्बाध साइन-इन, हर उदाहरण पहले ही इस साइट का अपना रहस्य शामिल है, इसलिए कोड पेस्ट के रूप में काम करता है: प्रतिलिपि बनाने या कॉन्फ़िगर करने के लिए कुछ भी नहीं है। इस पृष्ठ पर दिए गए उदाहरण opsiq_whsec_YOUR_SITE_SECRET प्रत्येक उदाहरण के लिए दिखता है OPSIQ_SITE_SECRET (या आपके ढांचे की अपनी सेटिंग, जिसका नाम इसके नोट्स में रखा गया है) पहले सर्वर पर और इसका उपयोग करता है कि जब यह सेट हो जाता है तो आप जब भी चाहें फ़ाइल से बाहर निकलने के लिए क्लिक कर सकते हैं, उदाहरण के लिए इसे संपादन कोड के बिना घुमाने के लिए। किसी भी तरह फ़ाइल केवल अपने सर्वर पर चलती है: कभी भी इसे एक वेब पेज या ब्राउज़र में पेस्ट नहीं करें JavaScriptकभी-कभी इसे सार्वजनिक भंडार में नहीं लिया, क्योंकि किसी को भी गुप्त रखने से आपके ग्राहकों या कर्मचारियों में से किसी के रूप में साइन इन कर सकता है। WHMCS और Botble इसमें से कोई नहीं: WHMCS हुक में भरा रहस्य के साथ आता है, और Botble कनेक्टर पैनल इसे पुल में भर देता है।

पूरा मार्ग, मंच द्वारा

OpsIQ server (self-hosted)

1

For a self-hosted OpsIQ: the route runs on your own OpsIQ server, so there is no secret to copy. OpsIQ reads this workspace's signing secret itself.

2

Save it as a page on that server, e.g. support-portal.php, and point your "Support" link at it.

3

Replace the body of $currentUser so it returns your signed-in customer (id, email, name), or null for a guest, and /login with your login page.

OpsIQ server (self-hosted)
/* OpsIQ server (self-hosted) — save as e.g. support-portal.php on your OpsIQ
 * server and link your "Support" button to it. OpsIQ reads the workspace's
 * signing secret itself, so there is nothing secret to copy. */

if (!function_exists('opsiq_portal_signed_url_for_site')) {
    require_once '/path/to/opsiq/opsiq/opsiq.portal_identity.php';
}

// 1. WHO IS SIGNED IN — replace the body. Return null for a guest.
$currentUser = static function (): ?array {
    $u = $_SESSION['user'] ?? null;
    return is_array($u) && !empty($u['id']) && !empty($u['email']) ? $u : null;
};
$user = $currentUser();
if (!$user) {
    header('Location: /login?return=' . urlencode($_SERVER['REQUEST_URI'] ?? '/'), true, 302);
    exit;
}

// 2. WHERE TO LAND — the portal page they came from, only if it is on the portal.
$portal = 'https://YOUR-OPSIQ/portal/your-workspace';
$back   = preg_replace('/#.*$/', '', (string)($_GET['opsiq_portal_return'] ?? ''));
$target = ($back === $portal || strpos($back, $portal . '/') === 0 || strpos($back, $portal . '?') === 0)
    ? $back : $portal;

// 3. MINT a one-time link (120 s) for this workspace.
$url = opsiq_portal_signed_url_for_site($target, 'YOUR_SITE_KEY', [
    'id'    => $user['id'],        // REQUIRED
    'email' => $user['email'],     // REQUIRED
    'name'  => $user['name'] ?? '',
], 120);
if (!$url) {
    http_response_code(503);       // fail closed: never send a customer to a guessed address
    exit('Support portal is not configured yet.');
}

header('Referrer-Policy: no-referrer');   // the token is in the URL
header('Cache-Control: no-store');
header('Location: ' . $url, true, 302);
exit;

PHP (no dependencies)

1

Save the snippet as a page in your app, e.g. support-portal.php.

2

This site's signing secret is already filled in, so the code works as pasted. To keep it out of the file, set OPSIQ_SITE_SECRET in the environment (hosting panel, .env or SetEnv) on the server instead: that value is used first. Keep this file on the server and never commit it to a public repository.

3

Replace the body of $currentUser with your app's signed-in customer, and /login with your login page.

PHP (no dependencies)
/* support-portal.php — a redirect route in your own app.
 * Mint at CLICK time: a token baked into an href leaks through page source,
 * browser history and the Referer header. */

// 1. WHO IS SIGNED IN — replace the body with your app's own session. Return null for a guest.
$currentUser = static function (): ?array {
    $u = $_SESSION['user'] ?? null;            // e.g. ['id' => 7, 'email' => '…', 'name' => '…']
    return is_array($u) && !empty($u['id']) && !empty($u['email']) ? $u : null;
};
$user = $currentUser();
if (!$user) {                                  // a guest: sign in first, then come back here
    header('Location: /login?return=' . urlencode($_SERVER['REQUEST_URI'] ?? '/'), true, 302);
    exit;
}

// 2. THE SECRET — server-side only. Fail closed without it.
$secret = (string) (getenv('OPSIQ_SITE_SECRET') ?: 'opsiq_whsec_YOUR_SITE_SECRET');   // this site's secret; the environment wins when set
if ($secret === '') { http_response_code(503); exit('Support portal is not configured.'); }

// 3. WHERE TO LAND — the portal page they came from, only if it is on the portal.
$portal = 'https://YOUR-OPSIQ/portal/your-workspace';
$back   = preg_replace('/#.*$/', '', (string)($_GET['opsiq_portal_return'] ?? ''));
$target = ($back === $portal || strpos($back, $portal . '/') === 0 || strpos($back, $portal . '?') === 0)
    ? $back : $portal;

// 4. MINT the token (standard HS256 JWT).
$b64 = static function ($v) {
    return rtrim(strtr(base64_encode(json_encode($v, JSON_UNESCAPED_SLASHES)), '+/', '-_'), '=');
};
$now = time();
$signing = $b64(['alg' => 'HS256', 'typ' => 'JWT']) . '.' . $b64([
    'site_key'      => 'YOUR_SITE_KEY',
    'iat'           => $now,
    'exp'           => $now + 120,                // URL-borne tokens live ~2 minutes
    'authenticated' => true,
    'jti'           => bin2hex(random_bytes(16)),
    'single_use'    => true,                      // one-time link; replay is refused
    'platform'      => 'php',
    'customer'      => [
        'id'          => $user['id'],             // REQUIRED
        'email'       => $user['email'],          // REQUIRED
        'name'        => $user['name'] ?? '',
        'external_id' => (string) $user['id'],
    ],
]);
$token = $signing . '.' . rtrim(strtr(base64_encode(hash_hmac('sha256', $signing, $secret, true)), '+/', '-_'), '=');

// 5. GO. The default is https://YOUR-OPSIQ/portal/your-workspace?site_key=YOUR_SITE_KEY&identity_token=…
$url = $target . (strpos($target, '?') === false ? '?' : '&')
     . 'site_key=' . rawurlencode('YOUR_SITE_KEY') . '&identity_token=' . rawurlencode($token);
header('Referrer-Policy: no-referrer');       // the token is in the URL
header('Cache-Control: no-store');
header('Location: ' . $url, true, 302);
exit;

Laravel

1

Run: composer require firebase/php-jwt

2

This site's signing secret is already filled in, so the code works as pasted. To keep it out of the file, set OPSIQ_SITE_SECRET=… in .env with 'opsiq' => ['site_secret' => env('OPSIQ_SITE_SECRET')] in config/services.php on the server instead: that value is used first. Keep this file on the server and never commit it to a public repository.

3

Paste the route into routes/web.php. The auth middleware sends guests to your login and back.

Laravel
/* routes/web.php — composer require firebase/php-jwt
 * Link customers to  route('support.portal') */

Route::get('/support-portal', function (\Illuminate\Http\Request $request) {
    $user   = $request->user();                                   // guaranteed by ->middleware('auth')
    $secret = (string) (config('services.opsiq.site_secret') ?: 'opsiq_whsec_YOUR_SITE_SECRET');   // this site's secret; config wins when set
    abort_if($secret === '', 503, 'Support portal is not configured.');   // fail closed

    // Where to land: the portal page they came from, only if it is on the portal.
    $portal = 'https://YOUR-OPSIQ/portal/your-workspace';
    $back   = preg_replace('/#.*$/', '', (string) $request->query('opsiq_portal_return', ''));
    $target = ($back === $portal || str_starts_with($back, $portal . '/') || str_starts_with($back, $portal . '?'))
        ? $back : $portal;

    $now   = time();
    $token = \Firebase\JWT\JWT::encode([
        'site_key'      => 'YOUR_SITE_KEY',
        'iat'           => $now,
        'exp'           => $now + 120,
        'authenticated' => true,
        'jti'           => bin2hex(random_bytes(16)),
        'single_use'    => true,
        'platform'      => 'laravel',
        'customer'      => [
            'id'          => $user->id,          // REQUIRED
            'email'       => $user->email,       // REQUIRED
            'name'        => $user->name,
            'external_id' => (string) $user->id,
        ],
    ], $secret, 'HS256');

    // Default target: https://YOUR-OPSIQ/portal/your-workspace?site_key=YOUR_SITE_KEY&identity_token=…
    $url = $target . (str_contains($target, '?') ? '&' : '?')
         . 'site_key=' . rawurlencode('YOUR_SITE_KEY') . '&identity_token=' . rawurlencode($token);

    return redirect()->away($url)
        ->header('Referrer-Policy', 'no-referrer')
        ->header('Cache-Control', 'no-store');
})->middleware('auth')->name('support.portal');

WordPress

1

This site's signing secret is already filled in, so the code works as pasted. To keep it out of the file, add define('OPSIQ_SITE_SECRET', '…'); to wp-config.php, above "That's all, stop editing", instead: that value is used first. Keep this file on the server and never commit it to a public repository.

2

Paste the snippet into your theme's functions.php, or a small plugin (Code Snippets works).

3

Create an empty page with the slug support-portal and link your "Support" menu item to it. Guests are sent to wp-login and back.

WordPress
/* functions.php, or a small plugin. Create an empty page with the slug
 * "support-portal" and link customers to it. */

add_action('template_redirect', function () {
    if (!is_page('support-portal')) return;
    if (!is_user_logged_in()) { auth_redirect(); }                 // login, then back here

    $secret = defined('OPSIQ_SITE_SECRET') ? OPSIQ_SITE_SECRET : 'opsiq_whsec_YOUR_SITE_SECRET';   // this site's secret; wp-config.php wins when set
    if ($secret === '') wp_die('Support portal is not configured.', '', ['response' => 503]);   // fail closed

    // Where to land: the portal page they came from, only if it is on the portal.
    $portal = 'https://YOUR-OPSIQ/portal/your-workspace';
    $back   = preg_replace('/#.*$/', '', isset($_GET['opsiq_portal_return']) ? wp_unslash((string) $_GET['opsiq_portal_return']) : '');
    $target = ($back === $portal || strpos($back, $portal . '/') === 0 || strpos($back, $portal . '?') === 0)
        ? $back : $portal;

    $user = wp_get_current_user();
    $b64  = static function ($v) {
        return rtrim(strtr(base64_encode(wp_json_encode($v)), '+/', '-_'), '=');
    };
    $now     = time();
    $signing = $b64(['alg' => 'HS256', 'typ' => 'JWT']) . '.' . $b64([
        'site_key'      => 'YOUR_SITE_KEY',
        'iat'           => $now,
        'exp'           => $now + 120,
        'authenticated' => true,
        'jti'           => bin2hex(random_bytes(16)),
        'single_use'    => true,
        'platform'      => 'wordpress',
        'customer'      => [
            'id'          => $user->ID,              // REQUIRED
            'email'       => $user->user_email,      // REQUIRED
            'name'        => $user->display_name,
            'external_id' => (string) $user->ID,
        ],
    ]);
    $token = $signing . '.' . rtrim(strtr(base64_encode(hash_hmac('sha256', $signing, $secret, true)), '+/', '-_'), '=');

    // Default target: https://YOUR-OPSIQ/portal/your-workspace?site_key=YOUR_SITE_KEY&identity_token=…
    $url = $target . (strpos($target, '?') === false ? '?' : '&')
         . 'site_key=' . rawurlencode('YOUR_SITE_KEY') . '&identity_token=' . rawurlencode($token);
    nocache_headers();
    header('Cache-Control: no-store');
    header('Referrer-Policy: no-referrer');
    wp_redirect($url, 302);                                       // wp_redirect, not wp_safe_redirect: the portal is another host
    exit;
});

WHMCS

Already using the OpsIQ WHMCS hook from Sites (includes/hooks/opsiq_tracker.php)? It already signs your customers into the portal and brings them back to the page they were on, so you do not need this snippet. Just set Portal Studio → Sign-in page → Your login page URL to your WHMCS client area login. Use the code below only if you are not installing that hook.
1

Save part 1 as opsiq_support.php in your WHMCS root (next to clientarea.php).

2

This site's signing secret is already filled in, so the code works as pasted. To keep it out of the hook, set $opsiq_site_secret = '…'; in configuration.php instead: that value is used first. Keep this file on the server and never commit it to a public repository.

3

Save part 2 as includes/hooks/opsiq_support_link.php to add Support to the client-area menu.

WHMCS
/* Two files you own — no OpsIQ module, nothing to keep updated.
 *
 * 1) Save this part as  opsiq_support.php  in your WHMCS root. */

require __DIR__ . '/init.php';

$ca = new WHMCS\ClientArea();
$ca->initPage();
$ca->requireLogin();                                         // login, then back here

$secret = '';
if (is_file(__DIR__ . '/configuration.php')) {
    include __DIR__ . '/configuration.php';                  // defines $opsiq_site_secret
    $secret = isset($opsiq_site_secret) ? (string) $opsiq_site_secret : 'opsiq_whsec_YOUR_SITE_SECRET';   // this site's secret; configuration.php wins when set
}
if ($secret === '') { http_response_code(503); exit('Support portal is not configured.'); }   // fail closed

// Where to land: the portal page they came from, only if it is on the portal.
$portal = 'https://YOUR-OPSIQ/portal/your-workspace';
$back   = preg_replace('/#.*$/', '', (string)($_GET['opsiq_portal_return'] ?? ''));
$target = ($back === $portal || strpos($back, $portal . '/') === 0 || strpos($back, $portal . '?') === 0)
    ? $back : $portal;

$uid    = (int) $ca->getUserID();
$client = localAPI('GetClientsDetails', ['clientid' => $uid]);

$b64 = static function ($v) {
    return rtrim(strtr(base64_encode(json_encode($v, JSON_UNESCAPED_SLASHES)), '+/', '-_'), '=');
};
$now     = time();
$signing = $b64(['alg' => 'HS256', 'typ' => 'JWT']) . '.' . $b64([
    'site_key'      => 'YOUR_SITE_KEY',
    'iat'           => $now,
    'exp'           => $now + 120,
    'authenticated' => true,
    'jti'           => bin2hex(random_bytes(16)),
    'single_use'    => true,
    'platform'      => 'whmcs',
    'customer'      => [
        'id'          => $uid,                       // REQUIRED
        'email'       => $client['email'] ?? '',     // REQUIRED
        'name'        => trim(($client['firstname'] ?? '') . ' ' . ($client['lastname'] ?? '')),
        'external_id' => (string) $uid,
    ],
]);
$token = $signing . '.' . rtrim(strtr(base64_encode(hash_hmac('sha256', $signing, $secret, true)), '+/', '-_'), '=');

// Default target: https://YOUR-OPSIQ/portal/your-workspace?site_key=YOUR_SITE_KEY&identity_token=…
$url = $target . (strpos($target, '?') === false ? '?' : '&')
     . 'site_key=' . rawurlencode('YOUR_SITE_KEY') . '&identity_token=' . rawurlencode($token);
header('Referrer-Policy: no-referrer');
header('Cache-Control: no-store');
header('Location: ' . $url, true, 302);
exit;

/* 2) And this part as  includes/hooks/opsiq_support_link.php  to put a
 *    Support entry in the client-area navbar:
 *
 *    add_hook('ClientAreaPrimaryNavbar', 1, function ($navbar) {
 *        $navbar->addChild('opsiqSupport', [
 *            'label' => 'Support',
 *            'uri'   => 'opsiq_support.php',
 *            'order' => 60,
 *        ]);
 *    });
 */

Node.js / Express

1

Run: npm i jsonwebtoken

2

This site's signing secret is already filled in, so the code works as pasted. To keep it out of the file, set OPSIQ_SITE_SECRET in the environment (.env with dotenv, or your host's settings) on the server instead: that value is used first. Keep this file on the server and never commit it to a public repository.

3

Paste the route after your session / passport setup. Change /login if your login page lives elsewhere.

Node.js / Express
// npm i jsonwebtoken
const jwt = require("jsonwebtoken");
const crypto = require("crypto");

const PORTAL = "https://YOUR-OPSIQ/portal/your-workspace";
const onPortal = (u) => u === PORTAL || u.startsWith(PORTAL + "/") || u.startsWith(PORTAL + "?");

app.get("/support-portal", (req, res) => {
  const user = req.user;                                  // set by your session / passport
  if (!user) return res.redirect("/login?next=" + encodeURIComponent(req.originalUrl));

  const secret = process.env.OPSIQ_SITE_SECRET || "opsiq_whsec_YOUR_SITE_SECRET";   // this site's secret; the environment wins when set
  if (!secret) return res.status(503).send("Support portal is not configured.");   // fail closed

  // Where to land: the portal page they came from, only if it is on the portal.
  const back = String(req.query.opsiq_portal_return || "").replace(/#.*$/, "");
  const target = onPortal(back) ? back : PORTAL;

  const token = jwt.sign({
    site_key: "YOUR_SITE_KEY",
    authenticated: true,
    jti: crypto.randomBytes(16).toString("hex"),
    single_use: true,                                     // one-time link
    platform: "node",
    customer: {
      id: user.id,                                        // REQUIRED
      email: user.email,                                  // REQUIRED
      name: user.name,
      external_id: String(user.id),
    },
  }, secret, { algorithm: "HS256", expiresIn: 120 });     // sets iat + exp

  // Default target: https://YOUR-OPSIQ/portal/your-workspace?site_key=YOUR_SITE_KEY&identity_token=…
  const url = target + (target.includes("?") ? "&" : "?")
    + "site_key=" + encodeURIComponent("YOUR_SITE_KEY") + "&identity_token=" + encodeURIComponent(token);
  res.set("Referrer-Policy", "no-referrer").set("Cache-Control", "no-store").redirect(302, url);
});

Node.js (no dependencies)

1

No packages needed. This site's signing secret is already filled in, so the code works as pasted. To keep it out of the file, set OPSIQ_SITE_SECRET in the environment on the server instead: that value is used first. Keep this file on the server and never commit it to a public repository.

2

Replace currentUser() with your app's signed-in customer, then call supportPortal(req, res) for GET /support-portal in your server.

Node.js (no dependencies)
// No packages needed — Node's own crypto is enough.
const crypto = require("crypto");

const PORTAL = "https://YOUR-OPSIQ/portal/your-workspace";
const b64 = (obj) => Buffer.from(JSON.stringify(obj)).toString("base64url");

// 1. WHO IS SIGNED IN — replace with your app's session lookup. Return null for a guest.
function currentUser(req) {
  return req.user || null;                                // { id, email, name }
}

// GET /support-portal
function supportPortal(req, res) {
  const here = new URL(req.url, "http://local");
  const user = currentUser(req);
  if (!user) {                                            // a guest: sign in first, then come back
    res.writeHead(302, { Location: "/login?next=" + encodeURIComponent(req.url) });
    return res.end();
  }
  const secret = process.env.OPSIQ_SITE_SECRET || "opsiq_whsec_YOUR_SITE_SECRET";   // this site's secret; the environment wins when set
  if (!secret) { res.writeHead(503); return res.end("Support portal is not configured."); }

  // Where to land: the portal page they came from, only if it is on the portal.
  const back = (here.searchParams.get("opsiq_portal_return") || "").replace(/#.*$/, "");
  const target = (back === PORTAL || back.startsWith(PORTAL + "/") || back.startsWith(PORTAL + "?")) ? back : PORTAL;

  const now = Math.floor(Date.now() / 1000);
  const signing = b64({ alg: "HS256", typ: "JWT" }) + "." + b64({
    site_key: "YOUR_SITE_KEY",
    iat: now,
    exp: now + 120,
    authenticated: true,
    jti: crypto.randomBytes(16).toString("hex"),
    single_use: true,
    platform: "node",
    customer: { id: user.id, email: user.email, name: user.name, external_id: String(user.id) },
  });
  const token = signing + "." + crypto.createHmac("sha256", secret).update(signing).digest("base64url");

  // Default target: https://YOUR-OPSIQ/portal/your-workspace?site_key=YOUR_SITE_KEY&identity_token=…
  const url = target + (target.includes("?") ? "&" : "?")
    + "site_key=" + encodeURIComponent("YOUR_SITE_KEY") + "&identity_token=" + encodeURIComponent(token);
  res.writeHead(302, { Location: url, "Referrer-Policy": "no-referrer", "Cache-Control": "no-store" });
  res.end();
}

Python (Flask / FastAPI)

1

Run: pip install pyjwt (the Flask example also uses flask-login).

2

This site's signing secret is already filled in, so the code works as pasted. To keep it out of the file, set OPSIQ_SITE_SECRET in the environment on the server instead: that value is used first. Keep this file on the server and never commit it to a public repository.

3

Paste into the module that creates your app. @login_required sends guests to your login view and back.

Python (Flask / FastAPI)
# pip install pyjwt flask-login
import os, secrets, time, urllib.parse
import jwt
from flask import request, redirect, abort
from flask_login import login_required, current_user

PORTAL = "https://YOUR-OPSIQ/portal/your-workspace"

def portal_link(user, back=""):
    secret = os.environ.get("OPSIQ_SITE_SECRET") or "opsiq_whsec_YOUR_SITE_SECRET"   # this site's secret; the environment wins when set
    if not secret:
        abort(503, "Support portal is not configured.")     # fail closed
    back = back.split("#", 1)[0]
    target = back if (back == PORTAL or back.startswith(PORTAL + "/") or back.startswith(PORTAL + "?")) else PORTAL
    now = int(time.time())
    token = jwt.encode({
        "site_key": "YOUR_SITE_KEY",
        "iat": now,
        "exp": now + 120,                                   # URL-borne: ~2 minutes
        "authenticated": True,
        "jti": secrets.token_hex(16),
        "single_use": True,                                 # one-time link
        "platform": "python",
        "customer": {
            "id": user.id,                                  # REQUIRED
            "email": user.email,                            # REQUIRED
            "name": getattr(user, "name", ""),
            "external_id": str(user.id),
        },
    }, secret, algorithm="HS256")
    # Default target: https://YOUR-OPSIQ/portal/your-workspace?site_key=YOUR_SITE_KEY&identity_token=…
    return (target + ("&" if "?" in target else "?")
            + "site_key=" + urllib.parse.quote("YOUR_SITE_KEY", safe="")
            + "&identity_token=" + urllib.parse.quote(token, safe=""))

@app.route("/support-portal")
@login_required
def support_portal():
    resp = redirect(portal_link(current_user, request.args.get("opsiq_portal_return", "")), code=302)
    resp.headers["Referrer-Policy"] = "no-referrer"
    resp.headers["Cache-Control"] = "no-store"
    return resp

Django

1

Run: pip install pyjwt

2

This site's signing secret is already filled in, so the code works as pasted. To keep it out of the file, set OPSIQ_SITE_SECRET in settings.py (for example os.environ["OPSIQ_SITE_SECRET"]) on the server instead: that value is used first. Keep this file on the server and never commit it to a public repository.

3

Paste the view into views.py and add path("support-portal/", views.support_portal) to urls.py. @login_required sends guests to LOGIN_URL and back.

Django
# pip install pyjwt   —   urls.py: path("support-portal/", views.support_portal)
import secrets, time, urllib.parse
import jwt
from django.conf import settings
from django.contrib.auth.decorators import login_required
from django.http import HttpResponse, HttpResponseRedirect

PORTAL = "https://YOUR-OPSIQ/portal/your-workspace"

@login_required
def support_portal(request):
    secret = getattr(settings, "OPSIQ_SITE_SECRET", "") or "opsiq_whsec_YOUR_SITE_SECRET"   # this site's secret; settings win when set
    if not secret:                                       # fail closed
        return HttpResponse("Support portal is not configured.", status=503)

    # Where to land: the portal page they came from, only if it is on the portal.
    back = request.GET.get("opsiq_portal_return", "").split("#", 1)[0]
    target = back if (back == PORTAL or back.startswith(PORTAL + "/") or back.startswith(PORTAL + "?")) else PORTAL

    now = int(time.time())
    token = jwt.encode({
        "site_key": "YOUR_SITE_KEY",
        "iat": now,
        "exp": now + 120,
        "authenticated": True,
        "jti": secrets.token_hex(16),
        "single_use": True,
        "platform": "django",
        "customer": {
            "id": request.user.pk,                        # REQUIRED
            "email": request.user.email,                  # REQUIRED
            "name": request.user.get_full_name(),
            "external_id": str(request.user.pk),
        },
    }, secret, algorithm="HS256")

    # Default target: https://YOUR-OPSIQ/portal/your-workspace?site_key=YOUR_SITE_KEY&identity_token=…
    url = (target + ("&" if "?" in target else "?")
           + "site_key=" + urllib.parse.quote("YOUR_SITE_KEY", safe="")
           + "&identity_token=" + urllib.parse.quote(token, safe=""))
    resp = HttpResponseRedirect(url)
    resp["Referrer-Policy"] = "no-referrer"
    resp["Cache-Control"] = "no-store"
    return resp

.NET / C#

1

Run: dotnet add package System.IdentityModel.Tokens.Jwt

2

This site's signing secret is already filled in, so the code works as pasted. To keep it out of the file, set OpsIQ:SiteSecret (user-secrets, the OpsIQ__SiteSecret environment variable or Key Vault) on the server instead: that value is used first. Keep this file on the server and never commit it to a public repository.

3

Paste into Program.cs after app.UseAuthentication(). RequireAuthorization() sends guests to your login and back.

.NET / C#
// dotnet add package System.IdentityModel.Tokens.Jwt   —   Program.cs
using System.IdentityModel.Tokens.Jwt;
using System.Security.Claims;
using System.Text;
using Microsoft.IdentityModel.Tokens;

const string Portal = "https://YOUR-OPSIQ/portal/your-workspace";

app.MapGet("/support-portal", (HttpContext ctx, IConfiguration cfg) =>
{
    var secret = cfg["OpsIQ:SiteSecret"];
    if (string.IsNullOrEmpty(secret)) secret = "opsiq_whsec_YOUR_SITE_SECRET";   // this site's secret; configuration wins when set
    if (string.IsNullOrEmpty(secret))                     // fail closed
        return Results.StatusCode(503);

    var id    = ctx.User.FindFirstValue(ClaimTypes.NameIdentifier) ?? "";   // REQUIRED
    var email = ctx.User.FindFirstValue(ClaimTypes.Email) ?? "";            // REQUIRED
    var name  = ctx.User.Identity?.Name ?? "";

    // Where to land: the portal page they came from, only if it is on the portal.
    var back = (ctx.Request.Query["opsiq_portal_return"].ToString()).Split('#')[0];
    var target = (back == Portal || back.StartsWith(Portal + "/") || back.StartsWith(Portal + "?")) ? back : Portal;

    var key   = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(secret));
    var creds = new SigningCredentials(key, SecurityAlgorithms.HmacSha256);
    var now   = DateTimeOffset.UtcNow;
    var payload = new JwtPayload
    {
        { "site_key",      "YOUR_SITE_KEY" },
        { "iat",           now.ToUnixTimeSeconds() },
        { "exp",           now.AddSeconds(120).ToUnixTimeSeconds() },
        { "authenticated", true },
        { "jti",           Guid.NewGuid().ToString("N") },
        { "single_use",    true },
        { "platform",      "dotnet" },
        { "customer", new Dictionary<string, object>
            { { "id", id }, { "email", email }, { "name", name }, { "external_id", id } } },
    };
    var token = new JwtSecurityTokenHandler().WriteToken(new JwtSecurityToken(new JwtHeader(creds), payload));

    // Default target: https://YOUR-OPSIQ/portal/your-workspace?site_key=YOUR_SITE_KEY&identity_token=…
    var url = target + (target.Contains('?') ? "&" : "?")
        + "site_key=" + Uri.EscapeDataString("YOUR_SITE_KEY") + "&identity_token=" + Uri.EscapeDataString(token);
    ctx.Response.Headers["Referrer-Policy"] = "no-referrer";
    ctx.Response.Headers["Cache-Control"] = "no-store";
    return Results.Redirect(url);
}).RequireAuthorization();

Ruby on Rails

1

Add gem "jwt" to the Gemfile and run bundle install.

2

This site's signing secret is already filled in, so the code works as pasted. To keep it out of the file, set OPSIQ_SITE_SECRET in the environment (or Rails credentials) on the server instead: that value is used first. Keep this file on the server and never commit it to a public repository.

3

Save as app/controllers/support_controller.rb and add get "/support-portal", to: "support#portal" to routes.rb. Devise's authenticate_user! sends guests to login and back.

Ruby on Rails
# Gemfile: gem "jwt"   —   routes.rb: get "/support-portal", to: "support#portal"
require "jwt"
require "securerandom"
require "cgi"

class SupportController < ApplicationController
  before_action :authenticate_user!                      # login, then back here

  PORTAL = "https://YOUR-OPSIQ/portal/your-workspace"

  def portal
    secret = ENV["OPSIQ_SITE_SECRET"].presence || "opsiq_whsec_YOUR_SITE_SECRET"   # this site's secret; the environment wins when set
    return head :service_unavailable if secret.blank?    # fail closed

    # Where to land: the portal page they came from, only if it is on the portal.
    back = params[:opsiq_portal_return].to_s.split("#").first.to_s
    target = (back == PORTAL || back.start_with?(PORTAL + "/", PORTAL + "?")) ? back : PORTAL

    now = Time.now.to_i
    token = JWT.encode({
      site_key:      "YOUR_SITE_KEY",
      iat:           now,
      exp:           now + 120,
      authenticated: true,
      jti:           SecureRandom.hex(16),
      single_use:    true,
      platform:      "rails",
      customer: {
        id:          current_user.id,                    # REQUIRED
        email:       current_user.email,                 # REQUIRED
        name:        current_user.try(:name).to_s,
        external_id: current_user.id.to_s
      }
    }, secret, "HS256")

    # Default target: https://YOUR-OPSIQ/portal/your-workspace?site_key=YOUR_SITE_KEY&identity_token=…
    url = target + (target.include?("?") ? "&" : "?") +
          "site_key=#{CGI.escape("YOUR_SITE_KEY")}&identity_token=#{CGI.escape(token)}"
    response.headers["Referrer-Policy"] = "no-referrer"
    response.headers["Cache-Control"] = "no-store"
    redirect_to url, allow_other_host: true
  end
end

Java (Spring Boot)

1

Add io.jsonwebtoken:jjwt-api, jjwt-impl and jjwt-jackson (0.12+).

2

This site's signing secret is already filled in, so the code works as pasted. To keep it out of the file, set opsiq.site.secret in application.properties (for example from OPSIQ_SITE_SECRET) on the server instead: that value is used first. Keep this file on the server and never commit it to a public repository.

3

Replace currentUser() with your user lookup. With Spring Security the route must be authenticated so guests go to login and back.

Java (Spring Boot)
// io.jsonwebtoken:jjwt-api / jjwt-impl / jjwt-jackson (0.12+)
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.security.Keys;
import jakarta.servlet.http.HttpServletResponse;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
import java.security.Principal;
import java.time.Instant;
import java.util.*;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.server.ResponseStatusException;
import org.springframework.web.servlet.view.RedirectView;

@Controller
public class SupportPortalController {
    private static final String PORTAL = "https://YOUR-OPSIQ/portal/your-workspace";

    @Value("${opsiq.site.secret:opsiq_whsec_YOUR_SITE_SECRET}")   // this site's secret; opsiq.site.secret wins when set
    private String secret;

    /** WHO IS SIGNED IN — replace with your own lookup: id, email, name. */
    private Map<String, Object> currentUser(Principal principal) {
        return Map.of("id", principal.getName(), "email", principal.getName(), "name", principal.getName());
    }

    @GetMapping("/support-portal")
    public RedirectView supportPortal(Principal principal, HttpServletResponse response,
                                      @RequestParam(name = "opsiq_portal_return", defaultValue = "") String back) {
        if (principal == null) return new RedirectView("/login");               // login, then back here
        if (secret.isEmpty()) throw new ResponseStatusException(HttpStatus.SERVICE_UNAVAILABLE);   // fail closed

        // Where to land: the portal page they came from, only if it is on the portal.
        back = back.split("#", 2)[0];
        String target = (back.equals(PORTAL) || back.startsWith(PORTAL + "/") || back.startsWith(PORTAL + "?")) ? back : PORTAL;

        Map<String, Object> user = currentUser(principal);
        Map<String, Object> customer = Map.of(
            "id",          user.get("id"),                 // REQUIRED
            "email",       user.get("email"),              // REQUIRED
            "name",        user.get("name"),
            "external_id", String.valueOf(user.get("id")));

        Instant now = Instant.now();
        String token = Jwts.builder()
            .claim("site_key", "YOUR_SITE_KEY")
            .claim("authenticated", true)
            .claim("single_use", true)                     // one-time link
            .claim("platform", "java")
            .claim("customer", customer)
            .id(UUID.randomUUID().toString())              // jti
            .issuedAt(Date.from(now))
            .expiration(Date.from(now.plusSeconds(120)))
            .signWith(Keys.hmacShaKeyFor(secret.getBytes(StandardCharsets.UTF_8)), Jwts.SIG.HS256)
            .compact();

        // Default target: https://YOUR-OPSIQ/portal/your-workspace?site_key=YOUR_SITE_KEY&identity_token=…
        String url = target + (target.contains("?") ? "&" : "?")
            + "site_key=" + URLEncoder.encode("YOUR_SITE_KEY", StandardCharsets.UTF_8)
            + "&identity_token=" + URLEncoder.encode(token, StandardCharsets.UTF_8);
        response.setHeader("Referrer-Policy", "no-referrer");
        response.setHeader("Cache-Control", "no-store");
        return new RedirectView(url);
    }
}

Go

1

Run: go get github.com/golang-jwt/jwt/v5

2

This site's signing secret is already filled in, so the code works as pasted. To keep it out of the file, set OPSIQ_SITE_SECRET in the environment on the server instead: that value is used first. Keep this file on the server and never commit it to a public repository.

3

Replace currentUser() with your session lookup and register http.HandleFunc("/support-portal", supportPortal).

Go
// go get github.com/golang-jwt/jwt/v5
package main

import (
    "crypto/rand"
    "encoding/hex"
    "fmt"
    "net/http"
    "net/url"
    "os"
    "strings"
    "time"

    "github.com/golang-jwt/jwt/v5"
)

const portal = "https://YOUR-OPSIQ/portal/your-workspace"

type User struct{ ID, Email, Name string }

// WHO IS SIGNED IN — replace with your session lookup. Return nil for a guest.
func currentUser(r *http.Request) *User { return nil }

func supportPortal(w http.ResponseWriter, r *http.Request) {
    user := currentUser(r)
    if user == nil { // login, then back here
        http.Redirect(w, r, "/login?next="+url.QueryEscape(r.URL.RequestURI()), http.StatusFound)
        return
    }
    secret := os.Getenv("OPSIQ_SITE_SECRET")
    if secret == "" {
        secret = "opsiq_whsec_YOUR_SITE_SECRET" // this site's secret; the environment wins when set
    }
    if secret == "" { // fail closed
        http.Error(w, "Support portal is not configured.", http.StatusServiceUnavailable)
        return
    }

    // Where to land: the portal page they came from, only if it is on the portal.
    back := strings.SplitN(r.URL.Query().Get("opsiq_portal_return"), "#", 2)[0]
    target := portal
    if back == portal || strings.HasPrefix(back, portal+"/") || strings.HasPrefix(back, portal+"?") {
        target = back
    }

    jti := make([]byte, 16)
    rand.Read(jti)
    now := time.Now().Unix()
    token, err := jwt.NewWithClaims(jwt.SigningMethodHS256, jwt.MapClaims{
        "site_key":      "YOUR_SITE_KEY",
        "iat":           now,
        "exp":           now + 120,
        "authenticated": true,
        "jti":           hex.EncodeToString(jti),
        "single_use":    true,
        "platform":      "go",
        "customer": map[string]any{
            "id":          user.ID,    // REQUIRED
            "email":       user.Email, // REQUIRED
            "name":        user.Name,
            "external_id": fmt.Sprint(user.ID),
        },
    }).SignedString([]byte(secret))
    if err != nil {
        http.Error(w, "sign failed", http.StatusInternalServerError)
        return
    }

    // Default target: https://YOUR-OPSIQ/portal/your-workspace?site_key=YOUR_SITE_KEY&identity_token=…
    sep := "?"
    if strings.Contains(target, "?") {
        sep = "&"
    }
    w.Header().Set("Referrer-Policy", "no-referrer")
    w.Header().Set("Cache-Control", "no-store")
    http.Redirect(w, r, target+sep+"site_key="+url.QueryEscape("YOUR_SITE_KEY")+"&identity_token="+url.QueryEscape(token), http.StatusFound)
}

जब कुछ गलत हो जाता है

पोर्टल खुलता है, लेकिन साइन आउट

गुप्त या कार्यक्षेत्र कुंजी इस कार्यस्थल से मेल नहीं खाती है, टोकन की तुलना में पुरानी है 120 सेकंड (सर्वर क्लॉक की जाँच करें) या उसी लिंक को दो बार खोला गया था। एक हस्ताक्षरित परीक्षण लिंक उत्पन्न करें: यदि वह काम करता है, तो उदाहरण के साथ अपने टोकन के दावों की तुलना करें।

यह हमेशा पोर्टल घर पर उतरता है

वापसी पता आपके पोर्टल पते के अंदर नहीं था, इसलिए इसे उद्देश्य पर नजरअंदाज कर दिया गया था। पोर्टल के साथ इसकी तुलना करें URL सेटिंग में दिखाया गया है।

अतिथियों को अपने लॉगिन के बजाय त्रुटि मिलती है

अपने वास्तविक लॉगिन पेज के साथ मार्ग में /login बदलें, और यह सुनिश्चित करें कि आपका लॉग इन उस पते पर वापस आता है जिसे दिया गया था।

यह केवल कुछ ग्राहकों के लिए काम करता है

ग्राहक. email या customer. id उनके लिए खाली है। दोनों की आवश्यकता होती है।

डेवलपर

ग्राहक चैट: लॉग-इन ग्राहकों को पहचानें

वैकल्पिक। अधिकांश साइटों को इसकी आवश्यकता नहीं है: सादे चैट स्निपेट और कनेक्टर के साथ, चैट ग्राहकों को स्वयं सत्यापित करती है, जिसमें एक बुकिंग या ऑर्डर नंबर प्लस प्रूफ फॉर लुकअप्स और ऑर्डर से पहले एक ईमेल कोड होता है। इसे तब जोड़ें जब आप चाहते हैं कि ग्राहक जो आपकी साइट पर पहले से ही लॉग इन हो रहा है, स्वचालित रूप से मान्यता प्राप्त है, उनके पूरे खाते के साथ। WHMCS पहले से ही यह अपने हुक के माध्यम से करता है। रिमोट साइट्स, आपकी साइट, कोड, सी प्रिंट में भरा अपनी साइट कुंजी के साथ एक ही कोड है।

यह कैसे काम करता है

1
आपका पेज चैट टैग प्रिंट करता है

एक हस्ताक्षरित ग्राहक के लिए विजेट URL वहन करनाidentity_token=... अपने सर्वर पर हस्ताक्षर किए; एक अतिथि के लिए यह सादे टैग है। कुछ भी रहस्य पृष्ठ में नहीं है: केवल एक टोकन जो समाप्त हो जाता है।

2
चैट टोकन को सत्यापित करता है

हस्ताक्षर, कार्यक्षेत्र कुंजी और समाप्ति ग्राहक को तब प्रत्येक चैट अनुरोध पर जाना जाता है, और आपका कनेक्टर अपने स्वयं के आदेशों, बुकिंग या चालान के बारे में जवाब दे सकता है।

3
चैट घंटे के पहले ताज़ा हो जाता है

यह पृष्ठ किसके साथ है?opsiq_identity_refresh=1To make a code answer for a "success":true,"identity_token":"..."} जबकि ग्राहक को हस्ताक्षरित किया जाता है, या 401 {"success":false,"login_required": ट्र्यू} जब वे नहीं हैं। यही कारण है कि आपके पेज के कुछ प्रिंट करने से पहले रिफ्रेश हैंडलर को चलाना चाहिए।

यह पोर्टल टोकन से कैसे भिन्न होता है

लाइफटाइम

एक घंटे (exp = iat +) 3600इसके बजाय 120 सेकंड, क्योंकि यह एक पुनर्निर्देशित के बजाय हर चैट अनुरोध की सवारी करता है।

कोई jti या single_use

प्रत्येक संदेश के लिए उसी टोकन का उपयोग तब तक किया जाता है जब तक कि ताज़ा इसे बदल नहीं पाता।

सब कुछ

site_key, iat, exp, प्रमाणित: एक आवश्यक आईडी और ईमेल के साथ सच, मंच और ग्राहक। वही गुप्त, समान हस्ताक्षर।

💡
पहचान डब्ल्यूएचओ ग्राहक का कहना है। उनके आदेश, बुकिंग या चालान एक कनेक्टर के माध्यम से चैट तक पहुंचते हैं: वह जो आपके प्लेटफॉर्म की कॉल करता है API, या जब आपका प्लेटफॉर्म नहीं है APIएक कनेक्टर प्लस इसकी पुल फ़ाइल (कनेक्टर बिल्डर एक बनाता है)।
💡
संकेतन रहस्य आपके लिए भरा हुआ है। दूरस्थ साइट्स में, आपकी साइट, कोड, सी, हर उदाहरण पहले से ही इस साइट के अपने रहस्य को शामिल करते हैं, इसलिए कोड पेस्ट के रूप में काम करता है: प्रतिलिपि बनाने या कॉन्फ़िगर करने के लिए कुछ भी नहीं है। इस पृष्ठ पर दिए गए उदाहरणों में दिखाया गया है कि यह साइट पहले से मौजूद है। opsiq_whsec_YOUR_SITE_SECRET प्रत्येक उदाहरण के लिए दिखता है OPSIQ_SITE_SECRET (या आपके ढांचे की अपनी सेटिंग, जिसका नाम इसके नोट्स में रखा गया है) पहले सर्वर पर और इसका उपयोग करता है कि जब यह सेट हो जाता है तो आप जब भी चाहें फ़ाइल से बाहर निकलने के लिए क्लिक कर सकते हैं, उदाहरण के लिए इसे संपादन कोड के बिना घुमाने के लिए। किसी भी तरह फ़ाइल केवल अपने सर्वर पर चलती है: कभी भी इसे एक वेब पेज या ब्राउज़र में पेस्ट नहीं करें JavaScriptकभी-कभी इसे सार्वजनिक भंडार में नहीं लिया, क्योंकि किसी को भी गुप्त रखने से आपके ग्राहकों या कर्मचारियों में से किसी के रूप में साइन इन कर सकता है। WHMCS और Botble इसमें से कोई नहीं: WHMCS हुक में भरा रहस्य के साथ आता है, और Botble कनेक्टर पैनल इसे पुल में भर देता है।

पूरा कोड, प्लेटफॉर्म द्वारा

WHMCS

Nothing to add: the WHMCS hook in Option 1 already signs your signed-in clients into the chat, refreshes the token on long visits, and signs staff into Admin Chat. No connector is needed for this.
1

Install the Option 1 hook as includes/hooks/opsiq_tracker.php. Do not also paste the plain chat tag.

2

Optional: add the WHMCS connector under Connectors if you also want the chat to answer about invoices, services and tickets. Identity works without it.

includes/hooks/opsiq_tracker.php
/* WHMCS: no extra code. Option 1 (the All-in-One WHMCS Hook) signs the signed-in
 * client into Client Chat, answers ?opsiq_identity_refresh=1 and signs staff into
 * Admin Chat. No connector is needed for identity. */

Botble (connector bridge)

Nothing to add for bookings: the Botble connector takes bookings as a guest checkout and finds existing bookings by booking number and proof, so guests do not need to sign in. Admins are signed in through the bridge (op=admin_embed).
1

Install the Botble connector under Connectors, copy its bridge file from the connector panel and upload it to public/. The panel fills in OPSIQ_HOST, OPSIQ_SITE_KEY and OPSIQ_SITE_SECRET for you.

2

Botble has no API, so the bridge file is how the chat reads rooms and takes bookings. To also recognise a guest who is already signed in on the hotel site, use the Laravel option with your customer guard.

public/opsiq-botble-bridge.php
/* Botble: no extra code for bookings.
 * The connector books as a guest checkout and finds bookings by booking number + proof.
 * In public/opsiq-botble-bridge.php fill OPSIQ_HOST, OPSIQ_SITE_KEY and OPSIQ_SITE_SECRET.
 * Admins: op=admin_embed */

PHP (no dependencies)

1

Save as opsiq-chat.php. This site's signing secret is already filled in, so the code works as pasted. To keep it out of the file, set OPSIQ_SITE_SECRET in the environment on the server instead: that value is used first. Keep this file on the server and never commit it to a public repository.

2

At the very top of every page (or your front controller), before any output: require 'opsiq-chat.php'; opsiq_chat_refresh();

3

Just before </body> on every page: <?= opsiq_chat_tag() ?> — it replaces the plain chat tag. Replace opsiq_chat_user() with your signed-in customer.

opsiq-chat.php
<?php
/* opsiq-chat.php — signed-in customers for OpsIQ Client Chat. */

// WHO IS SIGNED IN — replace the body with your app's session. Return null for a guest.
function opsiq_chat_user(): ?array
{
    $u = $_SESSION['user'] ?? null;               // e.g. ['id' => 7, 'email' => '…', 'name' => '…']
    return is_array($u) && !empty($u['id']) && !empty($u['email']) ? $u : null;
}

function opsiq_chat_token(array $u): string
{
    $secret = (string) (getenv('OPSIQ_SITE_SECRET') ?: 'opsiq_whsec_YOUR_SITE_SECRET');   // this site's secret; the environment wins when set
    if ($secret === '') return '';                           // fail closed: plain chat, no identity
    $b64 = static fn($v) => rtrim(strtr(base64_encode(json_encode($v, JSON_UNESCAPED_SLASHES)), '+/', '-_'), '=');
    $now = time();
    $signing = $b64(['alg' => 'HS256', 'typ' => 'JWT']) . '.' . $b64([
        'site_key'      => 'YOUR_SITE_KEY',
        'iat'           => $now,
        'exp'           => $now + 3600,                      // the widget refreshes before this
        'authenticated' => true,
        'platform'      => 'php',
        'customer'      => [
            'id'          => $u['id'],                       // REQUIRED
            'email'       => $u['email'],                    // REQUIRED
            'name'        => $u['name'] ?? '',
            'external_id' => (string) $u['id'],
        ],
    ]);
    return $signing . '.' . rtrim(strtr(base64_encode(hash_hmac('sha256', $signing, $secret, true)), '+/', '-_'), '=');
}

// Call at the top of every page, before any output.
function opsiq_chat_refresh(): void
{
    if (empty($_GET['opsiq_identity_refresh'])) return;
    header('Content-Type: application/json; charset=utf-8');
    header('Cache-Control: no-store');
    $u = opsiq_chat_user();
    $t = $u ? opsiq_chat_token($u) : '';
    if ($t === '') { http_response_code(401); echo json_encode(['success' => false, 'login_required' => true]); exit; }
    echo json_encode(['success' => true, 'role' => 'customer', 'identity_token' => $t]);
    exit;
}

// Print before </body> on every page, instead of the plain chat tag.
function opsiq_chat_tag(): string
{
    $src = 'https://YOUR-OPSIQ/widget.php?site_key=YOUR_SITE_KEY';
    $u = opsiq_chat_user();
    $t = $u ? opsiq_chat_token($u) : '';
    if ($t !== '') $src .= '&identity_token=' . rawurlencode($t);
    return '<script async src="' . htmlspecialchars($src, ENT_QUOTES) . '" data-opsiq-widget="client-chat"></script>';
}

Laravel

1

Run: composer require firebase/php-jwt. This site's signing secret is already filled in, so the code works as pasted. To keep it out of the file, set OPSIQ_SITE_SECRET=… in .env with 'opsiq' => ['site_secret' => env('OPSIQ_SITE_SECRET')] in config/services.php on the server instead: that value is used first. Keep this file on the server and never commit it to a public repository.

2

Save the class as app/Support/OpsiqChat.php, and add the small OpsiqChatRefresh middleware from the bottom of the code to the web group, so the widget can refresh its token on any page.

3

In your main Blade layout, just before </body>: {!! \App\Support\OpsiqChat::tag() !!}

app/Support/OpsiqChat.php
<?php
// app/Support/OpsiqChat.php — composer require firebase/php-jwt
namespace App\Support;

use Firebase\JWT\JWT;

final class OpsiqChat
{
    public static function token(): string
    {
        $user = auth()->user();
        $secret = (string) (config('services.opsiq.site_secret') ?: 'opsiq_whsec_YOUR_SITE_SECRET');   // this site's secret; config wins when set
        if (!$user || $secret === '') return '';                 // guest, or not configured
        $now = time();
        return JWT::encode([
            'site_key'      => 'YOUR_SITE_KEY',
            'iat'           => $now,
            'exp'           => $now + 3600,
            'authenticated' => true,
            'platform'      => 'laravel',
            'customer'      => [
                'id'          => $user->id,                      // REQUIRED
                'email'       => $user->email,                   // REQUIRED
                'name'        => $user->name,
                'external_id' => (string) $user->id,
            ],
        ], $secret, 'HS256');
    }

    /** For Blade: {!! \App\Support\OpsiqChat::tag() !!} before </body>. */
    public static function tag(): string
    {
        $src = 'https://YOUR-OPSIQ/widget.php?site_key=YOUR_SITE_KEY';
        $t = self::token();
        if ($t !== '') $src .= '&identity_token=' . rawurlencode($t);
        return '<script async src="' . e($src) . '" data-opsiq-widget="client-chat"></script>';
    }
}

/* Refresh: the widget asks ?opsiq_identity_refresh=1 on the page it is on.
 * Laravel 11+ — bootstrap/app.php:
 *
 *   ->withMiddleware(function ($middleware) {
 *       $middleware->web(append: \App\Http\Middleware\OpsiqChatRefresh::class);
 *   })
 *
 * app/Http/Middleware/OpsiqChatRefresh.php:
 *
 *   public function handle($request, \Closure $next) {
 *       if (!$request->query('opsiq_identity_refresh')) return $next($request);
 *       $t = \App\Support\OpsiqChat::token();
 *       return $t === ''
 *           ? response()->json(['success' => false, 'login_required' => true], 401)->header('Cache-Control', 'no-store')
 *           : response()->json(['success' => true, 'role' => 'customer', 'identity_token' => $t])->header('Cache-Control', 'no-store');
 *   }
 */

WordPress / WooCommerce

1

This site's signing secret is already filled in, so the code works as pasted. To keep it out of the file, add define('OPSIQ_SITE_SECRET', '…'); to wp-config.php instead: that value is used first. Keep this file on the server and never commit it to a public repository.

2

Paste into your theme's functions.php or a small plugin. It prints the chat itself, so remove the plain chat tag if you added one.

3

For WooCommerce orders in the chat, add the WooCommerce connector under Connectors.

functions.php
/* functions.php or a small plugin — OpsIQ Client Chat with signed-in customers. */

if (!defined('OPSIQ_SITE_SECRET')) define('OPSIQ_SITE_SECRET', 'opsiq_whsec_YOUR_SITE_SECRET');   // this site's secret; wp-config.php wins when set

function opsiq_chat_token(): string {
    if (!is_user_logged_in() || !defined('OPSIQ_SITE_SECRET') || OPSIQ_SITE_SECRET === '') return '';
    $u   = wp_get_current_user();
    $b64 = static fn($v) => rtrim(strtr(base64_encode(wp_json_encode($v)), '+/', '-_'), '=');
    $now = time();
    $signing = $b64(['alg' => 'HS256', 'typ' => 'JWT']) . '.' . $b64([
        'site_key'      => 'YOUR_SITE_KEY',
        'iat'           => $now,
        'exp'           => $now + 3600,
        'authenticated' => true,
        'platform'      => 'wordpress',
        'customer'      => [
            'id'          => $u->ID,                     // REQUIRED
            'email'       => $u->user_email,             // REQUIRED
            'name'        => $u->display_name,
            'external_id' => (string) $u->ID,
        ],
    ]);
    return $signing . '.' . rtrim(strtr(base64_encode(hash_hmac('sha256', $signing, OPSIQ_SITE_SECRET, true)), '+/', '-_'), '=');
}

// Refresh: the widget asks ?opsiq_identity_refresh=1 on the page it is on.
add_action('init', function () {
    if (empty($_GET['opsiq_identity_refresh'])) return;
    nocache_headers();
    $t = opsiq_chat_token();
    if ($t === '') wp_send_json(['success' => false, 'login_required' => true], 401);
    wp_send_json(['success' => true, 'role' => 'customer', 'identity_token' => $t]);
});

// The chat tag, on every front-end page.
add_action('wp_footer', function () {
    $src = 'https://YOUR-OPSIQ/widget.php?site_key=YOUR_SITE_KEY';
    $t = opsiq_chat_token();
    if ($t !== '') $src .= '&identity_token=' . rawurlencode($t);
    echo '<script async src="' . esc_url($src) . '" data-opsiq-widget="client-chat"></script>';
});

Node.js / Express

1

Run: npm i jsonwebtoken. This site's signing secret is already filled in, so the code works as pasted. To keep it out of the file, set OPSIQ_SITE_SECRET in the environment on the server instead: that value is used first. Keep this file on the server and never commit it to a public repository.

2

app.use(opsiqChat) after your session / passport middleware. It answers the refresh and sets res.locals.opsiqChatTag.

3

Print res.locals.opsiqChatTag (unescaped) just before </body> in your layout, instead of the plain chat tag.

opsiq-chat.js
// opsiq-chat.js — npm i jsonwebtoken
const jwt = require("jsonwebtoken");

function opsiqChatToken(user) {
  const secret = process.env.OPSIQ_SITE_SECRET || "opsiq_whsec_YOUR_SITE_SECRET";   // this site's secret; the environment wins when set
  if (!user || !secret) return "";
  return jwt.sign({
    site_key: "YOUR_SITE_KEY",
    authenticated: true,
    platform: "node",
    customer: { id: user.id, email: user.email, name: user.name, external_id: String(user.id) },  // id + email REQUIRED
  }, secret, { algorithm: "HS256", expiresIn: 3600 });     // sets iat + exp
}

// app.use(opsiqChat) — after your session / passport middleware.
function opsiqChat(req, res, next) {
  const token = opsiqChatToken(req.user);
  if (req.query.opsiq_identity_refresh) {                  // the widget refreshing on this page
    res.set("Cache-Control", "no-store");
    return token
      ? res.json({ success: true, role: "customer", identity_token: token })
      : res.status(401).json({ success: false, login_required: true });
  }
  const src = "https://YOUR-OPSIQ/widget.php?site_key=YOUR_SITE_KEY" + (token ? "&identity_token=" + encodeURIComponent(token) : "");
  res.locals.opsiqChatTag = '<script async src="' + src.replace(/"/g, """) + '" data-opsiq-widget="client-chat"></script>';
  next();
}

module.exports = { opsiqChat };

Python (Flask)

1

Run: pip install pyjwt flask-login. This site's signing secret is already filled in, so the code works as pasted. To keep it out of the file, set OPSIQ_SITE_SECRET in the environment on the server instead: that value is used first. Keep this file on the server and never commit it to a public repository.

2

Call init_opsiq_chat(app) where you create the app. It answers the refresh and gives templates opsiq_chat_tag.

3

In your base template, just before </body>: {{ opsiq_chat_tag }}

opsiq_chat.py
# opsiq_chat.py — pip install pyjwt flask-login
import os, time, urllib.parse
import jwt
from flask import request, jsonify
from flask_login import current_user
from markupsafe import Markup, escape

def opsiq_chat_token():
    secret = os.environ.get("OPSIQ_SITE_SECRET") or "opsiq_whsec_YOUR_SITE_SECRET"   # this site's secret; the environment wins when set
    if not secret or not current_user.is_authenticated:
        return ""
    now = int(time.time())
    return jwt.encode({
        "site_key": "YOUR_SITE_KEY", "iat": now, "exp": now + 3600,
        "authenticated": True, "platform": "python",
        "customer": {"id": current_user.id, "email": current_user.email,       # REQUIRED
                     "name": getattr(current_user, "name", ""), "external_id": str(current_user.id)},
    }, secret, algorithm="HS256")

def init_opsiq_chat(app):
    @app.before_request
    def _opsiq_refresh():
        if request.args.get("opsiq_identity_refresh"):
            t = opsiq_chat_token()
            resp = jsonify({"success": True, "role": "customer", "identity_token": t}) if t \
                else (jsonify({"success": False, "login_required": True}), 401)
            if isinstance(resp, tuple):
                resp[0].headers["Cache-Control"] = "no-store"
            else:
                resp.headers["Cache-Control"] = "no-store"
            return resp

    @app.context_processor
    def _opsiq_tag():
        t = opsiq_chat_token()
        src = "https://YOUR-OPSIQ/widget.php?site_key=YOUR_SITE_KEY" + ("&identity_token=" + urllib.parse.quote(t, safe="") if t else "")
        return {"opsiq_chat_tag": Markup('<script async src="%s" data-opsiq-widget="client-chat"></script>' % escape(src))}

Django

1

Run: pip install pyjwt. This site's signing secret is already filled in, so the code works as pasted. To keep it out of the file, set OPSIQ_SITE_SECRET in settings.py (for example os.environ["OPSIQ_SITE_SECRET"]) on the server instead: that value is used first. Keep this file on the server and never commit it to a public repository.

2

Add "yourapp.opsiq_chat.OpsiqChatMiddleware" to MIDDLEWARE (after AuthenticationMiddleware) and "yourapp.opsiq_chat.opsiq_chat" to TEMPLATES context_processors.

3

In your base template, just before </body>: {{ opsiq_chat_tag }}

opsiq_chat.py
# yourapp/opsiq_chat.py — pip install pyjwt
import time, urllib.parse
import jwt
from django.conf import settings
from django.http import JsonResponse
from django.utils.html import format_html

def opsiq_chat_token(user):
    secret = getattr(settings, "OPSIQ_SITE_SECRET", "") or "opsiq_whsec_YOUR_SITE_SECRET"   # this site's secret; settings win when set
    if not secret or not user.is_authenticated:
        return ""
    now = int(time.time())
    return jwt.encode({
        "site_key": "YOUR_SITE_KEY", "iat": now, "exp": now + 3600,
        "authenticated": True, "platform": "django",
        "customer": {"id": user.pk, "email": user.email,             # REQUIRED
                     "name": user.get_full_name(), "external_id": str(user.pk)},
    }, secret, algorithm="HS256")

class OpsiqChatMiddleware:
    def __init__(self, get_response):
        self.get_response = get_response
    def __call__(self, request):
        if request.GET.get("opsiq_identity_refresh"):
            t = opsiq_chat_token(request.user)
            resp = (JsonResponse({"success": True, "role": "customer", "identity_token": t}) if t
                    else JsonResponse({"success": False, "login_required": True}, status=401))
            resp["Cache-Control"] = "no-store"
            return resp
        return self.get_response(request)

def opsiq_chat(request):
    t = opsiq_chat_token(request.user)
    src = "https://YOUR-OPSIQ/widget.php?site_key=YOUR_SITE_KEY" + ("&identity_token=" + urllib.parse.quote(t, safe="") if t else "")
    return {"opsiq_chat_tag": format_html('<script async src="{}" data-opsiq-widget="client-chat"></script>', src)}

.NET / C#

1

Run: dotnet add package System.IdentityModel.Tokens.Jwt. This site's signing secret is already filled in, so the code works as pasted. To keep it out of the file, set OpsIQ:SiteSecret (user-secrets, the OpsIQ__SiteSecret environment variable or Key Vault) on the server instead: that value is used first. Keep this file on the server and never commit it to a public repository.

2

In Program.cs, after app.UseAuthentication(): app.Use(OpsiqChat.Refresh);

3

In _Layout.cshtml before </body>: @Html.Raw(OpsiqChat.Tag(Context))

OpsiqChat.cs
// OpsiqChat.cs — dotnet add package System.IdentityModel.Tokens.Jwt
using System.IdentityModel.Tokens.Jwt;
using System.Net;
using System.Security.Claims;
using System.Text;
using Microsoft.IdentityModel.Tokens;

public static class OpsiqChat
{
    public static string Token(HttpContext ctx)
    {
        var secret = ctx.RequestServices.GetRequiredService<IConfiguration>()["OpsIQ:SiteSecret"];
        if (string.IsNullOrEmpty(secret)) secret = "opsiq_whsec_YOUR_SITE_SECRET";   // this site's secret; configuration wins when set
        if (string.IsNullOrEmpty(secret) || ctx.User.Identity?.IsAuthenticated != true) return "";
        var id = ctx.User.FindFirstValue(ClaimTypes.NameIdentifier) ?? "";      // REQUIRED
        var email = ctx.User.FindFirstValue(ClaimTypes.Email) ?? "";            // REQUIRED
        var creds = new SigningCredentials(new SymmetricSecurityKey(Encoding.UTF8.GetBytes(secret)), SecurityAlgorithms.HmacSha256);
        var now = DateTimeOffset.UtcNow;
        var payload = new JwtPayload {
            { "site_key", "YOUR_SITE_KEY" }, { "iat", now.ToUnixTimeSeconds() }, { "exp", now.AddSeconds(3600).ToUnixTimeSeconds() },
            { "authenticated", true }, { "platform", "dotnet" },
            { "customer", new Dictionary<string, object> { { "id", id }, { "email", email }, { "name", ctx.User.Identity?.Name ?? "" }, { "external_id", id } } },
        };
        return new JwtSecurityTokenHandler().WriteToken(new JwtSecurityToken(new JwtHeader(creds), payload));
    }

    // app.Use(OpsiqChat.Refresh) — the widget refreshing on the page it is on.
    public static async Task Refresh(HttpContext ctx, Func<Task> next)
    {
        if (string.IsNullOrEmpty(ctx.Request.Query["opsiq_identity_refresh"])) { await next(); return; }
        ctx.Response.Headers["Cache-Control"] = "no-store";
        var t = Token(ctx);
        if (t == "") { ctx.Response.StatusCode = 401; await ctx.Response.WriteAsJsonAsync(new { success = false, login_required = true }); return; }
        await ctx.Response.WriteAsJsonAsync(new { success = true, role = "customer", identity_token = t });
    }

    public static string Tag(HttpContext ctx)
    {
        var t = Token(ctx);
        var src = "https://YOUR-OPSIQ/widget.php?site_key=YOUR_SITE_KEY" + (t != "" ? "&identity_token=" + Uri.EscapeDataString(t) : "");
        return "<script async src=\"" + WebUtility.HtmlEncode(src) + "\" data-opsiq-widget=\"client-chat\"></script>";
    }
}

Ruby on Rails

1

Add gem "jwt" and run bundle install. This site's signing secret is already filled in, so the code works as pasted. To keep it out of the file, set OPSIQ_SITE_SECRET in the environment on the server instead: that value is used first. Keep this file on the server and never commit it to a public repository.

2

include OpsiqChat in ApplicationController.

3

In app/views/layouts/application.html.erb before </body>: <%= opsiq_chat_tag %>

app/controllers/concerns/opsiq_chat.rb
# app/controllers/concerns/opsiq_chat.rb — Gemfile: gem "jwt"
require "jwt"
require "cgi"

module OpsiqChat
  extend ActiveSupport::Concern

  included do
    before_action :opsiq_identity_refresh
    helper_method :opsiq_chat_tag
  end

  private

  def opsiq_chat_token
    secret = ENV["OPSIQ_SITE_SECRET"].presence || "opsiq_whsec_YOUR_SITE_SECRET"   # this site's secret; the environment wins when set
    return "" if secret.blank? || !respond_to?(:current_user, true) || current_user.nil?
    now = Time.now.to_i
    JWT.encode({
      site_key: "YOUR_SITE_KEY", iat: now, exp: now + 3600,
      authenticated: true, platform: "rails",
      customer: { id: current_user.id, email: current_user.email,          # REQUIRED
                  name: current_user.try(:name).to_s, external_id: current_user.id.to_s }
    }, secret, "HS256")
  end

  def opsiq_identity_refresh
    return unless params[:opsiq_identity_refresh].present?
    response.headers["Cache-Control"] = "no-store"
    t = opsiq_chat_token
    return render(json: { success: false, login_required: true }, status: :unauthorized) if t.blank?
    render json: { success: true, role: "customer", identity_token: t }
  end

  def opsiq_chat_tag
    t = opsiq_chat_token
    src = "https://YOUR-OPSIQ/widget.php?site_key=YOUR_SITE_KEY" + (t.present? ? "&identity_token=#{CGI.escape(t)}" : "")
    helpers.tag.script(nil, async: true, src: src, data: { opsiq_widget: "client-chat" })
  end
end

Java (Spring Boot)

1

Add io.jsonwebtoken:jjwt-api, jjwt-impl and jjwt-jackson (0.12+). This site's signing secret is already filled in, so the code works as pasted. To keep it out of the file, set opsiq.site.secret (for example from OPSIQ_SITE_SECRET) on the server instead: that value is used first. Keep this file on the server and never commit it to a public repository.

2

Replace currentUser() with your user lookup. The filter answers the refresh on every page; @ControllerAdvice exposes opsiqChatTag to views.

3

Thymeleaf layout before </body>: <th:block th:utext="${opsiqChatTag}"/>

OpsiqChat.java
// OpsiqChat.java — io.jsonwebtoken:jjwt-api / jjwt-impl / jjwt-jackson (0.12+)
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.security.Keys;
import jakarta.servlet.*;
import jakarta.servlet.http.*;
import java.io.IOException;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
import java.security.Principal;
import java.time.Instant;
import java.util.*;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.util.HtmlUtils;

@Component
@ControllerAdvice
public class OpsiqChat implements Filter {
    @Value("${opsiq.site.secret:opsiq_whsec_YOUR_SITE_SECRET}")   // this site's secret; opsiq.site.secret wins when set
    private String secret;

    /** WHO IS SIGNED IN — replace with your lookup: id, email, name. Null for a guest. */
    private Map<String, Object> currentUser(Principal p) {
        return p == null ? null : Map.of("id", p.getName(), "email", p.getName(), "name", p.getName());
    }

    String token(HttpServletRequest req) {
        Map<String, Object> u = currentUser(req.getUserPrincipal());
        if (u == null || secret.isEmpty()) return "";
        Instant now = Instant.now();
        return Jwts.builder()
            .claim("site_key", "YOUR_SITE_KEY").claim("authenticated", true).claim("platform", "java")
            .claim("customer", Map.of("id", u.get("id"), "email", u.get("email"), "name", u.get("name"),
                                      "external_id", String.valueOf(u.get("id"))))          // id + email REQUIRED
            .issuedAt(Date.from(now)).expiration(Date.from(now.plusSeconds(3600)))
            .signWith(Keys.hmacShaKeyFor(secret.getBytes(StandardCharsets.UTF_8)), Jwts.SIG.HS256)
            .compact();
    }

    @Override // the widget refreshing on the page it is on
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
        HttpServletRequest req = (HttpServletRequest) request;
        if (req.getParameter("opsiq_identity_refresh") == null) { chain.doFilter(request, response); return; }
        HttpServletResponse res = (HttpServletResponse) response;
        res.setHeader("Cache-Control", "no-store");
        res.setContentType("application/json");
        String t = token(req);
        if (t.isEmpty()) { res.setStatus(401); res.getWriter().write("{\"success\":false,\"login_required\":true}"); return; }
        res.getWriter().write("{\"success\":true,\"role\":\"customer\",\"identity_token\":\"" + t + "\"}");
    }

    @ModelAttribute("opsiqChatTag")
    public String tag(HttpServletRequest req) {
        String t = token(req);
        String src = "https://YOUR-OPSIQ/widget.php?site_key=YOUR_SITE_KEY" + (t.isEmpty() ? "" : "&identity_token=" + URLEncoder.encode(t, StandardCharsets.UTF_8));
        return "<script async src=\"" + HtmlUtils.htmlEscape(src) + "\" data-opsiq-widget=\"client-chat\"></script>";
    }
}

Go

1

Run: go get github.com/golang-jwt/jwt/v5. This site's signing secret is already filled in, so the code works as pasted. To keep it out of the file, set OPSIQ_SITE_SECRET in the environment on the server instead: that value is used first. Keep this file on the server and never commit it to a public repository.

2

Replace currentUser() with your session lookup, and wrap your router: http.ListenAndServe(addr, OpsiqChatRefresh(mux)).

3

Pass OpsiqChatTag(r) to your layout template and print it before </body>.

opsiq_chat.go
// opsiq_chat.go — go get github.com/golang-jwt/jwt/v5
package main

import (
    "encoding/json"
    "fmt"
    "html"
    "html/template"
    "net/http"
    "net/url"
    "os"
    "time"

    "github.com/golang-jwt/jwt/v5"
)

type OpsiqUser struct{ ID, Email, Name string }

// WHO IS SIGNED IN — replace with your session lookup. Return nil for a guest.
func currentUser(r *http.Request) *OpsiqUser { return nil }

func opsiqChatToken(r *http.Request) string {
    u, secret := currentUser(r), os.Getenv("OPSIQ_SITE_SECRET")
    if secret == "" {
        secret = "opsiq_whsec_YOUR_SITE_SECRET" // this site's secret; the environment wins when set
    }
    if u == nil || secret == "" {
        return ""
    }
    now := time.Now().Unix()
    t, err := jwt.NewWithClaims(jwt.SigningMethodHS256, jwt.MapClaims{
        "site_key": "YOUR_SITE_KEY", "iat": now, "exp": now + 3600,
        "authenticated": true, "platform": "go",
        "customer": map[string]any{"id": u.ID, "email": u.Email, "name": u.Name, "external_id": fmt.Sprint(u.ID)}, // id + email REQUIRED
    }).SignedString([]byte(secret))
    if err != nil {
        return ""
    }
    return t
}

// OpsiqChatRefresh answers the widget's ?opsiq_identity_refresh=1 on any page.
func OpsiqChatRefresh(next http.Handler) http.Handler {
    return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
        if r.URL.Query().Get("opsiq_identity_refresh") == "" {
            next.ServeHTTP(w, r)
            return
        }
        w.Header().Set("Cache-Control", "no-store")
        w.Header().Set("Content-Type", "application/json")
        if t := opsiqChatToken(r); t != "" {
            json.NewEncoder(w).Encode(map[string]any{"success": true, "role": "customer", "identity_token": t})
            return
        }
        w.WriteHeader(http.StatusUnauthorized)
        json.NewEncoder(w).Encode(map[string]any{"success": false, "login_required": true})
    })
}

// OpsiqChatTag is printed before </body> in your layout.
func OpsiqChatTag(r *http.Request) template.HTML {
    src := "https://YOUR-OPSIQ/widget.php?site_key=YOUR_SITE_KEY"
    if t := opsiqChatToken(r); t != "" {
        src += "&identity_token=" + url.QueryEscape(t)
    }
    return template.HTML(`<script async src="` + html.EscapeString(src) + `" data-opsiq-widget="client-chat"></script>`)
}

जब कुछ गलत हो जाता है

चैट एक लॉग-इन ग्राहक को अतिथि के रूप में व्यवहार करता है

टैग को बिना मुद्रित किया गया था identity_token (क्रीट सर्वर पर गायब है, इसलिए कोड बंद हो जाता है), या टोकन का कार्यक्षेत्र कुंजी या रहस्य मैच नहीं होता।

पहले पहचाने जाने वाले अतिथि के बाद लगभग एक घंटे बाद

ताज़ा हैंडलर नहीं पहुंचता है: इसे किसी भी आउटपुट से पहले चलाना चाहिए, हर पेज पर चैट दिखाई देती है।

प्लेन चैट दो बार दिखाता है

अपने टेम्पलेट से सादे चैट टैग निकालें: यह कोड खुद ही चैट प्रिंट करता है।

डेवलपर

प्लगइन्स और SDK

OpsIQ प्रदान करता है SDK सामान्य प्लेटफार्मों के लिए पैकेज और प्लगइन्स।

यह कैसे काम करता है
प्लगइन्स और SDKचार पैकेज: PHP SDK, Node.js SDK, WordPress प्लगइन और WHMCS मॉड्यूल, प्रत्येक अपने स्थापित आदेश के साथ।PHPPHPSDKसंगीतकार की आवश्यकता है opsiq/sdkजेएसNode. js SDKI @mr_opsiq/sdkडब्ल्यूपीWordPress प्लगइनएक क्लिक इंस्टॉल करें और कनेक्ट करेंवाईडWHMCS मॉड्यूलबिलिंग + टिकट रिले के लिए ऐडन
प्लगइन्स और SDK
PHPSDK

संगीतकार पैकेज: पहचान टोकन पीढ़ी, कार्रवाई API सहायक, वेबहुक हस्ताक्षर सत्यापन।

JavaScript SDK

ब्राउज़र साइड: ट्रैकिंग, पहचान, कस्टम इवेंट्स, चैट कंट्रोल।

WordPress प्लगइन

विजेट इंजेक्शन, WP उपयोगकर्ता सत्र से पहचान, WooCommerce सिंक।

WHMCS मॉड्यूल

पूर्ण एकीकरण: विजेट, टिकट रिले, पहचान, व्यवस्थापक एआई।

Shopify थीम एक्सटेंशन

ऐप स्वचालित ग्राहक पहचान के साथ एम्बेड किया गया।

PHP SDK जल्दी शुरू

PHP SDK उदाहरण
composer require opsiq/sdk

use OpsIQ\SDK\Identity;
$token = Identity::createToken(
    siteKey: "site_abc123",
    secret:  "opsiq_whsec_your_secret",
    customer: ["id" => "cust_1001", "email" => "[email protected]", "name" => "Jane"]
);

// Call any catalog action over the action API
$ch = curl_init("https://your-opsiq.com/api/v1.php");
curl_setopt_array($ch, [
    CURLOPT_POST => true,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => [
        "Authorization: Bearer opq_your_key",
        "Content-Type: application/json",
    ],
    CURLOPT_POSTFIELDS => json_encode([
        "action" => "crm.contacts.list",
        "status" => "lead",
        "limit"  => 25,
    ]),
]);
$contacts = json_decode(curl_exec($ch), true);
डेवलपर

सर्वेक्षण API, घटनाओं और कनेक्टर मुक्त स्वचालन

सर्वे स्टूडियो को उसी प्रकार के जनरल का उपयोग करने के लिए डिज़ाइन किया गया है API, आंतरिक निष्पादक, घटना बस और वेबहुक संचालन बाकी के रूप में OpsIQ यह डेवलपर्स को एक पैक्ड कनेक्टर के निर्माण के बिना अंत में एकीकृत करने देता है।

⚠️
कार्यान्वयन की स्थिति: वर्तमान में लाइव कैटलॉग केवल तभी उजागर हो रहा है platform.get.survey.config और platform.save.survey.configThe suffering of the s. surveys.* और feedback.* नीचे दिए गए परिवारों को स्वीकृत लक्ष्य अनुबंध दिया गया है और उसे वापस करना होगा। unknown_action पंजीकृत होने तक

लक्ष्य कार्रवाई परिवारों

प्रकार, टेम्पलेट्स और त्वरित लॉन्च

surveys.types.*, surveys.templates.* और surveys.quick_launch.* सूची, पूर्वावलोकन, तत्काल और वैध पूर्ण शुरुआत।

सर्वेक्षण और संस्करण

surveys.create|get|list|update|archive|duplicate साथ ही अपरिवर्तनीय संस्करण, सत्यापन और प्रकाशन क्रियाएं।

तैनाती और लक्ष्यीकरण

surveys.deployments.*, surveys.links.*, surveys.audiences.*, surveys.triggers.* और surveys.variables.*.

आउटरीच और जवाब

surveys.invitations.*, surveys.campaigns.*, surveys.recipients.*, surveys.responses.*निर्यात, रिडीक्शन और एनालिटिक्स।

Webhooks, आयात और प्रतिक्रिया

surveys.webhooks.*, surveys.imports.*, feedback.items.*, feedback.analytics.*, feedback.sources.* और feedback.analysis.*.

कनेक्टर मुक्त प्रवाह

1
सामान्य API_

टाइप किए गए सर्वेक्षणों का उपयोग करें.* एक कार्यक्षेत्र-पिन कुंजी के साथ कार्य करता है। लेखकों ने अनुमति, जोखिम, पुष्टिकरण, विचारधारा और शुष्क रन व्यवहार की घोषणा की।

2
अपने व्यवसाय की घटना प्राप्त करें

एक इनबाउंड वेबहुक पर हस्ताक्षरित घटना भेजें, उदाहरण के लिए ऑर्डर रद्दीकरण या ऑनबोर्डिंग स्टेप पूरा किया। रिप्ले प्रोटेक्शन इवेंट आईडी को डिप्लिकेट करता है।

3
इसे एक्शन एंड ट्रिगर में मैप करें

एक चुनें OpsIQ जनरल API एक सर्वेक्षण आमंत्रण जारी करने या अभियान तैयार करने जैसे कार्य, फिर सत्यापित ट्रिगर पेलोड से मानचित्र फ़ील्ड।

4
सर्वेक्षण की घटनाओं के बारे में सब्सक्राइब करें

दस्तावेजी व्यावसायिक सुरक्षित सर्वेक्षण प्रदान करें* हस्ताक्षर, फिल्टर, रिट्री, लॉग और अधिकृत पुनः प्रदर्शन के साथ अपने समापन बिंदु पर lifecycle सबसेट।

कैनोनिकल इवेंट लक्ष्य

साझा सूची में सर्वेक्षण / तैनाती प्रकाशित राज्य, दर्शकों और ट्रिगर निर्णयों, निमंत्रण, प्रस्तुत/शुरू/आंशिक/फिर से शुरू/पूरी/एबैंडन, प्रतिक्रिया रिडीक्शन, अभियान की स्थिति और वितरण विफलताओं को कवर किया जाएगा। उच्च मात्रा फोकस, स्क्रॉल और प्रश्न समय सर्वेक्षण विश्लेषण भंडारण में रहता है जब तक कि प्रशंसक-आउट के लिए स्पष्ट रूप से दस्तावेज नहीं किया जाता है।

एक कनेक्टर वैकल्पिक है। यह पुन: प्रयोज्य प्लेटफ़ॉर्म खोज, सत्यापित पहचान, तथ्य, चर और प्राप्तकर्ता की गणना जोड़ता है। सामान्य API प्लस एक्शन एंड ट्रिगर्स / वेबहुक डेवलपर्स के लिए पूर्ण एकीकरण पथ है जो एक पैक कनेक्टर की आवश्यकता नहीं है।
डेवलपर

REST API_

द OpsIQ REST API आपको प्रोग्राम द्वारा सभी प्लेटफार्म विशेषताओं तक पहुँचने देता है.

यह कैसे काम करता है
REST API_एक टर्मिनल ने POST को दिखाया OpsIQ API एक बियरर कुंजी, लिस्टिंग ओपन टिकट और पेज के साथ JSON प्रतिक्रिया।$ curl -X POST https://your-domain.com/api/v1.php \-H "Authorization: Bearer opq_..."200 ठीक{ "data": [{ "id": 4192, "ticket_number": "T-4192","subject": "Card declined", "status": "open" },... more tickets ...], "page": 1, "per_page": 50, "has_more": true }
REST API_

अनुरोध प्रारूप

कुंजी को भेजें Authorization: Bearer opq_... या X-OpsIQ-Key: opq_...एक प्रमाणीकरण शीर्षलेख का उपयोग करें, दोनों ही नहीं।

API अनुरोध प्रारूप
POST https://your-opsiq-domain.com/api/v1.php
Authorization: Bearer opq_your_api_key
# Alternative header: X-OpsIQ-Key: opq_your_api_key
Content-Type: application/json

{
  "action": "endpoint.name",
  "site_key": "site_abc123"
}

सामान्य क्रियाएँ

The API is action-based: एक भेजें action प्रत्येक पंजीकृत प्रशासक JSON ऑपरेशन में एक स्थिर नाम दिया गया कार्य है। POST {"action":"meta.actions"} (कोई कुंजी आवश्यक नहीं) आधिकारिक, प्रति-स्थापित सूची, अनुरोध अनुबंध, जोखिम मेटाडाटा और गुंजाइश के लिए। platform.routes.* पुल केवल पुराने एकीकरण के लिए ही रहता है।

crm.contacts.list

सूची CRM संपर्क (स्कोप crm. read)। पैराम: q, स्थिति, स्रोत, टैग, सीसा स्कोर, सीमा।

crm.contacts.upsert

Resolve-or-create a contact (scope crm. write). Params: ईमेल प्लस फ़ील्ड, टैग, नोट्स।

crm.deals.list

सूची CRM सौदों (स्कोप crm. read). Params: स्थिति, stage_id, company_id., मालिक_admin_id; पाइपलाइन_id

crm.activities.record

संपर्क (स्कोप crm. write) के लिए एक जीवनचक्र / व्यावसायिक गतिविधि रिकॉर्ड करें। पैराम: ईमेल या contact_id, घटना, मूल्य, मुद्रा।

crm.conversions.record

एक रूपांतरण रिकॉर्ड (scope crm. write). Params: contact_id या ईमेल, रूपांतरण_type, मान, मुद्रा।

crm.events.list

CRM इवेंट स्ट्रीम (स्कोप crm. read) को लागू करें। पैराम: सीमा।

tickets.list

सूची टिकट (स्कोप टिकट. read). Params: पृष्ठ, per_page, प्रकार, आदेश, स्थिति, प्राथमिकता, Department_id, set_admin_id., customer_email, search.

tickets.get

एक टिकट और उसके संदेश (स्कोप टिकट. read). Params: टिकट_id या टिकट_number, in_message, संदेश_सीमा शामिल हैं।

tickets.reply

टिकट (स्कोप टिकट) के उत्तर पोस्ट करें। पैराम: टिकट_आईडी या टिकट_नंबर, शरीर, लेखक_type, लेखक _name, आंतरिक।

tickets.update

टिकट (स्कोप टिकट. write) को अद्यतन करें। पैराम: टिकट_id या टिकट_नंबर, स्थिति, प्राथमिकता, विषय, विभाग_id, सौंपा_admin_id।

tickets.open

समर्थन टिकट (scope Tickets. write) खोलें। पैराम: customer_email, customer_name, विषय, शरीर, प्राथमिकता।

tickets.bulk

एक थोक कतार ऑपरेशन (स्कोप टिकट. write) चलाएं। पैराम: ऑपरेशन, ids।

conversations.list

सूची लाइव चैट वार्तालाप (स्कोप बातचीत)। पैराम: पृष्ठ, per_page, स्थिति, सौंपा_admin_id, customer_email, search.

conversations.get

एक वार्तालाप और उसके संदेश (स्कोप वार्तालाप. read)। पैराम: बातचीत_id या थ्रेड_key, in_mesage.

conversations.messages

पेजेड संदेश इतिहास (स्कोप वार्तालाप. read)। पैराम: बातचीत_id, पृष्ठ, per_page, in_internal.

conversations.send

एक संदेश को वार्तालाप (स्कोप वार्तालाप) में भेजें। पैराम: बातचीत_id, संदेश, प्रेषक_type, आंतरिक।

conversations.update

असाइन, फिर से स्टेटस या फिर एक बातचीत (स्कोप वार्तालाप. लिखना) को फिर से शीर्षक दें। पैराम: वार्तालाप_id, स्थिति, सौंपा_admin_id., विषय।

कनेक्टर्स. list/get/s. test

कौन से कनेक्टर स्थापित किए गए हैं, प्रत्येक एक क्या कर सकता है और इसकी क्रेडेंशियल काम (स्कोप कनेक्टर्स)।

automations.actions.list

आपके एक्शन बिल्डर को चलाने के लिए (स्कोप ऑटोमेशन) कार्य करता है।

automations.triggers.list

क्या आग और किस स्थिति (स्कोप स्वचालन) पर निर्भर करता है।

automations.runs.list

एकीकरण को डिबग करने के लिए निष्पादन इतिहास (scope automations. read). पैरामीटर: स्थिति, क्रिया कुंजी.

departments.list

विभाग आप (स्कोप डिपार्टमेंट्स) के लिए टिकट ले सकते हैं।

notifications.list

एक ऑपरेटर (स्कोप नोटिफिकेशन) के लिए अधिसूचनाएं। पैराम: admin_id (required), unread_only.

analytics.export

एक रिपोर्ट अनुभाग के रूप में CSV (स्कोप एनालिटिक्स. read). Params: अनुभाग, पूर्व निर्धारित, से, तक। कॉल एनालिटिकी. sections. list के लिए मान्य मूल्यों है।

site_intelligence. sites. list/reports.लिस्ट

निगरानी साइटों और उनकेSEOरिपोर्ट (scope site_intelligence.read).

commerce. products. list / . get

आपका स्टोर कैटलॉग, पेजेड (स्कोप commerce. read)। फ़िल्टर: सक्रिय, श्रेणी, खोज। .get इसके एक प्रकार के साथ एक उत्पाद लौटाता है।

commerce. orders. list / . get

स्टोर ऑर्डर (स्कोप commerce. read)। फ़िल्टर: स्थिति, भुगतान_method, चैनल, customer_email। एक द्वारा order_id या इसके ORD- संदर्भ, लाइन आइटम के साथ। लाइव गेटवे चेकआउट हैंडल कभी वापस नहीं किया जाता है।

commerce.refunds.list

रिफंड अनुरोध और उनके राज्य (स्कोप commerce. read)।

commerce.quotes.create

किसी ग्राहक के लिए एक आइटम की कीमत (स्कोप commerce. write)। स्रोत store या एक कनेक्टर स्लग कुछ भी नहीं बनाता: कोई आदेश, कोई भुगतान नहीं। वाणिज्य अनुभाग देखें।

टिकटcsatlist/get/. metrics

ग्राहक संतुष्टि प्रतिक्रिया डेटा (स्कोप टिकट. read) के रूप में। रेटिंग, टिकट, एजेंट या अवधि द्वारा फ़िल्टर करें; .metrics उसी नंबर को डैशबोर्ड शो लौटाता है।

conversations.ratings.list

अपने आगंतुकों को निर्धारित करने के लिए बातचीत करते हैं, टिप्पणी के साथ, रेटिंग और एजेंट क्रेडिट (स्कोप वार्तालाप) का संकेत दिया गया।

knowledge.articles.list

अपने सहायक केंद्र लेख (स्कोप kb. read) के माध्यम से पृष्ठ।

knowledge.articles.get

आईडी (स्कोप kb. read) द्वारा एक सहायता केंद्र लेख। पैराम: article_id।

webhooks.events.list

हर घटना में आप अपने पेलोड के साथ, वेबहुक एंडपॉइंट को सब्सक्राइब कर सकते हैं। प्रत्येक योजना पर उपलब्ध है इसलिए आप इसे खरीदने से पहले बना सकते हैं

files.get

एक अनुलग्नक (स्कोप फाइलें. read) के लिए एक अल्पकालिक हस्ताक्षरित डाउनलोड लिंक। पैराम: संदर्भ, टीटीएल।

security.check

पूछो कि क्याIP या ईमेल यहां अवरुद्ध या संदिग्ध है (स्कोप सुरक्षा)।IP फायरवॉल, टिकट स्पैम ब्लॉकलिस्ट और कैश्ड सिक्योरिटी एआई verdict। पैराम: ip ईमेल

security.report

अपने सिस्टम को दुर्व्यवहार (स्कोप सुरक्षा. write) की रिपोर्ट करें। तुरंत सुरक्षा एआई द्वारा वर्गीकृत एक सुरक्षा घटना के रूप में रिकॉर्ड किया गया, और व्यवस्थापक उच्च जोखिम फैसले पर सतर्क होते हैं। पैराम: ip, ईमेल, तरह, कारण, स्रोत।

Security. blocklist. add / . list

स्पैम नियमों को प्रबंधित करें टिकट पाइपलाइन लागू करता है (स्कोप सुरक्षा. लिखना / सुरक्षा.read)। टिकट पृष्ठ "ब्लॉक प्रेषक" नियंत्रण के रूप में एक ही स्टोर।ip), मूल्य, कारण, समय सीमा समाप्त होती है_घंटे।

💡
मेटा.एक्शन हमेशा आधिकारिक होते हैं। यह प्रत्येक कार्य को आपकी स्थापना के लिए उपलब्ध करता है, जिसमें प्रत्येक व्यक्ति की जरूरत होती है, इसलिए आपको कभी भी इस सूची का अनुमान या हार्ड-कोड नहीं करना पड़ता है।

पेजिंग, फ़िल्टरिंग और सॉर्टिंग

प्रत्येक सूची कार्रवाई उसी पैरामीटर का उपयोग करती है, इसलिए आप उन्हें एक बार सीखते हैं।

पृष्ठ / per_page

पृष्ठ संख्या शुरू 1, और पृष्ठ आकार डिफ़ॉल्ट 50 अधिकतम 200 यदि आप उन्हें पसंद करते हैं तो सीमा और ऑफसेट भी स्वीकार किए जाते हैं।

क्रमबद्ध / क्रम

फ़ील्ड द्वारा क्रमबद्ध करने के लिए, और asc या desc (डिफ़ॉल्ट डेस्क)। प्रत्येक कार्रवाई में एक निश्चित सेट प्रकार के क्षेत्रों को स्वीकार किया जाता है; कुछ और त्रुटि के बजाय अनदेखा नहीं होता है।

filters

एक वस्तु के रूप में फ़िल्टर भेजें, या एक फिल्टर को शीर्ष स्तर के पैरामीटर के रूप मे पास करें। अज्ञात फिल्टरों को नजरअंदाज कर दिया गया है।

क्या आता है?

आइटम, पृष्ठ, per_page, गिनती, कुल और has_more. जब तक है_अधिक झूठा नहीं है तब तक अनुरोध पृष्ठों को रखें।

पृष्ठ, फ़िल्टर्ड, क्रमबद्ध सूची अनुरोध
POST /api/v1.php
Authorization: Bearer opq_your_api_key

{
  "action": "tickets.list",
  "status": "open",
  "priority": "urgent",
  "sort": "created_at",
  "order": "desc",
  "page": 1,
  "per_page": 50
}

त्रुटियाँ

हर असफलता एक ही आकार में लौटती है, जिसमें स्थिर रहता है code आप शाखा पर कर सकते हैं मानव पढ़ने योग्य पर मैच न करें error पाठ, जिसे पुनः लिखा जा सकता है।

त्रुटि प्रतिक्रिया
{
  "success": false,
  "code": "missing_scope",
  "error": "API key missing required scope. Needed one of: tickets.read, admin",
  "request_id": "req_8f2c1a9d4b7e"
}
लापता_api_key / invalid_apie_key

कोई कुंजी नहीं भेजा गया था, या कुंजी गलत है या समाप्त हो गई है। HTTP 401.

missing_scope

कुंजी मान्य है लेकिन इस कार्रवाई की जरूरत के दायरे में कमी है। HTTP 403.

सिर्फ_ पढ़ने के लिए कुंजी / क्रिया_ प्रतिबंधित

कुंजी केवल पढ़ा जाता है, या यह कार्रवाई इसके अनुमति-सूची में नहीं होती है। HTTP 403.

unknown_action

ऐसी कोई कार्रवाई नहीं। वर्तमान सूची के लिए कॉल मेटा.एक्शन। HTTP 400

missing_parameter / invalid_parameter

एक आवश्यक पैरामीटर अनुपस्थित है, या मान स्वीकार नहीं किया जाता है। HTTP 400.

not_found

रिकॉर्ड मौजूद नहीं है, या इस कुंजी को देखने के लिए कार्यक्षेत्र में नहीं है। HTTP 404.

plan_feature_locked

आपकी योजना में इस क्रिया को शामिल नहीं किया गया है। शरीर का नाम नाम feature, the plan_name in the force and an upgrade_urlRetrying मदद नहीं करेगा; योजना को बदलना होगा। HTTP402.

license_required

स्थापना का लाइसेंस सक्रिय नहीं है, इसलिए जब तक कि इसे बहाल नहीं किया जाता तब तक कोई कार्रवाई नहीं की जाएगी।402.

selling_paused

वाणिज्य-विशिष्ट: स्टोर ने बंद कर दिया है, इसलिए कुछ भी उद्धृत या आदेशित नहीं किया जा सकता है।400.

rate_limited

इस कुंजी के लिए घंटे की सीमा का उपयोग HTTP 429_ से किया जाता है।

server_error

कुछ हमारी तरफ विफल रहा। अनुरोध_id यदि आपको इसकी रिपोर्ट करने की आवश्यकता है तो प्रयास को पहचानता है। 500.

सुरक्षित भंडार

यदि आप एक बार लिखने के लिए बाहर नहीं बता सकते कि क्या यह जमीन पर उतरा है। idempotency_key और उसी कॉल की एक दोहराने से काम करने के बजाय मूल परिणाम वापस आ जाता है।

Idempotent लेखन
{
  "action": "tickets.reply",
  "ticket_id": 4192,
  "body": "Thanks, that is now fixed.",
  "idempotency_key": "your-unique-id-for-this-attempt"
}
कब तक यह रहता है

एक कुंजी के लिए याद किया जाता है 24 एक ही कार्रवाई के खिलाफ घंटे और API कुंजी।

क्या आप वापस आ जाओ

मूल प्रतिक्रिया, प्लस idempotent_replay: सच तो आप यह एक फिर से खेलना था बता सकते हैं।

असफलता वापस लेने योग्य

केवल सफल लिखने की याद है। यदि कोई कॉल विफल हो गया तो उसे फिर से उसी कुंजी के साथ भेजना इसे फिर से चला जाता है, जो वह है जिसे आप चाहते हैं।

पढ़े

पढ़ना कुंजी को अनदेखा करता है। पढ़ने की पुनरावृत्ति हानिरहित है।

बिना किसी चीज़ को बदलने के परीक्षण

जोड़ें dry_run: true किसी भी लिखने के लिए। आपकी कुंजी, गुंजाइश और मापदंडों को बिल्कुल सामान्य रूप से जांचा जाता है, फिर कॉल कुछ भी बनाने या बदलने से पहले रुक जाता है।

ड्राई रन: विश्वसनीय और पेलोड को सुरक्षित रूप से सत्यापित करें
{
  "action": "tickets.update",
  "ticket_id": 4192,
  "status": "closed",
  "dry_run": true
}

{
  "success": true,
  "dry_run": true,
  "would_execute": true,
  "message": "Authorised and validated. No write was performed because dry_run was set."
}
जब आप इमारत रहे हों तो ड्राई रन का प्रयोग करें। यह एक कुंजी की पुष्टि करने का सबसे तेज़ तरीका है, इसमें सही गुंजाइश हैं और आपके पेलोड को सही ढंग से आकार दिया गया है, बिना परीक्षण डेटा बनाने के लिए आपको फिर साफ करना होगा।

दर सीमा

प्रति कुंजी सीमा

प्रति घंटे विन्यास योग्य सीमाAPI कुंजी (default) 1000 प्रति घंटे अनुरोध करता है)। इसे सेटिंग्स के तहत कुंजी के अनुसार सेट करें,API कुंजी।

जब अधिक हो

HTTP 429 कोड rate_limited साथ ही एक रेट्री-बाद हेडर आपको बताता है कि कितने सेकंड इंतजार करने के लिए। सीमा अगले घड़ी घंटे के शीर्ष पर रीसेट हो जाती है।

जहाँ आप खड़े हो जाओ

हर प्रतिक्रिया X-RateLimit-Limits, X-Relate-Remaining और X-NateLimit-Reset (Usse timestamp) को वहन करती है और इससे पहले कि आप मना करने की प्रतीक्षा के बजाय बाहर निकलें।

वर्णन करना 429 से 401

A 429 फिर से प्रयास करें। 401 इसका मतलब यह है कि कुंजी खुद गलत है या समाप्त हो गई है, इसलिए पुनः प्रयास तब तक मदद नहीं करेगा जब तक आप कुंजी को ठीक न करें।

पूर्व-auth brute-force गार्ड

एक बार फिर असफल प्रयास IP अलग-अलग होते हैं। वैध कुंजी कभी भी इस पर नहीं जाती है।

सर्वश्रेष्ठ अभ्यास

जब शेष कम हो जाता है तो वापस लौटें, और तुरंत पुनः प्रयास करने के बजाय Retry-Retry के बाद एक 429 के बाद सम्मान करें।

संस्करण और स्थिरता

वर्तमान संस्करण

v1. प्रत्येक प्रतिक्रिया X- होती हैOpsIQ-API-Version और X-OpsIQ-API-स्टैटस ताकि आप यह पुष्टि कर सकें कि आप क्या बात कर रहे हैं।

आपको कैसे चेतावनी दी जाएगी

यदि कोई संस्करण कभी सेवानिवृत्त हो जाता है, तो उत्तर मानक डेप्रिकेशन और सूर्यास्त हेडर हासिल करते हैं, और मेटा.एक्शन रिपोर्ट में कमी आई है और सूर्यास्त_at। उन लोगों को अपनी निगरानी में जाँच करें और आपको आश्चर्य नहीं होगा।

क्या परिवर्तन नहीं होगा?

मौजूदा एक्शन नाम, उनके पैरामीटर और उनके त्रुटि कोड। नए कार्यों और नए वैकल्पिक क्षेत्रों को किसी भी समय जोड़ा जा सकता है, इसलिए उन फ़ील्डों को अनदेखा करें जिन्हें आप उन पर असफल होने के बजाय पहचान नहीं करते हैं।

एक पूर्ण एकीकरण, खत्म करना शुरू करें

यह संपूर्ण पाश है: काम ढूंढें, इसे पढ़ें, उस पर कार्य करें और पुष्टि करें कि आपने क्या किया था।

पूर्ण टिकट वर्कफ़्लो पर API
# 1. Discover what this install offers and what each action needs.
POST /api/v1.php
{"action":"meta.actions"}

# 2. Find the urgent open tickets.
POST /api/v1.php
Authorization: Bearer opq_your_api_key
{"action":"tickets.list","status":"open","priority":"urgent","per_page":25}

# 3. Read one, including its conversation history.
{"action":"tickets.get","ticket_id":4192}

# 4. Reply, safely enough to retry if the network drops.
{"action":"tickets.reply","ticket_id":4192,
 "body":"We have issued the refund.","idempotency_key":"reply-4192-attempt-1"}

# 5. Close it.
{"action":"tickets.update","ticket_id":4192,"status":"closed"}

# 6. Page through anything larger: keep going until has_more is false.
{"action":"tickets.list","page":2,"per_page":50}
💡
ऊपर सब कुछ बातचीत के लिए एक ही रास्ता काम करता है: वार्तालाप.सूची, बातचीत. get, बातचीत।

अधिक काम उदाहरण

इनमें से प्रत्येक एक खंड के बजाय वास्तविक एकीकरण का पूरा, रनेबल टुकड़ा है।

प्रत्येक रिकॉर्ड के माध्यम से पृष्ठ, तीन भाषाओं में

नियम हर जगह समान है: अगले पृष्ठ तक पूछते रहें has_more झूठा है। कभी भी कुल अनुमान नहीं लगा।

पायथन · हर खुला टिकट के माध्यम से पृष्ठ
import requests

API  = "https://your-opsiq-domain.com/api/v1.php"
HEAD = {"Authorization": "Bearer opq_your_api_key"}

def every(action, **params):
    """Yield every record for a list action, one page at a time."""
    page = 1
    while True:
        r = requests.post(API, headers=HEAD,
                          json={"action": action, "page": page, "per_page": 200, **params},
                          timeout=30)
        r.raise_for_status()
        body = r.json()
        if not body.get("success"):
            raise RuntimeError(f"{body.get('code')}: {body.get('error')}")
        yield from body.get("items", [])
        if not body.get("has_more"):
            return
        page += 1

for ticket in every("tickets.list", status="open"):
    print(ticket["ticket_number"], ticket["subject"])
Node. js · पृष्ठ हर लीड के माध्यम से
const API = "https://your-opsiq-domain.com/api/v1.php";
const HEAD = { Authorization: "Bearer opq_your_api_key", "Content-Type": "application/json" };

async function* every(action, params = {}) {
  for (let page = 1; ; page++) {
    const res  = await fetch(API, {
      method: "POST",
      headers: HEAD,
      body: JSON.stringify({ action, page, per_page: 200, ...params }),
    });
    const body = await res.json();
    if (!body.success) throw new Error(`${body.code}: ${body.error}`);
    yield* body.items ?? [];
    if (!body.has_more) return;
  }
}

for await (const contact of every("crm.contacts.list", { status: "lead" })) {
  console.log(contact.email);
}
PHP · हर खुला टिकट के माध्यम से पृष्ठ
<?php
$api = "https://your-opsiq-domain.com/api/v1.php";

function opsiq(string $action, array $params = []): array {
    global $api;
    $ch = curl_init($api);
    curl_setopt_array($ch, [
        CURLOPT_POST           => true,
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_HTTPHEADER     => [
            "Authorization: Bearer opq_your_api_key",
            "Content-Type: application/json",
        ],
        CURLOPT_POSTFIELDS => json_encode(["action" => $action] + $params),
        CURLOPT_TIMEOUT    => 30,
    ]);
    $body = json_decode((string)curl_exec($ch), true) ?: [];
    curl_close($ch);
    if (empty($body["success"])) {
        throw new RuntimeException(($body["code"] ?? "error") . ": " . ($body["error"] ?? "unknown"));
    }
    return $body;
}

$page = 1;
do {
    $res = opsiq("tickets.list", ["status" => "open", "page" => $page, "per_page" => 200]);
    foreach ($res["items"] as $t) {
        echo $t["ticket_number"], " ", $t["subject"], PHP_EOL;
    }
    $page++;
} while (!empty($res["has_more"]));

हर असफलता को संभालें API _= वापसी कर सकते हैं

शाखा codeकभी नहीं, शब्दकरण पर errorयह रैपर एक समारोह में पूरे अनुबंध का है।

पायथन · एक क्लाइंट जो हर त्रुटि कोड को सही ढंग से संभालता है
import time, requests

RETRYABLE = {"server_error", "handler_unavailable"}

def call(action, **params):
    for attempt in range(4):
        r = requests.post(API, headers=HEAD, json={"action": action, **params}, timeout=30)
        body = r.json()
        if body.get("success"):
            return body

        code = body.get("code")

        if code == "rate_limited":
            # Honour Retry-After rather than guessing.
            time.sleep(int(r.headers.get("Retry-After", 60)))
            continue

        if code in RETRYABLE:
            time.sleep(2 ** attempt)
            continue

        # Everything below is permanent: retrying cannot fix it.
        if code == "plan_feature_locked":
            raise RuntimeError(f"Plan {body['plan_name']} lacks {body['feature']}: {body['upgrade_url']}")
        if code in ("missing_scope", "read_only_key", "action_restricted"):
            raise RuntimeError(f"This API key cannot do that: {body['error']}")
        if code in ("invalid_api_key", "missing_api_key"):
            raise RuntimeError("The key is wrong or expired; retrying will not help.")
        raise RuntimeError(f"{code}: {body.get('error')} (request_id {body.get('request_id')})")

    raise RuntimeError("Gave up after repeated retries")

एक दिन के भीतर एक बुरा संतोष स्कोर का उत्तर दें

निम्न स्कोर पढ़ें, प्रत्येक के लिए टिकट खोलें और कभी भी दो बार उसी पर कार्य नहीं करें।

Unhappy ग्राहकों पर लूप बंद करें
# 1. Yesterday's detractors.
POST /api/v1.php
{"action":"tickets.csat.list","filters":{"max_rating":2},"days":1,"per_page":100}

# 2. For each one, open a follow-up ticket. The idempotency key is derived
#    from the response id, so re-running the job creates nothing twice.
POST /api/v1.php
{"action":"tickets.open",
 "customer_email":"[email protected]",
 "subject":"Following up on your feedback",
 "body":"We saw your rating and want to put it right.",
 "priority":"high",
 "idempotency_key":"csat-followup-8821"}

# 3. The same shape works for chat: conversations.ratings.list with
#    {"filters":{"max_stars":2},"days":1} returns the comment, what
#    prompted the rating and which agent it is credited to.

एक आइटम को उद्धृत करें और व्यापारी के जवाब पर कार्य करें

एक इनकार जो आपको बताता है कि क्या इकट्ठा करना है
POST /api/v1.php
{"action":"commerce.quotes.create","source":"whmcs","item_id":"47","quantity":1}

# The merchant needs more from the customer before it can price this:
{
  "success": false,
  "code": "quote_refused",
  "error": "We need the domain this hosting plan is for.",
  "actionable": true,
  "missing": ["domain"]
}

# Ask the customer for exactly what "missing" names, then quote again.
POST /api/v1.php
{"action":"commerce.quotes.create","source":"whmcs","item_id":"47",
 "fields":{"domain":"example.ng"}}

{
  "success": true,
  "source": "whmcs",
  "quote": {
    "quote_id": "…",
    "totals": { "total": { "amount_minor": 306027, "currency": "NGN" }, "currency": "NGN" },
    "expires_at": "2026-09-05T12:34:56+00:00"
  },
  "ordering": { "creates_order": false, "confirm_via_api": false }
}
⚠️
ग्राहक दिखाएँ totals.total वास्तव में वापस आने के रूप में। मात्रा हमेशा इकाई मूल्य को गुणा नहीं करती है - एक होटल तीन रातों के लिए एक कमरा उद्धृत करता है - इसलिए आप जिस आंकड़े की गणना करते हैं वह उस व्यापारी से भिन्न हो सकता है जो वास्तव में चार्ज करेगा।

एक वेबहुक रिसीवर जो उत्पादन में चलाने के लिए सुरक्षित है

सत्यापित करें, de-duplicate, जल्दी से जवाब दें, फिर काम करें। डिलिवरियां पुनः प्रयास करें, इसलिए एक ही घटना एक बार से अधिक पहुंच सकती है।

PHP · एक उत्पादन के आकार का webhook रिसीवर
<?php
// (verification exactly as in the Webhooks section, omitted here for brevity)

$event    = json_decode($raw, true);
$name     = $_SERVER["HTTP_X_OPSIQ_EVENT"] ?? ($event["event"] ?? "");
$delivery = $_SERVER["HTTP_X_OPSIQ_DELIVERY"] ?? "";

// 1. Already seen this delivery? Say OK and stop — do not redo the work.
if ($db->alreadyProcessed($delivery)) {
    http_response_code(200);
    exit(json_encode(["ok" => true, "duplicate" => true]));
}

// 2. Answer FAST. Anything slow belongs on your own queue: OpsIQ treats a
//    timeout as a failure and will retry the whole delivery.
$db->markProcessed($delivery);
$queue->push($name, $event);

http_response_code(200);
echo json_encode(["ok" => true]);

// 3. Your worker then routes on the event name.
//    conversation.rated        -> alert the team on a 1 or 2 star rating
//    ticket.created            -> mirror into your own helpdesk
//    crm.deal.won              -> post to #sales-alerts
//    commerce.payment.confirmed-> release the order in your fulfilment system

योजना और पात्रता

प्रत्येक कार्य एक उत्पाद सुविधा से संबंधित है, और आपकी योजना यह तय करती है कि आपके पास कौन सी सुविधाएँ हैं। यदि आपकी योजना में कोई विशेषता नहीं है, तो कार्रवाई का जवाब 402 - आपकी कुंजी की जांच के बाद, इसलिए एक अव्यवस्थित कॉलर अपनी योजना के बारे में कुछ नहीं जानता है और इससे पहले कि किसी भी चीज़ को बनाया गया हो तो अवरुद्ध लेखन कभी आधा-आशा नहीं होता।

एक योजना-लॉक कार्रवाई
{
  "success": false,
  "code": "plan_feature_locked",
  "feature": "commerce",
  "plan_locked": true,
  "plan_name": "Growth",
  "upgrade_url": "https://…",
  "request_id": "req_8f2c1a9d4b7e"
}
इसे कैसे एक अनुमति समस्या से अलग करने के लिए

A403इसका मतलब है कि कुंजी बहुत संकीर्ण है - इसे सही दायरे के साथ फिर से जारी करें और यह काम करता है।402इसका मतलब यह नहीं है कि ACCOUNT में सुविधा नहीं है - कोई कुंजी इसे अनलॉक नहीं कर सकती, योजना को बदलना पड़ता है।

एक फिर से मत करो402

यह क्षणिक नहीं है। सतह upgrade_url जो भी वापस लौटने और फिर से कोशिश करने के बजाय खाते का मालिक है।

व्यवस्थापक का दायरा इसे बायपास नहीं करता है

गुंजाइश स्पष्ट करते हैं कि कुंजी जारीकर्ता ने क्या प्रतिनिधि किया है; योजना बताती है कि खाता किस चीज़ को खरीदा गया था। एक व्यवस्थापक-स्किप्ड कुंजी अभी भी हो जाती है402एक विशेषता के लिए योजना की कमी है।

पहले से ही आप जहाज़ के बाहर निकलें

feature प्रत्येक कार्रवाई की जरूरत नीचे और में कार्रवाई निर्देशिका में प्रकाशित किया जाता है meta.actionइसलिए आप उत्पादन में इसकी खोज के बजाय समय का निर्माण कर सकते हैं।

सबसे तेज़ तरीका यह देखने के लिए कि कोई कुंजी कहाँ है meta.meयह योजना लागू करने की रिपोर्ट करता है, हर सुविधा जो वह करती है और प्रत्येक कार्रवाई इस कुंजी को प्रत्येक के लिए कारण से नहीं कहा जा सकता।

Metame - क्या यह कुंजी वास्तव में क्या कर सकते हैं
POST /api/v1.php
Authorization: Bearer opq_your_api_key

{"action":"meta.me"}

{
  "success": true,
  "key": { "name": "Reporting", "scopes": ["tickets.read"], "permissions_mode": "read_only" },
  "plan": { "name": "Growth", "features": { "ticket_system": true, "commerce": false } },
  "capabilities": {
    "available_action_count": 812,
    "blocked_actions": {
      "commerce.orders.list": "plan_locked:commerce",
      "tickets.reply":        "read_only"
    }
  }
}
जब एक एकीकरण दो इंस्टॉल के बीच अलग-अलग व्यवहार करता है तो मेटा.मी को बुलाएं। यह एक अनुरोध में "यह क्यों नहीं कर सकता" का जवाब देता है, बिना किसी व्यवस्थापक को खोले।

मूल्य उद्धृत करना

commerce.quotes.create एक ग्राहक के लिए कीमतें एक आइटम। यह कुछ भी नहीं बनाता - कोई आदेश, कोई भुगतान सत्र, कोई शेयर नहीं रखा है - इसलिए कॉल करना सुरक्षित है जबकि एक ग्राहक अभी भी निर्णय ले रहा है।

एक आइटम को उद्धृत करें
POST /api/v1.php
Authorization: Bearer opq_your_api_key

# Your own Store
{"action":"commerce.quotes.create","source":"store","item_id":"12","quantity":2}

# A connected merchant platform, priced for a known customer
{"action":"commerce.quotes.create","source":"whmcs","item_id":"47",
 "fields":{"domain":"example.ng"},
 "customer":{"connector_customer_id":"1042"}}
व्यापारी कुल जीत

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

Refusal आपको बताता है कि क्या याद आ रही है

यदि व्यापारी को ग्राहक से अधिक की जरूरत है, तो आपको मिलता है quote_refused साथ missing खेतों को इकट्ठा करने के लिए नाम देने की सूची, और व्यापारी का अपना शब्द दिखाने के लिए।

आदेश देना एक API _\'s call

एक उद्धरण संकेत है। पुष्टि होती है कि ग्राहक कहाँ है - चैट में हस्ताक्षरित कार्ड, या व्यापारी का अपना चेकआउट - कभी इस के माध्यम से नहीं API प्रतिक्रिया इतनी कहती है ordering.

जब बिक्री करना पक्का हो जाता है

यदि स्टोर ने स्विच किया है, तो जवाब देना selling_paused मूल्य निर्धारण के बजाय कोई भी खरीद सकता है।

अन्य समापन बिंदु

लगभग सब कुछ जो आपको चाहिए वह एक POST है /api/v1.phpये अपवाद हैं, और प्रत्येक के लिए क्या है।

/api/v1/openapi.php · /api/v1/postman.php · /api/docs/

मशीन अनुबंध और मानव संदर्भ। कोई कुंजी की जरूरत है, इसलिए आप पहले से ही पता लगा सकते हैं।

/api/ai_stream.php

लाइव चैट उत्तरों के लिए सर्वर-सेंट इवेंट्स क्योंकि वे उत्पन्न होते हैं। एक धारा, नहीं एकJSONकार्रवाई।

/api/writing.php

पुराने एआई-लेखन समापन बिंदु। यह सब कुछ भी है जैसा कि यह करता है writing.* पर कार्रवाई /api/v1.php, जहाँ नए काम करना चाहिए।

/api/inbox_copilot.php

अपने स्वयं के व्यवस्थापक में एम्बेडेड टिकट इनबॉक्स के लिए ड्राफ्ट, फिर से लिखना और ट्राइज करना।

/api/v1/si/…

साइट इंटेलिजेंस एक छोटे से REST के रूप मेंAPI- साइट्स, क्रॉल, मुद्दे, कीवर्ड, राजस्व - सीआई पाइपलाइनों के लिए जो एक तैनाती के बाद क्रॉल शुरू करना चाहते हैं और परिणाम को पढ़ना चाहते हैं।

/api/connectors.php?slug=&token=

जहां एक कनेक्टेड प्लेटफॉर्म आपके लिए अपना खुद का वेबहुक पोस्ट करता है। जब आप कनेक्टर को सक्षम करते हैं तो टोकन को छोटा किया जाता है।

/api/integrations/*.php

एकीकरण इंजन: कार्यों को चलाने और पुष्टि करने के लिए, और ingest बिक्री, पहचान और यात्रा की घटनाओं। यह अपने स्वयं के कुंजी प्रकार का उपयोग करता है, जो नीचे जारी किया गया है।APIऔर Webhook बिल्डर।

💡
ये सभी कार्यों के समान योजना नियमों का पालन करते हैं। एक विशेषता आपकी योजना में उत्तर शामिल नहीं होते हैं 402 यहां भी, एक ही आकार में।

प्रत्येक कार्य, उस दायरे के साथ इसकी आवश्यकता होती है

यह सूची चल कैटलॉग से उत्पन्न होती है, इसलिए यह हमेशा उस संस्करण से मेल खाता है जिस पर आप हैं। meta.actions उसी जानकारी को लौटाने के लिए JSON

2420 named actions: 805 reads, 1615 writes and 69 scopes. Every registered administrator JSON operation has a stable named action. OpenAPI: /api/v1/openapi.php. Postman: /api/v1/postman.php. Contract quality: declared_dynamic: 606; explicit: 63; route_inferred: 1633; source_inferred: 118.

administration (25)

administration.2fa.disable

Write. Scope: administration.write, admin. Contract: route_inferred. Admin 2fa Disable

administration.2fa.enable

Write. Scope: administration.write, admin. Contract: route_inferred. Admin 2fa Enable

administration.2fa.recovery.regenerate

Write. Scope: administration.write, admin. Contract: route_inferred. Admin 2fa Recovery Regenerate

administration.2fa.setup

Read. Scope: administration.read, admin. Contract: route_inferred. Admin 2fa Setup

administration.2fa.status

Read. Scope: administration.read, admin. Contract: declared_dynamic. Admin 2fa Status

administration.ai.train.from.reply

Write. Scope: administration.write, admin. Contract: route_inferred. Admin Ai Train From Reply

administration.brain.cancel

Write. Scope: administration.write, admin. Contract: declared_dynamic. Admin Brain Cancel

administration.brain.view

Write. Scope: administration.write, admin. Contract: route_inferred. Admin Brain View

administration.chat.access.check

Write. Scope: administration.write, admin. Contract: route_inferred. Admin Chat Access Check

administration.chat.create.ticket.on.behalf

Write. Scope: administration.write, admin. Contract: route_inferred. Admin Chat Create Ticket On Behalf

administration.chat.draft.ticket.from.thread

Write. Scope: administration.write, admin. Contract: route_inferred. Admin Chat Draft Ticket From Thread

administration.conv.delete

Write. Scope: administration.write, admin. Contract: route_inferred. Admin Conv Delete

administration.conv.get

Write. Scope: administration.write, admin. Contract: route_inferred. Admin Conv Get

administration.conv.list

Write. Scope: administration.write, admin. Contract: route_inferred. Admin Conv List

administration.conv.new

Write. Scope: administration.write, admin. Contract: route_inferred. Admin Conv New

administration.conv.save

Write. Scope: administration.write, admin. Contract: route_inferred. Admin Conv Save

administration.notification.prefs.get

Read. Scope: administration.read, admin. Contract: declared_dynamic. Admin Notification Prefs Get

administration.notification.prefs.save

Write. Scope: administration.write, admin. Contract: declared_dynamic. Admin Notification Prefs Save

administration.notifications.list

Read. Scope: administration.read, admin. Contract: route_inferred. Admin Notifications List

administration.notifications.mark.all.read

Write. Scope: administration.write, admin. Contract: declared_dynamic. Admin Notifications Mark All Read

administration.notifications.mark.read

Write. Scope: administration.write, admin. Contract: route_inferred. Admin Notifications Mark Read

administration.notifications.pulse

Write. Scope: administration.write, admin. Contract: route_inferred. Admin Notifications Pulse

administration.online.list

Read. Scope: administration.read, admin. Contract: declared_dynamic. Admin Online List

administration.presence.ping

Write. Scope: administration.write, admin. Contract: declared_dynamic. Admin Presence Ping

administration.realtime.token

Write. Scope: administration.write, admin. Contract: route_inferred. Admin Realtime Token

एनालिटिक्स (43)

analytics.add.widget

Write. Scope: analytics.write, admin. Contract: route_inferred. Dashboard Add Widget

analytics.analytics.connectors.catalog

Read. Scope: analytics.read, admin. Contract: declared_dynamic. Analytics Connectors Catalog

analytics.analytics.data

Read. Scope: analytics.read, admin. Contract: route_inferred. Analytics Data

analytics.analytics.export

Read. Scope: analytics.read, admin. Contract: route_inferred. Analytics Export

analytics.analytics.export.csv

Read. Scope: analytics.read, admin. Contract: route_inferred. Analytics Export Csv

analytics.analytics.import

Write. Scope: analytics.write, admin. Contract: route_inferred. Analytics Import

analytics.analytics.report

Write. Scope: analytics.write, admin. Contract: route_inferred. Analytics Report

analytics.analytics.segments.delete

Write. Scope: analytics.write, admin. Contract: route_inferred. Analytics Segments Delete

analytics.analytics.segments.list

Read. Scope: analytics.read, admin. Contract: declared_dynamic. Analytics Segments List

analytics.analytics.segments.save

Write. Scope: analytics.write, admin. Contract: route_inferred. Analytics Segments Save

analytics.analytics.status

Read. Scope: analytics.read, admin. Contract: declared_dynamic. Analytics Status

analytics.clear.all

Write. Scope: analytics.write, admin. Contract: declared_dynamic. Replay Clear All

analytics.compute

Read. Scope: analytics.read, admin. Contract: route_inferred. Funnels Compute

analytics.create

Write. Scope: analytics.write, admin. Contract: route_inferred. Ab Test Create

analytics.create.route.dashboard.create

Write. Scope: analytics.write, admin. Contract: route_inferred. Dashboard Create

analytics.create.route.report.create

Write. Scope: analytics.write, admin. Contract: route_inferred. Report Create

analytics.delete

Write. Scope: analytics.write, admin. Contract: route_inferred. Ab Test Delete

analytics.delete.route.dashboard.delete

Write. Scope: analytics.write, admin. Contract: route_inferred. Dashboard Delete

analytics.delete.route.funnels.delete

Write. Scope: analytics.write, admin. Contract: route_inferred. Funnels Delete

analytics.delete.route.report.delete

Write. Scope: analytics.write, admin. Contract: route_inferred. Report Delete

analytics.events

Read. Scope: analytics.read, admin. Contract: route_inferred. Replay Events

analytics.export

Read. Scope: analytics.read, admin. Contract: source_inferred. Analytics Export

analytics.get

Read. Scope: analytics.read, admin. Contract: route_inferred. Dashboard Get

analytics.layout.save

Write. Scope: analytics.write, admin. Contract: route_inferred. Dashboard Layout Save

analytics.list

Read. Scope: analytics.read, admin. Contract: declared_dynamic. Ab Test List

analytics.list.route.dashboard.list

Read. Scope: analytics.read, admin. Contract: declared_dynamic. Dashboard List

analytics.list.route.funnels.list

Read. Scope: analytics.read, admin. Contract: declared_dynamic. Funnels List

analytics.list.route.report.list

Read. Scope: analytics.read, admin. Contract: declared_dynamic. Report List

analytics.remove.widget

Write. Scope: analytics.write, admin. Contract: route_inferred. Dashboard Remove Widget

analytics.rename

Write. Scope: analytics.write, admin. Contract: route_inferred. Dashboard Rename

analytics.results

Read. Scope: analytics.read, admin. Contract: route_inferred. Ab Test Results

analytics.save

Write. Scope: analytics.write, admin. Contract: route_inferred. Funnels Save

analytics.save.widgets

Write. Scope: analytics.write, admin. Contract: route_inferred. Dashboard Save Widgets

analytics.scheduled.list

Read. Scope: analytics.read, admin. Contract: explicit. List scheduled analytics reports for an operator Required fields: admin_id.

analytics.sections.list

Read. Scope: analytics.read, admin. Contract: explicit. List analytics report sections and date presets

analytics.send.now

Write. Scope: analytics.write, admin. Contract: route_inferred. Report Send Now

analytics.sessions

Read. Scope: analytics.read, admin. Contract: route_inferred. Replay Sessions

analytics.step.visitors

Read. Scope: analytics.read, admin. Contract: route_inferred. Funnels Step Visitors

analytics.timeline

Read. Scope: analytics.read, admin. Contract: route_inferred. Replay Timeline

analytics.toggle.shared

Write. Scope: analytics.write, admin. Contract: route_inferred. Dashboard Toggle Shared

analytics.update

Write. Scope: analytics.write, admin. Contract: route_inferred. Ab Test Update

analytics.update.route.report.update

Write. Scope: analytics.write, admin. Contract: route_inferred. Report Update

analytics.widget.data

Read. Scope: analytics.read, admin. Contract: route_inferred. Dashboard Widget Data

automations (6)

automations.actions.list

Read. Scope: automations.read, admin. Contract: explicit. List integration actions

automations.delete

Write. Scope: automations.write, admin. Contract: route_inferred. Workflow Delete

automations.list

Read. Scope: automations.read, admin. Contract: route_inferred. Workflow List

automations.runs.list

Read. Scope: automations.read, admin. Contract: explicit. List automation execution history

automations.save

Write. Scope: automations.write, admin. Contract: route_inferred. Workflow Save

automations.triggers.list

Read. Scope: automations.read, admin. Contract: explicit. List integration triggers

चैट (40)

chat.call.start

Write. Scope: chat.write, admin. Contract: route_inferred. Chat Call Start

chat.cobrowse.send

Write. Scope: chat.write, admin. Contract: route_inferred. Chat Cobrowse Send

chat.feedback

Read. Scope: chat.read, admin. Contract: route_inferred. Chat Feedback

chat.feedback.digest

Write. Scope: chat.write, admin. Contract: route_inferred. Chat Feedback Digest

chat.form.delete

Write. Scope: chat.write, admin. Contract: route_inferred. Chat Form Delete

chat.form.get

Read. Scope: chat.read, admin. Contract: route_inferred. Chat Form Get

chat.form.list

Read. Scope: chat.read, admin. Contract: declared_dynamic. Chat Form List

chat.form.save

Write. Scope: chat.write, admin. Contract: route_inferred. Chat Form Save

chat.form.set.default

Write. Scope: chat.write, admin. Contract: route_inferred. Chat Form Set Default

chat.meeting.decide

Write. Scope: chat.write, admin. Contract: route_inferred. Chat Meeting Decide

chat.meeting.outcome.set

Write. Scope: chat.write, admin. Contract: route_inferred. Chat Meeting Outcome Set

chat.meeting.type.delete

Write. Scope: chat.write, admin. Contract: route_inferred. Chat Meeting Type Delete

chat.meeting.type.save

Write. Scope: chat.write, admin. Contract: route_inferred. Chat Meeting Type Save

chat.meeting.types.list

Write. Scope: chat.write, admin. Contract: route_inferred. Chat Meeting Types List

chat.meetings.list

Write. Scope: chat.write, admin. Contract: route_inferred. Chat Meetings List

chat.online.admins

Write. Scope: chat.write, admin. Contract: route_inferred. Chat Online Admins

chat.permissions.list

Write. Scope: admin. Contract: route_inferred. Chat Permissions List

chat.permissions.revoke

Write. Scope: admin. Contract: route_inferred. Chat Permissions Revoke

chat.permissions.save

Write. Scope: admin. Contract: route_inferred. Chat Permissions Save

chat.permissions.upload.avatar

Write. Scope: admin. Contract: route_inferred. Chat Permissions Upload Avatar

chat.reaction.toggle

Write. Scope: chat.write, admin. Contract: route_inferred. Chat Reaction Toggle

chat.saved_replies.add

Write. Scope: chat.write, admin. Contract: source_inferred. Chat Saved Replies Add Retry-safe with idempotency_key.

chat.saved_replies.list

Read. Scope: chat.read, admin. Contract: explicit. List workspace and personal saved replies

chat.saved_replies.save

Write. Scope: chat.write, admin. Contract: source_inferred. Chat Saved Replies Save Retry-safe with idempotency_key.

chat.set.persona

Write. Scope: chat.write, admin. Contract: route_inferred. Chat Set Persona

chat.snooze.clear

Write. Scope: chat.write, admin. Contract: route_inferred. Chat Snooze Clear

chat.snooze.set

Write. Scope: chat.write, admin. Contract: route_inferred. Chat Snooze Set

chat.transfer.thread

Write. Scope: chat.write, admin. Contract: route_inferred. Chat Transfer Thread

chat.transfer.unread

Write. Scope: chat.write, admin. Contract: declared_dynamic. Chat Transfer Unread

chat.typing.preview

Write. Scope: chat.write, admin. Contract: route_inferred. Chat Typing Preview

chat.whisper.ai.summary

Write. Scope: chat.write, admin. Contract: route_inferred. Chat Whisper Ai Summary

chat.whisper.controls

Write. Scope: chat.write, admin. Contract: declared_dynamic. Chat Whisper Controls

chat.whisper.delete.room

Write. Scope: chat.write, admin. Contract: route_inferred. Chat Whisper Delete Room

chat.whisper.list

Write. Scope: chat.write, admin. Contract: route_inferred. Chat Whisper List

chat.whisper.mentions

Write. Scope: chat.write, admin. Contract: declared_dynamic. Chat Whisper Mentions

chat.whisper.rooms

Write. Scope: chat.write, admin. Contract: declared_dynamic. Chat Whisper Rooms

chat.whisper.save.controls

Write. Scope: chat.write, admin. Contract: route_inferred. Chat Whisper Save Controls

chat.whisper.send

Write. Scope: chat.write, admin. Contract: route_inferred. Chat Whisper Send

chat.whisper.targets

Write. Scope: chat.write, admin. Contract: declared_dynamic. Chat Whisper Targets

chat.whisper.unread

Write. Scope: chat.write, admin. Contract: route_inferred. Chat Whisper Unread

वाणिज्य (11)

commerce.analytics.snapshot

Read. Scope: commerce.read, analytics.read, admin. Contract: explicit. Read privacy-safe storefront analytics

commerce.orders.get

Read. Scope: commerce.read, admin. Contract: explicit. Get one Store order with its line items

commerce.orders.list

Read. Scope: commerce.read, admin. Contract: explicit. List Store orders in the bound workspace

commerce.pages.list

Read. Scope: commerce.read, admin. Contract: explicit. List storefront pages and promotional modals

commerce.products.get

Read. Scope: commerce.read, admin. Contract: explicit. Get one Store product with its variants Required fields: product_id.

commerce.products.list

Read. Scope: commerce.read, admin. Contract: explicit. List Store products in the bound workspace

commerce.quotes.create

Write. Scope: commerce.write, admin. Contract: explicit. Quote an item for a customer (creates nothing) Required fields: source, item_id. Retry-safe with idempotency_key.

commerce.readiness.get

Read. Scope: commerce.read, admin. Contract: explicit. Check demo readiness and merchant go-live readiness

commerce.refunds.list

Read. Scope: commerce.read, admin. Contract: explicit. List Store refund requests in the bound workspace

commerce.storefront.catalog.get

Read. Scope: commerce.read, admin. Contract: explicit. Discover Store themes, designs, blocks and promotional shells

commerce.storefront.get

Read. Scope: commerce.read, admin. Contract: explicit. Get the bound workspace storefront configuration

communications (21)

communications.auth.check

Read. Scope: admin. Contract: route_inferred. Email Auth Check

communications.campaign.delete

Write. Scope: communications.write, admin. Contract: route_inferred. Push Campaign Delete

communications.campaign.save

Write. Scope: communications.write, admin. Contract: route_inferred. Push Campaign Save

communications.campaign.send

Write. Scope: communications.write, admin. Contract: route_inferred. Push Campaign Send

communications.campaigns.list

Read. Scope: communications.read, admin. Contract: declared_dynamic. Push Campaigns List

communications.drafts.delete

Write. Scope: communications.write, admin. Contract: route_inferred. Email Drafts Delete

communications.drafts.list

Read. Scope: communications.read, admin. Contract: declared_dynamic. Email Drafts List

communications.drafts.save

Write. Scope: communications.write, admin. Contract: route_inferred. Email Drafts Save

communications.drafts.send

Write. Scope: communications.write, admin. Contract: route_inferred. Email Drafts Send

communications.mailboxes.delete

Write. Scope: communications.write, admin. Contract: route_inferred. Email Mailboxes Delete

communications.mailboxes.list

Read. Scope: communications.read, admin. Contract: route_inferred. Email Mailboxes List

communications.mailboxes.poll

Read. Scope: communications.read, admin. Contract: declared_dynamic. Email Mailboxes Poll

communications.mailboxes.save

Write. Scope: communications.write, admin. Contract: route_inferred. Email Mailboxes Save

communications.mailboxes.test

Read. Scope: communications.read, admin. Contract: declared_dynamic. Email Mailboxes Test

communications.pipe.regen.token

Write. Scope: communications.write, admin. Contract: declared_dynamic. Email Pipe Regen Token

communications.platform.list

Read. Scope: communications.read, admin. Contract: declared_dynamic. Email Platform List

communications.platform.send

Write. Scope: communications.write, admin. Contract: route_inferred. Email Platform Send

communications.settings.get

Read. Scope: communications.read, admin. Contract: declared_dynamic. Email Settings Get

communications.settings.save

Write. Scope: communications.write, admin. Contract: route_inferred. Email Settings Save

communications.settings.test

Read. Scope: communications.read, admin. Contract: route_inferred. Email Settings Test

communications.vapid.generate

Write. Scope: communications.write, admin. Contract: declared_dynamic. Push Vapid Generate

connector_builder (11)

connector_builder.export

Read. Scope: connector_builder.read, admin. Contract: explicit. Export a generated connector Required fields: slug.

connector_builder.generate

Write. Scope: connector_builder.write, admin. Contract: route_inferred. Generate a connector package Required fields: spec.

connector_builder.get

Read. Scope: connector_builder.read, admin. Contract: route_inferred. Load a Builder specification Required fields: slug.

connector_builder.import.curl

Write. Scope: connector_builder.write, admin. Contract: route_inferred. Import cURL into Connector Builder

connector_builder.import.openapi

Write. Scope: connector_builder.write, admin. Contract: route_inferred. Import OpenAPI into Connector Builder

connector_builder.import.postman

Write. Scope: connector_builder.write, admin. Contract: route_inferred. Import Postman into Connector Builder

connector_builder.list

Read. Scope: connector_builder.read, admin. Contract: declared_dynamic. List Builder connectors

connector_builder.profiles

Read. Scope: connector_builder.read, connectors.read, admin. Contract: source_inferred. List Connector Builder profiles and capability contracts

connector_builder.test

Write. Scope: connector_builder.write, admin. Contract: route_inferred. Run Builder conformance tests Required fields: slug.

connector_builder.update

Write. Scope: connector_builder.write, admin. Contract: route_inferred. Update a generated connector Required fields: slug, spec.

connector_builder.validate

Read. Scope: connector_builder.read, admin. Contract: route_inferred. Validate a Builder specification Required fields: spec.

connectors (51)

connectors.action

Write. Scope: connectors.write, admin. Contract: route_inferred. Connectors Action

connectors.backfill

Write. Scope: connectors.write, admin. Contract: route_inferred. Start connector backfill Required fields: slug.

connectors.backfill.route.connectors.backfill

Write. Scope: connectors.write, admin. Contract: route_inferred. Connectors Backfill

connectors.backfill.status

Read. Scope: connectors.read, admin. Contract: route_inferred. Read connector backfill status Required fields: slug.

connectors.backfill.status.route.connectors.backfill.status

Read. Scope: connectors.read, admin. Contract: route_inferred. Connectors Backfill Status

connectors.builder.ai.actions

Read. Scope: connectors.read, admin. Contract: route_inferred. Connectors Builder Ai Actions

connectors.builder.ai.draft

Write. Scope: connectors.write, admin. Contract: route_inferred. Connectors Builder Ai Draft

connectors.builder.ai.handler

Read. Scope: connectors.read, admin. Contract: route_inferred. Connectors Builder Ai Handler

connectors.builder.ai.map

Write. Scope: connectors.write, admin. Contract: route_inferred. Connectors Builder Ai Map

connectors.builder.delete

Write. Scope: connectors.write, admin. Contract: route_inferred. Connectors Builder Delete

connectors.builder.dry.run

Write. Scope: connectors.write, admin. Contract: route_inferred. Connectors Builder Dry Run

connectors.builder.generate

Write. Scope: connectors.write, admin. Contract: route_inferred. Connectors Builder Generate

connectors.builder.import.curl

Write. Scope: connectors.write, admin. Contract: route_inferred. Connectors Builder Import Curl

connectors.builder.import.openapi

Write. Scope: connectors.write, admin. Contract: route_inferred. Connectors Builder Import Openapi

connectors.builder.import.postman

Write. Scope: connectors.write, admin. Contract: route_inferred. Connectors Builder Import Postman

connectors.builder.list

Read. Scope: connectors.read, admin. Contract: declared_dynamic. Connectors Builder List

connectors.builder.load

Read. Scope: connectors.read, admin. Contract: route_inferred. Connectors Builder Load

connectors.builder.marketplace.apply

Write. Scope: connectors.write, admin. Contract: route_inferred. Connectors Builder Marketplace Apply

connectors.builder.marketplace.link

Write. Scope: connectors.write, admin. Contract: route_inferred. Connectors Builder Marketplace Link

connectors.builder.marketplace.status

Read. Scope: connectors.read, admin. Contract: declared_dynamic. Connectors Builder Marketplace Status

connectors.builder.marketplace.submit

Write. Scope: connectors.write, admin. Contract: route_inferred. Connectors Builder Marketplace Submit

connectors.builder.schema

Read. Scope: connectors.read, admin. Contract: declared_dynamic. Connectors Builder Schema

connectors.builder.test

Read. Scope: connectors.read, admin. Contract: route_inferred. Connectors Builder Test

connectors.builder.test.action

Read. Scope: connectors.read, admin. Contract: route_inferred. Connectors Builder Test Action

connectors.builder.update

Write. Scope: connectors.write, admin. Contract: route_inferred. Connectors Builder Update

connectors.builder.validate

Read. Scope: connectors.read, admin. Contract: route_inferred. Connectors Builder Validate

connectors.contacts.import

Write. Scope: connectors.write, admin. Contract: route_inferred. Connector Contacts Import

connectors.contract

Read. Scope: connectors.read, connector_builder.read, admin. Contract: source_inferred. Read the canonical connector capability contract

connectors.customers.sync

Write. Scope: connectors.write, admin. Contract: route_inferred. Synchronize connector customers Required fields: slug.

connectors.disable

Write. Scope: connectors.write, admin. Contract: route_inferred. Disable a connector Required fields: slug.

connectors.disable.route.connectors.disable

Write. Scope: connectors.write, admin. Contract: route_inferred. Connectors Disable

connectors.email.account.department

Read. Scope: connectors.read, admin. Contract: route_inferred. Connector Email Account Department

connectors.email.account.remove

Write. Scope: connectors.write, admin. Contract: route_inferred. Connector Email Account Remove

connectors.email.account.routing

Read. Scope: connectors.read, admin. Contract: route_inferred. Connector Email Account Routing

connectors.enable

Write. Scope: connectors.write, admin. Contract: route_inferred. Enable a connector Required fields: slug.

connectors.enable.route.connectors.enable

Write. Scope: connectors.write, admin. Contract: route_inferred. Connectors Enable

connectors.get

Read. Scope: connectors.read, admin. Contract: source_inferred. Connectors Get

connectors.get.route.connectors.get

Read. Scope: connectors.read, admin. Contract: route_inferred. Connectors Get

connectors.install

Write. Scope: connectors.write, admin. Contract: route_inferred. Connectors Install

connectors.integrity.scan

Read. Scope: connectors.read, admin. Contract: declared_dynamic. Connector Integrity Scan

connectors.list

Read. Scope: connectors.read, admin. Contract: explicit. List installed connectors and capabilities

connectors.list.route.connectors.list

Read. Scope: connectors.read, admin. Contract: declared_dynamic. Connectors List

connectors.oauth.start

Write. Scope: connectors.write, admin. Contract: route_inferred. Connector Oauth Start

connectors.settings.get

Read. Scope: connectors.read, admin. Contract: route_inferred. Read connector settings Required fields: slug.

connectors.settings.save

Write. Scope: connectors.write, admin. Contract: route_inferred. Save connector settings Required fields: slug, settings.

connectors.shared.oauth.delete

Write. Scope: connectors.write, admin. Contract: route_inferred. Connector Shared Oauth Delete

connectors.sync.customers

Write. Scope: connectors.write, admin. Contract: route_inferred. Connectors Sync Customers

connectors.test

Read. Scope: connectors.read, admin. Contract: source_inferred. Connectors Test

connectors.test.route.connectors.test

Read. Scope: connectors.read, admin. Contract: route_inferred. Connectors Test

connectors.uninstall

Write. Scope: connectors.write, admin. Contract: route_inferred. Connectors Uninstall

connectors.workflow.recipes

Read. Scope: connectors.read, admin. Contract: route_inferred. Connectors Workflow Recipes

conversations (38)

conversations.ai.draft

Write. Scope: conversations.write, admin. Contract: route_inferred. Admin Client Chat Ai Draft

conversations.ai.rewrite

Write. Scope: conversations.write, admin. Contract: route_inferred. Admin Client Chat Ai Rewrite

conversations.archive

Write. Scope: conversations.write, admin. Contract: route_inferred. Admin Client Chat Archive

conversations.assign

Write. Scope: conversations.write, admin. Contract: route_inferred. Admin Client Chat Assign

conversations.assignees

Write. Scope: conversations.write, admin. Contract: declared_dynamic. Admin Client Chat Assignees

conversations.bulk

Write. Scope: conversations.write, admin. Contract: route_inferred. Admin Client Chat Bulk

conversations.clear

Write. Scope: conversations.write, admin. Contract: route_inferred. Admin Client Chat Clear

conversations.clear.all

Write. Scope: conversations.write, admin. Contract: route_inferred. Admin Client Chat Clear All

conversations.customer.tickets

Write. Scope: conversations.write, admin. Contract: declared_dynamic. Admin Client Chat Customer Tickets

conversations.decline

Write. Scope: conversations.write, admin. Contract: route_inferred. Admin Client Chat Decline

conversations.delete

Write. Scope: conversations.write, admin. Contract: route_inferred. Admin Client Chat Delete

conversations.delete.last

Write. Scope: conversations.write, admin. Contract: route_inferred. Admin Client Chat Delete Last

conversations.edit.last

Write. Scope: conversations.write, admin. Contract: route_inferred. Admin Client Chat Edit Last

conversations.export

Write. Scope: conversations.write, admin. Contract: route_inferred. Admin Client Chat Export

conversations.forget.visitor

Write. Scope: conversations.write, admin. Contract: route_inferred. Admin Client Chat Forget Visitor

conversations.get

Read. Scope: conversations.read, admin. Contract: source_inferred. Conversations Get

conversations.history

Write. Scope: conversations.write, admin. Contract: route_inferred. Admin Client Chat History

conversations.list

Read. Scope: conversations.read, admin. Contract: source_inferred. Conversations List

conversations.messages

Read. Scope: conversations.read, admin. Contract: source_inferred. Conversations Messages

conversations.ratings.list

Read. Scope: conversations.read, admin. Contract: explicit. List rated Client Chat conversations

conversations.resolve

Write. Scope: conversations.write, admin. Contract: route_inferred. Admin Client Chat Resolve

conversations.saved.replies

Write. Scope: conversations.write, admin. Contract: declared_dynamic. Admin Client Chat Saved Replies

conversations.saved.reply.add

Write. Scope: conversations.write, admin. Contract: route_inferred. Admin Client Chat Saved Reply Add

conversations.saved.reply.ai.generate

Write. Scope: conversations.write, admin. Contract: route_inferred. Admin Client Chat Saved Reply Ai Generate

conversations.saved.reply.delete

Write. Scope: conversations.write, admin. Contract: route_inferred. Admin Client Chat Saved Reply Delete

conversations.saved.reply.save

Write. Scope: conversations.write, admin. Contract: route_inferred. Admin Client Chat Saved Reply Save

conversations.send

Write. Scope: conversations.write, admin. Contract: source_inferred. Conversations Send Retry-safe with idempotency_key.

conversations.send.route.admin.client.chat.send

Write. Scope: conversations.write, admin. Contract: route_inferred. Admin Client Chat Send

conversations.tags.set

Write. Scope: conversations.write, admin. Contract: route_inferred. Admin Client Chat Tags Set

conversations.thread

Write. Scope: conversations.write, admin. Contract: route_inferred. Admin Client Chat Thread

conversations.threads

Write. Scope: conversations.write, admin. Contract: route_inferred. Admin Client Chat Threads

conversations.toggle

Write. Scope: conversations.write, admin. Contract: route_inferred. Admin Client Chat Toggle

conversations.toggle.attachments

Write. Scope: conversations.write, admin. Contract: route_inferred. Admin Client Chat Toggle Attachments

conversations.toggle.call.button

Write. Scope: conversations.write, admin. Contract: route_inferred. Admin Client Chat Toggle Call Button

conversations.typing

Write. Scope: conversations.write, admin. Contract: route_inferred. Admin Client Chat Typing

conversations.unarchive

Write. Scope: conversations.write, admin. Contract: route_inferred. Admin Client Chat Unarchive

conversations.update

Write. Scope: conversations.write, admin. Contract: explicit. Update a conversation status, assignment or subject Retry-safe with idempotency_key.

conversations.upload

Write. Scope: conversations.write, admin. Contract: route_inferred. Admin Client Chat Upload

chrong (260)

crm.ab.results

Read. Scope: crm.read, admin. Contract: route_inferred. Crm Ab Results

crm.access.set

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Access Set

crm.access_log.list

Read. Scope: admin. Contract: source_inferred. Crm Access Log List

crm.account.health

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Account Health

crm.account.health.board

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Account Health Board

crm.account.health.refresh

Write. Scope: crm.write, admin. Contract: declared_dynamic. Crm Account Health Refresh

crm.account.plan.get

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Account Plan Get

crm.account.plan.save

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Account Plan Save

crm.account.plans.due

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Account Plans Due

crm.account.timeline

Read. Scope: crm.read, admin. Contract: route_inferred. Crm Account Timeline

crm.activities.list

Read. Scope: crm.read. Contract: explicit. List CRM contact activities

crm.activities.record

Write. Scope: crm.write. Contract: explicit. Record a CRM contact activity Required fields: contact_id, activity_type. Retry-safe with idempotency_key.

crm.activity.feed

Read. Scope: crm.read, admin. Contract: route_inferred. Crm Activity Feed

crm.agent.toggle

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Agent Toggle

crm.ai.policy.get

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Ai Policy Get

crm.ai.policy.save

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Ai Policy Save

crm.ai.policy.simulate

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Ai Policy Simulate

crm.ai.trace

Read. Scope: crm.read, admin. Contract: route_inferred. Crm Ai Trace

crm.approval.decide

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Approval Decide

crm.approval.delegate.set

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Approval Delegate Set

crm.approval.list

Read. Scope: crm.read, admin. Contract: route_inferred. Crm Approval List

crm.approval.policy.get

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Approval Policy Get

crm.approval.policy.save

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Approval Policy Save

crm.approval.settings

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Approval Settings

crm.approve.apply

Write. Scope: crm.write, admin. Contract: declared_dynamic. Crm Approve Apply

crm.approve.list

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Approve List

crm.approve.reject

Write. Scope: crm.write, admin. Contract: declared_dynamic. Crm Approve Reject

crm.approve.update

Write. Scope: crm.write, admin. Contract: declared_dynamic. Crm Approve Update

crm.ask

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Ask

crm.assign.owner

Write. Scope: crm.write, admin. Contract: route_inferred. Contact Assign Owner

crm.assignment.get

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Assignment Get

crm.assignment.save

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Assignment Save

crm.attachment.delete

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Attachment Delete

crm.attachment.list

Read. Scope: crm.read, admin. Contract: route_inferred. Crm Attachment List

crm.attachment.upload

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Attachment Upload

crm.autobook.meeting

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Autobook Meeting

crm.autodeal.mode

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Autodeal Mode

crm.book.meeting

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Book Meeting

crm.booking.link.save

Write. Scope: crm.write, admin. Contract: declared_dynamic. Crm Booking Link Save

crm.booking.links.list

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Booking Links List

crm.build.apply

Write. Scope: crm.write, admin. Contract: declared_dynamic. Crm Build Apply

crm.build.get

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Build Get

crm.build.list

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Build List

crm.build.plan

Write. Scope: crm.write, admin. Contract: declared_dynamic. Crm Build Plan

crm.build.rollback

Write. Scope: crm.write, admin. Contract: declared_dynamic. Crm Build Rollback

crm.bulk

Write. Scope: crm.write, admin. Contract: route_inferred. Contact Bulk

crm.bundle.set

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Bundle Set

crm.calendar.status

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Calendar Status

crm.capture.status

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Capture Status

crm.comm.policy.get

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Comm Policy Get

crm.comm.policy.save

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Comm Policy Save

crm.command.snapshot

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Command Snapshot

crm.companies.list

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Companies List

crm.company.hierarchy

Read. Scope: crm.read, admin. Contract: route_inferred. Crm Company Hierarchy

crm.company.save

Write. Scope: crm.write, admin. Contract: declared_dynamic. Crm Company Save

crm.company.set.parent

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Company Set Parent

crm.company.suggest.related

Read. Scope: crm.read, admin. Contract: route_inferred. Crm Company Suggest Related

crm.connectors.catalog

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Connectors Catalog

crm.consent_log.list

Read. Scope: crm.read. Contract: source_inferred. Crm Consent Log List

crm.contact.churn

Read. Scope: crm.read, admin. Contract: route_inferred. Crm Contact Churn

crm.contact.draft.email

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Contact Draft Email

crm.contact.enrich

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Contact Enrich

crm.contact.propose.email

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Contact Propose Email

crm.contacts.detail

Read. Scope: crm.read. Contract: source_inferred. Crm Contacts Detail

crm.contacts.erase

Write. Scope: admin. Contract: source_inferred. Crm Contacts Erase Retry-safe with idempotency_key.

crm.contacts.export

Read. Scope: crm.read. Contract: source_inferred. Crm Contacts Export

crm.contacts.import.list

Read. Scope: crm.read. Contract: source_inferred. Crm Contacts Import List

crm.contacts.import.run

Write. Scope: crm.write. Contract: source_inferred. Crm Contacts Import Run Retry-safe with idempotency_key.

crm.contacts.list

Read. Scope: crm.read. Contract: source_inferred. Crm Contacts List

crm.contacts.next_action

Read. Scope: crm.read. Contract: source_inferred. Crm Contacts Next Action

crm.contacts.open_chat

Write. Scope: crm.write. Contract: source_inferred. Crm Contacts Open Chat Retry-safe with idempotency_key.

crm.contacts.open_ticket

Write. Scope: crm.write. Contract: source_inferred. Crm Contacts Open Ticket Retry-safe with idempotency_key.

crm.contacts.resync

Write. Scope: crm.write. Contract: source_inferred. Crm Contacts Resync Retry-safe with idempotency_key.

crm.contacts.save

Write. Scope: crm.write. Contract: source_inferred. Crm Contacts Save Retry-safe with idempotency_key.

crm.contacts.send_email

Write. Scope: crm.write. Contract: source_inferred. Crm Contacts Send Email Retry-safe with idempotency_key.

crm.contacts.upsert

Write. Scope: crm.write. Contract: explicit. Crm Contacts Upsert Required fields: email. Retry-safe with idempotency_key.

crm.contract.amend

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Contract Amend

crm.contract.price.set

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Contract Price Set

crm.contract.save

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Contract Save

crm.contract.usage

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Contract Usage

crm.contracts.list

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Contracts List

crm.conversation.intel

Write. Scope: crm.write, admin. Contract: declared_dynamic. Crm Conversation Intel

crm.conversions.goals.delete

Write. Scope: crm.write. Contract: source_inferred. Crm Conversions Goals Delete Retry-safe with idempotency_key.

crm.conversions.goals.list

Read. Scope: crm.read. Contract: source_inferred. Crm Conversions Goals List

crm.conversions.goals.save

Write. Scope: crm.write. Contract: source_inferred. Crm Conversions Goals Save Retry-safe with idempotency_key.

crm.conversions.list

Read. Scope: crm.read. Contract: source_inferred. Crm Conversions List

crm.conversions.record

Write. Scope: crm.write. Contract: source_inferred. Crm Conversions Record Retry-safe with idempotency_key.

crm.create.video.meeting

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Create Video Meeting

crm.customer.auto.sync

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Customer Auto Sync

crm.customer.auto.sync.status

Read. Scope: crm.read, admin. Contract: route_inferred. Crm Customer Auto Sync Status

crm.customer.emails

Read. Scope: crm.read, admin. Contract: route_inferred. Crm Customer Emails

crm.customer.payments

Read. Scope: crm.read, admin. Contract: route_inferred. Crm Customer Payments

crm.data.steward.bulk.propose

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Data Steward Bulk Propose

crm.data.steward.inbox

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Data Steward Inbox

crm.data.steward.propose

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Data Steward Propose

crm.deal.advance

Write. Scope: crm.write, admin. Contract: declared_dynamic. Crm Deal Advance

crm.deal.coach

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Deal Coach

crm.deal.coach.action

Write. Scope: crm.write, admin. Contract: declared_dynamic. Crm Deal Coach Action

crm.deal.get

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Deal Get

crm.deal.save

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Deal Save

crm.deal.splits.get

Read. Scope: crm.read, admin. Contract: route_inferred. Crm Deal Splits Get

crm.deal.splits.set

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Deal Splits Set

crm.deals.advance

Write. Scope: crm.write. Contract: explicit. Advance a CRM deal to another stage Required fields: deal_id, stage_id. Retry-safe with idempotency_key.

crm.deals.create

Write. Scope: crm.write. Contract: explicit. Create a CRM deal Required fields: title. Retry-safe with idempotency_key.

crm.deals.detail

Read. Scope: crm.read. Contract: explicit. Get one CRM deal Required fields: deal_id.

crm.deals.list

Read. Scope: crm.read. Contract: explicit. List CRM deals

crm.deals.list.route.crm.deals.list

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Deals List

crm.deals.update

Write. Scope: crm.write. Contract: explicit. Update a CRM deal Required fields: deal_id. Retry-safe with idempotency_key.

crm.detail

Write. Scope: crm.write, admin. Contract: route_inferred. Contact Detail

crm.draft.outreach

Write. Scope: crm.write, admin. Contract: declared_dynamic. Crm Draft Outreach

crm.enrich.account

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Enrich Account

crm.erase

Write. Scope: crm.write, admin. Contract: route_inferred. Contact Erase

crm.events.catalog

Read. Scope: crm.read. Contract: explicit. List subscribable CRM domain events

crm.events.list

Read. Scope: crm.read. Contract: explicit. List durable CRM domain events

crm.export

Write. Scope: crm.write, admin. Contract: route_inferred. Contact Export

crm.export.all

Read. Scope: crm.read, admin. Contract: route_inferred. Contact Export All

crm.field.add

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Field Add

crm.field.policy.get

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Field Policy Get

crm.field.policy.save

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Field Policy Save

crm.field.remove

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Field Remove

crm.fields.list

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Fields List

crm.forecast.board

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Forecast Board

crm.forecast.snapshot

Write. Scope: crm.write, admin. Contract: declared_dynamic. Crm Forecast Snapshot

crm.form.save

Write. Scope: crm.write, admin. Contract: declared_dynamic. Crm Form Save

crm.forms.list

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Forms List

crm.health.repair.catalog

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Health Repair Catalog

crm.health.smoke

Write. Scope: crm.write, admin. Contract: declared_dynamic. Crm Health Smoke

crm.health.snapshot

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Health Snapshot

crm.home.persona.set

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Home Persona Set

crm.identity.rules.get

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Identity Rules Get

crm.identity.rules.save

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Identity Rules Save

crm.import.list

Read. Scope: crm.read, admin. Contract: route_inferred. Contact Import List

crm.import.run

Write. Scope: crm.write, admin. Contract: route_inferred. Contact Import Run

crm.inbound.activity

Read. Scope: crm.read. Contract: source_inferred. Crm Inbound Activity

crm.inbound.endpoints.delete

Write. Scope: crm.write. Contract: source_inferred. Crm Inbound Endpoints Delete Retry-safe with idempotency_key.

crm.inbound.endpoints.list

Read. Scope: crm.read. Contract: source_inferred. Crm Inbound Endpoints List

crm.inbound.endpoints.save

Write. Scope: crm.write. Contract: source_inferred. Crm Inbound Endpoints Save Retry-safe with idempotency_key.

crm.inbound.endpoints.test

Write. Scope: crm.write. Contract: source_inferred. Crm Inbound Endpoints Test Retry-safe with idempotency_key.

crm.leaderboard

Read. Scope: crm.read, admin. Contract: route_inferred. Crm Leaderboard

crm.lifecycle.evaluate

Write. Scope: crm.write. Contract: source_inferred. Crm Lifecycle Evaluate Retry-safe with idempotency_key.

crm.lifecycle.rules.delete

Write. Scope: crm.write. Contract: source_inferred. Crm Lifecycle Rules Delete Retry-safe with idempotency_key.

crm.lifecycle.rules.list

Read. Scope: crm.read. Contract: source_inferred. Crm Lifecycle Rules List

crm.lifecycle.rules.save

Write. Scope: crm.write. Contract: source_inferred. Crm Lifecycle Rules Save Retry-safe with idempotency_key.

crm.list

Read. Scope: crm.read, admin. Contract: route_inferred. Contacts List

crm.mailbox.status

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Mailbox Status

crm.meeting.book

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Meeting Book

crm.meeting.cancel

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Meeting Cancel

crm.meeting.list

Read. Scope: crm.read, admin. Contract: route_inferred. Crm Meeting List

crm.meeting.reschedule.accept

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Meeting Reschedule Accept

crm.meeting.reschedule.reject

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Meeting Reschedule Reject

crm.merge

Write. Scope: crm.write, admin. Contract: route_inferred. Contact Merge

crm.message.send

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Message Send

crm.messaging.provider.delete

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Messaging Provider Delete

crm.messaging.provider.save

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Messaging Provider Save

crm.messaging.provider.test

Read. Scope: crm.read, admin. Contract: route_inferred. Crm Messaging Provider Test

crm.messaging.status

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Messaging Status

crm.next.action

Write. Scope: crm.write, admin. Contract: route_inferred. Contact Next Action

crm.object.save

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Object Save

crm.objects.list

Read. Scope: crm.read, admin. Contract: route_inferred. Crm Objects List

crm.offline.pull

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Offline Pull

crm.offline.push

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Offline Push

crm.open.chat

Read. Scope: crm.read, admin. Contract: route_inferred. Contact Open Chat

crm.open.ticket

Write. Scope: crm.write, admin. Contract: route_inferred. Contact Open Ticket

crm.outreach.campaigns.delete

Write. Scope: crm.write. Contract: source_inferred. Crm Outreach Campaigns Delete Retry-safe with idempotency_key.

crm.outreach.campaigns.list

Read. Scope: crm.read. Contract: source_inferred. Crm Outreach Campaigns List

crm.outreach.campaigns.save

Write. Scope: crm.write. Contract: source_inferred. Crm Outreach Campaigns Save Retry-safe with idempotency_key.

crm.outreach.campaigns.send

Write. Scope: crm.write. Contract: source_inferred. Crm Outreach Campaigns Send Retry-safe with idempotency_key.

crm.outreach.send

Write. Scope: crm.write. Contract: source_inferred. Crm Outreach Send Retry-safe with idempotency_key.

crm.outreach.templates.delete

Write. Scope: crm.write. Contract: source_inferred. Crm Outreach Templates Delete Retry-safe with idempotency_key.

crm.outreach.templates.list

Read. Scope: crm.read. Contract: source_inferred. Crm Outreach Templates List

crm.outreach.templates.preview

Read. Scope: crm.read. Contract: source_inferred. Crm Outreach Templates Preview

crm.outreach.templates.save

Write. Scope: crm.write. Contract: source_inferred. Crm Outreach Templates Save Retry-safe with idempotency_key.

crm.payments.status

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Payments Status

crm.pipeline.data

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Pipeline Data

crm.price.resolve

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Price Resolve

crm.pricebook.entry.set

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Pricebook Entry Set

crm.pricebook.save

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Pricebook Save

crm.pricebooks.list

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Pricebooks List

crm.privacy_settings.get

Read. Scope: crm.read. Contract: source_inferred. Crm Privacy Settings Get

crm.privacy_settings.save

Write. Scope: admin. Contract: source_inferred. Crm Privacy Settings Save Retry-safe with idempotency_key.

crm.product.archive

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Product Archive

crm.product.revenue

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Product Revenue

crm.product.save

Write. Scope: crm.write, admin. Contract: declared_dynamic. Crm Product Save

crm.products.list

Read. Scope: crm.read, admin. Contract: route_inferred. Crm Products List

crm.propose.meeting

Read. Scope: crm.read, admin. Contract: route_inferred. Crm Propose Meeting

crm.propose.outreach

Write. Scope: crm.write, admin. Contract: declared_dynamic. Crm Propose Outreach

crm.prospecting.dashboard

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Prospecting Dashboard

crm.prospecting.icp.save

Write. Scope: crm.write, admin. Contract: declared_dynamic. Crm Prospecting Icp Save

crm.prospecting.import

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Prospecting Import

crm.prospecting.research

Write. Scope: crm.write, admin. Contract: declared_dynamic. Crm Prospecting Research

crm.prospecting.score

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Prospecting Score

crm.prospecting.sequence

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Prospecting Sequence

crm.qualification.checklist.get

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Qualification Checklist Get

crm.qualification.checklist.save

Write. Scope: crm.write, admin. Contract: declared_dynamic. Crm Qualification Checklist Save

crm.quota.save

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Quota Save

crm.quote.get

Read. Scope: crm.read, admin. Contract: route_inferred. Crm Quote Get

crm.quote.save

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Quote Save

crm.quotes.list

Read. Scope: crm.read, admin. Contract: route_inferred. Crm Quotes List

crm.record.delete

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Record Delete

crm.record.fields.get

Read. Scope: crm.read, admin. Contract: route_inferred. Crm Record Fields Get

crm.record.fields.save

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Record Fields Save

crm.record.get

Read. Scope: crm.read, admin. Contract: route_inferred. Crm Record Get

crm.record.history

Read. Scope: crm.read, admin. Contract: route_inferred. Crm Record History

crm.record.save

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Record Save

crm.record.share.set

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Record Share Set

crm.record.share.unset

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Record Share Unset

crm.record.shares

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Record Shares

crm.records.list

Read. Scope: crm.read, admin. Contract: route_inferred. Crm Records List

crm.restore.email.consent

Write. Scope: crm.write, admin. Contract: route_inferred. Contact Restore Email Consent

crm.resync.from.platform

Write. Scope: crm.write, admin. Contract: route_inferred. Contact Resync From Platform

crm.retention.catalog

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Retention Catalog

crm.revert

Write. Scope: crm.write, admin. Contract: declared_dynamic. Crm Revert

crm.runtime.policy.get

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Runtime Policy Get

crm.runtime.policy.remote.wipe

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Runtime Policy Remote Wipe

crm.runtime.policy.save

Write. Scope: crm.write, admin. Contract: declared_dynamic. Crm Runtime Policy Save

crm.save

Write. Scope: crm.write, admin. Contract: route_inferred. Contact Save

crm.scoring.rule.ai

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Scoring Rule Ai

crm.scoring.rule.delete

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Scoring Rule Delete

crm.scoring.rule.list

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Scoring Rule List

crm.scoring.rule.save

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Scoring Rule Save

crm.segments.delete

Write. Scope: crm.write. Contract: source_inferred. Crm Segments Delete Retry-safe with idempotency_key.

crm.segments.list

Read. Scope: crm.read. Contract: source_inferred. Crm Segments List

crm.segments.members

Read. Scope: crm.read. Contract: source_inferred. Crm Segments Members

crm.segments.preview

Read. Scope: crm.read. Contract: source_inferred. Crm Segments Preview

crm.segments.save

Write. Scope: crm.write. Contract: source_inferred. Crm Segments Save Retry-safe with idempotency_key.

crm.segments.suggestions.accept

Write. Scope: crm.write. Contract: source_inferred. Crm Segments Suggestions Accept Retry-safe with idempotency_key.

crm.segments.suggestions.dismiss

Write. Scope: crm.write. Contract: source_inferred. Crm Segments Suggestions Dismiss Retry-safe with idempotency_key.

crm.segments.suggestions.list

Read. Scope: crm.read. Contract: source_inferred. Crm Segments Suggestions List

crm.semantic.search

Read. Scope: crm.read, admin. Contract: route_inferred. Crm Semantic Search

crm.send.email

Write. Scope: crm.write, admin. Contract: route_inferred. Contact Send Email

crm.send.email.route.crm.send.email

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Send Email

crm.send.for.signature

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Send For Signature

crm.send.payment.link

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Send Payment Link

crm.sequence.action

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Sequence Action

crm.sequence.runs

Read. Scope: crm.read, admin. Contract: route_inferred. Crm Sequence Runs

crm.setup.status

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Setup Status

crm.sharing.rules.get

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Sharing Rules Get

crm.sharing.rules.save

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Sharing Rules Save

crm.subject.registry

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Subject Registry

crm.subscriptions.list

Read. Scope: crm.read, admin. Contract: route_inferred. Crm Subscriptions List

crm.subscriptions.rollup

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Subscriptions Rollup

crm.subscriptions.sync

Write. Scope: crm.write, admin. Contract: declared_dynamic. Crm Subscriptions Sync

crm.task.create

Write. Scope: crm.write, admin. Contract: declared_dynamic. Crm Task Create

crm.tasks.list

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Tasks List

crm.team.parent.set

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Team Parent Set

crm.team.rules.set

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Team Rules Set

crm.team.save

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Team Save

crm.teams.list

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Teams List

crm.territory.set

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Territory Set

crm.video.status

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Video Status

crm.views.delete

Write. Scope: crm.write, admin. Contract: declared_dynamic. Crm Views Delete

crm.views.list

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Views List

crm.views.save

Write. Scope: crm.write, admin. Contract: declared_dynamic. Crm Views Save

crm.webhooks.delete

Write. Scope: crm.write. Contract: source_inferred. Crm Webhooks Delete Retry-safe with idempotency_key.

crm.webhooks.list

Read. Scope: crm.read. Contract: explicit. List CRM outbound webhook endpoints and recent deliveries

crm.webhooks.save

Write. Scope: crm.write. Contract: source_inferred. Crm Webhooks Save Retry-safe with idempotency_key.

crm.webhooks.test

Write. Scope: crm.write. Contract: source_inferred. Crm Webhooks Test Retry-safe with idempotency_key.

crm.workflows.delete

Write. Scope: crm.write. Contract: source_inferred. Crm Workflows Delete Retry-safe with idempotency_key.

crm.workflows.list

Read. Scope: crm.read. Contract: source_inferred. Crm Workflows List

crm.workflows.save

Write. Scope: crm.write. Contract: source_inferred. Crm Workflows Save Retry-safe with idempotency_key.

ग्राहक (44)

customers.analyze

Write. Scope: customers.write, journey.write, admin. Contract: route_inferred. Analyze a customer journey with AI Required fields: client_id.

customers.behaviour

Read. Scope: admin. Contract: route_inferred. Cdp Behaviour

customers.behaviour.analyze

Write. Scope: admin. Contract: route_inferred. Cdp Behaviour Analyze

customers.chat.embed.backfill

Write. Scope: customers.write, admin. Contract: route_inferred. Client Chat Embed Backfill

customers.chat.embed.status

Read. Scope: customers.read, admin. Contract: declared_dynamic. Client Chat Embed Status

customers.chat.faq.ai.generate

Write. Scope: customers.write, admin. Contract: route_inferred. Client Chat Faq Ai Generate

customers.chat.faq.approve.all

Write. Scope: customers.write, admin. Contract: route_inferred. Client Chat Faq Approve All

customers.chat.faq.delete

Write. Scope: customers.write, admin. Contract: route_inferred. Client Chat Faq Delete

customers.chat.faq.delete.all

Write. Scope: customers.write, admin. Contract: declared_dynamic. Client Chat Faq Delete All

customers.chat.faq.export

Write. Scope: customers.write, admin. Contract: declared_dynamic. Client Chat Faq Export

customers.chat.faq.generate

Write. Scope: customers.write, admin. Contract: route_inferred. Client Chat Faq Generate

customers.chat.faq.import

Write. Scope: customers.write, admin. Contract: route_inferred. Client Chat Faq Import

customers.chat.faq.list

Write. Scope: customers.write, admin. Contract: route_inferred. Client Chat Faq List

customers.chat.faq.save

Write. Scope: customers.write, admin. Contract: route_inferred. Client Chat Faq Save

customers.chat.faq.set.help

Write. Scope: customers.write, admin. Contract: route_inferred. Client Chat Faq Set Help

customers.chat.faq.set.help.all

Write. Scope: customers.write, admin. Contract: route_inferred. Client Chat Faq Set Help All

customers.chat.faq.status

Write. Scope: customers.write, admin. Contract: route_inferred. Client Chat Faq Status

customers.chat.grant.upload

Write. Scope: customers.write, admin. Contract: route_inferred. Client Chat Grant Upload

customers.chat.help.set.slug

Write. Scope: customers.write, admin. Contract: route_inferred. Client Chat Help Set Slug

customers.chat.knowledge.crawl.step

Write. Scope: customers.write, admin. Contract: route_inferred. Client Chat Knowledge Crawl Step

customers.chat.knowledge.delete

Write. Scope: customers.write, admin. Contract: route_inferred. Client Chat Knowledge Delete

customers.chat.knowledge.delete.all

Write. Scope: customers.write, admin. Contract: declared_dynamic. Client Chat Knowledge Delete All

customers.chat.knowledge.delete.duplicates

Write. Scope: customers.write, admin. Contract: declared_dynamic. Client Chat Knowledge Delete Duplicates

customers.chat.knowledge.duplicates

Write. Scope: customers.write, admin. Contract: declared_dynamic. Client Chat Knowledge Duplicates

customers.chat.knowledge.export.json

Write. Scope: customers.write, admin. Contract: declared_dynamic. Client Chat Knowledge Export Json

customers.chat.knowledge.import.json

Write. Scope: customers.write, admin. Contract: route_inferred. Client Chat Knowledge Import Json

customers.chat.knowledge.preview

Write. Scope: customers.write, admin. Contract: route_inferred. Client Chat Knowledge Preview

customers.chat.knowledge.recrawl

Write. Scope: customers.write, admin. Contract: route_inferred. Client Chat Knowledge Recrawl

customers.chat.knowledge.test.url

Write. Scope: customers.write, admin. Contract: route_inferred. Client Chat Knowledge Test Url

customers.chat.revoke.upload

Write. Scope: customers.write, admin. Contract: route_inferred. Client Chat Revoke Upload

customers.chat.upload.agent.avatar

Write. Scope: customers.write, admin. Contract: declared_dynamic. Client Chat Upload Agent Avatar

customers.chat.upload.ai.avatar

Write. Scope: customers.write, admin. Contract: declared_dynamic. Client Chat Upload Ai Avatar

customers.chat.upload.icon

Write. Scope: customers.write, admin. Contract: declared_dynamic. Client Chat Upload Icon

customers.client.analyze

Write. Scope: admin. Contract: route_inferred. Cdp Client Analyze

customers.client.delete

Write. Scope: admin. Contract: route_inferred. Cdp Client Delete

customers.client.export

Write. Scope: admin. Contract: route_inferred. Cdp Client Export

customers.client.journey

Read. Scope: admin. Contract: route_inferred. Cdp Client Journey

customers.client.prepare.outreach

Write. Scope: customers.write, admin. Contract: route_inferred. Cdp Client Prepare Outreach

customers.clients.list

Read. Scope: admin. Contract: route_inferred. Cdp Clients List

customers.detail

Read. Scope: customers.read, admin. Contract: route_inferred. Client Detail

customers.get

Read. Scope: customers.read, crm.read, admin. Contract: route_inferred. Get a customer profile Required fields: client_id.

customers.journey

Read. Scope: customers.read, journey.read, admin. Contract: route_inferred. Get a complete customer journey Required fields: client_id.

customers.list

Read. Scope: customers.read, crm.read, admin. Contract: route_inferred. List known customers

customers.outreach.prepare

Write. Scope: customers.write, crm.write, admin. Contract: route_inferred. Prepare CRM outreach for a customer Required fields: client_id.

departments (1)

departments.list

Read. Scope: departments.read, admin. Contract: source_inferred. Departments List

ईमेल (2)

email.template.send

Write. Scope: email.write, admin. Contract: source_inferred. Send one governed workspace email template Required fields: template, to. Retry-safe with idempotency_key.

email.templates.list

Read. Scope: email.read, admin. Contract: source_inferred. List email templates available to this workspace

engagement (163)

engagement.ab.autowinner

Write. Scope: engagement.write, admin. Contract: route_inferred. Promo Ab Autowinner

engagement.ab.bandit

Write. Scope: engagement.write, admin. Contract: route_inferred. Promo Ab Bandit

engagement.address.get

Read. Scope: engagement.read, admin. Contract: declared_dynamic. Survey Address Get

engagement.address.save

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Address Save

engagement.ai.agent

Read. Scope: engagement.read, admin. Contract: route_inferred. Promo Ai Agent

engagement.ai.analyze

Write. Scope: engagement.write, admin. Contract: route_inferred. Promo Ai Analyze

engagement.ai.compile.profile

Read. Scope: engagement.read, admin. Contract: route_inferred. Promo Ai Compile Profile

engagement.ai.copy

Read. Scope: engagement.read, admin. Contract: route_inferred. Promo Ai Copy

engagement.ai.critique

Read. Scope: engagement.read, admin. Contract: declared_dynamic. Promo Ai Critique

engagement.ai.decide

Read. Scope: engagement.read, admin. Contract: route_inferred. Promo Ai Decide

engagement.ai.design

Read. Scope: engagement.read, admin. Contract: route_inferred. Promo Ai Design

engagement.ai.edit

Write. Scope: engagement.write, admin. Contract: route_inferred. Promo Ai Edit

engagement.ai.generate

Write. Scope: engagement.write, admin. Contract: route_inferred. Promo Ai Generate

engagement.ai.ideas

Read. Scope: engagement.read, admin. Contract: declared_dynamic. Promo Ai Ideas

engagement.ai.image

Write. Scope: engagement.write, admin. Contract: route_inferred. Promo Ai Image

engagement.ai.image.edit

Write. Scope: engagement.write, admin. Contract: route_inferred. Promo Ai Image Edit

engagement.ai.localize

Write. Scope: engagement.write, admin. Contract: route_inferred. Promo Ai Localize

engagement.ai.logo

Read. Scope: engagement.read, admin. Contract: route_inferred. Promo Ai Logo

engagement.ai.media.jobs

Read. Scope: engagement.read, admin. Contract: declared_dynamic. Promo Ai Media Jobs

engagement.ai.narrative

Read. Scope: engagement.read, admin. Contract: declared_dynamic. Promo Ai Narrative

engagement.ai.responsive

Read. Scope: engagement.read, admin. Contract: declared_dynamic. Promo Ai Responsive

engagement.ai.variants

Read. Scope: engagement.read, admin. Contract: route_inferred. Promo Ai Variants

engagement.ai.video.start

Write. Scope: engagement.write, admin. Contract: route_inferred. Promo Ai Video Start

engagement.ai.video.status

Write. Scope: engagement.write, admin. Contract: route_inferred. Promo Ai Video Status

engagement.approval.decide

Write. Scope: engagement.write, admin. Contract: route_inferred. Promo Approval Decide

engagement.approval.request

Write. Scope: engagement.write, admin. Contract: route_inferred. Promo Approval Request

engagement.approvals.list

Read. Scope: engagement.read, admin. Contract: route_inferred. Promo Approvals List

engagement.asset.delete

Write. Scope: engagement.write, admin. Contract: route_inferred. Promo Asset Delete

engagement.asset.upload

Write. Scope: engagement.write, admin. Contract: route_inferred. Promo Asset Upload

engagement.assets.list

Read. Scope: engagement.read, admin. Contract: declared_dynamic. Promo Assets List

engagement.audience.materialize

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Audience Materialize

engagement.audience.save

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Audience Save

engagement.audience.test

Read. Scope: engagement.read, admin. Contract: route_inferred. Promo Audience Test

engagement.audit.export

Read. Scope: engagement.read, admin. Contract: declared_dynamic. Promo Audit Export

engagement.autoresponder.get

Read. Scope: engagement.read, admin. Contract: route_inferred. Promo Autoresponder Get

engagement.autoresponder.save

Write. Scope: engagement.write, admin. Contract: route_inferred. Promo Autoresponder Save

engagement.bank.delete

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Bank Delete

engagement.bank.list

Read. Scope: engagement.read, admin. Contract: declared_dynamic. Survey Bank List

engagement.bank.save

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Bank Save

engagement.bank.used

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Bank Used

engagement.blackouts.get

Read. Scope: engagement.read, admin. Contract: declared_dynamic. Promo Blackouts Get

engagement.blackouts.save

Write. Scope: engagement.write, admin. Contract: route_inferred. Promo Blackouts Save

engagement.brand.kit.bootstrap

Write. Scope: engagement.write, admin. Contract: route_inferred. Promo Brand Kit Bootstrap

engagement.brand.kit.font.upload

Write. Scope: engagement.write, admin. Contract: route_inferred. Promo Brand Kit Font Upload

engagement.brand.kit.get

Read. Scope: engagement.read, admin. Contract: declared_dynamic. Promo Brand Kit Get

engagement.brand.kit.get.route.survey.brand.kit.get

Read. Scope: engagement.read, admin. Contract: declared_dynamic. Survey Brand Kit Get

engagement.brand.kit.save

Write. Scope: engagement.write, admin. Contract: declared_dynamic. Promo Brand Kit Save

engagement.brand.kit.save.route.survey.brand.kit.save

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Brand Kit Save

engagement.campaign.archive

Write. Scope: engagement.write, admin. Contract: route_inferred. Promo Campaign Archive

engagement.campaign.delete

Write. Scope: engagement.write, admin. Contract: route_inferred. Promo Campaign Delete

engagement.campaign.duplicate

Read. Scope: engagement.read, admin. Contract: route_inferred. Promo Campaign Duplicate

engagement.campaign.get

Read. Scope: engagement.read, admin. Contract: route_inferred. Promo Campaign Get

engagement.campaign.launch

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Campaign Launch

engagement.campaign.list

Read. Scope: engagement.read, admin. Contract: route_inferred. Promo Campaign List

engagement.campaign.pause

Read. Scope: engagement.read, admin. Contract: route_inferred. Promo Campaign Pause

engagement.campaign.preview

Read. Scope: engagement.read, admin. Contract: route_inferred. Promo Campaign Preview

engagement.campaign.publish

Write. Scope: engagement.write, admin. Contract: route_inferred. Promo Campaign Publish

engagement.campaign.rollback

Write. Scope: engagement.write, admin. Contract: route_inferred. Promo Campaign Rollback

engagement.campaign.save

Write. Scope: engagement.write, admin. Contract: route_inferred. Promo Campaign Save

engagement.campaign.save.route.survey.campaign.save

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Campaign Save

engagement.campaign.toggle

Write. Scope: engagement.write, admin. Contract: route_inferred. Promo Campaign Toggle

engagement.campaign.versions

Read. Scope: engagement.read, admin. Contract: route_inferred. Promo Campaign Versions

engagement.comment.add

Write. Scope: engagement.write, admin. Contract: route_inferred. Promo Comment Add

engagement.comments.add

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Comments Add

engagement.comments.delete

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Comments Delete

engagement.comments.list

Read. Scope: engagement.read, admin. Contract: route_inferred. Promo Comments List

engagement.comments.list.route.survey.comments.list

Read. Scope: engagement.read, admin. Contract: route_inferred. Survey Comments List

engagement.comments.resolve

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Comments Resolve

engagement.connectors.catalog

Read. Scope: engagement.read, admin. Contract: declared_dynamic. Promo Connectors Catalog

engagement.coupon.providers

Read. Scope: engagement.read, admin. Contract: declared_dynamic. Promo Coupon Providers

engagement.coupons.clear

Write. Scope: engagement.write, admin. Contract: route_inferred. Promo Coupons Clear

engagement.coupons.stats

Read. Scope: engagement.read, admin. Contract: route_inferred. Promo Coupons Stats

engagement.coupons.upload

Write. Scope: engagement.write, admin. Contract: route_inferred. Promo Coupons Upload

engagement.delete

Write. Scope: engagement.write, admin. Contract: route_inferred. Announcement Delete

engagement.delete.route.tour.delete

Write. Scope: engagement.write, admin. Contract: route_inferred. Tour Delete

engagement.delivery.analytics

Read. Scope: engagement.read, admin. Contract: route_inferred. Survey Delivery Analytics

engagement.delivery.dashboard

Read. Scope: engagement.read, admin. Contract: route_inferred. Survey Delivery Dashboard

engagement.deployment.ab.promote

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Deployment Ab Promote

engagement.deployment.ab.save

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Deployment Ab Save

engagement.deployment.publish

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Deployment Publish

engagement.deployment.save

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Deployment Save

engagement.deployment.status

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Deployment Status

engagement.detail

Read. Scope: engagement.read, admin. Contract: route_inferred. Campaign Detail

engagement.digest.save

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Digest Save

engagement.feed.catalog

Read. Scope: engagement.read, admin. Contract: declared_dynamic. Promo Feed Catalog

engagement.feed.items

Read. Scope: engagement.read, admin. Contract: route_inferred. Promo Feed Items

engagement.geo.preview

Read. Scope: engagement.read, admin. Contract: route_inferred. Promo Geo Preview

engagement.idle.cron.set

Write. Scope: engagement.write, admin. Contract: route_inferred. Proactive Idle Cron Set

engagement.import.create

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Import Create

engagement.import.replay

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Import Replay

engagement.leads.export

Read. Scope: engagement.read, admin. Contract: route_inferred. Promo Leads Export

engagement.leads.list

Read. Scope: engagement.read, admin. Contract: route_inferred. Promo Leads List

engagement.list

Read. Scope: engagement.read, admin. Contract: declared_dynamic. Announcements List

engagement.list.route.tours.list

Read. Scope: engagement.read, admin. Contract: declared_dynamic. Tours List

engagement.module.set.ai.live

Write. Scope: engagement.write, admin. Contract: route_inferred. Promo Module Set Ai Live

engagement.module.set.custom.html

Write. Scope: engagement.write, admin. Contract: route_inferred. Promo Module Set Custom Html

engagement.module.set.enabled

Write. Scope: engagement.write, admin. Contract: route_inferred. Promo Module Set Enabled

engagement.module.status

Read. Scope: engagement.read, admin. Contract: declared_dynamic. Promo Module Status

engagement.onsite.preview

Read. Scope: engagement.read, admin. Contract: route_inferred. Promo Onsite Preview

engagement.pause.all

Write. Scope: engagement.write, admin. Contract: declared_dynamic. Promo Pause All

engagement.presence

Read. Scope: engagement.read, admin. Contract: route_inferred. Promo Presence

engagement.preview.share

Read. Scope: engagement.read, admin. Contract: route_inferred. Promo Preview Share

engagement.push.draft

Write. Scope: engagement.write, admin. Contract: route_inferred. Promo Push Draft

engagement.recipients.issue

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Recipients Issue

engagement.recipients.list

Read. Scope: engagement.read, admin. Contract: route_inferred. Survey Recipients List

engagement.recipients.revoke

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Recipients Revoke

engagement.response.detail

Read. Scope: engagement.read, admin. Contract: route_inferred. Survey Response Detail

engagement.responses.browse

Read. Scope: engagement.read, admin. Contract: route_inferred. Survey Responses Browse

engagement.rule.delete

Write. Scope: engagement.write, admin. Contract: route_inferred. Proactive Rule Delete

engagement.rule.save

Write. Scope: engagement.write, admin. Contract: route_inferred. Proactive Rule Save

engagement.rule.stats

Read. Scope: engagement.read, admin. Contract: route_inferred. Proactive Rule Stats

engagement.rule.test

Read. Scope: engagement.read, admin. Contract: route_inferred. Promo Rule Test

engagement.rule.toggle

Write. Scope: engagement.write, admin. Contract: route_inferred. Proactive Rule Toggle

engagement.rules.list

Read. Scope: engagement.read, admin. Contract: declared_dynamic. Proactive Rules List

engagement.save

Write. Scope: engagement.write, admin. Contract: route_inferred. Announcement Save

engagement.save.route.tour.save

Write. Scope: engagement.write, admin. Contract: route_inferred. Tour Save

engagement.stats

Read. Scope: engagement.read, admin. Contract: route_inferred. Promo Stats

engagement.stats.route.tour.stats

Read. Scope: engagement.read, admin. Contract: route_inferred. Tour Stats

engagement.studio.a11y

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Studio A11y

engagement.studio.ai.generate

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Studio Ai Generate

engagement.studio.ai.insights

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Studio Ai Insights

engagement.studio.ai.target

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Studio Ai Target

engagement.studio.archive

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Studio Archive

engagement.studio.assets

Read. Scope: engagement.read, admin. Contract: declared_dynamic. Survey Studio Assets

engagement.studio.create

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Studio Create

engagement.studio.delete

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Studio Delete

engagement.studio.duplicate

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Studio Duplicate

engagement.studio.event

Read. Scope: engagement.read, admin. Contract: route_inferred. Promo Studio Event

engagement.studio.get

Read. Scope: engagement.read, admin. Contract: route_inferred. Survey Studio Get

engagement.studio.governance

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Studio Governance

engagement.studio.list

Read. Scope: engagement.read, admin. Contract: declared_dynamic. Survey Studio List

engagement.studio.preview

Read. Scope: engagement.read, admin. Contract: route_inferred. Survey Studio Preview

engagement.studio.preview.link

Read. Scope: engagement.read, admin. Contract: route_inferred. Survey Studio Preview Link

engagement.studio.publish

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Studio Publish

engagement.studio.rename

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Studio Rename

engagement.studio.revert

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Studio Revert

engagement.studio.save.draft

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Studio Save Draft

engagement.studio.save.targeting

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Studio Save Targeting

engagement.studio.set.active

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Studio Set Active

engagement.studio.set.status

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Studio Set Status

engagement.studio.template.delete

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Studio Template Delete

engagement.studio.template.save

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Studio Template Save

engagement.studio.tpl.preview

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Studio Tpl Preview

engagement.studio.upload

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Studio Upload

engagement.studio.webhook

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Studio Webhook

engagement.targeting.simulate

Read. Scope: engagement.read, admin. Contract: route_inferred. Survey Targeting Simulate

engagement.template.apply

Write. Scope: engagement.write, admin. Contract: route_inferred. Promo Template Apply

engagement.template.list

Read. Scope: engagement.read, admin. Contract: route_inferred. Promo Template List

engagement.template.save.custom

Write. Scope: engagement.write, admin. Contract: route_inferred. Promo Template Save Custom

engagement.toggle

Write. Scope: engagement.write, admin. Contract: route_inferred. Announcement Toggle

engagement.toggle.route.tour.toggle

Write. Scope: engagement.write, admin. Contract: route_inferred. Tour Toggle

engagement.trigger.set.save

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Trigger Set Save

engagement.variant.delete

Write. Scope: engagement.write, admin. Contract: route_inferred. Promo Variant Delete

engagement.variant.list

Read. Scope: engagement.read, admin. Contract: route_inferred. Promo Variant List

engagement.variant.promote

Write. Scope: engagement.write, admin. Contract: route_inferred. Promo Variant Promote

engagement.variant.save

Write. Scope: engagement.write, admin. Contract: route_inferred. Promo Variant Save

engagement.version.compare

Read. Scope: engagement.read, admin. Contract: route_inferred. Survey Version Compare

engagement.version.get

Read. Scope: engagement.read, admin. Contract: route_inferred. Promo Version Get

engagement.version.label

Write. Scope: engagement.write, admin. Contract: route_inferred. Promo Version Label

engagement.webhook.delete

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Webhook Delete

engagement.webhook.replay

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Webhook Replay

engagement.webhook.run

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Webhook Run

engagement.webhook.save

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Webhook Save

feedback (8)

feedback.analytics

Read. Scope: feedback.read, admin. Contract: source_inferred. Feedback Analytics

feedback.detractors

Read. Scope: feedback.read, admin. Contract: source_inferred. Feedback Detractors

feedback.get

Read. Scope: feedback.read, admin. Contract: source_inferred. Feedback Get

feedback.ingest

Write. Scope: feedback.write, admin. Contract: explicit. Ingest a feedback record or external review

feedback.list

Read. Scope: feedback.read, admin. Contract: source_inferred. Feedback List

feedback.overview

Read. Scope: feedback.read, admin. Contract: source_inferred. Feedback Overview

feedback.sources.list

Read. Scope: feedback.read, admin. Contract: explicit. List Voice of Customer feedback sources

feedback.update

Write. Scope: feedback.write, admin. Contract: source_inferred. Feedback Update Retry-safe with idempotency_key.

files (1)

files.get

Read. Scope: files.read, admin. Contract: source_inferred. Files Get

hr (48)

hr.agent.incident.close

Write. Scope: hr.write, admin. Contract: route_inferred. Close an agent incident — the same act that lifts the suspension it caused Required fields: incident_uuid, resolution.

hr.agent.step

Write. Scope: hr.write, admin. Contract: route_inferred. Run one agent step: gate verdict, execution and outcome reported separately Required fields: run_uuid, agent_key, tool_key, jurisdiction, purpose.

hr.agent.step.status

Read. Scope: hr.read, admin. Contract: route_inferred. What actually happened at a step (permitted, executed, proven, failed, compensated) Required fields: run_uuid, seq.

hr.agent.takeover

Write. Scope: hr.write, admin. Contract: route_inferred. A human takes an agent run; no further agent steps are accepted Required fields: run_uuid.

hr.agent.tool.grant

Write. Scope: hr.write, admin. Contract: route_inferred. Grant an agent a tool for one jurisdiction and purpose, up to a risk ceiling Required fields: agent_key, tool_key, jurisdiction, max_risk, purpose.

hr.agent.tools

Read. Scope: hr.read, admin. Contract: declared_dynamic. List the registered typed tools an agent may use, and open agent incidents

hr.ai.corrections

Write. Scope: hr.write, admin. Contract: declared_dynamic. Bundle recent reviewer corrections into a dataset; it is pending privacy review and trains nothing

hr.ai.quality.overview

Read. Scope: hr.read, admin. Contract: declared_dynamic. The AI quality board: sampled defect rate, override pressure per workflow, coaching reception

hr.booking.slots_reconcile

Write. Scope: hr.write, admin. Contract: declared_dynamic. Release booking slots whose claim never became a booked meeting

hr.connectors.certify

Write. Scope: hr.write, admin. Contract: route_inferred. Certify an HR connector (scope sandbox|production; production demands provider-side proof under dual control) Required fields: connector_class, connector_key, scope, evidence, submitted_by.

hr.connectors.health

Read. Scope: hr.read, admin. Contract: route_inferred. One connector account's health: certification level and scope, last reconciliation verdict, failures and webhook backlog Required fields: account_uuid.

hr.decisions.appeals

Write. Scope: hr.write, admin. Contract: route_inferred. File an appeal against an AI decision on a person's behalf; it must be heard by an independent human Required fields: decision_uuid, subject_type, subject_id, grounds.

hr.decisions.explanation

Read. Scope: hr.read, admin. Contract: route_inferred. Plain-language explanation of one AI decision: what was looked at, which policy, and how to appeal Required fields: decision_uuid, audience.

hr.employee.provision

Write. Scope: hr.write, admin. Contract: route_inferred. Provision seatless employee access and send the invitation Required fields: person_uuid.

hr.employee.restore

Write. Scope: hr.write, admin. Contract: route_inferred. Lift an employee access suspension (written reason required) and provision again Required fields: person_uuid, reason.

hr.experience.metrics

Read. Scope: hr.read, admin. Contract: route_inferred. Measured persona experience metrics (self-service rate, decision cycle, coaching usefulness, quality) from live journeys

hr.global.readiness

Read. Scope: hr.read, admin. Contract: declared_dynamic. The whole launch picture: 15-gate leadership score, release readiness checks and jurisdiction coverage

hr.identity.facets

Read. Scope: hr.read, admin. Contract: route_inferred. List a person's identity facets and open conflicts Required fields: person_uuid.

hr.identity.link

Write. Scope: hr.write, admin. Contract: route_inferred. Link an identity facet to a person Required fields: person_uuid, facet_type, facet_key.

hr.interview.room.connect

Write. Scope: hr.write, admin. Contract: route_inferred. Connect the AI to interview media; refuses unless media really reaches the worker Required fields: media_uuid.

hr.interview.room.consent

Write. Scope: hr.write, admin. Contract: route_inferred. Record or withdraw consent for ONE interview purpose (recording, biometric_liveness, transcription) Required fields: media_uuid, purpose, state.

hr.interview.room.pause

Write. Scope: hr.write, admin. Contract: route_inferred. Pause a live interview Required fields: media_uuid.

hr.interview.room.provision

Write. Scope: hr.write, admin. Contract: route_inferred. Provision an interview room (a place to meet — NOT AI participation) Required fields: session_uuid, transport, accommodation_route.

hr.interview.room.state

Read. Scope: hr.read, admin. Contract: route_inferred. Read an interview room, including whether the AI is actually participating Required fields: media_uuid.

hr.interview.room.takeover

Write. Scope: hr.write, admin. Contract: route_inferred. A human takes the interview; the AI cannot speak in it again Required fields: media_uuid, reason.

hr.jurisdiction.capabilities

Read. Scope: hr.read, admin. Contract: route_inferred. What this product may do in one country, per feature, with the law behind each answer Required fields: code.

hr.jurisdiction.change.raise

Write. Scope: hr.write, admin. Contract: route_inferred. Report a change in the law; a high or critical one suspends every lane in that jurisdiction at once Required fields: pack_key, summary, severity.

hr.jurisdiction.coverage

Read. Scope: hr.read, admin. Contract: declared_dynamic. Computed coverage for every market: released pack, named counsel owner, cited sources, passing tests

hr.jurisdiction.explain

Read. Scope: hr.read, admin. Contract: route_inferred. Why an action about one person is allowed, reduced or blocked, with the rule and citation Required fields: person_uuid, feature.

hr.jurisdiction.pack.release

Write. Scope: hr.write, admin. Contract: route_inferred. Put a drafted policy pack into effect; refused without a named counsel owner and a cited law Required fields: release_uuid.

hr.learning.overview

Read. Scope: hr.read, admin. Contract: declared_dynamic. Read courses, paths and enrolments

hr.leave.overview

Read. Scope: hr.read, admin. Contract: declared_dynamic. Read leave types and requests

hr.lifecycle.lanes

Read. Scope: hr.read, admin. Contract: declared_dynamic. Every lifecycle lane with its mode, KPIs and whether a live tool path really exists behind it

hr.marketplace.overview

Read. Scope: hr.read, admin. Contract: declared_dynamic. Read HR connector accounts, conflicts and deliveries

hr.org.tree

Read. Scope: hr.read, admin. Contract: declared_dynamic. Read the organisation tree

hr.people.create

Write. Scope: hr.write, admin. Contract: route_inferred. Create an HR person Required fields: display_name.

hr.people.get

Read. Scope: hr.read, admin. Contract: route_inferred. Get one HR person Required fields: person_uuid.

hr.people.list

Read. Scope: hr.read, admin. Contract: declared_dynamic. List HR people

hr.people.update

Write. Scope: hr.write, admin. Contract: route_inferred. Update an HR person Required fields: person_uuid, display_name, primary_email.

hr.postings.list

Read. Scope: hr.read, admin. Contract: declared_dynamic. List job postings

hr.readiness.read

Read. Scope: hr.read, admin. Contract: declared_dynamic. Run the HR release readiness report

hr.release.verify

Write. Scope: hr.write, admin. Contract: declared_dynamic. Run the four HR release gates (schema, manifest, probe, readiness)

hr.requisitions.create

Write. Scope: hr.write, admin. Contract: route_inferred. Create a requisition Required fields: title, openings, justification.

hr.requisitions.list

Read. Scope: hr.read, admin. Contract: declared_dynamic. List requisitions

hr.thread.delete

Write. Scope: hr.write, admin. Contract: route_inferred. Delete a workforce conversation; refused while it is under legal hold Required fields: thread_uuid, reason.

hr.thread.legal_hold

Write. Scope: hr.write, admin. Contract: route_inferred. Place or lift a legal hold on a workforce conversation Required fields: thread_uuid, on, reason.

hr.thread.retention

Write. Scope: hr.write, admin. Contract: route_inferred. Set a conversation's retention class (standard|extended|permanent) Required fields: thread_uuid, retention_class.

hr.threads.retention_sweep

Write. Scope: hr.write, admin. Contract: declared_dynamic. Run the conversation retention sweep; legal holds are never swept

intent (6)

intent.clear

Write. Scope: intent.write, admin. Contract: declared_dynamic. Intent Clear

intent.funnel

Read. Scope: intent.read, analytics.read, admin. Contract: route_inferred. Read the intent funnel

intent.funnel.aggregate

Read. Scope: intent.read, admin. Contract: route_inferred. Intent Funnel Aggregate

intent.funnel.route.intent.funnel

Read. Scope: intent.read, admin. Contract: route_inferred. Intent Funnel

intent.summary

Read. Scope: intent.read, analytics.read, admin. Contract: route_inferred. Read intent summaries

intent.summary.route.intent.summary

Read. Scope: intent.read, admin. Contract: route_inferred. Intent Summary

kb (6)

kb.faq.delete

Write. Scope: kb.write, admin. Contract: source_inferred. Kb Faq Delete Retry-safe with idempotency_key.

kb.faq.generate

Write. Scope: kb.write, admin. Contract: source_inferred. Kb Faq Generate Retry-safe with idempotency_key.

kb.faq.import

Write. Scope: kb.write, admin. Contract: source_inferred. Kb Faq Import Retry-safe with idempotency_key.

kb.faq.list

Read. Scope: kb.read, read, admin. Contract: source_inferred. Kb Faq List

kb.faq.save

Write. Scope: kb.write, admin. Contract: source_inferred. Kb Faq Save Retry-safe with idempotency_key.

kb.faq.set_status

Write. Scope: kb.write, admin. Contract: source_inferred. Kb Faq Set Status Retry-safe with idempotency_key.

knowledge (78)

knowledge.analytics.get

Read. Scope: kb.read, admin. Contract: route_inferred. Help Analytics Get

knowledge.analytics.toggle

Write. Scope: kb.write, admin. Contract: route_inferred. Help Analytics Toggle

knowledge.article.ai.refine

Read. Scope: kb.read, admin. Contract: route_inferred. Help Article Ai Refine

knowledge.article.class.bulk

Write. Scope: kb.write, admin. Contract: route_inferred. Help Article Class Bulk

knowledge.article.delete

Write. Scope: kb.write, admin. Contract: route_inferred. Help Article Delete

knowledge.article.publish

Write. Scope: kb.write, admin. Contract: route_inferred. Help Article Publish

knowledge.article.save

Write. Scope: kb.write, admin. Contract: route_inferred. Help Article Save

knowledge.article.set.category

Write. Scope: kb.write, admin. Contract: route_inferred. Help Article Set Category

knowledge.article.set.public

Write. Scope: kb.write, admin. Contract: route_inferred. Help Article Set Public

knowledge.articles.ai.generate

Write. Scope: kb.write, admin. Contract: route_inferred. Help Articles Ai Generate

knowledge.articles.bulk.delete

Write. Scope: kb.write, admin. Contract: route_inferred. Help Articles Bulk Delete

knowledge.articles.count

Read. Scope: kb.read, admin. Contract: declared_dynamic. Help Articles Count

knowledge.articles.get

Read. Scope: kb.read, admin. Contract: explicit. Get one Help Center article Required fields: article_id.

knowledge.articles.ids

Write. Scope: kb.write, admin. Contract: route_inferred. Help Articles Ids

knowledge.articles.list

Read. Scope: kb.read, admin. Contract: route_inferred. Help Articles List

knowledge.articles.set.public.all

Write. Scope: kb.write, admin. Contract: route_inferred. Help Articles Set Public All

knowledge.categories.ai.merge

Write. Scope: kb.write, admin. Contract: declared_dynamic. Help Categories Ai Merge

knowledge.categories.bulk.delete

Write. Scope: kb.write, admin. Contract: route_inferred. Help Categories Bulk Delete

knowledge.categories.list

Read. Scope: kb.read, admin. Contract: declared_dynamic. Help Categories List

knowledge.categories.merge.dupes

Write. Scope: kb.write, admin. Contract: declared_dynamic. Help Categories Merge Dupes

knowledge.category.delete

Write. Scope: kb.write, admin. Contract: route_inferred. Help Category Delete

knowledge.category.get

Read. Scope: kb.read, admin. Contract: route_inferred. Help Category Get

knowledge.category.save

Write. Scope: kb.write, admin. Contract: route_inferred. Help Category Save

knowledge.center.article.image.upload

Write. Scope: kb.write, admin. Contract: declared_dynamic. Help Center Article Image Upload

knowledge.center.favicon.upload

Write. Scope: kb.write, admin. Contract: declared_dynamic. Help Center Favicon Upload

knowledge.center.hero.dark.upload

Write. Scope: kb.write, admin. Contract: declared_dynamic. Help Center Hero Dark Upload

knowledge.center.hero.upload

Write. Scope: kb.write, admin. Contract: declared_dynamic. Help Center Hero Upload

knowledge.center.logo.dark.upload

Write. Scope: kb.write, admin. Contract: declared_dynamic. Help Center Logo Dark Upload

knowledge.center.logo.upload

Write. Scope: kb.write, admin. Contract: declared_dynamic. Help Center Logo Upload

knowledge.center.og.image.upload

Write. Scope: kb.write, admin. Contract: declared_dynamic. Help Center Og Image Upload

knowledge.center.settings.get

Read. Scope: kb.read, admin. Contract: declared_dynamic. Help Center Settings Get

knowledge.center.settings.save

Write. Scope: kb.write, admin. Contract: route_inferred. Help Center Settings Save

knowledge.center.subhero.dark.upload

Write. Scope: kb.write, admin. Contract: declared_dynamic. Help Center Subhero Dark Upload

knowledge.center.subhero.upload

Write. Scope: kb.write, admin. Contract: declared_dynamic. Help Center Subhero Upload

knowledge.center.translate.estimate

Write. Scope: kb.write, admin. Contract: declared_dynamic. Help Center Translate Estimate

knowledge.center.translate.run

Write. Scope: kb.write, admin. Contract: route_inferred. Help Center Translate Run

knowledge.center.translate.status

Read. Scope: kb.read, admin. Contract: declared_dynamic. Help Center Translate Status

knowledge.center.translate.stop

Write. Scope: kb.write, admin. Contract: declared_dynamic. Help Center Translate Stop

knowledge.center.widget.hero.upload

Write. Scope: kb.write, admin. Contract: declared_dynamic. Help Center Widget Hero Upload

knowledge.center.widget.icon.upload

Write. Scope: kb.write, admin. Contract: declared_dynamic. Help Center Widget Icon Upload

knowledge.comments.deliver.notifications

Write. Scope: kb.write, admin. Contract: route_inferred. Kb Comments Deliver Notifications

knowledge.comments.moderate

Write. Scope: kb.write, admin. Contract: route_inferred. Kb Comments Moderate

knowledge.comments.moderation.list

Read. Scope: kb.read, admin. Contract: route_inferred. Kb Comments Moderation List

knowledge.import.batches

Write. Scope: kb.write, admin. Contract: route_inferred. Kb Import Batches

knowledge.import.connectors

Write. Scope: kb.write, admin. Contract: declared_dynamic. Kb Import Connectors

knowledge.import.csv.preview

Read. Scope: kb.read, admin. Contract: route_inferred. Kb Import Csv Preview

knowledge.import.preview

Write. Scope: kb.write, admin. Contract: route_inferred. Kb Import Preview

knowledge.import.resync

Write. Scope: kb.write, admin. Contract: route_inferred. Kb Import Resync

knowledge.import.run

Write. Scope: kb.write, admin. Contract: route_inferred. Kb Import Run

knowledge.import.undo

Write. Scope: kb.write, admin. Contract: route_inferred. Kb Import Undo

knowledge.insights.generate

Write. Scope: kb.write, admin. Contract: route_inferred. Help Insights Generate

knowledge.insights.get

Read. Scope: kb.read, admin. Contract: declared_dynamic. Help Insights Get

knowledge.mark.reviewed

Write. Scope: kb.write, admin. Contract: declared_dynamic. Kb Mark Reviewed

knowledge.missed.dismiss

Write. Scope: kb.write, admin. Contract: route_inferred. Kb Missed Dismiss

knowledge.missed.draft.article

Write. Scope: kb.write, admin. Contract: route_inferred. Kb Missed Draft Article

knowledge.missed.list

Read. Scope: kb.read, admin. Contract: route_inferred. Kb Missed List

knowledge.missed.mark.published

Write. Scope: kb.write, admin. Contract: route_inferred. Kb Missed Mark Published

knowledge.missed.refresh

Write. Scope: kb.write, admin. Contract: declared_dynamic. Kb Missed Refresh

knowledge.organize.descriptions

Write. Scope: kb.write, admin. Contract: declared_dynamic. Help Organize Descriptions

knowledge.organize.status

Write. Scope: kb.write, admin. Contract: declared_dynamic. Help Organize Status

knowledge.organize.step

Write. Scope: kb.write, admin. Contract: route_inferred. Help Organize Step

knowledge.publish

Write. Scope: kb.write, admin. Contract: route_inferred. Kb Publish

knowledge.reformat.revert

Write. Scope: kb.write, admin. Contract: declared_dynamic. Help Reformat Revert

knowledge.reformat.status

Read. Scope: kb.read, admin. Contract: declared_dynamic. Help Reformat Status

knowledge.reformat.step

Write. Scope: kb.write, admin. Contract: route_inferred. Help Reformat Step

knowledge.review.queue

Read. Scope: kb.read, admin. Contract: declared_dynamic. Kb Review Queue

knowledge.search.gaps

Read. Scope: kb.read, admin. Contract: declared_dynamic. Kb Search Gaps

knowledge.set.featured

Write. Scope: kb.write, admin. Contract: route_inferred. Help Set Featured

knowledge.set.visibility

Write. Scope: kb.write, admin. Contract: declared_dynamic. Kb Set Visibility

knowledge.subdomain.allocate

Write. Scope: kb.write, admin. Contract: route_inferred. Help Subdomain Allocate

knowledge.subdomain.check

Read. Scope: kb.read, admin. Contract: route_inferred. Help Subdomain Check

knowledge.subdomain.release

Write. Scope: kb.write, admin. Contract: route_inferred. Help Subdomain Release

knowledge.taxonomy.organize

Write. Scope: kb.write, admin. Contract: declared_dynamic. Kb Taxonomy Organize

knowledge.taxonomy.status

Read. Scope: kb.read, admin. Contract: declared_dynamic. Kb Taxonomy Status

knowledge.taxonomy.step

Write. Scope: kb.write, admin. Contract: route_inferred. Kb Taxonomy Step

knowledge.widget.categories

Read. Scope: kb.read, admin. Contract: route_inferred. Kb Widget Categories

knowledge.widget.publish

Write. Scope: kb.write, admin. Contract: route_inferred. Kb Widget Publish

knowledge.widget.targets

Read. Scope: kb.read, admin. Contract: route_inferred. Kb Widget Targets

leads (6)

leads.delete

Write. Scope: leads.write, crm.write, admin. Contract: route_inferred. Delete a lead Required fields: lead_id.

leads.delete.route.lead.delete

Write. Scope: leads.write, admin. Contract: route_inferred. Lead Delete

leads.list

Read. Scope: leads.read, crm.read, admin. Contract: route_inferred. List leads

leads.stats

Read. Scope: leads.read, analytics.read, admin. Contract: declared_dynamic. Get lead statistics

leads.stats.route.leads.stats

Read. Scope: leads.read, admin. Contract: declared_dynamic. Leads Stats

leads.update

Write. Scope: leads.write, crm.write, admin. Contract: route_inferred. Update a lead Required fields: lead_id, status.

मेटा (4)

meta.action

Read. Scope: none. Contract: explicit. Get one General API action contract Required fields: name.

meta.actions

Read. Scope: none. Contract: explicit. List the complete General API contract

meta.me

Read. Scope: none. Contract: explicit. Describe the authenticated API key and active workspace

meta.scopes

Read. Scope: none. Contract: explicit. List API scopes and the actions protected by each scope

notifications (1)

notifications.list

Read. Scope: notifications.read, admin. Contract: source_inferred. Notifications List

मंच (926)

platform.add.announcement

Write. Scope: platform.write, admin. Contract: declared_dynamic. Add Announcement

platform.add.kb.article

Write. Scope: platform.write, admin. Contract: route_inferred. Add Kb Article

platform.add.todo.item

Write. Scope: platform.write, admin. Contract: route_inferred. Add Todo Item

platform.ai.action.lookup

Write. Scope: platform.write, admin. Contract: route_inferred. Ai Action Lookup

platform.ai.anomaly.detect

Read. Scope: platform.read, admin. Contract: route_inferred. Ai Anomaly Detect

platform.ai.brain.add

Write. Scope: platform.write, admin. Contract: route_inferred. Ai Brain Add

platform.ai.brain.delete

Write. Scope: platform.write, admin. Contract: route_inferred. Ai Brain Delete

platform.ai.brain.edit

Write. Scope: platform.write, admin. Contract: route_inferred. Ai Brain Edit

platform.ai.brain.list

Write. Scope: platform.write, admin. Contract: route_inferred. Ai Brain List

platform.ai.brain.pin

Write. Scope: platform.write, admin. Contract: route_inferred. Ai Brain Pin

platform.ai.brain.status

Write. Scope: platform.write, admin. Contract: route_inferred. Ai Brain Status

platform.ai.chat

Write. Scope: platform.write, admin. Contract: route_inferred. Ai Chat

platform.ai.confidence.stats

Read. Scope: platform.read, admin. Contract: declared_dynamic. Ai Confidence Stats

platform.ai.context.lookup

Write. Scope: platform.write, admin. Contract: route_inferred. Ai Context Lookup

platform.ai.daily.brief

Write. Scope: platform.write, admin. Contract: route_inferred. Ai Daily Brief

platform.ai.daily.brief.check

Read. Scope: platform.read, admin. Contract: declared_dynamic. Ai Daily Brief Check

platform.ai.daily.brief.dismiss

Write. Scope: platform.write, admin. Contract: declared_dynamic. Ai Daily Brief Dismiss

platform.ai.daily.brief.fetch

Write. Scope: platform.write, admin. Contract: route_inferred. Ai Daily Brief Fetch

platform.ai.eval.control.summary

Read. Scope: platform.read, admin. Contract: declared_dynamic. Ai Eval Control Summary

platform.ai.eval.feedback.queue

Read. Scope: platform.read, admin. Contract: declared_dynamic. Ai Eval Feedback Queue

platform.ai.eval.kb.gap.queue

Read. Scope: platform.read, admin. Contract: declared_dynamic. Ai Eval Kb Gap Queue

platform.ai.eval.load

Read. Scope: platform.read, admin. Contract: declared_dynamic. Ai Eval Load

platform.ai.eval.replay.history

Write. Scope: platform.write, admin. Contract: declared_dynamic. Ai Eval Replay History

platform.ai.eval.run

Write. Scope: platform.write, admin. Contract: declared_dynamic. Ai Eval Run

platform.ai.eval.save

Write. Scope: platform.write, admin. Contract: declared_dynamic. Ai Eval Save

platform.ai.eval.score.answer

Read. Scope: platform.read, admin. Contract: declared_dynamic. Ai Eval Score Answer

platform.ai.eval.simulate

Read. Scope: platform.read, admin. Contract: route_inferred. Ai Eval Simulate

platform.ai.feedback.analysis

Read. Scope: platform.read, admin. Contract: declared_dynamic. Ai Feedback Analysis

platform.ai.feedback.stats

Read. Scope: platform.read, admin. Contract: declared_dynamic. Ai Feedback Stats

platform.ai.history.archive

Write. Scope: platform.write, admin. Contract: declared_dynamic. Ai History Archive

platform.ai.history.clear.all

Write. Scope: platform.write, admin. Contract: declared_dynamic. Ai History Clear All

platform.ai.history.delete

Write. Scope: platform.write, admin. Contract: declared_dynamic. Ai History Delete

platform.ai.history.export.csv

Write. Scope: platform.write, admin. Contract: declared_dynamic. Ai History Export Csv

platform.ai.history.get

Write. Scope: platform.write, admin. Contract: declared_dynamic. Ai History Get

platform.ai.history.list

Write. Scope: platform.write, admin. Contract: declared_dynamic. Ai History List

platform.ai.history.stats

Write. Scope: platform.write, admin. Contract: declared_dynamic. Ai History Stats

platform.ai.insight.clear

Write. Scope: platform.write, admin. Contract: route_inferred. Ai Insight Clear

platform.ai.insight.history

Read. Scope: platform.read, admin. Contract: route_inferred. Ai Insight History

platform.ai.insight.report.delete

Write. Scope: platform.write, admin. Contract: route_inferred. Ai Insight Report Delete

platform.ai.insight.report.get

Read. Scope: platform.read, admin. Contract: route_inferred. Ai Insight Report Get

platform.ai.instructions.compress

Write. Scope: platform.write, admin. Contract: declared_dynamic. Ai Instructions Compress

platform.ai.instructions.connector.templates

Read. Scope: platform.read, admin. Contract: declared_dynamic. Ai Instructions Connector Templates

platform.ai.instructions.example

Read. Scope: platform.read, admin. Contract: declared_dynamic. Ai Instructions Example

platform.ai.instructions.load

Write. Scope: platform.write, admin. Contract: declared_dynamic. Ai Instructions Load

platform.ai.instructions.preview

Read. Scope: platform.read, admin. Contract: route_inferred. Ai Instructions Preview

platform.ai.instructions.reset

Write. Scope: platform.write, admin. Contract: declared_dynamic. Ai Instructions Reset

platform.ai.instructions.save

Write. Scope: platform.write, admin. Contract: declared_dynamic. Ai Instructions Save

platform.ai.page.insights

Read. Scope: platform.read, admin. Contract: route_inferred. Ai Page Insights

platform.ai.popup.regen

Write. Scope: platform.write, admin. Contract: route_inferred. Ai Popup Regen

platform.ai.quality.view

Read. Scope: platform.read, admin. Contract: declared_dynamic. Ai Quality View

platform.ai.reasoning.chain.get

Read. Scope: platform.read, admin. Contract: route_inferred. Ai Reasoning Chain Get

platform.ai.score.lead

Write. Scope: platform.write, admin. Contract: route_inferred. Ai Score Lead

platform.ai.smart.alerts

Read. Scope: platform.read, admin. Contract: declared_dynamic. Ai Smart Alerts

platform.ai.spoke

Read. Scope: platform.read, admin. Contract: route_inferred. Ai Spoke

platform.ai.triage.accuracy

Read. Scope: platform.read, admin. Contract: declared_dynamic. Ai Triage Accuracy

platform.ai.whmcs.chat

Write. Scope: platform.write, admin. Contract: route_inferred. Ai Whmcs Chat

platform.ai.writing

Write. Scope: platform.write, admin. Contract: route_inferred. Ai Writing

platform.api.keys.catalog

Read. Scope: admin. Contract: declared_dynamic. Api Keys Catalog

platform.api.keys.create

Write. Scope: admin. Contract: route_inferred. Api Keys Create

platform.api.keys.delete

Write. Scope: admin. Contract: route_inferred. Api Keys Delete

platform.api.keys.list

Read. Scope: admin. Contract: declared_dynamic. Api Keys List

platform.api.keys.revoke

Write. Scope: admin. Contract: route_inferred. Api Keys Revoke

platform.api.keys.update

Write. Scope: admin. Contract: route_inferred. Api Keys Update

platform.audit.export

Read. Scope: admin. Contract: route_inferred. Audit Export

platform.blocked

Write. Scope: platform.write, admin. Contract: route_inferred. Blocked

platform.campaigns

Read. Scope: platform.read, admin. Contract: declared_dynamic. Campaigns

platform.chart.browsers

Read. Scope: platform.read, admin. Contract: declared_dynamic. Chart Browsers

platform.chart.countries

Read. Scope: platform.read, admin. Contract: declared_dynamic. Chart Countries

platform.chart.devices

Read. Scope: platform.read, admin. Contract: declared_dynamic. Chart Devices

platform.chart.hourly

Read. Scope: platform.read, admin. Contract: declared_dynamic. Chart Hourly

platform.chart.new.returning

Read. Scope: platform.read, admin. Contract: declared_dynamic. Chart New Returning

platform.chart.os

Read. Scope: platform.read, admin. Contract: declared_dynamic. Chart Os

platform.chart.sources

Read. Scope: platform.read, admin. Contract: declared_dynamic. Chart Sources

platform.chart.visitors

Read. Scope: platform.read, admin. Contract: route_inferred. Chart Visitors

platform.chatbot.flow.delete

Write. Scope: platform.write, admin. Contract: route_inferred. Chatbot Flow Delete

platform.chatbot.flow.get

Read. Scope: platform.read, admin. Contract: route_inferred. Chatbot Flow Get

platform.chatbot.flow.save

Write. Scope: platform.write, admin. Contract: route_inferred. Chatbot Flow Save

platform.chatbot.flow.stats

Read. Scope: platform.read, admin. Contract: route_inferred. Chatbot Flow Stats

platform.chatbot.flow.test.advance

Write. Scope: platform.write, admin. Contract: route_inferred. Chatbot Flow Test Advance

platform.chatbot.flow.test.start

Write. Scope: platform.write, admin. Contract: route_inferred. Chatbot Flow Test Start

platform.chatbot.flow.toggle

Write. Scope: platform.write, admin. Contract: route_inferred. Chatbot Flow Toggle

platform.chatbot.flows.list

Read. Scope: platform.read, admin. Contract: declared_dynamic. Chatbot Flows List

platform.chatbot.node.delete

Write. Scope: platform.write, admin. Contract: route_inferred. Chatbot Node Delete

platform.chatbot.node.save

Write. Scope: platform.write, admin. Contract: route_inferred. Chatbot Node Save

platform.chatbot.nodes.list

Read. Scope: platform.read, admin. Contract: route_inferred. Chatbot Nodes List

platform.clear.admin.chat.history

Write. Scope: platform.write, admin. Contract: declared_dynamic. Clear Admin Chat History

platform.command.center.view

Read. Scope: platform.read, admin. Contract: declared_dynamic. Command Center View

platform.commerce.actf.execute

Write. Scope: commerce.write, admin. Contract: declared_dynamic. Commerce Actf Execute

platform.commerce.actf.policy.save

Write. Scope: commerce.write, admin. Contract: declared_dynamic. Commerce Actf Policy Save

platform.commerce.actf.review

Read. Scope: commerce.read, admin. Contract: declared_dynamic. Commerce Actf Review

platform.commerce.actf.simulate

Read. Scope: commerce.read, admin. Contract: declared_dynamic. Commerce Actf Simulate

platform.commerce.analytics.report

Write. Scope: commerce.write, admin. Contract: declared_dynamic. Commerce Analytics Report

platform.commerce.analytics.report.email

Write. Scope: commerce.write, admin. Contract: declared_dynamic. Commerce Analytics Report Email

platform.commerce.autonomy.issue

Write. Scope: commerce.write, admin. Contract: declared_dynamic. Commerce Autonomy Issue

platform.commerce.autonomy.status

Read. Scope: commerce.read, admin. Contract: declared_dynamic. Commerce Autonomy Status

platform.commerce.collections.delete

Write. Scope: commerce.write, admin. Contract: route_inferred. Commerce Collections Delete

platform.commerce.collections.save

Write. Scope: commerce.write, admin. Contract: declared_dynamic. Commerce Collections Save

platform.commerce.customer.block

Write. Scope: commerce.write, admin. Contract: declared_dynamic. Commerce Customer Block

platform.commerce.customer.credit.add

Write. Scope: commerce.write, admin. Contract: declared_dynamic. Commerce Customer Credit Add

platform.commerce.customer.save

Write. Scope: commerce.write, admin. Contract: declared_dynamic. Commerce Customer Save

platform.commerce.customers.list

Read. Scope: commerce.read, admin. Contract: declared_dynamic. Commerce Customers List

platform.commerce.digital.codes.import

Write. Scope: commerce.write, admin. Contract: declared_dynamic. Commerce Digital Codes Import

platform.commerce.digital.config.save

Write. Scope: commerce.write, admin. Contract: declared_dynamic. Commerce Digital Config Save

platform.commerce.digital.file.upload

Write. Scope: commerce.write, admin. Contract: route_inferred. Commerce Digital File Upload

platform.commerce.fulfilment.transition

Write. Scope: commerce.write, admin. Contract: declared_dynamic. Commerce Fulfilment Transition

platform.commerce.intelligence.economics.save

Write. Scope: commerce.write, admin. Contract: declared_dynamic. Commerce Intelligence Economics Save

platform.commerce.intelligence.market.price.save

Write. Scope: commerce.write, admin. Contract: declared_dynamic. Commerce Intelligence Market Price Save

platform.commerce.intelligence.market.save

Write. Scope: commerce.write, admin. Contract: declared_dynamic. Commerce Intelligence Market Save

platform.commerce.kit.apply

Write. Scope: commerce.write, admin. Contract: route_inferred. Commerce Kit Apply

platform.commerce.kit.preview

Read. Scope: commerce.read, admin. Contract: route_inferred. Commerce Kit Preview

platform.commerce.kits.list

Read. Scope: commerce.read, admin. Contract: declared_dynamic. Commerce Kits List

platform.commerce.launch.readiness

Read. Scope: commerce.read, admin. Contract: declared_dynamic. Commerce Launch Readiness

platform.commerce.menu.ai.build

Write. Scope: commerce.write, admin. Contract: declared_dynamic. Commerce Menu Ai Build

platform.commerce.menus.save

Write. Scope: commerce.write, admin. Contract: declared_dynamic. Commerce Menus Save

platform.commerce.merchandising.save

Write. Scope: commerce.write, admin. Contract: declared_dynamic. Commerce Merchandising Save

platform.commerce.midmarket.operations

Read. Scope: commerce.read, admin. Contract: declared_dynamic. Commerce Midmarket Operations

platform.commerce.onboarding.ai.draft

Write. Scope: commerce.write, admin. Contract: declared_dynamic. Commerce Onboarding Ai Draft

platform.commerce.onboarding.apply

Write. Scope: commerce.write, admin. Contract: declared_dynamic. Commerce Onboarding Apply

platform.commerce.option.sets.generate

Write. Scope: commerce.write, admin. Contract: route_inferred. Commerce Option Sets Generate

platform.commerce.option.sets.save

Write. Scope: commerce.write, admin. Contract: declared_dynamic. Commerce Option Sets Save

platform.commerce.option.templates

Read. Scope: commerce.read, admin. Contract: declared_dynamic. Commerce Option Templates

platform.commerce.order.refundable

Read. Scope: commerce.read, admin. Contract: declared_dynamic. Commerce Order Refundable

platform.commerce.order.ship

Write. Scope: commerce.write, admin. Contract: declared_dynamic. Commerce Order Ship

platform.commerce.order.shipments

Read. Scope: commerce.read, admin. Contract: declared_dynamic. Commerce Order Shipments

platform.commerce.orders.list

Read. Scope: commerce.read, admin. Contract: declared_dynamic. Commerce Orders List

platform.commerce.orders.transition

Write. Scope: commerce.write, admin. Contract: route_inferred. Commerce Orders Transition

platform.commerce.page.ai.draft

Write. Scope: commerce.write, admin. Contract: declared_dynamic. Commerce Page Ai Draft

platform.commerce.page.ai.refine

Write. Scope: commerce.write, admin. Contract: declared_dynamic. Commerce Page Ai Refine

platform.commerce.page.render

Write. Scope: commerce.write, admin. Contract: declared_dynamic. Commerce Page Render

platform.commerce.pages.delete

Write. Scope: commerce.write, admin. Contract: route_inferred. Commerce Pages Delete

platform.commerce.pages.list

Write. Scope: commerce.write, admin. Contract: declared_dynamic. Commerce Pages List

platform.commerce.pages.save

Write. Scope: commerce.write, admin. Contract: declared_dynamic. Commerce Pages Save

platform.commerce.price.advice

Read. Scope: commerce.read, admin. Contract: declared_dynamic. Commerce Price Advice

platform.commerce.products.ai.copy

Read. Scope: commerce.read, admin. Contract: declared_dynamic. Commerce Products Ai Copy

platform.commerce.products.bulk

Write. Scope: commerce.write, admin. Contract: route_inferred. Commerce Products Bulk

platform.commerce.products.catalog.meta

Read. Scope: commerce.read, admin. Contract: declared_dynamic. Commerce Products Catalog Meta

platform.commerce.products.delete

Write. Scope: commerce.write, admin. Contract: route_inferred. Commerce Products Delete

platform.commerce.products.duplicate

Write. Scope: commerce.write, admin. Contract: route_inferred. Commerce Products Duplicate

platform.commerce.products.export.csv

Read. Scope: commerce.read, admin. Contract: declared_dynamic. Commerce Products Export Csv

platform.commerce.products.image.alt.ai

Read. Scope: commerce.read, admin. Contract: route_inferred. Commerce Products Image Alt Ai

platform.commerce.products.image.delete

Write. Scope: commerce.write, admin. Contract: route_inferred. Commerce Products Image Delete

platform.commerce.products.image.update

Write. Scope: commerce.write, admin. Contract: declared_dynamic. Commerce Products Image Update

platform.commerce.products.image.upload

Write. Scope: commerce.write, admin. Contract: route_inferred. Commerce Products Image Upload

platform.commerce.products.images.list

Read. Scope: commerce.read, admin. Contract: route_inferred. Commerce Products Images List

platform.commerce.products.images.reorder

Write. Scope: commerce.write, admin. Contract: declared_dynamic. Commerce Products Images Reorder

platform.commerce.products.import.csv

Write. Scope: commerce.write, admin. Contract: route_inferred. Commerce Products Import Csv

platform.commerce.products.list

Read. Scope: commerce.read, admin. Contract: declared_dynamic. Commerce Products List

platform.commerce.products.save

Write. Scope: commerce.write, admin. Contract: declared_dynamic. Commerce Products Save

platform.commerce.refunds.complete.manual

Write. Scope: commerce.write, admin. Contract: declared_dynamic. Commerce Refunds Complete Manual

platform.commerce.refunds.request

Write. Scope: commerce.write, admin. Contract: declared_dynamic. Commerce Refunds Request

platform.commerce.returns.transition

Write. Scope: commerce.write, admin. Contract: declared_dynamic. Commerce Returns Transition

platform.commerce.size.charts.delete

Write. Scope: commerce.write, admin. Contract: route_inferred. Commerce Size Charts Delete

platform.commerce.size.charts.save

Write. Scope: commerce.write, admin. Contract: declared_dynamic. Commerce Size Charts Save

platform.commerce.store.maturity

Read. Scope: commerce.read, admin. Contract: declared_dynamic. Commerce Store Maturity

platform.commerce.storefront.brand.import

Write. Scope: commerce.write, admin. Contract: route_inferred. Commerce Storefront Brand Import

platform.commerce.storefront.domain.remove

Write. Scope: commerce.write, admin. Contract: route_inferred. Commerce Storefront Domain Remove

platform.commerce.storefront.domain.set

Write. Scope: commerce.write, admin. Contract: route_inferred. Commerce Storefront Domain Set

platform.commerce.storefront.logo.upload

Write. Scope: commerce.write, admin. Contract: route_inferred. Commerce Storefront Logo Upload

platform.commerce.storefront.page.ai.seo

Read. Scope: commerce.read, admin. Contract: declared_dynamic. Commerce Storefront Page Ai Seo

platform.commerce.storefront.slug.save

Write. Scope: commerce.write, admin. Contract: declared_dynamic. Commerce Storefront Slug Save

platform.commerce.supply.chain

Write. Scope: commerce.write, admin. Contract: declared_dynamic. Commerce Supply Chain

platform.commerce.variants.delete

Write. Scope: commerce.write, admin. Contract: route_inferred. Commerce Variants Delete

platform.commerce.variants.save

Write. Scope: commerce.write, admin. Contract: declared_dynamic. Commerce Variants Save

platform.commerce.wallet.topup.refund

Write. Scope: commerce.write, admin. Contract: declared_dynamic. Commerce Wallet Topup Refund

platform.commerce.wallet.topups.list

Read. Scope: commerce.read, admin. Contract: declared_dynamic. Commerce Wallet Topups List

platform.complete.todo.item

Write. Scope: platform.write, admin. Contract: route_inferred. Complete Todo Item

platform.consent.log.list

Read. Scope: platform.read, admin. Contract: route_inferred. Consent Log List

platform.countries

Read. Scope: platform.read, admin. Contract: declared_dynamic. Countries

platform.country.detail

Read. Scope: platform.read, admin. Contract: route_inferred. Country Detail

platform.custom.code.approve

Write. Scope: platform.write, admin. Contract: route_inferred. Custom Code Approve

platform.custom.code.disable

Write. Scope: platform.write, admin. Contract: route_inferred. Custom Code Disable

platform.custom.code.reject

Write. Scope: platform.write, admin. Contract: route_inferred. Custom Code Reject

platform.custom.code.rollback

Write. Scope: platform.write, admin. Contract: route_inferred. Custom Code Rollback

platform.custom.code.status

Read. Scope: platform.read, admin. Contract: route_inferred. Custom Code Status

platform.delete.todo.item

Write. Scope: platform.write, admin. Contract: route_inferred. Delete Todo Item

platform.devices

Read. Scope: platform.read, admin. Contract: declared_dynamic. Devices

platform.diag.check.resolutions

Read. Scope: platform.read, admin. Contract: declared_dynamic. Diag Check Resolutions

platform.diag.dismiss

Write. Scope: platform.write, admin. Contract: route_inferred. Diag Dismiss

platform.diag.event.taxonomy

Read. Scope: platform.read, admin. Contract: declared_dynamic. Diag Event Taxonomy

platform.diag.identity.restitch

Write. Scope: admin. Contract: declared_dynamic. Diag Identity Restitch

platform.diag.recheck

Write. Scope: platform.write, admin. Contract: route_inferred. Diag Recheck

platform.diag.recheck.all

Write. Scope: platform.write, admin. Contract: declared_dynamic. Diag Recheck All

platform.diag.report

Write. Scope: platform.write, admin. Contract: route_inferred. Diag Report

platform.diag.unmute

Write. Scope: platform.write, admin. Contract: route_inferred. Diag Unmute

platform.dismiss.credit.alert

Write. Scope: admin. Contract: route_inferred. Dismiss Credit Alert

platform.domain.knowledge.ai.generate

Write. Scope: platform.write, admin. Contract: route_inferred. Domain Knowledge Ai Generate

platform.domain.knowledge.delete

Write. Scope: platform.write, admin. Contract: route_inferred. Domain Knowledge Delete

platform.domain.knowledge.list

Write. Scope: platform.write, admin. Contract: route_inferred. Domain Knowledge List

platform.domain.knowledge.save

Write. Scope: platform.write, admin. Contract: route_inferred. Domain Knowledge Save

platform.domain.knowledge.toggle

Write. Scope: platform.write, admin. Contract: route_inferred. Domain Knowledge Toggle

platform.domain.verify.add

Write. Scope: platform.write, admin. Contract: route_inferred. Domain Verify Add

platform.domain.verify.list

Read. Scope: platform.read, admin. Contract: declared_dynamic. Domain Verify List

platform.domain.verify.recheck

Write. Scope: platform.write, admin. Contract: route_inferred. Domain Verify Recheck

platform.domain.verify.remove

Write. Scope: platform.write, admin. Contract: route_inferred. Domain Verify Remove

platform.dynamic.action.dispatch

Write. Scope: platform.write, admin. Contract: route_inferred. Dynamic Action Dispatch

platform.events.clear.all

Write. Scope: platform.write, admin. Contract: declared_dynamic. Events Clear All

platform.events.list

Read. Scope: platform.read, admin. Contract: route_inferred. Events List

platform.experiment.delete

Write. Scope: platform.write, admin. Contract: route_inferred. Experiment Delete

platform.experiment.results

Read. Scope: platform.read, admin. Contract: route_inferred. Experiment Results

platform.experiment.save

Write. Scope: platform.write, admin. Contract: route_inferred. Experiment Save

platform.experiments.clear.all

Write. Scope: platform.write, admin. Contract: declared_dynamic. Experiments Clear All

platform.experiments.list

Read. Scope: platform.read, admin. Contract: declared_dynamic. Experiments List

platform.failed.logins.clear.all

Write. Scope: platform.write, admin. Contract: declared_dynamic. Failed Logins Clear All

platform.failed.logins.clear.history

Write. Scope: platform.write, admin. Contract: declared_dynamic. Failed Logins Clear History

platform.failed.logins.journey

Write. Scope: platform.write, admin. Contract: route_inferred. Failed Logins Journey

platform.failed.logins.list

Write. Scope: platform.write, admin. Contract: declared_dynamic. Failed Logins List

platform.failed.logins.unblock

Write. Scope: platform.write, admin. Contract: route_inferred. Failed Logins Unblock

platform.feedback.analysis.get

Read. Scope: platform.read, admin. Contract: declared_dynamic. Feedback Analysis Get

platform.feedback.analysis.run

Write. Scope: platform.write, admin. Contract: route_inferred. Feedback Analysis Run

platform.feedback.analytics.all

Read. Scope: platform.read, admin. Contract: route_inferred. Feedback Analytics All

platform.feedback.analytics.detractors

Read. Scope: platform.read, admin. Contract: route_inferred. Feedback Analytics Detractors

platform.feedback.analytics.metrics

Read. Scope: platform.read, admin. Contract: route_inferred. Feedback Analytics Metrics

platform.feedback.analytics.overview

Read. Scope: platform.read, admin. Contract: route_inferred. Feedback Analytics Overview

platform.feedback.analytics.segments

Read. Scope: platform.read, admin. Contract: route_inferred. Feedback Analytics Segments

platform.feedback.analytics.sentiment

Read. Scope: platform.read, admin. Contract: route_inferred. Feedback Analytics Sentiment

platform.feedback.analytics.themes

Read. Scope: platform.read, admin. Contract: route_inferred. Feedback Analytics Themes

platform.feedback.analytics.trends

Read. Scope: platform.read, admin. Contract: route_inferred. Feedback Analytics Trends

platform.feedback.assignees.list

Read. Scope: platform.read, admin. Contract: declared_dynamic. Feedback Assignees List

platform.feedback.event.outbox.drain

Write. Scope: platform.write, admin. Contract: route_inferred. Feedback Event Outbox Drain

platform.feedback.exports.create

Write. Scope: platform.write, admin. Contract: route_inferred. Feedback Exports Create

platform.feedback.exports.get

Read. Scope: platform.read, admin. Contract: route_inferred. Feedback Exports Get

platform.feedback.external.review.ingest

Write. Scope: platform.write, admin. Contract: route_inferred. Feedback External Review Ingest

platform.feedback.ingest.create

Write. Scope: platform.write, admin. Contract: route_inferred. Feedback Ingest Create

platform.feedback.items.assign

Write. Scope: platform.write, admin. Contract: route_inferred. Feedback Items Assign

platform.feedback.items.evidence

Read. Scope: platform.read, admin. Contract: route_inferred. Feedback Items Evidence

platform.feedback.items.follow.up.complete

Write. Scope: platform.write, admin. Contract: route_inferred. Feedback Items Follow Up Complete

platform.feedback.items.follow.up.set

Write. Scope: platform.write, admin. Contract: route_inferred. Feedback Items Follow Up Set Required fields: bool.

platform.feedback.items.get

Read. Scope: platform.read, admin. Contract: route_inferred. Feedback Items Get

platform.feedback.items.list

Read. Scope: platform.read, admin. Contract: route_inferred. Feedback Items List

platform.feedback.items.mark.read

Write. Scope: platform.write, admin. Contract: route_inferred. Feedback Items Mark Read

platform.feedback.items.notes.add

Write. Scope: platform.write, admin. Contract: route_inferred. Feedback Items Notes Add

platform.feedback.items.set.priority

Write. Scope: platform.write, admin. Contract: route_inferred. Feedback Items Set Priority

platform.feedback.items.set.status

Write. Scope: platform.write, admin. Contract: route_inferred. Feedback Items Set Status

platform.feedback.items.tags.add

Write. Scope: platform.write, admin. Contract: route_inferred. Feedback Items Tags Add

platform.feedback.items.tags.remove

Write. Scope: platform.write, admin. Contract: route_inferred. Feedback Items Tags Remove

platform.feedback.list

Read. Scope: platform.read, admin. Contract: route_inferred. Feedback List

platform.feedback.reconciliation

Read. Scope: platform.read, admin. Contract: declared_dynamic. Feedback Reconciliation

platform.feedback.reports.delete

Write. Scope: platform.write, admin. Contract: declared_dynamic. Feedback Reports Delete

platform.feedback.reports.email

Read. Scope: platform.read, admin. Contract: declared_dynamic. Feedback Reports Email

platform.feedback.reports.get

Read. Scope: platform.read, admin. Contract: declared_dynamic. Feedback Reports Get

platform.feedback.reports.list

Read. Scope: platform.read, admin. Contract: declared_dynamic. Feedback Reports List

platform.feedback.satisfaction.advice.last

Read. Scope: platform.read, admin. Contract: declared_dynamic. Feedback Satisfaction Advice Last

platform.feedback.satisfaction.advise

Read. Scope: platform.read, admin. Contract: declared_dynamic. Feedback Satisfaction Advise

platform.feedback.satisfaction.overview

Read. Scope: platform.read, admin. Contract: declared_dynamic. Feedback Satisfaction Overview

platform.feedback.sources.health

Read. Scope: platform.read, admin. Contract: declared_dynamic. Feedback Sources Health

platform.feedback.sources.list

Read. Scope: platform.read, admin. Contract: declared_dynamic. Feedback Sources List

platform.feedback.sources.rebuild

Write. Scope: platform.write, admin. Contract: route_inferred. Feedback Sources Rebuild

platform.feedback.sources.replay

Write. Scope: platform.write, admin. Contract: route_inferred. Feedback Sources Replay

platform.feedback.stats

Write. Scope: platform.write, admin. Contract: declared_dynamic. Feedback Stats

platform.fx.refresh.now

Write. Scope: platform.write, admin. Contract: declared_dynamic. Fx Refresh Now

platform.geoip.autodetect

Read. Scope: platform.read, admin. Contract: declared_dynamic. Geoip Autodetect

platform.get.admin.chat.history

Read. Scope: platform.read, admin. Contract: declared_dynamic. Get Admin Chat History

platform.get.ai.snapshot

Write. Scope: platform.write, admin. Contract: route_inferred. Get Ai Snapshot

platform.get.campaign.groups

Read. Scope: platform.read, admin. Contract: declared_dynamic. Get Campaign Groups

platform.get.client.chat.knowledge.overview

Write. Scope: platform.write, admin. Contract: declared_dynamic. Get Client Chat Knowledge Overview

platform.get.kb.categories

Read. Scope: platform.read, admin. Contract: route_inferred. Get Kb Categories

platform.get.live.health.snapshot

Read. Scope: platform.read, admin. Contract: route_inferred. Get Live Health Snapshot

platform.get.pwa.chat.prefs

Write. Scope: platform.write, admin. Contract: declared_dynamic. Get Pwa Chat Prefs

platform.get.servers

Read. Scope: platform.read, admin. Contract: declared_dynamic. Get Servers

platform.get.survey.config

Read. Scope: platform.read, admin. Contract: declared_dynamic. Get Survey Config

platform.get.ticket.options

Read. Scope: platform.read, admin. Contract: declared_dynamic. Get Ticket Options

platform.get.ticket.thread

Read. Scope: platform.read, admin. Contract: route_inferred. Get Ticket Thread

platform.get.todo.list

Read. Scope: platform.read, admin. Contract: declared_dynamic. Get Todo List

platform.get.widget.advanced

Read. Scope: platform.read, admin. Contract: route_inferred. Get Widget Advanced

platform.governance.summary

Read. Scope: platform.read, admin. Contract: route_inferred. Governance Summary

platform.groups.create

Write. Scope: platform.write, admin. Contract: route_inferred. Groups Create

platform.groups.delete

Write. Scope: platform.write, admin. Contract: route_inferred. Groups Delete

platform.groups.list

Write. Scope: platform.write, admin. Contract: route_inferred. Groups List

platform.groups.rename

Write. Scope: platform.write, admin. Contract: route_inferred. Groups Rename

platform.groups.set.primary

Write. Scope: platform.write, admin. Contract: route_inferred. Groups Set Primary

platform.hc.preview.mint

Read. Scope: platform.read, admin. Contract: route_inferred. Hc Preview Mint

platform.hc.template.apply

Write. Scope: platform.write, admin. Contract: route_inferred. Hc Template Apply

platform.hc.template.delete

Write. Scope: platform.write, admin. Contract: route_inferred. Hc Template Delete

platform.hc.template.preview

Read. Scope: platform.read, admin. Contract: route_inferred. Hc Template Preview

platform.hc.template.save

Write. Scope: platform.write, admin. Contract: route_inferred. Hc Template Save

platform.hc.templates.list

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hc Templates List

platform.hc.translation.review.get

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hc Translation Review Get

platform.hc.translation.review.list

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hc Translation Review List

platform.hc.translation.review.revert

Write. Scope: platform.write, admin. Contract: declared_dynamic. Hc Translation Review Revert

platform.hc.translation.review.save

Write. Scope: platform.write, admin. Contract: declared_dynamic. Hc Translation Review Save

platform.heatmap

Read. Scope: platform.read, admin. Contract: route_inferred. Heatmap

platform.hr.access.grant.manual

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Access Grant Manual

platform.hr.access.policy.list

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Access Policy List

platform.hr.access.policy.set

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Access Policy Set

platform.hr.access.request

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Access Request

platform.hr.access.revoke

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Access Revoke

platform.hr.accommodation.list

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Accommodation List

platform.hr.accommodation.resolve

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Accommodation Resolve

platform.hr.agent.assign

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Agent Assign

platform.hr.agent.compensation.retry

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Agent Compensation Retry

platform.hr.agent.compensation.sweep

Write. Scope: platform.write, admin. Contract: declared_dynamic. Hr Agent Compensation Sweep

platform.hr.agent.compensations

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Agent Compensations

platform.hr.agent.incident.close

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Agent Incident Close

platform.hr.agent.register

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Agent Register

platform.hr.agent.step

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Agent Step

platform.hr.agent.step.status

Read. Scope: platform.read, admin. Contract: route_inferred. Hr Agent Step Status

platform.hr.agent.tool.auth

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Agent Tool Auth

platform.hr.agent.tool.grant

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Agent Tool Grant

platform.hr.agent.tools

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Agent Tools

platform.hr.ai.act.build

Write. Scope: platform.write, admin. Contract: declared_dynamic. Hr Ai Act Build

platform.hr.ai.act.export

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Ai Act Export

platform.hr.ai.act.fria.record

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Ai Act Fria Record

platform.hr.ai.act.notice.publish

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Ai Act Notice Publish

platform.hr.ai.act.overseer.assign

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Ai Act Overseer Assign

platform.hr.ai.act.overseer.revoke

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Ai Act Overseer Revoke

platform.hr.ai.act.overview

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Ai Act Overview

platform.hr.ai.metering.export

Read. Scope: platform.read, admin. Contract: route_inferred. Hr Ai Metering Export

platform.hr.ai.metering.overview

Read. Scope: platform.read, admin. Contract: route_inferred. Hr Ai Metering Overview

platform.hr.ai.metering.settings.save

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Ai Metering Settings Save

platform.hr.ai.status

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Ai Status

platform.hr.analytics.ask

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Analytics Ask

platform.hr.analytics.snapshot

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Analytics Snapshot

platform.hr.app.move

Write. Scope: platform.write, admin. Contract: route_inferred. Hr App Move

platform.hr.appeal.list

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Appeal List

platform.hr.appeal.resolve

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Appeal Resolve

platform.hr.application.history

Read. Scope: platform.read, admin. Contract: route_inferred. Hr Application History

platform.hr.application.list

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Application List

platform.hr.assign

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Assign

platform.hr.auto.offer.run

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Auto Offer Run

platform.hr.autonomy.lane.demote

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Autonomy Lane Demote

platform.hr.autonomy.lane.install

Write. Scope: platform.write, admin. Contract: declared_dynamic. Hr Autonomy Lane Install

platform.hr.autonomy.lane.promote

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Autonomy Lane Promote

platform.hr.autonomy.lane.review

Read. Scope: platform.read, admin. Contract: route_inferred. Hr Autonomy Lane Review

platform.hr.autonomy.lane.shadow

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Autonomy Lane Shadow

platform.hr.autonomy.lanes

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Autonomy Lanes

platform.hr.autonomy.overview

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Autonomy Overview

platform.hr.availability.save

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Availability Save

platform.hr.band.approve

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Band Approve

platform.hr.band.list

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Band List

platform.hr.band.save

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Band Save

platform.hr.benchmarks.contribute.now

Write. Scope: platform.write, admin. Contract: declared_dynamic. Hr Benchmarks Contribute Now

platform.hr.benchmarks.opt.in

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Benchmarks Opt In

platform.hr.benchmarks.opt.out

Write. Scope: platform.write, admin. Contract: declared_dynamic. Hr Benchmarks Opt Out

platform.hr.benchmarks.overview

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Benchmarks Overview

platform.hr.benefit.enroll

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Benefit Enroll

platform.hr.benefit.plan.save

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Benefit Plan Save

platform.hr.bias.audit.list

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Bias Audit List

platform.hr.bias.audit.run

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Bias Audit Run

platform.hr.booking.link.save

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Booking Link Save

platform.hr.booking.slots.reconcile

Write. Scope: platform.write, admin. Contract: declared_dynamic. Hr Booking Slots Reconcile

platform.hr.breaker.reset

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Breaker Reset

platform.hr.broadcast.audience.options

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Broadcast Audience Options

platform.hr.broadcast.list

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Broadcast List

platform.hr.broadcast.preview

Read. Scope: platform.read, admin. Contract: route_inferred. Hr Broadcast Preview

platform.hr.broadcast.send

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Broadcast Send

platform.hr.budget.set

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Budget Set

platform.hr.calibration.close

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Calibration Close

platform.hr.calibration.move

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Calibration Move

platform.hr.calibration.open

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Calibration Open

platform.hr.capabilities.get

Read. Scope: platform.read, admin. Contract: route_inferred. Hr Capabilities Get

platform.hr.capability.set

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Capability Set

platform.hr.capability.trail

Read. Scope: platform.read, admin. Contract: route_inferred. Hr Capability Trail

platform.hr.cards.refresh

Write. Scope: platform.write, admin. Contract: declared_dynamic. Hr Cards Refresh

platform.hr.case.assign

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Case Assign

platform.hr.case.attachment.add

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Case Attachment Add

platform.hr.case.attachment.list

Read. Scope: platform.read, admin. Contract: route_inferred. Hr Case Attachment List

platform.hr.case.categories

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Case Categories

platform.hr.case.event.add

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Case Event Add

platform.hr.case.get

Read. Scope: platform.read, admin. Contract: route_inferred. Hr Case Get

platform.hr.case.grant.access

Read. Scope: platform.read, admin. Contract: route_inferred. Hr Case Grant Access

platform.hr.case.intake.mailbox

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Case Intake Mailbox

platform.hr.case.list

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Case List

platform.hr.case.open

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Case Open

platform.hr.case.route

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Case Route

platform.hr.case.thread

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Case Thread

platform.hr.case.tighten

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Case Tighten

platform.hr.certification.define

Read. Scope: platform.read, admin. Contract: route_inferred. Hr Certification Define

platform.hr.certification.list

Read. Scope: platform.read, admin. Contract: route_inferred. Hr Certification List

platform.hr.certification.record

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Certification Record

platform.hr.certification.state

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Certification State

platform.hr.certification.types

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Certification Types

platform.hr.check.list

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Check List

platform.hr.check.manual.result

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Check Manual Result

platform.hr.check.order

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Check Order

platform.hr.check.requery

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Check Requery

platform.hr.check.void

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Check Void

platform.hr.checkin.record

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Checkin Record

platform.hr.coach.feedback

Read. Scope: platform.read, admin. Contract: route_inferred. Hr Coach Feedback

platform.hr.coach.me

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Coach Me

platform.hr.coach.receive

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Coach Receive

platform.hr.comp.change.approve

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Comp Change Approve

platform.hr.comp.change.request

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Comp Change Request

platform.hr.compliance.build

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Compliance Build

platform.hr.compliance.list

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Compliance List

platform.hr.connector.cert.revoke

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Connector Cert Revoke

platform.hr.connector.cert.submissions

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Connector Cert Submissions

platform.hr.connector.cert.submit

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Connector Cert Submit

platform.hr.connector.certify

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Connector Certify

platform.hr.connector.health

Read. Scope: platform.read, admin. Contract: route_inferred. Hr Connector Health

platform.hr.connector.options

Read. Scope: platform.read, admin. Contract: route_inferred. Hr Connector Options

platform.hr.connector.revoke

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Connector Revoke

platform.hr.contract.list

Read. Scope: platform.read, admin. Contract: route_inferred. Hr Contract List

platform.hr.copilot.apply

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Copilot Apply

platform.hr.copilot.plan

Read. Scope: platform.read, admin. Contract: route_inferred. Hr Copilot Plan

platform.hr.copilot.recipes

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Copilot Recipes

platform.hr.copilot.reject

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Copilot Reject

platform.hr.correction.dataset.build

Write. Scope: platform.write, admin. Contract: declared_dynamic. Hr Correction Dataset Build

platform.hr.correction.datasets

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Correction Datasets

platform.hr.correction.privacy.review

Read. Scope: platform.read, admin. Contract: route_inferred. Hr Correction Privacy Review

platform.hr.course.enroll

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Course Enroll

platform.hr.course.save

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Course Save

platform.hr.course.skills.tag

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Course Skills Tag

platform.hr.decision.appeal.assign

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Decision Appeal Assign

platform.hr.decision.appeal.file

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Decision Appeal File

platform.hr.decision.appeal.resolve

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Decision Appeal Resolve

platform.hr.decision.appeals.list

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Decision Appeals List

platform.hr.decision.explanation

Read. Scope: platform.read, admin. Contract: route_inferred. Hr Decision Explanation

platform.hr.decisions.recent

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Decisions Recent

platform.hr.directory.visibility.get

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Directory Visibility Get

platform.hr.directory.visibility.set

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Directory Visibility Set

platform.hr.discipline.decide

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Discipline Decide

platform.hr.discipline.propose

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Discipline Propose

platform.hr.document.access.log

Read. Scope: platform.read, admin. Contract: route_inferred. Hr Document Access Log

platform.hr.document.deletion.request

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Document Deletion Request

platform.hr.document.hold

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Document Hold

platform.hr.document.intake

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Document Intake

platform.hr.document.list

Read. Scope: platform.read, admin. Contract: route_inferred. Hr Document List

platform.hr.document.requirement.add

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Document Requirement Add

platform.hr.document.requirement.remove

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Document Requirement Remove

platform.hr.document.review.approve

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Document Review Approve

platform.hr.document.reviews

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Document Reviews

platform.hr.dsr.list

Write. Scope: platform.write, admin. Contract: declared_dynamic. Hr Dsr List

platform.hr.dsr.transition

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Dsr Transition

platform.hr.email.intake.log

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Email Intake Log

platform.hr.employee.access.events

Read. Scope: platform.read, admin. Contract: route_inferred. Hr Employee Access Events

platform.hr.employee.provision

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Employee Provision

platform.hr.employee.restore

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Employee Restore

platform.hr.employee.suspend

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Employee Suspend

platform.hr.employment.activate

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Employment Activate

platform.hr.employment.end

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Employment End

platform.hr.enterprise.approve

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Enterprise Approve

platform.hr.equipment.delivered

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Equipment Delivered

platform.hr.equipment.request

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Equipment Request

platform.hr.equipment.returned

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Equipment Returned

platform.hr.escrow.resolve

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Escrow Resolve

platform.hr.evidence.a11y.record

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Evidence A11y Record

platform.hr.evidence.attest

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Evidence Attest

platform.hr.evidence.dr.record

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Evidence Dr Record

platform.hr.evidence.ledgers

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Evidence Ledgers

platform.hr.evidence.load.record

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Evidence Load Record

platform.hr.evidence.owner.assign

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Evidence Owner Assign

platform.hr.expense.confirm

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Expense Confirm

platform.hr.expense.decide

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Expense Decide

platform.hr.expense.handoff

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Expense Handoff

platform.hr.expense.overview

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Expense Overview

platform.hr.expense.policy.save

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Expense Policy Save

platform.hr.experience.metrics

Read. Scope: platform.read, admin. Contract: route_inferred. Hr Experience Metrics

platform.hr.expiry.run

Write. Scope: platform.write, admin. Contract: declared_dynamic. Hr Expiry Run

platform.hr.fairness.cohort.define

Read. Scope: platform.read, admin. Contract: route_inferred. Hr Fairness Cohort Define

platform.hr.fairness.cohorts

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Fairness Cohorts

platform.hr.fairness.evaluate

Read. Scope: platform.read, admin. Contract: route_inferred. Hr Fairness Evaluate

platform.hr.faq.delete

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Faq Delete

platform.hr.faq.draft

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Faq Draft

platform.hr.faq.list

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Faq List

platform.hr.faq.save

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Faq Save

platform.hr.faq.state

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Faq State

platform.hr.feedback.list

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Feedback List

platform.hr.feedback.record

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Feedback Record

platform.hr.flag.set

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Flag Set

platform.hr.flags.get

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Flags Get

platform.hr.frontline.overview

Write. Scope: platform.write, admin. Contract: declared_dynamic. Hr Frontline Overview

platform.hr.gig.decide

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Gig Decide

platform.hr.gig.post

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Gig Post

platform.hr.global.readiness

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Global Readiness

platform.hr.goal.create

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Goal Create

platform.hr.goal.draft

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Goal Draft

platform.hr.goal.update

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Goal Update

platform.hr.grievance.file

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Grievance File

platform.hr.grievance.outcome

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Grievance Outcome

platform.hr.headcount.approve

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Headcount Approve

platform.hr.headcount.draft

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Headcount Draft

platform.hr.headcount.list

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Headcount List

platform.hr.hire

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Hire

platform.hr.hiring.decide

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Hiring Decide

platform.hr.holiday.save

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Holiday Save

platform.hr.identity.admin.options

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Identity Admin Options

platform.hr.identity.conflict.resolve

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Identity Conflict Resolve

platform.hr.identity.coverage.plan

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Identity Coverage Plan

platform.hr.identity.facets

Read. Scope: platform.read, admin. Contract: route_inferred. Hr Identity Facets

platform.hr.identity.history

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Identity History

platform.hr.identity.link

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Identity Link

platform.hr.identity.revoke

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Identity Revoke

platform.hr.identity.verification.record

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Identity Verification Record

platform.hr.incident.list

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Incident List

platform.hr.incident.open

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Incident Open

platform.hr.incident.step

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Incident Step

platform.hr.interview.recording.start

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Interview Recording Start

platform.hr.interview.recording.upload

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Interview Recording Upload

platform.hr.interview.review

Read. Scope: platform.read, admin. Contract: route_inferred. Hr Interview Review

platform.hr.interview.room.answer

Read. Scope: platform.read, admin. Contract: route_inferred. Hr Interview Room Answer

platform.hr.interview.room.ask

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Interview Room Ask

platform.hr.interview.room.connect

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Interview Room Connect

platform.hr.interview.room.consent

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Interview Room Consent

platform.hr.interview.room.end

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Interview Room End

platform.hr.interview.room.leave

Read. Scope: platform.read, admin. Contract: route_inferred. Hr Interview Room Leave

platform.hr.interview.room.list

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Interview Room List

platform.hr.interview.room.observe

Read. Scope: platform.read, admin. Contract: route_inferred. Hr Interview Room Observe

platform.hr.interview.room.pause

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Interview Room Pause

platform.hr.interview.room.provision

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Interview Room Provision

platform.hr.interview.room.reconnect

Read. Scope: platform.read, admin. Contract: route_inferred. Hr Interview Room Reconnect

platform.hr.interview.room.resume

Read. Scope: platform.read, admin. Contract: route_inferred. Hr Interview Room Resume

platform.hr.interview.room.state

Read. Scope: platform.read, admin. Contract: route_inferred. Hr Interview Room State

platform.hr.interview.room.takeover

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Interview Room Takeover

platform.hr.interview.schedule

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Interview Schedule

platform.hr.interview.transcript.correct

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Interview Transcript Correct

platform.hr.investigation.close

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Investigation Close

platform.hr.investigation.finding

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Investigation Finding

platform.hr.investigation.hold

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Investigation Hold

platform.hr.investigation.open

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Investigation Open

platform.hr.investigation.triage

Read. Scope: platform.read, admin. Contract: route_inferred. Hr Investigation Triage

platform.hr.iplan.approve

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Iplan Approve

platform.hr.iplan.create

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Iplan Create

platform.hr.iplan.list

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Iplan List

platform.hr.iscore.human

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Iscore Human

platform.hr.iscore.run

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Iscore Run

platform.hr.isession.attach.meeting

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Isession Attach Meeting

platform.hr.isession.control

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Isession Control

platform.hr.isession.list

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Isession List

platform.hr.isession.liveness

Read. Scope: platform.read, admin. Contract: route_inferred. Hr Isession Liveness

platform.hr.isession.schedule

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Isession Schedule

platform.hr.job.arch.analyse

Write. Scope: platform.write, admin. Contract: declared_dynamic. Hr Job Arch Analyse

platform.hr.job.arch.apply

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Job Arch Apply

platform.hr.job.arch.approve

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Job Arch Approve

platform.hr.job.arch.overview

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Job Arch Overview

platform.hr.job.arch.propose

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Job Arch Propose

platform.hr.job.arch.reject

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Job Arch Reject

platform.hr.job.family.save

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Job Family Save

platform.hr.job.level.save

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Job Level Save

platform.hr.job.profile.save

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Job Profile Save

platform.hr.job.version.draft.ai

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Job Version Draft Ai

platform.hr.job.version.publish

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Job Version Publish

platform.hr.job.version.save

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Job Version Save

platform.hr.job.versions

Read. Scope: platform.read, admin. Contract: route_inferred. Hr Job Versions

platform.hr.jurisdiction.capabilities

Read. Scope: platform.read, admin. Contract: route_inferred. Hr Jurisdiction Capabilities

platform.hr.jurisdiction.case.run

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Jurisdiction Case Run

platform.hr.jurisdiction.case.save

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Jurisdiction Case Save

platform.hr.jurisdiction.change.assess

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Jurisdiction Change Assess

platform.hr.jurisdiction.change.close

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Jurisdiction Change Close

platform.hr.jurisdiction.change.raise

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Jurisdiction Change Raise

platform.hr.jurisdiction.coverage

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Jurisdiction Coverage

platform.hr.jurisdiction.explain

Read. Scope: platform.read, admin. Contract: route_inferred. Hr Jurisdiction Explain

platform.hr.jurisdiction.overlay.list

Read. Scope: platform.read, admin. Contract: route_inferred. Hr Jurisdiction Overlay List

platform.hr.jurisdiction.overlay.save

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Jurisdiction Overlay Save

platform.hr.jurisdiction.pack.draft

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Jurisdiction Pack Draft

platform.hr.jurisdiction.pack.release

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Jurisdiction Pack Release

platform.hr.jurisdiction.pack.withdraw

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Jurisdiction Pack Withdraw

platform.hr.jurisdiction.release.list

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Jurisdiction Release List

platform.hr.jurisdiction.rule.save

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Jurisdiction Rule Save

platform.hr.jurisdiction.source.declare

Read. Scope: platform.read, admin. Contract: route_inferred. Hr Jurisdiction Source Declare

platform.hr.jurisdiction.transfer.declare

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Jurisdiction Transfer Declare

platform.hr.kill.flip

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Kill Flip

platform.hr.kill.toggle

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Kill Toggle

platform.hr.kiosk.register

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Kiosk Register

platform.hr.kiosk.revoke

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Kiosk Revoke

platform.hr.knowledge.pack.install

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Knowledge Pack Install

platform.hr.knowledge.pack.remove

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Knowledge Pack Remove

platform.hr.knowledge.packs

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Knowledge Packs

platform.hr.leadership.score

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Leadership Score

platform.hr.learning.assign.mandatory

Write. Scope: platform.write, admin. Contract: declared_dynamic. Hr Learning Assign Mandatory

platform.hr.learning.overview

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Learning Overview

platform.hr.leave.decide

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Leave Decide

platform.hr.leave.overview

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Leave Overview

platform.hr.leave.policy.save

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Leave Policy Save

platform.hr.leave.type.save

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Leave Type Save

platform.hr.letter.issue

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Letter Issue

platform.hr.letter.kinds

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Letter Kinds

platform.hr.letter.preview

Read. Scope: platform.read, admin. Contract: route_inferred. Hr Letter Preview

platform.hr.listening.close

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Listening Close

platform.hr.listening.overview

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Listening Overview

platform.hr.listening.run.due

Write. Scope: platform.write, admin. Contract: declared_dynamic. Hr Listening Run Due

platform.hr.listening.schedule.save

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Listening Schedule Save

platform.hr.listening.schedule.state

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Listening Schedule State

platform.hr.loop.approve

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Loop Approve

platform.hr.loop.correct

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Loop Correct

platform.hr.loop.evaluate

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Loop Evaluate

platform.hr.loop.overview

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Loop Overview

platform.hr.loop.propose

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Loop Propose

platform.hr.loop.release

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Loop Release

platform.hr.loop.rollback

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Loop Rollback

platform.hr.loop.snapshot

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Loop Snapshot

platform.hr.marketplace.overview

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Marketplace Overview

platform.hr.meeting.book

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Meeting Book

platform.hr.meeting.cancel

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Meeting Cancel

platform.hr.meeting.propose

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Meeting Propose

platform.hr.meeting.reschedule

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Meeting Reschedule

platform.hr.meetings.overview

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Meetings Overview

platform.hr.meetings.reconcile

Write. Scope: platform.write, admin. Contract: declared_dynamic. Hr Meetings Reconcile

platform.hr.mentor.propose

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Mentor Propose

platform.hr.module.toggle

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Module Toggle

platform.hr.new.hire.checkin.state

Read. Scope: platform.read, admin. Contract: route_inferred. Hr New Hire Checkin State

platform.hr.offer.approve

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Offer Approve

platform.hr.offer.draft

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Offer Draft

platform.hr.offer.esign.confirm

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Offer Esign Confirm

platform.hr.offer.list

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Offer List

platform.hr.offer.send

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Offer Send

platform.hr.offer.withdraw

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Offer Withdraw

platform.hr.onboarding.checkins.book

Read. Scope: platform.read, admin. Contract: route_inferred. Hr Onboarding Checkins Book

platform.hr.onboarding.draft.tasks

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Onboarding Draft Tasks

platform.hr.onboarding.overview

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Onboarding Overview

platform.hr.onboarding.plan.buddy

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Onboarding Plan Buddy

platform.hr.onboarding.plan.close

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Onboarding Plan Close

platform.hr.onboarding.plan.create

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Onboarding Plan Create

platform.hr.onboarding.task.block

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Onboarding Task Block

platform.hr.onboarding.task.done

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Onboarding Task Done

platform.hr.onboarding.task.skip

Read. Scope: platform.read, admin. Contract: route_inferred. Hr Onboarding Task Skip

platform.hr.onboarding.task.unblock

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Onboarding Task Unblock

platform.hr.onboarding.task.verify

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Onboarding Task Verify

platform.hr.onboarding.template.save

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Onboarding Template Save

platform.hr.one.on.one.list

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr One On One List

platform.hr.one.on.one.record

Write. Scope: platform.write, admin. Contract: route_inferred. Hr One On One Record

platform.hr.opportunity.decide

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Opportunity Decide

platform.hr.opportunity.post

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Opportunity Post

platform.hr.org.chart

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Org Chart

platform.hr.org.legal.entities

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Org Legal Entities

platform.hr.org.legal.entity.create

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Org Legal Entity Create

platform.hr.org.location.create

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Org Location Create

platform.hr.org.locations

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Org Locations

platform.hr.org.map.overview

Write. Scope: platform.write, admin. Contract: declared_dynamic. Hr Org Map Overview

platform.hr.org.map.remove

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Org Map Remove

platform.hr.org.map.save

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Org Map Save

platform.hr.org.tree

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Org Tree

platform.hr.org.unit.create

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Org Unit Create

platform.hr.org.unit.move

Read. Scope: platform.read, admin. Contract: route_inferred. Hr Org Unit Move

platform.hr.override.record

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Override Record

platform.hr.overtime.decide

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Overtime Decide

platform.hr.path.enroll

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Path Enroll

platform.hr.path.save

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Path Save

platform.hr.pay.equity.overview

Write. Scope: platform.write, admin. Contract: declared_dynamic. Hr Pay Equity Overview

platform.hr.pay.gap.evaluate

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Pay Gap Evaluate

platform.hr.payroll.import

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Payroll Import

platform.hr.payroll.overview

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Payroll Overview

platform.hr.payroll.provider.exceptions

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Payroll Provider Exceptions

platform.hr.payroll.reconcile

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Payroll Reconcile

platform.hr.payslips.issue

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Payslips Issue

platform.hr.people.list

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr People List

platform.hr.perf.overview

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Perf Overview

platform.hr.person.create

Write. Scope: platform.write, admin. Contract: route_inferred. Create an HR person Required fields: display_name.

platform.hr.person.get

Read. Scope: platform.read, admin. Contract: route_inferred. Hr Person Get

platform.hr.person.identifier.add

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Person Identifier Add

platform.hr.person.identifier.read

Read. Scope: platform.read, admin. Contract: route_inferred. Hr Person Identifier Read

platform.hr.person.identifiers

Read. Scope: platform.read, admin. Contract: route_inferred. Hr Person Identifiers

platform.hr.person.update

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Person Update

platform.hr.pilot.outcome.record

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Pilot Outcome Record

platform.hr.pipeline

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Pipeline

platform.hr.policy.activate

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Policy Activate

platform.hr.policy.compile

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Policy Compile

platform.hr.pool.create

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Pool Create

platform.hr.pool.member.add

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Pool Member Add

platform.hr.pool.member.remove

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Pool Member Remove

platform.hr.pool.overview

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Pool Overview

platform.hr.portal.address

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Portal Address

platform.hr.portal.slug.save

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Portal Slug Save

platform.hr.position.assign

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Position Assign

platform.hr.position.create

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Position Create

platform.hr.position.overview

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Position Overview

platform.hr.position.profile.set

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Position Profile Set

platform.hr.position.reports.to

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Position Reports To

platform.hr.position.state

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Position State

platform.hr.position.vacate

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Position Vacate

platform.hr.posting.close

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Posting Close

platform.hr.posting.create

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Posting Create

platform.hr.posting.list

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Posting List

platform.hr.posting.publish

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Posting Publish

platform.hr.probation.open

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Probation Open

platform.hr.probation.review

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Probation Review

platform.hr.profile.address.format

Read. Scope: platform.read, admin. Contract: route_inferred. Hr Profile Address Format

platform.hr.profile.address.write

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Profile Address Write

platform.hr.profile.decide

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Profile Decide

platform.hr.profile.ownership.get

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Profile Ownership Get

platform.hr.profile.ownership.set

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Profile Ownership Set

platform.hr.profile.pending

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Profile Pending

platform.hr.profile.photo.clear

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Profile Photo Clear

platform.hr.profile.photo.set

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Profile Photo Set

platform.hr.profile.reveal

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Profile Reveal

platform.hr.profile.section.end

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Profile Section End

platform.hr.profile.section.write

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Profile Section Write

platform.hr.profile.sections

Read. Scope: platform.read, admin. Contract: route_inferred. Hr Profile Sections

platform.hr.pulse.close

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Pulse Close

platform.hr.pulse.issue

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Pulse Issue

platform.hr.pulse.list

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Pulse List

platform.hr.pulse.open

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Pulse Open

platform.hr.pulse.results

Read. Scope: platform.read, admin. Contract: route_inferred. Hr Pulse Results

platform.hr.quality.overview

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Quality Overview

platform.hr.quality.sample.draw

Write. Scope: platform.write, admin. Contract: declared_dynamic. Hr Quality Sample Draw

platform.hr.quality.samples

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Quality Samples

platform.hr.quality.verdict

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Quality Verdict

platform.hr.queue.agent.add

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Queue Agent Add

platform.hr.queue.agent.remove

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Queue Agent Remove

platform.hr.queue.save

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Queue Save

platform.hr.readiness.report

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Readiness Report

platform.hr.recognise

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Recognise

platform.hr.relations.overview

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Relations Overview

platform.hr.release.gates

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Release Gates

platform.hr.release.verify

Write. Scope: platform.write, admin. Contract: declared_dynamic. Hr Release Verify

platform.hr.req.create

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Req Create

platform.hr.req.list

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Req List

platform.hr.req.reject

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Req Reject

platform.hr.req.transition

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Req Transition

platform.hr.review.cycle.open

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Review Cycle Open

platform.hr.review.include

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Review Include

platform.hr.review.respond

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Review Respond

platform.hr.review.template.save

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Review Template Save

platform.hr.rubric.approve

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Rubric Approve

platform.hr.rubric.create

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Rubric Create

platform.hr.rubric.list

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Rubric List

platform.hr.run.replay

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Run Replay

platform.hr.run.start

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Run Start

platform.hr.run.step

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Run Step

platform.hr.run.takeover

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Run Takeover

platform.hr.scenario.run

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Scenario Run

platform.hr.schedule.save

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Schedule Save

platform.hr.screening.correct

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Screening Correct

platform.hr.screening.list

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Screening List

platform.hr.screening.review

Read. Scope: platform.read, admin. Contract: route_inferred. Hr Screening Review

platform.hr.screening.run

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Screening Run

platform.hr.screening.verify

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Screening Verify

platform.hr.security.assurance.record

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Security Assurance Record

platform.hr.service.item.save

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Service Item Save

platform.hr.servicedesk.overview

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Servicedesk Overview

platform.hr.shadow.compare

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Shadow Compare

platform.hr.shift.add

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Shift Add

platform.hr.shift.assign

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Shift Assign

platform.hr.signature.cancel

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Signature Cancel

platform.hr.signature.confirm

Read. Scope: platform.read, admin. Contract: route_inferred. Hr Signature Confirm

platform.hr.signature.list

Read. Scope: platform.read, admin. Contract: route_inferred. Hr Signature List

platform.hr.signature.request

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Signature Request

platform.hr.signin.design.get

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Signin Design Get

platform.hr.signin.design.save

Write. Scope: platform.write, admin. Contract: declared_dynamic. Hr Signin Design Save

platform.hr.skill.challenge.resolve

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Skill Challenge Resolve

platform.hr.skills.infer.sweep

Read. Scope: platform.read, admin. Contract: route_inferred. Hr Skills Infer Sweep

platform.hr.skills.infer.text

Read. Scope: platform.read, admin. Contract: route_inferred. Hr Skills Infer Text

platform.hr.skills.overview

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Skills Overview

platform.hr.skills.taxonomy.adopt

Write. Scope: platform.write, admin. Contract: declared_dynamic. Hr Skills Taxonomy Adopt

platform.hr.status

Write. Scope: platform.write, admin. Contract: declared_dynamic. Hr Status

platform.hr.succession.nominate

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Succession Nominate

platform.hr.succession.open

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Succession Open

platform.hr.succession.overview

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Succession Overview

platform.hr.swap.approve

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Swap Approve

platform.hr.swap.decline

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Swap Decline

platform.hr.sync.conflict.resolve

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Sync Conflict Resolve

platform.hr.talent.overview

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Talent Overview

platform.hr.thread.delete

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Thread Delete

platform.hr.thread.dm

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Thread Dm

platform.hr.thread.legal.hold

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Thread Legal Hold

platform.hr.thread.outreach

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Thread Outreach

platform.hr.thread.post

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Thread Post

platform.hr.thread.read

Read. Scope: platform.read, admin. Contract: route_inferred. Hr Thread Read

platform.hr.thread.retention

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Thread Retention

platform.hr.thread.search

Read. Scope: platform.read, admin. Contract: route_inferred. Hr Thread Search

platform.hr.threads.inbox

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Threads Inbox

platform.hr.threads.retention.sweep

Write. Scope: platform.write, admin. Contract: declared_dynamic. Hr Threads Retention Sweep

platform.hr.time.decide

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Time Decide

platform.hr.time.overview

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Time Overview

platform.hr.title.history

Read. Scope: platform.read, admin. Contract: route_inferred. Hr Title History

platform.hr.title.record

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Title Record

platform.hr.training.requirement.save

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Training Requirement Save

platform.hr.truth.register

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Truth Register

platform.hr.turnover.run

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Turnover Run

platform.hr.verifier.verdict

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Verifier Verdict

platform.hr.wb.grant

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Wb Grant

platform.hr.wb.identity

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Wb Identity

platform.hr.wb.list

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Wb List

platform.hr.wb.read

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Wb Read

platform.hr.wb.state

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Wb State

platform.hr.workforce.dashboard

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Workforce Dashboard

platform.inbound.activity.feed

Write. Scope: platform.write, admin. Contract: route_inferred. Inbound Activity Feed

platform.inbound.endpoints.delete

Write. Scope: platform.write, admin. Contract: route_inferred. Inbound Endpoints Delete

platform.inbound.endpoints.list

Write. Scope: admin. Contract: route_inferred. Inbound Endpoints List

platform.inbound.endpoints.save

Write. Scope: platform.write, admin. Contract: route_inferred. Inbound Endpoints Save

platform.inbound.endpoints.test

Write. Scope: platform.write, admin. Contract: route_inferred. Inbound Endpoints Test

platform.interrupted

Read. Scope: platform.read, admin. Contract: declared_dynamic. Interrupted

platform.ip.classify

Read. Scope: platform.read, admin. Contract: route_inferred. Ip Classify

platform.js.errors.clear.all

Write. Scope: platform.write, admin. Contract: declared_dynamic. Js Errors Clear All

platform.js.errors.list

Read. Scope: platform.read, admin. Contract: route_inferred. Js Errors List

platform.js.issue.assign

Write. Scope: platform.write, admin. Contract: route_inferred. Js Issue Assign

platform.js.issue.update

Write. Scope: platform.write, admin. Contract: route_inferred. Js Issue Update

platform.js.sourcemap.delete

Write. Scope: platform.write, admin. Contract: route_inferred. Js Sourcemap Delete

platform.js.sourcemap.upload

Write. Scope: platform.write, admin. Contract: route_inferred. Js Sourcemap Upload

platform.js.sourcemaps.list

Read. Scope: platform.read, admin. Contract: declared_dynamic. Js Sourcemaps List

platform.leads

Read. Scope: platform.read, admin. Contract: route_inferred. Leads

platform.license.delete

Write. Scope: admin. Contract: declared_dynamic. License Delete

platform.license.diagnostics

Read. Scope: platform.read, admin. Contract: declared_dynamic. License Diagnostics

platform.license.force.check

Read. Scope: platform.read, admin. Contract: declared_dynamic. License Force Check

platform.license.preflight

Read. Scope: platform.read, admin. Contract: declared_dynamic. License Preflight

platform.license.save

Write. Scope: admin. Contract: route_inferred. License Save

platform.license.status

Read. Scope: platform.read, admin. Contract: declared_dynamic. License Status

platform.license.verify.now

Write. Scope: platform.write, admin. Contract: declared_dynamic. License Verify Now

platform.lifecycle.evaluate

Read. Scope: platform.read, admin. Contract: route_inferred. Lifecycle Evaluate

platform.lifecycle.rule.delete

Write. Scope: platform.write, admin. Contract: route_inferred. Lifecycle Rule Delete

platform.lifecycle.rule.list

Read. Scope: platform.read, admin. Contract: route_inferred. Lifecycle Rule List

platform.lifecycle.rule.save

Write. Scope: platform.write, admin. Contract: route_inferred. Lifecycle Rule Save

platform.list.assignable.sites

Read. Scope: platform.read, admin. Contract: declared_dynamic. List Assignable Sites

platform.list.network.issues

Read. Scope: platform.read, admin. Contract: declared_dynamic. List Network Issues

platform.lookup.client.full

Read. Scope: platform.read, admin. Contract: route_inferred. Lookup Client Full

platform.mark.feedback.read

Write. Scope: platform.write, admin. Contract: route_inferred. Mark Feedback Read

platform.marketplace.local.install

Write. Scope: platform.write, admin. Contract: route_inferred. Marketplace Local Install

platform.marketplace.local.uninstall

Write. Scope: platform.write, admin. Contract: route_inferred. Marketplace Local Uninstall

platform.marketplace.session.get

Read. Scope: platform.read, admin. Contract: declared_dynamic. Marketplace Session Get

platform.marketplace.session.set

Write. Scope: platform.write, admin. Contract: route_inferred. Marketplace Session Set

platform.media.ready

Read. Scope: platform.read, admin. Contract: route_inferred. Media Ready

platform.message.contact.locale

Write. Scope: platform.write, admin. Contract: route_inferred. Message Contact Locale

platform.message.outbound.convert

Write. Scope: platform.write, admin. Contract: route_inferred. Message Outbound Convert

platform.message.translate

Write. Scope: platform.write, admin. Contract: route_inferred. Message Translate

platform.message.translation.delete

Write. Scope: platform.write, admin. Contract: route_inferred. Message Translation Delete

platform.message.translation.save

Write. Scope: platform.write, admin. Contract: route_inferred. Message Translation Save

platform.meta.channels.disconnect

Write. Scope: platform.write, admin. Contract: declared_dynamic. Meta Channels Disconnect

platform.meta.channels.switch.page

Write. Scope: platform.write, admin. Contract: route_inferred. Meta Channels Switch Page

platform.observe

Read. Scope: platform.read, admin. Contract: declared_dynamic. Observe

platform.onboarding.action

Read. Scope: platform.read, admin. Contract: declared_dynamic. Onboarding Action

platform.onboarding.readiness

Read. Scope: platform.read, admin. Contract: declared_dynamic. Onboarding Readiness

platform.open.network.issue

Read. Scope: platform.read, admin. Contract: declared_dynamic. Open Network Issue

platform.open.ticket

Read. Scope: platform.read, admin. Contract: route_inferred. Open Ticket

platform.operator.text.translate

Write. Scope: platform.write, admin. Contract: route_inferred. Operator Text Translate

platform.opsiq.backup.export

Read. Scope: platform.read, admin. Contract: declared_dynamic. Download a full backup in one request (retired)

platform.opsiq.backup.import

Write. Scope: platform.write, admin. Contract: route_inferred. Opsiq Backup Import

platform.opsiq.backup.import.start

Write. Scope: platform.write, admin. Contract: route_inferred. Opsiq Backup Import Start

platform.opsiq.backup.job.start

Write. Scope: platform.write, admin. Contract: route_inferred. Opsiq Backup Job Start

platform.opsiq.backup.job.status

Write. Scope: platform.write, admin. Contract: route_inferred. Opsiq Backup Job Status

platform.outreach.campaign.delete

Write. Scope: platform.write, admin. Contract: route_inferred. Outreach Campaign Delete

platform.outreach.campaign.list

Read. Scope: platform.read, admin. Contract: route_inferred. Outreach Campaign List

platform.outreach.campaign.save

Write. Scope: platform.write, admin. Contract: route_inferred. Outreach Campaign Save

platform.outreach.campaign.send

Write. Scope: platform.write, admin. Contract: route_inferred. Outreach Campaign Send

platform.outreach.compose.send

Write. Scope: platform.write, admin. Contract: route_inferred. Outreach Compose Send

platform.outreach.draft.delete

Write. Scope: platform.write, admin. Contract: route_inferred. Outreach Draft Delete

platform.outreach.draft.list

Read. Scope: platform.read, admin. Contract: route_inferred. Outreach Draft List

platform.outreach.draft.save

Write. Scope: platform.write, admin. Contract: route_inferred. Outreach Draft Save

platform.outreach.messages.delete

Write. Scope: platform.write, admin. Contract: route_inferred. Outreach Messages Delete

platform.outreach.replies.list

Read. Scope: platform.read, admin. Contract: route_inferred. Outreach Replies List

platform.outreach.reply.ai

Write. Scope: platform.write, admin. Contract: route_inferred. Outreach Reply Ai

platform.outreach.reply.mark

Write. Scope: platform.write, admin. Contract: route_inferred. Outreach Reply Mark

platform.outreach.reply.pref

Write. Scope: platform.write, admin. Contract: route_inferred. Outreach Reply Pref

platform.outreach.reply.send

Write. Scope: platform.write, admin. Contract: route_inferred. Outreach Reply Send

platform.outreach.reply.thread

Write. Scope: platform.write, admin. Contract: route_inferred. Outreach Reply Thread

platform.outreach.send.detail

Read. Scope: platform.read, admin. Contract: route_inferred. Outreach Send Detail

platform.outreach.send.retry

Write. Scope: platform.write, admin. Contract: route_inferred. Outreach Send Retry

platform.outreach.sends.list

Read. Scope: platform.read, admin. Contract: route_inferred. Outreach Sends List

platform.outreach.template.delete

Write. Scope: platform.write, admin. Contract: route_inferred. Outreach Template Delete

platform.outreach.template.list

Read. Scope: platform.read, admin. Contract: route_inferred. Outreach Template List

platform.outreach.template.preview

Read. Scope: platform.read, admin. Contract: route_inferred. Outreach Template Preview

platform.outreach.template.save

Write. Scope: platform.write, admin. Contract: route_inferred. Outreach Template Save

platform.overview

Read. Scope: platform.read, admin. Contract: declared_dynamic. Overview

platform.overview.hub.view

Read. Scope: platform.read, admin. Contract: route_inferred. Overview Hub View

platform.overview.intelligence.graph

Read. Scope: platform.read, admin. Contract: declared_dynamic. Overview Intelligence Graph

platform.pages

Read. Scope: platform.read, admin. Contract: route_inferred. Pages

platform.paths.data

Read. Scope: platform.read, admin. Contract: route_inferred. Paths Data

platform.pause

Read. Scope: platform.read, admin. Contract: declared_dynamic. Pause

platform.profile.change.password

Write. Scope: platform.write, admin. Contract: declared_dynamic. Profile Change Password

platform.profile.get

Read. Scope: platform.read, admin. Contract: route_inferred. Profile Get

platform.profile.reward.claim

Write. Scope: platform.write, admin. Contract: route_inferred. Profile Reward Claim

platform.profile.reward.claim.cancel

Write. Scope: platform.write, admin. Contract: route_inferred. Profile Reward Claim Cancel

platform.profile.save

Write. Scope: platform.write, admin. Contract: declared_dynamic. Profile Save

platform.profile.session.revoke

Write. Scope: platform.write, admin. Contract: route_inferred. Profile Session Revoke

platform.profile.sessions.list

Read. Scope: platform.read, admin. Contract: declared_dynamic. Profile Sessions List

platform.profile.sessions.revoke.others

Write. Scope: platform.write, admin. Contract: declared_dynamic. Profile Sessions Revoke Others

platform.profile.team.dispute.file

Write. Scope: platform.write, admin. Contract: route_inferred. Profile Team Dispute File

platform.purge

Write. Scope: admin. Contract: route_inferred. Purge

platform.purge.all

Write. Scope: admin. Contract: route_inferred. Purge All

platform.realtime

Read. Scope: platform.read, admin. Contract: route_inferred. Realtime

platform.realtime.test

Write. Scope: platform.write, admin. Contract: route_inferred. Realtime Test

platform.resume

Read. Scope: platform.read, admin. Contract: declared_dynamic. Resume

platform.retention.data

Read. Scope: platform.read, admin. Contract: route_inferred. Retention Data

platform.routes.list

Read. Scope: admin. Contract: source_inferred. List every registered OpsIQ operation

platform.routes.read

Read. Scope: admin. Contract: explicit. Execute a registered read operation Required fields: route.

platform.routes.write

Write. Scope: admin. Contract: explicit. Execute a registered write operation Required fields: route, idempotency_key. Retry-safe with idempotency_key.

platform.run.ai.analysis

Write. Scope: platform.write, admin. Contract: route_inferred. Run Ai Analysis

platform.save.admin.chat.history

Write. Scope: platform.write, admin. Contract: route_inferred. Save Admin Chat History

platform.save.pwa.chat.prefs

Write. Scope: platform.write, admin. Contract: declared_dynamic. Save Pwa Chat Prefs

platform.save.survey.config

Write. Scope: platform.write, admin. Contract: route_inferred. Save Survey Config

platform.save.widget.advanced

Write. Scope: platform.write, admin. Contract: declared_dynamic. Save Widget Advanced

platform.scim.token.issue

Read. Scope: platform.read, admin. Contract: route_inferred. Scim Token Issue

platform.scim.token.list

Read. Scope: platform.read, admin. Contract: declared_dynamic. Scim Token List

platform.scim.token.revoke

Write. Scope: platform.write, admin. Contract: route_inferred. Scim Token Revoke

platform.segment.delete

Write. Scope: platform.write, admin. Contract: route_inferred. Segment Delete

platform.segment.list

Read. Scope: platform.read, admin. Contract: route_inferred. Segment List

platform.segment.members

Read. Scope: platform.read, admin. Contract: route_inferred. Segment Members

platform.segment.preview

Read. Scope: platform.read, admin. Contract: route_inferred. Segment Preview

platform.segment.save

Write. Scope: platform.write, admin. Contract: route_inferred. Segment Save

platform.segment.suggestion.accept

Write. Scope: platform.write, admin. Contract: route_inferred. Segment Suggestion Accept

platform.segment.suggestion.dismiss

Write. Scope: platform.write, admin. Contract: route_inferred. Segment Suggestion Dismiss

platform.segment.suggestion.list

Read. Scope: platform.read, admin. Contract: route_inferred. Segment Suggestion List

platform.send.campaign

Write. Scope: platform.write, admin. Contract: route_inferred. Send Campaign

platform.send.client.email

Write. Scope: platform.write, admin. Contract: route_inferred. Send Client Email

platform.send.ticket.reply

Write. Scope: platform.write, admin. Contract: route_inferred. Send Ticket Reply

platform.service.studio.get

Read. Scope: platform.read, admin. Contract: declared_dynamic. Service Studio Get

platform.set.active.site

Write. Scope: platform.write, admin. Contract: route_inferred. Set Active Site

platform.silence

Read. Scope: platform.read, admin. Contract: declared_dynamic. Silence

platform.site.set.group

Write. Scope: platform.write, admin. Contract: route_inferred. Site Set Group

platform.sites.add

Write. Scope: platform.write, admin. Contract: route_inferred. Sites Add

platform.sites.edit

Write. Scope: platform.write, admin. Contract: route_inferred. Sites Edit

platform.sites.list

Write. Scope: platform.write, admin. Contract: route_inferred. Sites List

platform.sites.picker

Write. Scope: platform.write, admin. Contract: route_inferred. Sites Picker

platform.sites.regenerate.secret

Write. Scope: platform.write, admin. Contract: route_inferred. Sites Regenerate Secret

platform.sites.remove

Write. Scope: platform.write, admin. Contract: route_inferred. Sites Remove

platform.stats

Read. Scope: platform.read, admin. Contract: declared_dynamic. Stats

platform.stepup.verify

Write. Scope: platform.write, admin. Contract: declared_dynamic. Stepup Verify

platform.submit.agent.ai.feedback

Write. Scope: platform.write, admin. Contract: route_inferred. Submit Agent Ai Feedback

platform.submit.triage.feedback

Write. Scope: platform.write, admin. Contract: route_inferred. Submit Triage Feedback

platform.takeover

Read. Scope: platform.read, admin. Contract: declared_dynamic. Takeover

platform.terminate

Read. Scope: platform.read, admin. Contract: route_inferred. Terminate

platform.test.geoip

Read. Scope: platform.read, admin. Contract: route_inferred. Test Geoip

platform.top.pages

Read. Scope: platform.read, admin. Contract: route_inferred. Top Pages

platform.train.client.chat.knowledge

Write. Scope: platform.write, admin. Contract: route_inferred. Train Client Chat Knowledge

platform.triggers

Read. Scope: platform.read, admin. Contract: declared_dynamic. Triggers

platform.trust.evidence.report

Write. Scope: platform.write, admin. Contract: declared_dynamic. Trust Evidence Report

platform.turn.pool.add

Write. Scope: platform.write, admin. Contract: route_inferred. Turn Pool Add

platform.turn.pool.list

Read. Scope: platform.read, admin. Contract: declared_dynamic. Turn Pool List

platform.turn.pool.pick.test

Write. Scope: platform.write, admin. Contract: route_inferred. Turn Pool Pick Test

platform.turn.pool.remove

Write. Scope: platform.write, admin. Contract: route_inferred. Turn Pool Remove

platform.turn.pool.update

Write. Scope: platform.write, admin. Contract: route_inferred. Turn Pool Update

platform.update.lead.status

Write. Scope: platform.write, admin. Contract: route_inferred. Update Lead Status

platform.wa.embedded.signup.exchange

Write. Scope: platform.write, admin. Contract: route_inferred. Wa Embedded Signup Exchange

platform.warehouse.export.run

Read. Scope: platform.read, admin. Contract: declared_dynamic. Warehouse Export Run

platform.warehouse.exports.list

Read. Scope: platform.read, admin. Contract: declared_dynamic. Warehouse Exports List

platform.webhook.deliveries.list

Read. Scope: platform.read, admin. Contract: route_inferred. Webhook Deliveries List

platform.webhook.endpoint.delete

Write. Scope: platform.write, admin. Contract: route_inferred. Webhook Endpoint Delete

platform.webhook.endpoint.list

Read. Scope: platform.read, admin. Contract: declared_dynamic. Webhook Endpoint List

platform.webhook.endpoint.save

Write. Scope: platform.write, admin. Contract: route_inferred. Webhook Endpoint Save

platform.webhook.endpoint.test

Write. Scope: platform.write, admin. Contract: route_inferred. Webhook Endpoint Test

platform.webhook.redeliver

Write. Scope: platform.write, admin. Contract: route_inferred. Webhook Redeliver

platform.weekly.digest.view

Read. Scope: platform.read, admin. Contract: route_inferred. Weekly Digest View

platform.whmcs.op.dispatch

Read. Scope: platform.read, admin. Contract: declared_dynamic. Whmcs Op Dispatch

platform.workspace.custom.domain.remove

Write. Scope: platform.write, admin. Contract: route_inferred. Workspace Custom Domain Remove

platform.workspace.custom.domain.set

Write. Scope: platform.write, admin. Contract: route_inferred. Workspace Custom Domain Set

platform.writing.json.knowledge.clear

Write. Scope: platform.write, admin. Contract: declared_dynamic. Writing Json Knowledge Clear

platform.writing.json.knowledge.count

Read. Scope: platform.read, admin. Contract: declared_dynamic. Writing Json Knowledge Count

platform.writing.json.knowledge.import

Write. Scope: platform.write, admin. Contract: route_inferred. Writing Json Knowledge Import

portal_studio (169)

portal_studio.accessibility.evidence.save

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Accessibility Evidence Save

portal_studio.add

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Domain Add

portal_studio.allocate

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Subdomain Allocate

portal_studio.analytics.breakdown

Read. Scope: portal_studio.read, admin. Contract: declared_dynamic. Portal Studio Analytics Breakdown

portal_studio.analytics.load

Read. Scope: portal_studio.read, admin. Contract: declared_dynamic. Portal Studio Analytics Load

portal_studio.apply.kit

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Apply Kit

portal_studio.apply.theme

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Design Apply Theme

portal_studio.approval

Read. Scope: portal_studio.read, admin. Contract: route_inferred. Portal Design Approval

portal_studio.approve

Write. Scope: portal_studio.write, admin. Contract: declared_dynamic. Portal Studio Approve

portal_studio.ask

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Ask

portal_studio.audience.delete

Write. Scope: portal_studio.write, admin. Contract: declared_dynamic. Portal Studio Audience Delete

portal_studio.audience.explain

Read. Scope: portal_studio.read, admin. Contract: declared_dynamic. Portal Studio Audience Explain

portal_studio.audience.list

Read. Scope: portal_studio.read, admin. Contract: declared_dynamic. Portal Studio Audience List

portal_studio.audience.preview

Read. Scope: portal_studio.read, admin. Contract: declared_dynamic. Portal Studio Audience Preview

portal_studio.audience.save

Write. Scope: portal_studio.write, admin. Contract: declared_dynamic. Portal Studio Audience Save

portal_studio.brand.generate

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Design Brand Generate

portal_studio.brand.import

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Design Brand Import

portal_studio.cancel.schedule

Write. Scope: portal_studio.write, admin. Contract: declared_dynamic. Portal Design Cancel Schedule

portal_studio.certify

Read. Scope: portal_studio.read, admin. Contract: declared_dynamic. Portal Studio Certify

portal_studio.check

Read. Scope: portal_studio.read, admin. Contract: route_inferred. Portal Host Check

portal_studio.check.route.portal.subdomain.check

Read. Scope: portal_studio.read, admin. Contract: route_inferred. Portal Subdomain Check

portal_studio.comment.add

Write. Scope: portal_studio.write, admin. Contract: declared_dynamic. Portal Studio Comment Add

portal_studio.comment.resolve

Write. Scope: portal_studio.write, admin. Contract: declared_dynamic. Portal Studio Comment Resolve

portal_studio.component.package.inspect

Read. Scope: portal_studio.read, admin. Contract: declared_dynamic. Portal Studio Component Package Inspect

portal_studio.component.package.install

Write. Scope: portal_studio.write, admin. Contract: declared_dynamic. Portal Studio Component Package Install

portal_studio.component.validate

Read. Scope: portal_studio.read, admin. Contract: declared_dynamic. Portal Studio Component Validate

portal_studio.config

Read. Scope: portal_studio.read, admin. Contract: declared_dynamic. Portal Handoff Config

portal_studio.data.resolve

Read. Scope: portal_studio.read, admin. Contract: declared_dynamic. Portal Studio Data Resolve

portal_studio.delete.theme

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Design Delete Theme

portal_studio.developer.contract

Read. Scope: portal_studio.read, admin. Contract: declared_dynamic. Portal Studio Developer Contract

portal_studio.discovery.preview

Read. Scope: portal_studio.read, admin. Contract: route_inferred. Portal Studio Discovery Preview

portal_studio.discovery.save

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Discovery Save

portal_studio.document.load

Read. Scope: portal_studio.read, admin. Contract: declared_dynamic. Portal Studio Load

portal_studio.document.save

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Save

portal_studio.experiment.control

Write. Scope: portal_studio.write, admin. Contract: declared_dynamic. Portal Studio Experiment Control

portal_studio.experiment.results

Read. Scope: portal_studio.read, admin. Contract: declared_dynamic. Portal Studio Experiment Results

portal_studio.experiment.save

Write. Scope: portal_studio.write, admin. Contract: declared_dynamic. Portal Studio Experiment Save

portal_studio.experiments.list

Read. Scope: portal_studio.read, admin. Contract: declared_dynamic. Portal Studio Experiments List

portal_studio.form.archive

Write. Scope: portal_studio.write, admin. Contract: declared_dynamic. Portal Studio Form Archive

portal_studio.form.catalog

Read. Scope: portal_studio.read, admin. Contract: declared_dynamic. Portal Studio Form Catalog

portal_studio.form.create

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Form Create

portal_studio.form.delete

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Form Delete

portal_studio.form.duplicate

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Form Duplicate

portal_studio.form.evaluate

Read. Scope: portal_studio.read, admin. Contract: route_inferred. Portal Studio Form Evaluate

portal_studio.form.group.apply

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Form Group Apply

portal_studio.form.group.delete

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Form Group Delete

portal_studio.form.group.save

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Form Group Save

portal_studio.form.publish

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Form Publish

portal_studio.form.restore

Write. Scope: portal_studio.write, admin. Contract: declared_dynamic. Portal Studio Form Restore

portal_studio.form.save

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Form Save

portal_studio.form.template

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Form Template

portal_studio.form.test

Read. Scope: portal_studio.read, admin. Contract: route_inferred. Portal Studio Form Test

portal_studio.form.version.restore

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Form Version Restore

portal_studio.history

Read. Scope: portal_studio.read, admin. Contract: route_inferred. Portal Design History

portal_studio.identity.discover

Read. Scope: portal_studio.read, admin. Contract: declared_dynamic. Portal Studio Identity Discover

portal_studio.identity.load

Read. Scope: portal_studio.read, admin. Contract: declared_dynamic. Portal Studio Identity Load

portal_studio.identity.save

Write. Scope: portal_studio.write, admin. Contract: declared_dynamic. Portal Studio Identity Save

portal_studio.integration.activate

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Integration Activate

portal_studio.integration.install

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Integration Install

portal_studio.integration.kill.switch

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Integration Kill Switch

portal_studio.integration.list

Read. Scope: portal_studio.read, admin. Contract: declared_dynamic. Portal Studio Integration List

portal_studio.integration.policy

Read. Scope: portal_studio.read, admin. Contract: declared_dynamic. Portal Studio Integration Policy

portal_studio.integration.policy.save

Write. Scope: portal_studio.write, admin. Contract: declared_dynamic. Portal Studio Integration Policy Save

portal_studio.integration.preflight

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Integration Preflight

portal_studio.integration.revise

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Integration Revise

portal_studio.integration.rollback

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Integration Rollback

portal_studio.integration.transition

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Integration Transition

portal_studio.journey.archive

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Journey Archive

portal_studio.journey.catalog

Read. Scope: portal_studio.read, admin. Contract: declared_dynamic. Portal Studio Journey Catalog

portal_studio.journey.delete

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Journey Delete

portal_studio.journey.duplicate

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Journey Duplicate

portal_studio.journey.evaluate

Read. Scope: portal_studio.read, admin. Contract: route_inferred. Portal Studio Journey Evaluate

portal_studio.journey.instantiate

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Journey Instantiate

portal_studio.journey.restore

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Journey Restore

portal_studio.journey.save

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Journey Save

portal_studio.kb.category.delete

Write. Scope: portal_studio.write, admin. Contract: declared_dynamic. Portal Studio Kb Category Delete

portal_studio.kb.category.reorder

Write. Scope: portal_studio.write, admin. Contract: declared_dynamic. Portal Studio Kb Category Reorder

portal_studio.kb.category.save

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Kb Category Save

portal_studio.kb.governance

Read. Scope: portal_studio.read, admin. Contract: declared_dynamic. Portal Studio Kb Governance

portal_studio.kb.governance.save

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Kb Governance Save

portal_studio.kb.languages

Read. Scope: portal_studio.read, admin. Contract: declared_dynamic. Portal Studio Kb Languages

portal_studio.kb.languages.save

Write. Scope: portal_studio.write, admin. Contract: declared_dynamic. Portal Studio Kb Languages Save

portal_studio.kb.parity

Read. Scope: portal_studio.read, admin. Contract: declared_dynamic. Portal Studio Kb Parity

portal_studio.kb.search.tuning

Read. Scope: portal_studio.read, admin. Contract: declared_dynamic. Portal Studio Kb Search Tuning

portal_studio.kb.search.tuning.save

Write. Scope: portal_studio.write, admin. Contract: declared_dynamic. Portal Studio Kb Search Tuning Save

portal_studio.kb.tree

Read. Scope: portal_studio.read, admin. Contract: declared_dynamic. Portal Studio Kb Tree

portal_studio.knowledge.summary

Read. Scope: portal_studio.read, admin. Contract: declared_dynamic. Portal Studio Knowledge Summary

portal_studio.list

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Domain List

portal_studio.load

Read. Scope: portal_studio.read, admin. Contract: route_inferred. Portal Analytics Load

portal_studio.load.route.portal.design.load

Write. Scope: portal_studio.write, admin. Contract: declared_dynamic. Portal Design Load

portal_studio.load.route.portal.form.load

Read. Scope: portal_studio.read, admin. Contract: declared_dynamic. Portal Form Load

portal_studio.lock

Write. Scope: portal_studio.write, admin. Contract: declared_dynamic. Portal Studio Lock

portal_studio.migration.apply

Write. Scope: portal_studio.write, admin. Contract: declared_dynamic. Portal Studio Migration Apply

portal_studio.migration.approve

Write. Scope: portal_studio.write, admin. Contract: declared_dynamic. Portal Studio Migration Approve

portal_studio.migration.list

Read. Scope: portal_studio.read, admin. Contract: declared_dynamic. Portal Studio Migration List

portal_studio.migration.reconcile

Write. Scope: portal_studio.write, admin. Contract: declared_dynamic. Portal Studio Migration Reconcile

portal_studio.migration.report

Read. Scope: portal_studio.read, admin. Contract: declared_dynamic. Portal Studio Migration Report

portal_studio.migration.rollback

Write. Scope: portal_studio.write, admin. Contract: declared_dynamic. Portal Studio Migration Rollback

portal_studio.migration.rollout

Write. Scope: portal_studio.write, admin. Contract: declared_dynamic. Portal Studio Migration Rollout

portal_studio.migration.start

Write. Scope: portal_studio.write, admin. Contract: declared_dynamic. Portal Studio Migration Start

portal_studio.node.add

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Node Add

portal_studio.node.delete

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Node Delete

portal_studio.node.duplicate

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Node Duplicate

portal_studio.node.move

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Node Move

portal_studio.node.update

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Node Update

portal_studio.operations.control

Write. Scope: portal_studio.write, admin. Contract: declared_dynamic. Portal Studio Operations Control

portal_studio.operations.feed

Read. Scope: portal_studio.read, admin. Contract: declared_dynamic. Portal Studio Operations Feed

portal_studio.operations.record

Write. Scope: portal_studio.write, admin. Contract: declared_dynamic. Portal Studio Operations Record

portal_studio.operations.summary

Read. Scope: portal_studio.read, admin. Contract: declared_dynamic. Portal Studio Operations Summary

portal_studio.org.context

Read. Scope: portal_studio.read, admin. Contract: declared_dynamic. Portal Studio Org Context

portal_studio.org.member.save

Write. Scope: portal_studio.write, admin. Contract: declared_dynamic. Portal Studio Org Member Save

portal_studio.org.members

Read. Scope: portal_studio.read, admin. Contract: declared_dynamic. Portal Studio Org Members

portal_studio.org.requests

Read. Scope: portal_studio.read, admin. Contract: declared_dynamic. Portal Studio Org Requests

portal_studio.page.archive

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Page Archive

portal_studio.page.create

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Page Create

portal_studio.page.delete

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Page Delete

portal_studio.page.duplicate

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Page Duplicate

portal_studio.page.restore

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Page Restore

portal_studio.page.update

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Page Update

portal_studio.parity.accept

Write. Scope: portal_studio.write, admin. Contract: declared_dynamic. Portal Studio Parity Accept

portal_studio.parity.capture

Write. Scope: portal_studio.write, admin. Contract: declared_dynamic. Portal Studio Parity Capture

portal_studio.parity.compare

Write. Scope: portal_studio.write, admin. Contract: declared_dynamic. Portal Studio Parity Compare

portal_studio.parity.create

Write. Scope: portal_studio.write, admin. Contract: declared_dynamic. Portal Studio Parity Create

portal_studio.parity.list

Read. Scope: portal_studio.read, admin. Contract: declared_dynamic. Portal Studio Parity List

portal_studio.personalization.delete

Write. Scope: portal_studio.write, admin. Contract: declared_dynamic. Portal Studio Personalization Delete

portal_studio.personalization.list

Read. Scope: portal_studio.read, admin. Contract: declared_dynamic. Portal Studio Personalization List

portal_studio.personalization.save

Write. Scope: portal_studio.write, admin. Contract: declared_dynamic. Portal Studio Personalization Save

portal_studio.presence

Read. Scope: portal_studio.read, admin. Contract: declared_dynamic. Portal Studio Presence

portal_studio.preview

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Design Preview

portal_studio.preview.catalog

Read. Scope: portal_studio.read, admin. Contract: declared_dynamic. Portal Studio Preview Catalog

portal_studio.publish

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Design Publish

portal_studio.quality

Read. Scope: portal_studio.read, admin. Contract: declared_dynamic. Portal Studio Quality

portal_studio.redirect.delete

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Redirect Delete

portal_studio.redirect.save

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Redirect Save

portal_studio.release.diff

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Design Release Diff

portal_studio.release.evidence

Read. Scope: portal_studio.read, admin. Contract: route_inferred. Portal Design Release Evidence

portal_studio.release.history

Read. Scope: portal_studio.read, admin. Contract: declared_dynamic. Portal Studio Release History

portal_studio.release.publish

Write. Scope: portal_studio.write, admin. Contract: declared_dynamic. Portal Studio Publish

portal_studio.release.rollback

Write. Scope: portal_studio.write, admin. Contract: declared_dynamic. Portal Studio Rollback

portal_studio.release.schedule

Write. Scope: portal_studio.write, admin. Contract: declared_dynamic. Portal Studio Schedule

portal_studio.remove

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Domain Remove

portal_studio.request.changes

Write. Scope: portal_studio.write, admin. Contract: declared_dynamic. Portal Studio Request Changes

portal_studio.restore.field

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Design Restore Field

portal_studio.restore.published

Write. Scope: portal_studio.write, admin. Contract: declared_dynamic. Portal Studio Restore Published

portal_studio.revert

Read. Scope: portal_studio.read, admin. Contract: declared_dynamic. Portal Design Revert

portal_studio.review

Write. Scope: portal_studio.write, admin. Contract: declared_dynamic. Portal Studio Review

portal_studio.review.link

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Design Review Link

portal_studio.rollback

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Design Rollback

portal_studio.save

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Design Save

portal_studio.save.route.portal.form.save

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Form Save

portal_studio.save.theme

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Design Save Theme

portal_studio.saved.section.delete

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Saved Section Delete

portal_studio.saved.section.instantiate

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Saved Section Instantiate

portal_studio.saved.section.save

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Saved Section Save

portal_studio.schedule

Read. Scope: portal_studio.read, admin. Contract: route_inferred. Portal Design Schedule

portal_studio.schedule.cancel

Write. Scope: portal_studio.write, admin. Contract: declared_dynamic. Portal Studio Schedule Cancel

portal_studio.scim.config

Write. Scope: portal_studio.write, admin. Contract: declared_dynamic. Portal Studio Scim Config

portal_studio.service.archive

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Service Archive

portal_studio.service.catalog

Read. Scope: portal_studio.read, admin. Contract: declared_dynamic. Portal Studio Service Catalog

portal_studio.service.duplicate

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Service Duplicate

portal_studio.service.reorder

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Service Reorder

portal_studio.service.restore

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Service Restore

portal_studio.service.save

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Service Save

portal_studio.service.template

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Service Template

portal_studio.sign.in.flow.save

Write. Scope: portal_studio.write, admin. Contract: declared_dynamic. Portal Studio Sign In Flow Save

portal_studio.signin.methods

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Design Signin Methods

portal_studio.test.link

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Handoff Test Link

portal_studio.unlock

Write. Scope: portal_studio.write, admin. Contract: declared_dynamic. Portal Studio Unlock

portal_studio.upload

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Image Upload

sales (14)

sales.ai.insight

Write. Scope: sales.write, admin. Contract: route_inferred. Sales Ai Insight

sales.analyze

Write. Scope: sales.write, analytics.write, admin. Contract: route_inferred. Analyze sales with AI

sales.chart

Write. Scope: sales.write, admin. Contract: route_inferred. Sales Chart

sales.compare

Read. Scope: sales.read, analytics.read, admin. Contract: route_inferred. Compare sales periods

sales.compare.route.sales.compare

Read. Scope: sales.read, admin. Contract: route_inferred. Sales Compare

sales.goal.delete

Write. Scope: sales.write, admin. Contract: route_inferred. Conversion Goal Delete

sales.goal.list

Read. Scope: sales.read, admin. Contract: route_inferred. Conversion Goal List

sales.goal.save

Write. Scope: sales.write, admin. Contract: route_inferred. Conversion Goal Save

sales.list

Read. Scope: sales.read, analytics.read, admin. Contract: route_inferred. List sales and conversions

sales.list.route.conversion.list

Read. Scope: sales.read, admin. Contract: route_inferred. Conversion List

sales.record

Write. Scope: sales.write, admin. Contract: route_inferred. Conversion Record

sales.stats

Read. Scope: sales.read, analytics.read, admin. Contract: declared_dynamic. Read sales statistics

sales.stats.route.sales.stats

Read. Scope: sales.read, admin. Contract: declared_dynamic. Sales Stats

sales.table

Read. Scope: sales.read, admin. Contract: route_inferred. Sales Table

सुरक्षा (21)

security.ai.analyze

Write. Scope: security.write, admin. Contract: route_inferred. Security Ai Analyze

security.ai.ask

Write. Scope: security.write, admin. Contract: route_inferred. Security Ai Ask

security.ai.briefs

Read. Scope: security.read, admin. Contract: declared_dynamic. Security Ai Briefs

security.ai.chain.explain

Read. Scope: security.read, admin. Contract: route_inferred. Security Ai Chain Explain

security.ai.incident.action

Write. Scope: security.write, admin. Contract: route_inferred. Security Ai Incident Action

security.ai.incidents

Read. Scope: security.read, admin. Contract: route_inferred. Security Ai Incidents

security.ai.js.triage

Read. Scope: security.read, admin. Contract: route_inferred. Security Ai Js Triage

security.ai.policies

Read. Scope: security.read, admin. Contract: declared_dynamic. Security Ai Policies

security.ai.policy.action

Write. Scope: security.write, admin. Contract: route_inferred. Security Ai Policy Action

security.ai.verdicts

Read. Scope: security.read, admin. Contract: route_inferred. Security Ai Verdicts

security.blocklist.add

Write. Scope: security.write, admin. Contract: source_inferred. Add a spam rule (email, domain or IP) to the ticket blocklist Required fields: kind, value. Retry-safe with idempotency_key.

security.blocklist.list

Read. Scope: security.read, admin. Contract: explicit. List the current ticket spam rules

security.chain.reanchor

Write. Scope: security.write, admin. Contract: declared_dynamic. Security Chain Reanchor

security.check

Read. Scope: security.read, admin. Contract: source_inferred. Check an IP or email against the platform blocklists and Security AI verdicts

security.ip

Write. Scope: security.write, admin. Contract: route_inferred. Block Ip

security.ip.route.unblock.ip

Write. Scope: security.write, admin. Contract: route_inferred. Unblock Ip

security.list

Write. Scope: security.write, admin. Contract: route_inferred. Access Log List

security.overview.chains

Read. Scope: security.read, admin. Contract: declared_dynamic. Security Overview Chains

security.overview.data

Read. Scope: security.read, admin. Contract: declared_dynamic. Security Overview Data

security.report

Write. Scope: security.write, admin. Contract: source_inferred. Report abuse a connector observed (spam, login attack, scan, fraud) Retry-safe with idempotency_key.

security.visitor

Write. Scope: security.write, admin. Contract: route_inferred. Block Visitor

sessions (5)

sessions.detail

Read. Scope: sessions.read, admin. Contract: route_inferred. Session Detail

sessions.get

Read. Scope: sessions.read, analytics.read, admin. Contract: route_inferred. Get a session journey Required fields: session_id.

sessions.list

Read. Scope: sessions.read, analytics.read, admin. Contract: route_inferred. List sessions

sessions.merged

Read. Scope: sessions.read, admin. Contract: route_inferred. Sessions Merged

sessions.table

Read. Scope: sessions.read, admin. Contract: route_inferred. Sessions Table

settings (11)

settings.ai.eval.watchtower.config

Write. Scope: settings.write, admin. Contract: declared_dynamic. Ai Eval Watchtower Config

settings.get.client.chat.settings

Read. Scope: settings.read, admin. Contract: route_inferred. Get Client Chat Settings

settings.get.settings

Read. Scope: settings.read, admin. Contract: route_inferred. Get Settings

settings.opsiq.branding.clear

Write. Scope: admin. Contract: route_inferred. Opsiq Branding Clear

settings.opsiq.branding.upload

Write. Scope: admin. Contract: route_inferred. Opsiq Branding Upload

settings.privacy.settings.get

Read. Scope: settings.read, admin. Contract: declared_dynamic. Privacy Settings Get

settings.privacy.settings.save

Write. Scope: settings.write, admin. Contract: route_inferred. Privacy Settings Save

settings.save.ai.settings

Write. Scope: settings.write, admin. Contract: route_inferred. Save Ai Settings

settings.save.chat.widget.settings

Write. Scope: settings.write, admin. Contract: declared_dynamic. Save Chat Widget Settings

settings.save.client.chat.settings

Write. Scope: settings.write, admin. Contract: route_inferred. Save Client Chat Settings

settings.save.settings

Write. Scope: settings.write, admin. Contract: route_inferred. Save Settings

site_intelligence (221)

site_intelligence.action.audit.chain

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Action Audit Chain

site_intelligence.action.execute

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Action Execute

site_intelligence.action.preview

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Action Preview

site_intelligence.action.token

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Action Token

site_intelligence.agent.auto.bg

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Agent Auto Bg

site_intelligence.agent.auto.bg.stop

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Agent Auto Bg Stop

site_intelligence.agent.auto.step

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Agent Auto Step

site_intelligence.agent.chat

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Agent Chat

site_intelligence.agent.conn.delete

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Agent Conn Delete

site_intelligence.agent.conn.get

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Agent Conn Get

site_intelligence.agent.conn.save

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Agent Conn Save

site_intelligence.agent.conn.test

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Agent Conn Test

site_intelligence.agent.coverage

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Agent Coverage

site_intelligence.agent.events

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Agent Events

site_intelligence.agent.hosted.apply

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Agent Hosted Apply

site_intelligence.agent.hosted.finalize

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Agent Hosted Finalize

site_intelligence.agent.hosted.live.set

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Agent Hosted Live Set

site_intelligence.agent.hosted.preview

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Agent Hosted Preview

site_intelligence.agent.hosted.rollback

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Agent Hosted Rollback

site_intelligence.agent.hosted.start

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Agent Hosted Start

site_intelligence.agent.hosted.verify

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Agent Hosted Verify

site_intelligence.agent.run.delete

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Agent Run Delete

site_intelligence.agent.run.finalize

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Agent Run Finalize

site_intelligence.agent.run.rollback

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Agent Run Rollback

site_intelligence.agent.run.start

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Agent Run Start

site_intelligence.agent.run.status

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Agent Run Status

site_intelligence.agent.run.verify

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Agent Run Verify

site_intelligence.agent.runs.list

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Agent Runs List

site_intelligence.agent.set.mode

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Agent Set Mode

site_intelligence.agent.status

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Agent Status

site_intelligence.agent.step.apply

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Agent Step Apply

site_intelligence.agent.step.skip

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Agent Step Skip

site_intelligence.agent.turn.status

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Agent Turn Status

site_intelligence.ai.activity

Read. Scope: site_intelligence.read, admin. Contract: declared_dynamic. Si Ai Activity

site_intelligence.ai.alert.enrich

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Ai Alert Enrich

site_intelligence.ai.alerts

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Ai Alerts

site_intelligence.ai.analyst

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Ai Analyst

site_intelligence.ai.analyst.ask

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Ai Analyst Ask

site_intelligence.ai.analyst.email

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Ai Analyst Email

site_intelligence.ai.analyst.run

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Ai Analyst Run

site_intelligence.ai.badges

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Ai Badges

site_intelligence.ai.badges.portfolio

Read. Scope: site_intelligence.read, admin. Contract: declared_dynamic. Si Ai Badges Portfolio

site_intelligence.ai.badges.preview

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Ai Badges Preview

site_intelligence.ai.bl.plan

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Ai Bl Plan

site_intelligence.ai.bl.plan.run

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Ai Bl Plan Run

site_intelligence.ai.brief

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Ai Brief

site_intelligence.ai.brief.run

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Ai Brief Run

site_intelligence.ai.comp.analyse

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Ai Comp Analyse

site_intelligence.ai.comp.analyse.run

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Ai Comp Analyse Run

site_intelligence.ai.content.get

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Ai Content Get

site_intelligence.ai.content.list

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Ai Content List

site_intelligence.ai.content.publish

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Ai Content Publish

site_intelligence.ai.content.write

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Ai Content Write

site_intelligence.ai.daily.digest

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Ai Daily Digest

site_intelligence.ai.discover

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Ai Discover

site_intelligence.ai.fix.apply

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Ai Fix Apply

site_intelligence.ai.fix.apply.bulk

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Ai Fix Apply Bulk

site_intelligence.ai.fix.dismiss

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Ai Fix Dismiss

site_intelligence.ai.fix.dismiss.bulk

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Ai Fix Dismiss Bulk

site_intelligence.ai.fix.generate

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Ai Fix Generate

site_intelligence.ai.fix.generate.all

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Ai Fix Generate All

site_intelligence.ai.fix.list

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Ai Fix List

site_intelligence.ai.kw.coach

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Ai Kw Coach

site_intelligence.ai.kw.coach.run

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Ai Kw Coach Run

site_intelligence.ai.overview

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Ai Overview

site_intelligence.ai.page.audit

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Ai Page Audit

site_intelligence.ai.page.audit.run

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Ai Page Audit Run

site_intelligence.ai.portfolio

Read. Scope: site_intelligence.read, admin. Contract: declared_dynamic. Si Ai Portfolio

site_intelligence.ai.portfolio.history

Read. Scope: site_intelligence.read, admin. Contract: route_inferred. Si Ai Portfolio History

site_intelligence.ai.portfolio.run

Write. Scope: site_intelligence.write, admin. Contract: declared_dynamic. Si Ai Portfolio Run

site_intelligence.ai.probe

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Ai Probe

site_intelligence.ai.prompt.add

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Ai Prompt Add

site_intelligence.ai.prompt.history

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Ai Prompt History

site_intelligence.ai.prompt.remove

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Ai Prompt Remove

site_intelligence.ai.prompts

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Ai Prompts

site_intelligence.ai.readiness

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Ai Readiness

site_intelligence.ai.ready

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Ai Ready

site_intelligence.alert.resolve

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Alert Resolve

site_intelligence.alerts

Read. Scope: site_intelligence.read, admin. Contract: route_inferred. Si Alerts

site_intelligence.alerts.list

Read. Scope: site_intelligence.read, admin. Contract: route_inferred. List Site Intelligence alerts

site_intelligence.alerts.resolve

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Resolve a Site Intelligence alert Required fields: alert_id.

site_intelligence.analyze

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Analyze

site_intelligence.ask

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Ask

site_intelligence.audit.hint

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Audit Hint

site_intelligence.backlink.disavow

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Backlink Disavow

site_intelligence.backlinks

Read. Scope: site_intelligence.read, admin. Contract: route_inferred. Si Backlinks

site_intelligence.backlinks.list

Read. Scope: site_intelligence.read, admin. Contract: route_inferred. List backlinks

site_intelligence.backlinks.refresh

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Backlinks Refresh

site_intelligence.billing.overview

Read. Scope: site_intelligence.read, admin. Contract: declared_dynamic. Si Billing Overview

site_intelligence.brand.get

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Brand Get

site_intelligence.brand.radar

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Brand Radar

site_intelligence.brand.save

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Brand Save

site_intelligence.cannibalisation

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Cannibalisation

site_intelligence.compare

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Compare

site_intelligence.competitor.add

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Competitor Add

site_intelligence.competitor.refresh

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Competitor Refresh

site_intelligence.competitor.remove

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Competitor Remove

site_intelligence.competitors

Read. Scope: site_intelligence.read, admin. Contract: route_inferred. Si Competitors

site_intelligence.competitors.list

Read. Scope: site_intelligence.read, admin. Contract: route_inferred. List competitors

site_intelligence.content.brief

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Content Brief

site_intelligence.content.decay

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Content Decay

site_intelligence.content.draft

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Content Draft

site_intelligence.crawl.budget

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Crawl Budget

site_intelligence.crawl.list

Read. Scope: site_intelligence.read, admin. Contract: route_inferred. Si Crawl List

site_intelligence.crawl.status

Read. Scope: site_intelligence.read, admin. Contract: route_inferred. Si Crawl Status

site_intelligence.crawls.list

Read. Scope: site_intelligence.read, admin. Contract: route_inferred. List Site Intelligence crawls

site_intelligence.crawls.status

Read. Scope: site_intelligence.read, admin. Contract: route_inferred. Get crawl status

site_intelligence.dashboard

Read. Scope: site_intelligence.read, admin. Contract: route_inferred. Read the Site Intelligence dashboard

site_intelligence.dashboard.route.si.dashboard

Read. Scope: site_intelligence.read, admin. Contract: route_inferred. Si Dashboard

site_intelligence.dashboard.save

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Dashboard Save

site_intelligence.diag.backfill

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Diag Backfill

site_intelligence.diag.compare

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Diag Compare

site_intelligence.diag.portfolio

Read. Scope: site_intelligence.read, admin. Contract: declared_dynamic. Si Diag Portfolio

site_intelligence.diag.recs.regen

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Diag Recs Regen

site_intelligence.diag.thresholds

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Diag Thresholds

site_intelligence.diag.thresholds.eval

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Diag Thresholds Eval

site_intelligence.diag.thresholds.history

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Diag Thresholds History

site_intelligence.diag.thresholds.profile

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Diag Thresholds Profile

site_intelligence.diag.thresholds.save

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Diag Thresholds Save

site_intelligence.diagnostics

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Diagnostics

site_intelligence.exec.report

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Exec Report

site_intelligence.export

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Export

site_intelligence.ga4.connect

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Ga4 Connect

site_intelligence.ga4.list.properties

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Ga4 List Properties

site_intelligence.ga4.map

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Ga4 Map

site_intelligence.ga4.status

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Ga4 Status

site_intelligence.ga4.sync

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Ga4 Sync

site_intelligence.gbp

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Gbp

site_intelligence.gbp.draft.approve

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Gbp Draft Approve

site_intelligence.gbp.draft.dismiss

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Gbp Draft Dismiss

site_intelligence.gbp.draft.sync

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Gbp Draft Sync

site_intelligence.gbp.drafts

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Gbp Drafts

site_intelligence.gbp.locations

Read. Scope: site_intelligence.read, admin. Contract: declared_dynamic. Si Gbp Locations

site_intelligence.gbp.map

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Gbp Map

site_intelligence.gbp.post.draft

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Gbp Post Draft

site_intelligence.gbp.post.publish

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Gbp Post Publish

site_intelligence.gbp.qa

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Gbp Qa

site_intelligence.gbp.qa.approve

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Gbp Qa Approve

site_intelligence.gbp.qa.dismiss

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Gbp Qa Dismiss

site_intelligence.gbp.qa.sync

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Gbp Qa Sync

site_intelligence.gbp.site.prefs

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Gbp Site Prefs

site_intelligence.gbp.sync

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Gbp Sync

site_intelligence.google.truth.schedule.save

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Google Truth Schedule Save

site_intelligence.growth

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Growth

site_intelligence.gsc.connect

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Gsc Connect

site_intelligence.gsc.list.properties

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Gsc List Properties

site_intelligence.gsc.map

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Gsc Map

site_intelligence.gsc.opportunities

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Gsc Opportunities

site_intelligence.gsc.status

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Gsc Status

site_intelligence.gsc.sync

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Gsc Sync

site_intelligence.image.audit

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Image Audit

site_intelligence.internal.links

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Internal Links

site_intelligence.issue.history

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Issue History

site_intelligence.issues

Read. Scope: site_intelligence.read, admin. Contract: route_inferred. Si Issues

site_intelligence.issues.list

Read. Scope: site_intelligence.read, admin. Contract: route_inferred. List Site Intelligence issues

site_intelligence.keyword.add

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Keyword Add

site_intelligence.keyword.remove

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Keyword Remove

site_intelligence.keyword.research

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Keyword Research

site_intelligence.keywords

Read. Scope: site_intelligence.read, admin. Contract: route_inferred. Si Keywords

site_intelligence.keywords.list

Read. Scope: site_intelligence.read, admin. Contract: route_inferred. List tracked keywords

site_intelligence.local

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Local

site_intelligence.local.grid

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Local Grid

site_intelligence.local.grid.scan

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Local Grid Scan

site_intelligence.log.ingest

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Log Ingest

site_intelligence.log.summary

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Log Summary

site_intelligence.metadata.audit

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Metadata Audit

site_intelligence.overview

Read. Scope: site_intelligence.read, admin. Contract: declared_dynamic. Si Overview

site_intelligence.page

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Page

site_intelligence.page.experience

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Page Experience

site_intelligence.page.optimize

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Page Optimize

site_intelligence.pages

Read. Scope: site_intelligence.read, admin. Contract: route_inferred. Si Pages

site_intelligence.pages.list

Read. Scope: site_intelligence.read, admin. Contract: route_inferred. List Site Intelligence pages

site_intelligence.pagespeed.bridge.status

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Pagespeed Bridge Status

site_intelligence.portfolio.export

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Portfolio Export

site_intelligence.provider.health

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Provider Health

site_intelligence.rank.check

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Rank Check

site_intelligence.rec.action

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Rec Action

site_intelligence.recommendations

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Recommendations

site_intelligence.redirect.audit

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Redirect Audit

site_intelligence.report

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Report

site_intelligence.report.generate

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Report Generate

site_intelligence.reports

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Reports

site_intelligence.reports.list

Read. Scope: site_intelligence.read, admin. Contract: source_inferred. Site Intelligence Reports List

site_intelligence.reset.google.oauth

Write. Scope: site_intelligence.write, admin. Contract: declared_dynamic. Si Reset Google Oauth

site_intelligence.revenue

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Revenue

site_intelligence.revenue.portfolio

Read. Scope: site_intelligence.read, admin. Contract: declared_dynamic. Si Revenue Portfolio

site_intelligence.save.shared.google.oauth

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Save Shared Google Oauth

site_intelligence.scan.run

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Start a Site Intelligence analysis

site_intelligence.schedule.delete

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Schedule Delete

site_intelligence.schedule.run.now

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Schedule Run Now

site_intelligence.schedule.save

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Schedule Save

site_intelligence.schedules.list

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Schedules List

site_intelligence.schema.audit

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Schema Audit

site_intelligence.server.engineer

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Server Engineer

site_intelligence.settings.save

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Settings Save

site_intelligence.sites.list

Read. Scope: site_intelligence.read, admin. Contract: explicit. List Site Intelligence monitored sites

site_intelligence.speed

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Speed

site_intelligence.speed.progress

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Speed Progress

site_intelligence.speed.run

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Speed Run

site_intelligence.speed.v2

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Speed V2

site_intelligence.speed.v2.build.task

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Speed V2 Build Task

site_intelligence.speed.v2.collect

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Speed V2 Collect

site_intelligence.speed.v2.read

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Speed V2 Read

site_intelligence.speed.v2.run

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Speed V2 Run

site_intelligence.start.crawl

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Start Crawl

site_intelligence.task.approve

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Task Approve

site_intelligence.task.assign

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Task Assign

site_intelligence.task.bulk.apply

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Task Bulk Apply

site_intelligence.task.bulk.assign

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Task Bulk Assign

site_intelligence.task.bulk.deadline

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Task Bulk Deadline

site_intelligence.task.bulk.dismiss

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Task Bulk Dismiss

site_intelligence.task.deadline

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Task Deadline

site_intelligence.task.note

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Task Note

site_intelligence.task.proof

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Task Proof

site_intelligence.task.reject

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Task Reject

site_intelligence.task.review

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Task Review

site_intelligence.topical.map

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Topical Map

site_intelligence.webhook.delete

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Webhook Delete

site_intelligence.webhook.save

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Webhook Save

site_intelligence.webhooks.list

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Webhooks List

site_intelligence.workflow

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Workflow

स्थिति (6)

status.component.save

Write. Scope: status.write, admin. Contract: declared_dynamic. Status Component Save

status.components.save

Write. Scope: status.write, admin. Contract: explicit. Create or update a public status component Required fields: name. Retry-safe with idempotency_key.

status.incident.create

Write. Scope: status.write, admin. Contract: declared_dynamic. Status Incident Create

status.incident.resolve

Read. Scope: status.read, admin. Contract: route_inferred. Status Incident Resolve

status.incidents.create

Write. Scope: status.write, admin. Contract: explicit. Create a status-page incident Required fields: title. Retry-safe with idempotency_key.

status.incidents.resolve

Write. Scope: status.write, admin. Contract: source_inferred. Status Incidents Resolve Retry-safe with idempotency_key.

सर्वेक्षण (22)

surveys.analytics.get

Read. Scope: surveys.read, admin. Contract: source_inferred. Surveys Analytics Get

surveys.audiences.list

Read. Scope: surveys.read, admin. Contract: explicit. List survey audiences

surveys.audiences.materialize

Write. Scope: surveys.write, admin. Contract: source_inferred. Surveys Audiences Materialize Retry-safe with idempotency_key.

surveys.campaigns.create

Write. Scope: surveys.write, admin. Contract: explicit. Create or update a survey campaign Required fields: deployment_id. Retry-safe with idempotency_key.

surveys.campaigns.launch

Write. Scope: surveys.write, admin. Contract: source_inferred. Surveys Campaigns Launch Retry-safe with idempotency_key.

surveys.campaigns.list

Read. Scope: surveys.read, admin. Contract: explicit. List survey campaigns

surveys.deployments.list

Read. Scope: surveys.read, admin. Contract: explicit. List survey deployments

surveys.deployments.set_status

Write. Scope: surveys.write, admin. Contract: source_inferred. Surveys Deployments Set Status Retry-safe with idempotency_key.

surveys.get

Read. Scope: surveys.read, admin. Contract: source_inferred. Surveys Get

surveys.imports.create

Write. Scope: surveys.write, admin. Contract: explicit. Create and run a survey import Required fields: kind. Retry-safe with idempotency_key.

surveys.imports.process

Write. Scope: surveys.write, admin. Contract: source_inferred. Surveys Imports Process Retry-safe with idempotency_key.

surveys.invitations.list

Read. Scope: surveys.read, admin. Contract: explicit. List survey invitations

surveys.links.create

Write. Scope: surveys.write, admin. Contract: source_inferred. Surveys Links Create Retry-safe with idempotency_key.

surveys.list

Read. Scope: surveys.read, admin. Contract: explicit. List survey definitions

surveys.responses.get

Read. Scope: surveys.read, admin. Contract: source_inferred. Surveys Responses Get

surveys.responses.list

Read. Scope: surveys.read, admin. Contract: explicit. List survey responses

surveys.triggers.list

Read. Scope: surveys.read, admin. Contract: explicit. List survey trigger sets

surveys.types.list

Read. Scope: surveys.read, admin. Contract: explicit. List supported question types and Studio templates

surveys.versions.list

Read. Scope: surveys.read, admin. Contract: source_inferred. Surveys Versions List

surveys.webhooks.delete

Write. Scope: surveys.write, admin. Contract: source_inferred. Surveys Webhooks Delete Retry-safe with idempotency_key.

surveys.webhooks.list

Read. Scope: surveys.read, admin. Contract: explicit. List survey webhook subscriptions

surveys.webhooks.save

Write. Scope: surveys.write, admin. Contract: explicit. Create or update a survey webhook subscription Required fields: url. Retry-safe with idempotency_key.

टीम (63)

team.delete

Write. Scope: team.write, admin. Contract: route_inferred. Admin Users Delete

team.delete.route.departments.delete

Write. Scope: team.write, admin. Contract: route_inferred. Departments Delete

team.list

Read. Scope: team.read, admin. Contract: route_inferred. Admin Users List

team.list.route.departments.list

Read. Scope: team.read, admin. Contract: declared_dynamic. Departments List

team.perf.activity

Write. Scope: admin. Contract: route_inferred. Team Perf Activity

team.perf.ai.compare

Write. Scope: admin. Contract: route_inferred. Team Perf Ai Compare

team.perf.ai.review

Write. Scope: admin. Contract: route_inferred. Team Perf Ai Review

team.perf.availability

Write. Scope: admin. Contract: route_inferred. Team Perf Availability

team.perf.award.finalize

Write. Scope: admin. Contract: route_inferred. Team Perf Award Finalize

team.perf.award.history

Read. Scope: team.read, admin. Contract: route_inferred. Team Perf Award History

team.perf.award.void

Write. Scope: admin. Contract: route_inferred. Team Perf Award Void

team.perf.claim.pay

Write. Scope: admin. Contract: route_inferred. Team Perf Claim Pay

team.perf.claim.recover

Write. Scope: admin. Contract: route_inferred. Team Perf Claim Recover

team.perf.claim.reject

Write. Scope: admin. Contract: route_inferred. Team Perf Claim Reject

team.perf.clear

Write. Scope: admin. Contract: route_inferred. Team Perf Clear

team.perf.coaching.action.item.add

Write. Scope: team.write, admin. Contract: route_inferred. Team Perf Coaching Action Item Add

team.perf.coaching.action.item.complete

Write. Scope: team.write, admin. Contract: route_inferred. Team Perf Coaching Action Item Complete

team.perf.coaching.evidence.pin

Write. Scope: team.write, admin. Contract: route_inferred. Team Perf Coaching Evidence Pin

team.perf.coaching.evidence.unpin

Write. Scope: team.write, admin. Contract: route_inferred. Team Perf Coaching Evidence Unpin

team.perf.coaching.session

Write. Scope: team.write, admin. Contract: route_inferred. Team Perf Coaching Session

team.perf.coaching.session.create

Write. Scope: team.write, admin. Contract: route_inferred. Team Perf Coaching Session Create

team.perf.coaching.session.update

Write. Scope: team.write, admin. Contract: route_inferred. Team Perf Coaching Session Update

team.perf.coaching.sessions

Write. Scope: team.write, admin. Contract: route_inferred. Team Perf Coaching Sessions

team.perf.coaching.status

Write. Scope: team.write, admin. Contract: route_inferred. Team Perf Coaching Status

team.perf.data

Write. Scope: admin. Contract: route_inferred. Team Perf Data

team.perf.heatmap

Write. Scope: admin. Contract: route_inferred. Team Perf Heatmap

team.perf.history

Write. Scope: admin. Contract: route_inferred. Team Perf History

team.perf.pay.all.claims

Write. Scope: admin. Contract: route_inferred. Team Perf Pay All Claims

team.perf.qa.calibration.record

Write. Scope: team.write, admin. Contract: route_inferred. Team Perf Qa Calibration Record

team.perf.qa.dispute.resolve

Write. Scope: admin. Contract: route_inferred. Team Perf Qa Dispute Resolve

team.perf.qa.disputes

Write. Scope: team.write, admin. Contract: route_inferred. Team Perf Qa Disputes

team.perf.qa.evaluation.submit

Write. Scope: team.write, admin. Contract: route_inferred. Team Perf Qa Evaluation Submit

team.perf.qa.overview

Write. Scope: team.write, admin. Contract: route_inferred. Team Perf Qa Overview

team.perf.qa.scorecard.publish

Write. Scope: team.write, admin. Contract: route_inferred. Team Perf Qa Scorecard Publish

team.perf.qa.scorecard.save

Write. Scope: team.write, admin. Contract: route_inferred. Team Perf Qa Scorecard Save

team.perf.quest.record

Write. Scope: team.write, admin. Contract: route_inferred. Team Perf Quest Record

team.perf.quest.save

Write. Scope: team.write, admin. Contract: route_inferred. Team Perf Quest Save

team.perf.quest.status

Write. Scope: team.write, admin. Contract: route_inferred. Team Perf Quest Status

team.perf.quests

Write. Scope: team.write, admin. Contract: route_inferred. Team Perf Quests

team.perf.recognition

Write. Scope: team.write, admin. Contract: route_inferred. Team Perf Recognition

team.perf.recognition.settings.save

Write. Scope: admin. Contract: route_inferred. Team Perf Recognition Settings Save

team.perf.recognition.streak.history

Write. Scope: team.write, admin. Contract: route_inferred. Team Perf Recognition Streak History

team.perf.recognition.streaks.record

Write. Scope: team.write, admin. Contract: route_inferred. Team Perf Recognition Streaks Record

team.perf.reward.budget.authorize

Write. Scope: admin. Contract: route_inferred. Team Perf Reward Budget Authorize

team.perf.reward.claims

Write. Scope: admin. Contract: route_inferred. Team Perf Reward Claims

team.perf.reward.pay

Write. Scope: admin. Contract: route_inferred. Team Perf Reward Pay

team.perf.reward.payouts

Write. Scope: admin. Contract: route_inferred. Team Perf Reward Payouts

team.perf.reward.period.finalize

Write. Scope: admin. Contract: route_inferred. Team Perf Reward Period Finalize

team.perf.reward.period.history

Write. Scope: team.write, admin. Contract: route_inferred. Team Perf Reward Period History

team.perf.reward.period.preview

Write. Scope: team.write, admin. Contract: route_inferred. Team Perf Reward Period Preview

team.perf.reward.period.reverse

Write. Scope: admin. Contract: route_inferred. Team Perf Reward Period Reverse

team.perf.reward.period.void

Write. Scope: admin. Contract: route_inferred. Team Perf Reward Period Void

team.perf.reward.save

Write. Scope: admin. Contract: route_inferred. Team Perf Reward Save

team.perf.reward.state

Write. Scope: admin. Contract: route_inferred. Team Perf Reward State

team.perf.trends

Write. Scope: admin. Contract: route_inferred. Team Perf Trends

team.perf.v2.data

Write. Scope: admin. Contract: route_inferred. Team Perf V2 Data

team.perf.v2.export

Write. Scope: admin. Contract: route_inferred. Team Perf V2 Export

team.perf.v2.live

Write. Scope: admin. Contract: route_inferred. Team Perf V2 Live

team.perf.v2.reward.sheet

Write. Scope: admin. Contract: route_inferred. Team Perf V2 Reward Sheet

team.perf.v2.settings

Write. Scope: admin. Contract: route_inferred. Team Perf V2 Settings

team.perf.v2.settings.save

Write. Scope: admin. Contract: route_inferred. Team Perf V2 Settings Save

team.save

Write. Scope: team.write, admin. Contract: route_inferred. Admin Users Save

team.save.route.departments.save

Write. Scope: team.write, admin. Contract: route_inferred. Departments Save

टिकट (77)

tickets.ai.summary

Write. Scope: tickets.write, admin. Contract: route_inferred. Ticket Ai Summary

tickets.analytics

Read. Scope: tickets.read, admin. Contract: route_inferred. Ticket Analytics

tickets.approval.decide

Read. Scope: tickets.read, admin. Contract: route_inferred. Ticket Approval Decide

tickets.approval.request

Read. Scope: tickets.read, admin. Contract: route_inferred. Ticket Approval Request

tickets.approvals.pending

Read. Scope: tickets.read, admin. Contract: declared_dynamic. Ticket Approvals Pending

tickets.assignment.rule.delete

Write. Scope: tickets.write, admin. Contract: route_inferred. Ticket Assignment Rule Delete

tickets.assignment.rule.list

Read. Scope: tickets.read, admin. Contract: declared_dynamic. Ticket Assignment Rule List

tickets.assignment.rule.save

Write. Scope: tickets.write, admin. Contract: declared_dynamic. Ticket Assignment Rule Save

tickets.assignment_rules.delete

Write. Scope: tickets.write, admin. Contract: source_inferred. Tickets Assignment Rules Delete Retry-safe with idempotency_key.

tickets.assignment_rules.save

Write. Scope: tickets.write, admin. Contract: explicit. Create or update a ticket assignment rule Required fields: name. Retry-safe with idempotency_key.

tickets.bulk

Write. Scope: tickets.write, admin. Contract: source_inferred. Tickets Bulk Retry-safe with idempotency_key.

tickets.bulk.route.tickets.bulk

Write. Scope: tickets.write, admin. Contract: route_inferred. Tickets Bulk

tickets.calendar.delete

Write. Scope: tickets.write, admin. Contract: route_inferred. Sla Calendar Delete

tickets.calendar.save

Write. Scope: tickets.write, admin. Contract: declared_dynamic. Sla Calendar Save

tickets.claim

Write. Scope: tickets.write, admin. Contract: route_inferred. Ticket Claim

tickets.csat.get

Read. Scope: tickets.read, admin. Contract: explicit. Get the CSAT response for one ticket Required fields: ticket_id.

tickets.csat.list

Read. Scope: tickets.read, admin. Contract: explicit. List ticket CSAT responses in the bound workspace

tickets.csat.metrics

Read. Scope: tickets.read, admin. Contract: explicit. CSAT metrics for a period (the tickets dashboard numbers)

tickets.embed.load

Write. Scope: tickets.write, admin. Contract: route_inferred. Ticket Embed Load

tickets.embed.save

Write. Scope: tickets.write, admin. Contract: route_inferred. Ticket Embed Save

tickets.embed.secret

Write. Scope: tickets.write, admin. Contract: route_inferred. Ticket Embed Secret

tickets.field.save

Write. Scope: tickets.write, admin. Contract: route_inferred. Ticket Field Save

tickets.follower.add

Write. Scope: tickets.write, admin. Contract: route_inferred. Ticket Follower Add

tickets.follower.remove

Write. Scope: tickets.write, admin. Contract: route_inferred. Ticket Follower Remove

tickets.get

Read. Scope: tickets.read, admin. Contract: source_inferred. Tickets Get

tickets.kb.deflection

Read. Scope: tickets.read, admin. Contract: route_inferred. Ticket Kb Deflection

tickets.kb.draft

Write. Scope: tickets.write, admin. Contract: route_inferred. Ticket Kb Draft

tickets.kb.save

Write. Scope: tickets.write, admin. Contract: route_inferred. Ticket Kb Save

tickets.kb.version.restore

Read. Scope: tickets.read, admin. Contract: route_inferred. Ticket Kb Version Restore

tickets.kb.versions

Read. Scope: tickets.read, admin. Contract: route_inferred. Ticket Kb Versions

tickets.link.add

Write. Scope: tickets.write, admin. Contract: route_inferred. Ticket Link Add

tickets.link.remove

Write. Scope: tickets.write, admin. Contract: route_inferred. Ticket Link Remove

tickets.list

Read. Scope: tickets.read, admin. Contract: source_inferred. Tickets List

tickets.open

Write. Scope: tickets.write, admin. Contract: source_inferred. Tickets Open Retry-safe with idempotency_key.

tickets.open_guest

Write. Scope: tickets.write, admin. Contract: source_inferred. Tickets Open Guest Retry-safe with idempotency_key.

tickets.ops.summary

Read. Scope: tickets.read, admin. Contract: declared_dynamic. Ticket Ops Summary

tickets.policy.delete

Write. Scope: tickets.write, admin. Contract: route_inferred. Sla Policy Delete

tickets.policy.save

Write. Scope: tickets.write, admin. Contract: declared_dynamic. Sla Policy Save

tickets.presence.leave

Read. Scope: tickets.read, admin. Contract: route_inferred. Ticket Presence Leave

tickets.presence.ping

Read. Scope: tickets.read, admin. Contract: route_inferred. Ticket Presence Ping

tickets.quick.replies

Write. Scope: tickets.write, admin. Contract: declared_dynamic. Ticket Quick Replies

tickets.quick.reply.save

Write. Scope: tickets.write, admin. Contract: route_inferred. Ticket Quick Reply Save

tickets.relations.get

Read. Scope: tickets.read, admin. Contract: route_inferred. Ticket Relations Get

tickets.reply

Write. Scope: tickets.write, admin. Contract: source_inferred. Tickets Reply Retry-safe with idempotency_key.

tickets.reply.delete

Write. Scope: tickets.write, admin. Contract: route_inferred. Ticket Reply Delete

tickets.reply.edit

Write. Scope: tickets.write, admin. Contract: route_inferred. Ticket Reply Edit

tickets.reply.outbound.convert

Write. Scope: tickets.write, admin. Contract: route_inferred. Ticket Reply Outbound Convert

tickets.reply.translate

Write. Scope: tickets.write, admin. Contract: route_inferred. Ticket Reply Translate

tickets.reply.translation.delete

Write. Scope: tickets.write, admin. Contract: route_inferred. Ticket Reply Translation Delete

tickets.reply.translation.save

Write. Scope: tickets.write, admin. Contract: route_inferred. Ticket Reply Translation Save

tickets.rule.compose

Read. Scope: tickets.read, admin. Contract: route_inferred. Ticket Rule Compose

tickets.side.ai.draft

Write. Scope: tickets.write, admin. Contract: route_inferred. Ticket Side Ai Draft

tickets.side.assign.department

Write. Scope: tickets.write, admin. Contract: route_inferred. Ticket Side Assign Department

tickets.side.create

Write. Scope: tickets.write, admin. Contract: route_inferred. Ticket Side Create

tickets.side.list

Read. Scope: tickets.read, admin. Contract: route_inferred. Ticket Side List

tickets.side.mention

Read. Scope: tickets.read, admin. Contract: route_inferred. Ticket Side Mention

tickets.side.recipients

Read. Scope: tickets.read, admin. Contract: declared_dynamic. Ticket Side Recipients

tickets.side.reply

Write. Scope: tickets.write, admin. Contract: route_inferred. Ticket Side Reply

tickets.sla.delete

Write. Scope: tickets.write, admin. Contract: source_inferred. Tickets Sla Delete Retry-safe with idempotency_key.

tickets.sla.save

Write. Scope: tickets.write, admin. Contract: explicit. Create or update an SLA policy Required fields: name. Retry-safe with idempotency_key.

tickets.split

Write. Scope: tickets.write, admin. Contract: route_inferred. Ticket Split

tickets.split.candidates

Write. Scope: tickets.write, admin. Contract: route_inferred. Ticket Split Candidates

tickets.tag.add

Write. Scope: tickets.write, admin. Contract: route_inferred. Ticket Tag Add

tickets.tag.list

Read. Scope: tickets.read, admin. Contract: route_inferred. Ticket Tag List

tickets.tag.remove

Write. Scope: tickets.write, admin. Contract: route_inferred. Ticket Tag Remove

tickets.tags.add

Write. Scope: tickets.write, admin. Contract: source_inferred. Tickets Tags Add Retry-safe with idempotency_key.

tickets.tags.list

Read. Scope: tickets.read, admin. Contract: source_inferred. Tickets Tags List

tickets.tags.remove

Write. Scope: tickets.write, admin. Contract: source_inferred. Tickets Tags Remove Retry-safe with idempotency_key.

tickets.update

Write. Scope: tickets.write, admin. Contract: source_inferred. Update a ticket status, priority, subject, department or assignment Retry-safe with idempotency_key.

tickets.view.delete

Write. Scope: tickets.write, admin. Contract: route_inferred. Ticket View Delete

tickets.view.list

Read. Scope: tickets.read, admin. Contract: declared_dynamic. Ticket View List

tickets.view.save

Write. Scope: tickets.write, admin. Contract: route_inferred. Ticket View Save

tickets.views.delete

Write. Scope: tickets.write, admin. Contract: source_inferred. Tickets Views Delete Retry-safe with idempotency_key.

tickets.views.save

Write. Scope: tickets.write, admin. Contract: source_inferred. Tickets Views Save Retry-safe with idempotency_key.

tickets.worklog.add

Write. Scope: tickets.write, admin. Contract: route_inferred. Ticket Worklog Add

tickets.worklog.delete

Write. Scope: tickets.write, admin. Contract: route_inferred. Ticket Worklog Delete

tickets.worklog.list

Read. Scope: tickets.read, admin. Contract: route_inferred. Ticket Worklog List

todos (1)

todos.add

Write. Scope: todos.write, admin. Contract: source_inferred. Todos Add Retry-safe with idempotency_key.

visitors (3)

visitors.block

Write. Scope: visitors.write, security.write, admin. Contract: route_inferred. Block a visitor Required fields: visitor_id.

visitors.list

Read. Scope: visitors.read, analytics.read, admin. Contract: route_inferred. List visitors

visitors.table

Read. Scope: visitors.read, admin. Contract: route_inferred. Visitors Table

वेबहुक (1)

webhooks.events.list

Read. Scope: webhooks.read, crm.read, admin. Contract: explicit. List outbound webhook events and their payloads

लेखन (6)

writing.analyze

Write. Scope: writing. Contract: source_inferred. Writing Analyze Retry-safe with idempotency_key.

writing.compose

Write. Scope: writing. Contract: source_inferred. Writing Compose Retry-safe with idempotency_key.

writing.reply

Write. Scope: writing. Contract: source_inferred. Writing Reply Retry-safe with idempotency_key.

writing.rewrite

Write. Scope: writing. Contract: source_inferred. Writing Rewrite Retry-safe with idempotency_key.

writing.summarize

Write. Scope: writing. Contract: source_inferred. Writing Summarize Retry-safe with idempotency_key.

writing.translate

Write. Scope: writing. Contract: source_inferred. Writing Translate Retry-safe with idempotency_key.

क्या OpenAPI और Postman उपलब्ध हैं?+

हाँ। उत्पन्न OpenAPI 3.0 दस्तावेज़ पर है /api/v1/openapi.php, जनरेट पोस्टमैन संग्रह पर है /api/v1/postman.php, और मानव पठनीय डेवलपर डॉक्स पर हैं /api/docs/.

मैं एक से अधिक कार्यक्षेत्र के साथ कैसे काम करूं?+

एक कार्यक्षेत्र का चयन करने के लिए अनुरोध शरीर में site_key भेजें। एक कार्यस्थान के लिए जारी की गई कुंजी इसे पिन किया गया है; व्यवस्थापक संदर्भ के साथ एक कुंजी किसी भी कार्यस्थल को देखने की अनुमति दी जाती है, और उसे किसी भी चीज के लिए मना नहीं किया जाता है।

कौन से कार्य केवल एक कुंजी कॉल कर सकते हैं?+

किसी भी कार्रवाई को पढ़ने के रूप में चिह्नित किया गया है। केवल पढ़ने की कुंजी पर अनुमतियां मोड सेट करें और हर लिखने को read_only_key से मना कर दिया जाता है, इसलिए रिपोर्टिंग एकीकरण गलती से भी कुछ नहीं बदल सकता है।

मैं व्यवस्थापक में कुछ के लिए not_found क्यों देख सकता हूँ?+

कुंजी एक कार्यक्षेत्र के लिए दायर की गई है। अन्य कार्यस्थानों में रिकॉर्ड अनुमति त्रुटि के बजाय not_found वापस आते हैं, इसलिए अनुमति त्रुटि को ठीक करने के लिए, अन्य वर्कस्पेस में रिकॉर्ड्स अनुमति त्रुटि की तुलना में नहीं_ पाया जाता है। API कभी यह पुष्टि नहीं की कि क्या कुछ कहीं और मौजूद है।

डेवलपर

सुरक्षा API

प्रत्येक कनेक्टर और एकीकरण के लिए एक सुरक्षा अनुबंध: पूछो OpsIQ यह क्या जानता है? IP या प्रेषक, और अपने सिस्टम को देखने के दुरुपयोग को वापस फीड करते हैं।

OpsIQ पहले से ही खुद का बचाव: IP फायरवॉल ब्लॉक हमलावरों, टिकट पाइपलाइन स्पैम को फ़िल्टर करती है और सुरक्षा एआई अपराधियों को वर्गीकृत करती है। API यह आपके अन्य प्रणालियों के लिए बुद्धिमत्ता खोलता है। एक बिलिंग प्लेटफॉर्म, एक क्लाइंट पोर्टल या कस्टम ऐप उस पर भरोसा करने से पहले आगंतुक की जांच कर सकता है, और रिपोर्ट करता है कि यह क्या देखा गया था ताकि संपूर्ण इंस्टॉल हर सतह से सीख सके।

क्या आप कर सकते हैं

विश्वास से पहले जांच करें

सुरक्षा.फायरवॉल राज्य के साथ जवाब की जांच करें, प्रेषक से मेल खाने वाले किसी भी स्पैम नियम और IP_ के लिए कैश्ड AI वर्डिकेट। एक कॉल, एक समेकित राय।

आपको क्या देखा गया

Security.report एक सुरक्षा घटना के रूप में अवलोकन रिकॉर्ड करता है, सुरक्षा AI को वर्गीकृत करता है IP ठीक दूर, और जब फैसले वापस उच्च जोखिम आता है प्रशासन को चेतावनी देता है। बार-बार रिपोर्ट घटना में क्लस्टर की गई, वास्तव में हमलों की तरह OpsIQ सीधे देखता है।

साझा करें स्पैम नियम

Security. blocklist. add and safety. blockलिस्ट उसी स्पैम नियमों को पढ़ाने और लिखने के लिए टिकट पृष्ठ का उपयोग करता है, इसलिए एक सिस्टम में अवरुद्ध प्रेषक हर जगह अवरुद्ध हो जाता है।

एक कनेक्टर से दुरुपयोग की रिपोर्ट
POST /api/v1.php
Authorization: Bearer opq_your_api_key
Content-Type: application/json

{
  "action": "security.report",
  "ip": "203.0.113.7",
  "kind": "spam",
  "reason": "Sent 40 junk tickets in 10 minutes",
  "source": "whmcs:example.com"
}

स्कोप्स और सुरक्षा

security.read

Security. check और security. blocklist. list के लिए आवश्यक है। रिपोर्टिंग एकीकरण देने के लिए सुरक्षित।

security.write

सुरक्षा के लिए आवश्यक है।

कुछ भी चुपचाप नष्ट नहीं होता

एक ब्लॉकलिस्टेड प्रेषक अभी भी स्पैम दृश्य में उतरता है जहां टिकट पढ़ा और पुनर्स्थापित किया जा सकता है।

मंच खुद को सुरक्षित रखता है

सर्वर का अपना IP इस पते को कभी अवरुद्ध नहीं किया जा सकता है, ब्लॉकलिस्ट या इसके माध्यम से रिपोर्ट की गई API इसलिए एक गलत विन्यास एकीकरण मंच को नीचे नहीं ले सकता है।

💡
एकीकरण के तहत एक कुंजी को मिंट करें, फिरAPI कुंजी, और इसे केवल सुरक्षा दायरे की आवश्यकता है। प्रत्येक कार्रवाई के लिए पूर्ण अनुरोध अनुबंध मेटा.एक्शन और ओपनएपीआई दस्तावेज़ में है।
क्या मेरे मौजूदा कनेक्टर इस स्वचालित रूप से उपयोग करते हैं?+

आउटबाउंड सिंक पहले से ही स्वचालित है: जब आप एक ब्लॉक करते हैं IP, कनेक्टेड प्लेटफॉर्म को कनेक्टर सुरक्षा सिंक के माध्यम से बताया जाता है। सुरक्षा API इन चार कार्यों पर अपने कनेक्टर या कस्टम कोड को इंगित करें, जिसमें सुरक्षा के दायरे को ले जाने की कुंजी है।

स्पैम नियम कहाँ रहते हैं?+

एक स्टोर। टिकट पृष्ठ ब्लॉक प्रेषक नियंत्रण, सेटिंग में स्पैम एआई और यह API सभी समान ब्लॉकलिस्ट के खिलाफ काम करते हैं, इसलिए देखने के लिए बिल्कुल एक जगह है।

डेवलपर

आयोजन API

अपने सर्वर या वेबसाइट से कस्टम घटनाओं को भेजेंOpsIQएनालिटिक्स, प्रयोगों के लिएCRMट्रिगर, और वेबहुक की स्थिति।

यह कैसे काम करता है
आयोजन APIएक ट्रैक () कॉल एक कस्टम डेमो बुक इवेंट को OpsIQ में भेजता है, जो रूपांतरण लक्ष्य, खंडों और ट्रिगर्स को खिलाती है।OpsIQ(dmo_booked), {मान: 0_, योजना: "pro"});रूपांतरण लक्ष्यसेगमेंटट्रिगर्स और वेबहुकब्राउज़र OpsIQ ट्रैक या सर्वर-साइड POST /v1/events
आयोजन API

ब्राउज़र-साइड इवेंट

ब्राउज़र इवेंट ट्रैकिंग
window.OpsIQ = window.OpsIQ || [];
window.OpsIQ.push(["track", "button_clicked", {
  button: "signup",
  page: "/pricing",
  variant: "green"
}]);

सर्वर-साइड इवेंट

सर्वर-साइड, रिकॉर्ड गतिविधियों और कार्रवाई के माध्यम से एक संपर्क के खिलाफ रूपांतरण API उपयोग crm.activities.record जीवनचक्र/व्यापार गतिविधि के लिए और crm.conversions.record रूपांतरण के लिए कोई नहीं है events.send कार्रवाई; इनबाउंड CRM इवेंट रिसीवर पर रहता है /v1/inbound.php?t=<token> तीसरे पक्ष के सिस्टम जो घटनाओं को धक्का देते हैं।

सर्वर-साइड गतिविधि (action API)
POST /api/v1.php
Authorization: Bearer opq_your_key
Content-Type: application/json

{
  "action": "crm.activities.record",
  "site_key": "site_abc123",
  "email": "[email protected]",
  "event": "subscription.upgraded",
  "value": 50,
  "currency": "USD"
}

नामकरण सम्मेलन

डॉट नोटेशन

"order. full" नहीं "orderCompleted".

पिछले

"button. click" नहीं "button. click".

विशिष्ट होना

"pricing. plan_selected" नहीं "user_action".

डेवलपर

कैसे डेटा के माध्यम से प्रवाह OpsIQ

डेटा प्रवाह को समझना आपको एकीकरण को डीबग करने और प्रदर्शन को अनुकूलित करने में मदद करता है।

यह कैसे काम करता है
डेटा प्रवाह कैसेविजेट और बीकन से डेटा प्रवाह OpsIQ कोर (CDP, पहचान ग्राफ, AI मस्तिष्क, विश्लेषण, CRM) तब Webhooks और REST के माध्यम से बाहर API.विजेटऔर beaconOpsIQ कोरCDP · पहचान ग्राफA sineshytics · CRMवेबहूक बाहरREST API_
डेटा प्रवाह

इनबाउंड डेटा प्रवाह

1
विजेट बीकन

द JavaScript विजेट पृष्ठ दृश्य, क्लिक्स और चैट संदेश भेजता है को /beacon.php.

2
घटना ingestion

साइट_की, घटना प्रकार, ग्राहक और गुणों के साथ opsiq_events में संग्रहीत कार्यक्रम।

3
सत्र विधानसभा

सत्र बिल्डर समूह पृष्ठ सत्रों में देखा गया (क्रॉन के माध्यम से)।

4
पहचान संकल्प

जब पहचान की जाती है, तो अनाम रिकॉर्ड ग्राहक प्रोफ़ाइल से जुड़े होते हैं।

5
कनेक्टर

कनेक्टर्स बाहरी प्लेटफार्मों से डेटा खींचते हैं और कनेक्टर कैश में स्टोर करते हैं।

6
एआई संदर्भ

एआई संदर्भ को इकट्ठा करता है: आगंतुक इतिहास, ग्राहक प्रोफ़ाइल, कनेक्टर डेटा, KB और प्रॉम्प्ट।

आउटबाउंड डेटा प्रवाह

1
घटना की आग

आंतरिक घटना आग (ticket. created, chat. message, order. fulld)।

2
नौकरी कतार

घटना async नौकरी कतार में रखा गया है।

3
वेबहुक प्रेषण

डिस्पैचर संकेत और सभी सब्सक्राइब्ड एंडपॉइंट्स को भेजता है।

4
विफलता पर पुनः प्रयास करें

असफल प्रसव के साथ घातीय backoff retried।

सेटिंग्स

सेटिंग्स संदर्भ

सेटिंग्स एक कार्यस्थल के लिए नियंत्रण केंद्र है। नीचे सब कुछ आपके द्वारा किये जा रहे कार्यक्षेत्र में दायर किया गया है, इसलिए एक खाता विभिन्न पहचानों, चैट व्यवहार और प्रतिधारण नियमों के साथ कई ब्रांडों को चला सकता है।

सेटिंग का पता लगाना

सेटिंग्स में लगभग छह सौ व्यक्तिगत नियंत्रण हैं, चार मेनू के तहत समूहीकृत ग्यारह टैबों में फैले हुए हैं। आपको उनके लिए ब्राउज़ करने की उम्मीद नहीं है।

खोज सेटिंग्स (Ctrl + K)

प्रेस Ctrl + K, या Cmd + K एक Mac पर, कहीं भी सेटिंग्स पृष्ठ पर। सादे शब्दों में टाइप करें और दबाएँ सीधे नियंत्रण में कूदने के लिए प्रवेश करें। खोज छोटे typos को सहन करती है और संबंधित शब्दों को समझती है, इसलिए शेड्यूलर क्रॉन ढूंढता है और गोपनीयता ट्रैकिंग नियंत्रण पाता है। यह केवल आपकी भूमिका को खुल सकती है।

कार्यक्षेत्र और योजना

जनरल और लाइसेंस।

एआई और ग्राहक सहायता

व्यवस्थापक एआई सहायक, क्लाइंट चैट, OpsIQ लेखन और समर्थन पोर्टल।

डेटा और प्रशासन

ट्रैकिंग और गोपनीयता, अनुमतियां और सुरक्षा।

प्रणाली

क्रोन सेटअप (केवल स्वयं होस्ट) और खतरे क्षेत्र।

बचत

प्रत्येक टैब अपने खुद के सेव बटन से बचाता है। क्लाइंट चैट और OpsIQ लेखन पिन उनके स्क्रीन पर। स्विच करने वाले टैब से पहले सहेजें; बदलाव पूरे नहीं किए जाते हैं।

दीप लिंक

सक्रिय टैब पृष्ठ पते में लिखा जाता है, इसलिए एक टैब को बुकमार्क किया जा सकता है या किसी सहयोगी को भेजा जा सकता था।

सामान्य: व्यापार पहचान

पृष्ठ पर सबसे महत्वपूर्ण कार्ड। एआई ने प्रत्येक उत्तर, रिपोर्ट और दैनिक संक्षिप्त में इन मूल्यों को पढ़ाया है।

व्यवसाय का नाम

एआई रिपोर्ट, दैनिक संक्षिप्त और ग्राहक-फेसिंग शब्दकरण में प्रयुक्त होता है। अपनी वेबसाइट पाद लेख से मेल खाते हैं।

व्यापार उद्योग

टेलर एआई विश्लेषण, सीसा स्कोरिंग, संक्षिप्त और सर्वेक्षण प्रीसेट। वेब होस्टिंग, ई-कॉमर्स, सास, रियल एस्टेट, एजेंसी, परामर्श, स्वास्थ्य देखभाल, शिक्षा, वित्त या सामान्य व्यवसाय से चुनें।

सिस्टम भाषा

भाषा जो किसी को भी अपने खुद के लिए चुना नहीं है दिखाया गया है। प्रत्येक एजेंट इसे अपनी प्रोफ़ाइल में ओवरराइड कर सकते हैं।

ब्राउज़र भाषा का उपयोग करें

एक बार जब कोई वहां भाषा चुनता है, तो उनकी पसंद जीत जाती है और यह कभी भी इसे ओवरराइड नहीं करता।

सिस्टम टाइमज़ोन

जोन पूरे सिस्टम में चलता है: तारीख, रिपोर्ट, शेड्यूल और पृष्ठभूमि क्रोन। अपने परिचालन समयक्षेत्र का उपयोग करें, न कि आपके ग्राहक।

सामान्य: जियोआईपी और ट्रैकिंग

GeoIP2 डाटाबेस पथ

GeoLite2-City.mmdb के लिए पूर्ण पथ। पहले लोड पर ऑटो-डिटेक्ट्स cPanel, Plesk, DirectAdmin, Cloudways, Docker और सादे लिनक्स या विंडोज। आगंतुक इंटरनेट प्रदाता के लिए एक ही फ़ोल्डर में GeoLite2-ASN.mmdb जोड़ें।

भू स्रोत मोड

GeoLite2 केवल, GeoLit2 एक के साथ Cloudflare गिरना, याCloudflare केवल।Cloudflare मोड को साइट की आवश्यकता होती है ताकि वे आगे बढ़ सकेंCloudflare, आगंतुक स्थान शीर्षलेखों के साथ शहर और क्षेत्र विस्तार के लिए सक्षम।

सत्र टाइमआउट (s)

एक आगंतुक सत्र से पहले निष्क्रियता समाप्त हो जाती है। डिफ़ॉल्ट 14400, जो चार घंटे है।

लाइव रिफ्रेश इंटरवल (s)

कितनी बार लाइव फीड ताज़ा होता है। डिफ़ॉल्ट 30 सेकंड।

सक्रिय थ्रेसहोल्ड (मिनट)

जब तक कोई आगंतुक अपने अंतिम पृष्ठ लोड के बाद जीवित रहता है, तब तक गिनती करता है। डिफ़ॉल्ट 2 यह लाइव फीड ड्रॉप-ऑफ है, सत्र की लंबाई नहीं।

डेटा प्रतिधारण (दिन)

इस युग में डेलेट एकत्र और उत्पन्न रिकॉर्ड: एनालिटिक्स, चैट, टिकट, फीडबैक, लेनदेन, एआई टेलीमेट्री, एकीकरण लॉग औरCRMगतिविधि।0सब कुछ हमेशा के लिए रहता है। सेटिंग्स, अधिकृत सामग्री और सहमति रसीदें कभी नहीं हटा दी जाती हैं।

जब चैट को हटा दिया जाता है

यह दर्शाता है कि एक हटाए गए वार्तालाप कितने रिकॉर्ड पर रहता है: पूर्ण रिकॉर्ड, बातचीत के बिना रिकॉर्ड या स्कोर केवल। हमेशा हटाने से इनबॉक्स और आगंतुक इतिहास से चैट छिपाता है। अनुसूचित प्रतिधारण और भूलभुलैया आगंतुक हमेशा इस बात की परवाह किए बिना पूरी तरह से मिटा देते हैं।

ट्रैक बॉट ट्रैफिक

आगंतुकों के रूप में क्रॉलर गिनती। छोड़ दें; यह आगंतुक गणनाओं को बढ़ाता है और हर रिपोर्ट को पूरा करता है।

फीडबैक सर्वेक्षण पॉपअप सक्षम

साइट-व्यापी फीडबैक विजेट को आगंतुकों को दिखाता है। क्लाइंट चैट, सपोर्ट फ्लो के तहत चैट सर्वेक्षणों से अलग।

सामान्य: एआई विशेषताएं

प्रत्येक एआई सतह के लिए मास्टर स्विच करता है। सभी डिफ़ॉल्ट कार्यों को प्रति कार्यक्षेत्र पर सहेजने और बचाने के लिए।

A Triage on the टिकट

प्रत्येक टिकट को श्रेणी, प्राथमिकता और भावना द्वारा वर्गीकृत किया जाता है और टिकट के शीर्ष पर एक थ्रेड सारांश लिखते हैं।

एआई ट्रेज होवर सारांश

जब कोई एजेंट टिकट सूची में एक पंक्ति को घेरता है तो ट्रेज टैग और सारांश दिखाता है। एआई ट्राइज़ की आवश्यकता होती है।

इनबॉक्स सह- पायलट (कम्पोजर)

एआई ड्राफ्ट उत्तर, वार्मर, शॉर्टर, टिकट उत्तर बॉक्स के तहत अधिक औपचारिक और माफी बटन जोड़ता है। एजेंट के बिना कुछ भी नहीं भेजता है।

पूछोOpsIQ कोपिलोट

हर व्यवस्थापक पृष्ठ पर पेज-एवेयर फ्लोटिंग कॉपिलॉट। पता है कि ग्राहक, चालान या टिकट किस प्रकार खुला है।

मॉर्निंग ब्रीफ

हर दिन पहली बार खुला होने पर कॉपियोलॉट तत्काल टिकट प्रस्तुत करता है, जो उत्तरों और प्रतीक्षा चैट को ओवरडे करता है। रविवार समीक्षा में एक सप्ताह का उत्पादन करते हैं।

सामान्य: धन, ब्रांडिंग, बैकअप

OpsIQ आधार मुद्रा

व्यवस्थापक में प्रत्येक पैसे कुल प्रदर्शन के लिए इस मुद्रा में परिवर्तित हो जाता है। कनेक्टर्स अपने स्वयं के स्रोत मुद्रा स्टोर; सेट कि कनेक्टर प्रति।

ऑटो-सिंक FX दरें

हर छह घंटे में किसी मुफ्त सार्वजनिक फ़ीड से रिफ्रेश की दर नहीं API कुंजी। आप मैनुअल दरों को जोड़ सकते हैं जो फ़ीड को ओवरराइड करते हैं। ऑटो सिंक के साथ, मैन्युअल दर के बिना मुद्राओं को अपरिवर्तनित नहीं किया जाता है।

वाणिज्य और बिलिंग सुविधाओं को सक्षम करें

जहाज़ बंद। इसे चालू करने से बिक्री और रूपांतरण पृष्ठ, डैशबोर्ड राजस्व कार्ड और लाइव इंटेलिजेंस फीड का पता चलता है। इसके साथ ही हर कीमत की सतह छिपी हुई है और बिक्री पृष्ठ मेनू छोड़ देता है।

वाणिज्य शब्दावली

Teaches OpsIQ आपका शब्द: क्या आप नवीकरण करते हैं, नवीकरण के लिए शब्द, जिसे आप बेचते हैं और किस खरीदार को बुलाया जाता है।

ब्रांडिंग और लोगो

दो अपलोड, प्रकाश पृष्ठभूमि (व्यवस्थापक साइडबार) के लिए एक और अंधेरे (सिग्न-इन पृष्ठ) के लिये। पीएनजी, जेपीजी, वेबपी या एसवीजी अप करने के लिए 3 MB.

साइट इंटेलिजेंस एजेंट, निजी SSH लक्ष्य की अनुमति देता है

ऑटो इम्प्लीमेंटSEOएजेंट ओवर कनेक्ट करता हैSSHनिजी, लूपबैक और आरक्षित पते डिफ़ॉल्ट रूप से एक एंटी-एसएसआरएफ माप के रूप में अवरुद्ध हैं। केवल स्वयं होस्ट किए गए इंस्टॉल पर सक्षम होते हैं जिन्हें स्थानीय सर्वर तक पहुंचने की आवश्यकता होती है।

OpsIQ बैकअप / पुनर्स्थापना

प्रत्येक सेटिंग निर्यात करें और OpsIQ-owned टेबल प्लस अपलोड की गई फ़ाइलों को पुनर्स्थापित करता है।OpsIQ विन्यास और रिकॉर्ड केवल; यह कभी ग्राहकों, चालानों, टिकटों, सेवाओं, डोमेन, आदेश या लेनदेन को छूता नहीं है।

⚠️
खतरे क्षेत्र में कुछ भी उपयोग करने से पहले बैकअप लें। सामान्य में बैकअप रहता है और डैनगर ज़ोन में हटाए गए एक्शन को लाइव करता है, इसलिए पहले निर्यात किए बिना डिलीट बटन तक पहुंचना आसान होता है।
सेटिंग्स

सेटिंग्स: सुरक्षा

व्यवस्थापक साइन-इन, आपके स्टाफ खाते और डेटा के लिए सुरक्षा OpsIQ एकत्र करता है। समर्थन पोर्टल के लिए ग्राहक साइन-इन को अलग से कॉन्फ़िगर किया गया है।

लॉगइन सुरक्षा

गूगलreCAPTCHA

व्यवस्थापक साइन-इन पर बॉट और क्रेडेंशियल भराई बंद हो जाती है। v3 (अदृश्य, स्कोर) या v2 (चेकबॉक्स) चुनें, v3 स्कोर थ्रेसहोल्ड सेट करें, और साइट और गुप्त कुंजी की आपूर्ति करें। इन समान कुंजी को समर्थन पोर्टल अनुरोध फॉर्म द्वारा पुन: उपयोग किया जाता है।

विफल लॉगइन ऑटो लॉकआउट

कई घंटों के लिए, विंडो में कई असफलताओं के बाद एक पता अवरुद्ध करता है। आप लॉक-पेज संदेश को अनुकूलित कर सकते हैं और एक छोटा सा प्रतीक्षा स्क्रीन विचलन दिखा सकते हैं।

लॉगइन हार्डिंग

न्यूनतम लंबाई के साथ पासवर्ड नीति, ज्ञात उल्लंघनों में पाया पासवर्ड की अस्वीकृति, क्रेडेंशियल स्टफिंग के खिलाफ प्रति-खाता लॉकआउट, खतरनाक कार्यों से पहले पासवर्ड पुनः प्रवेश करने वाले प्रत्येक व्यवस्थापक के लिए अनिवार्य दो कारक और नए डिवाइस साइन इन अलर्ट।

एकल साइन-ऑन (OIDC)

अपने पहचान प्रदाता के माध्यम से कर्मचारी लॉगइन. जारीकर्ता URL, क्लाइंट ID और क्लाइंस गोपनीय की आवश्यकता होती है. स्वचालित-प्रदान डोमेन, प्रति पंक्ति एक, प्रथम लॉग इन पर स्वयं उपयोगकर्ता बनाता है.

सिंगल साइन-ऑन (एकल साइन- ऑन)SAML 2.0)

उन प्रदाताओं के लिए जो बोलते हैं SAML. OpsIQ ऍसीएस जवाब की आपूर्तिURL आप IdP इकाई ID, साइन-इन की आपूर्ति करते हैं।URL, वैकल्पिक साइन-आउट URL X.509 हस्ताक्षर प्रमाण पत्र. ईमेल और नाम विशेषता फ़ील्ड केवल गैर मानक विशेषताओं के नामों के लिए आवश्यक हैं।

SCIM प्रोविजनिंग

निर्देशिका संचालित निर्माण, अद्यतन और निष्क्रियताOpsIQ खाताOpsIQ आपूर्ति SCIM आधार URL आप यहाँ लेबल टोकन उत्पन्न करते हैं ताकि बाकी को तोड़ने के बिना किसी को रद्द कर दिया जा सके।

थ्रेट्स, ब्लॉकिंग और संग्रह

आउटबाउंड Egress Allow-list

इस कार्यस्थान के बाहरी मेजबानों को प्रतिबंधित करने वाले व्यक्तियों को कॉल कर सकते हैं। सामान्य में SSH लक्ष्य नियंत्रण के साथ।

थर्ड स्कोरिंग और ऑटो-ब्लॉक

एक बार जब उनके खतरे का स्कोर आपकी सीमा से गुजरता है तो आगंतुक को ब्लॉक करता है। 0 इसे अक्षम करें। एक नंबर चुनने से पहले सप्ताह के लिए सुरक्षा अवलोकन पृष्ठ देखें।

ब्लॉक पेज संदेश

संदेश एक अवरुद्ध आगंतुक देखता है, सादे पाठ या अपने स्वयं के कस्टम के रूप में HTML ब्लॉक स्क्रीन।

रियल आगंतुकों से कोर वेब महत्वपूर्ण

वास्तविक सत्रों से LCP, INP और CLS को मापता है।

बैच, पुनः सुरक्षित घटना वितरण

ब्राउज़र में कस्टम इवेंट्स कतार और रिट्रीज़ के साथ बैचों में वितरित, खराब मोबाइल कनेक्शन पर नुकसान को कम करता है।

हस्ताक्षरित ट्रैकिंग बीकन

रियल विजेट एम्बेड एक घूर्णन क्रिप्टोग्राफिक टोकन ले जाते हैं ताकि जाली ट्रैकिंग डेटा को अस्वीकार कर दिया जा सके। डिफ़ॉल्ट रूप से बंद; परिवर्तन को सक्षम करने के लिए कैसे एम्बेड प्रमाणित करते हैं, इसलिए पहले परीक्षण करें।

सुरक्षा चेतावनी

डिफ़ॉल्ट रूप से बंद करें। जांच और अवरुद्ध रन भले ही। यह कार्ड नियंत्रित करता है कि क्या आपको बताया गया है, और एआई कितनी सहायता करता है।

सुरक्षा अलर्ट सक्षम करें

इस कार्ड के लिए मास्टर स्विच।

विफल-लॉगिन लहर सीमा

कितने समय तक एक छोटी अवधि की गिनती में संकेत-इन्स को चेतावनी देने लायक लहर के रूप में विफल रहा।

IP बुद्धिमत्ता

सार्वजनिक दुरुपयोग फ़ीड में प्रदर्शित आगंतुकों के लिए एक खतरा स्कोर जोड़ता है।

साइट घड़ी

हर घंटे के लिए और TLS एक्सीरी चेक, एक प्रमाण पत्र चूक से पहले चेतावनी देते हैं।

एआई सुरक्षा विश्लेषक और एआई घटना कच्छा

संदिग्ध गतिविधि के लिए एक स्पष्ट फैसले को जोड़ता है, और घटनाओं की धारा के बजाय समूहों से संबंधित हमलों को एकल पठनीय घटना में जोड़ा जाता है।

पॉलिसी ऑटोपिलोट

अपने आप में कार्य करता है, यह मोड़ देता है कि वह किसी घटना से प्रस्तावित या लागू नियम में क्या सीखता है। जब तक आपने अपने प्रस्तावों की समीक्षा नहीं की है और उनसे सहमत हो गए हैं तब तक छोड़ दें।

दैनिक सुरक्षा पाचन और साप्ताहिक मुद्रा सलाहकार

सुरक्षा अवलोकन पृष्ठ पर दैनिक पुन: कैप और साप्ताहिक सख्त चेकलिस्ट जो संरक्षित है और अभी भी खुला क्या है, यह दिखा रहा है।

ऑटो-एक्सपियर कहानी प्रस्तावों

एक प्रस्तावित ब्लॉक नियम जिसे आप कभी भी जमा करने के बजाय खुद से समाप्त होने पर कार्य नहीं करते हैं।

A shyth of the year of the day.

DOM सत्र को फिर से खेलना

प्लेबैक के लिए रिकॉर्ड्स आगंतुक सत्र जब पुनः खेलना पुस्तकालय से बाहर कभी लोड नहीं होता है तो इसे छोड़ने की कोई लागत नहीं होती। रिकॉर्डिंग नमूना और गोपनीयता-मस्करी कर रहे हैं, और विश्लेषण के तहत सत्र Replay पृष्ठ पर देख रहे हैं।

नमूना दर, अधिकतम कैप्चर, रिटेंशन

रिकॉर्ड करने के लिए सत्रों का क्या हिस्सा है, कितने समय तक एक रिकॉर्डिंग चल सकती है और कितने दिनों की रिकॉर्डिंग रखी जाती है।

⚠️
सत्र आपके साइट का उपयोग करके वास्तविक लोगों को रिकॉर्ड करता है। नमूना दर और प्रतिधारण को कम रखें क्योंकि अभी भी आपका सवाल जवाब देगा, और इसे आपकी गोपनीयता नोटिस में प्रकट करेगा।
सेटिंग्स

सेटिंग्स: ट्रैकिंग और गोपनीयता

क्या OpsIQ एकत्र हो सकता है, और कितने समय तक रिकॉर्ड जीवित रहता है।

निष्कर्ष

Excluded IPs और CIDR रेंज

कभी भी पता नहीं लगाया जाता है, एक प्रति पंक्ति, सटीक पते या CIDR रेंज। अपनी खुद की टीम को अपने एनालिटिक्स से बाहर रखने का सबसे स्वच्छ तरीका, क्योंकि यह केवल हस्ताक्षरित व्यवस्थापकों के बजाय उस पते पर हर किसी को कवर करता है।

Excluded URL पथ

पृष्ठ पैटर्न कभी ट्रैक नहीं किया गया, एक प्रति पंक्ति, वाइल्डकार्ड एक तारांकन के साथ। उदाहरण के लिए /admin/* पूरे बैक ऑफिस को आगंतुक लॉग से बाहर रखता है।

डेटा रिटेंशन पॉलिसी

प्रति उपप्रणाली ऑटो-पंजा दिनों में। सामान्य रूप से और खतरे क्षेत्र पर कब्जा से समग्र डेटा प्रतिधारण सेटिंग से अलग।

एआई इंटरेक्शन लॉग

संघन टेलीमेट्री क्वेरी और प्रतिक्रिया के लघु पूर्वावलोकन पकड़ती है। डिफ़ॉल्ट 90 यह सबसे अधिक ग्राहक पाठ रखती है, इसलिए गोपनीयता को कसने पर इसे पहले छोटा करें।

एआई उपयोग की घटनाओं

लागत रिपोर्टिंग के लिए प्रति-कैल टोकन की गिनती डिफ़ॉल्ट 90 दिन। केवल संख्या, कोई संदेश सामग्री नहीं।

एक्शन ऑडिट ट्रेल

tamper-evident कार्रवाई और सुरक्षा लॉग डिफ़ॉल्ट 365 दिन। इसे सबसे लंबे समय तक रखें; यह आपका साक्ष्य है।

निदान

सिस्टम हेल्थ रिकॉर्ड डिफ़ॉल्ट 30 दिन।

Unanswered प्रश्नों

प्रश्न के क्लस्टर एआई जवाब नहीं दे सकता। डिफ़ॉल्ट 90 उनमें से कुछ दिनों तक काम करने से पहले AI ने पेज को याद किया।

वॉचडॉग्स और निर्यात

मीट्रिक Anomaly अलर्ट

हाल ही में बेसलाइन के खिलाफ कल की दैनिक तुलना, जब एक मीट्रिक आपकी सीमा से अधिक बढ़ जाता है तो चेतावनी देते हुए। डिफ़ॉल्ट 35 %. डिफ़ॉल्ट रूप से बंद करें।

वेयरहाउस निर्यात

अपने स्वयं के BI स्टैक के लिए सत्रों, आगंतुकों, पृष्ठव्यू और संबंधित तालिकाओं की रात में डंप, जो आपके द्वारा चुने गए प्रारूप में कई दिनों तक रखा गया था। डिफ़ॉल्ट रूप से बंद करें।

सेटिंग्स

सेटिंग्स: व्यवस्थापक एआई सहायक

अपने कर्मचारियों के लिए ग्राहक चैट के तहत एक ग्राहक का सामना करना पड़ रहा है, ग्राहकों, चालान, टिकट, सर्वर और क्रोन लॉग के लिए लाइव पढ़ने की पहुँच के साथ, व्यवस्थापक के अंदर फ्लोटिंग सहायक।

Enable OpsIQ AI Widget

प्रत्येक व्यवस्थापक पृष्ठ पर सहायक बटन दिखाता है। ऑफ इसे हर किसी के लिए छिपाता है।

लेआउट और व्यवहार

कोने की स्थिति, पैनल चौड़ाई ()320 to 600 Px), अधिकतम ऊंचाई ((400 to 900 Px), कोने त्रिज्या (0to 24), फ़ॉन्ट आकार, और पैनल के पीछे एक ठंढा गिलास धुंधला।

त्वरित चिप दिखाएं

शीर्षलेख के तहत एक क्लिक शॉर्टकट बटन। अधिकांश कर्मचारियों के लिए सबसे तेज़ तरीका है।

मॉडल जानकारी दिखाएं

यह प्रदर्शित करता है कि किस मॉडल का जवाब दिया गया और कब तक इसे लिया गया। ट्यूनिंग लागत, रोज़मर्रा के उपयोग के लिए शोर करते समय उपयोगी।

प्रति व्यवस्थापक प्रवेश द्वार

केवल एक हस्ताक्षरित-इन व्यवस्थापक के लिए सहायक को दिखाता है जिसका उपयोगकर्ता नाम और ईमेल दोनों एक मेल खाते हैं OpsIQ एजेंट इस कार्यक्षेत्र को सौंपा गया। मालिक हमेशा पास होते हैं। सक्षम करने से पहले चेक मेरी एक्सेस बटन का उपयोग करें या आप अपनी टीम को बाहर लॉक कर सकते हैं।

A persona

डिस्प्ले नाम, हेडर टैगलाइन और एक कस्टम स्वागत संदेश जब पैनल खुलता है दिखाया गया।

स्मार्ट क्विक-एक्शन चिप

प्रत्येक शॉर्टकट के लिए लेबल और अंतर्निहित संकेत संपादित करें, अपना खुद का जोड़ें, या डिफ़ॉल्ट रूप से रीसेट करें। लेबल वह है जो कर्मचारी देखते हैं, यह वही है जो AI प्राप्त करता है।

रंग और आकार

चिप आकार (गोल, चौकोर), चिप रंग, कार्ड थीम और लांचर आकार (भूमि, गिलहरी, वर्ग) एक लाइव पूर्वावलोकन के साथ।

वार्तालाप स्मृति

सहायक ब्राउज़र सत्र में प्रत्येक व्यक्ति के इतिहास को याद करता है, अप करने के लिए 120 संदेश, अपने स्वयं के डेटाबेस में संग्रहीत। इसे ताज़ा शुरू करने के लिए साफ़ करें।

सेटिंग्स

सेटिंग्स: क्लाइंट चैट

अपने ग्राहकों को चैट विजेट, और सेटिंग्स का सबसे बड़ा क्षेत्र। छह उप-टैब्स, मास्टर स्विच के साथ और टैब के शीर्ष पर पिन सहेजें।

एक नए स्थापित करने के क्रम में उप-टैबों के माध्यम से काम करें: पहचान और प्रतिलिपि, सूरत, व्यवहार, समर्थन प्रवाह, ज्ञान प्रशिक्षण। उन्नत बुनियादी ढांचा है और इंतजार कर सकता है।

पहचान और कॉपी

ब्रांड पहचान

विजेट नाम, टैगलाइन, एआई नाम, सिस्टम और निष्क्रिय नोटिस के लिए इस्तेमाल किया गया नाम, और एजेंट का नाम कैसे दिखाई देता है। एजेंट का नाव स्रोत वास्तविक नामों, एक कस्टम नाम या टीम लेबल के बीच निर्णय लेता है।

इन- चैट अभिवादन

दो बधाई, सभी आगंतुकों के लिए एक और पहचान आगंतुकों के लिये एक। एक सवाल बयान की तुलना में अधिक बातचीत शुरू होता है।

पॉपअप टीज़र

चैट से पहले फ्लोटिंग संदेश खोला जाता है, अपने नाम, फ़ॉन्ट आकार और रंगों के साथ। एआई टीज़र लिख सकता है, जिसमें कितने उत्पन्न होते हैं, कितने प्रति विज़िट दिखाने के लिए और उनके बीच का अंतर दिखाया जा सकता है।

प्रॉम्प्ट्स एंड हैंडऑफ़

पूर्ण स्क्रिप्ट: एक नाम और ईमेल, पुष्टिकरण के लिए पूछते हुए, एक मानव का अनुरोध करते हैं, कोई एजेंट उपलब्ध नहीं है, टिकट बनाया गया या रद्द कर दिया गया, हैंडऑफ़ लंबित। एक ढहने योग्य पैनल में लगभग दो दर्जन व्यक्तिगत लाइनें।

स्थिति और आइडल नोटिस

तीन ग्राहक-सक्षम संदेश: एजेंट चैट बंद कर देता है, आगंतुक चुप हो गया है और एजेंट हाथ वापस एआई में चला जाता है। आंतरिक शब्दों को हल या ट्रिएज्ड जैसे से बचें।

संगीतकार और सुझाव

इनपुट प्लेसहोल्डर, टॉक-टू-एक-मान बटन लेबल और सुझाव दिए गए उद्घाटन प्रश्न। तीन अच्छे सुझाव लेखों के एक पृष्ठ की तुलना में अधिक टिकट को हटा देते हैं।

लॉन्चर, आइकन और अवतार

लॉन्चर आइकन, मानव एजेंट और एआई के लिए ओपन, लांचर आकार और छवियों पर एक वैकल्पिक अलग आइकन है।

दिखावट

थीम और ग्लास

थीम मोड, एक प्रीमियम रंग पूर्व निर्धारित, ब्लर तीव्रता और अपारदर्शिता, साथ ही एनिमेशन, विभाजक लाइनों के लिए टॉगल्स, स्टेटस पंक्ति को छिपाने, संदेश बॉक्स कार्ड को छुपाने और करीब बटन छिपाने। एक प्रीसेट के साथ शुरू करें; यह एक बार में दर्जनों रंगों को सेट करता है।

मुख्य रंग

लॉन्चर, हेडर, मदद पैनल, लिंक, बटन, सिस्टम नोटिस और संगीतकार, प्रत्येक में ढाल के लिए एक स्टार्ट एंड कलर होता है। एक डिफ़ॉल्ट ग्लास विकल्प इन को अनदेखा करता है और पारदर्शी खत्म रखता है।

पैनल, बुलबुले और चिप्स

पैनल, सीमा, पाठ, इनपुट क्षेत्र और प्रत्येक बबल प्रकार (विजिटर, एआई, एजेंट, टाइपिंग, सिस्टम) प्लस सुझाव चिप्स और उनके होवर स्टेट को कवर करने वाले लगभग तीस पिकर्स। केवल इसे सटीक ब्रांड मिलान के लिए खोल दें, और बबल टेक्स्ट पर विपरीत जांच करें।

लेआउट और आकार

पैनल चौड़ाई और ऊंचाई, कोने त्रिज्या, फ़ॉन्ट आकार, स्क्रीन स्थिति, लांचर आकार, बुलबुला शैली और क्या अवतार दिखाते हैं। एक फोन पर चौड़ाई का परीक्षण करें।

बेहावर

स्वचालित रूप से एआई जवाब

एआई उत्तर के लिए मास्टर स्विच का मतलब है कि हर संदेश एक इंसान के लिए इंतजार करता है।

मानव अनुवर्ती और प्राकृतिक डबल-टेक्स्टिंग

जब कोई आगंतुक चुप हो जाता है, तो एक सौम्य अनुवर्ती संदेश जिस तरह से एक व्यक्ति को भेजा जाएगा। प्रति मौन अधिकतम अनुवर्ती के साथ ट्यून किया गया, पहली देरी, बाद में बहुसंख्यक, उपस्थिति खिड़की और अधिकतम अनुक्रम विंडो। व्यापार घंटों तक सीमित हो सकती है, और एक सरल धन्यवाद के बाद दबा दी जा सकती है।

टाइपराइटर जवाब देता है और उत्तर देता है

चाहे जवाब शब्द द्वारा शब्द को टाइप करें, और कैसे सहायक उत्तरों को तेज़ी से सेट या अपने स्वयं के न्यूनतम और अधिकतम देरी मिलीसेकंड में। एक छोटी देरी एक त्वरित उत्तर की तुलना में अधिक मानव के रूप में पढ़ती है।

लाइव अनुवाद

प्रत्येक एजेंट ने अपनी भाषा में पढ़ा और लिखा है जबकि आगंतुक अपने पढ़ने को पढ़ता है।

एजेंट निष्क्रिय होने के बाद हाथ वापस एआई में

एआई से पहले एजेंट निष्क्रियता का कार्यवृत्त वार्तालाप को फिर से शुरू करता है।

स्वतः खुला चैट

इससे पहले कि विजेट खुद को खुलता है।0कभी नहीं खुलता है। मोबाइल पर घुसपैठ; छोड़ दें0जब तक परीक्षण नहीं किया गया।

स्मार्ट जवाब

एक-पास के उत्तरों, सोच गहराई, एजेंट जवाब के लिए एक वैकल्पिक अलग मॉडल के लिए आगे की योजना बनाना, आगंतुकों को तर्क देना, गलतियां करना, लंबी बातचीत स्मृति रखना, सहायक को अपने व्यवसाय में ही सीमित करना, आगंतुक मुद्रा में कीमतें और कैसे लिंक दिखाई देते हैं। केवल आपके व्यापार के बारे में बात लगभग सभी के लिए होना चाहिए।

लागत बचत

नमस्ते और धन्यवाद जैसे बधाई के लिए ज्ञान खोज छोड़ देता है, और टोकन में सबसे लंबे उत्तर कैप्स करता है। वास्तविक प्रश्नों पर जवाब की गुणवत्ता को बदलने के बिना ट्रिम लागत।

भाषा

कौन से भाषाएँ विजेट समर्थन करती हैं और यह कैसे एक आगंतुक के लिए एक चुनती है।

ग्राहक खाता उत्तर

एक हस्ताक्षरित ग्राहक के अपने खाते से उत्तर, वैकल्पिक रूप से लाइव देखा और वैकल्पिक रूप में केवल तभी लोड हो गया जब आवश्यक हो।

रिफंड

सहायता प्राप्त वापसी अनुरोध जहां सहायक किसी व्यक्ति को विस्तार और हाथों में इकट्ठा करता है। यह कभी भी एक वापसी को पूरा नहीं करता है

वार्तालाप और विजेट

पिछले वार्तालापों को देखते हुए, अपने जुड़े साइटों पर एक चैट जारी रखना, ड्रैगेबल विंडो, ईमेल के लिए मेहमानों से पूछना और अपनी टीम को टिकट में एक चैट करने की अनुमति देना।

विजेट विशेषताएं

इमोजी पिकर, एक वैकल्पिक पेस्ट-केवल मोड के साथ संलग्नक, एआई छवि समझ, इनलाइन आइकन, माइक्रोफोन, टॉक-टू-एजेंट बटन, आगंतुक ध्वनि, अटैचमेंट पूर्वावलोकन, वॉयस-कॉल बटन और सत्र अलगाव। AI इमेज समझ क्या एक आगंतुक को त्रुटि स्क्रीनशॉट पेस्ट करने देता है और उपयोगी जवाब प्राप्त करता है।

व्यवस्थापक इनबॉक्स, अधिसूचनाएं और आपका स्वागत है पॉपअप

आगंतुक पॉपअप का स्वागत करते हैं, साथ ही आपके एजेंट अलर्ट: इनबॉक्स ध्वनियाँ, डेस्कटॉप सूचनाएं, व्हिस्पर आवाज, चाहे निजी व्हिस्र्स बीप और इनबॉक्स पोल अंतराल।

समर्थन प्रवाह

मानव हथकरघा

किसी व्यक्ति के लिए कैसे अनुरोध निर्धारित किए जाते हैं, सेकंड एक एजेंट को जवाब देना पड़ता है कि क्या डिक्लिनिंग एआई से चैट लौटाती है और क्या एआई फिर से शुरू होती है जब टाइमआउट समाप्त हो जाता है। इसे लाइव जाने या एक आगंतुक होने से पहले कॉन्फ़िगर करें जो मानव के लिए बस इंतजार करने की इच्छा रखता है।

कार्य समय

खुलने का समय, टाइमज़ोन और बंद घंटे संदेश। इन घंटों के बाहर एआई एक मानव की पेशकश नहीं करेगा। नीचे टिकट व्यापार घंटों से अलग अनुसूची OpsIQ लेखन

जब एआई बंद हो जाता है तब जवाब दें

एक नए संदेश के लिए पहला जवाब, जब कोई पहले से ही रजाई बना हुआ है तो उत्तर और दोहराने से कितने समय पहले।

ऑफलाइन फॉर्म

चैट के बजाय एक संपर्क फ़ॉर्म दिखाता है।

टिकट की तलाश और विभाग अधिसूचना

एआई टिकट जागरूकता, इसलिए एक टिकट संख्या को उद्धृत करने वाले आगंतुक को अपनी वास्तविक स्थिति मिलती है और जो विभाग एआई मार्ग पर जा सकते हैं। एक अंतर्निहित पैनल प्रत्येक विभाग के लिए वास्तविक प्राप्तकर्ताओं को दिखाता है, उसी तरह से हल करता है कि वह उन्हें हल करता हो, ताकि आप किसी ग्राहक से पहले देख सकें कि कोई विभाग किसी को भी अलर्ट नहीं करता है।

चैट विजेट में केंद्र मदद

आगंतुकों चैट छोड़ने के बिना प्रकाशित लेख ब्राउज़ करते हैं। आप चुनते हैं कि प्रवेश बिंदु कहाँ दिखाई देता है, नीचे बार लेबल और आइकन, और क्या पूर्ण सहायता केंद्र को एक लिंक प्रदान करना है। डिफ़ॉल्ट रूप से बंद करें।

वार्तालाप रेटिंग

जब कोई एजेंट चैट बंद हो जाता है तो स्टार रेटिंग शुरू होती है, जब एक हैंडऑफ़ समाप्त होता है या आप सेट की गई निष्क्रियता अवधि के बाद। एक या दो ट्रिगर चुनें, उनमें से सभी नहीं।

पोस्ट-Chat सर्वेक्षण

जब आगंतुक चैट बंद कर देता है, तो एक संक्षिप्त सर्वेक्षण, आपके प्रश्न, देरी, नियम और प्रति दौरा कैप के साथ। आगंतुक भी ईमेल या डाउनलोड कर सकते हैं। एक सवाल का जवाब दिया जाता है; तीन नहीं करते हैं।

पोस्ट-Chat ईमेल सर्वेक्षण

बातचीत के बाद ईमेल द्वारा अनुवर्ती सर्वेक्षण, वैकल्पिक रूप से भाषा में आगंतुक ने देरी, विषय, इंट्रो, प्रश्न, दोनों बटन लेबल और धन्यवाद-आप लाइन पर नियंत्रण के साथ चैट किया।

प्रतिक्रिया

प्रत्येक एआई उत्तर पर अंगूठे और अंगूठे नीचे, गुणवत्ता डैशबोर्ड खिला।

वार्तालाप पुरालेख

दिनों के बाद ऑटो-आर्ची, मौन के मिनट के बाद स्वतः हल हो जाती है और दिनों के पश्चात संग्रहीत बातचीत को हटा देती है। सामान्य और ट्रैकिंग के साथ एक तीसरा स्थान प्रतिधारण निर्धारित किया जाता है।

ज्ञान प्रशिक्षण

क्या सहायक वास्तव में जानता है। क्लाइंट चैट में और कुछ भी उतना ही महत्वपूर्ण नहीं है।

वेबसाइट ज्ञान प्रशिक्षण

इसलिए आपकी साइट को क्रॉल करता है ताकि सहायक इसके जवाब दे सकें। दस शुरुआती लिंक तक, एक पृष्ठ सीमा, एक लिंक गहराई और अलग फ़ोल्डर्स। पूर्ण क्रॉल से पहले सिंगल URL का परीक्षण किया जा सकता है। चेकआउट, खाता और व्यवस्थापक पथ को छोड़कर।

एम्बेडिंग

API key और मॉडल जो पृष्ठों को कीवर्ड मैचों के बजाय खोज योग्य अर्थ में बदल देता है।

एआई नॉलेज ऑर्गनाइज़र

एक क्लिक और एआई हर सामान्य प्रश्न और क्रॉल पृष्ठ को पढ़ता है और उन्हें श्रेणियों में सॉर्ट करता है।

सामान्य प्रश्न, सत्यापित उत्तर

प्रश्न और उत्तर जोड़े को सर्वोच्च प्राथमिकता स्रोत के रूप में इलाज किया जाता है, प्रत्येक एक स्थिति, वजन और श्रेणी के साथ। Searchable, आयात योग्य JSON से, और AI उन्हें आपके व्यवसाय का वर्णन से लिख सकता है। जब सहायक कुछ गलत हो जाता है तो अक्सर पूछे जाने वाले प्रश्न लिखें: यह क्रॉल किए गए पृष्ठों को बाहर निकाल देता है, इसलिए फिक्स तत्काल होता है।

उन्नत

प्रदर्शन और सीमाएं

मतदान अंतराल, संदेश दर सीमा और खिड़की अधिकतम संलग्नक आकार, प्रति विंडो अनुलग्नक प्रयास करता है और फ़ाइल एक्सटेंशन की अनुमति देता है। विस्तार सूची एक सुरक्षा नियंत्रण है; इसे तंग रखें।

रियलटाइम डिलिवरी

मतदान के बजाय तत्काल संदेश और स्थिति वितरण, पुशर, अबली या फायरबेस के माध्यम से, एक गिरावट मतदान अंतराल के साथ। पोलिंग अधिकांश साइटों के लिए ठीक है।

पुश अधिसूचनाएं

डिवाइस एक युक्ति हित के साथ पुशर बीम या OneSignal के माध्यम से एजेंटों के लिए चेतावनी देता है।

वेब पुश (VAPID)

ब्राउज़र को अपने स्वयं के उत्पन्न कुंजी का उपयोग करके किसी तीसरे पक्ष के प्रदाता के साथ नहीं किया गया। यहां जेनरेट किया गया, डैनगर जोन में नहीं।

आवाज, वीडियो और स्क्रीन शेयर

इसलिए कॉल प्रतिबंधित नेटवर्क के माध्यम से कनेक्ट करते हैं, का उपयोग करके Cloudflare या Twilio credentials या अपने खुद के टर्न URL उपयोगकर्ता नाम और क्रेडेंशियल।

इनबॉक्स वर्कफ्लोComment

आगंतुक सेटिंग्स के बजाय एजेंट वर्कस्पेस सेटिंग: मिनटों में पहली बार SLA, कतार विचारों को बचाया, कीबोर्ड शॉर्टकट और कमांड पैलेट, इन-संविदा खोज और ग्राहक टिकट निरीक्षक में।

संदेश चैनल

WhatsApp, SMS, Facebook Messenger, Instagram, टेलीग्राम, X प्रत्यक्ष संदेश और लाइन, प्रत्येक अपने स्वयं के AI ऑटो-रिप्लाई स्विच के साथ, चैनल पर AI कार्यों के लिए एक नीति स्विच, उत्तर debounce और व्हाट्सएप फिर से सगाई टेम्पलेट। हर चैनल वेब चैट के समान इनबॉक्स में उतरता है।

जब आप संपादित करते हैं तो टैब अद्यतन के नीचे लाइव विजेट पूर्वावलोकन करें। बदलाव की जांच करने के लिए अपनी वेबसाइट को फिर से लोड करने के बजाय इसका उपयोग करें।
सेटिंग्स

सेटिंग: टेम्पलेट

ईमेलOpsIQभेजता है, और एक डिज़ाइन जो उन्हें सभी फ्रेम करता है। किसी भी संदेश के शब्दों को संपादित करें, और कुछ भी करने के लिए अपने खुद के टेम्पलेट्स लिखें।OpsIQपहले से ही नहीं भेजता है।

एक डिजाइन, कई संदेश

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

इस रैपर के बिना OpsIQ से बाहर ईमेल भेजने का कोई तरीका नहीं है। यह प्रत्येक संदेश के माध्यम से एकल बिंदु पर लागू होता है, इसलिए बाद में एक संदेश इसे याद नहीं कर सकता।

संदेश संपादित करना

1
ओपन सेटिंग्स, फिर टेम्पलेट्स

संदेश उन लोगों द्वारा समूहित हैं: टिकट और पोर्टल, स्टोर, साइन-इन और खाता सुरक्षा, बुकिंग, बातचीत और अधिसूचनाएं, रिपोर्ट, पीपुलोस पत्र और अपना खुद का।

2
प्रेस संपादित करें, जिसे आप चाहते हैं

आपको विषय मिलता है, एक अमीर पाठ संपादक के साथHTMLयह देखने के लिए कि आप लाइव में स्विच कर सकते हैं, और तैयार ईमेल का पूर्वावलोकन ठीक उसी तरह प्राप्तकर्ता इसे प्राप्त करता है - आपका रैपर शामिल था।

3
चर चिप्स का उपयोग करें

संपादक के ऊपर चिप्स तथ्य यह है कि परिवर्तन: एक टिकट संख्या, एक आदेश संदर्भ, बुकिंग समय।

4
सेव

केवल उस संदेश को लिखा जाता है। फ़ील्ड खाली छोड़ दें और यह अपने अंतर्निहित शब्दों को रखता है; पंक्ति पर गोली आपको बताती है कि कौन सा राज्य इसमें है।

💡
जब आप ईमेल भेजे जाते हैं तो आपको ऐसा करने में कोई परिवर्तनशील नहीं होता है और इसलिए वह लाइन जिस पर बैठती है। इसीलिए फोन नंबर के साथ बुकिंग कभी भी उसके बाद कुछ भी नहीं भेजी जाती है।

अपना खुद का टेम्पलेट लिखें

इसे संदेश के लिए प्रयोग करेंOpsIQपहले से ही नहीं भेजता है: एक वितरण नोटिस, एक नवीकरण अनुस्मारक, एक स्वागत पैक, लाइसेंस कुंजी। यह सब कुछ एक अंतर्निहित संदेश हो जाता है - संपादक, पूर्वावलोकन, योजना नियम और आपका वैश्विक डिजाइन - और आपकी खुद की प्रणाली इसे इसके माध्यम से भेजती है।API.

1
प्रेस जोड़ें टेम्पलेट

बटन टेम्पलेट्स पेज के शीर्ष पर बैठता है और फिर "आपका खुद का टेम्पलेट" के बगल में।

2
इसे नाम दें

नाम आपके सिस्टम द्वारा भेजे गए संदर्भ को बन जाता है, जैसा कि आप टाइप करते हैं - उदाहरण के लिए x_custom_delivery_booked। यह बाद में बदल नहीं सकता क्योंकि कुछ पहले ही इसे भेज दिया जाएगा।

3
क्या यह है और कब इसे भेजा जाता है

ये दो लाइनें हैं जो आप और आपके सहयोगियों ने आज से टेम्पलेट्स पेज पर पढ़ा है। वे तीस सेकंड के लायक हैं।

4
उन हिस्सों की सूची जो बदल जाते हैं

Comma-separated, उदाहरण के लिए: नाम, कब, track_link. प्रत्येक एक हो जाता है {{variable}} आप विषय या संदेश में छोड़ सकते हैं, और आपका सिस्टम इसे भेजने के समय भर देता है।

5
विषय और संदेश लिखें

सादा वाक्य ठीक हैं - लाइन ब्रेक पैराग्राफ बन जाते हैं। केवल MESSAGE लिखें; लोगो, शीर्षलेख और पाद लेख वैश्विक टेम्पलेट से आते हैं।

6
इसे बनाएं, फिर उसे खोलें

यह "आपका खुद का टेम्पलेट" के तहत पूर्ण संपादक और एक लाइव पूर्वावलोकन के साथ दिखाई देता है, जो हर अंतर्निहित संदेश के समान होता है।

⚠️
Write the message, not the whole page. A template that carries its own <html> document is refused, because a whole document would slip past the wrapper and your email would go out with none of your branding on it.

अपना खुद का टेम्पलेट भेजना

दो उत्पाद पर कॉल API. कॉलर प्राप्तकर्ता और चर की आपूर्ति करता है - कभी भी शब्दकरण नहीं होता और डिज़ाइन कभी नहीं होता, इसलिए एकीकरण न तो आपके वर्कस्पेस के माध्यम से अनब्रांडेड मेल भेज सकता है और न ही चुपचाप आप अपने ग्राहकों को क्या कहते हैं।

अपने टेम्पलेट्स और प्रत्येक में परिवर्तनशील की सूची
POST /api/v1.php
Authorization: Bearer YOUR_API_KEY

{ "action": "email.templates.list", "mine": true }
इसे भेजें
POST /api/v1.php
Authorization: Bearer YOUR_API_KEY

{
  "action": "email.template.send",
  "template": "x_custom_delivery_booked",
  "to": "[email protected]",
  "to_name": "Ada Obi",
  "variables": {
    "name": "Ada",
    "when": "Thursday 11 September, 14:00",
    "tracking_link": "https://track.example.com/AB12"
  }
}
💡
वेरिएबल नामों में ब्रेसिज़ के बिना जाते हैंAPIकॉल करें। ईमेल.templates.list हाथों को वास्तव में ठीक उसी आकार में वापस भेजता है जिसे आप उन्हें पास करते हैं।

टेम्पलेट्स और आपकी योजना

आपके पास सेवा के लिए कोई संदेश नहीं है

"देखें योजनाओं" लिंक और कोई संपादक के साथ सूचीबद्ध रहता है - तो आप क्या देख सकते हैं?OpsIQक्या भेजेगा, और यह क्या अनलॉक करेगा।

अपने खुद के टेम्पलेट्स

जब आप इसे बनाते हैं, तो सेवा को चुनें या उसे हर योजना पर छोड़ दें। उस सेवा के बिना एक कार्यक्षेत्र सूचीबद्ध है लेकिन इसे संपादित या भेज नहीं सकता है।

साइन-इन, सुरक्षा, अधिसूचनाएं और ईमेल परीक्षण

कभी योजनाबद्ध नहीं किया जा रहा है। पासवर्ड रीसेट करने के लिए अपने स्वयं के व्यवस्थापकों को प्राप्त करने का शब्दकरण गलत प्रकार का लॉक होगा।

प्रश्न

क्या मैं केवल एक संदेश के लिए डिजाइन को बदल सकता हूं?+

नहीं, और जानबूझकर। डिजाइन रैपर है और यह साझा किया गया है, जो हर ईमेल को पुन: प्राप्त करने में आपकी मदद करता है। प्रति-मेसेज क्या है वह शब्दकरण, तथ्यों पैनल और संदेश के अंदर आपके द्वारा जोड़े गए किसी भी बटन है।

यदि मैं रीसेट करता हूं तो मेरे शब्दों का क्या मतलब है?+

रीसेट केवल वैश्विक टेम्पलेट पर दिखाई देता है, और यह बदलता है कि क्या संपादक में अंतर्निहित डिज़ाइन के साथ है। जब तक आप सेव दबाते हैं तब तक कुछ भी नहीं लिखा जाता है, इसलिए आप अपने दिमाग को बदलने के लिए संवाद बंद कर सकते हैं।

मैंने गलती से अपने टेम्पलेट्स में से एक को हटा दिया।+

हटाने के कारण ठीक उसी कारण से दो क्लिक होते हैं - पहली बार यह हथियार और आपको बताता है कि क्या काम करना बंद कर देगा। अगर यह पहले ही चला गया है, तो इसे फिर से उसी नाम के साथ बनाएं और एक ही संदर्भ वापस आता है; केवल शब्दों को दोहराया जाना चाहिए।

क्या कनेक्टर या ऐड-ऑन अपने स्वयं के टेम्पलेट्स को ला सकता है?+

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

सेटिंग्स

सेटिंग्स: OpsIQ लेखन

टिकटों ने लिखित में उत्तर दिया: स्वचालित जवाब, मूल टिकट प्रणाली, वृद्धि, व्यापार समय, रूटिंग और ग्राहक-फेसिंग ईमेल।

ऑटो-रिप्लाई

Show OpsIQ लेखन बटन

व्यवस्थापक में अपने एजेंटों के लिए लेखन सहायक बटन जोड़ता है।

सक्षम टिकट ऑटो-reply

नए टिकटों को खरीदने और उन्हें देरी के बाद जवाब देने का फैसला करता है। इसके साथ शुरू करें और एक सप्ताह के लिए ड्राफ्ट की समीक्षा करें। रिफंड, रद्द करने और एक्सेस परिवर्तन हमेशा किसी व्यक्ति तक पहुंचना चाहिए।

ऑटो-रिप्लाई विभाग

कौन से विभाग ऑटो-रिप्लाई में जवाब दे सकते हैं। सूचीबद्ध नहीं है कुछ भी एक मानव के लिए छोड़ दिया जाता है, जो सुरक्षित डिफ़ॉल्ट होता है।

उत्तर देरी अनुसूची (मिनट)

जब तक स्वचालित उत्तर भेजता है तब तक इंतजार करना। एक त्वरित जवाब रोबोट के रूप में पढ़ता है; कुछ मिनट एक तेज टीम के रूप मे पढ़ा जाता है।

मैक्स एआई विभाग द्वारा प्रति टिकट जवाब देता है

प्रति-विभाग टोपी, उदाहरण के लिए बिलिंग 1 समर्थन 3एक टोपी के बिना एक भ्रमित धागा लूप कर सकते हैं।

उत्तर की लंबाई, स्थिति और पहचान

अधिकतम लेखन टोकन, उत्तर के बाद टिकट की स्थिति और एक वृद्धि के बाद, और जो व्यवस्थापक खाते हैं स्वचालित जवाबों को जिम्मेदार ठहराया जाता है। स्पष्ट रूप से नामित खाता का उपयोग करें ताकि कर्मचारी मानव लोगों से एआई प्रतिनिधि बता सकें।

मूल टिकट संचालन

मूल टिकट प्रणाली

टिकट प्रणाली ने बिना किसी बाहरी सहायता के स्थापित करने के लिए OpsIQ_ में बनाया।

मूल टिकट में पाइप इनबाउंड ईमेल

आने वाले ईमेल को टिकट में बदल देता है। OpsIQ समापन बिंदु की आपूर्ति URL Auth token, स्क्रिप्ट पथ और PHP द्विआधारी. कुछ भी जो उस समापन बिंदु पर पोस्ट कर सकता है, टिकट बना सकते हैं, इसलिए टोकन को गुप्त रख सकते हैं।

बहु-बारी उत्तर और देरी और debounce

क्या एआई बातचीत जारी रखने के रूप में जवाब देता है, और क्या यह एक शांत खिड़की का इंतजार करता है तो तीन त्वरित संदेश को जवाब देने लगते हैं। शांत विंडो स्वचालित उत्तरों को विचार करने के लिए सबसे अच्छी एकल सेटिंग है।

सार्वजनिक समर्थन पोर्टल

एक ग्राहक-फेसिंग पेज जहां कोई भी टिकट को वैकल्पिक स्वागत लाइन के साथ उठा और ट्रैक कर सकता है। इसका पता और देखो समर्थन पोर्टल टैब में कॉन्फ़िगर किया गया है।

टिकट संख्या प्रारूप

कितने यादृच्छिक अक्षर उत्पन्न टिकट संख्या में दिखाई देते हैं।

अपनी भाषा में ग्राहकों को ईमेल करें

टिकट ईमेल ग्राहक भाषा का पालन करें स्टाफ ईमेल कभी भाषा में परिवर्तन नहीं करता: अधिसूचनाएं, विभाग अलर्ट, ब्रीफिंग और अनुसूचित रिपोर्ट आपकी सिस्टम भाषा में रहती हैं।

घोषणाएँ और पुष्टिकरण

नए टिकट पर एक निश्चित स्वीकृति, साथ ही पुष्टिकरण संदेश जब टिकट खोला जाता है, जब फीडबैक छोड़ दिया जाता है और जब कोई टिकट बंद हो जाता है तो प्रत्येक लाइव पूर्वावलोकन के साथ होता है। वहाँ भी एक वैश्विक ईमेल टेम्पलेट रैपर है और अपने टिकट बटन देखने के पीछे लिंक है।

AI स्पैम स्क्रीनिंग

अज्ञात प्रेषकों से स्क्रीन टिकट, और वैकल्पिक रूप से संदिग्ध स्पैम को अपने आप में ले जा सकते हैं। जब तक आपने अपना निर्णय नहीं देखा है तब तक स्वचालित चाल बंद करें।

ऑटो बंद निष्क्रिय टिकट

कई दिनों के बाद टिकट बंद कर देता है। ग्राहक को समापन संदेश में बताएं कि कैसे फिर से खुल जाए।

व्यापार घंटे (SLA कैलेंडर)

टाइमज़ोन, उद्घाटन और समापन समय, कार्य दिवस और छुट्टियों के लिए पहली बार जवाबी और संकल्प टाइमर। क्लाइंट चैट के तहत कार्य घंटों से अलग कार्यक्रम।

ऑटो-assign नया टिकट

स्वचालित असाइनमेंट, वैकल्पिक रूप से केवल उन एजेंटों के लिए जो ऑनलाइन हैं, एजेंट कौशल और कौशल आधारित रूटिंग के लिए मैच संवेदनशीलता के साथ।

डुप्लिकेट टिकट सुझाव

जब कोई ग्राहक पहले से ही एक समायोज्य मैच संवेदनशीलता के साथ किसी टिकट को खोलता है तो स्पॉट्स।

बंद होने के बाद संतुष्टि सर्वेक्षण

एक सर्वेक्षण को बंद करने के बाद एक दिन का ईमेल करें। परिणाम CSAT पृष्ठ पर दिखाई देते हैं।

विभाग को ईमेल द्वारा सूचित करें

जब एक नया टिकट आता है तो विभाग को ईमेल करता है। रेसिडेंट उस विभाग के सदस्य हैं, न कि डिपार्टमेंट मेलबॉक्स पता, जो इनबाउंड एड्रेस टिकट आता हैं।

एआई क्या पढ़ सकता है

AI क्लाइंट डेटा एक्सेस

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

ज्ञान और ज्ञान

एआई टिकट वृद्धि को सक्षम करें

उत्तर देने से पहले बेहतर-सुइट विभाग में टिकट ले जाता है। आप अनुमति विभागों, चेक देरी का चयन करते हैं और अपने स्वयं के एस्केलेटर नोटिस निर्देश लिख सकते हैं। आंतरिक वृद्धि नोट पर बारी ताकि आपकी टीम को क्यों एक टिकट चल सके।

ज्ञान सेटिंग

चाहे जवाब ग्राहक भाषा का उपयोग करते हैं, चाहे वे क्रॉल लिंक और अक्सर पूछे जाने वाले प्रश्न पर आकर्षित हों, क्या एआई छवि पढ़ता है और PDF संलग्नक, ज्ञान उत्तर मोड, चाहे आयातित JSON ज्ञान का प्रयोग किया जाता है, और क्या स्रोत लिंक दिखाई दे सकते हैं। क्रॉल किए गए लिंक्स और अक्सर पूछे जाने वाले प्रश्नों पर विचार करना चाहिए या एआई अनुमान लगा रहा है।

मानव उत्तर के बाद ऑटो-रिप्लाई बंद करें

एक बार स्टाफ जवाब देने के बाद, एआई उस टिकट का उत्तर देने से रोकती है। इसके बिना AI अपने एजेंट पर बात कर सकता है।

टिकट और ईमेल निर्देश

प्रत्येक उत्तर के लिए स्वर और सामग्री को आकार देने वाले मुफ्त पाठ निर्देश, एक लोड करने योग्य काम उदाहरण के साथ। एआई को कभी नहीं करना चाहिए, इसके बारे में विशिष्ट होना चाहिए।

आयात JSON ज्ञान

एक फ़ाइल को अपलोड या पेस्ट करें JSON _\text file for the लेखन सहायक.

बटन स्टूडियो

ग्राहक-facing बटन के लिए एक पूर्ण डिजाइनर: प्रदर्शन शैली, आकार, लेबल, आइकन, आकृति, न्यूनतम चौड़ाई, प्राथमिक और माध्यमिक रंगों के साथ पृष्ठभूमि शैली, ढाल कोण, सीमा, कोने त्रिज्या, छाया, टाइपोग्राफी, पैडिंग, निष्क्रिय एनीमेशन, होवर गति और रंग, और फोकस रिंग, प्लस एक कस्टम CSS किसी भी चीज़ के लिए बॉक्स को कवर नहीं किया जाता है।

सेटिंग्स

सेटिंग्स: समर्थन पोर्टल

ग्राहक-मुखी साइट जहाँ लोग टिकट उठाते हैं और ट्रैक करते हैं तथा आपके मदद लेख पढ़ते हैं. यह टैब नियंत्रित करता है कि कैसे इसे पहुँचा जाता है तथा ग्राहकों को लॉगइन में कैसे किया जाता है; इसका दृश्यात्मक डिजाइन समर्थन पोर्टल स्टूडियो में किया जाता हैं.

पोर्टल स्टूडियो या एम्बेडेड टिकट पोर्टल: कौन से मैं चाहता हूँ?

ये दो अलग-अलग उत्पाद हैं और लोग उन्हें लगातार मिलाते हैं। वे अलग-अलग समस्याओं को हल करते हैं और दोनों मिलकर सामान्य होते हैं।

समर्थन पोर्टल स्टूडियो: एक जगह जिसे आप ग्राहकों को भेजते हैं

स्टूडियो एक डिजाइन करता है पूर्ण समर्थन साइट कि OpsIQ _आप के लिए होस्ट करता है. इसका अपना वेब पता है, या आपकी अपनी डोमेन, और यह पूरे स्व- सेवा अनुभव को लेता है: खोज के साथ मदद लेख, निवेदन फ़ॉर्म, टिकट इतिहास, ग्राहक लॉगइन तथा सहायक. एक टेम्पलेट चुनें, थीम, नेविगेशन, लेआउट, ज्ञान, फुटर, ब्रांड, टिकट, सहायक, फ़र्म तथा द्वारा काम करें CSS, डेस्कटॉप, टैबलेट और फोन आकारों पर पूर्वावलोकन, फिर प्रकाशित करें.

जब इसे प्रयोग करें आप चाहते हैं कि एक ब्रांडेड गंतव्य, आप हर ग्राहक को इंगित कर सकते हैं और आप अपनी वेबसाइट के अंदर समर्थन क्षेत्र का निर्माण या रखरखाव नहीं करेंगे।

एम्बेडेड टिकट पोर्टल: अपनी साइट के अंदर टिकट

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

जब इसे प्रयोग करें आपके पास पहले से ही एक वेबसाइट या एप्लिकेशन है, और आप ग्राहक को अलग-अलग पते पर बंद करने के बजाय इसके अंदर होने का समर्थन चाहते हैं।

लघु संस्करण

स्टूडियो निर्माण एक जगह जिसे आप ग्राहकों को भेजते हैंThe embed is a sacking of the embered. आपके ग्राहक पहले से ही हैंकई व्यवसायों दोनों को चलाते हैं, लेखों और खोज के साथ होस्ट किए गए पोर्टल को पूर्ण स्वयं सेवा गंतव्य के रूप में रखते हुए अपने अकाउंट क्षेत्र में टिकट विजेट एम्बेड करते हैं।

पता और पहुंच

एक्सेस मोड

क्या पोर्टल किसी के लिए खुला है या ग्राहकों में हस्ताक्षर किए जाने तक ही सीमित है। ओपन पोर्टल अधिक टिकट और स्पैम प्राप्त करते हैं।

लेआउट विकल्प

क्या पोर्टल और मदद केंद्र एक हीरो साझा करते हैं या दो का उपयोग करते हैं, जो नेविगेशन और पाद लेख दोनों सतहों पर दिखाई देते हैं, और नेविगेशन अनुभाग लेबल।

पोर्टल का पता

पता ग्राहक उपयोग करते हैं। एक नाम चुनें और चुनें OpsIQ परिणामी पोर्टल और मिलान सहायता केंद्र पते को दर्शाता है। इसे बदलने के बाद आपके द्वारा भेजे गए लिंक को तोड़ दिया गया है।

अपने खुद के डोमेन

पोर्टल को अपने डोमेन से अलग करें, जैसे कि support. yourdomain. com।

एम्बेडेड टिकट पोर्टल

ऊपर वर्णित ड्रॉप-इन विजेट पर स्विच करता है, और एम्बेड बिल्डर को खोलता है जहां आप लेआउट, उपस्थिति और एक्सेस नियमों का चयन करते हैं, परिणाम का पूर्वावलोकन करते हैं और अपने पृष्ठ के लिए स्निपेट की प्रतिलिपि बनाते हैं। यह पोर्टल स्टूडियो नहीं है: स्टूडियो होस्ट किए गए पोर्टल को डिज़ाइन करता है और अपनी साइट के अंदर टिकट डालता है। दोनों एक बार में हो सकते हैं।

ग्राहक कैसे लॉगइन करते हैं

ये आपके ग्राहक साइन-इन विकल्प हैं। स्टाफ साइन-in सेटिंग्स, सुरक्षा के तहत कॉन्फ़िगर किया गया है।

लॉगइन विधि

कौन से विकल्प साइन-इन पृष्ठ पर दिखाई देते हैं। कनेक्टर और ईमेल हस्ताक्षर-इन स्वचालित रूप से काम करते हैं।

सामाजिक चिह्न

उपभोक्ता खाता प्रदाता, प्रत्येक को ग्राहक आईडी और गुप्त की आवश्यकता होती है, जिसके द्वारा आपूर्ति किए गए रीडायरेक्ट पते के साथ OpsIQ उस प्रदाता के साथ पंजीकरण करना।

एकल साइन-ऑन (OIDC)

ग्राहक एक पहचान प्रदाता के माध्यम से साइन-इन करते हैं, जारीकर्ता URL, क्लाइंट आईडी, गुप्त और वैकल्पिक अनुमति ईमेल डोमेन सूची के साथ।

ग्राहक SAML 2.0

द SAML समतुल्य. OpsIQ एसीएस जवाब प्रदान करता हैURLऔर एसपी संस्था आईडी; आप IdP संस्था ID, साइन-इन और साइन आउट प्रदान करते हैं URLs, X 509 प्रमाणपत्र तथा वैकल्पिक गुण नाम.SAML लॉगइन विधि में चालू करें अन्यथा यह दिखाई नहीं देगा.

अपने ऐप से निर्बाध साइन-इन

एक हस्ताक्षरित गहरी लिंक इसलिए ग्राहक ने फिर से साइन किए बिना पोर्टल में अपने आवेदन भूमि पर पहले ही हस्ताक्षर किये। OpsIQ साइनिंग रहस्य की आपूर्ति, पोर्टल URL और कार्यक्षेत्र कुंजी, अपनी भाषा के लिए एक पूरा मार्ग (PHP, Laravel,) WordPress, WHMCS, Node.jsFlask, Django, .NET, रेल, जावा, गो और स्व-होस्टेड इंस्टॉल पर OpsIQ सर्वर खुद), चरण-दर-चरण सेटअप नोट्स, और एक हस्ताक्षरित परीक्षण लिंक के लिए एक जनरेटर। किसी भी कोड लिखने से पहले जनरेटर का उपयोग करें।

मार्ग कैसे काम करता है

आपका ग्राहक एक समर्थन लिंक पर क्लिक करता है जो मार्ग पर इंगित करता है। मार्ग ग्राहक को आपके ऐप में हस्ताक्षरित (एक अतिथि को आपकी लॉगिन और बैक पर भेजा जाता है) पाता है, अपने सर्वर से रहस्य पढ़ता है, एक बार टोकन संकेत देता है जो दो मिनट में समाप्त हो जाता है, और पोर्टल पर पुनर्निर्देशित नहीं होते हैं, इसलिए टोकन कैश्ड या लीक नहीं होता है।

पोर्टल का अपना साइन इन बटन

पोर्टल स्टूडियो में, साइन-इन पृष्ठ पर जाएं, मेरी वेबसाइट के लॉगिन का उपयोग करें और अपना लॉग इन पेज सेट करें URL उसी मार्ग में पोर्टल जोड़ता है opsiq_portal_return (पृष्ठ ग्राहक चालू था); मार्ग इसे केवल तभी सम्मान देता है जब यह आपके पोर्टल पते के अंदर हो और वहां ग्राहक को वापस लाए, साइन इन करें।

WHMCS

लिखने के लिए कुछ नहीं: WHMCS दूरस्थ साइटों से हुक पहले से ही ग्राहकों को पोर्टल में संकेत देता है और वापसी पते को संभालता है। अपना लॉगिन पेज सेट करें URL अपने लिए WHMCS ग्राहक क्षेत्र लॉगिन।

हर जगह साइन आउट

पोर्टल से बाहर साइन करने के बाद ग्राहक को आपके आवेदन से बाहर कर देता है।

सेवन और सुरक्षा

अनुरोध फॉर्म फ़ील्ड

कौन से संरचित क्षेत्र अनुरोध प्रपत्र एकत्र करता है। प्रत्येक अतिरिक्त क्षेत्र प्रस्तुतियों को खो देता है, इसलिए केवल वही पूछता है जिसके लिए आपको ट्रेज की आवश्यकता होती है।

स्पैम और दुर्व्यवहार संरक्षण

एक हनीपॉट और दर सीमित हमेशा सार्वजनिक रूप की रक्षा करती है। शीर्ष पर आप डिस्पोजेबल ईमेल पते को अवरुद्ध कर सकते हैं, अपने खुद के अवरुद्ध डोमेन जोड़ सकते हैं और Google का उपयोग करके एक CAPTCHA जोड़ सकते...reCAPTCHAयाCloudflareटर्नस्टाइल।reCAPTCHAसेटिंग्स, सुरक्षा के तहत पहले से ही निर्धारित कुंजी का पुन: उपयोग करता है; टर्नस्टाइल कुंजी यहां दर्ज की गई हैं।

पोर्टल विश्लेषण

पिछले तीस दिनों में पोर्टल गतिविधि का एक नियमित सारांश।

सेटिंग्स

सेटिंग्स: अनुमतियां, लाइसेंस, क्रोन और खतरे क्षेत्र

सिस्टम ग्रुप, साथ ही टीम एक्सेस कंट्रोल जो तय करता है कि कौन किस सेटिंग टैब को देख सकता है।

टीम एक्सेस और अनुमतियां

प्रति व्यवस्थापक अनुमतियां

प्रत्येक व्यवस्थापक को चैट इनबॉक्स एक्सेस को कवर करने की अनुमति का एक स्पष्ट सेट मिलता है, जो उन अनुभागों को सेटिंग्स करता है जिन्हें वे संपादित कर सकते हैं और उनके विभाग। किसी भी पूर्ण प्रशासक भूमिका के साथ हमेशा हर अनुमति होती है। सेटिंग अनुमतियां यह तय करती हैं कि कौन से टैब्स किसी व्यक्ति को देखता है, इसलिए उन्हें काम करने में मदद करने वाले सबसे संकीर्ण सेट प्रदान करते हैं।

लाइसेंस

अपने वर्तमान लाइसेंस को दर्शाता है, यह आपको और उसकी स्थिति का हकदार बनाता है।

क्रोन सेटअप

केवल स्व-होस्टेड इंस्टॉल करें। पर OpsIQ क्लाउड आपके लिए निर्धारित कार्य चल रहे हैं और टैब छिपा हुआ है। क्रॉनटैब की एक पंक्ति हर अनुसूचित कार्य को ड्राइव करती है: टिकट ऑटो-रिप्लाई, escalation रूटिंग, विनिमय दर ताज़ा, मेलबॉक्स मतदान और कनेक्टर सिंक।

1
लाइन कॉपी करें

टैब आपके सर्वर के लिए सटीक क्रॉनटैब लाइन को दिखाता है, जिसमें पहले से ही सही PHP बाइनरी चुना गया था।

2
इसे क्रॉनटैब में जोड़ें

रन क्रोंटाब -e उपयोगकर्ता के रूप में जो PHP को चलाता है और एकल पंक्ति पेस्ट करता है। पर cPanel इसके बजाय क्रोन जॉब्स टूल का उपयोग करें।

3
सत्यापित

एक मिनट के भीतर दिल की धड़कन टाइल प्रकाश ऊपर। इंतजार करने के बजाय तुरंत परीक्षण करने के लिए अब रन का प्रयोग करें।

दिल की धड़कन पैनल अंतिम रन, अवधि और ऑटो-रिप्लाई कतार और ईमेल और कनेक्टर पोल दोनों के लिए क्या संसाधित किया गया था पता चलता है। यह चेतावनी देता है कि जब अंतिम रन वास्तविक सर्वर क्रोन के बजाय मैनुअल वेब बटन से आया था, और जब एक दिल की बात चली गई है।

खतरे का क्षेत्र

सभी ट्रैकिंग डेटा को हटाएं

सब कुछ पोंछे OpsIQ एकत्र या उत्पन्न। आप वास्तव में पुष्टिकरण वाक्यांश को शामिल करने और टाइप करने के लिए क्या सोचते हैं। सेटिंग्स और साइट विन्यास, अवरुद्ध पते, आपकी टीम ने जो कुछ लिखा (ज्ञान आधार, अक्सर पूछे जाने वाले प्रश्न, अनुवाद, पोर्टल डिजाइन, एक्शन परिभाषा) और सहमति रसीद सभी संरक्षित हैं।

Purge Data Older than

समान स्वीप रिकॉर्ड तक सीमित है जो पुराने से अधिक पुराने हैं। 30, 60, 90 या 180 दिन, या एक वर्ष स्वचालित रोलिंग रिटेंशन के लिए इसके बजाय जनरल और ट्रैकिंग में अवधारण मूल्यों का उपयोग करें और निर्धारित कार्य को करने दें।

🚫
सेटिंग्स से बैकअप निर्यात करें, सामान्य रूप से किसी भी चीज का उपयोग करने से पहले खतरे क्षेत्र में नहीं। ये क्रियाएं पूरी नहीं हो सकती हैं।
सेटिंग्स

अपनी टीम का प्रबंधन करना

टीम के सदस्यों को आमंत्रित करें और उन भूमिकाओं को नियंत्रित करने के लिए असाइन करें जो क्या तक पहुंच सकते हैं।

टीम
टीम और विभागोंटीम स्क्रीन: संपर्क, भूमिका बिल्ला (Owner, फुल एडमिन, एजेंट) और प्रत्येक विभाग के साथ व्यवस्थापकों की एक तालिका तक पहुंच सकती है।टीम और विभागोंकार्यस्थलटीम और विभागों+ व्यवस्थापक उपयोगकर्ता सहेजेंसंपर्करोलविभागएओ[email protected]ओवुसु द्वीपमालिकसबकेएम[email protected]कोजो मेंसापूर्ण व्यवस्थापकसबआरटी[email protected]रीता टट्टेएजेंटबिलिंगएस.बी.[email protected]एजेंटसमर्थन1TEAMप्रशासन को आमंत्रित और प्रबंधित करना2ROLESमालिक पूर्ण व्यवस्थापक3SCOPEDप्रति-विभाग का अभिगम
वास्तविक टीम स्क्रीन: प्रत्येक व्यवस्थापक के साथ उनके संपर्क, भूमिका और विभागों वे पहुँच सकते हैं, एजेंट दायरा, मालिक पूरा।

भूमिका

मालिक

लाइसेंस, बिलिंग और खतरे के क्षेत्र सहित पूर्ण पहुंच। प्रति स्थापना एक।

पूर्ण व्यवस्थापक

लाइसेंस और खतरे के क्षेत्र को छोड़कर पूर्ण पहुंच। व्यवस्थापक का प्रबंधन कर सकते हैं।

एजेंट

केवल निर्दिष्ट विभागों के लिए सीमित टिकट, चैट और विश्लेषण।

टीम के सदस्यों को आमंत्रित करना

1
टीम जाओ

टीम को साइडबार में नेविगेट करें।

2
Invite क्लिक करें

टीम के सदस्य का ईमेल दर्ज करें।

3
भूमिका

मालिक, पूर्ण व्यवस्थापक या एजेंट चुनें।

4
असाइन विभाग

एजेंट के लिए सुलभ विभागों का चयन करें।

5
निमंत्रण भेजें

उन्हें एक सेटअप लिंक के साथ ईमेल प्राप्त होता है।

सेटिंग्स

टीम प्रदर्शन

आपकी सहायता टीम कैसे प्रदर्शन कर रही है। एक्सेस अनुमति से है, भूमिका के अनुसार नहीं: दृश्य अनुमति पृष्ठ को खोलती है, प्रबंधन अनुमति लक्ष्य अनलॉक करती है, क्यूए और सहकर्मी-पहचान पढ़ने वाली, और इनाम-वित्तीय अनुमति क्या है रिवार्ड टैब. एक टीम लीड को पूर्ण प्रशासक बनने के बिना इनमें से किसी को भी दिया जा सकता है।

टीम प्रदर्शन
टीम प्रदर्शनटीम-प्रदर्शन स्क्रीन: एजेंट एक समग्र स्कोर बार, CSAT और प्रति पंक्ति पे बटन के साथ इनाम संतुलन द्वारा स्थान पर हैं।टीम प्रदर्शनकार्यस्थलटीम प्रदर्शनएजेंटस्कूरCSATसंतुलनआरटीरीता टट्टे4.8$42वेतनएस.बी.सैम बोटेंग4.5$28वेतनकेएमकोजो मेंसा4.2$15वेतनएओओवुसु द्वीप4.9$51वेतन1SCOREDसमग्र प्रदर्शन2CSAT & LOADरेटिंग + मात्रा3REWARDSपे एजेंट बैलेंस
वास्तविक टीम प्रदर्शन स्क्रीन: प्रत्येक एजेंट ने वॉल्यूम पर स्कोर किया और CSAT, एक इनाम संतुलन के साथ आप प्रति पंक्ति भुगतान कर सकते हैं।

पृष्ठ कैसे व्यवस्थित किया जाता है

टीम प्रदर्शन पांच टैब है। प्रत्येक अलग सवाल का जवाब देता है और उन्हें यह आदेश दिया जाता है कि उन्हें कितनी बार जरूरत होती है।

01 कमांड सेंटर

लाइव कतार राज्य, अपने लक्ष्यों के खिलाफ ग्राहक परिणाम, कैसे क्षमता खर्च की गई थी, स्थितियों को एक निर्णय की आवश्यकता होती है और सबूत-समायोजित प्रति-तया सूचकांक।

02 टीममेट

लीडरबोर्ड, मान्यता (सबसे बेहतर और स्ट्रेस), खोजों और किसके लिए ऑप्ट-इन नियंत्रण रैंकिंग देख सकते हैं।

03 गुणवत्ता

स्कोरकार्ड, रिकॉर्ड किए गए मूल्यांकन, मौका-दाचित समीक्षक समझौते, समीक्षक बहाव और सबूत विवाद।

04 पुरस्कार

टोकन मूल्य, भुगतान दावा और शासित अवधि आवंटन: एक वित्त पोषित छत को अधिकृत करें, पूर्वावलोकन की समीक्षा करें, अंतिम रूप दें।

05 इतिहास

कैसे कार्यस्थल समय के साथ चल रहा है: एक चार्ट के साथ प्रवृत्ति मीट्रिक, और एक 28 जब टीम वास्तव में काम कर रही थी तो दिन कवरेज हीटमैप दिखाती है। प्रत्येक कार्ड खुद को तब तक छिपाता है जब तक कि इसे आकर्षित करने के लिए पर्याप्त इतिहास न हो।

Unscored शून्य नहीं है

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

दो सबूत सीमा अलग नौकरियों करते हैं और उन्हें अलग रखने के लायक है। न्यूनतम संभाला फैसला करता है कि क्या कोई व्यक्ति को बिल्कुल रन बनाए रखता है।

💡
प्रत्येक व्यक्ति को उन कार्यक्षेत्रों के लिए दायर किया गया है जिन्हें आप देख रहे हैं और वे समय सीमा चुनते हैं। एक टीममेट दो अलग-अलग कार्यस्थानों में काम करने वाले प्रत्येक में स्वतंत्र रिकॉर्ड होता है। जानने लायक दो अपवाद: एक साइट ग्रुप एक वर्कस्पेस है, इसलिए इसके सदस्य डोमेन को एक साथ मापा जाता है; और सभी साइटें जानबूझकर एक बार सब कुछ मापती हैं।

प्रदर्शन सूचकांक

पांच आयामों का एक समग्र, प्रत्येक को अपने लक्ष्य के खिलाफ मापा जाता है जो आप सहयोगियों के बजाय सेट होते हैं, फिर बीच में खींच लिया जब इसके पीछे सबूत पतले हो जाते हैं। निर्देश नोट करें: समायोजन आंकड़ा को 70_ की ओर ले जाता है, इसलिए एक पतली उत्कृष्ट स्कोर नीचे खींचा गया है और एक पतला खराब स्कोर ऊपर खींचा जाता है। चार बातचीत पर पहला सप्ताह एक बसे फैसले नहीं है। जैसा कि साक्ष्य कच्चे व्यक्ति पर समायोजित आंकड़े अभिसरण करता है।

गुणवत्ता

सत्यापित फीडबैक से ग्राहक संतुष्टि। QA स्कोरकार्ड के परिणामों की तुलना में जहां वे मौजूद हैं और शासित हैं।

उत्तरदायित्व

P50 और P90 प्रतिशतiles पर पहले प्रतिक्रिया समय, अपने लक्ष्य के खिलाफ।

संकल्प

संकल्प समय और एक स्पर्श संकल्प दर।

SLA

SLA के खिलाफ अटैटिनमेंट जिसे आपने कॉन्फ़िगर किया है, साथ ही ऑन-रिस्क और उल्लंघन की गिनती।

स्ट्वर्डशिप

पुनर्खरीद और हस्तांतरण दरें - वह काम जो वापस आता है।

💡
भार विन्यास योग्य और सापेक्ष हैं; उन्हें कुल 100_ नहीं करना पड़ता। मिसिंग साक्ष्य केवल सूचकांक को कम कर सकते हैं, कभी इसे नहीं बढ़ा सकते - पूर्ण कॉन्फ़िगर किए गए वजन नियोजक में रहता है।

क्षमता और उत्पादक समय

अधिभोग, उत्पादक समय, प्रति उत्पादक घंटे और विंडो के ऑनलाइन शेयर को हल किया गया। उपयोग जानबूझकर रिपोर्ट नहीं की गई है: इसे एक विभाजक के रूप में निर्धारित घंटों की आवश्यकता होती है।OpsIQ इसमें कोई रोस्टर या शिफ्ट स्रोत नहीं है, और प्रतिस्थापित डिनोमिनेटर एक अनुमान लगाया जाएगा जो प्रतिशत संकेत पहने हुए होगा। यह उस कारण से जुड़े के साथ अनुपलब्ध के रूप में पढ़ता है।

⚠️
केवल रिपोर्टिंग। अधिभोग कहते हैं कि समय कैसे बिताया गया था, कभी भी यह कितना अच्छा खर्च किया गया था और यह कभी धन नहीं, गेट्स या एक भुगतान का आकार नहीं है। कोई हैंडल-टाइम साक्ष्य के साथ एक टीममेट ने अनुपलब्ध के रूप में पढ़ा, कभी शून्य नहीं।

गुणवत्ता आश्वासन

एक स्कोरकार्ड रूब्रिक समीक्षकों के खिलाफ वास्तविक बातचीत का स्कोर है। केवल एक प्रकाशित संस्करण को मूल्यांकन प्राप्त हो सकता है, और एक नया संस्करण प्रकाशित करना कभी भी फिर से लिखना नहीं है कि पहले ही क्या किया गया था। एक समीक्षा एक वार्तालाप के बारे में सबूत है, किसी व्यक्ति पर फैसले नहीं।

समीक्षक समझौता

एक मौका-संशोधित सांख्यिकी (कोहेन और Fleis' kappa) के रूप में रिपोर्ट की गई, जो कच्चे समझौते का प्रतिशत नहीं है। दो समीक्षकों ने सब कुछ स्वीकार किया कि वह बिना जानकारी ले जाने के समय का 100% से सहमत हो गया।

समीक्षक बहाव

चाहे एक समीक्षक अपने सहयोगियों की तुलना में व्यवस्थित रूप से कठिन या नरम स्कोर करता है, उसी बातचीत पर - बाकी पैनल के खिलाफ तुलना, समय के साथ ट्रेंड नहीं। इसे एक बार से अधिक स्वतंत्र रूप से समीक्षा करने की आवश्यकता होती है।

विवाद

एक टीममेट औपचारिक रूप से उनके बारे में दर्ज किए गए सबूतों को विवादित कर सकता है। जब तक कि यह हल नहीं हो जाता तब तक एक खुला विवाद इनाम-अवधि अंतिमकरण अवरुद्ध करता है।

आत्म-निर्धारणा

मनाही। एक टीममेट खुद का मूल्यांकन नहीं जमा सकता है।

⚠️
एआई-ग्रेड मूल्यांकन भुगतान को प्रभावित नहीं कर सकता जब तक कि एक अंशांकन प्रकाशित हो जाता है, तब तक मॉडल मानव समीक्षकों के साथ न्यूनतम नमूना के खिलाफ मैपा द्वारा मापा जाता है। एक खुला गेट का मतलब है कि मॉडल गिनती करने के लिए लोगों से निकटता से सहमत होता है - इसका मतलब यह नहीं है कि आदर्श सही है।

मान्यता

अकेले रैंकिंग में असफलता मोड हैं: मीट्रिक गेमिंग, बर्नआउट और जो भी पिछले है उसका सार्वजनिक शेमिंग। इसके साथ तीन विकल्प बैठते हैं।

बेहतर

एक टीममेट के पहले रिकॉर्ड के खिलाफ मापा गया, कभी सहयोगियों के खिलाफ नहीं, संकोचन के साथ इसलिए एक छोटे से डिनोमिनेटर जीत नहीं खरीद सकते।

स्टुरी

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

ऑप्ट-इन रैंकिंग

डिफ़ॉल्ट रूप से बंद। एक टीममेट हमेशा अपने स्वयं के सूचकांक को देखता है; चाहे वे सहकर्मी देख रहे हों, कार्यस्थल का निर्णय हो। पूर्ण पदों की बजाय प्रतिशत बैंड प्रकाशित किया जा सकता है।

💡
मान्यता कभी पैसे को छू नहीं देती है। एक स्टेक भुगतान को निधि नहीं दे सकता है या उसे तोड़ सकता है, और सबसे बेहतर पुरस्कार श्रेणी नहीं है।

क्वेस्ट

एक लक्ष्य टीम के लिए काम करता है, एक निश्चित घोषित बार के खिलाफ मापा जाता है बजाय एक दूसरे के खिलाफ - इसलिए हर कोई उसी अवधि में समान खोज को साफ़ कर सकता है।

स्कोप और काडेंस

व्यक्तिगत या टीम; एक-बंद, दोहराने योग्य, या मौसमी जिसमें एक स्पष्ट विंडो है।

मानदंड

वार्तालाप संभाला, रेटिंग प्राप्त हुई, सक्रिय दिन, औसत रेटिंग या नकारात्मक प्रतिक्रिया दर। सभी पूर्ण - कोई मीट्रिक जिसका मूल्य क्या सहयोगियों पर निर्भर करता है।

गुणवत्ता गार्ड

किसी भी खोज पर एक वॉल्यूम लक्ष्य के साथ आवश्यक है। संख्या को हिट करते समय गुणवत्ता फर्श से नीचे गिरती है, इसे पूरा करने की बजाय खोज रोक देती है और यह बिना सोचे समझे दिखाया जाता है।

दोहराएँ सीमा

प्रति अवधि की टोपी, जो धीमी गति से मानदंड द्वारा संचालित होती है, साथ ही एक दोहराने से पहले वैकल्पिक कूलडाउन भी गिन सकता है।

टीम की खोज

प्रति व्यक्ति के साथ साझा प्रगति प्रकाशित नहीं हुई, इसलिए एक टीम खोज लीडरबोर्ड नहीं बन सकती है।

कोचिंग सत्र

एक कोचिंग सत्र एक रिकॉर्ड है, नहीं एक चैट। इसमें एक कोच है, एक टीममेट को प्रशिक्षित किया जा रहा है, जो निर्धारित समय पर सहमत हुए टॉकिंग पॉइंट्स और बाद में लिखे गए सारांश के अनुसार होता है। रियल चैट, टिकट और क्यूए मूल्यांकन को सबूत के रूप में पिन किया जाता है, इसलिए बातचीत उस काम के लिए लंगर रखी जाती है जो वास्तव में याद रखने वाले छाप की बजाय हुई थी।

बात करने वाले बिंदु

सत्र से पहले सहमत हो गए, इसलिए टीममेट एक आश्चर्य में नहीं चल रहा है।

पिन किए गए सबूत

चैट, टिकट और सत्र से जुड़े क्यूए मूल्यांकन। एक पिन एक संदर्भ स्टोर करता है - एक प्रकार और आईडी - एक प्रतिलिपि नहीं है, इसलिए यह हमेशा लाइव रिकॉर्ड पर इंगित करता है।OpsIQ इसे स्वीकार करने से पहले आईडी को सत्यापित नहीं किया जाता है।

कार्य मद

प्रत्येक मालिक और नियत तारीख के साथ। इसकी तिथि से पहले एक आइटम को अतिदेय स्थिति के रूप में दिखाया गया है, किसी को निर्धारित करने की याद नहीं है।

निजी नोट

कोच का अपना नोट। टीममेट को कोचिंग दिया जा रहा है, कभी इसे नहीं पढ़ा सकता - एक एजेंट के रूप में नहीं, प्रबंधक के रूप मे नहीं, मालिक के रूपमें नहीं। वह हर दूसरे की अनुमति से पहले रन करता है और ओवरराइड नहीं किया जा सकता है।

कौन एक सत्र देख सकता है

कोच, टीममेट और किसी के साथ प्रबंधन टीम प्रदर्शन अनुमति है। कोई और नहीं, एक ही विभाग में अन्य टीममेट सहित।

लेखा

हर तरह के निर्माण, अद्यतन, पिन, अनपिन और पूरा होने को जो बदल दिया गया है उसके साथ दर्ज किया जाता है।

💡
कोचिंग जानबूझकर स्कोरिंग से अलग है और पैसे से अलग होती है। एक सत्र किसी के इंडेक्स को नहीं बदलता है, उसे इनाम नहीं देता है और लीडरबोर्ड पर दिखाई नहीं देता।

पुरस्कार और पुरस्कार

रिकॉर्ड की गई गतिविधि आपके द्वारा निर्धारित नकदी मान के साथ टोकन में बदल देती है। भुगतान का रास्ता जानबूझकर धीमा हो जाता है और हर कदम दर्ज होता है।

1
टोकन मूल्य निर्धारित करें

कितने टोकन बराबर हैं, और प्रत्येक गतिविधि के लायक क्या है।

2
वित्त पोषित छत को अधिकृत करें

एक बंद कैलेंडर अवधि के लिए, एक पूर्ण प्रशासक अधिकतम टोकन बताता है जो भुगतान कर सकता है। सेटिंग्स फॉर्म को सहेजना बजट अधिकृत नहीं होता है और यह पहले से ही अधिकृत होने वाली छत को बदल नहीं सकता है

3
पूर्वावलोकन की समीक्षा करें

प्रत्यावर्तन, आरक्षित और किसी को भी कारण से अयोग्य है। ओपन साक्ष्य विवाद इस कदम को अवरुद्ध करते हैं।

4
अंतिम

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

⚠️
पात्रता के लिए सत्यापित ग्राहक प्रतिक्रिया की आवश्यकता होती है। एआई गुणवत्ता स्कोर उस फैसले को पूरक कर सकता है लेकिन कभी इसे प्रतिस्थापित नहीं किया जा सकता है, और Unscored के रूप में दिखाया गया एक टीममेट पात्र नहीं है। प्रत्येक योगदानकर्ता को कैप्ड किया जाता है।25% अवधि के अपने अपेक्षित हिस्से से ऊपर, इसलिए एक बहुत ही उच्च मात्रा महीना पूरे बजट को अवशोषित नहीं कर सकता है।
💡
खाता मालिक पुरस्कारों या टोकन इनामों में कोई हिस्सा नहीं लेता है, जिसमें कोई स्विच नहीं होता: वे वित्त पोषित छत को अधिकृत करते हैं और हर आवंटन को अंतिम रूप देते हैं, और उनके ऊपर उनमें से कोई भी व्यक्ति स्वयं को क्या भुगतान करेगा उसे मंजूरी देने के लिए नहीं है। उनका काम किसी अन्य की तरह बोर्ड पर मापा जाता है, स्कोर किया जाता है और स्थान दिया जाता है।

हर कोई डिफ़ॉल्ट रूप से भाग लेता है, टीम लीड्स और सह-स्वामी शामिल हैं। किसी को बाहर छोड़ने के लिए उन्हें टीम एंड विभागों में खोलें और पुरस्कारों और इनाम विकल्प में भाग लेने का फैसला करें। उनका काम अभी भी स्कोर किया गया है और दिखाया गया है; वे उस बिंदु पर एक उम्मीदवार होने से रोकते हैं, और पहले से ही अंतिम रूप देने की बात नहीं की जाती है।

⚠️
कोई भी अपने लिए पैसा स्वीकार नहीं करता है। क्योंकि जो लोग भाग ले सकते हैं वे लोग भी हैं जो भुगतान को मंजूरी दे सकते हैं।OpsIQ अपने स्वयं के बटुए में एक भुगतान या क्रेडिट को मना कर देता है, अपने खुद के दावे का भुगतान करता है, उस अवधि को अंतिम रूप देता है जिसमें आपको भुगतान किया जाएगा, और आपके द्वारा जीते गए पुरस्कार को फाइनल करता है। एक अन्य पूर्ण प्रशासक या मालिक को ऐसा करना चाहिए। सभी दावों का भुगतान अपने आप ही छोड़ देता है और इसे छोड़ दिया जाता है, विफल नहीं होता है।

कौन देख सकता है और क्या कर सकता है

टीम प्रदर्शन देखें

बोर्ड, लाइव स्टेट, क्षमता और कार्यस्थल के लिए गुणवत्ता अवलोकन।

टीम प्रदर्शन का प्रबंधन

लक्ष्य और स्कोरिंग, निर्यात, क्यूए स्कोरकार्ड और मूल्यांकन, कोचिंग, खोज और पठन जो सहकर्मी-identifying डेटा जैसे कि व्यवस्थापक इतिहास और पुरस्कार इतिहास को पूरा करते हैं।

टीम रिवॉर्ड फाइनेंशियल देखें

शेष, नकदी मान, दावा नोट और भुगतान संदर्भ - प्रदर्शन सबूत से अलग क्योंकि यह पेरोल-adjacent है।

केवल पूर्ण प्रशासक

हर धन उत्परिवर्तन: एक दावे का भुगतान, भुगतान या अस्वीकार करने के लिए, बजट को अधिकृत करना, अंतिम रूप देना, छूटना या आवंटन की प्रतिवर्ती करना और टोकन-टू-कैश दर निर्धारित करना। इन्हें अनुमति देने से वंचित नहीं किया जा सकता है।

इसका उपयोग काफी हद तक किया जाता है

प्रदर्शन सूचकांक प्रबंधन सबूत है, एक स्वचालित रोजगार निर्णय नहीं है। उस पर कार्य करने से पहले स्रोत वार्तालाप को कई बार पीछे छोड़ दें और केस जटिलता, शेड्यूल, छुट्टी और पहुंच की जरूरत का वजन करें। एक सप्ताह में एक सतत पैटर्न की तरह कुछ भी नहीं दिखता है।

सेटिंग्स

आपकी साइटें (कार्य स्थान)

साइट्स (कार्यस्थान) आपको एक से एकाधिक वेबसाइटों का प्रबंधन करने देता है OpsIQ प्रत्येक की अपनी ट्रैकिंग, एआई, कनेक्टर और टीम एक्सेस है।

साइट
आपकी साइटसाइट्स स्क्रीन: वर्कस्पेस की एक सूची, प्रत्येक डोमेन, टाइप, कनेक्टर, स्टेटस बैज और ओपन बटन के साथ-साथ ऐड-न्यू साइट।आपकी साइटकार्यस्थलआपकी साइट+ नई साइट जोड़ेंSshop.acme.comECommerce · Shopify कनेक्टरसक्रियखुलाHhost.acme.comहोस्टिंग · WHMCS कनेक्टरसक्रियखुलाBblog.acme.comसामग्री · कोई कनेक्टरसेटअपखुला1MULTI-SITEप्रति साइट एक कार्यक्षेत्र2ISOLATEDकभी भी मिश्रण नहीं3PER-SITEसेटिंग्स और कनेक्टर्स
वास्तविक साइट्स स्क्रीन: प्रत्येक साइट का अपना पृथक कार्यक्षेत्र (स्वामित्व डोमेन, कनेक्टर और सेटिंग्स) है, जो एक सूची से जोड़ा गया और खोला गया है।

एक साइट बनाना

1
कनेक्टेड साइट्स पर जाएं

कनेक्टेड साइटों को नेविगेट करें।

2
एक नई साइट जोड़ें

नाम, डोमेन और विवरण दर्ज करें।

3
साइट कुंजी कॉपी करें

प्रत्येक साइट को विजेट स्निपेट के लिए एक अद्वितीय कुंजी (site_xxx) मिलती है।

4
स्वतंत्र रूप से कॉन्फ़िगर करें

प्रत्येक साइट में अपना स्वयं का AI, कनेक्टर्स और सेटिंग्स है।

मैं कितने साइटों के लिए हो सकता है?+

आपकी लाइसेंस योजना पर निर्भर करता है। अपने लाइसेंस विवरण की जांच करें।

सेटिंग्स

लाइसेंस और योजना

आपका OpsIQ लाइसेंस नियंत्रण सुविधाएँ, साइट सीमा और एआई क्रेडिट संतुलन।

लाइसेंस
लाइसेंस केंद्रOpsIQ लाइसेंस केंद्र: योजना, एक सक्रिय स्थिति बैज, मास्केड लाइसेन्स कुंजी, एक एआई-क्रेडिट मीटर और एक बल-रिमोट-चेक बटन।लाइसेंस केंद्रकार्यस्थलOpsIQ लाइसेंस केंद्रयोजनाव्यापारस्थितिसक्रियकुंजीOPSIQ-••••-••••-2F9Cएआई क्रेडिट$68 बायींफोर्स रिमोट चेक1PLAN & STATUSसक्रिय, एक नज़र में2KEYस्थानीय रूप से HMAC-cached3CREDITSएआई बैलेंस और सीमाएं
रियल लाइसेंस सेंटर: आपकी योजना और सक्रिय स्थिति, मास्क्ड कुंजी, आपका एआई-क्रेडिट संतुलन, और एक क्लिक बल फिर से सत्यापित है।
लाइसेंस कुंजी

सेटिंग्स> लाइसेंस में प्रवेश करें। OpsIQ लाइसेंस सर्वर के खिलाफ मान्य।

लाइसेंस दिल की धड़कन / वैधता

OpsIQ सामान्य रूप से इसकी हस्ताक्षरित स्थानीय लाइसेंस कैश को पढ़ता है और जब आवश्यक हो तो मान्यता ताज़ा करता है। तत्काल परिणाम की आवश्यकता होने पर फोर्स रिमोट चेक का उपयोग करें; निदान पहचान DNS, HTTPS या सर्वर समय की समस्याओं।

योजना

निर्धारित करने में उपलब्धता और सीमा होती है।

साइट की सीमा

कार्यस्थानों की अधिकतम संख्या।

एआई क्रेडिट

यदि आप प्रबंधित AI का उपयोग करते हैं तो आपका क्रेडिट बैलेंस यहां दिखाया गया है।

समाप्ति

सेवा रुकावट से बचने के लिए समाप्ति से पहले नवीनीकृत करें।

जब मेरी लाइसेंस समाप्त हो जाती है तो क्या होता है?+

ट्रैकिंग, टिकट और CRM जारी है। एआई में नवीनीकरण तक रोकें। डेटा संरक्षित है।

सेटिंग्स

प्रोफ़ाइल, पासवर्ड और दो कारक प्रमाणीकरण

प्रत्येक प्रशासक अपनी पहचान, कार्य वरीयताओं, पासवर्ड और दो कारक प्रमाणीकरण बनाए रख सकता है।

उत्पाद स्क्रीन
मेरी प्रोफ़ाइलप्रोफ़ाइल पृष्ठ व्यक्तिगत विवरण, भाषा/समयक्षेत्र, अवतार/signature, पासवर्ड और दो कारक प्रमाणीकरण को अलग करता है।मेरी प्रोफ़ाइलकार्यस्थलप्रोफाइलपूराTIMEZONEयूरोप/एथेंस2FAसक्षमलाइव WORKSPACEनाम और ईमेलव्यक्तिगत पहचानसंपादित करेंभाषा और समयक्षेत्रतारीख और इंटरफ़ेससंपादित करेंअवतार और हस्ताक्षरउत्तरदायित्व और टीम की उपस्थितिसंपादित करेंपासवर्ड और 2FAलेखा सुरक्षासुरक्षित1UPDATE PROFILEपहचान और स्थानीय2SECURE LOGINपासवर्ड और 2FA3SAVEइस व्यवस्थापक को लागू करें
प्रोफ़ाइल पृष्ठ व्यक्तिगत विवरण, भाषा/समयक्षेत्र, अवतार/signature, पासवर्ड और दो कारक प्रमाणीकरण को अलग करता है।

प्रोफ़ाइल सेटिंग्स में हस्ताक्षरित व्यवस्थापक से संबंधित हैं और वर्कस्पेस ब्रांडिंग को नहीं बदल सकते हैं। एक अद्वितीय पासवर्ड का उपयोग करें और दो-फैक्टर प्रमाणीकरण सक्षम करें। ईमेल या प्रमाणीकरण सेटिंग बदलने के लिए पुनः सत्यापन या एक ताजा साइन-इन की आवश्यकता हो सकती है।

सेटिंग्स

अधिसूचना प्राथमिकता

अधिसूचना प्राथमिकता नियंत्रण जो परिचालन घटनाएं उत्पाद में या ईमेल द्वारा प्रशासक तक पहुंचती हैं।

उत्पाद स्क्रीन
अधिसूचना प्राथमिकताअधिसूचना पृष्ठ प्रति-ईवेंट इन-ऐप और ईमेल विकल्प प्रदान करता है साथ ही हाल की अधिसूचना सूची भी प्रदान करता हैं।अधिसूचना प्राथमिकताकार्यस्थलIN-APPपरईमेलचयनात्मकUNREAD4लाइव WORKSPACEटिकट सौंपाइन-ऐप तथा ईमेलपरग्राहक ने जवाब दियाअनुप्रयोग मेंपरSLA जोखिमइन-ऐप तथा ईमेलपरएआई अनुमोदनइन-ऐप तथा ईमेलपर1CHOOSE EVENTSकेवल उपयोगी संकेत2CHOOSE CHANNELइन-ऐप या ईमेल3समीक्षाहाल की अधिसूचनाएं
अधिसूचना पृष्ठ प्रति-ईवेंट इन-ऐप और ईमेल विकल्प प्रदान करता है साथ ही हाल की अधिसूचना सूची भी प्रदान करता हैं।

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

सेटिंग्स

सुरक्षा अवलोकन

सुरक्षा अवलोकन ब्लॉक, लॉगिन हमलों, धमकी सत्र, सुरक्षा रुझान और घटना अखंडता का आकलन करने के लिए पहली स्क्रीन है।

उत्पाद स्क्रीन
सुरक्षा अवलोकनसुरक्षा अवलोकन वर्तमान जोखिम कार्ड को जोड़ती है, एक 14 दिन की प्रवृत्ति, हमलावर सूची, घटना फ़ीड और अखंडता स्थिति।सुरक्षा अवलोकनकार्यस्थलACTIVE BLOCKS18FAILED LOGINS42HIGH THREAT3लाइव WORKSPACEऑटो अवरुद्ध7-दिन कुल और स्रोतरुझाननवीनतम हमलावरIP, देश और कारणसमीक्षासुरक्षा कार्यक्रमजोखिम और कार्रवाई परिणामफ़ीडहैश-चेन अखंडताछेड़छाड़-अलग घटना श्रृंखलामान्य1READ HEADLINEवर्तमान जोखिम2OPEN EVIDENCEहमलावरों और घटनाओं3कार्यब्लॉक, जांच, निर्यात
सुरक्षा अवलोकन वर्तमान जोखिम कार्ड को जोड़ती है, एक 14 दिन की प्रवृत्ति, हमलावर सूची, घटना फ़ीड और अखंडता स्थिति।

ट्रेज के लिए हेडलाइन कार्ड का उपयोग करें, फिर संबंधित लेखा परीक्षा, विफल लॉगिन, अवरुद्ध खोलें IPs या JavaScript रिकॉर्ड स्तर के काम के लिए त्रुटि पृष्ठ। 14-दिन की प्रवृत्ति एक एकल स्पाइक से अधिक उपयोगी है। स्थायी ब्लॉक लागू होने से पहले आगंतुक, अनुरोध और प्रमाणीकरण सबूत के खिलाफ उच्च स्तरीय सत्रों की जांच की जानी चाहिए।

सेटिंग्स

छेड़छाड़-अलग ऑडिट लॉग

लेखा परीक्षा लॉग रिकॉर्ड जो क्या किया, कब, किस वस्तु पर जोखिम स्तर और यह सफल रहा है कि क्या उस पर आपत्ति करता है।

उत्पाद स्क्रीन
गतिविधि लेखा परीक्षालेखा परीक्षा पृष्ठ कार्रवाई, अभिनेता, जोखिम, लक्ष्य और परिणाम के साथ खोज योग्य छेड़छाड़-अलग गतिविधि प्रदान करता है।गतिविधि लेखा परीक्षाकार्यस्थलघटना18.2kHIGH RISK21INTEGRITYमान्यलाइव WORKSPACEकनेक्टर सक्षम[email protected] · ShopifyसफलताAPI कुंजी रद्द करना[email protected] · कुंजी 19सफलतासेटिंग्स बदल गया[email protected]· AIसफलताअनुमति देना इनकार कर दिया[email protected] · निर्यातअवरुद्ध1FILTERएक्शन, जोखिम और अभिनेता2निरीक्षणलक्ष्य और परिणाम3EXPORTCSV या JSON
लेखा परीक्षा पृष्ठ कार्रवाई, अभिनेता, जोखिम, लक्ष्य और परिणाम के साथ खोज योग्य छेड़छाड़-अलग गतिविधि प्रदान करता है।

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

संचालन

निदान

निदान के लिए उपप्रणाली की जाँच सादे अंग्रेजी स्वास्थ्य परिणामों और अगले कार्यों को निर्देशित करने में बदल जाती है।

उत्पाद स्क्रीन
निदानविजेट, एआई, टिकट, एकीकरण, साइट इंटेलिजेंस, पृष्ठभूमि कार्यों के लिए निदान समूह स्वास्थ्य जांचCRMस्वचालन, लाइसेंसिंग और भंडारण।निदानकार्यस्थलस्वास्थ्य13WARNING2एफएआईएलडी1लाइव WORKSPACEविजेटबीकन तथा चैट अंत बिन्दुस्वस्थपृष्ठभूमि कार्यक्रोन दिल की धड़कन देरचेतावनीईमेलआउटबाउंड टेस्ट विफलविफलकनेक्टर्सरजिस्ट्री और घटना का सेवनस्वस्थ1REFRESHवर्तमान जांच चलाएं2OPEN WARNINGसबूत पढ़ें3FIX AND RETESTवसूली की पुष्टि करें
विजेट, एआई, टिकट, एकीकरण, साइट इंटेलिजेंस, पृष्ठभूमि कार्यों के लिए निदान समूह स्वास्थ्य जांचCRMस्वचालन, लाइसेंसिंग और भंडारण।

पेज साइट स्पीड, रैंक / कीवर्ड / बैकलिंक/स्थानीय डेटा, एआई और एक्शन गेटवे, टिकट, क्रॉलर / ऑडिट्स, एकीकरण / निकास सेवन, पृष्ठभूमि कार्यों की जांच करता है।CRMस्वचालन, लाइसेंस, विजेट और संबंधित उत्पाद सेवाएं। यह जानबूझकर कच्चे रहस्यों को उजागर करने के बजाय ऑपरेटर-पढ़ने योग्य कारणों की रिपोर्ट करता है।

एक परिवर्तन के बाद, रिफ्रेश और प्रभावित उपप्रणाली की पुष्टि स्वस्थ हो जाती है। एक ग्रीन डायग्नोस्टिक्स पेज आवश्यक है लेकिन लॉन्च के लिए पर्याप्त नहीं; प्री-लॉन्च चेकलिस्ट को भी पूरा करें।

सेटिंग्स

सुरक्षा और पहुंच

OpsIQ अपने व्यवस्थापक, डेटा और सुरक्षा के लिए कई सुरक्षा परतें शामिल हैं। API पहुँच।

यह कैसे काम करता है
सुरक्षा और पहुंचएक सुरक्षा ढाल सक्षम नियंत्रण के बगल में: दो कारक, OIDC SSO, SCIM 2.0, OAuth2 PKCE, सीएसआरएफ/सीएसपी, IP फायरवॉल, दर सीमा और एक गुप्त तिजोरी।दो कारक (टीओटीपी)OIDC SSOSCIM 2.0OAuth2 PKCEसीएसआरएफ + सीएसपीIP फ़ायरवॉलदर सीमाराज वॉल्ट
सुरक्षा

सुरक्षा सुविधाएँ

व्यवस्थापक प्रमाणीकरण

वैकल्पिक 2FA के साथ ईमेल / पासवर्ड।

लॉगइन तालाबंद

बहुत असफल प्रयासों के बाद अस्थायी ताला।

IP अवरोधन

ब्लॉक IPs या CIDR ट्रैक किए गए साइटों तक पहुंचने से लेकर है।

थ्रीट स्कोरिंग

व्यवहार आधारित खतरे के स्कोर। उच्च-थ्रीट आगंतुक स्वतः अवरुद्ध हो सकते हैं।

HTTPS प्रवर्तन

सभी कनेक्शनों के लिए आवश्यक है HTTP HTTPS पर रीडायरेक्ट करता है।

HSTS हेडर

सख्त-ट्रांसपोर्ट-सुरक्षा डाउनग्रेड हमलों को रोकता है।

सीएसआरएफ सुरक्षा

सभी व्यवस्थापक रूपों में सीएसआरएफ टोकन शामिल हैं।

XSS सुरक्षा

सभी उपयोगकर्ता इनपुट बच गया है। सीएसपी हेडर स्क्रिप्ट निष्पादन को प्रतिबंधित करते हैं।

एसएसआरएफ संरक्षण

आउटबाउंड वेबहुक ब्लॉक निजी / आंतरिक IP पता

अनुशंसित सेटअप

1
2FA

सभी व्यवस्थापक खातों के लिए।

2
मजबूत पासवर्ड

न्यूनतम 12 वर्ण, मिश्रित।

3
लेखा

पूर्व टीम के सदस्यों के लिए पहुंच निकालें।

4
मॉनिटर असफल लॉगिन

साप्ताहिक चेक करें।

5
अद्यतन रखें

तुरंत सुरक्षा पैच के लिए अद्यतन लागू करें।

सेटिंग्स

भूमिकाओं और अनुमतियों

रोल-आधारित एक्सेस कंट्रोल आपको यह नियंत्रित करने देता है कि प्रत्येक टीम के सदस्य क्या कर सकते हैं।

भूमिकाओं और अनुमतियों
भूमिकाओं और अनुमतियोंएक भूमिका-by-capability मैट्रिक्स: मालिक सब कुछ है; पूर्ण व्यवस्थापक बिलिंग और खतरे का क्षेत्र की कमी है; एजेंट केवल टिकट दायर किया गया है।भूमिकाओं और अनुमतियोंकार्यस्थलसेटिंगबिलिंगरेंजरटिकटमालिकपूर्ण व्यवस्थापकएजेंटscoped13 ROLESमालिक पूर्ण व्यवस्थापक2GRANULARप्रति पृष्ठ + प्रति-विभाग3DEFAULT-DENYभूल गए मार्ग अवरुद्ध
एक नज़र में भूमिका मैट्रिक्स: मालिक को सब कुछ मिलता है, फुल एडमिन सब कुछ लेकिन बिलिंग और खतरे का क्षेत्र एजेंट केवल उनके दायरे वाले टिकट हैं।

डिफ़ॉल्ट भूमिका

मालिक

लाइसेंस, खतरे का क्षेत्र और स्थापना प्रबंधन सहित सब कुछ।

पूर्ण व्यवस्थापक

लाइसेंस और खतरे के क्षेत्र को छोड़कर सब कुछ।

एजेंट

असाइन किए गए प्रस्थान टिकट और चैट का जवाब, विश्लेषण देखें। कोई सेटिंग्स, टीम या सुरक्षा पहुंच नहीं है।

क्या मैं कस्टम भूमिकाओं का निर्माण कर सकता हूँ?+

वर्तमान में नहीं। तीन अंतर्निहित भूमिकाओं के साथ-साथ विभाग असाइनमेंट दानेदार नियंत्रण देता है।

सेटिंग्स

ब्लॉक IPs

प्रबंधित करें IP पते अपने ट्रैक किए गए साइटों तक पहुंचने से अवरुद्ध है।

ब्लॉक IPs
ब्लॉक IPsअवरुद्ध IPs स्क्रीन: एक ब्लॉक-एन-IPप्रत्येक प्रविष्टि, दिनांक, कारण और एक अनब्लॉक बटन के साथ एक ब्लॉक एड्रेस टेबल के बगल में /CIDR फॉर्म।ब्लॉक IPsकार्यस्थलब्लॉक a IP /CIDR203.0.113.0/24कारण (वैकल्पिक)ब्लॉकब्लॉक किए गए पते203.0.113.9जून 12 · ब्रूट फोर्सअनवर45.12.0.0/16जून 10 · स्पैमअनवर102.89.6.2जून 9 · दुरुपयोगअनवर1ब्लाकIP या CIDR रेंज2LISTकौन और कब, कारण के साथ3UNBLOCKएक क्लिक
असली अवरुद्ध IPs स्क्रीन: एक एकल ब्लॉक IPया एक CIDR रेंज, और सूची का प्रबंधन, प्रत्येक अपनी तारीख, कारण और एक क्लिक अनब्लॉक के साथ।

कैसे ब्लॉक करें

1
सुरक्षा के लिए जाओ > अवरुद्ध IPs

2
एक IP या CIDR श्रेणी जोड़ें

उदाहरण: 203.0.113.42 या 203.0.113.0/24

3
कारण जोड़ें

क्यों: स्पैम, दुरुपयोग, scraping, आदि

क्या ब्लॉक वैध उपयोगकर्ताओं को प्रभावित करेगा?+

यदि ग्राहक कॉर्पोरेट शेयर करते हैंIP या वीपीएन, अवरुद्ध है किIP हर किसी को ब्लॉक करता है। संकीर्ण ब्लॉकों का उपयोग करें।

सेटिंग्स

लॉगइन असफल

सभी असफल लॉगिन प्रयास आपके OpsIQ Admin के लिए।

लॉगइन असफल
लॉगइन असफलअसफल-लॉगिन स्क्रीन: खातों की एक तालिका /IPs असफलता की गिनती, अंतिम प्रयास का समय और प्रति पंक्ति एक ब्लॉक बटन के साथ।लॉगइन असफलकार्यस्थलअसफल लॉगिन प्रयासखाता / IPएफएआईएलडीलेटेस्टकार्रवाई[email protected] · 41.62.10.472 मिनट पहलेब्लॉक[email protected] · 102.89.6.2318 मिनट पहलेब्लॉकअज्ञात 45.12.9.71226 मिनट पहलेब्लॉक[email protected] · 88.21.4.921h बहुत पहलेब्लॉक1WATCHअसफल लॉगिन प्रयास2COUNTSप्रति खाता / IP_3कार्यपंक्ति से ब्लॉक
वास्तविक विफल लॉगिन स्क्रीन: हर खाता /IP इसके असफल होने की गिनती और आखिरी प्रयास के साथ, पंक्ति से सीधे एक ब्रूट-फोर्स स्रोत को ब्लॉक करें।

प्रत्येक प्रविष्टि दिखाता है

तारीख/समय

जब प्रयास हुआ।

ईमेल

ईमेल पता इस्तेमाल किया।

IP पता

प्रयास का स्रोत।

देश

भौगोलिक स्थान।

कारण

गलत पासवर्ड, लॉक या नहीं मिला।

चेतावनी संकेत

कई प्रयास, समान ईमेल

पासवर्ड अनुमान लगाना सुनिश्चित करें कि 2FA सक्षम है।

कई प्रयास, विभिन्न ईमेल

स्वचालित हमला। स्रोत को ब्लॉक करें IP

अद्वैतिक देश

यदि आपकी टीम स्थानीय है, तो विदेशी प्रयास संभावित हमले हैं।

सेटिंग्स

एआई सुरक्षा विश्लेषक

सुरक्षा पृष्ठों पर एक ऑप्ट-इन विश्लेषक परत: फैसले, घटना संक्षेप, दैनिक पाचन, साप्ताहिक मुद्रा जाँच, सुरक्षा पूछो, और 0-टोकन ब्लॉक नीतियां। यह आगंतुक अनुरोध पथ में कभी नहीं चलता है।

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

क्या यह जोड़ता है

Verdict चिप्स + Explain

अवरुद्ध IPs और Failed लॉगिन पंक्तियाँ आत्मविश्वास स्कोर के साथ एक सौम्य / संदिग्ध / शत्रुतापूर्ण चिप दिखाती हैं। समझाना तर्क, तथ्यों का उपयोग करता है, और एक क्लिक ब्लॉक / रिलीज कार्रवाई को खोलता है। कैश्ड 24h तो फिर से देखने एक IPमुक्त है।

घटना ब्रीफ

एक घटना में संबंधित घटनाओं क्लस्टर (लॉगिन लहर,) URL एक सादे अंग्रेजी समयरेखा के साथ स्कैन, ऑटो-ब्लॉक फट) और अगले कदम की सिफारिश की। चल रहे हमले उसी घटना में बदल जाते हैं।

दैनिक पाचन

प्रति दिन एक बार फिर से कैप: कल अपने बेसलाइन, ब्लॉक, घटनाओं और एकल चीज़ को करने के लिए बनाम। शांत दिन शून्य टोकन पर एक निश्चित सभी स्पष्ट भेजते हैं।

साप्ताहिक मुद्रा जाँच

एक सोमवार सख्त चेकलिस्ट (2FA अंतराल, लॉकआउट थ्रेसहोल्ड बनाम रियल अटैक वॉल्यूम, अलर्ट ऑफ) जिसमें प्रति आइटम गंभीरता, प्रयास और सटीक निर्धारण शामिल है।

सुरक्षा

सुरक्षा अवलोकन पर एक प्रश्न बॉक्स जो आपके लाइव सिक्योरिटी स्टेट के उत्तर देता है। डीप सर्वर प्रश्नों को अनुमान लगाने की बजाय व्यवस्थापक इंजीनियर चैट में सौंप दिया जाता है।

नीति प्रस्तावों + ऑटोपायलट

विश्लेषक कंक्रीट ब्लॉक नियमों को लगभग / डिमिस कार्ड के रूप में प्रस्तावित करता है; अनुमोदित नियम शून्य टोकन पर लाइव हिट काउंटर के साथ लागू होते हैं। वैकल्पिक ऑटोपिलोट केवल सुरक्षित नियमों को स्वचालित रूप से मंजूरी देता है।

सेटिंग्स

एआई सुरक्षा विश्लेषक (security_ai_enabled)

मास्टर स्विच। सक्षम करता है verdict चिप्स, समझाओ और सुरक्षा पूछो। केवल अस्पष्ट IPs मॉडल तक पहुंचें, एक कॉल में बैचित करें।

घटना ब्रीफ (security_ai_incidents)

क्लस्टर घटनाओं में घटनाओं की घटनाओं को दर्शाता है और प्रत्येक नई कहानी लिखता है। मौजूदा घंटे सुरक्षा क्रोन पर चलता है।

दैनिक पाचन (security_ai_digest)

एक सुरक्षा प्रति दिन घंटी और अवलोकन पर फिर से कब्जा कर लिया। शांत दिनों में कुछ भी नहीं खर्च होता है।

साप्ताहिक मुद्रा जाँच (security_ai_posture)

अवलोकन पर सोमवार सख्त चेकलिस्ट। चेकलिस्ट पूरी तरह से निर्धारित है।

पॉलिसी ऑटोपिलॉट (सुरक्षा_ai_autopilot)

विश्लेषक ने अपने सुरक्षित प्रस्तावों को बिना किसी शर्त के सक्रिय करने की अनुमति दी: केवल समय-सीमित ब्लॉक, एकल IPs या रेंज कोई व्यापक से /24, कभी साझा / मोबाइल / प्राइवेट, कैप्ड 10 प्रति घंटे, हमेशा लेखा परीक्षा और निष्क्रिय।

💡
प्रत्येक कॉल को AI Config → कॉस्ट गार्डराइल्स (डिफ़ॉल्ट 300k टोकन) में अपनी मासिक कैप के साथ सिक्योरिटी_ई को टैग किया गया है। यदि टोपी मारा जाता है, तो इसमें अवधी पठनीयता को गिरावट आती है। ब्लॉकिंग, लॉकआउट और अलर्ट कभी भी इस बजट पर निर्भर नहीं होते हैं। विश्लेषक डेटा को कभी भी हटा नहीं सकते, सेटिंग्स बदल सकते हैं, ऑडिट लेजर को स्पर्श कर सकते हैं या स्थायी प्रतिबंध बना सकते हैं।
संचालन

क्रोन और स्वचालन

OpsIQ ईमेल मतदान, टिकट स्वचालन, विश्लेषण रोलअप, अवधारण, AI कतार, CRM कार्य, रिपोर्ट और कनेक्टर नौकरियों को चलाने के लिए एक उत्पाद शेड्यूलर का उपयोग करता है।

उत्पाद स्क्रीन
क्रोन और स्वचालनएक उत्पाद क्रोन प्रविष्टि दिल की धड़कन की आपूर्ति करती है; OpsIQ यह तय करता है कि कौन से आंतरिक नौकरियां देय हैं।क्रोन और स्वचालनसर्वरहार्टबेतहर मिनटRUNNERcron/all.phpHEALTHसेटिंग्सलाइव WORKSPACEएकीकृत उत्पाद धावकopsiq/cron/all.phpआवश्यकटिकट और ईमेल कतारलघु निर्धारित कार्यसक्रियएनालिटिक्स और रिटेंशनआंतरिक तालअनुसूचितकनेक्टर ग्राहकघोषित क्रोन घटनाओंस्कोप1INSTALL ONE LINEहर मिनट उत्पाद शेड्यूलर चलाएं2CHECK CRON SETUPCLI दिल की धड़कन को पुष्टि करें3USE DIAGNOSTICSदेर से या असफल काम
एक उत्पाद क्रोन प्रविष्टि दिल की धड़कन की आपूर्ति करती है; OpsIQ यह तय करता है कि कौन से आंतरिक नौकरियां देय हैं।

आवश्यक उत्पाद क्रोन प्रविष्टि

उसी सर्वर और PHP वातावरण के लिए इस एकल पंक्ति को क्रोनाब में जोड़ें जो चलाता है OpsIQ:

OpsIQ उत्पाद crontab प्रविष्टि
* * * * * php /path/to/opsiq/opsiq/cron/all.php >> /tmp/opsiq-cron.log 2>&1

बदलें /path/to/opsiq स्थापना जड़ के साथ मेजबान को एक की आवश्यकता होने पर पूर्ण PHP CLI पथ का उपयोग करें, उदाहरण के लिए /usr/bin/php8.4.

शीर्ष स्तर का उपयोग न करें /cron.php उत्पाद कार्य के लिए। इस प्रस्ताव में जो धावक इस पुस्तिका के बाहर एक अलग गैर-उत्पाद सेवा से संबंधित है। OpsIQ उत्पाद धावक है opsiq/cron/all.php.

एकीकृत शेड्यूलर ड्राइव क्या है

टिकट और एआई कतार

प्रक्रिया के कारण ऑटो-रिप्ली, एस्केलेटर, अनुमोदन और अन्य quieued उत्पाद कार्य।

Inbound ईमेल

पोल्स ने मेलबॉक्स को कॉन्फ़िगर किया जहां मतदान चयनित सेवन विधि है।

विश्लेषण और सत्र

जब वे देय होते हैं तो सत्रों को इकट्ठा करना और निर्धारित समुच्चय को ताज़ा करना।

CRM और सगाई

रन स्कोरिंग, लाइफसाइकल, वर्कफ़्लो, अभियान और अनुसूचित रिपोर्ट कार्य जो सक्षम हैं।

अवधारण और रखरखाव

कारण सफाई, संग्रह, समाप्ति और अखंडता कार्य करता है।

कनेक्टर्स

केवल स्थापित, सक्षम और कॉन्फ़िगर करने वाले कनेक्टर्स के लिए कनेक्टर क्रोन सब्सक्राइबर और मतदान को अलग करें।

Cron सत्यापित करें

  1. खुला सेटिंग्स - क्रोन सेटअप और उत्पाद धावक की पुष्टि मौजूद है।
  2. उपयोग अब चलायें एक बार, फिर व्यवस्थापक और मतदान दिल की धड़कन अद्यतन की पुष्टि करें।
  3. चेक निदान देर से दिल की धड़कन, पीएचपी सीएलआई, डेटाबेस या फ़ाइल-पैथ समस्या के लिए।
  4. निरीक्षण /tmp/opsiq-cron.log या लॉग पथ जिसे आप चुना करते हैं जब एक मैनुअल रन विफल हो जाता है।

कनेक्टर हैंडलर को शॉर्ट, आइडमेटेंट और वर्कस्पेस-स्किप्ड रखें। बैच लंबे सिंक्रनाइज़ेशन और एक कर्सर / चेकपॉइंट स्टोर करें ताकि अगले रन सुरक्षित रूप से जारी रह सकें।

🚫
जब उत्पाद क्रॉन रुक जाता है, तो समय-आधारित OpsIQ काम बंद हो जाता है या फिर देर से हो जाती है हालांकि सामान्य व्यवस्थापक पृष्ठ अभी भी लोड हो सकते हैं।
संचालन

होस्ट तैनाती संचालन

A होस्ट OpsIQ तैनाती उसी उत्पाद स्क्रीन और वर्कफ़्लो का उपयोग करती है जबकि होस्टिंग ऑपरेटर सर्वर परत को प्रबंधित करता है। वाणिज्यिक साइन-अप, योजना, बिलिंग और खाता-पोर्टल प्रक्रियाएं इस पुस्तिका के बाहर हैं।

उत्पाद स्क्रीन
होस्ट तैनातीहोस्ट किए गए ऑपरेशन में परिवर्तन जो बुनियादी ढांचे को बनाए रखता है; यह नहीं बदलता कि ग्राहक कैसे उपयोग करते हैं OpsIQ.होस्ट तैनातीकार्यस्थलPRODUCT UIसमान OpsIQINFRASTRUCTUREऑपरेटर-प्रबंधितWORKSPACE DATAपृथकलाइव WORKSPACEआवेदन रनटाइमPHP, वेब सर्वर और डेटाबेसप्रबंधितउत्पाद क्रोनहोस्टिंग ऑपरेटर द्वारा अनुसूचितसत्यापितबैकअप और अद्यतनप्रदाता नीति और सबूतसमीक्षाOpsIQ सेटिंग्ससाइट्स, एआई, टीम और कनेक्टरआपकी टीम1OPERATE OPSIQ NORMALLYउसी उत्पाद नेविगेशन का उपयोग करें2VERIFY SERVICE HEALTHनिदान और स्थिति सबूत का उपयोग करें3KNOW RESPONSIBILITYहोस्टिंग कार्य से अलग उत्पाद सेटिंग्स
होस्ट किए गए ऑपरेशन में परिवर्तन जो बुनियादी ढांचे को बनाए रखता है; यह नहीं बदलता कि ग्राहक कैसे उपयोग करते हैं OpsIQ.

क्या होस्टिंग ऑपरेटर सामान्य रूप से प्रबंधन करता है

  • वेब सर्वर, पीएचपी रनटाइम, डेटाबेस सेवा, TLS और भंडारण।
  • एकीकृत उत्पाद क्रोन और इसके सर्वर-स्तर लॉग।
  • अनुप्रयोग अद्यतन, बुनियादी ढांचा निगरानी और होस्टिंग समझौते द्वारा परिभाषित बैकअप प्रक्रिया।

What is a OpsIQ admin अभी भी प्रबंधन करता है

  • वेबसाइट और विजेट इंस्टॉलेशन, एआई सेटिंग्स, ज्ञान, मेलबॉक्सों और ग्राहक सहायता कार्यप्रवाह।
  • टीम एक्सेस, विभागों, सुरक्षा नियंत्रण, API कुंजी, कनेक्टर्स, स्वचालन और डेटा प्रतिधारण सेटिंग्स।
  • निदान, लेखा परीक्षा लॉग, कनेक्टर परीक्षण और वास्तविक अंत से अंत की जाँच के माध्यम से उत्पाद सत्यापन।

परिचालन जांच

यह नहीं मानते कि एक प्रबंधित सेवा का मतलब है कि हर उत्पाद एकीकरण स्वस्थ है। होस्टिंग ऑपरेटर के साथ नवीनतम बैकअप साक्ष्य और प्रतिधारण नीति की पुष्टि करें, और उपयोग करें OpsIQ परिवर्तन के बाद निदान DNS ईमेल, एआई प्रदाताओं, वेबसाइटों या कनेक्टर्स।

यह अनुभाग केवल उत्पाद संचालन को कवर करता है। वाणिज्यिक ऑनबोर्डिंग, सदस्यता, बिलिंग और ग्राहक-खाता प्रशासन बाहर रहता है OpsIQ हैंडबुक

संचालन

स्वयं-होस्टिंग OpsIQ

एक आत्म-होस्ट OpsIQ स्थापना आपके नियंत्रण में बुनियादी ढांचे पर चलती है। आप रनटाइम, डेटाबेस के लिए जिम्मेदार हैं। TLS, उत्पाद क्रोन, बैकअप, अद्यतन और निगरानी।

उत्पाद स्क्रीन
स्व-होस्टिंगस्व-होस्टिंग बुनियादी ढांचा नियंत्रण देता है और आपकी टीम को हर ऑपरेटिंग निर्भरता के लिए जिम्मेदार बनाता है।स्व-होस्टिंगसर्वरPHP8.4+DATABASEMySQL 5.7+SCHEDULERहर मिनटलाइव WORKSPACEरनटाइम एक्सटेंशनकर्ल, pdo_mysql, mbstring, jsonआवश्यकअतिरिक्त विस्तारxml_, openssl, ज़िप, intl, gdआवश्यकडेटाबेस विकल्पMariaDB 10.3+ InnoDB के साथसमर्थितपरिवहनHTTPS और बाहरी प्रदाता का उपयोगसत्यापित1PREPARE THE SERVERमैच रनटाइम आवश्यकताओं2INSTALL AND CONFIGUREएक समर्पित डेटाबेस और HTTPS का उपयोग करें3ADD PRODUCT CRONरन opsiq/cron/all. php
स्व-होस्टिंग बुनियादी ढांचा नियंत्रण देता है और आपकी टीम को हर ऑपरेटिंग निर्भरता के लिए जिम्मेदार बनाता है।

न्यूनतम सॉफ्टवेयर अनुबंध

PHP

PHP 8.4 या नया। आवश्यक विस्तार: कर्ल, pdo_mysql, mbstring, json, xml, openssl, ज़िप, intl और gd.

डेटाबेस

MySQL 5.7+ MariaDB 10.3+ InnoDB का उपयोग करके। एक समर्पित डेटाबेस और कम से कम प्रवीणीकृत एप्लिकेशन उपयोगकर्ता बनाएं।

वेब सर्वर

अपाचे या Nginx के लिए कॉन्फ़िगर किया गया OpsIQ फ्रंट कंट्रोलर, स्थैतिक संपत्ति और आवश्यक फिर से लिखना।

एचटीटीपी://www. youtu/sult-tweet

व्यवस्थापक सत्र, विजेट यातायात के लिए आवश्यक है, API कुंजी, वेबहुक और प्रदाता कॉल।

आउटबाउंड एक्सेस

Allow DNS and HTTPS access to the AI, email, connector and licence endpoints you actually enable.

फ़ाइल एक्सेस

वेब और सीएलआई उपयोगकर्ताओं को एप्लिकेशन फ़ाइलों को पढ़ने में सक्षम होना चाहिए और केवल दस्तावेजी रनटाइम / स्टोरेज स्थानों पर लिखना होगा।

क्रोन

भागो OpsIQ उत्पाद शेड्यूलर हर मिनट उसी एप्लिकेशन कॉन्फ़िगरेशन और डेटाबेस एक्सेस के साथ वेब प्रक्रिया के रूप में।

स्थापना अनुक्रम

  1. इच्छित दस्तावेज़ जड़ को रिलीज अपलोड करें और आपूर्ति की गई निर्देशिका संरचना को संरक्षित करें।
  2. डेटाबेस और एप्लिकेशन उपयोगकर्ता बनाएं, फिर डेटाबेस में प्रवेश करें, कैनोनिकल URL और लाइसेंस सेटिंग्स।
  3. इंस्टॉलर/सेटअप प्रवाह को चलाएं और पहला मालिक खाता बनाएं।
  4. HTTPS को सक्षम करें और पुनर्निर्देशित, कुकीज़ और सार्वजनिक विजेट / सत्यापित करेंAPI पथ।
  5. एकीकृत जोड़ें OpsIQ उत्पाद क्रोन:
स्व-होस्टेड उत्पाद क्रोन
* * * * * php /path/to/opsiq/opsiq/cron/all.php >> /tmp/opsiq-cron.log 2>&1
  1. ओपन सेटिंग्स - क्रोन सेटअप और निदान; एक बार शेड्यूलर चलाएं और हर असफल निर्भरता को हल करें।
  2. उत्पादन डेटा जोड़ने से पहले बैकअप को कॉन्फ़िगर करना, परीक्षण बहाल करना, लॉग अवधारण और अद्यतन प्रक्रियाओं को पुनर्स्थापित करना।

सुरक्षित रूप से अद्यतन करना

  1. रिलीज नोट्स पढ़ें और फ़ाइलों को बदलने से पहले आवश्यक PHP / एक्सटेंशन की जांच करें।
  2. डेटाबेस और एप्लिकेशन / विन्यास फ़ाइलों को वापस ले लें, फिर साबित करें कि बैकअप को परीक्षण स्थान पर बहाल किया जा सकता है।
  3. स्थापना-विशिष्ट विन्यास या रनटाइम डेटा को हटाने के बिना नई फ़ाइलों को परिनियोजित करें।
  4. आपूर्ति की गई माइग्रेशन/प्रीफ़लाइट प्रक्रिया को चलाएं और लॉगिन, विजेट ट्रैकिंग, टिकट, ईमेल, एआई, कनेक्टर और क्रोन को सत्यापित करें।
  5. पिछले रिलीज और डेटाबेस बैकअप को दस्तावेजी रोलबैक विंडो के लिए उपलब्ध रखें।
🚫
प्रस्तावना शीर्ष स्तर /cron.php नहीं OpsIQ उत्पाद शेड्यूलर। केवल बिंदु पर उत्पाद स्वचालन opsiq/cron/all.php।
⚠️
.schema_cache को नष्ट नहीं करें।json जब उत्पाद निर्देश स्पष्ट रूप से एक स्कीमा कैश पुनर्निर्माण की आवश्यकता होती है तो इसे केवल तभी निकालें।
संचालन

उत्पादन गाइड

चल रहा है के लिए चेकलिस्ट और सर्वश्रेष्ठ प्रथाओं OpsIQ उत्पादन में

उत्पादन गाइड
उत्पादन गाइडएक गो-लाइव चेकलिस्ट: कस्टम डोमेन और SSL, एआई प्रशिक्षित, कनेक्टर और क्रोन, बैकअप और रिटेंशन और टीम की भूमिका।गो-लाइव चेकलिस्टकार्यस्थलइससे पहले कि आप जीनाकस्टम डोमेन + SSL कॉन्फ़िगर किया गयाएआई आपकी सामग्री पर प्रशिक्षितकनेक्टर्स का परीक्षण किया · क्रोन चल रहा हैबैकअप अनुसूचित · अवधारण सेटटीम भूमिकाओं को सौंपा और समीक्षा की1GO-LIVEपूर्व-लॉन्च चेकलिस्ट2वेरिफडोमेन · SSL _\ बैकअप3CONFIDENTजब यह हरा होता है तो जहाज
एक गो-लाइव चेकलिस्ट इसलिए कुछ नहीं याद किया गया है: डोमेन + SSL, प्रशिक्षित AI, परीक्षण किए गए कनेक्टर और क्रोन, बैकअप और रिटेंशन और टीम की भूमिका।

जीने से पहले

HTTPS स्थापित

SSL स्थापित, HTTP पुनर्निर्देशन, HSTS सक्षम।

क्रोन चल रहा है

निदान पृष्ठ के माध्यम से सत्यापित करें।

एआई परीक्षण

एक ग्राहक के रूप में चैट करें सटीकता और स्वर सत्यापित करें।

विजेट स्थापित

सभी वेबसाइट पृष्ठों पर लाइव फीड के साथ सत्यापित करें।

बैकअप कॉन्फ़िगर किया गया

स्वचालित दैनिक डेटाबेस और फ़ाइल बैकअप।

लॉगिंग में त्रुटि

PHP त्रुटि लॉग सक्षम और निगरानी।

टीम आमंत्रित

सभी सदस्यों को सही भूमिकाओं के साथ खाते हैं।

ज्ञानकोश

कम से कम 5-10 लेख।

डेली: चेक डैशबोर्ड, क्लियर टिकट कतार, स्पॉट-चेक एआई वार्तालाप।

साप्ताहिक: समीक्षा एआई इनसाइट्स, अद्यतन KB, चेक टीम प्रदर्शन, सुरक्षा की समीक्षा।

मासिक: समीक्षा विश्लेषण रुझान, लेखा परीक्षा कनेक्टर्स, अद्यतन एआई प्रशिक्षण, बैकअप सत्यापित करें।

संचालन

पूर्व-लॉन्च चेकलिस्ट

स्रोत द्वार चलाएं और रिलीज या पहले उत्पादन लॉन्च से पहले वास्तविक उत्पाद जांच पूरी करें। एक आदेश उपलब्ध होने का सबूत नहीं है कि यह आपके पर्यावरण में पारित हो गया था।

उत्पाद स्क्रीन
रिलीज सत्यापनरिलीज व्यू को चलाने के लिए गेट्स की आवश्यकता होती है; यह उन्हें पारित होने से पहले नहीं बचाता।रिलीज सत्यापनसर्वररंजीPHP8.4SOURCE GATESस्थानीय रूप से चलाएंOUTCOMEसाक्ष्य आधारितलाइव WORKSPACEआवश्यक विस्तारसूट से पहले चेक करेंगेटPHP वाक्यविन्यास स्वीपसभी परियोजना PHP फ़ाइलेंगेटएआई मूल्यांकन और PHPUnitजब निर्भरता मौजूद हो जाती है तब भागोगेटस्थैतिक और ब्राउज़र चेकजब कॉन्फ़िगर किया गयागेट1RUN THE CHECKSवास्तविक आउटपुट कैप्चर करें2FIX EVERY REQUIRED FAILUREमान्यताओं के साथ सबूत की जगह नहीं है3TEST THE PRODUCTवास्तविक उपयोगकर्ता यात्रा सत्यापित करें
रिलीज व्यू को चलाने के लिए गेट्स की आवश्यकता होती है; यह उन्हें पारित होने से पहले नहीं बचाता।

स्रोत और रिलीज गेट

स्थापना जड़ से भंडारी जांच को चलाएं और रिलीज रिकॉर्ड के साथ अपना पूरा आउटपुट रखें।

प्राथमिक प्रीफ्लाइट गेट
php tools/preflight.php
विस्तारित रिलीज गेट
php tools/release_gate.php

प्रीफ्लाइट PHP की जांच करता है 8.4 रनटाइम और आवश्यक एक्सटेंशन, एक पीएचपी सिंटैक्स स्वीप करता है, एआई मूल्यांकन जहाज गेट और पूर्ण PHPUnit सूट चलाता है, और जब उन उपकरणों को स्थापित किया जाता है तो PHPStan/Node चेक चलाता है। विस्तारित गेट में धूम्रपान, क्लीन-इंस्टॉल / स्कीमा और ब्राउज़र एंड-टू-एंड चेक भी शामिल हैं जब उनके पर्यावरण को कॉन्फ़िगर किया गया है।

एक छोड़ दिया चेक पास नहीं है। रिकॉर्ड क्यों यह अनुपलब्ध था, लापता निर्भरता स्थापित करने या रिलीज से पहले सही CI / स्टेजिंग वातावरण में इसे चलाने के लिए।

उत्पाद जांच

1प्रमाणीकरण और भूमिकाएं

प्रत्येक वांछित भूमिका के रूप में लॉगइन करें; अनुमति और अस्वीकृत पृष्ठ/क्रियाओं को सत्यापित करें.

2_. विजेट और ट्रैकिंग

एक निजी ब्राउज़र में वास्तविक साइट लोड करें; बीकन यातायात, लाइव फीड, आगंतुक और सत्र रिकॉर्ड को सत्यापित करें।

3चैट और एआई

प्रतिनिधि प्रश्न पूछो; ज्ञान ग्राउंडिंग, सुरक्षा, वृद्धि और एआई इतिहास की पुष्टि करें।

4टिकट

हर सक्षम सेवन पथ के माध्यम से बनाएं, असाइन करें, उत्तर दें, escalate, बंद करें और फिर से खोलें।

5ईमेल

परीक्षण आउटबाउंड डिलीवरी और प्रत्येक कॉन्फ़िगर किया गया इनबाउंड मेलबॉक्स या वेबहुक पथ।

6 CRM और विश्लेषण

एक नियंत्रित संपर्क / डील / रूपांतरण बनाएँ और डैशबोर्ड, फ़नल, स्कोरिंग और रिपोर्ट को सत्यापित करें।

7_ कनेक्टर्स

प्रत्येक सक्षम कनेक्टर के लिए कनेक्शन परीक्षण, एक पढ़ने, एक सुरक्षित लिखने / ड्राई रन और वेबहुक / पोलिंग पथ चलाएं।

8. API और वेबहुक

संकीर्ण दायरे, दर सीमा, idempotent retries, हस्ताक्षर और डुप्लिकेट हैंडलिंग को सत्यापित करें।

9Cron

एकीकृत उत्पाद शेड्यूलर चलाएं और क्रोन सेटअप / डायग्नोस्टिक में सभी आवश्यक दिल की धड़कनों को पुष्टि करें।

10_ सुरक्षा

2FA, सीएसआरएफ / सत्र नियंत्रण, लेखा परीक्षा प्रविष्टियां, कुंजी रिवोकेशन और वर्कस्पेस अलगाव को सत्यापित करें।

11_ बैकअप और पुनर्स्थापित

एक अलग परीक्षण वातावरण में वर्तमान बैकअप को पुनर्स्थापित करें और डेटा और विन्यास सत्यापित करें।

12_. अवलोकन योग्यता और रोलबैक

लॉग/alerts की पुष्टि करें, अनुरोध आईडी को संरक्षित करें और रोलबैक प्रक्रिया साबित करें।

⚠️
हर आवश्यक गेट और व्यावसायिक-महत्वपूर्ण यात्रा के बाद ही तैनाती सटीक रिलीज और पर्यावरण के लिए वर्तमान सबूत है।
डेवलपर

तीसरे पक्ष के साइटों पर वेब पुश

ब्राउज़र पुश नोटिफिकेशन (भी शामिल हैं)OpsIQ पुश अभियानों को एक सेवा कार्यकर्ता की आवश्यकता होती है जो SAME ORIGIN से पृष्ठ के रूप में कार्य करता है।OpsIQ अपने से विजेट लोड OpsIQ तैनाती, इसलिए तृतीय-पक्ष साइट पंजीकरण नहीं कर सकती हैOpsIQ's worker सीधे. वहाँ धक्का सक्षम करने के लिए साइट के अपने डोमेन पर एक छोटी फ़ाइल होस्ट करें। अभियान BOTH समर्थित तरीकों से वितरित करते हैं।

यह कैसे काम करता है
वेब पुशदो वितरण विधि कार्ड से ऊपर एक OS-style पुश नोटिफिकेशन: बिल्ट-इन VAPID और पुशर बीम।आपका स्टोरआपकी गाड़ी इंतजार कर रही है_ 10%अबनिर्मित (VAPID)कोई तृतीय पक्ष नहींएक फ़ाइल होस्ट करेंपुशर बीमअपने खाते का उपयोग करेंकार्यकर्ता की मेजबानी
वेब पुश

क्यों यह आवश्यक है

ब्राउज़र केवल एक पृष्ठ रजिस्टर करने के लिए अपने मूल से एक सेवा कार्यकर्ता को छोड़ देते हैं। विजेट आपके मूल से क्रॉस-ऑरिजिन लोड करता हैOpsIQ तैनाती, इसलिए यह एक ग्राहक साइट पर पुश वर्कर को स्थापित नहीं कर सकता है, जब तक कि आप उस साइट के मूल पर कार्यकर्ता की मेजबानी नहीं करते हैं, तब तक विजेट चुपचाप धक्का छोड़ देता है (कोई त्रुटि नहीं, कोई सदस्यता नहीं)। आपके पास नीचे दो विकल्प हैं;OpsIQ पुश अभियान दोनों के माध्यम से प्रकाशित होता है।

विकल्प A · स्व-होस्टेड वेब पुश (VAPID, कोई तीसरे पक्ष)

1. अपने OpsIQ तैनाती से कार्यकर्ता डाउनलोड करें: https://YOUR-OPSIQ/opsiq/opsiq-push-sw.js

2. इसे अपने पास अपलोड करें वेब रूट इसलिए यह पहुंच योग्य है https://yoursite.com/opsiq-push-sw.jsThe suffering of the swap. इस पथ को ऑटो-डिटेक्ट्स पृष्ठ के अपने मूल पर और इसे पंजीकृत करता है, कोई स्निपेट परिवर्तन की जरूरत नहीं है। (यह एक संकीर्ण दायरे का उपयोग करता है इसलिए यह कभी भी आपके द्वारा पहले से ही चलने वाले सर्विस वर्कर को प्रतिस्थापित नहीं करता है)।

वैकल्पिक: यदि आपको इसे गैर मानक पथ पर होस्ट करना होगा, तो उस पर विजेट को इंगित करें पहले यह केवल तभी स्वीकार किया जाता है जब समान मूल:

वैकल्पिक केवल तभी जब फ़ाइल वेब रूट पर नहीं है
<script>window.OpsIQ=window.OpsIQ||{};window.OpsIQ.pushSwUrl="/custom/opsiq-push-sw.js";</script>

3. In OpsIQ_, VAPID कुंजी (सेटिंग्स → क्लाइंट चैट AI → एडवांस्ड → वेब पुश) उत्पन्न करते हैं। फिर विजेट ने आगंतुकों को अधिसूचना अनुमति के लिए पूछ लिया और उन्हें सब्सक्राइब किया।

CDN के पीछेCloudflare सुनिश्चित करें /opsiq-push-sw.js HTTP रिटर्न 200 (यदि यह था तो कैश को पक्का करें)404 इससे पहले कि आप अपलोड करें; एक कैश 404 पंजीकरण को अवरुद्ध करेगा)।

विकल्प B · पुशर बीम (प्रबंधित प्रदाता)

1. In OpsIQ सेटिंग्स ने पुश प्रदाता को सेट करने के लिए कदम रखा पुशर बीम और अपने बीम दर्ज करें इंस्टेंस आईडी और गुप्त कुंजी.

2. साइट के रूट पर बीम सेवा कार्यकर्ता को होस्ट करें /service-worker.jsA copy of the code https://YOUR-OPSIQ/opsiq/pusher-beams-service-worker.jsइस लाइन को अपने मौजूदा रूट वर्कर में विलय या मर्ज करें:

बीम वर्कर, होस्ट पर https://yoursite.com/service-worker.js
importScripts("https://js.pusher.com/beams/service-worker.js");

3. यह है। विजेट ऑटो-लोड बीम SDK को लोड करता है और प्रत्येक आगंतुक को प्रति साइट ब्याज पर सब्सक्राइब करता है। opsiq-site-<your-site-key>कोई अन्य तारों की जरूरत नहीं है।

कैसे अभियानों को वितरित

पुश अभियान प्रकाशित दोनों एक बार में विधियाँ: स्वयं-होस्टेड VAPID कार्यकर्ता पर आगंतुक एन्क्रिप्टेड वेब पुश प्राप्त करते हैं, और पुशर बीम्स के माध्यम से सदस्यता लेने वाले आगंतुकों को बीम प्रकाशित करते हैं। प्रत्येक आगंतुक उस व्यक्ति तक पहुंच जाता है जिसके माध्यम से वे सब्सक्राइब हो जाते हैं, इसलिए आप कुछ साइटों पर उसी-मूल VAPआईडी चला सकते हैं और दूसरों पर क्रॉस-ऑरिजिन बीम्स।

HTTPS is required सेवा कार्यकर्ताओं और वेब पुश (स्थानीय होस्ट परीक्षण के लिए छूट दी गई है) के लिए व्यवस्थापक चैट इनबॉक्स पहले से ही ऑपरेटर अलर्ट्स के लिए एक ही बीम ब्याज तंत्र का उपयोग करता है।

संचालन

समस्या निवारण

आम मुद्दे और उन्हें कैसे ठीक करें।

जनरल

रिक्त पृष्ठ+

PHP त्रुटि लॉग की जाँच करें। कारण: पुराना पीएचपी (need) 8.4+), लापता विस्तार, डीबी कनेक्शन विफल रहा, गलत फ़ाइल अनुमतियाँ।

डैशबोर्ड शून्य दिखाता है+

चेक: विजेट स्थापित? क्रोन चल रहा है? दिनांक सीमा सही? IP बाहर रखा गया?

एआई

एआई जवाब नहीं देता+

चेक: प्रदाता ने कॉन्फ़िगर किया? API key Valid (Us Test Connection)? बजट थक गया? Workspace AI config correct?

A shog a shull, a vag+

जांच: ज्ञान आधार अद्यतन करने के लिए? शीघ्र स्पष्ट? कनेक्टर लुकअप सही डेटा वापस लौट रहा है? AI इतिहास में बातचीत की समीक्षा करें।

AI धीमी गति से है+

पर निर्भर करता है: प्रदाता API गति, संदर्भ आकार (बड़ा KB = अधिक टोकन = धीमी), नेटवर्क विलंबता। तेजी से मॉडल आज़माएं।

ट्रैकिंग

विजेट लापता+

चेक: पृष्ठ स्रोत में स्क्रिप्ट? कंसोल में JS त्रुटियों? CSP अवरुद्ध? विज्ञापन अवरोधक?

अज्ञात देश+

जियोआईपी को कॉन्फ़िगर नहीं किया गया है। उपयोग करेंCloudflare(स्वचालित) याMaxMind GeoLite2डेटाबेस।

टिकट

ईमेल नहीं बनाने टिकट+

चेक: मेलबॉक्स जुड़ा हुआ है? क्रोन चल रहा है? ऐप पासवर्ड बदल गया? IMAP सही सेटिंग्स?

ऑटो-प्रयोग नहीं+

जांच: सक्षम? विभाग की अनुमति है? एआई ने कॉन्फ़िगर किया? क्रोन चल रहा है? मानव पहले जवाब दिया?

कनेक्टर्स

कनेक्शन विफल+

जाँच करें: क्रेडेंशियल सही? कुंजी समाप्त हो गया? API सर्वर से सुलभ? URL सही?

कनेक्टेड लेकिन कोई डेटा नहीं+

चेक: API कुंजी क्षेत्र? Webhook सिंक सक्षम? क्रोन चल रहा है?

प्रदर्शन

धीमी गति से पृष्ठ+

चेक: डेटाबेस प्रदर्शन (शो PROCESSLIST), पीएचपी मेमोरी (increase to) 1GB), opcache सक्षम करने के लिए, प्रतिधारण अवधि को कम।

संचालन

विजेट लॉगिंग यात्रा नहीं

इस ध्यान केंद्रित जांच का प्रयोग करें जब विजेट गलत तरीके से लोड हो जाता है या लाइव फीड खाली रहता है।

जब विजेट लॉगिंग विज़िट नहीं हैसाइट कुंजी को सत्यापित करने, एक निजी ब्राउज़र में पृष्ठ लोड करें, ब्लॉक किए गए बीकन या विजेट अनुरोधों के लिए ब्राउज़र नेटवर्क / कंसोल पैनल की जांच करें, सामग्री-सुरक्षा-नीति और विज्ञापन अवरोधकों की समीक्षा करें, इस साइट की पुष्टि करें कि यह OpsIQ_ में सक्रिय है, और खुला निदान। एक दृश्य चैट बबल खुद ही साबित नहीं होता है कि एनालिटिक्स बीकन स्वीकार किया गया था।

संदर्भ

शब्दावली

पूरे OpsIQ_ में इस्तेमाल की जाने वाली शर्तों के लिए परिभाषा।

कार्रवाई

कुछ ऐसा है जो AI कनेक्टर या प्लेटफॉर्म के माध्यम से कर सकता है।

एजेंट

सीमित पहुँच के साथ एक टीम सदस्य, या एआई एजेंट।

BYOK

अपनी खुद की कुंजी लाओ, आप अपने स्वयं के AI API key प्रदान करते हैं।

कनेक्टर

एक प्लगइन के साथ बाहरी मंच को एकीकृत करना OpsIQ.

CSAT

ग्राहक संतुष्टि स्कोर।

सौदा

CRM में एक राजस्व अवसर।

विभाग

रूटिंग और एक्सेस कंट्रोल के लिए टिकट श्रेणी।

वृद्धि

एक अलग विभाग या एआई से मानव तक टिकट ले जाना।

GeoIP

Visitor location detection from IP address.

हैंडऑफ

एआई से मानव तक बातचीत का स्थानांतरण।

पहचान टोकन

एक वेबसाइट आगंतुक की पहचान करने के लिए हस्ताक्षर किए गए टोकन।

ज्ञानकोश

लेख AI प्रश्नों का उत्तर देने के लिए उपयोग करता है।

लीड

एक आगंतुक जो आंत्र खरीदता है।

लीड स्कोर

0-100 संख्या रूपांतरण संभावना को दर्शाती है।

लाइफसाइकल स्टेज

जहां एक ग्राहक है: लीड, प्रॉस्पेक्ट, ग्राहक, जोखिम पर, चुर्न।

प्रबंधित एआई

एआई आपके हिस्से के रूप में प्रदान किया गया OpsIQ योजना।

पाइपलाइन

सौदा चरणों का दृश्य बोर्ड।

आरबीएसी

रोल-आधारित एक्सेस कंट्रोल।

सत्र

एक टाइमआउट विंडो के भीतर पृष्ठ दृश्य की एक श्रृंखला।

साइट कुंजी

एक ट्रैक वेबसाइट के लिए अद्वितीय पहचानकर्ता।

SLA

सेवा स्तर समझौते, लक्ष्य प्रतिक्रिया समय।

टोकन

एआई पाठ की इकाई। मोटे तौर पर 4 वर्ण = 1 Token.

ट्रस्ट लेयर

सुरक्षा प्रणाली AI स्वायत्तता को नियंत्रित करती है।

वेबहुक

घटना की अधिसूचनाओं के लिए HTTP कॉलबैक।

विजेट

JavaScript कोड आपकी वेबसाइट पर एम्बेडेड है।

वर्कस्पेस

अपनी ट्रैकिंग, एआई, कनेक्टर और टीम के साथ एक साइट। "साइट" भी।

संदर्भ

अधिक मदद प्राप्त करें

यदि यह दस्तावेज आपके प्रश्न का उत्तर नहीं देता है:

व्यवस्थापक AI

व्यवस्थापक में "Ask OpsIQ" पर क्लिक करें। इस दस्तावेज़ीकरण और अपने प्लेटफ़ॉर्म डेटा तक पहुंच है।

समर्थन टिकट

शामिल करें: आपने क्या कोशिश की, क्या हुआ, आपको क्या उम्मीद थी और कोई त्रुटि संदेश।

ईमेल

अपने लाइसेंस कुंजी और अंक विवरण के साथ ईमेल समर्थन।

प्रभावी समर्थन अनुरोध के लिए युक्तियाँ

पृष्ठ को शामिल करें

कौन सा व्यवस्थापक पृष्ठ (Adminary)URL या नाम).

सेटिंग शामिल करें

सटीक सेटिंग नाम और वर्तमान मूल्य।

त्रुटि को शामिल करें

कोड के साथ सटीक त्रुटि संदेश।

चरणों को शामिल करें

क्या आपने किया, कदम से कदम.

वास्तविक बनाम उम्मीद

क्या होना चाहिए बनाम क्या हुआ?

💡
अधिक विशिष्ट आपके अनुरोध, जवाब जितना तेज़ होगा। "यह काम नहीं करता" को जांच की आवश्यकता होती है। "Clicking Save on AI कॉन्फ़िगरेशन त्रुटि कोड देता है 502"एक प्रत्यक्ष जवाब हो जाता है।