Answers.Body: <p>Thank you for all the help!</p>
  
  <p>Ultimately, I believe I will use the following:</p>
  
  <ul>
  <li>Attendees are registered for a weekly event.</li>
  <li>Custom search smart group which includes class roster group, but excludes those who were present at least once in the last month.</li>
  <li>Report cron job to email these results on a monthly basis.</li>
  </ul>
  
  <p>While it isn't <em>exactly</em> what I originally thought I needed, it works well enough to see those absent in the last month.</p>
  
  <p>The key for me was realizing I could use a report to automatically email the data.</p>
  
  <p>Thanks again!</p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2015-07-24T16:07:04.193Z
Answers.LastActivityDate: 2015-07-24T16:07:04.193Z
Answers.UserDisplayName: Justin Young
Answers.Body: <p>I don't think there is a straight forward way to do this.</p>
  
  <p>It <strong>may</strong> be possible if you register the entire class list for all the classes (events) and then set the participant status to "No-show" when a student misses a class.  Then you might be able to do something by shuffling students between a series of groups - "no-show this week", "no-show this week &amp; last", "no-show three consecutive weeks" using CiviRules and sending a weekly "Constituent summary" report to the teacher restricted to the people in the "no-show three consecutive week" group.  </p>
  
  <p>However, if you have more than one class you would need three groups for each class so you could get to an unmanageable number of groups fairly quickly.</p>
  
  <p>Also, I am not sure if the existing conditions and actions in CiviRules would be enough for this purpose or if you would need to create additional conditions and/or actions</p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2015-07-15T02:29:18.777Z
