PortaPro gives you two distinct ways to take a customer out of day-to-day work, and it actively steers you to the safe one.
| Action | What it does |
|---|---|
| Make Inactive | The customer leaves every list, picker, and search, and all automated billing and messaging stops. Every invoice, payment, quote, agreement, and job is preserved. Reversible at any time. Allowed for any customer |
| Delete | For records that should never have existed: duplicates, test entries, mistakes. Held in Trash for 30 days and restorable by an admin, then permanently removed. Blocked for any customer with financial history |
If you're unsure, use Make Inactive. Nothing is lost and it can be undone. An ⓘ info icon next to the Delete and Make Inactive buttons explains both options in plain language and makes the same recommendation.
Both actions, and the Deleted Customers and Inactive Customers pages, are admin-only.
Make Inactive
How to do it
Three ways:
What happens
Nothing is deleted, and existing invoices, payments, and reports are untouched. The customer simply stops generating new activity.
Reactivating
Any of:
The customer returns to active lists immediately and billing resumes on the next cycle. Bulk reactivation works the same way as bulk deactivation.
Delete
The 30-day Trash
Deleted customers go to Trash for 30 days. Any admin can restore them in one click:
After 30 days a nightly cleanup removes them permanently, and at that point only a database backup could recover them.
Before you confirm a delete, PortaPro shows exactly what's attached to the customer: sites, contacts, jobs, map pins, and any units still out in the field.
Why the Delete button is sometimes blocked
Because that customer has posted financial history: invoices, payments, sent or accepted quotes, agreements, recurring invoices, or payment plans. PortaPro refuses the delete and lists exactly which records are blocking it.
This mirrors QuickBooks Online and Xero, which don't allow deleting a customer with posted transactions, so your books stay reconcilable. Use Make Inactive instead. The delete dialog offers it directly.
Units still in the field
The delete dialog offers Mark them back in the yard first, checked by default and strongly recommended. It returns deployed units to available inventory before the customer is removed, so your unit counts stay accurate. Leaving it unchecked can leave units showing as deployed with no customer attached.
What restoring does and doesn't bring back
Restoring brings back the customer record and their history: sites, contacts, invoices, jobs. It does not re-place units that were returned to the yard as part of the delete. Re-place those from the site's map pins.
Audit trail
Every delete, restore, inactivate, and reactivate writes an audit-log entry recording who performed it, when, and any reason given. The Deleted Customers page surfaces the deleter and timestamp directly, so "who removed this customer and when?" no longer requires a database backup.
"Inactive" means two different things
Don't conflate these:
| Term | Applies to | Status |
|---|---|---|
| Inactive customer | A customer account | Current feature. Set with Make Inactive. Hides the customer and stops billing, reversibly |
| "Inactive" site status | A service location or address | Retired. Replaced by Pause. Site statuses no longer include Inactive |
So "Inactive was retired" is true only about site statuses. For a customer account, Inactive is current and supported. If you're reading an "inactive" question, work out whether the subject is a customer account or a site address first.
Where did my customer go?
Three possibilities:
Inactive and deleted customers are deliberately hidden from search and pickers.
