Python Workflow Automation in Hindi - Tally Form to Python Webhook using FastAPI and ngrok Step-by-Step Guide
Part 1 • परिचय

Python Workflow Automation क्या है?

Table of Contents

आज लगभग हर Business अपने दैनिक कार्यों को Workflow Automation की सहायता से तेज़, सुरक्षित और Error-Free बना रहा है। पहले जिन कार्यों को पूरा करने में घंटों लगते थे, वही कार्य आज कुछ सेकंड में पूरे हो जाते हैं। इस ब्लॉग सीरीज़ में हम Python, FastAPI, Tally Forms, Webhooks और ngrok का उपयोग करके एक Professional Workflow Automation System बनाना सीखेंगे। यह Tutorial पूरी तरह Beginner Friendly है और प्रत्येक Concept को आसान हिन्दी में समझाया जाएगा।

🚀 Workflow Automation क्या है? Workflow Automation का अर्थ है किसी कार्य (Task) को एक निश्चित क्रम (Sequence) में बिना Manual हस्तक्षेप के अपने आप पूरा करना। उदाहरण के लिए यदि कोई Student आपकी Website पर Admission Form भरता है, तो उसका Data स्वतः Database में Save हो जाए, WordPress User Create हो जाए, LearnPress Course में Enrollment हो जाए तथा Email और WhatsApp Notification भेज दिए जाएँ। यही एक Automated Workflow कहलाता है।
🏢 Businesses Automation क्यों करते हैं? आज लगभग हर Company Automation का उपयोग करती है क्योंकि इससे समय की बचत होती है, Human Errors कम होते हैं, Productivity बढ़ती है तथा Customer Experience बेहतर होता है। एक बार Form Submit होते ही वही Data अलग-अलग Software में स्वतः पहुँच जाता है। इससे कर्मचारियों का Manual Work काफी कम हो जाता है।
⚖️ Manual Process बनाम Automated Process Manual Process
  • Student Form भरता है।
  • Staff Data Copy करता है।
  • Excel Update करता है।
  • WordPress में User Create करता है।
  • Email और WhatsApp अलग-अलग भेजता है।

Automated Process
  • Student Form Submit करता है।
  • Python Webhook Data Receive करता है।
  • Database स्वतः Update होती है।
  • WordPress User अपने आप Create होता है।
  • Email और WhatsApp तुरंत भेजे जाते हैं।
🎯 इस Project का उद्देश्य इस Project का उद्देश्य केवल Python Code लिखना नहीं है, बल्कि यह समझना है कि आधुनिक Businesses अपने पूरे Workflow को Automation के माध्यम से कैसे संचालित करती हैं। इस Series के अंत तक आप स्वयं Tally Forms, FastAPI, Python, MySQL, WordPress, LearnPress, Email और WhatsApp को जोड़कर एक Complete Business Workflow Automation System बना सकेंगे।
Part 2 • Workflow की मूल अवधारणा

Workflow क्या होता है?

यदि आप किसी भी Business, Website, Mobile App या Software को ध्यान से देखें, तो पाएँगे कि हर कार्य एक निश्चित क्रम (Sequence) में होता है। इसी क्रम को Workflow कहा जाता है। सरल शब्दों में, Workflow वह प्रक्रिया (Process) है जिसमें एक कार्य पूरा होने के बाद अगला कार्य स्वतः शुरू होता है और अंत में एक निर्धारित परिणाम (Output) प्राप्त होता है।

📌 Workflow की सरल परिभाषा Workflow किसी भी कार्य को छोटे-छोटे Steps में बाँटकर सही क्रम में पूरा करने की प्रक्रिया है। प्रत्येक Step पिछले Step के Output पर निर्भर करता है। उदाहरण के लिए Student Admission Process में पहले Form भरना आवश्यक है। Form Submit होने के बाद ही Data Database में जाएगा। उसके बाद ही Email भेजी जाएगी।
🔄 Workflow हमेशा Sequence में चलता है Workflow में कोई भी Step अपने आप नहीं चलता। प्रत्येक Step तभी शुरू होता है जब उससे पहले वाला Step सफलतापूर्वक पूरा हो जाए। यदि बीच का कोई Step Fail हो जाए, तो पूरा Workflow रुक सकता है या Error Handling शुरू हो सकती है।
🏢 Real Business Example मान लीजिए आपकी Vista Academy Website पर कोई Student Admission Form भरता है।
  • Student Form भरता है।
  • Form Submit करता है।
  • Python Data Receive करता है।
  • Database में Record Save होता है।
  • WordPress User Create होता है।
  • LearnPress में Enrollment होती है।
  • Email और WhatsApp भेजे जाते हैं।
ये सभी Steps मिलकर एक Complete Workflow बनाते हैं।
⚙️ Workflow का उद्देश्य Workflow का मुख्य उद्देश्य Manual कार्यों को कम करना, समय बचाना, Human Errors को कम करना तथा Business Process को तेज़ और व्यवस्थित बनाना है। इसी कारण आज लगभग सभी आधुनिक Companies Workflow Automation का उपयोग करती हैं।
Part 3 • पहला Practical Project

हमारा पहला Project: Tally Form से Python Webhook तक

अब तक हमने Workflow की Concept समझी। अब समय है यह देखने का कि हमने वास्तव में क्या बनाया। इस Project में हमारा उद्देश्य केवल एक Form बनाना नहीं था, बल्कि यह सीखना था कि जब कोई User Form Submit करे, तो उसका Data तुरंत Python तक कैसे पहुँचे। इसके लिए हमने Tally Form, FastAPI, Webhook और ngrok का उपयोग किया।

