AppSystem

One platform for call center, invoicing, and team operations โ€” built so teams see only what their role needs, and new modules snap in without touching the core.

View on GitHub

Support and billing, one shared record

Most teams run their call center and their invoicing in separate tools with no shared customer record. AppSystem keeps customers, products, calls, and invoices in one place โ€” while each team only ever sees the modules and data their role grants them.

Multi-tenant from the ground up

Every organisation (tenant) gets its own isolated database. A Global Admin oversees all tenants and users from one panel, while each tenant's local admins manage their own teams and roles โ€” without ever seeing another tenant's data.

1
Set up your tenant
Provision an isolated database and create your first teams and users in minutes.
2
Assign teams & roles
Group staff into teams, then grant each team exactly the modules it needs.
3
Run the business
Call center, invoicing, and customer records โ€” one dashboard, one login.
๐Ÿ“ž
Call Center
Live customer queue with real-time, WebSocket-driven call handling and logging.
โฐ
Alarms & Reminders
Scheduled reminders tied to customers and products, run by a background scheduler.
๐Ÿงพ
Invoicing & Organisations
Sequential invoice numbering, client records, and bank account details.
๐Ÿ‘ฅ
Customers & Products
A shared customer database and product catalog, with per-customer status tracking.
๐Ÿ—‚๏ธ
Teams & Roles
Per-module roles by team โ€” one team runs Call Center + Alarms, another only Invoices + Organisations.
๐Ÿ”
Secure by default
Each workspace chooses its login: a one-time email link, a password, or both. Admins can act as any team member.

Built to extend

Every business module โ€” Customers, Invoices, Call Center โ€” is a self-contained "vertical": its own routes, templates, and permissions. New modules are auto-discovered and added to navigation automatically. No changes to core application code.

  1. 1. Add verticals/<name>/__init__.py with a manifest (label, order, routes)
  2. 2. Add routes and templates for the module
  3. 3. Restart โ€” the module appears in navigation, with roles applied automatically

Try it yourself

Log in to a tenant seeded with sample customers, products, calls, and invoices.

call center: sales@nordljus.example
invoicing: finance@nordljus.example
call center + invoicing: partner@nordljus.example
password: 1234
Try the app

A look inside

Call Center screenshot
Call CenterThe caller picks a customer and a product, sees earlier calls and their notes, and logs the outcome of the new call โ€” all on one screen.
Customer with history screenshot
Customer with historyContact details, categories and tags, followed by every product the customer has said yes, no or "call back" to.
Event detail screenshot
Event detailAn event with price, dates and venue, and the list of customers who are interested, booked, paid or attended.
Invoice screenshot
InvoiceOrganisation, dates, VAT, currency and invoice rows. An approved invoice gets the next number in the sequence and a PDF.
Alarms and reminders screenshot
Alarms & remindersUpcoming follow-ups for the team, each tied to a customer and a product, with a reminder sent before it is due.
User profile screenshot
User profileEach user keeps their own contact and bank details up to date from the profile page.