{"products":[{"slug":"adms","name":"ADMS","description":"Attendance devices on the wall — enrolment, punches and device health.","access":"on-request","permissions":[{"code":"adms:device:read","description":"View the organisation’s attendance devices"},{"code":"adms:punch:read","description":"View attendance punches recorded by those devices"},{"code":"adms:device:manage","description":"Register, claim and configure devices, and send them commands — pull data, reboot, clear logs, set options"}]},{"slug":"attendance","name":"Attendance","description":"The attendance engine — who was present, late, absent or on leave, judged against configurable policies, with overtime and notification rules.","access":"on-request","permissions":[{"code":"attendance:record:view","description":"View the organisation’s attendance — today’s roll, the grid and each person’s history"},{"code":"attendance:record:manage","description":"Map device PINs to people, import and export the roster, mark attendance by hand and correct a mark"},{"code":"attendance:policy:view","description":"View the attendance policies, groups and who is assigned which policy"},{"code":"attendance:policy:manage","description":"Create policy versions, groups and effective-dated assignments; set the default policy"},{"code":"attendance:overtime:view","description":"View the overtime blocks and the approval queue"},{"code":"attendance:overtime:approve","description":"Approve or reject an overtime block"},{"code":"attendance:leave:view","description":"View leave types, applications and balances"},{"code":"attendance:leave:approve","description":"Create and edit leave types including their yearly allowance, and approve or reject a leave application"},{"code":"attendance:report:view","description":"View and export the late, early-leave, absence and overtime reports"},{"code":"attendance:notification:manage","description":"Configure the notification rules — event, audience, recipient, channel and template — and read the log of every send and skip"},{"code":"attendance:notification:read","description":"Read this organisation’s attendance notification inbox — what the engine could not do and needs an operator to look at"}]},{"slug":"forms","name":"Forms","description":"Forms and responses, each form public, authenticated or members-only.","access":"on-request","permissions":[{"code":"forms:form:read","description":"View forms and their questions"},{"code":"forms:form:create","description":"Create a form"},{"code":"forms:form:update","description":"Edit a form’s questions and settings"},{"code":"forms:form:delete","description":"Delete a form"},{"code":"forms:form:publish","description":"Publish a form and share its link"},{"code":"forms:response:read","description":"View submitted responses"},{"code":"forms:response:export","description":"Export responses to CSV or Excel"}]},{"slug":"notifier","name":"Notifier","description":"Email, SMS and voice campaigns, with per-org balances and an itemised ledger.","access":"on-request","permissions":[{"code":"notifier:template:read","description":"View templates, starters, media and previews"},{"code":"notifier:template:create","description":"Create templates and starters, and upload media"},{"code":"notifier:template:update","description":"Edit templates, variants and variable schemas"},{"code":"notifier:template:delete","description":"Delete templates, starters and media"},{"code":"notifier:campaign:read","description":"View campaigns, steps, runs and reports"},{"code":"notifier:campaign:create","description":"Create campaigns"},{"code":"notifier:campaign:update","description":"Edit, reschedule and cancel campaigns"},{"code":"notifier:campaign:delete","description":"Delete campaigns"},{"code":"notifier:campaign:run","description":"Launch campaigns from the UI"},{"code":"notifier:campaign:exclusions","description":"Manage campaign exclusions"},{"code":"notifier:usage:read","description":"View messages, usage, billing and pricing"},{"code":"notifier:usage:topup","description":"Add credit to the organisation balance (self-service)"},{"code":"notifier:api:send","description":"Send raw messages and retry failed ones"},{"code":"notifier:api:read","description":"Read message and campaign status via the API"},{"code":"notifier:api:campaign","description":"Launch an existing campaign via the API"},{"code":"notifier:settings:save","description":"View and change organisation settings"},{"code":"notifier:settings:test","description":"Send test messages through each integrated channel"},{"code":"notifier:settings:branding","description":"View and manage channel branding (email domain, SMS and voice sender IDs)"}]},{"slug":"people","name":"People","description":"Everyone an organisation tracks — staff and external contacts alike.","access":"on-request","permissions":[{"code":"people:person:read","description":"View people and their details"},{"code":"people:person:create","description":"Add a person"},{"code":"people:person:update","description":"Edit a person’s details"},{"code":"people:person:delete","description":"Delete a person"},{"code":"people:list:read","description":"View lists"},{"code":"people:list:manage","description":"Create and edit lists, static and dynamic"},{"code":"people:tag:manage","description":"Create and apply tags"},{"code":"people:attachment:read","description":"View a person’s attachments"},{"code":"people:attachment:manage","description":"Attach and remove files"},{"code":"people:self:update","description":"Edit your own person record"}]},{"slug":"school","name":"School","description":"School management — academic years, classes and sections, enrolment and admissions, student and staff records, guardians and routines.","access":"on-request","permissions":[{"code":"school:academic:view","description":"View the school’s academic setup — years, classes, groups, sections, subjects and classrooms"},{"code":"school:academic:manage","description":"Set up academic years, classes, groups, sections, subjects and classrooms, and assign subjects to sections"},{"code":"school:students:view","description":"View student records, their placements and their guardians"},{"code":"school:students:manage","description":"Add and import students, enrol them, transfer them and promote a class"},{"code":"school:guardians:manage","description":"Attach and detach a student’s guardians — this grants or removes a guardian’s access to the child’s records"},{"code":"school:admissions:view","description":"View applications for admission"},{"code":"school:admissions:manage","description":"Record applications, move them through selection and enrol accepted applicants"},{"code":"school:staff:view","description":"View staff records and their class and subject assignments"},{"code":"school:staff:manage","description":"Add staff records and assign class and subject teachers"},{"code":"school:routines:view","description":"View the bell schedule and class routines"},{"code":"school:routines:manage","description":"Set the bell schedule and build class routines"},{"code":"school:exams:view","description":"View exams, papers, seat plans, published results and merit orders"},{"code":"school:exams:manage","description":"Set up exams, papers and components, build seat plans, publish and unpublish results, and keep merit orders"},{"code":"school:fee-setup:view","description":"View the school’s fee heads, fee structures per class, late-fee rules and waivers"},{"code":"school:fee-setup:manage","description":"Create fee heads, add a new dated version of a class’s fee structure, and add or end late-fee rules"},{"code":"school:fee-waivers:approve","description":"Grant and revoke a student’s scholarship or fee waiver"},{"code":"school:fee-invoices:view","description":"View students’ invoices, payments and fee accounts, and download invoices and receipts"},{"code":"school:fee-invoices:manage","description":"Issue a month’s invoices for a class or section, cancel an invoice and issue a credit note"},{"code":"school:fee-payments:record","description":"Record a fee payment and reverse a payment recorded in error"},{"code":"school:fee-reports:view","description":"View the dues, collections and trial balance reports"}]},{"slug":"storage","name":"Storage","description":"Files for an org or a person, with quotas that warn before they block uploads.","access":"on-request","permissions":[{"code":"storage:app-data:view","description":"Read other apps’ internal files (crosses every app — grant deliberately)"}]},{"slug":"website-builder","name":"Website builder","description":"Every org’s public website — pages, notices, news, gallery and settings, managed per site.","access":"on-request","permissions":[]}]}