Admin & Internal Tools
SaaS Admin Dashboard Template
The back office every SaaS product ends up needing: accounts, users, plans and invoices, an audit log, feature flags and admin roles, in one internal app your team signs in to.
What is the SaaS Admin Dashboard Template?
This SaaS admin dashboard template describes the internal back office for a subscription software product. It covers customer accounts, their users, subscriptions and invoices, an audit log of admin actions, simple feature flags and role-based access for your own team. Paste the starter prompt into Greta.sh and it builds the full-stack admin app with a database and sign-in, which you can deploy and then connect to Stripe for real billing data.
Greta.sh Editorial Team · Updated October 14, 2026
What you get
Everything below is in the starter prompt, so the first build already includes it.
Account and user management
Search every customer account, open one to see its users and plan, and suspend or reactivate a user with a recorded reason.
Subscriptions and invoices
Plan, status, billing interval and renewal date per account, with invoice history and a filter for failed payments.
Metrics overview
New sign-ups, active subscriptions, trials ending this week and monthly recurring revenue, calculated from the subscription records.
Audit log
Every admin action is written to a log with who did it, what changed and when, so support and finance can answer “who changed this?”.
Feature flags
Turn a feature on for everyone, for no one, or for a list of accounts, without a redeploy.
Admin roles
Owner, admin, support and finance roles, each limited to the screens and actions that job needs.
The data model
7 entities. Every app also gets an id and created and updated timestamps on each record.
AdminUser
A member of your own team who signs in to the back office.
| Field | Type |
|---|---|
| name | text |
| emailunique, used to sign in | |
| role | enumowner | admin | support | finance |
Account
A customer organisation using your product.
| Field | Type |
|---|---|
| name | text |
| ownerEmail | |
| plan | enumfree | starter | pro | enterprise |
| status | enumtrialing | active | past_due | canceled |
| createdAt | datetime |
User
A person inside a customer account.
| Field | Type |
|---|---|
| name | text |
| accountId | ref → Account |
| status | enumactive | suspended |
| lastActiveAt | datetime |
Subscription
The plan an account pays for.
| Field | Type |
|---|---|
| accountId | ref → Account |
| plan | text |
| amount | numberper billing interval |
| interval | enummonth | year |
| status | enumtrialing | active | past_due | canceled |
| currentPeriodEnd | date |
| externalId | textoptional, for a billing provider such as Stripe |
Invoice
A bill issued to an account.
| Field | Type |
|---|---|
| accountId | ref → Account |
| amount | number |
| status | enumpaid | open | failed | refunded |
| issuedAt | date |
AuditLog
A record of one admin action.
| Field | Type |
|---|---|
| actorId | ref → AdminUser |
| action | textfor example user.suspended, plan.changed |
| targetType | text |
| targetId | text |
| details | jsonbefore and after values |
| createdAt | datetime |
FeatureFlag
A switch for a product feature.
| Field | Type |
|---|---|
| key | textunique |
| description | text |
| mode | enumoff | on | accounts |
| accountIds | list → Accountused when mode is accounts |
Main screens
The pages the first build includes, in the order a user meets them.
- 01
Sign in
Email sign-in restricted to your admin team.
- 02
Overview
Sign-ups, active subscriptions, trials ending soon, monthly recurring revenue and recent failed invoices.
- 03
Accounts
Searchable, filterable table of every account by plan and status, with CSV export.
- 04
Account detail
The account’s users, subscription, invoices and audit history, with actions such as change plan or extend trial.
- 05
Users
Find any user across accounts, see last activity, and suspend or reactivate with a reason.
- 06
Billing
Subscriptions and invoices across all accounts, with a failed-payments view for finance.
- 07
Audit log
Every admin action, filterable by admin, action type and date.
- 08
Feature flags and team
Manage flags, invite admins and assign roles. Owner only.
The starter prompt
Copy it, edit anything that does not fit your business, and paste it into Greta. Or use the button below, which opens Greta with this prompt already filled in.
Build an internal admin dashboard for a SaaS company. Only our own team signs in to it.
Data model:
- AdminUser: name, email, role (owner, admin, support, finance)
- Account: name, owner email, plan (free, starter, pro, enterprise), status (trialing, active, past_due, canceled), created at
- User: name, email, account, status (active, suspended), last active at
- Subscription: account, plan, amount, interval (month or year), status, current period end, external billing ID (optional)
- Invoice: account, amount, status (paid, open, failed, refunded), issued at
- AuditLog: admin user, action, target type, target ID, details (before and after values), created at
- FeatureFlag: key, description, mode (off, on, accounts), list of accounts
Screens:
1. Email sign-in for admin users only.
2. Overview: new sign-ups in the last 30 days, active subscriptions, trials ending in the next 7 days, monthly recurring revenue calculated from active subscriptions, and the 10 most recent failed invoices.
3. Accounts table with search, filters for plan and status, and CSV export.
4. Account detail with its users, subscription, invoices and audit history, plus actions to change plan and extend a trial.
5. Users table across all accounts with suspend and reactivate actions that require a reason.
6. Billing page listing subscriptions and invoices, with a failed payments filter.
7. Audit log with filters for admin, action and date range.
8. Settings: feature flags and admin team management.
Permissions: owner can do everything. Admin can do everything except manage the admin team. Support can view accounts and users and suspend or reactivate users, but cannot see billing. Finance can view accounts and billing but cannot change users. Every create, update or suspend action writes an AuditLog entry.
Seed the database with 4 admin users (one per role), 30 accounts across all plans and statuses, 120 users, matching subscriptions and 6 months of invoices so the overview has real numbers. Use a dense, professional layout with a left sidebar and data tables.How to customise it
After the first build, describe each change in plain English and Greta updates the app. Common next steps:
Connect real billing data
Ask Greta to connect Stripe so subscriptions and invoices come from your billing account instead of seed data.
Load your real accounts
The admin app runs on its own database. Add your customer accounts and users there, and keep it as the back office record for your team.
Alert on failed payments
Connect Slack and post a message to your finance channel whenever an invoice fails.
Add the metrics you report on
Add churn by month, revenue by plan or trial conversion as charts on the overview.
Adjust the roles
Rename roles, add a read-only role for investors or contractors, or split support into tiers.
Deploy behind sign-in
Deploy to a live URL on your own domain. Only invited admin users can sign in.
Frequently asked questions
+What is the difference between this and a dashboard UI kit?
A UI kit gives you screens with placeholder data. This template describes the whole back office, including the database, sign-in, roles and audit logging, and Greta builds it as a working application rather than a static layout.
+Can it use my real Stripe and user data?
Billing data, yes. The first build uses seed data so you can see every screen working; then ask Greta to connect Stripe for subscriptions and invoices. Accounts and users live in the admin app’s own database. Greta does not put an admin screen on top of a production database you already run, so if that is what you need, this template is the wrong starting point.
+How are admin permissions enforced?
The starter prompt defines four roles and what each one can see and do. Greta builds those rules into the app, so a support user does not see billing screens and a finance user cannot suspend accounts. Change the rules in the prompt to fit your team.
+Why does the template include an audit log?
Once more than one person can change customer data, someone will eventually ask who changed a plan or suspended a user. Writing every admin action to a log from day one is far easier than adding it later.
+Do I own the code Greta generates from this template?
Yes. Greta generates real application code that you can download at any time, host anywhere, or hand to a developer to extend. Starting from a template does not tie the app to the template.
+Is it free to build from this template?
You can start on the Greta.sh free tier without a credit card. Paste the starter prompt, review the app Greta builds, and decide on a paid plan only when you need more. See the pricing page for current plan limits.