A library of opinionated defaults for a typical MSP. Add whichever packs are useful - on a brand new install or on one that has been running for years.
Nothing here is overwritten or deleted. Anything already present under the same name is skipped, so a pack can be added again later to pick up entries you removed by mistake, and adding twice never produces duplicates. Everything added is editable and deletable afterwards like any other record.
| Content | In library | Already here | Will be added | |
|---|---|---|---|---|
|
= escapeHtml($pack_details['label']) ?>
= escapeHtml($pack_details['description']) ?> Add = escapeHtml($starter_content_packs[$requires]['label']) ?> first, or these come in without them. |
= intval($pack_status['total']) ?> | = intval($pack_status['present']) ?> | = intval($pack_status['missing']) ?> | Nothing to add |
Ticket templates bring their task lists with them. Products are filed under income categories and priced as starting points only - hardware and resold licensing come in at zero because they are quoted per deal.
A fictional book of business for demos, training and screenshots - = intval($demo_data_status['total']) ?> clients with the people, equipment, documentation, credentials, tickets and billing a typical MSP would be carrying for them. Each one arrives with an onboarding project, an onboarding ticket per asset, response targets, racked infrastructure, documented IP addresses and a supplier list. Managed and break fix clients are both represented. Your own side of the books is generated too - bank accounts, suppliers, operating costs, recurring expenses and the transfers that settle card payments into the bank. Everything is spread across the last two years and dated relative to today, so the dashboard, ticket queue, aging, profit and loss and every other report have real history behind them rather than one flat month.
This is sample data, not configuration. Nothing in it is labelled as demo data - the clients, tags and references all read as real, which is the point. Removal matches the = intval($demo_data_status['total']) ?> client names in the library, so renaming a demo client stops it being removable. Contacts use addresses on the reserved .example domain, which cannot receive mail, and the agreements are created with email notification switched off. If this install already has bank accounts of its own, the company side of the books is left alone entirely.
Add the Categories and Tags packs above first, or the tickets, invoices and tags come in bare.
= intval($demo_data_loaded) ?> demo client(s) are here: = escapeHtml(implode(', ', $demo_data_status['loaded'])) ?>