अध्याय: टिकट इनटेक

डेवलपर

टिकट इनटेक

टिकट इनटेक बाहर से आने वाली रिपोर्ट स्वीकार करता है — ग्राहक की साइट के संपर्क फ़ॉर्म से, किसी ऐप से या किसी सर्वर से। तीनों तरीके संबंधित प्रोजेक्ट में एक टिकट बनाते हैं, जिसकी जवाब की समय-सीमा ग्राहक के अनुबंध से आती है।

तरीकाकिसके लिएकुंजी
HTML फ़ॉर्मवेबसाइट का संपर्क फ़ॉर्म, JavaScript के बिनाURL में सार्वजनिक प्रोजेक्ट कुंजी vd_pub_…
ब्राउज़र रिपोर्टवेब ऐप से त्रुटि रिपोर्ट करना, स्क्रीनशॉट के साथहेडर में सार्वजनिक प्रोजेक्ट कुंजी vd_pub_…, केवल अनुमत ओरिजिन से
सर्वर से सर्वरअपने बैकएंड वाला फ़ॉर्म या ऐपगुप्त इनटेक कुंजी vd_intake_…

इसके अलावा ईमेल और मॉनिटर भी हैं — नीचे देखें।

सब कुछ एक ही जगह सेट होता है: सेटिंग्स › टिकट इनटेक (केवल मालिक)। वहाँ हर प्रोजेक्ट अपने इनटेक की मापी गई स्थिति के साथ दिखता है; क्लिक करने पर वह खुलता है और तीन कार्ड दिखाता है: “सर्वर और ऐप” (इनटेक कुंजियाँ), “सार्वजनिक टिकट इनटेक” (फ़ॉर्म और ब्राउज़र) और “ईमेल इनटेक” (मेलबॉक्स)। प्रोजेक्ट पेज पर ओवरव्यू की “टिकट इनटेक” पंक्ति में “सेट अप करें” सीधे खुले हुए प्रोजेक्ट पर ले जाता है। VentionDesk पहचानता है कि टिकट किस तरीके से आया — उस URL से जिस पर उसे भेजा गया, न कि प्रेषक के किसी दावे से।

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

सार्वजनिक कुंजी और ओरिजिन सेट अप करना (Setting up the public key and origins)

सेटिंग्स › टिकट इनटेक में प्रोजेक्ट खोलें, कार्ड “सार्वजनिक टिकट इनटेक”:

  1. “इनटेक सेट अप करें” सार्वजनिक कुंजी vd_pub_… बनाता है। “कॉपी करें” उसे क्लिपबोर्ड पर रखता है।
  2. “अनुमत ओरिजिन” में आप हर वह पता डालते हैं जहाँ से ब्राउज़र रिपोर्ट आ सकती हैं — केवल स्कीम, होस्ट और पोर्ट, यानी https://kunde.de, बिना पाथ और बिना आख़िरी स्लैश के। VentionDesk अक्षरशः तुलना करता है।
  3. कोई ओरिजिन न डाला हो, तो ब्राउज़र वाला तरीका कुछ भी स्वीकार नहीं करता। HTML फ़ॉर्म और सर्वर वाले तरीके पर इसका असर नहीं पड़ता।
  4. “इनटेक बंद करें” कुंजी को फिर से हटा देता है।

सार्वजनिक कुंजी गुप्त नहीं है — वह ग्राहक की साइट के सोर्स कोड में होती है। वह केवल इसी प्रोजेक्ट में टिकट बना सकती है।

पहला तरीका: फ़ॉर्म (Way 1: HTML form)

एक साधारण फ़ॉर्म जो https://in.ventiondesk.com/f/<public key> पर भेजता है। तैयार कोड आप VentionDesk में टिकट › “?” › “फ़ॉर्म कोड कॉपी करें” से कॉपी करते हैं:

<form method="post" action="https://in.ventiondesk.com/f/DEIN_PUBLIC_KEY">
  <input name="name" placeholder="Ihr Name" required />
  <input name="email" type="email" placeholder="Ihre E-Mail" required />
  <input name="subject" placeholder="Betreff" required />
  <textarea name="message" placeholder="Ihre Nachricht" required></textarea>
  <p>Mit dem Absenden werden Ihre Angaben zur Bearbeitung an unseren Dienstleister
    übermittelt. Mehr dazu in unserer <a href="DEINE_DATENSCHUTZERKLAERUNG">Datenschutzerklärung</a>.</p>
  <button type="submit">Absenden</button>
</form>

