सामग्री पर जाएं
FormFlow

सबमिशन वेबहुक पर भेजें और जो आपके रिसीवर से छूट गया उसे दोबारा आज़माएँ

फ़ॉर्म में वेबहुक एंडपॉइंट जोड़ें, अपने रिसीवर पर हस्ताक्षर सत्यापित करें, और आउटेज के बाद 'विफल डिलीवरी पुनः प्रयास करें' इस्तेमाल करें। FormFlow खुद क्या दोबारा आज़माता है, और क्या दोबारा नहीं भेजेगा।

यह पोस्ट मशीन द्वारा अनुवादित है। अंग्रेज़ी में मूल पोस्ट पढ़ें

Screenshot of the Delivery tab of a seeded FormFlow form with one webhook endpoint added: Send as FormFlow JSON (signed), an endpoint URL and the Delivering switch on, with icons to send a test, retry and delete. It is where this tutorial adds its webhook.

वेबहुक हर स्वीकार किए गए सबमिशन को आपके अपने URL पर सेकंडों में भेज देता है, इसलिए लीड ईमेल डाइजेस्ट का इंतज़ार किए बिना आपके CRM या आपके अपने कोड में पहुँच सकता है। वेबहुक FormFlow में v1.0.0 से हैं। यह ट्यूटोरियल एक एंडपॉइंट जोड़ता है, दिखाता है कि आपके रिसीवर को क्या मिलता है और उसे कैसे जाँचें, और फिर उस हिस्से को कवर करता है जो उस दिन मायने रखता है जब आपका रिसीवर बंद हो: FormFlow खुद क्या दोबारा आज़माता है और बाकी को 'विफल डिलीवरी पुनः प्रयास करें' से कैसे दोबारा भेजें।

आपको क्या चाहिए

आपके नियंत्रण वाला एक रिसीवर जो JSON बॉडी वाला POST स्वीकार करता हो। उसका पता https होना चाहिए और केवल सार्वजनिक पतों पर ही रिज़ॉल्व होना चाहिए। सहेजते समय पैनल बाकी हर चीज़ को अस्वीकार कर देता है, इसलिए localhost पता काम नहीं करता, और टेस्ट करने का आम तरीका टनल है।

एंडपॉइंट जोड़ें

  1. पैनल में फ़ॉर्म खोलें और 'डिलीवरी' टैब पर जाएँ।

  2. 'वेबहुक एंडपॉइंट' के तहत 'एंडपॉइंट जोड़ें' दबाएँ।

  3. 'के रूप में भेजें' को FormFlow JSON (हस्ताक्षरित) पर रहने दें। दूसरा विकल्प, Slack संदेश, एक Slack इनकमिंग वेबहुक URL लेता है।

  4. अपने रिसीवर का पता 'एंडपॉइंट यूआरएल' में पेस्ट करें और 'डिलीवर किया जा रहा है' को चालू रहने दें।

  5. फ़ॉर्म को सहेजें। 'अपने वेबहुक हस्ताक्षर सीक्रेट अभी कॉपी करें' शीर्षक वाली एक सूचना हर नए एंडपॉइंट का URL और सीक्रेट दिखाती है। जब तक आप उसे हटाते नहीं, वह स्क्रीन पर रहती है, और वह कहती है कि सीक्रेट दोबारा नहीं दिखाए जाते। सीक्रेट को अपने सीक्रेट मैनेजर में रखें। नया लेने के लिए एंडपॉइंट हटाकर फिर जोड़ें।

  6. एंडपॉइंट की पंक्ति पर 'परीक्षण भेजें' दबाएँ। आपको परीक्षण डिलीवर हुआ, या आपके रिसीवर के अपने त्रुटि पाठ के साथ परीक्षण डिलीवरी विफल, दिखता है। पंक्ति पहले सहेजी होनी चाहिए, और बटन एक घंटे में 20 परीक्षण डिलीवरी तक सीमित है।

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

आपके रिसीवर को क्या मिलता है

हर उस सबमिशन के लिए एक POST जो स्पैम नहीं है। बॉडी एक छोटा JSON दस्तावेज़ है, और तीन हेडर साथ आते हैं। यह उसका रूप है, प्लेसहोल्डर मानों के साथ:

{
  "id": "SUBMISSION_UUID",
  "form": { "id": "FORM_UUID", "name": "Contact Us" },
  "submitted_at": "2026-10-08T09:00:00+00:00",
  "data": { "name": "Ada Lovelace", "email": "ada@example.com" }
}
  • X-FormFlow-Timestamp प्रयास का समय है, सेकंड में।

  • X-FormFlow-Signature-256 में sha256= होता है और उसके बाद टाइमस्टैम्प, एक बिंदु और कच्ची बॉडी का HMAC-SHA256, जिसकी कुंजी एंडपॉइंट का सीक्रेट होता है।

  • X-FormFlow-Delivery-Id डिलीवरी की पहचान कराता है। हर पुनः प्रयास पर यह वही रहता है।

