No fee reminders at 11 p.m. Ever. 11 p.m.
Three school-side controls — quiet hours, a promotional window and per-channel daily caps — built into every Inkwelly school so parents are never woken up by a fee reminder, and the school is never woken up by an over-budget invoice. OTP login codes always bypass, because regulators require them to reach.

Why a parent should never be woken up by your school's ERP
Every Indian principal who has run a parent group on a personal phone knows the feeling. It is 10:47 p.m. on a Tuesday in March. The accountant, working late on the fee-defaulter list, presses Send on a 200-parent reminder broadcast that he forgot to schedule for the morning. Within fifteen minutes, two parents have replied with annoyance, one parent has called the school's emergency number, and one mother has marked the WhatsApp number as spam. By Wednesday morning, the school's WhatsApp Business number is rate-limited for 24 hours and the office cannot send the fee receipts that did need to go out today.
The cost compounds quietly. A late-night promotional message is not just a parent irritation — it is a Meta spam-metric hit that lowers the quality tier of the school's WhatsApp Business account. The school's transactional messages then get throttled the next day. Parents who never received yesterday's legitimate fee receipt assume the school is disorganised. The fee desk gets twelve phone calls before lunch. One unscheduled 11 p.m. broadcast costs the school a week of reputation and three days of staff time.
Inkwelly is engineered to protect the school from itself. Three controls — quiet hours, a promotional window and per-channel daily caps — are first-class settings on every Inkwelly school. They apply by default the day the school goes live. The accountant can press Send at 10:47 p.m. and Inkwelly will quietly hold the message until 7 a.m. the next morning. The parent sleeps. The school's WhatsApp account stays clean. The morning fee receipts go out on time.

How quiet hours and the promotional window actually work
When a message is created — either by an automatic alert from the rest of Inkwelly or by an office assistant pressing Send on a broadcast — the system runs a check before the message ever reaches the WhatsApp, SMS or Email vendor. First, is this a transactional notice, a promotional send, or an OTP login code? OTP login codes always go through, immediately, because regulators define a failure to deliver an OTP as a different kind of problem from a parent-irritation problem. The other two run through the windows.
Quiet hours are checked next. The school configures a window — typically 9 p.m. to 7 a.m. India Standard Time — and picks one of two behaviours. Hold keeps the message in a queue and sends it the moment the window opens at 7 a.m. Drop discards the message silently with a record in the log so the principal can investigate at audit time. Both behaviours are equally good — the school picks based on whether holding a 9:14 p.m. absence alert until 7 a.m. is useful or stale.
The promotional window is the third check, and it applies only to promotional messages — parent-teacher-meeting reminders, alumni-event invitations, scholarship announcements. The school sets a daytime window (typically 10 a.m. to 6 p.m. IST) and Inkwelly will not send promotional content outside it, no matter what the office assistant tries. Transactional notices and OTPs bypass this window — the school can send a fee receipt at 11:43 p.m. and Inkwelly recognises it as transactional and sends it. Same for an OTP login code at 5:30 a.m.
What the three controls cover
- Quiet hours — a per-school window, typically 9 p.m. to 7 a.m. IST, when transactional and promotional messages either hold or drop
- Hold-or-drop choice — the school picks whether quiet-hour messages queue up for the morning or are discarded with a log entry
- Promotional window — a per-school daytime window, typically 10 a.m. to 6 p.m. IST, when promotional content can leave the system
- OTP login codes always bypass — they go through immediately, even at 11 p.m. or 5 a.m., because TRAI and Meta require it
- Per-channel daily caps — a daily ceiling of (say) 5,000 SMS or 5,000 WhatsApp conversations, so one runaway alert cannot exhaust the monthly budget
- Per-channel monthly caps — an absolute monthly ceiling above which the channel pauses and the principal is alerted
- Pre-flight credit check — before a 1,400-parent broadcast leaves the composer, Inkwelly shows the cost in rupees and the recipient breakdown
- Window-aware audit trail — every held, dropped or capped message appears on the log with the reason, so the principal can see exactly what happened
- Override at message level — an emergency (medical, safety, school-closure) message can be marked transactional and bypass the promotional window, with a record
- Different windows for different days — quieter Saturday evenings, different Sunday cutoffs, exam-week pre-result quiet hours, all configurable
- Group-level defaults, school-level overrides — a school group sets a recommended window; each branch can tighten or loosen as needed
- Sender-time clarity — the windows are always evaluated in the school's local time (Asia/Kolkata by default), never the cloud server's UTC
What it looks like in the office