DEIN_PUBLIC_KEY की जगह सार्वजनिक कुंजी और DEINE_DATENSCHUTZERKLAERUNG की जगह ग्राहक की साइट की प्राइवेसी पॉलिसी डालें।

फ़ील्डज़रूरीसीमा
nameनहीं120 अक्षरों तक
emailहाँमान्य ईमेल पता
subjectहाँ3 से 200 अक्षर
messageहाँ10 से 10,000 अक्षर

वैकल्पिक:

  • _redirect — एक पूरा URL, जिस पर सबमिट करने के बाद ब्राउज़र भेजा जाता है (303)। इसका ओरिजिन “अनुमत ओरिजिन” में होना चाहिए, वरना VentionDesk JSON में जवाब देता है।
  • _hp — बॉट्स के लिए एक हनीपॉट: एक छिपा हुआ, ख़ाली फ़ील्ड। अगर यह भरा हो, तो VentionDesk विनम्रता से जवाब देता है और कुछ नहीं बनाता।
  • cf-turnstile-response — Cloudflare Turnstile टोकन, नीचे देखें।

_redirect के बिना VentionDesk 201 और { "ok": true, "ticket": { "id": "…", "key": "TK-1044" } } के साथ जवाब देता है।

दूसरा तरीका: ब्राउज़र से रिपोर्ट (Way 2: report from the browser)

POST https://api.ventiondesk.com/v1/intake/reports, जिसमें सार्वजनिक कुंजी x-ventiondesk-key हेडर में हो — ऐसे वेब ऐप से जिसका ओरिजिन “अनुमत ओरिजिन” में दर्ज हो:

await fetch('https://api.ventiondesk.com/v1/intake/reports', {
  method: 'POST',
  headers: { 'content-type': 'application/json', 'x-ventiondesk-key': 'vd_pub_…' },
  body: JSON.stringify({
    text: 'Saving does nothing',
    email: 'user@customer.com',
    screenshot: 'data:image/png;base64,…',
    meta: { url: location.origin + location.pathname, severity: 'high' },
  }),
});
  • text (ज़रूरी): 5 से 5,000 अक्षर। email: वैकल्पिक।
  • screenshot: वैकल्पिक, डेटा URL के रूप में (data:image/png, image/jpeg या image/webp, Base64 में), 500 kB से कम। इमेज टिकट से जुड़ जाती है।
  • meta: वैकल्पिक — device, version, user, url और severity (low, normal, high, critical)। critical टिकट की प्राथमिकता “गंभीर” कर देता है।
  • turnstileToken: वैकल्पिक, नीचे देखें।

पैकेज @ventiondesk/sdk ठीक इसी कॉल को लपेटता है (ventiondesk.init({ publicKey }), फिर ventiondesk.report({ text, screenshot })); यह अभी npm पर प्रकाशित नहीं है। ऊपर वाला fetch यही काम करता है।

तीसरा तरीका: सर्वर से सर्वर (Way 3: server to server)

अगर ग्राहक की साइट का अपना बैकएंड है, तो वह इनटेक कुंजी से भेजती है। इसे आप सेटिंग्स › टिकट इनटेक में बनाते हैं: सेक्शन में ऊपर दाईं ओर “+”, फिर प्रोजेक्ट चुनें — एक इनटेक कुंजी ठीक एक प्रोजेक्ट के लिए होती है और फिर उसी प्रोजेक्ट के साथ “सर्वर और ऐप” में दिखती है। कुंजी गुप्त है और केवल सर्वर पर रहनी चाहिए, कभी ब्राउज़र में नहीं।

curl -X POST https://api.ventiondesk.com/v1/intake/tickets \
  -H "Authorization: Bearer vd_intake_…" \
  -H "Content-Type: application/json" \
  -d '{"name":"Jane Miller","email":"j.miller@customer.com","subject":"Login does not work","message":"Since this morning I can no longer get into my account."}'

फ़ील्ड वही हैं जो फ़ॉर्म में हैं, साथ में वैकल्पिक रूप से screenshot (ऊपर की तरह) और meta (20 तक सरल मान)। इनटेक कुंजी केवल भेज सकती है — वह टास्क नहीं पढ़ सकती और टिकट नहीं देख सकती।

बॉट्स के ख़िलाफ़ Turnstile (Turnstile against bots)

