# Google Vault custodian search and legal hold release console

> Search any employee to see every legal matter and hold they sit on, check departing staff before their account is deleted, and release custodians with a logged reason.

- Workflow type: app
- Services: Google Vault, Gmail, Google Sheets
- Categories: Operations, HR & People
- Published: 2026-08-24

## What it does

- Type an employee email address and see every legal matter and hold that person is on, with the status of each matter and the data it covers.
- Paste a list of departing employees and instantly see who is still under an active hold and unsafe to delete, and who is clear.
- Release people in a few clicks: pick the custodians, enter a release date and a written reason, and the app lifts the hold, emails each person that their preservation duty has ended, and writes a timestamped row to your log sheet.
- A Release review button hands one person's holds to a background assistant that checks whether the underlying matters are already closed, then drafts the recommendation and the release message for you to approve.

## What you'll need

- A Google Workspace account with Vault access and permission to view and manage matters and holds
- A Gmail account that the release notices are sent from
- A Google Sheet to use as the release log, a blank one is fine because the app adds the rows
- The email addresses of the people you want to look up or offboard

## Prompt

Build me an app that inverts the Google Vault index. Vault is organized matter first, so there is no way to ask the question my team asks constantly: what holds is this person actually on? The users are legal ops, paralegals, and the IT admins who process offboarding, and the app has three surfaces plus one background agent.

Data layer. Build a person-keyed index from Google Vault by walking List Matters, then List Holds for each matter, then List Hold Accounts for each hold, and cache the result server side so search is fast. Each entry should carry the custodian email and account id, the matter name, matter id and matter state, the hold name and hold id, and the data sources the hold covers such as Mail, Drive, Groups, Chat, Voice, and Calendar. Show when the cache was last rebuilt and give me a Refresh button that rebuilds it on demand. Holds scoped to an organizational unit rather than to named accounts should still be indexed and clearly labeled as org unit holds, because a single person cannot be removed from one of those and I need to see that rather than be told the person is clear.

Surface one is the custodian search, and it is the main screen. I type an employee email address and get every matter and hold that person appears on, showing matter name, matter state, hold name, and the data sources covered. Group the results by matter, sort open matters first, and show a count of active holds at the top. Each row has a checkbox that selects the person and hold into the release console, and each person has a Release review button.

Surface two is a bulk offboarding check. I paste a list of departing account emails, one per line or comma separated, and the app immediately splits them into two groups: people who still sit on at least one active hold and are therefore unsafe to delete, and people who are clear. For anyone blocked, show which matters and holds are holding them. Let me copy or download the result to hand back to IT, and let me push the blocked people straight into the release console.

Surface three is the release console, which is the step teams skip. I select one or more custodians, enter a released date and a written reason, and confirm. On confirm the app removes each selected person from the selected holds in Google Vault using Remove Held Accounts, or Delete Hold Account when it is a single account on a single hold. It then sends each released person a release notice with the Gmail Send a Message operation, telling them the preservation obligation for that matter has ended and they no longer need to retain the material described in the original hold notice. Finally it appends a timestamped row to a Google Sheet with Append Values as the defensibility log, with columns for custodian, matter, hold, released date, reason, who clicked release, and the timestamp.

Nothing releases automatically and a person always confirms. The confirmation dialog must name exactly who is being removed from which holds, and the form cannot be submitted without a written reason. Record the signed in app user as the person who clicked release. If a removal, an email, or a log row fails, surface the failure in the app and record it instead of reporting success.

Add a Release review button on each person in the custodian search that kicks off a background agent. The agent walks every matter that person is on, checks the current state of each matter with Get Matter, and flags holds that belong to matters already closed as safe release candidates. It writes its findings back into the app: a per hold recommendation with the reasoning behind it, and draft wording for that person's release notice. The results appear in the app for a human to read and edit, and approving them loads the selection into the release console with the drafted reason and notice text prefilled. The agent never removes anyone from a hold and never sends an email.

Also give me a release history view inside the app that reads the recent rows back from the release log sheet with Get Values, so I can see what was released lately and by whom without opening the spreadsheet.

## How to customize

- Reword the release notice, including who it comes from and whether legal or HR is copied.
- Point the release log at a different sheet, or add columns such as case number or approving attorney.
- Change what counts as a safe release candidate, for example only holds tied to closed matters, or also matters that have been closed for more than 90 days.

## FAQ

### Does anything get released automatically?

No. The app only shows recommendations and prepares the wording. Someone has to select the custodians, enter a release date and a reason, and confirm before a single hold is lifted.

### Can I use this to check whether a departing employee's account is safe to delete?

Yes, that is the offboarding check. Paste in the list of leavers and the app splits them into people who are still on an active hold and people who are clear, so IT is not deleting an account that legal still needs preserved.

### What gets recorded when someone is released?

Every release adds a row to your Google Sheet with the custodian, the matter, the hold, the released date, the written reason, the person who clicked release, and the time it happened. That record is the point of the whole exercise if anyone ever asks you to prove the release was deliberate.

### Will it work if our holds cover a whole department rather than named people?

Vault lets you place a hold on an entire organizational unit instead of individual accounts. The app still shows you those holds and labels them clearly, but it cannot remove one person from a department wide hold, so it flags them for you to handle separately.

### Do the people we release actually get told?

Yes. Each released custodian gets an email letting them know their preservation obligation for that matter has ended, so they are not left guessing whether the original hold notice still applies.

### Do I need to keep my own spreadsheet of holds anymore?

No. The app reads the current picture straight from Vault every time you refresh, so the search results reflect what is actually in place rather than what someone last remembered to type into a tracker.

Use this prompt in General Input: https://www.generalinput.com/prompts/google-vault-custodian-search-and-legal-hold-release-console