किसी अनुरोध पर भरोसा करने से पहले हस्ताक्षर सत्यापित करें, कच्ची बॉडी पर, न कि दोबारा एनकोड की गई प्रति पर। इसका PHP संस्करण, वैसे ही जैसा FormFlow का API दस्तावेज़ देता है:

function formflow_verify(string $rawBody, string $timestamp, string $signature, string $secret): bool
{
    if (abs(time() - (int) $timestamp) > 300) {
        return false;
    }

    $expected = 'sha256=' . hash_hmac('sha256', $timestamp . '.' . $rawBody, $secret);

    return hash_equals($expected, $signature);
}

FormFlow खुद क्या दोबारा आज़माता है

FormFlow जवाब के लिए 10 सेकंड तक इंतज़ार करता है। कोई भी 2xx जवाब डिलीवर हुआ गिना जाता है। टाइमआउट, टूटा कनेक्शन, 408, 429 या 5xx जवाब को दोबारा आज़माया जाता है, कुल मिलाकर छह प्रयासों तक, उनके बीच 10 सेकंड, 1 मिनट, 5 मिनट, 30 मिनट और 2 घंटे के इंतज़ार के साथ। कोई भी दूसरा जवाब, 3xx या 4xx समेत, स्थायी इनकार माना जाता है और अपने आप दोबारा नहीं आज़माया जाता। FormFlow रीडायरेक्ट का पीछा नहीं करता, इसलिए रीडायरेक्ट से जवाब देने वाला एंडपॉइंट विफल गिना जाता है। एंडपॉइंट को उसके अंतिम पते पर इंगित करें।

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

जो आपके रिसीवर से छूट गया उसे दोबारा आज़माएँ

v1.33 से पहले हर छूटे सबमिशन के लिए अलग से 'अब पुनः प्रयास करें' चाहिए था। अब एक दबाव एक एंडपॉइंट को कवर करता है। रिलीज़ बदलावों की सूची में है। क्रम मायने रखता है:

  1. पहले रिसीवर ठीक करें। हर विफल डिलीवरी को एक और प्रयास मिलता है, इसलिए अभी भी खराब रिसीवर पर पुनः प्रयास सिर्फ़ फिर विफल होता है।

  2. 'डिलीवरी' टैब पर एंडपॉइंट का 'डिलीवर किया जा रहा है' स्विच देखें। अगर FormFlow ने उसे बंद कर दिया है, तो उसे चालू करें और फ़ॉर्म को सहेजें। बंद एंडपॉइंट पर पुनः प्रयास को इस संदेश के साथ अस्वीकार कर दिया जाता है "डिलीवर किया जा रहा है चालू करें और फ़ॉर्म सहेजें, फिर पुनः प्रयास करें।"

  3. एंडपॉइंट की पंक्ति पर 'विफल डिलीवरी पुनः प्रयास करें' दबाएँ और पुष्टि करें। डायलॉग कहता है कि जो भी विफल डिलीवरी अभी भी भेजी जा सकती है, वह अपनी मूल डिलीवरी ID और पेलोड के साथ फिर से कतार में लगाई जाती है।

  4. एक सूचना बताती है कि कितनी कतार में लगाई गईं। एक दबाव अधिकतम 500 को कतार में लगाता है। अगर और बची हैं, तो वह फिर दबाने को कहती है।

  5. कोई सबमिशन खोलें और उसकी 'डिलीवरी अनुरोध' तालिका देखें। प्रयासों की गिनती बढ़ गई है और स्थिति 'डिलीवर किया गया' तक पहुँचनी चाहिए।

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

जिन सीमाओं को जानना चाहिए

  • नया एंडपॉइंट केवल वही सबमिशन पाता है जो उसके सेट अप होने के बाद आते हैं। जो सबमिशन आपके पास पहले से हैं वे उसे नहीं भेजे जाते।

  • स्पैम आगे नहीं भेजा जाता।

  • 'विफल डिलीवरी पुनः प्रयास करें' केवल उन डिलीवरी को दोबारा भेजता है जो अभी भी भेजी जा सकती हैं, और केवल एंडपॉइंट को उसके अभी के रूप में।

  • डिलीवरी कम से कम एक बार होती है। आपके रिसीवर को दोहराव सहन करना होगा।

अपने पहले फ़ॉर्म को FormFlow पर निर्देशित करें।

कोई बैकएंड बनाने की आवश्यकता नहीं, कोई फ्रंटएंड होस्ट करने की आवश्यकता नहीं।

मुफ़्त में आरंभ करें