🎯 Project का उद्देश्य इस Project का मुख्य उद्देश्य यह समझना था कि किसी भी Website या Online Form से आने वाले Data को Python तक Real-Time में कैसे पहुँचाया जाए। यही Concept आगे चलकर Email Automation, WhatsApp Automation, CRM Integration, WordPress Automation तथा AI Workflows की नींव बनेगा।
📝 हमने कौन-कौन से Tools उपयोग किए?
  • Tally Forms – Online Form बनाने के लिए
  • WordPress – Form को Website पर Embed करने के लिए
  • Python – Workflow को Handle करने के लिए
  • FastAPI – Web Server बनाने के लिए
  • ngrok – Local Server को Internet पर उपलब्ध कराने के लिए
  • Webhook – Form Submit होते ही Python को सूचना भेजने के लिए
🔄 इस Project का Workflow Student Website पर Form भरता है।

⬇️

Tally Form Submission होती है।

⬇️

Webhook Trigger होता है।

⬇️

Python Data Receive करता है।

⬇️

Console में पूरा JSON दिखाई देता है।
💡 हमने अभी क्या नहीं किया? इस पहले Project में हमने केवल यह सुनिश्चित किया कि Form का Data सफलतापूर्वक Python तक पहुँच जाए। अभी हमने Data को Database में Save नहीं किया, WordPress User Create नहीं किया और न ही Email या WhatsApp भेजे। ये सभी कार्य अगले Chapters में सीखेंगे।
Part 4 • Tally Forms

हमने Tally Forms क्यों चुना?

जब हमने इस Workflow Automation Project की शुरुआत की, तब सबसे पहला प्रश्न था कि Form Builder कौन-सा उपयोग किया जाए। Internet पर Google Forms, WPForms, Elementor Forms, Typeform, Jotform और कई अन्य विकल्प उपलब्ध हैं। लेकिन इस Project के लिए हमने Tally Forms चुना क्योंकि यह Modern Workflow Automation के लिए सबसे उपयुक्त विकल्पों में से एक है।

📝 1. बिना Coding के Form बनाना Tally Forms का Interface बहुत सरल है। इसमें Drag & Drop की आवश्यकता नहीं होती। आप कुछ ही मिनटों में Professional Admission Form, Contact Form, Registration Form या Survey तैयार कर सकते हैं।
⚡ 2. Webhook Support हमारे Project का सबसे महत्वपूर्ण भाग Webhook था। Tally Forms प्रत्येक नई Submission के तुरंत बाद Data को हमारे Python Server पर भेज सकता है। यही सुविधा इसे Workflow Automation के लिए अत्यंत उपयोगी बनाती है।
🌐 3. WordPress में आसानी से Embed Tally Forms को HTML Embed Code या Link के माध्यम से WordPress Website में आसानी से जोड़ा जा सकता है। हमने भी अपना Student Admission Form WordPress Page में Embed किया ताकि Users Website छोड़े बिना Form भर सकें।
📦 4. JSON Format में Data जब कोई User Form Submit करता है, तो Tally Data को Structured JSON Format में भेजता है। Python के लिए JSON को पढ़ना और Process करना अत्यंत आसान होता है, इसलिए आगे Database, Email और WhatsApp Automation बनाना सरल हो जाता है।
🔒 5. सुरक्षित और Cloud Based Tally Forms एक Cloud Platform है। आपको अलग से Server Maintain करने की आवश्यकता नहीं होती। Form Hosting, Data Collection और Submission Management पहले से उपलब्ध रहते हैं।
🚀 6. Future Automation Ready आज हमने केवल Python Webhook बनाया है, लेकिन भविष्य में यही Form CRM, MySQL, WordPress, LearnPress, Email Marketing, WhatsApp API और AI Agents से भी जोड़ा जा सकता है।
💻 Step 1: Tally Form Embed Code Tally Form को WordPress में Embed करने के लिए हमने Elementor के HTML Widget का उपयोग किया। नीचे वही वास्तविक Code दिया गया है जिसे हमने अपनी Website में उपयोग किया।

<iframe
data-tally-src="https://tally.so/embed/eq6Kee?alignLeft=1&hideTitle=1&transparentBackground=1&dynamicHeight=1"
loading="lazy"
width="100%"
height="650"
frameborder="0"
marginheight="0"
marginwidth="0"
title="Vista Academy Student Admission Form">
</iframe>

<script>
var d=document,
w="https://tally.so/widgets/embed.js",
v=function(){
if(typeof Tally!=="undefined"){
Tally.loadEmbeds();
}else{
d.querySelectorAll('iframe[data-tally-src]:not([src])')
.forEach(function(e){
e.src=e.dataset.tallySrc;
});
}
};

if(typeof Tally!=="undefined"){
v();
}else if(!d.querySelector('script[src="'+w+'"]')){
var s=d.createElement("script");
s.src=w;
s.onload=v;
d.body.appendChild(s);
}
</script>
🔍 इस Code को समझते हैं 1. iframe
यह Tally Form को आपकी WordPress Website के अंदर दिखाता है। User को दूसरी Website पर जाने की आवश्यकता नहीं होती।

2. data-tally-src
यह आपके Tally Form का URL है। हमारे Project में Form ID eq6Kee है।

3. loading=”lazy”
यह Form को तभी Load करता है जब User उस Section तक पहुँचता है। इससे Website की Speed बेहतर रहती है।

4. width=”100%”
Form अपने Container की पूरी चौड़ाई में दिखाई देता है।

5. dynamicHeight=1
यदि Form में अधिक Fields हों, तो उसकी Height स्वतः बढ़ जाती है। Scroll की समस्या नहीं होती।

6. embed.js
यह JavaScript File Tally द्वारा उपलब्ध कराई जाती है। इसी की सहायता से Form Responsive बनता है और Dynamic Height जैसी सुविधाएँ काम करती हैं।
Part 6 • FastAPI

