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.

FieldType
nametext
emailemailunique, used to sign in
roleenumowner | admin | support | finance

Account

A customer organisation using your product.

FieldType
nametext
ownerEmailemail
planenumfree | starter | pro | enterprise
statusenumtrialing | active | past_due | canceled
createdAtdatetime

User

A person inside a customer account.

FieldType
nametext
emailemail
accountIdref → Account
statusenumactive | suspended
lastActiveAtdatetime

Subscription

The plan an account pays for.

FieldType
accountIdref → Account
plantext
amountnumberper billing interval
intervalenummonth | year
statusenumtrialing | active | past_due | canceled
currentPeriodEnddate
externalIdtextoptional, for a billing provider such as Stripe

Invoice

A bill issued to an account.

FieldType
accountIdref → Account
amountnumber
statusenumpaid | open | failed | refunded
issuedAtdate

AuditLog

A record of one admin action.

FieldType
actorIdref → AdminUser
actiontextfor example user.suspended, plan.changed
targetTypetext
targetIdtext
detailsjsonbefore and after values
createdAtdatetime

FeatureFlag

A switch for a product feature.

FieldType
keytextunique
descriptiontext
modeenumoff | on | accounts
accountIdslist → Accountused when mode is accounts

Main screens

The pages the first build includes, in the order a user meets them.

  1. 01

    Sign in

    Email sign-in restricted to your admin team.

  2. 02

    Overview

    Sign-ups, active subscriptions, trials ending soon, monthly recurring revenue and recent failed invoices.

  3. 03

    Accounts

    Searchable, filterable table of every account by plan and status, with CSV export.

  4. 04

    Account detail

    The account’s users, subscription, invoices and audit history, with actions such as change plan or extend trial.

  5. 05

    Users

    Find any user across accounts, see last activity, and suspend or reactivate with a reason.

  6. 06

    Billing

    Subscriptions and invoices across all accounts, with a failed-payments view for finance.

  7. 07

    Audit log

    Every admin action, filterable by admin, action type and date.

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

Starter prompt
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.

More templates and guides