According to the UI (Administer > Customize Data and Screens > Search Preferences) the 'Smart group cache timeout' setting allows you to specify "the number of minutes to cache smart group contacts".

According to the documentation, Job.group_rebuild "rebuilds the smart group cache" and has a recommended frequency of 'every time cron job is run'.

Why do we have and need both these approaches to keeping our smart groups up to date? Isn't one enough?!


The rebuild job will build any smart groups that are not yet built. It is a good idea to run this job often if you hate your server or being able to see counts on the manage groups page is more important to you than your server not hanging. Otherwise the rebuild groups scheduled job has no benefit.

If you do not run that job then smart groups will be built on demand. This is particularly suitable if you have a lot of smart groups. If group has expired it will be flushed and rebuilt.

Note I DO recommend running the job that flushes expired groups by scheduled job - just not the one that rebuild them all, even the ones you don't really need

I've put up a PR on this https://github.com/civicrm/civicrm-user-guide/pull/397

Your Answer

