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.
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.
What does this prompt do?
- 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 do I need to use this?
- 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
How can I customize it?
- 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.
FAQs
Does anything get released automatically?
Can I use this to check whether a departing employee's account is safe to delete?
What gets recorded when someone is released?
Will it work if our holds cover a whole department rather than named people?
Do the people we release actually get told?
Do I need to keep my own spreadsheet of holds anymore?
Related templates
Stop buying stale lists. Reps run a saved search, work the results like an inbox, and only the accounts they approve ever reach your CRM.
Drag creators through Sourced to Wrapped on a board grouped by campaign, with audience stats on every card and a one-click brief for each creator.
Pick a repricing rule, send an assistant out to check competitor pages, then approve the new prices that clear your margin floor.
See the projected bounce rate for any outbound send before it goes out, and keep the launch button locked until the list is clean enough to be safe.
A calibration board that lines up every candidate's answer to the same question, hides names until your panel has scored, and writes the agreed rating back.
Pick any date range and see what each device in your home actually cost to run, not just how many kilowatt-hours it used.
Stop guessing which legal holds an employee is on.
Search any custodian, clear your offboarding list before accounts get deleted, and release people with a reason that is written down and dated.