TracCloudGuideGlobalLists and TracCloudGuideProfilePrefsTwig: Difference between pages

From Redrock Wiki

(Difference between pages)
No edit summary
 
No edit summary
 
Line 1: Line 1:
{{TracCloudGuideTabs}}
{{TracCloudGuideTabs}}
{| style="width:100%; vertical-align:top; "
{| style="width:100%; vertical-align:top; "
| style="width:250px; vertical-align:top; padding:2px 15px 2px 2px;" | {{TracCloudGuideGlobalTOC}}
| style="width:250px; vertical-align:top; padding:2px 15px 2px 2px;" | {{TracCloudGuideProfileTOC}}
| style="vertical-align:top; padding:20px 20px 20px 2px;" |
| style="vertical-align:top; padding:20px 20px 20px 2px;" |
{| style="width:100%; vertical-align:top; "
{| style="width:100%; vertical-align:top; "
<big><b>Custom Lists, Dynamic Lists, & Watch Lists</b></big><br>
<big><b>Formatting Text in TracCloud with Twig and HTML</b>
<div style="float:right;">
[[TracCloudGuideProfilePrefsTwig#Tag_List|[Jump to Twig Tags]]]</big>
</div><br><br>


Custom Lists are used to group an arbitrary list of students together. You may create a list and then assign students to the list from the Lists tab of the Student Entry screen. A Watch List can then be created for one of your existing Custom Lists, which will display a colored indicator for the individual students who have been assigned to the list.<br><br>
Many text boxes throughout TracCloud support Twig, this allows greater control in determining how emails are formatted and what data is included. HTML is also supported, allowing to you adjust the formatting of text. From font sizes, colors, and types, to embedding images and video.
<br><br>
Twig allows you to pull data from various TracCloud fields to be included in emails and texts via our tag system. We can also use Twig to apply logic to our text. Maybe we only want to include a block of text if the student selected a specific reason, or if a certain Recommendation was selected in a SAGE referral.
<br><br>
This chapter will be going over several Twig options available, however, this is not an in-depth guide. Twig isn’t exclusive to TracCloud, and there are many resources available online for more complex configurations if you’d like to go a step further. The point of this chapter is to give some brief examples and possible configuration ideas that you can build off of.
<br><br>
Most of the examples here will be formatted for an appointment confirmation email, but Twig can also be utilized in SAGE referral emails and in the upcoming appointments screen for students and consultants. The same concepts apply across the board.
<hr>
==Tags==
Email tags can be used to pull data from various TracCloud fields to be included in emails and upcoming appointments. Many of the Twig examples in this chapter will be using these tags, whether they’re used as part of a Twig command or just offhandedly included in an unrelated part of the email. A list of tags can be found at the bottom of this chapter (and within the TracCloud menu), but for a basic primer on how these tags can be used in isolation, here’s an example of a confirmation email.
<hr>
<nowiki>
Hello,  {{Student.First_Name}}
<br><br>
Your {{Appointment.OnlineText}} appointment with {{Consultant.FirstLast}} at
{{Appointment.StartTime}} for {{Course.SubjectCourse}} has been scheduled. If you have any
questions prior to your appointment, feel free to reach out to {{Consultant.Email}}
<br><br>
Your appointment can be joined here: {{Appointment.OnlineLink}}
<br><br>
Regards, {{Center.Name}}
</nowiki>
<hr>
When this email is sent, all the tags we included are replaced with the relevant information for this appointment.
<br>
[[File:76y5rgeth4j75k.png|500px]]
<hr>
 
==if==
<i>if</i> statements will likely be the most commonly used Twig command for most use-cases. This allows you to write out statements such as <i>“if the student selected reason “Exam Help,” then include this piece of text.”</i> Or in the example below, <i>if the appointment is online, include text to specify this.</i>
<br><br>
In the statement, we’re using the same tags that are used for emails, but without the curly brackets.
<hr>
<nowiki>
Hello {{Student.First_Name}},
<br><br>
{% if Appointment.Online == "Online" %}
This is an online appointment.
{% endif %}
<br><br>
Please be ready for the appointment at the time you selected.
</nowiki>
<hr>
If the <i>if</i> statement is true, all text up to the endif line will be printed in the email. Since the appointment this student booked is online, the “This is an online appointment” text was included. Otherwise, it would jump straight to “Please be ready for the appointment…”
<br>
[[File:453j65ynh4g5rt.png|500px]]
<br><br>
We aren’t limited to just “equals” either. Similar examples with different logic can be found below.
<hr>
<nowiki>
{% if Course.Subject starts with "Chem" %}
this text is only included if our subject starts with “Chem”. This is case-sensitive.
{% endif %}
 
{% if Course.Subject ends with "101" %}
This text is only included if our subject ends with “101”
{% endif %}
 
{% if Appointment.Online != "Online" %}
This text is only included if the appointment is not online
{% endif %}


These lists can be used for a variety of reasons, from simply pulling up a set of students, running reports, or even limiting a permission group’s access to only a certain population of students. If you want to make a student stand out on the Log Listing or Student Listing, assigning them to a Watch List is a great way to accomplish this.<br>
{% if Course.Subject == "Math" or Course.Subject == "Chem" %}
This text is only included if the subject is Math or Chem
{% endif %}
 
{% if (CalcMissedAppointments(Student.Sequence, Center.ProfileID) > 0) %}
You have {{CalcMissedAppointments(Student.Sequence, Center.ProfileID)}} missed
appointments since {{CalcMissedDate(Center.ProfileID)}}.
{% endif %}
</nowiki>
<hr>
<big><i>Other Examples</i></big>


<hr>
<hr>
==Creating Custom Lists==
"<b>If student is on a Watch List.</b>" Watch List sequence can be retrieved by hovering your mouse over the Watch List name in your System Preferences.


Within your Global Preferences, you will find the Custom Lists option. This allows you to view the custom lists that have been created in your Trac System, which can be renamed, deactivated ("<b>!</b>" button), or deleted if needed. Deactivated lists no longer appear on the student list/reports, but can be reactivated later if needed. A new custom list can be created by clicking the <b>+</b> icon.<br>
<nowiki>
{% if Student.WatchLists.wl_14 == "true" %}
This student is on the Athletes list!
{% endif %}
</nowiki>
<hr>
Modify who receives an email based on a custom field, specific to <b>Send Visit Notes to Coach, Advisor or Student.</b><br><br>


<i>Other > Other Options > Preferences > Custom Lists</i><br>
<b>To Address of Recipient of the Notes (Coach, Advisor, Student)</b> - Only include emails selected from a multi-checkbox custom field, only include semi-colon if needed.
<nowiki>
{% set var2 = 0 %}
{% if "Student" in Visit.CustomData.cf_104 %}
    {% if var2 >= 1 %};{% endif %}
    {{Student.Email}}
    {% set var2 = 1 %}
{% endif %}
{% if "Faculty" in Visit.CustomData.cf_104 %}
    {% if var2 >= 1 %};{% endif %}
    {{Faculty.Email}}
    {% set var2 = 1 %}
{% endif %}
{% if "Consultant" in Visit.CustomData.cf_104 %}
    {% if var2 >= 1 %};{% endif %}
    {{Staff.Email}}
    {% set var2 = 1 %}
{% endif %}
{% if "SysAdmin Dave Smith" in Visit.CustomData.cf_104 %}
    {% if var2 >= 1 %};{% endif %}
    example@school.edu
    {% set var2 = 1 %}
{% endif %}
</nowiki>


[[File:6909485.png|800px]]<br><br>
<b>`Who` Label of the Button for Sending the Notes</b> - Modify the phrasing of this button based on the options selected.
<nowiki>
{% set var = 0 %}
{% for key,value in Visit.CustomData.cf_104 %}
{% if value != "#NULL#" %}
{% if var >= 1 %},
{% endif %}
{{ value|trim(' ') }}
{% set var = 1 %}
{% endif %}
{% endfor %}
</nowiki>
<hr>
<hr>
==Creating Dynamic Lists==


Dynamic lists have a similar use as Custom lists, but are updated automatically based on other information in the Trac System. This allows you to have an always-up-to-date list of students for any reason.<br><br>
==else==
An else statement allows us to include a block of text or an additional instruction if an <i>if</i> statement ends up not being true. For example, if our appointment above turns out to be an in-person appointment, maybe we want to include a different string of text.
<hr>
<nowiki>
Hello  {{Student.First_Name}},
<br><br>
{% if  Appointment.Online == "Online" %}
This is an online appointment.
{% else %}
This is an in-person appointment.
{% endif %}
<br><br>
Please be ready for the appointment at the time you selected.
</nowiki>
<hr>
Since the appointment wasn’t online, we get the “This is an in-person…” text in our confirmation email instead.
<br>
[[File:57j57k7k7lkk.png|500px]]
<hr>
==elseif==
An <i>elseif</i> statement allows us to ask additional <i>if</i> questions, assuming the answer to the prior question was No.
<hr>
<nowiki>
Hello  {{Student.First_Name}},
<br><br>
{% if Course.Subject == "Math" %}
This appointment is for Math
{% elseif Course.Subject == "Chem" %}
This appointment is for Chem
{% endif %}
<br><br>
Please be ready for the appointment at the time you selected.
</nowiki>
<hr>
Since our appointment was for Chemistry, we receive the following email. If the appointment was for neither Chemistry nor Math, we wouldn’t see a middle block of text at all.
<br>
[[File:45j67j5nl68k67.png|500px]]
<hr>


To create your dynamic list, start by searching for students using the method you want to create your dynamic list from. For example, if you want a list of all students with a Major of “Mathematics” and a status of “Active,we can perform the following Search.<br>
==if (for arrays)==
When you want to use an <i>if</i> statement for arrays, such as the Reasons and Recommendations for SAGE referrals, the formatting is a little bit different. In this context, you would want to know if the Reasons array contains the reason you’re looking for. This would be formatted as such:
<hr>
<nowiki>
Hello  {{Student.First_Name}},
<br>
{% if "Poor Grades" in Reasons %}
This referral is being submitted due to the reason “Poor Grades”
{% endif %}
</nowiki>
<hr>
Since “Poor Grades” was the reason our faculty member selected when submitting this referral, we receive the following email.
<br>
[[File:566776lyujhg.png|500px]]
<br><br>
We can also search for the opposite, specifying “not in” instead:
<hr>
<nowiki>
{% if "Poor Grades" not in Reasons %}
This referral was *not* created with the reason “Poor Grades”
{% endif %}
</nowiki>
<hr>


[[File:1316732.png|600px]]<br><br>
==for (listing sequence contents)==
The <i>for</i> command allows us to list out the contents from a specific sequence. This would frequently be used for listing out Reasons or Recommendations in SAGE referral emails.
<hr>
<nowiki>
This referral is being submitted because of these reasons:
<br>
{% for key,value in Reasons %}
    {{ value }} <br>
{% endfor %}
<br><br>
And these recommendations:
<br>
{% for key,value in Recommendations %}
    {{ value }} <br>
{% endfor %}
</nowiki>
<hr>
[[File:6j57k6jthngfbv.png|500px]]
<br><br>
Alternatively, Array tags such as ReferralType.Reasons will need to be formatted as such:
<hr>
<nowiki>
{% for item in ReferralType.Reasons %}
{{ item.value|e }}
{% endfor %}
</nowiki>
<hr>


Once we have our search results, we can create our dynamic list. Click the hamburger icon > Lists > Create New Dynamic List. Give it a name when prompted, then click OK. Your last search criteria will be used to keep this list of students up to date.<br>
==SAGE Questions==
Custom questions within SAGE have one more moving part to take into consideration. When creating a custom question, there’s a field named “Code Reference.” This is the code used when referring to this question in emails and reports.
<br>
[[File:64ik6ughntr6.png|500px]]
<br><br>
These questions/answers are part of an array, utilized just like the Reasons and Recommendations above.
<hr>
<nowiki>
Hi, this referral has been submitted:
<br><br>
{% if Answers.VisitQuestion != '' %}
You answered {{Answers.VisitQuestion}} to the question {{Questions.VisitQuestion}}
{% endif %}
<br><br>
{% for key,value in Answers %}
The answer to question {{ attribute(Questions, key) }} is {{ value }}
<br>
{% endfor %}
</nowiki>
<hr>
First, we’re looking for a specific question and answer. To pull this information, we’re using the tags “<i>Answers.[Code Reference]</i>” and “<i>Questions.[Code Reference]</i>”, with the code reference portion being replaced with whatever we entered in the SAGE custom question. If this question was answered, we’re going to include our answer and the question itself in the email.
<br><br>
Secondly, we want to go through all of our answers to all of our questions. This would be an array just like Reasons and Recommendations, and is formatted similarly. Once we receive this email, we will see the answers selected by our faculty member.
<br>
[[File:Qeh3536j46j3hbeg.png|500px]]
<hr>


[[File:6642721.png|800px]]<br><br>
==Actions (for SAGE)==
Actions can be used as commands in addition to Twig. At this time, the only Action that has been implemented is <i>#ACTION:DO NOT SEND#</i>, which prevents the email from being sent. This would be useful in situations where not all of your SAGE referrals need to result in an email being sent. For example, you could have a dedicated recommendation for “No recommendations at this time”, and we could use that to determine whether or not an email gets sent.
<hr>
<nowiki>
{% if "No recommendations at this time" not in Recommendations %}
This referral is being submitted because of these reasons:
<br>
{% for key,value in Reasons %}
    {{ value }} <br>
{% endfor %}
<br><br>
And these recommendations:
<br>
{% for key,value in Recommendations %}
    {{ value }} <br>
{% endfor %}
{% else %}
#ACTION:DO NOT SEND#
{% endif %}
</nowiki>
<hr>
<hr>
==List Categories==
With this email configuration in place, if our faculty member submits a referral with the recommendation “No recommendations at this time,” no email would be sent. An email will only be sent if that recommendation wasn’t selected, which would then follow the rest of the example above, listing out reasons and recommendations.
<hr>
 
==Tag List==
The remainder of this chapter will display all of the email tags available in TracCloud with definitions.
<br><br>
For most of these tags, you can print the relevant value by surrounding the field with double-curly brackets, as seen in several of the above twig examples. The curly brackets are not required when using the value in an <i>if</i> statement, for example.
<br><br>
{| class="wikitable"
|+ Student
|-
| Student.First_Name || Student's first name
|-
| Student.Last_Name || Student's last name
|-
| Student.Legal_First || Student's legal first name
|-
| Student.Full_Name || The student's full name, formatted as "Last, First M."
|-
| Student.Full_Name2 || The student’s full name, formatted as “First M. Last”
|-
| Student.FirstLast || Student's full name, formatted as "First Last"
|-
| Student.LastFirst || Student's full name, formatted as "Last, First M"
|-
| Student.Home_Phone || Student's home phone number
|-
| Student.Work_Phone || Student's work phone number
|-
| Student.Cell_Phone || Student's cell phone number
|-
| Student.Email || Student’s email address
|-
| Student.UserName || Student’s username
|-
| Student.ID || Student's ID number
|-
| Student.Other_ID || An optional unique identifier for this student, like a handle or username
|-
| Student.Other_ID2 || A second optional unique identifier for this student
|-
| Student.Barcode || Student's barcode number
|-
| Student.Major || Student's major
|-
| Student.Class || Student's class
|-
| Student.DegreeGoal || Student's degree goal
|-
| Student.Cohort || Student's cohort
|-
| Student.College || Student's college
|-
| Student.Grad_Und || Student's undergraduate
|-
| Student.GPA || Student's GPA
|-
| Student.CustomData.cf_0 || Custom fields, hover over each field in the Email Tag list to find the correct tag
|-
| Student.WatchLists.wl_0 || Watch lists, returns a true or false value based on whether or not the student is on that list. Hover over the name of your watch list to find the correct sequence number (e.g., wl_9)
|}
 


Lists can be grouped into categories for further organization. The name of your list should be in the format of <b>Category::List Name</b>. See example below.
{| class="wikitable"
|+ Appointment
|-
| Appointment.StartDT || Appointment start day/time, formatted as "2020-01-31 14:00:00"
|-
| Appointment.EndDT || Appointment end day/time, formatted as "2020-01-31 15:00:00"
|-
| Appointment.Duration || The duration of the appointment, formatted as "60"
|-
| Appointment.Fund || Appointment fund choice
|-
| Appointment.Location || Appointment location choice
|-
| Appointment.Online || If the appointment is online, this tag will display as "1", otherwise it will be blank.
|-
| Appointment.SchedUser || The user type and username of who booked this appointment, formatted as "SysAdmin dsmith"
|-
| Appointment.SchedDT ||  The date and time of when this appointment was booked, formatted as "2020-01-01 13:00:00"
|-
| Appointment.SchedModBy ||  The user type and username of who last modified this appointment, formatted as "SysAdmin dsmith"
|-
| Appointment.SchedModDT ||  The date and time of when this appointment was last modified, formatted as "2020-01-31 13:00:00"
|-
| Appointment.OnlineLink || If the appointment is held online, this tag will create a link that sends students to the room and mark the appointment as attended.
|-
| Appointment.StartTime || Appointment start time, formatted as "02:00pm"
|-
| Appointment.StartDate || Appointment start date, formatted as "01/31/20"
|-
| Appointment.EndTime || Appointment end time, formatted as "03:00pm"
|-
| Appointment.EndDate || Appointment end date, formatted as "01/31/20"
|-
| Appointment.Day || The day of the appointment, formatted as "Wednesday"
|-
| Appointment.isCancelled || Cancelled status, displayed as 'true' or 'false'
|-
| Appointment.autoCanceled || Whether or not the appointment automatically cancelled due to max cancel/missed in recurring series rules, displayed as 'true' or 'false'
|-
| Appointment.isMissed || Missed status, displayed as 'true' or 'false'
|-
| Appointment.isRecurring || Recurring status, displayed as 'true' or 'false'
|-
| Appointment.recurFirstDate || The first date of a recurring appointment series, formatted as "2021-01-31"
|-
| Appointment.recurLastDate || The final date of a recurring appointment series, formatted as "2021-01-31"
|-
| Appointment.Status || The appointment status.
|-
| Appointment.Type || The appointment type, formatted as "1 on 1" or "Group"
|-
| Appointment.Icon<nowiki>|raw</nowiki> || An icon indicating the appointment Type.
|-
| Appointment.DisplayTime<nowiki>|raw</nowiki> || Appointment time, formatted as "200p" (minutes will display noticeably smaller than hours)
|-
| Appointment.DisplayDate || Appointment date, formatted as "Fri, Jan 31"
|-
| Appointment.hasDocument|| Will be 'true' or 'false' depending on whether or not the appointment has a document uploaded.
|-
| Appointment.OnlineText || If the appointment is online, this tag will display as "Online", otherwise it will be blank. (for example, "...Your Appointment.OnlineText appointment..." will include or exclude the word "Online")
|-
| Appointment.Link || This provides a link to the appointment record in TracCloud, accessible by students or staff.
|-
| Appointment.CustomData.cf_0 || Custom fields, hover over each field in the Email Tag list to find the correct tag
|}


System Preferences:<br>
[[File:7766745.png|700px]]<br><br>


How it appears on the Student Listing:<br>
{| class="wikitable"
[[File:8766332.png|700px]]
|+ Center
|-
| Center.Name || The appointment/visit center
|}
 
 
{| class="wikitable"
|+ Reason
|-
| Reason.ReasonName || The appointment/visit reason
|-
| Reason.Category || The reason category
|}
 
 
{| class="wikitable"
|+ Section
|-
| Section.Code || The section code
|-
| Section.CRN || The section CRN number
|-
| Section.SubjectTermCode || Subject + Section + Term Code, “CHEM321 A2 20202”
|-
| Section.SubjectTitle || Subject + Title, “CHEM321 Chemistry”
|}
 
 
{| class="wikitable"
|+ Course
|-
| Course.Subject || Subject, "CHEM"
|-
| Course.Course || Course, "321"
|-
| Course.Title || Title, "Chemistry"
|-
| Course.SubjectCourse || Subject + Course, "CHEM321"
|-
| Course.SubjectCourseTitle || Subject + Course + Title, "CHEM231 Chemistry"
|}
 
 
{| class="wikitable"
|+ Faculty
|-
| Faculty.FirstName || Faculty's first name
|-
| Faculty.LastName || Faculty's last name
|-
| Faculty.Salutation || Faculty member salutation, for example, "Dr."
|-
| Faculty.Department || Faculty's department
|-
| Faculty.Phone || Faculty's phone number
|-
| Faculty.Email || Faculty's email address
|-
| Faculty.SalutationFullName || Full name with salutation, for example, "Dr. Phil Roberts"
|-
| Faculty.SalutationLastName || Last name with salutation, for example, "Dr. Roberts"
|-
| Faculty.CustomData.cf_0 || Custom fields, hover over each field in the Email Tag list to find the correct tag
|}
 
 
{| class="wikitable"
|+ Consultant <i>("Consultant." or "Staff." prefixes can be used interchangeably)</i>
|-
| Consultant.First_Name || Consultant's first name
|-
| Consultant.Last_Name || Consultant's last name
|-
| Consultant.LastFirst || Consultant's full name, formatted as "Last, First"
|-
| Consultant.FirstLast || Consultant's full name, formatted as "First Last"
|-
| Consultant.Alias || Consultant's alias
|-
| Consultant.Email || Consultant's email address
|-
| Consultant.Phone || Consultant's phone number
|-
| Consultant.Pronouns || Consultant's preferred pronouns
|-
| Consultant.Photo<nowiki>|raw</nowiki> || Consultant's photo
|-
| Consultant.StaffBIO<nowiki>|raw</nowiki> || Consultant's bio
|-
| Consultant.WorkPhone || Consultant's work phone number
|-
| Consultant.CellPhone || Consultant's cell phone number
|-
| Consultant.CustomData.cf_0 || Custom fields, hover over each field in the Email Tag list to find the correct tag
|}
 
 
{| class="wikitable"
|+ Visit (only for visit emails)
|-
| Visit.EnteredDT || The date and Time the student entered the Center
|-
| Visit.TimeIn || The date and Time the student started receiving help.
|-
| Visit.TimeOut || The date and time the student left the center.
|-
| Visit.Duration || Visit duration in minutes
|-
| Visit.WaitTime || Visit wait time in minutes
|-
| Visit.EnteredTime || Start time of visit, including wait time, formatted as “09:45pm”
|-
| Visit.EnteredDate || Start date of visit, including wait time, formatted as “04/05/21”
|-
| Visit.StartTime || Start time of visit, formatted as “09:48pm”
|-
| Visit.StartDate || Start date of visit, formatted as “04/05/21”
|-
| Visit.EndTime || End time of visit, formatted as “09:48pm”
|-
| Visit.EndDate || End date of visit, formatted as “04/05/21”
|-
| Visit.Day || Day of the visit, formatted as "Wednesday"
|-
| Visit.CtrNotes|| The notes for this visit.
|-
| Visit.CustomData.cf_0 || Custom fields, hover over each field in the Email Tag list to find the correct tag
|}


<hr>
==Creating Watch Lists==


To create a new watch list indicator, head over to your global preferences, select Watch Lists, and click the <b>+</b> icon. This will add a new watch list, clicking on the name lets you rename it, selecting the colored box lets you change the indicator color, and the box next to that determines which list this Watch List is assigned to. After you’ve given it a name, color, and list, select the right-arrow to control where these indicators appear.<br><br>
{| class="wikitable"
|+ Documents (only for document emails)
|-
| Document.OrigName || The file name (including file extension)
|-
| Document.Notes || Notes entered during document upload
|-
| Document.PostedBy || The UUID of who uploaded this document
|-
| Document.PostedByName || The user type, sequence, and name of who uploaded this document
|-
| Document.Usage || Where this document was uploaded, e.g., Appointment, Student, Availability
|-
| DocType.Name|| The document type selected during upload
|}


<i>Other > Other Options > Preferences > Watch Lists</i><br>


[[File:2218020.png|800px]]<br><br>
{| class="wikitable"
|+ Resources (only for resource emails)
|-
| Resource.Title || The name of the resource
|-
| Resource.Barcode || The barcode value of the resource
|-
| Resource.Description || The description of this resource
|-
| Resource.Keywords || The keywords for this resource, which can be used to check the item in or out
|-
| Resource.Status || The status of the resource, "-1" is Inactive, "0" is Checked out, "1" is available and not checked out, "2" is always available
|-
| Resource.MaxDaysOut || The maximum number of days that an item can be checked out
|-
| Resource.MaxTimeOut || The maximum amount of time that an item can be checked out
|-
| Checkout.Date || The resource checkout date
|-
| Checkout.Collateral || The collateral collected from the student during checkout
|-
| Checkout.Overdue || Whether or not this item is overdue, formatted as "0" (not overdue) or "1" (overdue)
|-
| Checkout.DueDT || The date and time that the item is due to be returned, formatted as "2020-01-31 13:00:00"
|-
| ResourceType.Name || The name of the resource type that the resource is assigned to
|-
| ResourceType.Description || The description of the resource type that the resource is assigned to
|}


<big><b>Watch List Indicator Locations</big></b><br>


The watch list indicator can be configured to display in various locations throughout the Trac System. Hovering over the indicator also provides the list name.<br>
{| class="wikitable"
|+ CustomFields (Replace "123" with your Custom Field sequence number)
|-
| CustomFields.cf_123.DataName || The internal field name of the specified custom field
|-
| CustomFields.cf_123.Prompt || The external/prompt text of the specified custom field
|-
| CustomFields.cf_123.Choices || [Array] The available choices for the specified custom field (separate from selected choices)
|}


[[File:2011567.png|500px]]<br><br>


* <b>Display on Log In/Out</b>
<onlyinclude>
::Displays in the upper-right corner of the login/logout center select screen.
{| class="wikitable"
::[[File:2817709.png|500px]]<br><br>
|+ Referral Type (SAGE)
|-
| ReferralType.Name || The name of the referral that has been submitted
|-
| ReferralType.RosterSubject || [Array] The roster subject, e.g., “Chem”
|-
| ReferralType.NotesInstructions || These are the instructions written out in within the referral settings
|-
| ReferralType.Reasons || [Array] Lists all referral Reasons, regardless of what was selected.
|-
| ReferralType.Recommend || [Array] Lists all referral Recommendations, regardless of what was selected.
|-
| ReferralType.AdditionalNotesInstr || These are the additional notes written out within the referral settings
|}


* <b>Display on Entry</b>
::Displays the indicator in the top-right corner of student profiles.
::[[File:5106470.png|500px]]<br><br>


* <b>Display on Listing</b>
{| class="wikitable"
::Displays the indicator on the Student Listing.
|+ Referral (SAGE)
::[[File:3618163.png|500px]]<br><br>
|-
| Referral.CreatedBy || The name of the faculty member that submitted this referral
|-
| Referral.CreatedDT || When this referral was created
|-
| Referral.NotesInstrData || Notes entered while submitting this referral
|-
| Referral.AdditionalNotes || Additional notes entered while submitting this referral
|-
| Referral.ReasonsData || [Array] Selected reasons, “Reasons” is preferred (see “For” examples above).
|-
| ReasonsAndLabels || [Array] Same as above, but this will also include your Reason labels in the email body.
|-
| Referral.RecommendData || [Array] Selected recommendations, “Recommendations” is preferred (see “For” examples above).
|-
| RecommendationsAndLabels || [Array] Same as above, but this will also include your Recommendation labels in the email body.
|-
| Referral.FollowUpDate || The date this referral should be followed up on
|-
| Referral.FollowUpBy || The name of the staff who followed up on this referral
|-
| Referral.FollowedUp || If a follow-up has been saved, display “1”, otherwise blank
|-
| Referral.FollowedUpDT || The date this referral was followed up on
|-
| Referral.FollowedUpBy || Who this referral was followed up by
|-
| Referral.Processed || If this referral has been processed, display “1”, otherwise blank
|-
| Referral.ProcessedDT || The date/time this referral was marked as processed/completed
|-
| Referral.ProcessedBy || The written date/time this referral should be marked as processed
|-
| Referral.ProcessedNotes || Notes entered when marking the referral as processed
|-
| Referral.StudentContacted || The date that the student was contacted
|-
| Referral.CustomData.AssignedConsultantID || The sequence number of the assigned consultant.
|}


* <b>Display on Appointment</b>
::This makes the indicator visible within appointment entry windows.
::[[File:2570477.png|500px]]<br><br>


* <b>Display on Dashboard</b>
{| class="wikitable"
::This will allow the list to be visible from the staff dashboard, within the “Watch List Students” box.
|+ Other (SAGE)
::[[File:8048788.png|700px]]
|-
| Trigger || The trigger for this email, “Created”, “Followed Up”, or “Processed”
|-
| Email.Subject || The contents of the email subject line
|-
| Questions.CODE || Questions.[Your custom question code], as covered above
|-
| Answers.CODE || Answers.[Your custom question code], as covered above
|-
| <nowiki>{{ setResultActions('AssignConsultant', '</nowiki><span style="color:red">123</span><nowiki>') }}</nowiki> || If this line is reached within a SAGE email, the assigned staff member will be changed to the specified sequence
|-
| <nowiki>{{ setResultActions('SendEmail', '0') }}</nowiki> || If this line is reached within a SAGE email, the email will not be sent
|}
</onlyinclude>


{| class="wikitable"
|+ Other
|-
| CalcMissedAppointments(Student.Sequence, Center.ProfileID) || The student’s total number of missed appointments since the date specified in your profile Scheduling Prefs. Uses System Pref date if Profile date is blank.
|-
| CalcMissedDate(Center.ProfileID) || Your profile “Calc Missed Appointments Since” date. If this field is blank, this will use your global Calc Missed date instead.
|}


|}
|}

Revision as of 11:26, 12 December 2022


Formatting Text in TracCloud with Twig and HTML

Many text boxes throughout TracCloud support Twig, this allows greater control in determining how emails are formatted and what data is included. HTML is also supported, allowing to you adjust the formatting of text. From font sizes, colors, and types, to embedding images and video.

Twig allows you to pull data from various TracCloud fields to be included in emails and texts via our tag system. We can also use Twig to apply logic to our text. Maybe we only want to include a block of text if the student selected a specific reason, or if a certain Recommendation was selected in a SAGE referral.

This chapter will be going over several Twig options available, however, this is not an in-depth guide. Twig isn’t exclusive to TracCloud, and there are many resources available online for more complex configurations if you’d like to go a step further. The point of this chapter is to give some brief examples and possible configuration ideas that you can build off of.

Most of the examples here will be formatted for an appointment confirmation email, but Twig can also be utilized in SAGE referral emails and in the upcoming appointments screen for students and consultants. The same concepts apply across the board.


Tags

Email tags can be used to pull data from various TracCloud fields to be included in emails and upcoming appointments. Many of the Twig examples in this chapter will be using these tags, whether they’re used as part of a Twig command or just offhandedly included in an unrelated part of the email. A list of tags can be found at the bottom of this chapter (and within the TracCloud menu), but for a basic primer on how these tags can be used in isolation, here’s an example of a confirmation email.


Hello,  {{Student.First_Name}}
<br><br>
Your {{Appointment.OnlineText}} appointment with {{Consultant.FirstLast}} at 
{{Appointment.StartTime}} for {{Course.SubjectCourse}} has been scheduled. If you have any 
questions prior to your appointment, feel free to reach out to {{Consultant.Email}}
<br><br> 
Your appointment can be joined here: {{Appointment.OnlineLink}}
<br><br>
Regards, {{Center.Name}}


When this email is sent, all the tags we included are replaced with the relevant information for this appointment.
76y5rgeth4j75k.png


if

if statements will likely be the most commonly used Twig command for most use-cases. This allows you to write out statements such as “if the student selected reason “Exam Help,” then include this piece of text.” Or in the example below, if the appointment is online, include text to specify this.

In the statement, we’re using the same tags that are used for emails, but without the curly brackets.


Hello {{Student.First_Name}},
<br><br>
{% if Appointment.Online == "Online" %}
This is an online appointment.
{% endif %}
<br><br>
Please be ready for the appointment at the time you selected.


If the if statement is true, all text up to the endif line will be printed in the email. Since the appointment this student booked is online, the “This is an online appointment” text was included. Otherwise, it would jump straight to “Please be ready for the appointment…”
453j65ynh4g5rt.png

We aren’t limited to just “equals” either. Similar examples with different logic can be found below.


{% if Course.Subject starts with "Chem" %}
this text is only included if our subject starts with “Chem”. This is case-sensitive. 
{% endif %}

{% if Course.Subject ends with "101" %}
This text is only included if our subject ends with “101”
{% endif %}

{% if Appointment.Online != "Online" %}
This text is only included if the appointment is not online
{% endif %}

{% if Course.Subject == "Math" or Course.Subject == "Chem" %}
This text is only included if the subject is Math or Chem
{% endif %}

{% if (CalcMissedAppointments(Student.Sequence, Center.ProfileID) > 0) %}
You have {{CalcMissedAppointments(Student.Sequence, Center.ProfileID)}} missed 
appointments since {{CalcMissedDate(Center.ProfileID)}}.
{% endif %}


Other Examples


"If student is on a Watch List." Watch List sequence can be retrieved by hovering your mouse over the Watch List name in your System Preferences.

{% if Student.WatchLists.wl_14 == "true" %}
This student is on the Athletes list!
{% endif %}


Modify who receives an email based on a custom field, specific to Send Visit Notes to Coach, Advisor or Student.

To Address of Recipient of the Notes (Coach, Advisor, Student) - Only include emails selected from a multi-checkbox custom field, only include semi-colon if needed.

{% set var2 = 0 %}
{% if "Student" in Visit.CustomData.cf_104 %}
    {% if var2 >= 1 %};{% endif %}
    {{Student.Email}}
    {% set var2 = 1 %}
{% endif %}
{% if "Faculty" in Visit.CustomData.cf_104 %}
    {% if var2 >= 1 %};{% endif %}
    {{Faculty.Email}}
    {% set var2 = 1 %}
{% endif %}
{% if "Consultant" in Visit.CustomData.cf_104 %}
    {% if var2 >= 1 %};{% endif %}
    {{Staff.Email}}
    {% set var2 = 1 %}
{% endif %}
{% if "SysAdmin Dave Smith" in Visit.CustomData.cf_104 %}
    {% if var2 >= 1 %};{% endif %}
    example@school.edu
    {% set var2 = 1 %}
{% endif %}

`Who` Label of the Button for Sending the Notes - Modify the phrasing of this button based on the options selected.

{% set var = 0 %}
{% for key,value in Visit.CustomData.cf_104 %}
{% if value != "#NULL#" %}
{% if var >= 1 %}, 
{% endif %}
{{ value|trim(' ') }}
{% set var = 1 %}
{% endif %}
{% endfor %}


else

An else statement allows us to include a block of text or an additional instruction if an if statement ends up not being true. For example, if our appointment above turns out to be an in-person appointment, maybe we want to include a different string of text.


Hello  {{Student.First_Name}},
<br><br>
{% if  Appointment.Online == "Online" %}
This is an online appointment.
{% else %}
This is an in-person appointment.
{% endif %}
<br><br>
Please be ready for the appointment at the time you selected.


Since the appointment wasn’t online, we get the “This is an in-person…” text in our confirmation email instead.
57j57k7k7lkk.png


elseif

An elseif statement allows us to ask additional if questions, assuming the answer to the prior question was No.


Hello  {{Student.First_Name}},
<br><br>
{% if Course.Subject == "Math" %}
This appointment is for Math
{% elseif Course.Subject == "Chem" %}
This appointment is for Chem
{% endif %}
<br><br>
Please be ready for the appointment at the time you selected.


Since our appointment was for Chemistry, we receive the following email. If the appointment was for neither Chemistry nor Math, we wouldn’t see a middle block of text at all.
45j67j5nl68k67.png


if (for arrays)

When you want to use an if statement for arrays, such as the Reasons and Recommendations for SAGE referrals, the formatting is a little bit different. In this context, you would want to know if the Reasons array contains the reason you’re looking for. This would be formatted as such:


Hello  {{Student.First_Name}},
<br>
{% if "Poor Grades" in Reasons %}
This referral is being submitted due to the reason “Poor Grades”
{% endif %}


Since “Poor Grades” was the reason our faculty member selected when submitting this referral, we receive the following email.
566776lyujhg.png

We can also search for the opposite, specifying “not in” instead:


{% if "Poor Grades" not in Reasons %}
This referral was *not* created with the reason “Poor Grades”
{% endif %}


for (listing sequence contents)

The for command allows us to list out the contents from a specific sequence. This would frequently be used for listing out Reasons or Recommendations in SAGE referral emails.


This referral is being submitted because of these reasons:
<br>
{% for key,value in Reasons %}
    {{ value }} <br>
{% endfor %}
<br><br>
And these recommendations:
<br>
{% for key,value in Recommendations %}
    {{ value }} <br>
{% endfor %}


6j57k6jthngfbv.png

Alternatively, Array tags such as ReferralType.Reasons will need to be formatted as such:


{% for item in ReferralType.Reasons %}
{{ item.value|e }}
{% endfor %}


SAGE Questions

Custom questions within SAGE have one more moving part to take into consideration. When creating a custom question, there’s a field named “Code Reference.” This is the code used when referring to this question in emails and reports.
64ik6ughntr6.png

These questions/answers are part of an array, utilized just like the Reasons and Recommendations above.


Hi, this referral has been submitted:
<br><br>
{% if Answers.VisitQuestion != '' %}
You answered {{Answers.VisitQuestion}} to the question {{Questions.VisitQuestion}}
{% endif %}
<br><br>
{% for key,value in Answers %}
The answer to question {{ attribute(Questions, key) }} is {{ value }}
<br>
{% endfor %}


First, we’re looking for a specific question and answer. To pull this information, we’re using the tags “Answers.[Code Reference]” and “Questions.[Code Reference]”, with the code reference portion being replaced with whatever we entered in the SAGE custom question. If this question was answered, we’re going to include our answer and the question itself in the email.

Secondly, we want to go through all of our answers to all of our questions. This would be an array just like Reasons and Recommendations, and is formatted similarly. Once we receive this email, we will see the answers selected by our faculty member.
Qeh3536j46j3hbeg.png


Actions (for SAGE)

Actions can be used as commands in addition to Twig. At this time, the only Action that has been implemented is #ACTION:DO NOT SEND#, which prevents the email from being sent. This would be useful in situations where not all of your SAGE referrals need to result in an email being sent. For example, you could have a dedicated recommendation for “No recommendations at this time”, and we could use that to determine whether or not an email gets sent.


{% if "No recommendations at this time" not in Recommendations %}
This referral is being submitted because of these reasons:
<br>
{% for key,value in Reasons %}
    {{ value }} <br>
{% endfor %}
<br><br>
And these recommendations:
<br>
{% for key,value in Recommendations %}
    {{ value }} <br>
{% endfor %}
{% else %}
#ACTION:DO NOT SEND#
{% endif %}


With this email configuration in place, if our faculty member submits a referral with the recommendation “No recommendations at this time,” no email would be sent. An email will only be sent if that recommendation wasn’t selected, which would then follow the rest of the example above, listing out reasons and recommendations.


Tag List

The remainder of this chapter will display all of the email tags available in TracCloud with definitions.

For most of these tags, you can print the relevant value by surrounding the field with double-curly brackets, as seen in several of the above twig examples. The curly brackets are not required when using the value in an if statement, for example.

Student
Student.First_Name Student's first name
Student.Last_Name Student's last name
Student.Legal_First Student's legal first name
Student.Full_Name The student's full name, formatted as "Last, First M."
Student.Full_Name2 The student’s full name, formatted as “First M. Last”
Student.FirstLast Student's full name, formatted as "First Last"
Student.LastFirst Student's full name, formatted as "Last, First M"
Student.Home_Phone Student's home phone number
Student.Work_Phone Student's work phone number
Student.Cell_Phone Student's cell phone number
Student.Email Student’s email address
Student.UserName Student’s username
Student.ID Student's ID number
Student.Other_ID An optional unique identifier for this student, like a handle or username
Student.Other_ID2 A second optional unique identifier for this student
Student.Barcode Student's barcode number
Student.Major Student's major
Student.Class Student's class
Student.DegreeGoal Student's degree goal
Student.Cohort Student's cohort
Student.College Student's college
Student.Grad_Und Student's undergraduate
Student.GPA Student's GPA
Student.CustomData.cf_0 Custom fields, hover over each field in the Email Tag list to find the correct tag
Student.WatchLists.wl_0 Watch lists, returns a true or false value based on whether or not the student is on that list. Hover over the name of your watch list to find the correct sequence number (e.g., wl_9)


Appointment
Appointment.StartDT Appointment start day/time, formatted as "2020-01-31 14:00:00"
Appointment.EndDT Appointment end day/time, formatted as "2020-01-31 15:00:00"
Appointment.Duration The duration of the appointment, formatted as "60"
Appointment.Fund Appointment fund choice
Appointment.Location Appointment location choice
Appointment.Online If the appointment is online, this tag will display as "1", otherwise it will be blank.
Appointment.SchedUser The user type and username of who booked this appointment, formatted as "SysAdmin dsmith"
Appointment.SchedDT The date and time of when this appointment was booked, formatted as "2020-01-01 13:00:00"
Appointment.SchedModBy The user type and username of who last modified this appointment, formatted as "SysAdmin dsmith"
Appointment.SchedModDT The date and time of when this appointment was last modified, formatted as "2020-01-31 13:00:00"
Appointment.OnlineLink If the appointment is held online, this tag will create a link that sends students to the room and mark the appointment as attended.
Appointment.StartTime Appointment start time, formatted as "02:00pm"
Appointment.StartDate Appointment start date, formatted as "01/31/20"
Appointment.EndTime Appointment end time, formatted as "03:00pm"
Appointment.EndDate Appointment end date, formatted as "01/31/20"
Appointment.Day The day of the appointment, formatted as "Wednesday"
Appointment.isCancelled Cancelled status, displayed as 'true' or 'false'
Appointment.autoCanceled Whether or not the appointment automatically cancelled due to max cancel/missed in recurring series rules, displayed as 'true' or 'false'
Appointment.isMissed Missed status, displayed as 'true' or 'false'
Appointment.isRecurring Recurring status, displayed as 'true' or 'false'
Appointment.recurFirstDate The first date of a recurring appointment series, formatted as "2021-01-31"
Appointment.recurLastDate The final date of a recurring appointment series, formatted as "2021-01-31"
Appointment.Status The appointment status.
Appointment.Type The appointment type, formatted as "1 on 1" or "Group"
Appointment.Icon|raw An icon indicating the appointment Type.
Appointment.DisplayTime|raw Appointment time, formatted as "200p" (minutes will display noticeably smaller than hours)
Appointment.DisplayDate Appointment date, formatted as "Fri, Jan 31"
Appointment.hasDocument Will be 'true' or 'false' depending on whether or not the appointment has a document uploaded.
Appointment.OnlineText If the appointment is online, this tag will display as "Online", otherwise it will be blank. (for example, "...Your Appointment.OnlineText appointment..." will include or exclude the word "Online")
Appointment.Link This provides a link to the appointment record in TracCloud, accessible by students or staff.
Appointment.CustomData.cf_0 Custom fields, hover over each field in the Email Tag list to find the correct tag


Center
Center.Name The appointment/visit center


Reason
Reason.ReasonName The appointment/visit reason
Reason.Category The reason category


Section
Section.Code The section code
Section.CRN The section CRN number
Section.SubjectTermCode Subject + Section + Term Code, “CHEM321 A2 20202”
Section.SubjectTitle Subject + Title, “CHEM321 Chemistry”


Course
Course.Subject Subject, "CHEM"
Course.Course Course, "321"
Course.Title Title, "Chemistry"
Course.SubjectCourse Subject + Course, "CHEM321"
Course.SubjectCourseTitle Subject + Course + Title, "CHEM231 Chemistry"


Faculty
Faculty.FirstName Faculty's first name
Faculty.LastName Faculty's last name
Faculty.Salutation Faculty member salutation, for example, "Dr."
Faculty.Department Faculty's department
Faculty.Phone Faculty's phone number
Faculty.Email Faculty's email address
Faculty.SalutationFullName Full name with salutation, for example, "Dr. Phil Roberts"
Faculty.SalutationLastName Last name with salutation, for example, "Dr. Roberts"
Faculty.CustomData.cf_0 Custom fields, hover over each field in the Email Tag list to find the correct tag


Consultant ("Consultant." or "Staff." prefixes can be used interchangeably)
Consultant.First_Name Consultant's first name
Consultant.Last_Name Consultant's last name
Consultant.LastFirst Consultant's full name, formatted as "Last, First"
Consultant.FirstLast Consultant's full name, formatted as "First Last"
Consultant.Alias Consultant's alias
Consultant.Email Consultant's email address
Consultant.Phone Consultant's phone number
Consultant.Pronouns Consultant's preferred pronouns
Consultant.Photo|raw Consultant's photo
Consultant.StaffBIO|raw Consultant's bio
Consultant.WorkPhone Consultant's work phone number
Consultant.CellPhone Consultant's cell phone number
Consultant.CustomData.cf_0 Custom fields, hover over each field in the Email Tag list to find the correct tag


Visit (only for visit emails)
Visit.EnteredDT The date and Time the student entered the Center
Visit.TimeIn The date and Time the student started receiving help.
Visit.TimeOut The date and time the student left the center.
Visit.Duration Visit duration in minutes
Visit.WaitTime Visit wait time in minutes
Visit.EnteredTime Start time of visit, including wait time, formatted as “09:45pm”
Visit.EnteredDate Start date of visit, including wait time, formatted as “04/05/21”
Visit.StartTime Start time of visit, formatted as “09:48pm”
Visit.StartDate Start date of visit, formatted as “04/05/21”
Visit.EndTime End time of visit, formatted as “09:48pm”
Visit.EndDate End date of visit, formatted as “04/05/21”
Visit.Day Day of the visit, formatted as "Wednesday"
Visit.CtrNotes The notes for this visit.
Visit.CustomData.cf_0 Custom fields, hover over each field in the Email Tag list to find the correct tag


Documents (only for document emails)
Document.OrigName The file name (including file extension)
Document.Notes Notes entered during document upload
Document.PostedBy The UUID of who uploaded this document
Document.PostedByName The user type, sequence, and name of who uploaded this document
Document.Usage Where this document was uploaded, e.g., Appointment, Student, Availability
DocType.Name The document type selected during upload


Resources (only for resource emails)
Resource.Title The name of the resource
Resource.Barcode The barcode value of the resource
Resource.Description The description of this resource
Resource.Keywords The keywords for this resource, which can be used to check the item in or out
Resource.Status The status of the resource, "-1" is Inactive, "0" is Checked out, "1" is available and not checked out, "2" is always available
Resource.MaxDaysOut The maximum number of days that an item can be checked out
Resource.MaxTimeOut The maximum amount of time that an item can be checked out
Checkout.Date The resource checkout date
Checkout.Collateral The collateral collected from the student during checkout
Checkout.Overdue Whether or not this item is overdue, formatted as "0" (not overdue) or "1" (overdue)
Checkout.DueDT The date and time that the item is due to be returned, formatted as "2020-01-31 13:00:00"
ResourceType.Name The name of the resource type that the resource is assigned to
ResourceType.Description The description of the resource type that the resource is assigned to


CustomFields (Replace "123" with your Custom Field sequence number)
CustomFields.cf_123.DataName The internal field name of the specified custom field
CustomFields.cf_123.Prompt The external/prompt text of the specified custom field
CustomFields.cf_123.Choices [Array] The available choices for the specified custom field (separate from selected choices)


Referral Type (SAGE)
ReferralType.Name The name of the referral that has been submitted
ReferralType.RosterSubject [Array] The roster subject, e.g., “Chem”
ReferralType.NotesInstructions These are the instructions written out in within the referral settings
ReferralType.Reasons [Array] Lists all referral Reasons, regardless of what was selected.
ReferralType.Recommend [Array] Lists all referral Recommendations, regardless of what was selected.
ReferralType.AdditionalNotesInstr These are the additional notes written out within the referral settings


Referral (SAGE)
Referral.CreatedBy The name of the faculty member that submitted this referral
Referral.CreatedDT When this referral was created
Referral.NotesInstrData Notes entered while submitting this referral
Referral.AdditionalNotes Additional notes entered while submitting this referral
Referral.ReasonsData [Array] Selected reasons, “Reasons” is preferred (see “For” examples above).
ReasonsAndLabels [Array] Same as above, but this will also include your Reason labels in the email body.
Referral.RecommendData [Array] Selected recommendations, “Recommendations” is preferred (see “For” examples above).
RecommendationsAndLabels [Array] Same as above, but this will also include your Recommendation labels in the email body.
Referral.FollowUpDate The date this referral should be followed up on
Referral.FollowUpBy The name of the staff who followed up on this referral
Referral.FollowedUp If a follow-up has been saved, display “1”, otherwise blank
Referral.FollowedUpDT The date this referral was followed up on
Referral.FollowedUpBy Who this referral was followed up by
Referral.Processed If this referral has been processed, display “1”, otherwise blank
Referral.ProcessedDT The date/time this referral was marked as processed/completed
Referral.ProcessedBy The written date/time this referral should be marked as processed
Referral.ProcessedNotes Notes entered when marking the referral as processed
Referral.StudentContacted The date that the student was contacted
Referral.CustomData.AssignedConsultantID The sequence number of the assigned consultant.


Other (SAGE)
Trigger The trigger for this email, “Created”, “Followed Up”, or “Processed”
Email.Subject The contents of the email subject line
Questions.CODE Questions.[Your custom question code], as covered above
Answers.CODE Answers.[Your custom question code], as covered above
{{ setResultActions('AssignConsultant', '123') }} If this line is reached within a SAGE email, the assigned staff member will be changed to the specified sequence
{{ setResultActions('SendEmail', '0') }} If this line is reached within a SAGE email, the email will not be sent


Other
CalcMissedAppointments(Student.Sequence, Center.ProfileID) The student’s total number of missed appointments since the date specified in your profile Scheduling Prefs. Uses System Pref date if Profile date is blank.
CalcMissedDate(Center.ProfileID) Your profile “Calc Missed Appointments Since” date. If this field is blank, this will use your global Calc Missed date instead.