Answers.Text: I think this is getting closer to possible ie have the whole class as participants and then use different status to differentiate between attendees and no shows. But i also agree that it will be a struggle getting from that point to sending a notification to the 'teacher' when someone has 3 consecutive 'no shows'. You might be able to set up a View (in drupal) with aggregation to show 'students who status is no show over last 3 weeks, and sorted so the ones who don't attend most show at top (if that last is possible with aggregation)
Answers.UserDisplayName: petednz - fuzion
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2015-07-16T08:14:50.553Z
Answers.Text: Upvote for the participant status suggestion, that makes sense. I think I might then create a CiviReport (with ability to choose a date range, participant status we're looking for, and threshold for how many events) and use the email notification features of that.
Answers.UserDisplayName: DaveFF
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2015-07-14T12:38:02.173Z
Answers.LastActivityDate: 2015-07-14T12:38:02.173Z
Answers.UserDisplayName: JoAnne
Answers.Body: <p>The two tools in Civi that can help you automate this are scheduled reminders and repeating events.</p>
  
  <p>First create a single event and on the "Schedule reminder" tab configure a reminder for no-show attendees like so:</p>
  
  <p><a href="https://i.sstatic.net/HRciW.png" rel="nofollow noreferrer"><img src="https://i.sstatic.net/HRciW.png" alt="enter image description here"></a></p>
  
  <p>Then set up your event to repeat every week. Each weekly event will inherit this scheduled reminder setting.</p>
  
  <p><a href="https://i.sstatic.net/G39a7.png" rel="nofollow noreferrer"><img src="https://i.sstatic.net/G39a7.png" alt="enter image description here"></a></p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2015-07-25T05:27:08.347Z
Answers.Text: Would this email the students who missed or the teacher?
Answers.UserDisplayName: Allen Hutchison
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2015-07-25T16:35:19.387Z
Answers.Text: Ah, good point, this would email the student. Re-reading the question I see that's not what's wanted.
Answers.UserDisplayName: Coleman
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2015-07-24T17:39:01.557Z
Answers.LastActivityDate: 2015-07-24T17:39:01.557Z
Answers.UserDisplayName: Coleman
Answers.Body: <p>Sometimes you just have to use spreadsheets!</p>
  
  <p>In one tab, I would create a list of students that are supposed to attend. Export the attendants for each event, and add to the spreadsheet as a new tab, create a name range for the exported names. In the original tab do a look up (VLOOKUP) for each event in a separate column. You'll be able to see at a glance who has attended. You can also add a column to count the number of events attended.</p>
  
  <p>I've used this method in the past to ensure all employees have entered time.</p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2015-07-14T21:08:36.970Z
Answers.LastActivityDate: 2015-07-14T21:08:36.970Z
Answers.UserDisplayName: Sanjay Jain
Body: <p>Given a weekly class that registers students into repeating CiviCRM events as a way to record attendance, is there a way to trigger an email to the teacher if a student is absent a set number of consecutive weeks?</p>
  
  <p>I looked briefly at the new CiviRules extension, but didn't see such functionality.</p>
  
  <p>In addition, something similar could be done manually by searching for contacts who are in the class, but who were not registered, for example, in the last three weekly events.</p>
  
  <p>But, ideally, I'm looking for a automated solution.</p>
  
Comments.ContentLicense: CC BY-SA 3.0
Comments.CreationDate: 2015-07-14T15:08:26.167Z
Comments.Text: Could you give a bit more detail describing how students are marked as present/absent?
Comments.UserDisplayName: Jon G - Megaphone Tech
Comments.ContentLicense: CC BY-SA 3.0
Comments.CreationDate: 2015-07-14T16:08:15.803Z
Comments.Text: They are registered for a weekly recurring event if they are present. If absent, they are not registered.
Comments.UserDisplayName: Justin Young
Comments.ContentLicense: CC BY-SA 3.0
Comments.CreationDate: 2015-07-14T16:25:43.967Z
Comments.Text: How does the system know who's registered for the class at all?  That is, If you have 100 contacts in CiviCRM, and 20 are supposed to show up for a class and only 15 do, how can you tell which 5 were registered but didn't show?
Comments.UserDisplayName: Jon G - Megaphone Tech
Comments.ContentLicense: CC BY-SA 3.0
Comments.CreationDate: 2015-07-14T21:06:23.017Z
Comments.Text: Two ideas: #1 - The first class session would be the standard. That is, the absences would only apply in class two and following by being compared against the first class session.
Comments.UserDisplayName: Justin Young
Comments.ContentLicense: CC BY-SA 3.0
Comments.CreationDate: 2015-07-14T21:10:23.197Z
Comments.Text: #2: The class would be in a CiviCRM group, and absences would evaluated against that for the first class – but then also factor in subsequent class sessions for class sessions two and following.
Comments.UserDisplayName: Justin Young
Tags: <civievent>
Title: Event absences triggers an email?
ThreadText: # Event absences triggers an email?
  
  (Asked by: username_0 on 2015-07-12)
  
  Given a weekly class that registers students into repeating CiviCRM events as a way to record attendance, is there a way to trigger an email to the teacher if a student is absent a set number of consecutive weeks?
  
  I looked briefly at the new CiviRules extension, but didn't see such functionality.
  
  In addition, something similar could be done manually by searching for contacts who are in the class, but who were not registered, for example, in the last three weekly events.
  
  But, ideally, I'm looking for a automated solution.
  
  **Tags:** civievent
  
  > **Comments:**
  > **username_1**: Could you give a bit more detail describing how students are marked as present/absent?  
  > **username_0**: They are registered for a weekly recurring event if they are present. If absent, they are not registered.  
  > **username_1**: How does the system know who's registered for the class at all?  That is, If you have 100 contacts in CiviCRM, and 20 are supposed to show up for a class and only 15 do, how can you tell which 5 were registered but didn't show?  
  > **username_0**: Two ideas: #1 - The first class session would be the standard. That is, the absences would only apply in class two and following by being compared against the first class session.  
  > **username_0**: #2: The class would be in a CiviCRM group, and absences would evaluated against that for the first class – but then also factor in subsequent class sessions for class sessions two and following.  
  
  ---
  
  ## 4 answers
  
  ### Answer by username_0 on 2015-07-24. Score: 2 | Accepted answer
  
  Thank you for all the help!
  
  Ultimately, I believe I will use the following:
  
  * Attendees are registered for a weekly event.
  * Custom search smart group which includes class roster group, but excludes those who were present at least once in the last month.
  * Report cron job to email these results on a monthly basis.
  
  While it isn't *exactly* what I originally thought I needed, it works well enough to see those absent in the last month.
  
  The key for me was realizing I could use a report to automatically email the data.
  
  Thanks again!
  
  
  ---
  
  ### Answer by username_2 on 2015-07-14. Score: 4
  
  I don't think there is a straight forward way to do this.
  
  It **may** be possible if you register the entire class list for all the classes (events) and then set the participant status to "No-show" when a student misses a class. Then you might be able to do something by shuffling students between a series of groups - "no-show this week", "no-show this week & last", "no-show three consecutive weeks" using CiviRules and sending a weekly "Constituent summary" report to the teacher restricted to the people in the "no-show three consecutive week" group.
  
  However, if you have more than one class you would need three groups for each class so you could get to an unmanageable number of groups fairly quickly.
  
  Also, I am not sure if the existing conditions and actions in CiviRules would be enough for this purpose or if you would need to create additional conditions and/or actions
  
  > **Comments:**
  > **username_3**: I think this is getting closer to possible ie have the whole class as participants and then use different status to differentiate between attendees and no shows. But i also agree that it will be a struggle getting from that point to sending a notification to the 'teacher' when someone has 3 consecutive 'no shows'. You might be able to set up a View (in drupal) with aggregation to show 'students who status is no show over last 3 weeks, and sorted so the ones who don't attend most show at top (if that last is possible with aggregation)  
  > **username_4**: Upvote for the participant status suggestion, that makes sense. I think I might then create a CiviReport (with ability to choose a date range, participant status we're looking for, and threshold for how many events) and use the email notification features of that.  
  
  ---
  
  ### Answer by username_5 on 2015-07-24. Score: 2
  
  The two tools in Civi that can help you automate this are scheduled reminders and repeating events.
  
  First create a single event and on the "Schedule reminder" tab configure a reminder for no-show attendees like so:
  
  [![enter image description here](https://i.sstatic.net/HRciW.png)](https://i.sstatic.net/HRciW.png)
  
  Then set up your event to repeat every week. Each weekly event will inherit this scheduled reminder setting.
  
  [![enter image description here](https://i.sstatic.net/G39a7.png)](https://i.sstatic.net/G39a7.png)
  
  > **Comments:**
  > **username_6**: Would this email the students who missed or the teacher?  
  > **username_5**: Ah, good point, this would email the student. Re-reading the question I see that's not what's wanted.  
  
  ---
  
  ### Answer by username_7 on 2015-07-14. Score: 0
  
  Sometimes you just have to use spreadsheets!
  
  In one tab, I would create a list of students that are supposed to attend. Export the attendants for each event, and add to the spreadsheet as a new tab, create a name range for the exported names. In the original tab do a look up (VLOOKUP) for each event in a separate column. You'll be able to see at a glance who has attended. You can also add a column to count the number of events attended.
  
  I've used this method in the past to ensure all employees have entered time.
  
  
  ---
  
  