DavidCain / mitoc-trips

The MIT Outing Club's trip management system
https://mitoc-trips.mit.edu
GNU General Public License v3.0
43 stars 9 forks source link

Suggestion: Email participants status after lottery runs #84

Open flipdog opened 1 year ago

flipdog commented 1 year ago

Per a Slack conversation - apparently many participants don't think to check the webpage to see their status post-lottery. There was feedback that it happened with several participants this year.

Would it be possible to email everyone who entered the lottery after the lottery has run with their status? Perhaps something along the lines of:

If we wanted to move forward with this, I'd be happy to help drafting some more helpful text, I just haven't had my coffee yet.

The obvious downside I see to this (aside from being a blast of several hundred emails to manage) is that it removes some leader control around communication. As an example case, if the lottery runs and a leader wants to make changes due to someone's fitness/feedback or driving logistics, the system having already emailed saying "you're on the trip" can add some confusion and now the leader needs to notify people of the change. That said, some people are checking immediately after the lottery already, so leaders should be notifying folks when they manually change the trip roster.

ColeDCrawford commented 1 year ago

Personally I think the pre-trip emails are fine: folks should learn to use the Trips site or just wait for the planning email. If they don't understand this then it's a communication failure about the expected function.

If this does get implemented, I'm not a fan of an immediate email after a lottery runs. Trip leaders need some time to manage the communication first if they have to drop someone from the trip. I try to do this proactively (emailing before the lottery runs) but there's a pretty short window for participants to get an email late Tues and remove themselves before Wed 9am, and there's no manual way to remove someone on Trips, so it has to be managed post-lottery in some cases. That makes a delay to avoid confusion ("You've been placed on a trip" - "no actually you aren't prepared for this trip") helpful.

janfari commented 1 year ago

This came up because I spoke with a few separate first time winter schoolers last night at the gear sale. They were all pretty bummed that they hadn't gotten into any trips and they didn't understand why there were open spots on trips but they hadn't gotten a spot. It turns out they'd all been placed on a trip but just hadn't received an email from their leaders yet and finding this info on the website wasn't intuitive for them. Personally both my trip emails didn't go out till early this morning as we had a lot of late sign ups and I think this is pretty common.

Most of the folks I spoke to were expecting an immediate email with lottery results and it seems like none of them knew their trips would be listed on their profile. Folks were told that the lottery runs Wednesday morning so the natural expectation is that they are notified of lottery results also on Wednesday morning. Cole, would having an auto email go out Wednesday afternoon help with your concerns about participant management by giving a few hours for quiet shuffling to happen?

We could also argue that this is entirely a UX and training issue but I think that just saying "folks should learn to use the Trips site or just wait for the planning email" is a bit harsh, especially for first time participants. Especially if we aren't clearly telling folks that 1) leader emails might not go out till Thursday and 2) you can see your trips in your profile after the lottery (as far as I recall that was not shown in the trips site demo Tuesday?).

DavidCain commented 1 year ago

Hey, all. Thanks so much for the consideration and suggestions. Per usual, I have a lot of thoughts. I'll try to break them down into sections, each with a tl;dr.

The tl;dr of this essay is that I trust humans to do a better job than software, and I think the status quo has worked quite well. I'll post again with how I think we can do well with the current system.

First, a history

tl;dr: We used to send emails, we easily can once again if desired.