Hold vs drop — the school chooses based on the message type
A daily absence alert at 9:14 a.m. is fresh and useful. A daily absence alert held until 7 a.m. the next morning is yesterday's news — by the time the parent reads it, the child is back in school. For an absence alert, dropping the message at quiet hours is the right call: the alert is dated, the next day's roll call will produce a fresh one, and the parent is not woken at midnight with stale information.
A fee receipt is different. A parent who pays at 10:47 p.m. expects a receipt by morning at the latest. Holding the receipt until 7 a.m. and sending it then is the right call — the parent wakes up to a clean receipt PDF, the office never has to handle a 'where is my receipt?' query, and the school's transactional reliability stays high. Inkwelly's setting is per school, not per message — pick the behaviour that fits the school's communication culture, and review it once a term.


Promotional window — protecting your Meta spam metric
Meta runs a per-business quality tier on every WhatsApp Business number. Schools that send promotional content at the wrong time — late-night Diwali greetings, weekend alumni-event invitations at 11 p.m. — get downgraded, and once downgraded, every message the school sends moves slower for the next two weeks. Indian school principals find this out the hard way on result day, when their carefully scheduled marksheet WhatsApps queue up behind a 24-hour throttle that started with an innocent holiday-greeting broadcast last Saturday.
The promotional window is the protection. Inkwelly classifies every template at creation time — transactional, promotional or OTP — and routes promotional content only through the daytime window the school has set. The school can still write the Diwali greeting whenever the office has time. Inkwelly schedules the send for the next morning automatically. The Meta quality tier stays green. The result-day batch goes out on time.
Daily and monthly caps — the third protection layer
Quiet hours protect the parent. The promotional window protects the school's Meta account. The third layer — per-channel daily and monthly caps — protects the school's budget. A daily cap of 5,000 SMS means a single misconfigured alert cannot send 50,000 SMS overnight and bill the school for a month's credit. A monthly cap of (say) 1,50,000 WhatsApp conversations means the principal sees a warning at the 80% mark, not a surprise invoice on the 1st of next month.
The caps are per channel, so the school can keep an aggressive monthly ceiling on SMS (where vendor prices are higher per message) and a relaxed one on push notifications (which cost zero). When a cap is hit, Inkwelly pauses the channel and notifies the principal — the school is never silently over-billed, and re-enabling is one click once the principal approves. Every paused message is held, not lost, so the moment the cap is raised or the next month starts, the queue flushes automatically.


