Last updated: 2023-01-24
Works with CiviCRM 5.57 or higher.
Static Groups are great: they are simple, just add or remove contacts from them. But sometimes you want something cleverer that lets you define criteria so you don't need to keep maintaining the list. Hurray for Smart Groups!
Smart Groups are great: they are always up-to-date based on your criteria. But they also have their limitations: group members need to be determined when you use them which adds some performance penalty and caching issues. You also can't use them for some purposes, like some Search Kit searches or ACL's and you can't take actions based on being added/removed from the group. Quite often you don't need the group membership to be completely up-to-date. Hurray for Snapshot Groups!
Snapshot Groups (provided by this extension) occupy the middle ground between Static and Smart Groups. You get the convenience of defining your groups with criteria AND the simplicity of Static Groups.
The idea is very simple: you create a Smart Group (with Advanced Search, Search Kit, anything else) and tick 'Enable snapshots'. Each night (or as configured), the Smart Group membership is evaluated and saved as a Static Group.