FastAPI क्या है? हमने FastAPI क्यों चुना?

अब तक हमारा Student Admission Form तैयार हो चुका है और WordPress Website पर सफलतापूर्वक दिखाई दे रहा है। लेकिन केवल Form बनाना पर्याप्त नहीं है। हमें ऐसा Python Application चाहिए जो Internet से आने वाले Form Data को Receive कर सके। इसी उद्देश्य के लिए हमने FastAPI Framework का उपयोग किया।

🚀 FastAPI क्या है? FastAPI एक Modern Python Web Framework है जिसकी सहायता से हम API, Webhook और Web Applications बना सकते हैं। यह बहुत तेज़ (Fast), आसान (Easy to Learn) और Production Ready Framework है। हमारे Project में FastAPI का कार्य Tally Forms द्वारा भेजे गए Data को Receive करना है।
🌐 Web Framework क्या होता है? Web Framework एक ऐसा Software Framework होता है जो Internet से आने वाली Requests को Receive करता है और उनके अनुसार Response भेजता है। जब कोई User Form Submit करता है, तब Request Internet के माध्यम से हमारे Python Server तक पहुँचती है। FastAPI उस Request को Handle करता है।
💡 हमने Flask की जगह FastAPI क्यों चुना?
  • बहुत तेज़ Performance
  • Webhook Integration आसान
  • Automatic API Documentation
  • Modern Python Syntax
  • JSON Data को आसानी से Handle करता है
  • Future AI एवं Automation Projects के लिए बेहतर विकल्प
📌 इस Project में FastAPI की भूमिका जब भी कोई Student Tally Form Submit करता है, Tally उस Data को हमारे Python Server पर भेजता है। FastAPI उस Data को Receive करता है और आगे Processing के लिए Python Function को भेज देता है। यदि FastAPI न हो, तो Python Internet से आने वाले Requests को सीधे Handle नहीं कर पाएगा।
Part 7 • Python Installation

Anaconda Install करना और Python Environment तैयार करना

Workflow Automation Project शुरू करने से पहले हमें अपने Computer पर Python Development Environment तैयार करना होगा। यद्यपि Python को सीधे उसकी Official Website से Install किया जा सकता है, लेकिन इस Project में हमने Anaconda Distribution का उपयोग किया क्योंकि इसमें Python के साथ कई उपयोगी Tools पहले से उपलब्ध होते हैं।

🐍 Anaconda क्या है? Anaconda एक लोकप्रिय Python Distribution है जिसमें Python, Package Manager (Conda), Jupyter Notebook तथा Data Science और Machine Learning में उपयोग होने वाली अनेक Libraries उपलब्ध रहती हैं। यदि आप Data Analytics, Data Science या Automation सीख रहे हैं, तो Anaconda सबसे अच्छा विकल्प माना जाता है।
💡 हमने Anaconda क्यों चुना?
  • Python पहले से Install होता है।
  • Conda Package Manager मिलता है।
  • Virtual Environment आसानी से बनाए जा सकते हैं।
  • Future Data Analytics Projects के लिए उपयुक्त।
  • Libraries को Manage करना आसान।
⬇️ Step 1 : Anaconda Download करें Anaconda की Official Website पर जाएँ और अपने Operating System (Windows, macOS या Linux) के अनुसार Installer Download करें।
https://www.anaconda.com/download
⚙️ Step 2 : Install करें Installer Run करें और Default Settings के साथ Installation पूरा करें। Installation के बाद Start Menu में Anaconda Prompt दिखाई देगा। इसी Prompt का उपयोग करके हम पूरे Workflow Project पर कार्य करेंगे।
Part 7 • Project Setup

Anaconda में Python Environment और FastAPI Setup

अब तक हमने Tally Form को WordPress Website में Embed कर दिया है और यह भी समझ लिया कि FastAPI हमारे Workflow में क्या भूमिका निभाता है। अब समय है अपना पहला Python Development Environment तैयार करने का, जहाँ हम अपना Workflow Automation Project बनाएँगे। इस Tutorial में हमने Anaconda Prompt का उपयोग किया क्योंकि यह Python Projects को व्यवस्थित (Organized) रखने का सबसे आसान तरीका है।

📦 Step 1 : नया Environment क्यों बनाया? Python Project शुरू करने से पहले एक अलग Environment बनाना Best Practice माना जाता है। इससे प्रत्येक Project की Libraries अलग रहती हैं और किसी दूसरे Project पर उसका प्रभाव नहीं पड़ता।
conda create -n workflow python=3.12
▶️ Step 2 : Environment Activate करें Environment बनने के बाद उसे Activate करना आवश्यक होता है। इसके बाद जो भी Library Install होगी, वह केवल इसी Project में उपलब्ध रहेगी।
conda activate workflow
📚 Step 3 : FastAPI और Uvicorn Install करें FastAPI हमारे Webhook को Receive करेगा जबकि Uvicorn हमारे Python Application को Web Server की तरह चलाएगा।
pip install fastapi uvicorn
📁 Step 4 : Project Folder बनाएँ हमने Workflow नाम का एक Folder बनाया जिसमें हमारा पूरा Project रखा जाएगा। बाद में Database, Email, WhatsApp और अन्य Files भी इसी Folder में रहेंगी।
mkdir workflow

cd workflow
💡 VS Code या Notepad – कौन बेहतर है? दोनों Editors से Python Program लिखा जा सकता है।

Notepad शुरुआती विद्यार्थियों के लिए पर्याप्त है और केवल Python सीखने के लिए उपयोग किया जा सकता है।

VS Code Professional Developers द्वारा उपयोग किया जाता है क्योंकि इसमें Syntax Highlighting, Auto Completion, Error Detection, Integrated Terminal तथा Extensions जैसी सुविधाएँ उपलब्ध होती हैं।