OTP login codes always bypass — regulators require it
A parent who is locked out of the Inkwelly parent app at 11:43 p.m. needs the OTP login code to arrive at 11:43 p.m. A teacher logging in to mark Monday-morning attendance from a new device at 6:30 a.m. needs the OTP at 6:30 a.m. The OTP login code is a safety mechanism, not a notification, and both TRAI and Meta require it to reach the recipient instantly. Inkwelly honours this — OTP login codes bypass quiet hours, the promotional window and per-channel caps without exception.
This is not a school-configurable setting, and that is deliberate. A school that accidentally enabled quiet hours on OTP login codes would lock its parents out of the parent app every night. A school that capped OTP-SMS at 100/day would lock its teachers out on a busy admission day. The bypass is hard-coded. The other side of the same coin: an OTP login code never appears in the promotional spend on the usage dashboard — it is its own category, billed and audited separately.
“Pehle accountant sahab 10 baje raat ko fee reminder bhej dete the aur subah mujhe 6 parents ke complaint phone aate the. Ab Inkwelly khud subah 7 baje send karta hai — accountant ne press kar diya raat ko, parents ko subah mila, complaint zero. Boss ne kaha 'finally apna ERP responsible hai'.”
When schools actually use these controls
-
The 10 p.m. accountant. The school's accountant works late on the fee-defaulter list during March's fee-deadline week. He drafts the reminder at 10:30 p.m., presses Send at 10:47 p.m. Inkwelly's quiet-hours hold catches it, queues it, and sends to 312 parents at 7 a.m. the next morning. Parents wake to a clean reminder. The accountant gets to sleep on time. Nobody complains.
-
The Diwali greeting from the marketing committee. The PTA marketing committee writes a Diwali greeting on the Friday evening before the festival. They send it at 9:45 p.m., expecting it to go out immediately. Inkwelly classifies it as promotional, sees it is outside the 10 a.m. – 6 p.m. window, and holds it. At 10 a.m. on Saturday, the greeting fires to all parents. Meta's quality tier stays green. Saturday afternoon's fee receipts go out at full speed.
-
The misconfigured absence alert. A junior office assistant accidentally enables an SMS alert on every attendance event — present, absent, late — for every student. By 10:30 a.m., 18,400 SMS have queued up. Inkwelly's 5,000-SMS daily cap kicks in at 10:35 a.m., pauses the channel and notifies the principal. The principal investigates, fixes the configuration, and the next day's morning alerts (now correctly limited to absences) fit comfortably under the cap.
-
The medical emergency at 11 p.m. A child falls ill on a residential school trip. The teacher needs to message all 42 parents urgently. The teacher marks the broadcast as 'emergency / transactional' inside the composer. Inkwelly recognises the override, bypasses the promotional window, sends the WhatsApps within seconds. The override is logged with the teacher's name and time so the principal sees it on the next morning's audit.
-
The OTP login at 5:30 a.m. A maths teacher logging in from a new phone at 5:30 a.m. to mark the day's attendance receives the OTP login code in 4 seconds. Quiet hours did not apply. The daily SMS cap did not apply. The teacher logged in, marked attendance and the daily-absence alerts to parents went out as scheduled. No outage, no surprise, no human in the loop.
Common operations the office runs
- Set the quiet-hours window once per school — 9 p.m. to 7 a.m. is the default, edit if your culture differs
- Pick hold or drop as the quiet-hours behaviour — review once a term, change as needed
- Set the promotional window once per school — 10 a.m. to 6 p.m. is the default
- Set per-channel daily caps — start conservative (SMS 2,000 / WhatsApp 3,000) and raise as confidence grows
- Set per-channel monthly caps with a soft alert at 80% and a hard pause at 100%
- Mark a broadcast as 'emergency / transactional' to override the promotional window for genuinely urgent messages
- Review the held-and-dropped log every week to spot configuration mistakes early
- Adjust windows for special days — exam result, parent-teacher meeting, sports day — with a one-off override
- Group-level defaults applied automatically when a new branch is added; school-level overrides take precedence
- Audit-export the windows-and-caps history at year-end for the board's compliance review
- Restrict who can change the windows via Inkwelly's role-based access — typically Principal + IT Head only
- Use the pre-flight composer check before every large broadcast to catch outside-window or over-cap sends early
See the controls on a real school's data
Twenty-minute walkthrough. Bring your worst late-night-broadcast story. We will show how each one is caught, held or dropped, end to end. No sales pitch.
Limits, safety and the small print
Quiet hours, promotional windows and per-channel caps are protections, not absolutes. There are edge cases every school principal should understand. The windows are always evaluated in Asia/Kolkata time, regardless of where the cloud server is — Inkwelly does not surprise a school by treating the windows as UTC. Daylight-savings does not apply in India, so the windows are stable year-round. If the school operates across multiple branches with different state time-zones (rare but real for cross-border school groups), each branch's window is evaluated in its configured time-zone.
The controls do not extend to messages the school sends from outside Inkwelly. If a teacher sends a WhatsApp from her personal phone at 11 p.m., Inkwelly cannot stop it — but Inkwelly does not record it either, and the principal cannot audit it. This is the point of moving school communication into the workspace: every message that flows through Inkwelly is windowed, logged and budgeted. Messages outside the workspace are outside the school's protection.
In an emergency — medical, safety, school-closure — the school can override the promotional window at the broadcast level. The override is recorded with the user, the time, the recipient count and the reason. Quiet hours can also be overridden in genuine emergencies, but the override requires a Principal-level role and is highlighted on the next morning's audit so the school's senior team sees it. OTP login codes are the only category that bypasses everything by default, and this is hard-coded — a school cannot accidentally lock its parents out by enabling quiet hours on OTPs.
Finally, the controls do not replace good judgement. A school that sends 18 broadcasts a day and complains about the daily cap is not being protected by Inkwelly — it is being warned by Inkwelly. The settings exist to prevent disaster, not to tune a high-volume marketing machine. If your school is genuinely a high-volume communication operation, the caps and windows are a foundation; the discipline of when to send what is still the principal's call.
Belongs to
1 moduleFrequently asked
8 questionsWhat if a fee payment lands at 11:43 p.m. — does the receipt still go to the parent that night?
Yes, if your school has chosen 'hold' as the quiet-hours behaviour the receipt is held until 7 a.m. and arrives first thing in the morning. If your school has chosen 'drop' for quiet-hours transactional messages, the receipt is sent immediately on the next morning's first available send. Fee receipts are transactional, not promotional, so the promotional window does not apply — they are not delayed by the 10 a.m. – 6 p.m. rule.
Can we override quiet hours for a genuine emergency — fire, lockdown, medical?
Yes. Mark the broadcast as 'emergency / transactional' in the composer. The override is logged with the user, time and reason. Quiet-hours override requires a Principal-level role (configurable in [role-based access](/modules/identity-access-management)), so a junior office assistant cannot accidentally send a 10 p.m. broadcast by claiming emergency. Genuine emergencies — medical, safety, weather closures — are exactly the situations the override exists for.
Inkwelly me quiet hours kaise set kare?
Communications Settings खोलें, Quiet Hours card पर जाएँ, start time और end time set करें (default 9 p.m. to 7 a.m. IST), और Hold or Drop में से एक behaviour चुनें। Save दबाएँ। Setting उसी पल से active हो जाती है। Group level पर defaults set करने के लिए group admin का role चाहिए।
Will the OTP for parent-app login at 11:30 p.m. still reach the parent?
Yes. OTP login codes always bypass quiet hours, the promotional window and per-channel daily caps. This is hard-coded — the school cannot accidentally enable quiet hours on OTPs and lock parents out of the app. TRAI's DLT framework and Meta's WhatsApp policy both require OTP authentication codes to reach the recipient instantly, and Inkwelly honours that requirement.
Promo window ka matlab kya — kya hum Diwali ka greeting subah bhi nahi bhej sakte?
Promotional window typically 10 a.m. to 6 p.m. IST रहता है — यानी Diwali greeting, alumni event invitation, scholarship announcement जैसे promotional messages सिर्फ़ इसी window में जाते हैं। आप message कभी भी draft कर सकते हैं — रात को 11 p.m. भी — Inkwelly use hold कर के अगले दिन 10 a.m. पर automatically send कर देगा। Fee receipt, attendance alert, OTP — ये सब transactional हैं, promo window पर depend नहीं करते।
What stops a misconfigured automatic alert from sending 50,000 SMS overnight?
Per-channel daily caps. Each channel — SMS, WhatsApp, Email, Push — has its own daily ceiling set by the school. If a misconfigured alert tries to push past the cap, Inkwelly pauses the channel at the limit and notifies the Principal. The pending messages are held, not lost. The Principal investigates, fixes the configuration, and re-enables the channel with one click. Inkwelly never silently over-bills a school.
Do the windows apply to staff messages too — payroll, duty rosters — or only parent messages?
Yes, they apply to every message Inkwelly sends, including staff broadcasts (payroll slip notifications, exam-duty rosters, holiday declarations). Staff messages follow the same transactional vs promotional classification — a payroll-slip notification is transactional and is not held by the promotional window; a staff-event invitation is promotional and is held. Many schools keep slightly tighter quiet hours for staff because teachers genuinely value not getting work messages after dinner.
Are these settings the same across every branch in a school group, or per branch?
Both. A school group sets recommended defaults that apply to every new branch automatically. Each branch can then override the defaults — for example, a branch in a town with later school-day hours might set 10 p.m. as the quiet-hours start instead of 9 p.m. Group-level changes do not retroactively overwrite branch-level overrides. The override history is part of the audit trail.
You might also like
2 readsSee Inkwelly on your school
30-minute demo. We open your current ERP with you and load your data into Inkwelly on the call. Dated go-live plan by the end of it.