Settingsintermediate

Bulk-manage snippets

Select multiple snippets in Settings → Snippets → All and use the bulk-action toolbar to change group, visibility, category, or team access, or delete them all at once with a typed-DELETE confirmation.

5 min read

Bulk-manage snippets

Cleaning up a snippet library one row at a time doesn’t scale. Settings → Snippets → All supports multi-select with a bulk-action toolbar, so you can change the group, visibility, category, or team access for a batch of snippets — or delete them — in one pass.

Before you start

  • You need edit permission on a snippet for a bulk action to apply to it. Selecting a snippet you can’t edit doesn’t block the request — it’s just counted as a failure for that row, and everything else in the batch still goes through.
  • Promoting snippets to Global visibility requires the permission that manages global snippets and macros. Without it, that option isn’t available to apply.
  • This article covers acting on many snippets together. For the single-snippet workflow, see Create a snippet.

Select snippets

  1. Open Settings → Snippets → All.
  2. Check the box on any row to select it. Selecting a row enables the bulk-action toolbar.
  3. To select every snippet currently loaded on the page, use select all loaded. If your library is paginated, this only selects the rows that have loaded so far — it does not silently reach across pages you haven’t scrolled to. The label tells you when this applies (e.g. “first 500 of N”).
  4. Selection is capped at 500 snippets. Whether you’re selecting individually or via select-all, once you hit the cap, further rows can’t be added to the selection. This matches a server-side limit — the goal is to keep a bulk request from failing outright because it was too large.
  5. Use Clear in the toolbar to deselect everything and start over.

Apply a bulk action

With one or more snippets selected, the toolbar exposes:

  • Change group — move the selected snippets into a different group/category in one step.
  • Change visibility — set the selected snippets to Personal or Global. See Personal vs Global visibility below before you use this on a mixed batch.
  • Change category — reassign category, or explicitly clear it back to “No category.”
  • Change team access — restrict (or open up) which teams can see the selected snippets. This option is unavailable when every selected snippet is already Personal, since a team-access change has nothing to act on for a Personal snippet and would be a no-op.
  • Delete — remove the selected snippets, behind a typed confirmation.

Each control opens a dialog seeded from the current values of the snippets you selected:

  • If every selected snippet shares the same value (same group, same category, etc.), the control starts pre-filled with that value. If you don’t touch it, Apply is a safe no-op.
  • If the selection has mixed values, the control starts empty/placeholder rather than guessing or defaulting to a value that would clear the field. Apply stays disabled until you make an explicit choice — this is intentional, so a mixed batch can’t be silently overwritten with a value nobody chose. This applies to clearing category as well: choosing “No category” explicitly is different from an unmade choice, and only the former enables Apply.
  • Creating a brand-new category from the dialog (rather than picking an existing one) also requires typing a non-blank name before Apply arms.

While a bulk action is running, the toolbar and dialog lock — you can’t fire a second action or dismiss the dialog mid-request.

Personal vs Global in bulk

A few behaviors are specific to changing visibility (scope) across a batch, and are worth understanding before you use it broadly:

  • Demoting to Personal is not one click away, because for anyone other than the snippet’s creator, demotion is effectively irreversible — a Personal snippet is only visible to its creator.
  • If a selected snippet has no recorded creator (for example, the original creator has left the organization), it cannot be demoted to Personal — doing so would make the snippet invisible and uneditable to everyone. That snippet is skipped and counted as a failure rather than silently orphaned.
  • Setting scope to Personal clears any team restrictions on that snippet. A Personal snippet with team restrictions left in place could end up invisible to its own creator if they aren’t on the restricted team, so the system won’t leave a snippet in that state.
  • Team-access changes are evaluated per snippet, not as a single decision for the whole batch. A snippet that ends up Personal — whether because you set scope to Personal or because a teams-only change lands on an already-Personal row — is saved with no team restrictions rather than hidden from its creator.

Delete snippets in bulk

  1. Select the snippets you want to remove.
  2. Choose Delete from the toolbar.
  3. Confirm by typing DELETE in the confirmation dialog. This typed confirmation exists specifically because bulk delete is destructive and can’t be undone.
  4. Confirm is only available while your selection is non-empty — if something changes your selection out from under you while the dialog is open (for instance, a background refresh), the button won’t let you submit an empty request.

If none of the selected snippets could be deleted (for example, you didn’t have edit permission on any of them), the list of loaded snippets is left as-is rather than being reset — nothing is removed if nothing was actually deleted.

What happens after you apply

  • The request runs against every selected ID, and each ID is authorized independently. Denied IDs don’t fail the whole batch — they’re reported as individual failures, and everything you did have permission for still applies.
  • After a successful edit or delete, your selection is reconciled against what’s actually still loaded and editable, so previously-selected rows that no longer exist or that you no longer have access to drop out of the selection automatically.
  • After a delete that removed at least one snippet, the list refreshes from the beginning rather than staying on your current page offset, since the page you were viewing may no longer line up with what remains.

Troubleshooting

Apply stays disabled even though I picked a value. Check whether your selection has mixed values for that field — the control may be waiting for an explicit choice rather than accepting a value that only applies to some of the selected rows.

A snippet in my selection didn’t change / didn’t delete. You likely don’t have edit permission on it, or (for a visibility change) it hit one of the Personal/team-access safeguards above — for example, a snippet with no recorded creator being blocked from demotion to Personal. Bulk actions report per-row failures rather than blocking the whole batch, so check the result summary for which IDs didn’t go through.

“Change team access” is grayed out. Every snippet in your current selection is already Personal. Team access only applies to snippets with team-scoped visibility, so there’s nothing for this action to change.

My selection didn’t include everything I expected. If you used select-all, remember it only covers snippets that have loaded on the page, and the total selection is capped at 500. Load more of the list, or narrow your filter, then select again.

Tags

How ToBulk Actions