यदि आप Data Analytics, AI या Workflow Automation में Career बनाना चाहते हैं, तो भविष्य में VS Code का उपयोग करना अधिक उपयुक्त रहेगा।
📁 Step 2 : main.py File बनाएँ यदि आपके Computer में Visual Studio Code (VS Code) Install है, तो Project Folder को VS Code में Open करें और एक नई File बनाएँ। यदि VS Code Install नहीं है, तो आप Windows Notepad का भी उपयोग कर सकते हैं।

Notepad उपयोग करने के लिए:
  • Windows Start Menu में Notepad Search करें।
  • Notepad Open करें।
  • Python Code Paste करें।
  • File → Save As पर क्लिक करें।
  • Save as type में All Files (*.*) चुनें।
  • File Name लिखें main.py
  • Encoding UTF-8 रखें।
  • इसे workflow Folder के अंदर Save करें।
workflow/
│
└── main.py
यही File हमारे पूरे Workflow Automation Project का मुख्य Program होगी।
Part 8 • First FastAPI Application

पहला FastAPI Program (main.py) बनाना

अब हमारा Python Environment पूरी तरह तैयार है। अगला कदम है अपना पहला FastAPI Application बनाना। इस Application का कार्य Tally Forms द्वारा भेजे गए Webhook Data को Receive करना है। हमने Project Folder के अंदर main.py नाम की एक File बनाई। यही हमारे पूरे Workflow Automation Project की शुरुआत है।

💻 main.py का पूरा Code
from fastapi import FastAPI, Request

app = FastAPI()

@app.get("/")
async def home():
    return {
        "message":"Vista Academy Workflow API is running"
    }

@app.post("/tally-webhook")
async def tally_webhook(request: Request):

    data = await request.json()

    print("=" * 50)
    print("New Form Submission")
    print(data)
    print("=" * 50)

    return {
        "status":"success",
        "message":"Data received"
    }
📌 Line 1 : Library Import from fastapi import FastAPI, Request

इस लाइन में हमने FastAPI Framework और Request Class को Import किया। FastAPI हमारा Web Server बनाएगा जबकि Request के माध्यम से हम Tally द्वारा भेजा गया Data प्राप्त करेंगे।
📌 Line 2 : Application बनाना app = FastAPI()

यह हमारे Web Application का मुख्य Object है। आप इसे ऐसे समझ सकते हैं जैसे किसी Office का Reception Desk। Internet से आने वाली प्रत्येक Request सबसे पहले यहीं पहुँचती है।
📌 GET Method @app.get("/")

जब कोई Browser केवल Website Open करता है, तब यह Function Execute होता है। इसी कारण Browser में हमने देखा था:
{
"message":"Vista Academy Workflow API is running"
}
इसका अर्थ था कि हमारा Server सफलतापूर्वक चल रहा है।
📌 POST Method @app.post("/tally-webhook")

यह सबसे महत्वपूर्ण लाइन है। जब भी Tally Form Submit होता है, वह Data इसी URL पर भेजता है। यदि URL सही होगा, तभी हमारा Function Execute होगा।
📌 Request से JSON प्राप्त करना data = await request.json()

Tally Form द्वारा भेजा गया पूरा Data JSON Format में आता है। इस लाइन की सहायता से Python उस JSON Data को Read करके data नाम के Variable में Store कर देता है।
📌 Console में Data Print करना print(data)

शुरुआत में हमने केवल यह Verify करने के लिए Data Print किया कि Webhook सही प्रकार से कार्य कर रहा है। बाद में यही Data Database, Email, WhatsApp तथा WordPress Automation के लिए उपयोग किया जाएगा।
📌 Response वापस भेजना return {"status":"success"}

जब Python Data Receive कर लेता है, तब वह Tally को Success Response भेजता है। यदि यह Response नहीं भेजा जाए, तो Tally यह मान सकता है कि Webhook सफल नहीं हुआ।
📌 हमने यह Program क्यों बनाया? इस छोटे से Program का उद्देश्य केवल एक था— क्या Python Internet से आने वाला Form Data Receive कर सकता है? जब हमें Terminal में POST /tally-webhook HTTP/1.1 200 OK दिखाई दिया, तब हमें पता चल गया कि हमारा पहला Webhook सफलतापूर्वक कार्य कर रहा है।
Part 10 • Running FastAPI

पहली बार FastAPI Server Run करें

अब हमारा main.py Program तैयार है। अगला चरण है इसे Run करना। जब तक Python Program Run नहीं होगा, तब तक Browser, Tally Forms या कोई अन्य Application उससे Connect नहीं कर पाएगी। इसीलिए हमें Uvicorn Server चलाना होगा।

▶️ Step 1 : Project Folder में जाएँ सबसे पहले Anaconda Prompt खोलें और उस Folder में जाएँ जहाँ आपने main.py Save की है।
cd C:\Users\hp\workflow
यदि आपकी File किसी दूसरे Folder में है, तो उसी Path का उपयोग करें।
🚀 Step 2 : FastAPI Server Run करें अब नीचे दिया गया Command Run करें।
uvicorn main:app --reload
यदि सब कुछ सही है तो कुछ सेकण्ड बाद आपका FastAPI Server Start हो जाएगा।
📖 इस Command का अर्थ समझिए uvicorn → FastAPI Server Start करता है।

main → हमारी Python File का नाम (main.py)

app → FastAPI Object
app = FastAPI()
–reload → File Save होने पर Server अपने आप Restart हो जाएगा।
✅ Server Successfully Run होने पर यदि कोई Error नहीं है, तो Terminal में कुछ ऐसा दिखाई देगा।
INFO: Started server process

INFO: Waiting for application startup.

INFO: Application startup complete.

