NovelDigital India
Priya Sharma Admin

CompanyContactPANEmailMobileProduct ValidityRenewal noRenewal dateDays leftAmountOutstandingStatus ReadFollow-up
CompanyFirst name / contactProductRenewal noOrder IDOrder dateDownload dateEmail IDMobile noRenewed onSalespersonPayment statusAmountOutstandingInvoiceActions

CompanyNameSalesperson Referred bySupply order noOrder IDOrder date Renewed onAmountReceivedOutstandingPayment status

Inventory

Items - what we sell

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.

ItemShort name HSN / SAC Validity
months
Sale RsCost RsGST % CertificateSold with
certificate
Opening
stock
In stockReorder at

Invoice noDateCompanyGSTINPlace of supply TaxableCGSTSGSTIGSTTotal PaymentSalesperson

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.

MonthInvoicesTaxable valueCGSTSGSTIGST Total taxInvoice total

Rate-wise breakup

GST rateTaxable valueCGSTSGSTIGSTTotal tax
Invoice noDateCompanyInvoice total ReceivedDifferenceBank referenceReconciled

Home

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.

Payment reminders

Sales by month

Renewed value, by the month it was renewed.

Sales by salesperson

Renewed value in the chosen period.

Outstanding by company

Renewed but not paid in full. Largest ten.

Outstanding by salesperson

The same money, by who sold it.

Renewals due by reference

Who referred the customers coming up for renewal.

Post renewal pending by salesperson

Renewed, and still waiting on KYC, delivery or payment.

Not on here yet, and why

These were asked for. Each needs a source that does not exist in the database yet, so showing a number would mean inventing one.

FigureWhat it needs first

Customers

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.

New customer

Nobody chosen yet

    Find an existing customer

    Company

    Registered address, branches, godowns - all of them together, each with its kind and its GST registration.

    Tax and registration numbers

    Places of business

    Individual KYC

    Recently added

    Grouping review

    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.

    Records with no GSTIN

    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.

    Units and branches suggested by the names

    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.

    CompanyContactEntity typeMobileEmailProductRenewal dateAmountOutstanding
    NameCompanyMobileEmailProductSourceStatusAssigned toLocked byFollow-up

    Follow-ups assigned to you

    CompanyContactPANEmail IDMobile noProduct Renewal noRenewal dateDays left Salesperson Follow-up datePredefined commentAmt O/S

    Follow-up history - click to open

    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.

    Long-term follow-up (not interested / not renewed - revisit in 2 years)

    CompanySalespersonRevisit onFollow history
    CompanyContactPANEmail IDMobile noProductRenewal noRenewal dateDays leftOrder IDSalespersonFollow statusOnline statusRemarksAmountOrder date
    UserRoleActionDate and time
    Report nameFieldsConditions

    Changes waiting for approval

    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.

    Lock and transfer requests

    TypeName / companyNameProductRequested actionRequested byRequested on

    Sales-initiated unlocks and transfers wait here until an admin approves them. Admin-initiated ones apply immediately.

    DateTypeName / companyActionByTo
    TypeName / companyLocked byLocked onDays lockedStatus

    Renewals and leads that have been locked to a salesperson without moving to Renewed or Converted within the threshold.

    NameRoleEmailMobileStatus

    The screen

    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.

    Documents, per organisation

    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.

    Click a day to cycle it: present, half day, leave, holiday, absent, then back to unmarked.

    Dropdown lists

    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.

    Reassign renewals in bulk

    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
    OrderStatus

    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.

    Our organisations

    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.

    Zoho connection (from orgs.js)

    NameSuffix (branding)Zoho org ID

    Customer master custom fields

    Field labelType

    Appears as an extra field on the customer form for both Admin and Sales.

    States and cities

    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.

    Sample data

    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.

    Loading...

    Channels and limits

    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.

    Loading...

    Follow-up pipeline chasing

    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.

    Default template for each group

    Which template the automatic send uses. Set once; individual sends can still pick another.

    Who is due right now

    Sends nothing. This is the same check the sweep makes, run now.

    Recent runs

    WhenTriggerDueSentFailedSkippedNote

    Sending invoices to Zoho Books

    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.

    ...

    Bringing customers in from Zoho Books

    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.

    Import one organisation's contacts, field by field

    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 nameTypeChannelLast edited
    Date and timeCompanyChannelReminder gapModeSent by

    Day summary

    SalespersonDateCustomers workedCalls loggedEmails sentWhatsApp sentLogin hoursActive hours

    Tracks actual customer work (calls, reminders, updates) rather than just login/logout time.

    Backup - one file out, one file in

    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.

    Export - take today's data with you

    Everything, as of this moment, in one file the Import button on the other machine understands.

    Import - replace this machine's data with a backup file

    Choose the file the other machine exported. Everything here is replaced, the application restarts, and everyone signs in again - about a minute.

    Software update - no more File Station

    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.)

    Import the renewal application sheet (CSV)

    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.

    Enquiry report

    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.

    Open enquiries

    Assigned toEnquiryProductStatus Follow-up dateLast updateDays silent

    Activity, last 7 days

    User nameDateNew enquiriesUpdates madeEnquiries touched
    Referred byCustomers taggedUpcoming renewalsTotal 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.

    CompanyCurrently assignedReassign to

    Lapsed

    CompanyContactProductRenewal no Expired onDays agoValue SalespersonLast we heardActions

    Vendor master

    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.

    Add a vendor

    The state decides whether their bills are CGST+SGST or IGST, so it is worth getting right.

    Vendors

    Purchase bills

    Bills received from vendors. The tax splits itself from the vendor's state and the place of supply, line by line.

    Enter a bill

    Lines

    Bills entered

    Payment made

    Money out. Against a particular bill, or on account when it is not for one bill in particular.

    Record a payment

    Payments made

    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.

    NameTypeOrganisationAccount / card no IFSCBranchAddressActions

    Accounts

    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.

    Billing & Outstanding

    Proforma invoices

    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.

    NumberCustomerRenewalDateTotalStatus

    Tax invoices

    The GST invoices. Issue burns the INV number; Record payment writes a PMT-numbered receipt against the invoice, and the balance follows.

    NumberCustomerDateTotal BalanceStatus

    Purchase bills

    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.

    BillVendorDateTotalStatus

    Credit waiting for approval

    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.

    CustomerCompanyDaysAsked byAmountWhy

    Outstanding, by salesperson

    Everyone sees everyone's - deliberately, so a colleague's customer gets chased when they are away. Credit shows who asked for it.

    InvoiceCustomerSalespersonDueBalanceCreditOverdue

    Reports

    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.

    Documents

    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.

    Add a document

    Stored documents

    CompanyContactProductRenewal no DownloadedDelivered onModeTo / by TrackingActions

    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.

    CompanyContactProductLapsed on Follow-upLast commentSalespersonActions

    ReferrerContactArrangementCustomers RenewalsBusiness broughtCommission earned PaidOwedActions

    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.

    Payments

    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.

    Record a receipt

    Receipts

    Credit Note

    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.

    Raise a credit note

    Credit Notes

    Debit Note

    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.

    Raise a debit note

    Debit Notes

    DSC Application

    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.

    Applicant

    Applicant documents - PAN, Aadhaar and a passport-size photo

    Organisation - leave blank for an individual