Box storage cleanup workbench for your monthly sweep

By General Input

Find the stale, oversized and duplicate files eating your Box storage bill, then archive or delete them in the same sitting.

Integrations

  • Box
  • Google Sheets
  • Slack Bot

Type

App

Categories

  • Operations
  • Finance

Build me a Box storage cleanup workbench. It is an internal tool that whoever owns our Box bill opens about once a month to find what is safe to get rid of and actually get rid of it in the same sitting, instead of exporting a report and never acting on it. Everything happens on one screen, laid out as two panes.

At the top let me pick which Box folders to scan and set the rules for the sweep. The rules are a staleness threshold, defaulting to 24 months since a file was last modified, a size threshold for what counts as unusually large, and an exclude list of folders that must never be touched, such as anything under legal hold or a retention policy. Save the folder selection, the thresholds and the exclude list per user so next month's sweep starts where I left off. Excluded folders are skipped during the scan and their files must never appear as an actionable row.

Handlers gather the data with Box List Folder Items, walking the folder tree and requesting the size and modified date fields for every item, so that all sizes are computed from the actual file listing rather than from a stored storage figure, which Box is known to report inaccurately. Use Box Search Content to sweep for specific name patterns I supply. On the heavy hitters, use Box Get File Information for exact size and Box List File Versions for version history, since old versions are often where the real weight is hiding.

The left pane is a rollup of the scanned folders, worst offender first. Each row shows the folder name, total size, file count, and how much of that total qualifies as dead weight, expressed both in gigabytes and as a share of the folder. Selecting a folder drives the right pane.

The right pane lists the individual files behind the selected folder, each with a checkbox, name, size, last modified date, and the reason it showed up. Bucket every file into exactly one reason: untouched for longer than the staleness threshold, unusually large, or a likely duplicate matched on the same file name and the same exact size in a different folder. Let me filter by bucket and sort by size. For a likely duplicate, show which other folder holds the matching copy so I can judge which one to keep.

Show a running space you would reclaim figure that updates live as I tick and untick items. That number is what justifies the session, so keep it prominent and make it reflect the whole current selection across every folder, not just the folder I happen to be looking at.

Actions work on a single row or on everything I have ticked. Archive moves the item into a dated archive folder by changing its parent with Box Update File, creating that archive folder on the fly with Box Create Folder if it does not exist yet, named for the month of the sweep. Delete sends the item to trash with Box Delete File. Unshare strips a public link with Box Remove Shared Link from File, which matters because a sweep regularly turns up stale files that are somehow still shared publicly, so surface those in the list even when they are not otherwise dead weight.

Default the primary button on every row and on the bulk action bar to archive rather than delete. Put a typed confirmation in front of any bulk delete, where I have to type the file count or the word delete before it will run. Never offer any action on a file that lives inside an excluded folder.

Be honest about what each action does to the bill. Box moves deleted files to trash rather than purging them, so space is not released until trash is emptied or the retention window passes, and archiving relocates a file within the same account rather than removing its weight at all. Present the reclaim figure as the space in play, and break the result down into space pending in trash versus content that was only moved, so nobody leaves the session thinking the bill already dropped.

When I finish a sweep, write every item actioned to a Google Sheet with Append Values as the audit trail, one row per file carrying the timestamp, file name, source folder, size, the reason bucket it was in, the action taken, and who ran the sweep. Then post a recap to Slack with Send a Message showing gigabytes reclaimed, how many files were archived versus deleted versus unshared, and which folders gave up the most space. Keep a short history of past sweeps in the app so I can see the trend month over month.

Related prompts

Explore more prompts
Call overdue Xero customers with an AI collections agentLocal listing health board for every location you manageLet support send one-off Loops emails without an engineerA brand asset library your marketing team actually searchesTurn Mailjet email clicks into ranked HubSpot follow-upsClean out the Looker dashboards and Looks nobody opensStop cold emails to anyone with a live deal in PipedriveLiveKit live operations console for room moderationWake up dormant Keap leads with a researched reasoniMessage campaign console with pre-flight checks and delivery board