Answers.Body: <p>You should think of a smart group as two parts:</p>
  
  <ul>
  <li>A static group (and all the tables it involves)</li>
  <li>A query and its associated tables</li>
  </ul>
  
  <p>The final list of contacts is the union of the above two (minus the contacts who have been explicitly removed from the static group)</p>
  
  <p>I think the above design allows a lot of flexibility and power. I think the main issue with smart groups is being smart about when and how to cache the results. Civi does a fairly basic job of this right now and can be improved considerably (IMO)</p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2015-04-14T04:33:38.287Z
Answers.LastActivityDate: 2018-02-27T18:36:31.340Z
Answers.LastEditDate: 2018-02-27T18:36:31.340Z
Answers.UserDisplayName: Donald Lobo
Answers.Body: <p>You can also create a smart group based on other regular groups and other smart groups.  This works well unless the smart group criteria is edited.</p>
  
  <p>In general you can go about 4 levels before nesting causes performance issues.</p>
  
  <p>I agree, I avoid adding users directly to smart groups.</p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2015-04-14T21:50:57.920Z
Answers.LastActivityDate: 2015-04-14T21:50:57.920Z
Answers.UserDisplayName: pkeogan - BackOffice Thinking
Answers.Body: <p>I think manually adding contacts to a smart group is confusing, and this is what we experience with some of our customers.</p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2015-04-14T12:53:39.230Z
Answers.Text: Do you mean : oh, i thought the contact was a member because he is in the smart group i created to find the members ? What could be good practice to avoid such a confusion ?
Answers.UserDisplayName: samuelsov
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2015-04-14T13:14:50.317Z
Answers.Text: Well, I would imagine the best practise would be to let the Smart Group definition do its work? I mean the confusiion: the smart groups only shows active employees of such and such but this one was added manually. Will it now disappear automatically when I end the relationship?
Answers.UserDisplayName: ErikH - CiviCooP
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2015-04-14T13:29:14.640Z
Answers.Text: I agree - while the functionality works, our staff get very confused by this. We've tried to keep smart groups and 'regular' groups entirely separate.
Answers.UserDisplayName: Andrew West
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2015-04-15T16:36:21.540Z
Answers.Text: In fact, we once had a customer who requested a change to make it impossible to manually add contacts to a smart group
Answers.UserDisplayName: ErikH - CiviCooP
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2015-04-14T06:17:22.007Z
Answers.LastActivityDate: 2015-04-14T06:17:22.007Z
Answers.UserDisplayName: ErikH - CiviCooP
Answers.Body: <p>Not sure if it's a good practice but here what i did to avoid manually adding contacts to a smart group.</p>
  
  <p>I have 2 groups :</p>
  
  <ul>
  <li>one standard group <code>followers</code> to manually add contact to the list. This group is a mailing list.</li>
  <li>one smart group <code>member followers</code> that contains all active members. This group is a child of the standard <code>followers</code> group.</li>
  </ul>
  
  <p>This way, the <code>followers</code> group inherit from contacts in the group <code>member followers</code>.</p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2015-04-14T20:23:44.297Z
Answers.LastActivityDate: 2015-04-14T20:23:44.297Z
Answers.UserDisplayName: samuelsov
Body: <p>A smart group is a result of a search. The contacts in the group change dynamically depending on the criteria.</p>
  
  <p>Though, I have several use cases where i want to be able to force some contacts in the group even if they don't meet the criteria in the search. For example, i want to send a newsletter to people that subscribe but also automatically to members.</p>
  
  <p>It seems to be possible to manually add some people to a smart group like if it were a standard group. But is it a good practice ? Is there any known caveat ?</p>
  
Comments.ContentLicense: CC BY-SA 3.0
Comments.CreationDate: 2016-10-17T10:03:25.190Z
Comments.Text: I added some question and thinkings about that in [There is some inconsistent/confusing workflow managing contacts from smart groups?](http://civicrm.stackexchange.com/questions/15416/there-is-some-inconsistent-confusing-workflow-managing-contacts-from-smart-group)
Comments.UserDisplayName: Francesc Bassas i Bullich
Tags: <best-practice><groups>
Title: Smart group with manually added contacts
ThreadText: # Smart group with manually added contacts
  
  (Asked by: username_0 on 2015-04-14)
  
  A smart group is a result of a search. The contacts in the group change dynamically depending on the criteria.
  
  Though, I have several use cases where i want to be able to force some contacts in the group even if they don't meet the criteria in the search. For example, i want to send a newsletter to people that subscribe but also automatically to members.
  
  It seems to be possible to manually add some people to a smart group like if it were a standard group. But is it a good practice ? Is there any known caveat ?
  
  **Tags:** best-practice, groups
  
  > **Comments:**
  > **username_1**: I added some question and thinkings about that in [There is some inconsistent/confusing workflow managing contacts from smart groups?](http://civicrm.stackexchange.com/questions/15416/there-is-some-inconsistent-confusing-workflow-managing-contacts-from-smart-group)  
  
  ---
  
  ## 4 answers
  
  ### Answer by username_2 on 2015-04-14. Score: 8
  
  You should think of a smart group as two parts:
  
  * A static group (and all the tables it involves)
  * A query and its associated tables
  
  The final list of contacts is the union of the above two (minus the contacts who have been explicitly removed from the static group)
  
  I think the above design allows a lot of flexibility and power. I think the main issue with smart groups is being smart about when and how to cache the results. Civi does a fairly basic job of this right now and can be improved considerably (IMO)
  
  
  ---
  
  ### Answer by username_3 on 2015-04-14. Score: 4
  
  You can also create a smart group based on other regular groups and other smart groups. This works well unless the smart group criteria is edited.
  
  In general you can go about 4 levels before nesting causes performance issues.
  
  I agree, I avoid adding users directly to smart groups.
  
  
  ---
  
  ### Answer by username_4 on 2015-04-14. Score: 3
  
  I think manually adding contacts to a smart group is confusing, and this is what we experience with some of our customers.
  
  > **Comments:**
  > **username_0**: Do you mean : oh, i thought the contact was a member because he is in the smart group i created to find the members ? What could be good practice to avoid such a confusion ?  
  > **username_4**: Well, I would imagine the best practise would be to let the Smart Group definition do its work? I mean the confusiion: the smart groups only shows active employees of such and such but this one was added manually. Will it now disappear automatically when I end the relationship?  
  > **username_5**: I agree - while the functionality works, our staff get very confused by this. We've tried to keep smart groups and 'regular' groups entirely separate.  
  > **username_4**: In fact, we once had a customer who requested a change to make it impossible to manually add contacts to a smart group  
  
  ---
  
  ### Answer by username_0 on 2015-04-14. Score: 2
  
  Not sure if it's a good practice but here what i did to avoid manually adding contacts to a smart group.
  
  I have 2 groups :
  
  * one standard group `followers` to manually add contact to the list. This group is a mailing list.
  * one smart group `member followers` that contains all active members. This group is a child of the standard `followers` group.
  
  This way, the `followers` group inherit from contacts in the group `member followers`.
  
  
  ---
  
  