| Company | Contact | PAN | Mobile | Product | Validity | Renewal no | Renewal date | Days left | Amount | Outstanding | Status | Read | Follow-up |
|---|
| Company | First name / contact | Product | Renewal no | Order ID | Order date | Download date | Email ID | Mobile no | Renewed on | Salesperson | Payment status | Amount | Outstanding | Invoice | Actions |
|---|
| Company | Name | Salesperson | Referred by | Supply order no | Order ID | Order date | Renewed on | Amount | Received | Outstanding | Payment status |
|---|
The product list, per company. The name goes on proformas and reminders; the short name is what dashboard columns show; the validity decides a certificate's expiry date. Renaming an item renames it on existing certificates and renewals too.
One list for all three companies.
| Item | Short name | HSN / SAC | Validity months |
Sale Rs | Cost Rs | GST % | Certificate | Sold with certificate |
Opening stock | In stock | Reorder at |
|---|
| Invoice no | Date | Company | GSTIN | Place of supply | Taxable | CGST | SGST | IGST | Total | Payment | Salesperson |
|---|
Outward supplies per month, split the way GSTR-1 and GSTR-3B need them. Intra-state sales carry CGST and SGST, inter-state carry IGST.
| Month | Invoices | Taxable value | CGST | SGST | IGST | Total tax | Invoice total |
|---|
| GST rate | Taxable value | CGST | SGST | IGST | Total tax |
|---|
| Invoice no | Date | Company | Invoice total | Received | Difference | Bank reference | Reconciled |
|---|
Everything below is counted from the renewals this login can see. Figures that have no source in the database yet are listed at the bottom rather than shown as zero — a zero and "not wired up" look identical on a dashboard, and only one of them means business is quiet.
Renewed value, by the month it was renewed.
Renewed value in the chosen period.
Renewed but not paid in full. Largest ten.
The same money, by who sold it.
Who referred the customers coming up for renewal.
Renewed, and still waiting on KYC, delivery or payment.
These were asked for. Each needs a source that does not exist in the database yet, so showing a number would mean inventing one.
| Figure | What it needs first |
|---|
Find one already on file, or add a new one. One master per company: the state, the PAN and the entity type are read out of the GSTIN as you type it - none of them is typed twice, because a number entered twice eventually disagrees with itself.
Records that share a GSTIN were grouped automatically - a shared GSTIN proves they are one registered entity. Everything below is only a suggestion based on the name, so nothing here is grouped until you say so. Take as long as you like; the app works either way.
Same-name records are listed together. Tick the ones that are the same customer, give the company a name, and press Group. Anything you are unsure about, leave alone.
Where a name carries a department or a place - "Southern Railway - Electrical", "Garrison Engineer, Wellingon" - these are the units it suggests. Spellings that look like typos of one another are marked, but never merged: "Audit - I" and "Audit - II" are two edits apart and are different offices.
| Company | Contact | Entity type | Mobile | Product | Renewal date | Amount | Outstanding |
|---|
| Name | Company | Mobile | Product | Source | Status | Assigned to | Locked by | Follow-up |
|---|
| Company | Contact | PAN | Email ID | Mobile no | Product | Renewal no | Renewal date | Days left | Salesperson | Follow-up date | Predefined comment | Amt O/S |
|---|
Every comment saved against a renewal, newest first, grouped by the salesperson who saved it. The time is when Save was pressed, not the follow-up date.
| Company | Salesperson | Revisit on | Follow history |
|---|
| Company | Contact | PAN | Email ID | Mobile no | Product | Renewal no | Renewal date | Days left | Order ID | Salesperson | Follow status | Online status | Remarks | Amount | Order date |
|---|
| User | Role | Action | Date and time |
|---|
| Report name | Fields | Conditions |
|---|
A change to a customer already on file applies at once when an admin makes it, and waits here when anybody else does. Creating a new customer never waits - there is nothing to overwrite, and the person at the counter should not have to.
| Type | Name / company | Name | Product | Requested action | Requested by | Requested on |
|---|
Sales-initiated unlocks and transfers wait here until an admin approves them. Admin-initiated ones apply immediately.
| Date | Type | Name / company | Action | By | To |
|---|
| Type | Name / company | Locked by | Locked on | Days locked | Status |
|---|
Renewals and leads that have been locked to a salesperson without moving to Renewed or Converted within the threshold.
| Name | Role | Mobile | Status |
|---|
Changes as you move the controls, so it can be judged rather than imagined. Nothing is kept until Save - and Undo changes puts back what is stored.
Invoices, payment receipts and credit and debit notes go to customers under the organisation's own name, so each can carry its own colours. Leave one alone and it uses the screen's navy.
Every dropdown in the app reads its options from here. Adding one makes it available immediately, everywhere that list is used - no code change and no restart.
Every renewal carrying one salesperson's name moves to another (or to unassigned, if the second box is left blank). Use it to clear the wrongly stamped Priya Sharma rows in one go.
| Option | Short name for dashboard columns |
Order | Status |
|---|
Removing an option retires it rather than deleting it: a customer already recorded against "Partner" still has to read correctly, and a deleted option leaves those records pointing at nothing. A retired option disappears from every dropdown and can be brought back.
What appears on the invoices each organisation raises. The GSTIN fills in the state, the PAN and the registered flag, exactly as it does on a customer - the state code is what decides CGST and SGST against IGST on every invoice, so it is read off the number rather than typed.
| Name | Suffix (branding) | Zoho org ID |
|---|
| Field label | Type |
|---|
Appears as an extra field on the customer form for both Admin and Sales.
Used by the address on the customer form - the city list follows the state selected. India has far more towns than any built-in list carries, so add the ones you need here.
This file carries its own sample records so the screens can be reviewed. It is a design reference and holds no connection to Zoho - the live data lives in the real application, which reads the database the Zoho import fills and ships with no sample records at all. Clearing here shows what the app looks like before its first sync.
Stopping one channel leaves the other running - useful when WhatsApp is not paired but email is fine.
Office time. Takes effect straight away.
Seconds. Sending a hundred at once is what gets a WhatsApp number blocked.
Guards against a bad import putting hundreds of renewals on one day.
Separate from renewal reminders. This chases customers who are stuck at one follow status - waiting on a video, on documents, on payment - and the message says what they have to do next.
Seconds.
Days at one status. Nought means chasing the same morning they were told what to do.
Days. Without this a stuck record is written to daily.
Then it stops and leaves it to a person.
Stuck records in one run.
Which template the automatic send uses. Set once; individual sends can still pick another.
Sends nothing. This is the same check the sweep makes, run now.
| When | Trigger | Due | Sent | Failed | Skipped | Note |
|---|
Invoices raised here have to reach Books, or the accounts and the GST return are built from half the picture. Nothing is ever pushed twice, and a customer who is not already in Books is reported rather than created.
The other direction: contacts and their renewal dates read out of Books and into this app. This used to run every six hours with no way to stop it, which is how a database that had been emptied on purpose filled itself back up overnight.
Runs once, whether the automatic pull is on or off.
Reads a sample of the contacts as they are in Books right now and lists every field found in them - including any custom field this app has never looked at. Decide each one, then import. Only contacts: no quotations and no invoices, and only the organisation chosen here.
| Template name | Type | Channel | Last edited |
|---|
| Date and time | Company | Channel | Reminder gap | Mode | Sent by |
|---|
| Salesperson | Date | Customers worked | Calls logged | Emails sent | WhatsApp sent | Login hours | Active hours |
|---|
Tracks actual customer work (calls, reminders, updates) rather than just login/logout time.
Export downloads a single file holding the whole database and every uploaded document. Import takes that file and REPLACES this machine's data with it - which is exactly right when the file just came from the other machine, and disastrous when it is old. The full drill is in LAPTOP-AND-STANDBY.md; the one rule is: only one machine live at a time.
Everything, as of this moment, in one file the Import button on the other machine understands.
Choose the file the other machine exported. Everything here is replaced, the application restarts, and everyone signs in again - about a minute.
Take the novel-renewal-OTA-<date>.tar.gz file from the release, choose it here, press Apply. The application lays the new code down itself and restarts - about a minute, data untouched. (If Container Manager ever does a Build, re-apply the newest update after.)
In Google Sheets open the RenewalSHEET tab, then File > Download > Comma Separated Values, and choose that file here. Every application becomes a customer, a person, a certificate and a renewal row - reusing what Zoho already brought in, never duplicating a renewal number, and listing every place the sheet disagrees with our records so it can be double-checked.
Every open enquiry with who holds it and how long it has sat untouched, and each person's activity by day. An enquiry updated today shows green; one silent for more than a day shows red - that is the list to read out at the evening review.
| Assigned to | Enquiry | Product | Status | Follow-up date | Last update | Days silent |
|---|
| User name | Date | New enquiries | Updates made | Enquiries touched |
|---|
| Referred by | Customers tagged | Upcoming renewals | Total outstanding |
|---|
One consolidated summary per referrer (e.g. a consultant), so you can send them a single renewal/outstanding report instead of contacting every tagged customer individually.
| Company | Currently assigned | Reassign to |
|---|
Lapsed
| Company | Contact | Product | Renewal no | Expired on | Days ago | Value | Salesperson | Last we heard | Actions |
|---|
Who we buy from. The balance shown is their opening balance plus their bills minus what we have paid - each of those is a row you can open.
The state decides whether their bills are CGST+SGST or IGST, so it is worth getting right.
Bills received from vendors. The tax splits itself from the vendor's state and the place of supply, line by line.
Money out. Against a particular bill, or on account when it is not for one bill in particular.
These appear on invoice footers and are what a receipt is matched against. A credit card is here too because money goes out of one the same way it goes out of a bank.
| Name | Type | Organisation | Account / card no | IFSC | Branch | Address | Actions |
|---|
Not built yet.
What it will hold
Ledgers, trial balance, and the GST position across all three organizations.
What it needs first
Sales and purchase both feeding it. Sales does; purchase does not yet, so any number here would be half the picture.
Raised automatically when a renewal is marked Renewed, as drafts. Open one, take the token line off if the customer brings their own, then Issue - that burns a PI number. Once the payment is in, Convert makes the tax invoice.
| Number | Customer | Renewal | Date | Total | Status |
|---|
The GST invoices. Issue burns the INV number; Record payment writes a PMT-numbered receipt against the invoice, and the balance follows.
| Number | Customer | Date | Total | Balance | Status |
|---|
What we buy - tokens from the supplier, mostly. A bill for a stocked item puts the quantity into stock as it is saved, referenced to the bill.
| Bill | Vendor | Date | Total | Status |
|---|
Invoices that give credit with nothing received against them. They cannot be issued until an admin approves - the salesperson who asked owns the follow-up.
| Customer | Company | Days | Asked by | Amount | Why |
|---|
Everyone sees everyone's - deliberately, so a colleague's customer gets chased when they are away. Credit shows who asked for it.
| Invoice | Customer | Salesperson | Due | Balance | Credit | Overdue |
|---|
Not built yet.
What it will hold
Reminder history, day summary, reference report, salesperson performance, and anything exported for a meeting.
What it needs first
These exist today under Admin. They belong here - Admin should be settings, not reports.
Filed by company, then by the individual within it - a company has several signatories and their papers are not interchangeable. Files are renamed on the way in from the person and their PAN or Aadhaar, so a folder of them is readable without opening any of them.
| Company | Contact | Product | Renewal no | Downloaded | Delivered on | Mode | To / by | Tracking | Actions |
|---|
Customers who lapsed and were picked up again. They are in Followup like any other renewal - this is the same list narrowed to the ones being won back, so the attempt does not get lost among the renewals that never lapsed.
| Company | Contact | Product | Lapsed on | Follow-up | Last comment | Salesperson | Actions |
|---|
| Referrer | Contact | Arrangement | Customers | Renewals | Business brought | Commission earned | Paid | Owed | Actions |
|---|
What can go on an invoice line - the name, its HSN or SAC code, its rate and its GST percentage. An invoice line takes all four from here, so a rate corrected once is corrected everywhere it is used next.
What came in, how, and against which invoice. A receipt can be more than the invoices it is put against - the remainder stays on the customer as credit rather than being forced onto something, which is what shows as unused credit on their record.
Reducing an invoice already raised - a cancelled certificate, an overcharge, a discount agreed after the fact. It references the invoice it adjusts and carries its own number series, because GST treats it as a document in its own right rather than as a negative invoice.
Charging more against an invoice already raised - an extra token, a re-issue fee, a rate corrected upwards. The mirror of the credit note, with its own series for the same reason.
One form, one Save. The customer, the applicant, the papers and the certificate are all filed together - documents as PDF/JPG/PNG, up to 4 MB each.