INFO: Uvicorn running on
http://127.0.0.1:8000
यही संदेश बताता है कि आपका FastAPI Server सफलतापूर्वक चल रहा है।
🌐 Step 3 : Browser में Test करें अब अपना Browser खोलें। Address Bar में लिखें।
http://127.0.0.1:8000
यदि सब कुछ सही है तो Browser में यह दिखाई देगा।
{
"message":"Vista Academy Workflow API is running"
}
इसका अर्थ है कि Browser आपके Python Server से सफलतापूर्वक जुड़ गया है।
💡 Anaconda Prompt क्यों “अटक” जाता है? जब हमने पहली बार Server Run किया था, तब ऐसा लगा कि Anaconda Prompt रुक गया है। वास्तव में ऐसा नहीं होता। Server लगातार चलता रहता है और नई Requests का इंतजार करता रहता है। इसी कारण Cursor वापस नहीं आता। यदि Server बंद करना हो तो Keyboard से
Ctrl + C
दबाएँ।
Part 11 • ngrok

ngrok क्या है? Local Python Server को Internet पर कैसे लाएँ?

अब हमारा FastAPI Server सफलतापूर्वक चल रहा है। Browser में http://127.0.0.1:8000 खोलने पर API भी सही प्रकार से कार्य कर रही है। लेकिन एक समस्या अभी भी बाकी है। Tally Forms Internet पर चल रहा है जबकि हमारा Python Server केवल हमारे Laptop पर चल रहा है। अब प्रश्न यह है कि Tally Forms हमारे Computer तक कैसे पहुँचेगा? इसी समस्या को हल करने के लिए हमने ngrok का उपयोग किया।

🌍 Localhost क्या होता है? जब हम Browser में
http://127.0.0.1:8000
Open करते हैं, तब यह केवल हमारे अपने Computer पर चलता है। इसे Localhost कहा जाता है। Internet पर कोई दूसरा व्यक्ति या Website इसे Access नहीं कर सकती।
❓समस्या कहाँ थी? हमारा Python Server Laptop पर चल रहा था। लेकिन Tally Forms Cloud Server पर था। इसलिए Tally हमारे Local Server तक नहीं पहुँच सकता था। यहीं पर ngrok हमारी सहायता करता है।
🚇 ngrok क्या करता है? ngrok आपके Computer और Internet के बीच एक सुरक्षित Tunnel (सुरंग) बनाता है। अब Internet से आने वाली Request पहले ngrok तक पहुँचती है और फिर आपके Laptop पर चल रहे FastAPI Server तक Forward हो जाती है।
📊 आसान उदाहरण मान लीजिए आपका Laptop एक घर है। घर का Address केवल आपको पता है। अब यदि कोई Internet से आपके घर आना चाहता है तो वह नहीं पहुँच पाएगा। ngrok उस घर तक पहुँचने के लिए एक Public Address उपलब्ध कराता है। अब Tally उसी Public Address का उपयोग करके आपके Laptop तक पहुँच सकता है।
Part 12 • ngrok Setup

ngrok Install करें और Public URL बनाएँ

अब हमें अपने Local FastAPI Server को Internet पर उपलब्ध कराना है ताकि Tally Forms हमारे Laptop पर चल रहे Python Application तक पहुँच सके। इसके लिए हमने ngrok का उपयोग किया। इस Chapter में हम वही सभी Steps करेंगे जो हमने अपने Project में किए थे।

⬇️ Step 1 : ngrok Download करें सबसे पहले ngrok की Official Website पर जाएँ।

Website
https://ngrok.com/downloads/windows
अपने Operating System के अनुसार ngrok Download करें और ZIP File Extract कर लें।
👤 Step 2 : Free Account बनाएँ ngrok उपयोग करने के लिए एक Free Account बनाना आवश्यक है। Official Website पर जाकर Sign Up करें।
https://dashboard.ngrok.com/signup
Account Verify करने के बाद Dashboard Open करें।
🔑 Step 3 : Authtoken Copy करें Dashboard में आपको एक Unique Authtoken मिलेगा। इसी Token की सहायता से आपका Computer आपके ngrok Account से जुड़ता है। Dashboard में Your Authtoken Section खोलें और पूरा Token Copy करें।
💻 Step 4 : Authtoken Configure करें अब Anaconda Prompt खोलें और नीचे दिया गया Command चलाएँ।
ngrok config add-authtoken YOUR_AUTHTOKEN
यहाँ YOUR_AUTHTOKEN की जगह अपना वास्तविक Token Paste करें। यदि Command सफल रही तो आपको ऐसा Message दिखाई देगा।
Authtoken saved to configuration file
🚀 Step 5 : Public URL Generate करें अब वही Terminal उपयोग करते हुए नीचे दिया गया Command Run करें।
ngrok http 8000
कुछ सेकण्ड बाद ngrok एक Public URL Generate करेगा। उदाहरण:
https://life-lid-lizard.ngrok-free.dev
अब यही URL Internet पर उपलब्ध होगा।
📌 यह URL इतना महत्वपूर्ण क्यों है? पहले केवल
http://127.0.0.1:8000
कार्य कर रहा था। लेकिन Internet पर मौजूद Tally Forms इसे Access नहीं कर सकता था। अब ngrok ने
https://life-lid-lizard.ngrok-free.dev
जैसा Public Address बना दिया। अब Internet पर मौजूद कोई भी Application हमारे FastAPI Server तक पहुँच सकती है।
Part 13 • Tally Webhook Integration

Tally Form में Webhook Configure करें

अब तक हमने अपना Python Server तैयार कर लिया है और ngrok की सहायता से उसे Internet पर उपलब्ध भी करा दिया है। अब हमें Tally Forms को यह बताना होगा कि जब भी कोई User Form Submit करे, तो Data किस Address पर भेजना है। यही कार्य Webhook Integration द्वारा किया जाता है।