So, once upon a time (2014-2016), the system did used to send emails to participants any time they were placed on a trip (whether it was due to the WS lottery or getting bumped off the waitlist.

In 2016, I "temporarily" (hah) turned off emails, due to my misguided design choice of Django signals (duplicate emails were being sent): 2f776d7242d5f88626512ecd908ca3331e68de3f I can of course fix the underlying problem now, but I've intentionally left out email notifications ever since. I'll try to explain why!

Spam, the CAN-SPAM Act, SES restrictions

tl;dr: Sending notification emails means I either need to fear spam controls, set up a new service, or enable per-user unsubscription.

In order for the system to function properly, we must be able to send transactional emails. Transactional emails are those like password resets, email verification, etc. They are sent only once, in response to user actions, and cannot be unsubscribed from. The sender's email address looks like mitoc-trips@mit.edu (which is itself a Mailman list that forwards directly to me in case anybody replies to it), but the message actually comes from Amazon's Simple Email Service.

There are rules on your use of SES -- if enough people mark your message as spam, you can lose your ability to send emails at all. Furthermore, if people mark messages as spam, email providers themselves may move your messages to spam for other people. For example, Gmail has that feature that says "lots of other people marked messages like these as spam" (I'm paraphrasing, but you get the gist).

Lots of people may not want "you were placed on a trip" emails, and if there's no unsubscribe button, many people just click "mark spam" on undesired messages and move on. I could implement an unsubscribe system for trip notification emails, but that's extra complexity, and now leaders need to deal with the headache of realizing that some of their participants may not be getting automated emails.

CAN-SPAM is a whole other can of worms, but basically there are requirements for non-essential non-transactional emails. I avoid this by either letting Mailman handle mailing list notifications (e.g. the weekly trip digest) and by keeping all other emails transactional.

Competing sources of truth

tl:dr: Emails saying "you're on the trip" may be sent to people, only for them to be later removed from the trip.

The hard part about an email is that it is stateless. Once it's sent, you can't edit the content or revoke the message. Accordingly, any time we choose to send the "you're on the trip!" email, it may become out of date.

By contrast, the roster on a trip's page is the definitive source for who's going on the trip. A participant can log in at any time and inspect what trips or waitlists they are on.

Waiting until Wednesday afternoon is a reasonable defense against most of the trip edits, but historically lots of trip changes have happened as late as Thursday and even Friday.

Trip shuffling happens for many reasons

tl;dr: The participant roster changes more often than you'd think.

You all know this, but it's worth enumerating some of the most common reasons for changing a trip's participants:

Much of this shuffling happens after Wednesday afternoon, when we could theoretically send an email. I'm getting ahead of myself, but I think humans are best-suited to deal with these inevitable edge cases.

Sending emails immediately after the lottery is ill-advised

Sounds like we're all in agreement here, but this has been very embarrassing in the past when the lottery failed and I had to re-run it. The lottery is much more robust now, but I'd still advise against it. The usual concerns of leaders making changes also apply here.

Leaders often make multiple consecutive edits to a trip

tl;dr: It's really hard to know when a trip's roster is stabilized.

I'm a terrible UI designer. While the Admin tab I built allows leaders to make a single edit to the trip roster, change the trip size & alter every participant's ordering/waitlist status/"on trip" status, many leaders can't figure out the tooling and instead make many edits to the trip. It's really hard to know which one is "final" and choosing when to send emails automatically gets tricky.

DavidCain commented 1 year ago

So, I basically think that we're best served by:

How to make the status quo work

I think we should:

I dropped the ball

Either I (or the WS chairs) will typically send reminder emails each week. I goofed and didn't send anything this week, because I didn't create the WS mailing list until very, very late Tuesday night (Wednesday morning at like 5 ET, IIRC).

Can we make the UI better?

@janfari , you said that "finding [trip] info on the website wasn't intuitive" for some participants. Do you have suggestions on how to make things more clear? When people log in or otherwise navigate to https://mitoc-trips.mit.edu, the very first thing beneath their name and profile photo is an enumeration of upcoming trips (and trips they are waitlisted on). I hope that this is simultaneously clear, accessible, and an appropriate prioritization of information. But as mentioned before, I'm a terrible designer, so if you have suggestions on how to make trip status more clear, I'm all ears! For example, we presently don't say anything about "you can expect an email from your leaders."

DavidCain commented 1 year ago

I know WS is nearly over, but do any folks involved here have further thoughts?

flipdog commented 1 year ago

Having spent the past month sending so many emails and adjusting a lot of trips on the fly, I am inclined to agree with David that the site should not send email updates in most cases.

One of the things that I think distinguishes the trips site is that it requires you to come interact with it, rather than pushing information and reminders out constantly. People are used to the convenience of constant reminders and auto-renewals these days, and so going to check may not be a norm they're used to. I also found this was true in a lot of other areas - nobody ever manages their waitlist situation, so pulling people off the waitlist is a nightmarish game of asking people 1 by 1 if they're still interested.

That said, I do think there's one email that could potentially be automated - the weekly reminder that David described above. I think it's absolutely critical given the scope of Winter School to remind anyone signing up for trips how the lottery works, how to communicate with leaders, and to remove themselves from the waitlist if plans change. I'm wondering if this could be automated, either to send once weekly to that year's WS participants list, or to send automatically to anyone that signs up for the lottery that week - the latter would probably decrease the number of people being emailed, but the former allows you to just use a mailing list for simplicity.

janfari commented 1 year ago

Agreeing with James! After going through a month of the trip planning process I do think that sending an automated "You got on this trip" emails would create more chaos (and email spam) than it solves. I do like the suggestion of an automated reminder for WS participants on how to sign up for lotteries, check their results, waitlists, and update preferences. (Perhaps not every week, but at least the first weekend or two)

Regarding UX,

Do you have suggestions on how to make things more clear? When people log in or otherwise navigate to https://mitoc-trips.mit.edu/, the very first thing beneath their name and profile photo is an enumeration of upcoming trips (and trips they are waitlisted on).

I think the way most new mitocers actually navigate to the trips site is through the main mit website which has a link to https://mitoc-trips.mit.edu/trips/ so most of these folks completely bypass https://mitoc-trips.mit.edu/ . If you're brand new and have only used the profile to set lottery preference and the like, It's not obvious that this is where you should go to look for the trips you've signed up for (especially since the "Upcoming" section doesn't appear until you're actually on a trip). I'm sorry, I'm also not a designer so I don't have a great suggestion for how to fix this. Some options I can think of would be to have a banner apear at the top of the trips list to [see your upcoming trips/waitlists] if you're signed up for anything (just linking to the profile)? Or a link in the top bar [My Trips] doing the same? Or highlighting somehow the trips in the trip list that you're waitlisted for/signed up for/ didn't get in to? I also don't actually know what someone sees if they didn't lottery in to any trips, does their profile page just show blank?

(Or this all might be better and more easily solved just by an email sent out to participants at the beginning of WS on how to see your trips after the lottery runs)