Remind is now part of the ParentSquare family! See the announcement for details
Remind is now part of the ParentSquare family! Learn more
Blog
July 15, 2015
 • By 
Nathan Yergler

Introducing group conversations on Remind

How-to and Tips

I taught computer science to high school students for three years, and it was an incredibly challenging and rewarding experience. One of the classes I taught was an advanced programming elective. This class provided students with the opportunity to build their programming skills through project-based learning. I'd often get emails from students with questions about their projects, and any answer I sent them outside of class would need to be repeated in class, taking up valuable time. I needed a way to respond to student questions that kept everyone in sync.

Today, we're excited to launch the next iteration of two-way messaging—the ability to communicate with multiple students and parents in real-time. With the new version of Remind, teachers are able to include up to 9 students, parents, or other teachers in a conversation. Students and parents can participate in the conversation through the app or over SMS or email. Once you've started the group conversation, you can keep participants in the thread engaged and informed in real-time.

groupchat

Group conversations have been the #1 requested feature since we launched two-way messaging, and it unlocks lots of new uses. Teachers can now communicate easily with parent volunteers, groups of students, or a student and her parents.

Now that teachers can message other teachers in their school, departments and subject teams can keep in sync with each other over Remind as well. Teachers working with project groups can keep everyone on the same page, respond to questions, and see how students are sharing and working together.

When we decided to upgrade two-way messaging, safety remained a top priority. Group conversations provide the same office hours controls we debuted with all two-way messages, so teachers can let others know when they're available.

Conversations on Remind would have been a great tool for my classroom; I think they would have saved time and given students a single place to look for updates from me. I hope you find these changes as exciting as I do. These changes build on all the great feedback we received when we launched two-way messaging. That feedback helped us improve this feature to meet the needs of teachers everywhere.

tag * ppcUrlCookiePart1 and ppcUrlCookiePart2 must be called, see bottom of script * update ppcUrlCookiePart2 and ppcUrlCookiePart2 to match your querystring and form field names * */ //Leave this as true to always use querystring values if they exist, if no querystring will attempt to get cookie values var ppcUseLatestValues = true; //set this to false to use cookie values if they exist (if false, will not check querystring first). //function to grab params from cookie function getCookie(param_name) { var i, x, y, cookie = document.cookie.split(";"); for (i = 0; i < cookie.length; i++) { x = cookie[i].substr(0, cookie[i].indexOf("=")); y = cookie[i].substr(cookie[i].indexOf("=") + 1); x = x.replace(/^\s+|\s+$/g, ""); if (x == param_name) { return unescape(y); } } } //function to create cookie function setCookie(param_name, value, exdays) { var exdate = new Date(); exdate.setDate(exdate.getDate() + exdays); //CHANGE DOMAIN BELOW TO MATCH SITE var c_value = escape(value) + ((exdays == null) ? "" : "; domain=remind.com; path=/; expires=" + exdate.toUTCString()); document.cookie = param_name + "=" + c_value; } //function to check if cookie exists and, if so, run the setCookie function function checkCookie(param_name, param_url_name) { var param_value = getCookie(param_name); if ((param_value != null && param_value != "" && param_value != "undefined") && ppcUseLatestValues == false) { //this means the param name/value pair exists - and we don't want to use latest } else { //this means the param name/value pair does not exist - so create it //grab values from URL var pageURL = window.location.search.substring(1); var URLVariables = pageURL.split('&'); for (var i = 0; i < URLVariables.length; i++) { var parameterName = URLVariables[i].split('='); if (parameterName[0] == param_url_name) { //filter out "#" in case that is in the last URL param param_value = parameterName[1].split("#")[0]; } } if (param_value != "undefined" && param_value != "" && param_value != null) { //create cookie setCookie(param_name, param_value, 365); } } } //function to setup the parameters and save the cookie values function ppcUrlCookiePart1() { //setup list/array of parameters desired. names on right should match querystring names var param_names = new Array( 'ppcSource;utm_source', 'ppcMedium;utm_medium', 'ppcCampaign;utm_campaign', 'ppcAdGroup;utm_adgroup', 'ppcKeyword;utm_term', 'ppcContent;utm_content' ); //loop through all params and create cookie for (i = 0; i < param_names.length; i++) { var param_object = param_names[i].split(";");//split out the cookie name and url name var param_name = param_object[0]; var param_url_name = param_object[1]; //start the cookie creation checkCookie(param_name, param_url_name); } } //function to grab cookie params function mGetCookie(param_name) { var i, x, y, cookie = document.cookie.split(";"); for (i = 0; i < cookie.length; i++) { x = cookie[i].substr(0, cookie[i].indexOf("=")); y = cookie[i].substr(cookie[i].indexOf("=") + 1); x = x.replace(/^\s+|\s+$/g, ""); if (x == param_name) { return unescape(y); } } } //function to check if cookie exists and, if so, fill out the corresponding form fields function mCheckCookie(param_name, param_field_name) { var param_value = mGetCookie(param_name); if (param_value != null && param_value != "" && param_value != "undefined") { try { var obj1 = document.getElementsByName(param_field_name); obj1[0].value = param_value; return true; } catch (err) { return false; } } return false; } //function to setup parameters and begin cookie value insertion into marketo form function ppcUrlCookiePart2() { //setup list/array of parameters desired. names on right should match hidden form field names var param_names = new Array( 'ppcSource;utm_source__c', 'ppcMedium;utm_medium__c', 'ppcCampaign;utm_campaign__c', 'ppcAdGroup;utm_adgroup__c', 'ppcKeyword;utm_term__c', 'ppcContent;utm_content__c' ); //loop through all params and create cookie for (i = 0; i < param_names.length; i++) { var param_object = param_names[i].split(";");//split out the cookie name and url name var param_name = param_object[0]; var param_field_name = param_object[1]; //start the cookie creation mCheckCookie(param_name, param_field_name); } } //ppcUrlCookiePart1 will grab values from the querystring and save them in cookies ppcUrlCookiePart1(); //ppcUrlCookiePart2 will retrive values from the cookies and populate the hidden form fields - should be in the onload try { //attempt for Marketo form MktoForms2.whenReady(function (form){ ppcUrlCookiePart2(); }); } catch (err) { //if error on Marketo form, try loading for regular form. ppcUrlCookiePart2(); }