सामग्री पर जाएँ
ब्लॉग पर वापस जाएँ

ब्लॉग

फ़ॉर्म सबमिशन को Slack पर भेजें (बिना कोड के)

· 5 मिनट का पठन

एक कॉन्टैक्ट फ़ॉर्म सबमिशन जो एक साझा इनबॉक्स में जाकर गिरता है, तब पढ़ा जाता है जब किसी को उसे देखने का ख़याल आता है - जो एक छोटी टीम के लिए घंटों बाद हो सकता है, या तब तक नहीं जब तक कोई इसे आगे फ़ॉरवर्ड न करे। Slack पर पोस्ट किया गया सबमिशन अगले तीस सेकंड में पढ़ लिया जाता है, क्योंकि Slack वह जगह है जहाँ टीम पहले से ही मौजूद है। वही लीड, वही संदेश, प्रतिक्रिया समय बिल्कुल अलग।

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

DIY तरीक़ा

Slack सीधे किसी कच्चे HTML फ़ॉर्म POST को स्वीकार नहीं करता, इसलिए ख़ुद सबमिशन को वहाँ पहुँचाने का मतलब है बीच में एक छोटा receiver लिखना। आमतौर पर यह एक serverless फ़ंक्शन (Cloudflare Worker, Vercel फ़ंक्शन, AWS Lambda) होता है जो:

  • फ़ॉर्म के POST को स्वीकार करता है और जाँचता है कि यह वाक़ई सबमिशन जैसा दिखता है, स्पैम नहीं।
  • फ़ील्ड नामों और मानों को Slack के मैसेज फ़ॉर्मेट में फिर से बदलता है - या तो एक सादा text स्ट्रिंग, या यदि आप इसे नेटिव दिखाना चाहें तो एक blocks array।
  • यूज़र इनपुट को escape करता है ताकि &, <, या > वाला संदेश Slack की mrkdwn रेंडरिंग को न तोड़े।
  • परिणाम को एक Slack Incoming Webhook URL पर POST करता है, और उस स्थिति को संभालता है जब यह POST विफल हो जाए या समय समाप्त हो जाए - Slack webhooks अनंत रूप से विश्वसनीय नहीं होते, इसलिए एक साधारण implementation किसी गड़बड़ी पर चुपचाप सबमिशन खो देता है।

इसमें कुछ भी असाधारण नहीं है - यह असली इंजीनियरिंग की एक दोपहर है, और यह एक और सेवा है जिसे तैनात करना, निगरानी करना, और आख़िरकार बनाए रखना है जब कोई फ़ील्ड नाम बदलता है या Slack अपने फ़ॉर्मेटिंग नियम बदलता है। यह उचित है अगर आपके पास पहले से यह इन्फ़्रास्ट्रक्चर है और इसे रखना पसंद है; अतिरिक्त बोझ है अगर आप बस इतना ही चाहते थे कि "जब कोई फ़ॉर्म भरे तो टीम को बताया जाए"।

बिना कोड वाला तरीक़ा

Formhook receiver को पूरी तरह छोड़ देता है। अपने फ़ॉर्म की सेटिंग्स में, एक webhook जोड़ें और अपना Slack Incoming Webhook URL पेस्ट करें (जो आपको Slack के अपने "Incoming Webhooks" ऐप से मिलता है - https://hooks.slack.com/services/...)। Formhook उस होस्ट और पाथ को स्वचालित रूप से पहचान लेता है और उसके बाद से हर सबमिशन को नेटिव Slack संदेश के रूप में फ़ॉर्मेट करता है - कोई कोड नहीं, कोई फ़ील्ड मैपिंग नहीं, escaping में कुछ ग़लत होने की गुंजाइश नहीं।

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

{
  "text": "New submission to Contact form",
  "blocks": [
    {
      "type": "header",
      "text": { "type": "plain_text", "text": "New submission: Contact form" }
    },
    {
      "type": "section",
      "fields": [
        { "type": "mrkdwn", "text": "*name*\nJane Doe" },
        { "type": "mrkdwn", "text": "*email*\njane@example.com" },
        { "type": "mrkdwn", "text": "*message*\nCan you send a quote for..." }
      ]
    }
  ]
}

Discord और Microsoft Teams के लिए भी वही तरकीब

URL-पहचान उन दो अन्य चैट टूल के लिए भी उसी तरह काम करती है जिन्हें टीमें अक्सर माँगती हैं। एक Discord webhook URL पेस्ट करें और सबमिशन एक फ़ॉर्मेट किए गए Discord embed के रूप में आते हैं; एक Microsoft Teams webhook URL पेस्ट करें और वे एक नेटिव Teams कार्ड के रूप में आते हैं। हर मामले में यह डैशबोर्ड में वही एक फ़ील्ड है - Formhook यह तय करने के लिए URL के होस्ट और पाथ को देखता है कि payload को कैसे फ़ॉर्मेट करना है, इसलिए बाद में अपनी टीम का चैट टूल बदलना बस एक अलग URL पेस्ट करने की बात है, कुछ भी फिर से बनाने की नहीं।

जो इन तीनों में से कोई नहीं है, वह भी काम करता है: कोई भी अन्य URL पेस्ट करें और Formhook एक सामान्य JSON POST पर वापस आ जाता है, HMAC-signed ताकि आप सत्यापित कर सकें कि यह वाक़ई Formhook से आया है।

यह क्या नहीं करता

दायरे के बारे में स्पष्ट होना ज़रूरी है: यह तब एक फ़ॉर्मेट किया गया संदेश किसी चैनल में पोस्ट करता है जब कोई सबमिशन आता है। यह thread नहीं बनाता, interactive बटन नहीं जोड़ता, स्लैश कमांड नहीं जोड़ता - यह सूचना है, कोई Slack ऐप नहीं। अधिकतर टीमों के लिए यही बात है: एक साफ़ संदेश, तुरंत, आगे कुछ भी कॉन्फ़िगर करने की ज़रूरत नहीं।

शुरुआत करना

यदि आपके पास पहले से ही Formhook की ओर इंगित एक फ़ॉर्म है, तो यह दो मिनट का जोड़ है: Slack में एक Incoming Webhook बनाएँ, URL को अपने फ़ॉर्म की webhook सेटिंग्स में पेस्ट करें, और अगला सबमिशन चैनल में दिखने लगेगा। यदि आप शून्य से शुरू कर रहे हैं, तो डॉक्स ख़ुद फ़ॉर्म सेट करने के बारे में बताते हैं, और यदि आप बस आज़माना चाहते हैं तो प्राइसिंग में मुफ़्त स्तर की सीमाएँ (250 सबमिशन/माह, कार्ड की ज़रूरत नहीं) दी गई हैं।

एक ही लाइन में काम करने वाला फ़ॉर्म

EU-होस्टेड, सबमिशन हमेशा के लिए सुरक्षित, हर टियर पर पुश सूचनाएँ।

मुफ़्त में शुरू करें

क्रेडिट कार्ड नहीं चाहिए · दस्तावेज़ पढ़ें

आगे पढ़ें