🔔 Webhook क्या करता है? Webhook एक Automatic Notification System है। जब भी User Form Submit करता है, Tally उसी समय हमारे Python Server को Data भेज देता है। हमें बार-बार Tally से Data Fetch करने की आवश्यकता नहीं होती।
📝 Step 1 : Tally Dashboard खोलें अपने Tally Account में Login करें। अब वह Form खोलें जिसे आपने बनाया है। उदाहरण: Student Admission Form
⚙️ Step 2 : Integrations पर जाएँ अब Integrations → Webhooks Section Open करें। यहीं से Tally किसी भी External Application को Data भेज सकता है।
🌐 Step 3 : Webhook URL जोड़ें Webhook URL में अपना ngrok Address लिखें।
https://YOUR-NGROK-URL.ngrok-free.dev/tally-webhook
उदाहरण
https://life-lid-lizard.ngrok-free.dev/tally-webhook
ध्यान रखें कि URL के अंत में /tally-webhook अवश्य होना चाहिए क्योंकि यही Route हमने FastAPI में बनाया था।
💾 Step 4 : Save करें Webhook URL जोड़ने के बाद Save Button पर क्लिक करें। अब से प्रत्येक नई Form Submission आपके Python Server पर भेजी जाएगी।
🧪 Step 5 : Test Submission करें अब अपने Student Admission Form को Open करें। कुछ Sample Data भरें और Submit Button पर क्लिक करें। यदि सब कुछ सही है तो कुछ ही सेकण्ड में Python Server Request Receive कर लेगा।
Part 14 • First Webhook Test

पहली बार Form Submit करें और Python में Live Data देखें

अब तक हमने पूरा Setup तैयार कर लिया है। अब समय है यह देखने का कि क्या वास्तव में Student द्वारा भरा गया Form Python तक पहुँच रहा है या नहीं। यही वह क्षण है जहाँ हमारा पहला Workflow सफल होता है।

📝 Step 1 : Form भरें अपनी Website पर जाएँ। Student Admission Form खोलें। सभी आवश्यक जानकारी भरें। अब Submit Button पर क्लिक करें।
💻 Step 2 : Anaconda Prompt देखें Form Submit करने के बाद उसी Anaconda Prompt को देखें जहाँ FastAPI Server चल रहा है। यदि सब कुछ सही है तो Terminal में नया Output दिखाई देगा।
INFO: 127.0.0.1:53244 -

"POST /tally-webhook HTTP/1.1"

200 OK
🎉 इसका क्या अर्थ है? इसका अर्थ है कि
  • Tally ने Request भेजी।
  • FastAPI ने Request Receive की।
  • Python Program Execute हुआ।
  • Server ने Success Response वापस भेज दिया।
यानी हमारा Webhook सफलतापूर्वक कार्य कर रहा है।
📦 JSON Data दिखाई देगा Terminal में कुछ ऐसा Output दिखाई देगा।
==================================================

New Form Submission

{
  "eventId":"...",
  "eventType":"FORM_RESPONSE",
  "data":{
      ...
  }
}

==================================================
यही Data Tally द्वारा भेजा गया वास्तविक JSON है।
📌 200 OK का अर्थ HTTP Status Code 200 OK का अर्थ है कि Python ने Request सफलतापूर्वक Receive कर ली है। यदि यह दिखाई दे रहा है तो आपका Webhook सही प्रकार से कार्य कर रहा है।
❌ यदि Error आए तो? 404 Not Found
Webhook URL गलत है।

405 Method Not Allowed
GET और POST Method में समस्या है।

500 Internal Server Error
Python Program में कोई Error है।

Connection Failed
ngrok या FastAPI Server बंद है।
Part 15 • Understanding JSON

JSON Data क्या है? Python इसे कैसे पढ़ता है?

जब आपने पहली बार Tally Form Submit किया, तब Python Terminal में बहुत सारा Data दिखाई दिया। यह Data सामान्य Text नहीं था, बल्कि JSON (JavaScript Object Notation) Format में था। यदि आपको Workflow Automation सीखनी है, तो JSON समझना सबसे आवश्यक है, क्योंकि लगभग सभी आधुनिक Applications, APIs और Webhooks JSON Format में ही Data भेजते हैं।

📦 JSON क्या होता है? JSON एक ऐसा Data Format है जिसका उपयोग दो Applications के बीच Information भेजने के लिए किया जाता है। मान लीजिए Student ने Form में अपना नाम, मोबाइल नंबर और Course भरा। Python को यह Data कुछ इस प्रकार प्राप्त होगा।
{
  "name":"Rahul Kumar",
  "mobile":"9876543210",
  "course":"Data Analytics"
}
यह पढ़ने में आसान, हल्का (Lightweight) और लगभग सभी Programming Languages द्वारा समर्थित है।
🔑 Key और Value क्या होते हैं? JSON हमेशा Key : Value Pair में कार्य करता है।
{
"name":"Rahul",
"mobile":"9876543210"
}
यहाँ name → Key
Rahul → Value

mobile → Key
9876543210 → Value
🐍 Python JSON को कैसे पढ़ता है? हमने अपने Program में यह Code लिखा था।
data = await request.json()
इसका अर्थ है— “Tally द्वारा भेजे गए JSON Data को पढ़ो और उसे data नाम के Variable में Store कर दो।” अब पूरा Form Data Python के पास उपलब्ध है।
📖 वास्तविक Tally JSON Tally Form का Data कुछ इस प्रकार दिखाई देता है।
{
 "eventType":"FORM_RESPONSE",
 "data":{
   "fields":[
      {
        "label":"Full Name",
        "value":"Rahul Kumar"
      },
      {
        "label":"Mobile Number",
        "value":"9876543210"
      }
   ]
 }
}
यही वही Data है जो आपने Terminal में देखा था।
📌 JSON इतना महत्वपूर्ण क्यों है? यदि JSON समझ में आ गया, तो आप किसी भी API या Webhook से Data पढ़ सकते हैं। यही तकनीक आगे चलकर
  • WhatsApp API
  • Google Sheets API
  • OpenAI API
  • Razorpay
  • PhonePe
  • WordPress REST API
  • LearnPress API
