Delete or archive a ministry β
When a ministry winds down β a season ends, a team is restructured, the original need passes β you want it off the active list without losing the historical data. GCM uses soft delete for ministries: the record disappears from the UI immediately but stays in the database for audit, reporting, and recovery.
This article covers single and bulk deletion, what happens to the members on the roster, and how to bring a ministry back if you change your mind.
Soft delete, not hard delete β
When you delete a ministry in GCM, the row gets a deleted_at timestamp instead of being removed. Three consequences:
- The ministry disappears from the list, dropdowns, member profiles, and reports going forward.
- Historical attendance records stay β past attendance still counts toward your historical reports because it references the ministry by ID, and the ID still exists.
- You can restore by clearing the
deleted_atvalue via a support request. There's no in-app restore button today, but the data is recoverable.
This matters because hard-deleting a ministry would orphan years of attendance records. Soft delete keeps the past honest.
Delete one ministry β
From the Ministries list, hover over the ministry card. A trash icon appears in the top right corner of the card. Click it.
A confirmation dialog opens. What it shows depends on whether the ministry has members on the roster.
If the ministry has no members β
The dialog is brief: This action cannot be undone (which is technically not true β soft delete is recoverable β but it's the polite framing to discourage accidental clicks). Confirm with Delete and the ministry is gone.
If the ministry has members β
The dialog shows a richer view: N members assigned, and a dropdown asking What should happen to these members?
You have two options:
- Remove from this ministry β the
ministry_membersjoin rows are soft-deleted. The members stay in your database, on other ministries and groups, with their full profile and attendance history intact. They're just no longer on this ministry's roster. - Reassign to {another ministry} β the join rows are updated to point at another ministry of your choice. Useful when you're consolidating two teams into one (e.g. Sunday Worship and Wednesday Worship merging into Worship).
Pick the option you want and confirm.
WARNING
The reassign option is one-to-many β every member on the deleted ministry's roster moves to the new ministry. If you only want to move some members, do that before deleting: open the ministry, add the keepers to the new ministry manually, then delete with Remove from this ministry as the option.
Delete several ministries at once β
For retiring a whole batch of ministries at once (e.g. an annual cleanup of seasonal ministries that wrapped up), use bulk delete.
- On the Ministries list, hover over any card. A checkbox appears in the top-left corner.
- Click the checkbox. A sticky bulk action bar appears at the top of the page showing N selected and a Delete button.
- Select all the ministries you want to retire.
- Click Delete in the bulk action bar.
The same reassign-or-strip dialog opens, but now the math is across every selected ministry. It tells you something like: 27 members assigned across 4 ministries. Pick how to handle them β remove the assignments or reassign all of them to one surviving ministry β and confirm.
Behind the scenes, GCM:
- Soft-deletes (or reassigns) every
ministry_membersrow across the selected ministries. - Soft-deletes every ministry row in a single batch update.
- Refreshes the list and clears the selection.
A toast confirms: Deleted N ministries.
Editing the roster before deleting β
If only some of the members should move to the surviving ministry and others should be cut entirely, do this in two passes:
- Open the doomed ministry, remove the members who shouldn't survive.
- Add the survivors to the destination ministry directly.
- Delete the now-empty ministry β the dialog will be the brief "nothing to reassign" version.
It's a little more work, but it gives you full control over each member's destination.
What gets preserved when you delete β
The following data survives ministry deletion:
- The ministry row itself (with
deleted_atset). - Every past attendance record tagged with this ministry β counts still appear in historical reports.
- Every member's profile, group memberships, custom fields, and other ministry assignments.
- Every audit log entry referencing the ministry.
The following data is removed from the active view:
- The ministry from the list, dropdowns, member profiles' ministries section.
- The
ministry_membersjoin rows for this ministry (soft-deleted). - Any workflows or reports that filter on the ministry will return empty for it going forward.
What doesn't get deleted β
A ministry deletion doesn't:
- Mark any members as lost or inactive.
- Cancel any meetings tagged with this ministry. Meetings have their own lifecycle.
- Remove the ministry from year-end reports for periods when it was active.
- Notify anyone. There's no email or push notification.
If a meeting was tagged with the deleted ministry, the meeting's Ministry field becomes a stale reference. Edit the meeting and clear or reassign the ministry field β otherwise the meeting will still try to count toward the deleted ministry's chart (which no one can see anyway because the ministry is gone from the UI).
Restoring a deleted ministry β
There's no in-app Restore button today. If you delete a ministry by mistake or change your mind weeks later, open a support ticket β the team can clear the deleted_at timestamp and the ministry will reappear in the list with its full roster restored. Restoration is fast (it's a single SQL update) and we don't charge for it.
For frequent mistakes, the workaround is to add a confirmation step to your team's process β only let admins delete, and require a Slack message before they do.
Archived vs deleted vocabulary β
GCM uses delete in the UI but the implementation is closer to what other tools call archive. There is no "permanently delete" path from the UI β even hard-delete via the database admin tools would cascade into the audit log and is strongly discouraged.
If you genuinely need GDPR-style erasure of a ministry's history (rare), open a support ticket and the team can run a targeted purge after auditing the implications. This is a manual process and not reversible.
Permissions β
| Action | Required permission |
|---|---|
| Delete a single ministry | ministries.manage |
| Bulk delete | ministries.manage |
| Restore a deleted ministry | Support ticket β no in-app self-service |
ministries.view does not grant any delete capability, including for ministries with no members.
Next steps β
- Create a ministry β start a new team to replace what you retired.
- Add members β repopulate after a restructure.
- Leaders and permissions β make sure the right people can manage going forward.