We use cookies
We use cookies and similar technologies to improve your experience, analyse traffic, and personalise content. You can accept all cookies or reject non-essential ones.
Tally Bridge चालू रहने पर, TallyPrime में आप जो भी बिक्री इनवॉइस सेव करते हैं वह कुछ ही मिनटों में आपके ग्राहक तक पहुँच सकता है: WhatsApp या ईमेल पर आपकी ब्रांडिंग वाली PDF के साथ, या लिंक ले जाने वाले SMS के रूप में। यही रिकॉर्ड आपकी ग्राहक और सप्लायर सूचियों को अपडेट रखते हैं, आपकी बिक्री, खरीद और स्टॉक के आँकड़े आपके डैशबोर्ड तक पहुँचाते हैं, जिन ग्राहकों पर अब भी बकाया है उनका फ़ॉलो-अप चलाते हैं, और आपके अपने ब्रांड वाले पोर्टल को भरते हैं, जहाँ हर ग्राहक अपने इनवॉइस और अपने खाते का बकाया देखता है। यह गाइड वही जगह है जहाँ आप यह सब तय करते हैं: कौन-सी कंपनियाँ और Tally के किस तरह के रिकॉर्ड — बिक्री इनवॉइस, खरीद बिल, ग्राहक, सप्लायर, बैंक खाते, स्टॉक आइटम — शेयर हों, हर एक कहाँ जाए, ब्रिज कितनी-कितनी देर में देखे, और आपका फ़्लो (वर्कफ़्लो), यानी SurveyAnalytica में आपका बनाया ऑटोमेशन, उनके साथ क्या करे। अगर ब्रिज अभी PC पर नहीं है, तो Tally Prime कनेक्टर — इंस्टॉलेशन गाइड देखें।
यह सब एक ही टेक्स्ट फ़ाइल में रहता है — bridge.yml, जो sa-tally-bridge.exe के बगल में होती है, आम तौर पर C:\ProgramData\SurveyAnalytica में। उस पर राइट-क्लिक करें, Open with (किससे खोलें) चुनें, फिर Notepad चुनें। यह YAML में लिखी सादा टेक्स्ट फ़ाइल है, जिसमें इंडेंटेशन यानी लाइन की शुरुआत में छोड़ी गई जगह का अपना अर्थ होता है।
इंडेंट के लिए केवल स्पेस का इस्तेमाल करें, Tab कुंजी का कभी नहीं, और इस गाइड से कॉपी की गई लाइनों का इंडेंटेशन वैसा ही रखें। ब्रिज उसी फ़ाइल से शुरू होता है जिसे वह पूरा पढ़ सके; इंडेंट में चूक हो तो वह सुधारने वाली लाइन का नाम बता देता है और सुधरी हुई फ़ाइल का इंतज़ार करता है। अपने बदलाव को Windows के भरोसे छोड़ने से पहले जाँच लें — एक ही कमांड से यह हो जाता है।
bridge.yml वाले फ़ोल्डर में, File Explorer के एड्रेस बार में क्लिक करें, cmd टाइप करें, Enter दबाएँ, फिर sa-tally-bridge.exe run --config bridge.yml चलाएँ। अगर वह अपना शेड्यूल प्रिंट करके चलता रहे, तो फ़ाइल ठीक है: Ctrl+C दबाएँ, फिर ब्रिज को रीस्टार्ट करें।
ब्रिज bridge.yml को शुरू होते समय पढ़ता है, इसलिए सेव किया गया बदलाव अगली बार शुरू होने पर लागू होता है। अगर वह अब भी किसी Command Prompt विंडो में चल रहा है, तो वहीं Ctrl+C दबाएँ और उसे दोबारा चलाएँ। जब वह अपने आप शुरू होने लगे (इंस्टॉलेशन गाइड का चरण 7), तो उसे Windows Task Scheduler से रीस्टार्ट करें: Task Scheduler Library → SurveyAnalytica → Tally Bridge खोलें, टास्क पर राइट-क्लिक करके End चुनें, फिर दोबारा राइट-क्लिक करके चलाएँ चुनें। साइन आउट करके दोबारा साइन इन करने से भी यही होता है: टास्क लॉगऑन पर शुरू हो जाता है।
पहली बार के सेटअप के लिए विज़ार्ड, यानी sa-tally-bridge.exe init, का इस्तेमाल करें। वह हर बार ख़ाली शीट से शुरू करता है, इसलिए बाद के बदलाव Notepad में करें। हर कंपनी को एक ही key के नीचे रखें — वही नाम जो विज़ार्ड ने लिखा, या उसका फ़ोल्डर नंबर — और वह key वैसी ही रहने दें: यहीं ब्रिज उस कंपनी की जगह संभालकर रखता है, इसलिए हर रन सिर्फ़ नया हिस्सा पढ़ता है और हर रिकॉर्ड एक ही बार पहुँचता है।
companies: ब्लॉक में सिंक होने वाली कंपनियाँ लिखी जाती हैं, हर कंपनी की एक एंट्री, ताकि एक ही Tally PC से कई कंपनियाँ या शाखाएँ चल सकें। हर एक की एक key आपकी पसंद की होती है, जो हर रिकॉर्ड के साथ companyCode के रूप में पहुँचती है; एक name, वैसा ही लिखा जैसा Tally में लिखा है; और एक transactions: ब्लॉक, जिसमें पढ़े जाने वाले रिकॉर्ड के प्रकार बताए जाते हैं।
bridge.yml — companies: ब्लॉक
companies:
"010001":
name: "Acme Traders"
transactions:
sales: {}
purchase: {}
ledgers/debtors: {}
stockItems: {}
"010002":
name: "Globex Industries"
transactions:
sales: {}
ledgers/debtors: {}
यहाँ दिया हर उदाहरण उसी एक फ़ाइल का हिस्सा है: global: और companies: एक-एक बार ही आते हैं, इसलिए सिर्फ़ वही लाइनें जोड़ें जो आपके पास नहीं हैं, उसी इंडेंटेशन पर। ख़ाली ब्रेसेस जान-बूझकर हैं: रिकॉर्ड के किसी प्रकार को सेटिंग्स तभी चाहिए जब उसका अपना गंतव्य हो, और वही अगले सेक्शन में है। ये सात प्रकार, जिन्हें स्ट्रीम कहा जाता है:
| यह लिखें | यह क्या भेजता है |
|---|---|
sales | बिक्री इनवॉइस, आपके अपने वाउचर टाइप भी शामिल: ब्रिज Tally से पूछता है कि हर टाइप किस पर आधारित है, इसलिए GST SALES भी बिक्री के रूप में ही दर्ज होता है। |
purchase | खरीद बिल, कस्टम वाउचर टाइप भी उसी तरह। |
ledgers/debtors | ग्राहक — Sundry Debtors के नीचे आने वाला हर लेजर, सब-ग्रुप सहित। |
ledgers/creditors | सप्लायर — Sundry Creditors के नीचे आने वाला हर लेजर। |
ledgers/bank | बैंक खाते। |
ledgers | खातों की पूरी सूची (chart of accounts) — हज़ारों पंक्तियाँ। ग्राहकों या सप्लायर के लिए ऊपर दी गई सीमित सूचियाँ ज़्यादा सटीक हैं। |
stockItems | स्टॉक आइटम, क्लोजिंग मात्रा, मूल्य और दर के साथ। |
ग्राहक और सप्लायर रिकॉर्ड में पार्टी का वही विवरण जाता है जो Tally में रखा है — mailing name, ईमेल, फ़ोन, मोबाइल, GSTIN, आयकर नंबर, पता और क्लोजिंग बैलेंस — जिससे संपर्क सूची बिना दोबारा टाइप किए अपडेट रहती है। बिक्री और खरीद रिकॉर्ड पूरा वाउचर ले जाते हैं: हेडर, स्टॉक लाइनें, लेजर और टैक्स लाइनें, narration, और GST e-invoice का विवरण (IRN, acknowledgement नंबर और तारीख़) जब Tally के पास हो।
बिक्री इनवॉइस और खरीद बिल, आपके अपने वाउचर टाइप सहित; ग्राहक, सप्लायर, बैंक खाते और, अगर आप चाहें तो, खातों की पूरी सूची; स्टॉक आइटम। बाक़ी वाउचर टाइप — receipts, payments, contra, journals, credit और debit notes, orders और delivery notes — फ़िलहाल कनेक्टर के दायरे से बाहर हैं।
हर रिकॉर्ड ऐसे फ़्लो में जाता है जिसका ट्रिगर वेबहुक है — वही जो आपने इंस्टॉलेशन गाइड के चरण 3 में बनाया था, और उतने ही और भी जितने आप चाहें, हर एक उसी तरह बनाया हुआ। वही पैनल वे दो वैल्यू दिखाता है जिन्हें आप bridge.yml में कॉपी करते हैं: URL : और KEY : लिखी पंक्तियाँ, हर एक के साथ कॉपी बटन। URL वाली लाइन का नाम इस बात से तय होता है कि वह कहाँ लिखी है: global: के नीचे, किसी कंपनी के नीचे और रिकॉर्ड के किसी प्रकार के नीचे webhook_url; transaction_webhooks: और heartbeat: के अंदर url, और उसके बगल में KEY api_key के रूप में। नीचे दिए उदाहरण से ढाँचा कॉपी करें और वही नाम लिखें जो उस स्तर का है जिसे आप बदल रहे हैं — ब्रिज इसी वर्तनी को पढ़ता है। जिन रिकॉर्ड का गंतव्य अभी तय नहीं है, वे तय होने तक कतार में सुरक्षित रहते हैं।
जानने योग्य बात। URL को ठीक वैसे ही कॉपी करें जैसा पैनल दिखाता है; अगर आपके ऑफ़िस का फ़ायरवॉल बाहर जाने वाले ट्रैफ़िक को सीमित करता है, तो उसकी शुरुआत में दिए होस्ट नाम के लिए आउटबाउंड HTTPS की अनुमति दें। KEY code नाम के हेडर में जाती है, और फ़्लो को बस इतनी ही ज़रूरत है: HMAC Signature (Optional) वाले बॉक्स ख़ाली छोड़ दें।
सब कुछ एक ही फ़्लो में भेजें, या किसी कंपनी या रिकॉर्ड के किसी प्रकार को उसका अपना फ़्लो दें।
bridge.yml — global: और companies: ब्लॉक के हिस्से
global:
webhook_url: "PASTE-THE-URL-FROM-THE-TRIGGER-PANEL"
api_key: "PASTE-THE-KEY-FROM-THE-TRIGGER-PANEL"
transaction_webhooks:
sales:
url: "PASTE-THE-SALES-FLOW-URL"
api_key: "PASTE-THE-SALES-FLOW-KEY"
ledgers/debtors:
url: "PASTE-THE-CONTACTS-FLOW-URL"
api_key: "PASTE-THE-CONTACTS-FLOW-KEY"
companies:
"010002":
name: "Globex Industries"
webhook_url: "PASTE-THE-GLOBEX-FLOW-URL"
api_key: "PASTE-THE-GLOBEX-FLOW-KEY"
transactions:
sales: {}
रिकॉर्ड समूहों में जाते हैं — एक समूह में एक कंपनी और रिकॉर्ड का एक प्रकार। हर समूह के लिए ब्रिज पहला भरा हुआ गंतव्य लेता है: यह कंपनी और रिकॉर्ड का यह प्रकार, फिर यह कंपनी, फिर रिकॉर्ड का यह प्रकार, फिर global फ़ॉलबैक। KEY उसी URL के साथ जाती है जिसके बगल में वह लिखी गई थी, इसलिए हर फ़्लो तक उसकी अपनी KEY से पहुँचा जाता है।
सुझाव। KEY के नीचे दिया नया उत्पन्न करें एक नई KEY जारी करता है; जब तक कोई उसे publish नहीं करता, चल रहा फ़्लो मौजूदा KEY पर ही रहता है। उसका इस्तेमाल करने के बाद नई KEY bridge.yml में पेस्ट करें, ब्रिज रीस्टार्ट करें, फिर लाइव अपडेट करें (Update Live) दबाएँ। (लाइव फ़्लो पर लाइव अपडेट करें दिखता है; जिसे कभी चालू नहीं किया गया उस पर सक्रिय करें दिखता है।) इस बीच भेजा गया सब कुछ कतार में रहता है।
ब्रिज Tally को या तो अपने आप, हर कुछ मिनट में पढ़ता है, या शेड्यूल पर, आपके चुने हुए समय पर — यह global के नीचे sync ब्लॉक में तय होता है। sync ब्लॉक न हो तो यह ऑटोमैटिक रहता है, हर पाँच मिनट में।
तय अंतराल पर पढ़ता है — जब तक आप कुछ और न कहें, पाँच मिनट — और शुरू होते ही एक बार, इसलिए इनवॉइस दर्ज होने के कुछ ही मिनटों में आपके फ़्लो तक और उसी दिन आपके ग्राहक तक पहुँच जाता है।
सिर्फ़ उन्हीं समयों पर पढ़ता है जो आप तय करते हैं, जैसे हर रात 21:30 बजे। बीच में वह Tally से कोई रिक्वेस्ट नहीं करता, इसलिए कामकाजी दिन पूरी तरह आपके स्टाफ़ का रहता है।
bridge.yml — global: ब्लॉक के अंदर, ऑटोमैटिक
global:
sync:
mode: interval
every: 5m
bridge.yml — global: ब्लॉक के अंदर, शेड्यूल्ड
global:
sync:
mode: cron
cron: "30 21 * * *"
timezone: "Asia/Kolkata"
| सेटिंग | डिफ़ॉल्ट | यह क्या करती है |
|---|---|---|
mode | interval | या तो interval या cron। बिना mode वाली cron लाइन को cron ही माना जाता है। |
every | 5m | ऑटोमैटिक मोड में Tally को कितनी-कितनी देर में पढ़ना है: 30s, 5m, 2h। |
cron | कोई नहीं | शेड्यूल्ड मोड में घड़ी के समय। पाँच हिस्से: मिनट, घंटा, महीने का दिन, महीना, सप्ताह का दिन। |
timezone | UTC | वह ज़ोन जिसमें cron के समय पढ़े जाते हैं, जगह के नाम के रूप में, जैसे Asia/Kolkata। इसे सेट करें, ताकि 21:30 आपके यहाँ का ही 21:30 हो। |
run_on_start | true | ब्रिज के शुरू होते ही एक बार पढ़ता है। शेड्यूल्ड मोड में सिर्फ़ उस PC पर जहाँ अभी तक कोई रन पूरा नहीं हुआ है। |
catch_up | true | अगर PC बंद रहने के दौरान कोई शेड्यूल किया समय निकल गया हो, तो लौटने पर एक रन चलाता है। |
catch_up_grace | 30m | छूटा हुआ समय कम से कम कितना पीछे हो, तभी कैच-अप रन चलाना सार्थक माना जाए। |
retry_every | 15m | इस साइकल में जो पढ़ना अभी बाक़ी है, उसे कितनी-कितनी देर में दोबारा आज़माना है। |
first_run_guard | 0 (बंद) | जिस कंपनी में इस संख्या से ज़्यादा बदलाव हों, उसके सबसे पहले सिंक को दोनों मोड में रोके रखता है, ताकि पूरे इतिहास की रीडिंग किसी ऐसी रात में शुरू न हो जब कोई सामने न हो; रिकॉर्ड के उस प्रकार की स्थिति needs_backfill दिखती रहती है, जब तक आप इसे वापस 0 करके उसे चलने न दें। |
| यह लिखें | इसका अर्थ |
|---|---|
"30 21 * * *" | हर दिन 21:30 बजे। timezone: "Asia/Kolkata" के साथ, 21:30 IST। |
"0 19 * * 1-5" | सोमवार से शुक्रवार, 19:00 बजे; सप्ताहांत पर कुछ नहीं। |
"0 */2 * * *" | हर दो घंटे में, ठीक घंटे पर। |
पाँच हिस्से लिखें, छह नहीं: शुरू में सेकंड का हिस्सा जोड़ने से "0 30 21 * * *" का अर्थ बदलकर हर घंटे के 30वें मिनट पर हो जाएगा। ब्रिज शुरू होने से पहले इस expression की जाँच करता है और Command Prompt विंडो में global.sync.cron must have exactly 5 fields (minute hour day-of-month month day-of-week), got 6 in "0 30 21 * * *" प्रिंट करता है — इसलिए नया शेड्यूल ऊपर बताए तरीक़े से ख़ुद जाँच लें।
शेड्यूल किया हर समय एक साइकल शुरू करता है। अगर कोई कंपनी तैयार न हो — उसका लॉगिन प्रॉम्प्ट अब भी डेस्कटॉप पर हो, या Tally ने अभी जवाब देना शुरू न किया हो — तो ब्रिज उसे सूची में बनाए रखता है और हर retry_every पर दोबारा कोशिश करता है, डिफ़ॉल्ट रूप से पंद्रह मिनट में एक बार, जब तक वह सफल न हो जाए या अगला शेड्यूल किया समय न आ जाए: अगली सुबह 09:40 पर खोली गई कंपनी 09:40 पर ही सिंक हो जाती है।
अगर किसी शेड्यूल किए समय पर PC बंद था, तो एक ही कैच-अप रन उस अंतर को पूरा कर देता है: तीन छूटी हुई रातों के लिए भी एक ही रन, क्योंकि ब्रिज पिछली बार देखने के बाद से बदला हुआ सब कुछ माँगता है। शेड्यूल्ड मोड में रीस्टार्ट करने से तय समय आगे नहीं खिसकता, वह अपनी जगह ही रहता है; आँकड़े अभी चाहिए हों, तो उस दिन के लिए ऑटोमैटिक मोड पर चले जाएँ।
यहीं Tally के रिकॉर्ड वह बन जाते हैं जो आप चाहते थे: WhatsApp या ईमेल पर आपकी ब्रांडिंग वाली PDF के साथ भेजा गया इनवॉइस, या लिंक ले जाने वाला SMS; Sundry Debtors और Creditors के साथ क़दम मिलाकर चलती ग्राहक और सप्लायर सूचियाँ; Google Sheets या Excel में बिक्री का लाइव रजिस्टर; इनवॉइस जाने के बाद एक फ़ीडबैक सर्वे; आपके चुने हुए दिनों पर रिमाइंडर, जो शेड्यूल किए फ़्लो से उन ग्राहकों की संपर्क सूची पर भेजे जाते हैं जिन पर अब भी बकाया है; डैशबोर्ड और विश्लेषण के लिए आँकड़े; और आपके ब्रांड वाला पोर्टल, जहाँ ग्राहक अपने इनवॉइस और अपने खाते का बकाया देखते हैं।
sa-tally-bridge.exe test --config bridge.yml चलाएँ। यह हर प्रकार के लगभग दस ताज़ा रिकॉर्ड तुरंत भेज देता है।records पर सेट करें। अब उसके नीचे का सब कुछ हर रिकॉर्ड के लिए एक बार चलता है, हर समूह के लिए एक बार नहीं।यह क्रम क्यों। ब्रिज वहीं से आगे बढ़ता है जहाँ तक वह डिलीवर कर चुका है, इसलिए पहली बड़ी लोडिंग से पहले फ़्लो को लाइव कर लें। जब तक वह चालू नहीं होता, फ़्लो आने वाले डेटा को टेस्ट सैंपल के रूप में रखता है — और चरण 2 और 3 को यही चाहिए।
सुझाव। हर कंपनी के लिए एक ही रास्ता रखें — या तो ब्रिज, या अनुसूची ट्रिगर पर क्लाउड वाला Tally डेटा सोर्स, दोनों नहीं — ताकि हर रिकॉर्ड एक ही बार पहुँचे।
| ऐक्शन | loop चाहिए? |
|---|---|
| WhatsApp, SMS, Slack, Microsoft Teams, सोशल पोस्ट | हाँ। एक बार में एक संदेश। |
| Google Sheets, Excel | हाँ। हर रिकॉर्ड के लिए एक पंक्ति। |
| Contact list, Planner, Survey response, Org user, Shopify, Salesforce, Mailchimp | हाँ। हर एक एक ही रिकॉर्ड लिखता है। |
| नहीं। टेम्पलेट अपने अंदर ही सूची दोहरा सकता है — एक ही स्टेटमेंट में कई इनवॉइस; loop लगाने पर हर इनवॉइस के लिए अलग ईमेल जाता है। | |
| Create Document, Task | नहीं। दोनों सूची पर काम करते हैं, इसलिए एक ही दस्तावेज़ पूरे समूह को कवर कर सकता है। |
जहाँ loop ज़रूरी है, वहाँ स्टेप ख़ुद बता देता है और Add Loop बटन दिखाता है।
हर रिक्वेस्ट उन्हीं समूहों में से एक होती है — एक बैच, एक कंपनी और रिकॉर्ड के एक प्रकार का — जो छह फ़ील्ड में लिपटा होता है।
| फ़ील्ड | इसमें क्या होता है |
|---|---|
companyCode | वही key जो आपने companies: के नीचे लिखी है। |
companyName | कंपनी का नाम, वैसा ही जैसा Tally में लिखा है। |
transactionType | रिकॉर्ड का प्रकार: sales, ledgers/debtors, वगैरह। |
batchStart, batchTotal | इस साइकल में मिले कुल रिकॉर्ड में यह बैच कहाँ से शुरू होता है (0, फिर 250, फिर 500), और कुल कितने मिले। |
records | रिकॉर्ड ख़ुद, हर रिक्वेस्ट में अधिकतम 250 — वही array जिस पर आपका loop चलता है। |
records के अंदर फ़ील्ड के नाम Tally के अपने हैं, बड़े अक्षरों में, और आपके user-defined फ़ील्ड अपने सीधे नामों से ही आते हैं। हर वैल्यू टेक्स्ट होती है, राशि और तारीख़ें भी, और जो फ़ील्ड Tally में ख़ाली है वह उस रिकॉर्ड में शामिल नहीं होता — इसलिए हर स्टेप को उन्हीं फ़ील्ड पर बनाएँ जो आपने चरण 7 में चुने थे।
एक रिक्वेस्ट, संक्षेप में
{
"companyCode": "010001",
"companyName": "Acme Traders",
"transactionType": "sales",
"batchStart": 0,
"batchTotal": 312,
"records": [
{
"GUID": "0a1b2c3d-0000-4000-8000-000000000001-00000101",
"REMOTEID": "0a1b2c3d-0000-4000-8000-000000000001-00000101",
"DATE": "20250401",
"VOUCHERNUMBER": "101",
"VOUCHERTYPENAME": "GST SALES",
"PARTYLEDGERNAME": "Example Customer Pvt Ltd",
"AMOUNT": "5900.00",
"PARTYGSTIN": "29XXXXXXXXXX1Z5",
"ALLINVENTORYENTRIES": [
{
"STOCKITEMNAME": "Sample Item A",
"BILLEDQTY": "10 Nos.",
"RATE": "500.00/Nos.",
"AMOUNT": "5000.00"
}
]
}
]
}
जिस फ़ील्ड पर सब कुछ बनाना है वह GUID है — उस वाउचर या लेजर के लिए Tally की स्थायी पहचान — और उसकी जगह REMOTEID, क्योंकि कुछ वाउचर इसे उसी नाम से रखते हैं। जब कोई इनवॉइस में बदलाव करता है, जब उसका e-invoice विवरण बाद में आता है, या जब कोई जवाब ब्रिज तक नहीं पहुँचता, तो वही रिकॉर्ड उसी पहचान के साथ दोबारा भेजा जाता है। उसी पर मिलान करके अपडेट करें, नया जोड़ने के बजाय: इससे एक इनवॉइस एक ही पंक्ति रहता है — शीट में, डैशबोर्ड में या पोर्टल में।
कौन-सी कंपनियाँ और रिकॉर्ड के कौन-से प्रकार शेयर हों, यह आप तय करते हैं। उनके लिए पूरा वाउचर या लेजर एन्क्रिप्टेड कनेक्शन पर जाता है: पार्टी और mailing नाम, GSTIN, PAN, डाक पता, ईमेल, फ़ोन और मोबाइल नंबर, आइटम के नाम, दरें, टैक्स की राशि और बैलेंस। ज़्यादातर फ़र्में खातों की पूरी सूची के बजाय ledgers/debtors और ledgers/creditors शेयर करती हैं, जिससे PC से बाहर जाने वाली जानकारी उन्हीं पार्टियों तक सीमित रहती है जिनके साथ आप वास्तव में कारोबार करते हैं।
रिकॉर्ड तभी जाते हैं जब कुछ बदला हो, इसलिए शांत रात का शांत रहना डिज़ाइन का हिस्सा है। पक्की पुष्टि चाहिए तो स्टेटस रिपोर्ट हर रन के बाद अपने अलग फ़्लो में एक सारांश भेजती है, उसी फ़्लो के URL और KEY के साथ। इसे ख़ुद जोड़ें:
bridge.yml — global: ब्लॉक के अंदर
global:
heartbeat:
url: "PASTE-THE-STATUS-FLOW-URL"
api_key: "PASTE-THE-STATUS-FLOW-KEY"
हर रिपोर्ट में outcome (success, partial या blocked), blockedReason (gateway_error, gateway_empty, no_companies), outboxDepth, recordsEnqueued, pendingStreams, nextFireAt और hostname होते हैं। सबसे काम का अलर्ट: रात वाले शेड्यूल पर, अगर किसी मशीन से 26 घंटे तक कोई रिपोर्ट न आए तो संकेत उठाएँ।
Tally PC पर, ऊपर बताए तरीक़े से उसी फ़ोल्डर में Command Prompt खोलें और यह चलाएँ:
Command Prompt
sa-tally-bridge.exe status --config bridge.yml
यह क्या प्रिंट करता है
sa-tally-bridge [version] on TALLY-PC
Schedule : cron "30 21 * * *" (Asia/Kolkata)
Last run : Sat, 15 Aug 2026 21:30:04 IST → 21:34:11 (partial)
Next run : Sat, 15 Aug 2026 21:45:04 IST
Records : 312 enqueued last run; outbox depth 0
Pending : 1 stream(s) awaiting retry
- Globex Industries / sales : company_closed
ok Acme Traders / sales : synced (watermark 260321/260409, 312 records)
ok Acme Traders / stockItems : up_to_date (watermark 8821/8821, 0 records)
जब पूरा रन ही रुक गया हो, तब Last run और Next run के बीच एक Blocked : लाइन दिखती है। outbox depth उन बैचों की गिनती है जो अभी डिलीवर होने बाक़ी हैं; 0 वही है जो आप चाहते हैं। watermark 260321/260409 सादे नंबरों में बुकमार्क है: जहाँ तक का चेंज नंबर पढ़ा जा चुका है, फिर कंपनी का अभी का चेंज नंबर — दोनों मिल जाएँ तो सब कुछ आ चुका है। status आख़िरी पूरे हुए रन की जानकारी देता है।
| स्टेटस | अर्थ | दोबारा कोशिश? |
|---|---|---|
synced | नए या बदले हुए रिकॉर्ड पढ़ लिए गए और भेजने के लिए कतार में लग गए। | हो गया |
up_to_date | Tally ने जवाब दिया और कुछ नहीं बदला: यही स्वस्थ, शांत स्थिति है। | हो गया |
company_closed | वह कंपनी TallyPrime में खुली नहीं है, आम तौर पर डेस्कटॉप पर लॉगिन प्रॉम्प्ट खड़ा रहता है। | हाँ |
type_map_failed | इस बार वाउचर टाइप की सूची नहीं पढ़ी जा सकी, इसलिए ब्रिज ने उस स्ट्रीम को रोके रखा, ताकि आपके कस्टम टाइप ग़लत शीर्षक के नीचे दर्ज न हों। | हाँ |
no_counter | कंपनी ने इस बार कोई चेंज काउंटर नहीं बताया। | हाँ |
needs_backfill | सबसे पहला सिंक, जिसे first_run_guard ने रोक रखा है। इसे sa-tally-bridge.exe status --config bridge.yml --json सूची में दिखाता है। | नहीं |
error | कोई कोशिश पूरी नहीं हुई; कारण दर्ज है और बुकमार्क अपनी जगह ही रहा, इसलिए वे रिकॉर्ड अगली बार आ जाते हैं। | हाँ |
status प्रिंट करता है।.1 से .5 तक। सपोर्ट को सबसे पहले यही भेजें।| आपको क्या दिखता है | इसका क्या अर्थ है | क्या करें |
|---|---|---|
| सब कुछ डिलीवर हो चुका है, और फ़्लो ने अभी कार्रवाई शुरू नहीं की। | फ़्लो सेव तो है पर चालू नहीं है, या रोका हुआ है, इसलिए अब तक आया डेटा उसके टेस्ट सैंपल के रूप में रखा है। | फ़्लो खोलें और सक्रिय करें दबाएँ। अगले सिंक पर पूरी कार्रवाई होती है। |
outbox depth बढ़ता ही जा रहा है। | फ़्लो ने अभी उन बैचों को स्वीकार नहीं किया है: KEY बदल चुकी है, URL किसी दूसरे फ़्लो का है, या रिकॉर्ड का कोई प्रकार हाथ से जोड़ा गया है जिसका गंतव्य अभी तय नहीं है। | पैनल से URL : और KEY : दोबारा कॉपी करें और ब्रिज रीस्टार्ट करें; देखें कि रिकॉर्ड के उस प्रकार का अपना URL भरा है, या global: के नीचे webhook_url भरा है। इस बीच सब कुछ कतार में सुरक्षित रहता है। |
एक कंपनी हमेशा company_closed दिखाती है। | वह TallyPrime में खुली नहीं है, आम तौर पर इसलिए कि उसका लॉगिन प्रॉम्प्ट खड़ा है। | Tally विंडो में उस कंपनी को खोलें और वहीं उसका पासवर्ड टाइप करें। अगली कोशिश पर ब्रिज उसे ले लेता है। |
Blocked : gateway_error या gateway_empty, और हर कंपनी company_closed। | Tally ने अभी जवाब देना शुरू नहीं किया, या जवाब दिया पर कोई कंपनी खुली नहीं थी; पढ़ने लायक़ लाइन Blocked वाली है। (gateway ब्रिज का अपना शब्द है, Tally के port 9000 वाले कनेक्शन के लिए।) | Tally विंडो देखें: Tally शुरू करें, या वहाँ खड़े प्रॉम्प्ट को हटाएँ। |
loop के नीचे companyName या batchTotal ख़ाली आ रहा है। | loop का Include parent fields in each entry स्विच बंद है। | loop स्टेप खोलें और उसे चालू करें। |
| किसी के नया उत्पन्न करें दबाने के बाद डिलीवरी रुक गई। | नई KEY जारी हुई और फ़्लो publish हो गया, इसलिए अब फ़्लो उसी KEY की अपेक्षा करता है। | नई KEY bridge.yml में कॉपी करें, ब्रिज रीस्टार्ट करें, फिर लाइव अपडेट करें दबाएँ। |
| PC रीस्टार्ट होने के बाद से कोई रिकॉर्ड नहीं आया। | ब्रिज आपके साइन-इन किए हुए Windows सेशन में चलता है, और Tally में उसकी कंपनियाँ खुली होनी चाहिए। | साइन इन करें और कंपनियाँ खोलें; ब्रिज लगभग एक मिनट बाद अपने आप चलने लगता है। जिस PC पर कोई बैठता नहीं, वहाँ Windows auto-logon चालू कर दें, फिर यह ख़ुद ही लौट आता है। |
| रिकॉर्ड दो बार आ रहे हैं। | पुराना Tally add-on अब भी लोड है; या वही कंपनी अनुसूची ट्रिगर पर Tally डेटा सोर्स के रूप में भी जुड़ी है; या वह दो key के नीचे दो बार लिखी है। | जो एक रास्ता आप चाहते हैं उसे रखें, दूसरा हटा दें, ब्रिज रीस्टार्ट करें। |
synced, और साथ में Records : 0। | इस साइकल में जो बदला वह कनेक्टर के दायरे से बाहर के वाउचर टाइप थे, जैसे receipts। | कुछ नहीं करना है: बिक्री और खरीद रिकॉर्ड अप-टू-डेट हैं। |
भरोसेमंदी, तीन पंक्तियों में।
रिकवरी पॉइंट (RPO): व्यावहारिक रूप से शून्य। आपके रिकॉर्ड का असली स्रोत Tally ही बना रहता है, और किसी कंपनी का बुकमार्क तभी आगे बढ़ता है जब वे रिकॉर्ड डिस्क पर बनी कतार में सुरक्षित पहुँच जाएँ — इसलिए इंटरनेट, PC या ब्रिज के उपलब्ध न रहने के दौरान आपकी चुनी हुई कंपनियों और रिकॉर्ड के प्रकारों में जो कुछ दर्ज हुआ, वह अगले रन पर उठा लिया जाता है, कुछ भी दोबारा टाइप नहीं करना पड़ता।
रिकवरी टाइम (RTO): आपके PC पर निर्भर। कोई रिकवरी प्रक्रिया है ही नहीं: Windows में साइन इन होते ही और Tally में कंपनियाँ खुलते ही ब्रिज लगभग एक मिनट बाद ख़ुद चलने लगता है, बीच में निकल गए शेड्यूल किए समय की भरपाई कर लेता है, और जो कंपनी खुली नहीं थी उसे हर 15 मिनट में दोबारा आज़माता है।
उपलब्धता: Windows इसे साइन-इन पर शुरू करता है, और कभी रुक जाए तो फिर से शुरू कर देता है — एक-एक मिनट के अंतर पर तीन कोशिशें। पूरी तस्वीर: भरोसेमंदी, एक नज़र में।
sa-tally-bridge.exe test जितनी बार चाहें चलाएँ: यह कोई बुकमार्क आगे नहीं बढ़ाता और जो पहले सिंक हो चुका है उसमें कुछ नहीं बदलता।HTTPS_PROXY सेट करें — जैसे http://proxy.example.local:8080 — और उसे रीस्टार्ट करें।up_to_date दिखाने लगे तब रात वाले शेड्यूल पर चले जाएँ।