में भी उपयोग होती है।
💡 Dictionary और JSON का सम्बन्ध Python में JSON पढ़ने के बाद वह एक Dictionary बन जाता है। उदाहरण
student = {
    "name":"Rahul",
    "course":"Python"
}
अब Data प्राप्त करने के लिए
student["name"]
Output
Rahul
इसी प्रकार Tally द्वारा भेजे गए JSON से भी हम किसी भी Field का Data निकाल सकते हैं।
Part 16 • JSON Parsing

Tally JSON Parsing – Student का Name, Mobile और Course कैसे निकालें?

पिछले Chapter में हमने देखा कि Tally Form Submit होने पर Python को पूरा JSON Data प्राप्त होता है। लेकिन वास्तविक Business Automation में हमें पूरा JSON Print करने की आवश्यकता नहीं होती। हमें केवल आवश्यक जानकारी जैसे Student Name, Mobile Number, Course, Qualification और Preferred Counselling Mode निकालनी होती है। इस प्रक्रिया को JSON Parsing कहा जाता है।

📦 Step 1 : पूरा JSON प्राप्त करें सबसे पहले Python पूरा JSON Receive करता है।
payload = await request.json()
अब पूरा Form Data payload नाम के Variable में Store हो चुका है।
📂 Step 2 : Fields तक पहुँचें Tally Form में सभी Form Fields fields नाम की List के अंदर रहती हैं। उसे प्राप्त करने के लिए
fields = payload["data"]["fields"]
अब fields में Form की सभी Entries उपलब्ध हैं।
🔄 Step 3 : सभी Fields पढ़ें अब प्रत्येक Field को एक-एक करके पढ़ेंगे।
student = {}

for field in fields:
    student[field["label"]] = field["value"]
यह Loop सभी Labels और उनके Values को student नाम की Dictionary में Store कर देता है।
📋 Step 4 : Student Name प्राप्त करें अब Student का नाम प्राप्त करना बहुत आसान हो जाता है।
print(student.get("Full Name *"))
यदि Form में Rahul Kumar लिखा गया होगा तो Output होगा
Rahul Kumar
📱 Step 5 : Mobile Number प्राप्त करें इसी प्रकार Mobile Number भी प्राप्त किया जा सकता है।
print(student.get("Mobile Number (WhatsApp Active) *"))
Output
9876543210
🎓 Step 6 : Course प्राप्त करें Student ने कौन-सा Course चुना है?
print(student.get("Which course are you interested in? *"))
Output
Data Analytics
अब यही Value आगे Database, Email तथा WhatsApp Automation में उपयोग होगी।
Part 17 • Troubleshooting Guide

Common Errors और उनके Solutions

Programming सीखते समय Error आना बिल्कुल सामान्य बात है। वास्तव में, अधिकांश समय Developers अपना Code लिखने से अधिक समय Errors को समझने और उन्हें ठीक करने में लगाते हैं। इस Project के दौरान हमें भी कई Errors मिलीं। इस Chapter में हम उन्हीं वास्तविक समस्याओं और उनके समाधान (Solutions) को समझेंगे।

❌ Error 1 : uvicorn is not recognized Error
'uvicorn' is not recognized as an internal or external command.
कारण Uvicorn Install नहीं है या सही Environment Activate नहीं किया गया। Solution
conda activate workflow

pip install uvicorn
❌ Error 2 : ModuleNotFoundError Error
ModuleNotFoundError:
No module named 'fastapi'
कारण FastAPI Install नहीं है। Solution
pip install fastapi
❌ Error 3 : ngrok Authentication Failed कारण Authtoken Configure नहीं किया गया। Solution
ngrok config add-authtoken YOUR_TOKEN
फिर
ngrok http 8000
❌ Error 4 : 404 Not Found कारण Webhook URL गलत है। यदि आपने लिखा
https://xxxxx.ngrok-free.dev
तो यह गलत है। सही URL होगा
https://xxxxx.ngrok-free.dev/tally-webhook
❌ Error 5 : 405 Method Not Allowed यह तब आता है जब Browser से POST URL खोलने का प्रयास किया जाता है। Browser सामान्यतः GET Request भेजता है जबकि
@app.post("/tally-webhook")
केवल POST Request स्वीकार करता है। यह सामान्य व्यवहार है।
❌ Error 6 : 500 Internal Server Error यह Error Python Program के अंदर आती है। अधिकांश मामलों में
  • Syntax Error
  • Indentation Error
  • Key Name गलत होना
  • JSON Parsing Error
के कारण यह समस्या होती है। Terminal में पूरा Error पढ़ें और उसी के अनुसार सुधार करें।
❌ Error 7 : Anaconda Prompt “अटक” गया यह वास्तव में Error नहीं है। जब
uvicorn main:app --reload
चलता है, तब Server लगातार Requests का इंतजार करता रहता है। यदि Server बंद करना हो
Ctrl + C
दबाएँ।
❌ Error 8 : Webhook Trigger नहीं हो रहा निम्न बातों की जाँच करें।
  • FastAPI Server चल रहा है।
  • ngrok चालू है।
  • Webhook URL सही है।
  • URL के अंत में /tally-webhook लिखा है।
  • Form Submit करने के बाद Save किया गया है।
Part 18 • Complete Workflow Architecture

Complete Workflow Diagram – हमने वास्तव में क्या बनाया?