अगर VentionDesk की ओर से Cloudflare Turnstile चालू है, तो फ़ॉर्म और ब्राउज़र वाले तरीके को एक Turnstile टोकन चाहिए (cf-turnstile-response या turnstileToken)। यह न हो, तो VentionDesk 403 के साथ जवाब देता है। शुरू से यह जाँच इनटेक के लिए बंद रहती है: फ़ॉर्म और ब्राउज़र वाला तरीका आपके पेजों पर होते हैं, और कोई Turnstile विजेट सिर्फ़ अपनी साइट-की के डोमेन पर ही काम करता है। इसे सिर्फ़ आपसी सहमति से चालू किया जाता है — तब आपके पेज को अपना विजेट चाहिए, जिसकी साइट-की उसके डोमेन के लिए मान्य हो। अगर Cloudflare ख़ुद जवाब न दे, तो VentionDesk रिपोर्ट को आने देता है और उसे असत्यापित के रूप में चिह्नित करता है — Cloudflare की गड़बड़ी की वजह से किसी ग्राहक का अनुरोध नहीं छूटना चाहिए। सर्वर से सर्वर वाले तरीके को Turnstile की ज़रूरत नहीं है।

जाँच: क्या कुछ पहुँच रहा है? (Checking: does anything arrive?)

सार्वजनिक कुंजी और “सेटिंग्स › टिकट इनटेक” में हर इनटेक कुंजी “आख़िरी रिपोर्ट …” या “अभी कोई रिपोर्ट नहीं” दिखाती है — असली प्रयासों पर मापा गया। अगर आख़िरी प्रयास अस्वीकार हुआ था, तो उसका कारण दिखता है:

  • ओरिजिन की अनुमति नहीं
  • बॉट जाँच नहीं मिली (Turnstile फ़ील्ड नहीं)
  • बॉट जाँच विफल
  • रिपोर्ट अधूरी या अमान्य
  • कुंजी रद्द की गई
  • कुंजी की अवधि ख़त्म
  • कुंजी किसी एक प्रोजेक्ट से जुड़ी नहीं
  • प्रोजेक्ट अब मौजूद नहीं है
  • टिकट नहीं बन सका (सर्वर त्रुटि)

सीमाएँ (Limits)

हर इनटेक तरीका प्रति IP पता प्रति मिनट 10 रिपोर्ट तक स्वीकार करता है; एक अनुरोध अधिकतम 1 MB का हो सकता है।

ईमेल (Email)

आपके वर्कस्पेस के मेलबॉक्स पर आने वाले ईमेल टिकट बन जाते हैं; मेलबॉक्स का नाम आप सेटिंग्स › ईमेल भेजने वाला में तय करते हैं। अगर कोई ग्राहक VentionDesk के ईमेल का जवाब देता है, तो जवाब उसी टिकट में पहुँचता है — ईमेल हेडर से, पते में टिकट नंबर से (mailbox+TK-1044@…) या विषय में [TK-1044] से पहचाना जाता है। सेटिंग्स › टिकट इनटेक में किसी प्रोजेक्ट के “ईमेल इनटेक” कार्ड में आप पते इस प्रोजेक्ट को सौंपते हैं; किसी दूसरे डोमेन के पतों के लिए वहाँ फ़ॉरवर्डिंग चाहिए।

कौन-से पते नया टिकट बनाते हैं: केवल दर्ज किए गए पते। ये हैं आपके वर्कस्पेस का मेलबॉक्स (उसका पुराना मेलबॉक्स नाम और उसका हर प्लस पता भी), आपके प्रोजेक्ट के “ईमेल इनटेक” कार्ड के पते और आपके वर्कस्पेस के सदस्यों के साइन इन पते। किसी भी दूसरे पते पर आया ईमेल टिकट नहीं बनता और कहीं नहीं दिखता — इसलिए स्पैम बॉट्स द्वारा मनगढ़ंत पतों पर भेजे गए ईमेल आपके इनटेक में नहीं आते। किसी मौजूदा टिकट के जवाब हमेशा पहुँचते हैं, चाहे वे किसी भी पते पर जाएँ। अगर कोई ईमेल नहीं पहुँच रहा, तो उसका पता संबंधित प्रोजेक्ट के “ईमेल इनटेक” कार्ड में डालें।

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

मॉनिटर (Monitors)

किसी प्रोजेक्ट के एनालिटिक्स टैब में आप मॉनिटर बनाते हैं (URL, प्रकार “उपलब्धता” या “सर्टिफ़िकेट”, अंतराल)। अगर कोई मॉनिटर लगातार दो बार विफल होता है, तो VentionDesk एक टिकट खोलता है; जैसे ही वह फिर से पहुँच में आता है, टिकट हल हो जाता है।

टिकट इनटेक | VentionDesk Docs