इस Tutorial के दौरान हमने कई अलग-अलग Tools जैसे WordPress, Tally Forms, FastAPI, ngrok और Python का उपयोग किया। यदि इन्हें अलग-अलग देखा जाए तो पूरा Project थोड़ा जटिल लग सकता है, लेकिन वास्तव में ये सभी एक ही Workflow के भाग हैं। आइए अब पूरे Workflow को एक साथ समझते हैं।

📊 Complete Workflow


Student

    │

    ▼

Vista Academy Website

    │

    ▼

Embedded Tally Form

    │

    ▼

Student Clicks Submit

    │

    ▼

Tally Cloud Server

    │

    ▼

Webhook Trigger

    │

    ▼

ngrok Public URL

    │

    ▼

FastAPI Server

    │

    ▼

Python Program

    │

    ▼

Read JSON Data

    │

    ▼

Display Student Details

① Student Workflow की शुरुआत Student से होती है। वह आपकी Website पर आता है और Admission Form भरता है। यही पूरे Automation का पहला Trigger है।
② WordPress Website Student आपकी WordPress Website पर ही रहता है क्योंकि Tally Form Website के अंदर Embed किया गया है। इससे User Experience बेहतर होता है और Branding भी बनी रहती है।
③ Tally Form Tally Form Student द्वारा भरी गई सभी जानकारी Collect करता है। जैसे—
  • Full Name
  • Mobile Number
  • Email Address
  • Course
  • Qualification
④ Webhook Student द्वारा Submit Button दबाते ही Webhook सक्रिय हो जाता है। Webhook का कार्य Tally से Python तक Data भेजना है। यही पूरे Workflow की सबसे महत्वपूर्ण कड़ी है।
⑤ ngrok Python आपके Laptop पर चल रहा था। ngrok ने Internet और आपके Local Computer के बीच एक सुरक्षित Tunnel बनाई। इसी कारण Tally आपके Computer तक पहुँच सका।
⑥ FastAPI FastAPI ने Internet से आने वाली Request को Receive किया। इसके बाद पूरा JSON Python Program को उपलब्ध करा दिया।
⑦ Python Program Python ने JSON Data पढ़ा। इसके बाद आवश्यक Fields जैसे
  • Name
  • Mobile Number
  • Course
को अलग-अलग Variables में Store किया।
⑧ Final Output अंत में Student की जानकारी Terminal में दिखाई देने लगी। यही प्रमाण था कि हमारा पहला Live Workflow सफलतापूर्वक कार्य कर रहा है।
Part 19 • Conclusion

निष्कर्ष (Conclusion) और आगे की यात्रा

यदि आपने इस Tutorial को शुरू से अंत तक पूरा किया है, तो आपने केवल Python का एक Program नहीं बनाया, बल्कि एक Real-Time Workflow Automation System की मजबूत नींव तैयार की है। इस Project में हमने सीखा कि किसी User द्वारा Website पर Form Submit करने के बाद उसका Data किस प्रकार Internet के माध्यम से हमारे Python Application तक पहुँचता है और Python उस Data को सफलतापूर्वक Receive करता है। यही आधुनिक Business Automation की शुरुआत है।

📚 इस Tutorial में आपने क्या सीखा?
  • ✔ Workflow Automation क्या है।
  • ✔ Business में Automation की आवश्यकता क्यों होती है।
  • ✔ Tally Forms का उपयोग कैसे करें।
  • ✔ WordPress में Tally Form Embed करना।
  • ✔ FastAPI Framework का परिचय।
  • ✔ Anaconda और Python Environment तैयार करना।
  • ✔ FastAPI तथा Uvicorn Install करना।
  • ✔ पहला FastAPI Program बनाना।
  • ✔ Uvicorn Server Run करना।
  • ✔ ngrok से Local Server को Internet पर उपलब्ध कराना।
  • ✔ Tally Webhook Configure करना।
  • ✔ Python में Live Form Data Receive करना।
  • ✔ JSON Structure समझना।
  • ✔ JSON Parsing करके Student Details निकालना।
  • ✔ सामान्य Errors तथा उनके Solutions।
🎯 हमने वास्तव में क्या बनाया? इस Project के अंत तक हमारा Workflow इस प्रकार कार्य कर रहा है।


Student

↓

WordPress Website

↓

Embedded Tally Form

↓

Tally Cloud

↓

Webhook

↓

ngrok

↓

FastAPI

↓

Python

↓

JSON Data

↓

Student Details

यह एक वास्तविक Live Workflow है, जो Internet से आने वाले Data को Python तक पहुँचाता है।
🚀 आगे क्या करेंगे? अभी तक हमारा Python Program केवल Student की जानकारी Terminal में दिखा रहा है। लेकिन किसी भी वास्तविक Business में Data केवल Terminal में दिखाना पर्याप्त नहीं होता। अगला कदम है इस Data को सुरक्षित रूप से Database में Store करना। इसीलिए अगले Tutorial में हम MySQL Database का उपयोग करेंगे।
📅 Python Workflow Automation Series ✅ Part 1 Tally Form → Python Webhook

➡️ Part 2 Python → MySQL Database

➡️ Part 3 MySQL → WordPress User Creation

➡️ Part 4 LearnPress Automatic Enrollment

➡️ Part 5 Email Automation

➡️ Part 6 WhatsApp Automation

➡️ Part 7 PDF Receipt Generation

➡️ Part 8 Admin Dashboard

➡️ Part 9 AI Workflow Automation

➡️ Part 10 Complete CRM Automation
Vista Academy – 316/336, Park Rd, Laxman Chowk, Dehradun – 248001
📞 +91 94117 78145 | 📧 thevistaacademy@gmail.com | 💬 WhatsApp
💬 Chat on WhatsApp: Ask About Our Courses