nmlorg / metabot

Modularized, multi-account bot.
https://metabot.readthedocs.io/
5 stars 0 forks source link

Event notes #110

Open nmlorg opened 3 months ago

nmlorg commented 3 months ago

I see people ask "who's going to X" pretty often. Sometimes it's just meant as a conversation starter, but sometimes people do want to know (to see if an event will be popular enough to be worth the effort, to see if someone they want to see/don't want to see will be there, etc.).

I've asked in a couple groups if there might be a way for the bot to help automate the non-conversation-starter process, and a few people have claimed they'd find it useful, but nobody has come up with a practical workflow yet. (Most people seem to think tacking "reacts" onto a message is sufficient, but that would require there to only ever be one message designated to collect RSVPs ā€” the bot can't attach reacts from other people to its messages, so when it does a daily announcement, or if a user types /events, reacts from previous messages won't be present.)


I separately wanted to make it so people can have the bot send them reminders (in a private chat) about upcoming events. I've asked a couple times, and some people have shown lukewarm interest, but nobody has sat down and worked out a UX with me.


Just today, someone in a group chat spontaneously announced that it was their birthday, and suggested they wanted to incorporate that into an event that happened to be scheduled today.


I think I'd like to combine all of the above into an /events revamp.

Right now, when a user sends /events in a private chat (or clicks on a details link from a daily announcement), they're given the event's preamble, its full description, and three buttons:

[  Prev   ][Settings ][  Next   ]

which allow them to navigate backwards/forwards in time, and quickly get to where they can adjust their time zone, etc.

I'm thinking this can be expanded to something like:

[I'm going][Add note ][Remind me]
[  Prev   ][Settings ][  Next   ]

where [I'm going] and [Remind me] will both have the bot send the user a reminder for the event (see below), [I'm going] will also add the user to a list of attendees (see below), and [Add note] will allow the user to type a free-form note (like "It's my birthday!") or possibly add further structured responses (like having a dedicated [I'm not going]).

If Alpha clicks [I'm going], Bravo clicks [Remind me], Charlie clicks [I'm going] and [Add note] and types "It's my birthday!", Delta clicks [Add note] and just types "I'll be hiking", then when Echo views the event in a private chat they might see something like:

Pool Party! šŸ”œ Ā²āµā€†įµā±āæ Sat 31Ė¢įµ—, 3ā€“5įµ–įµ @ Cool Pool

Join us on 8/31 3-5 PM at Cool Pool

Please remember to bring a towel. Lockers are available for a quarter.

Attending: ā€¢ Alpha ā€¢ Charlie ā€” It's my birthday! Notes: ā€¢ Delta ā€” I'll be hiking [I'm going][Add note ][Remind me] [ Prev ][Settings ][ Next ]

  Separately, in [Settings], there'll be a new section to let people choose when reminders will be sent ā€” though I'm still not sure if that should be as simple as choosing a time of day (with just a m.m.reminders-style summary message) or if it should be something like "X days before", "X hours before", etc.

  In the m.m.reminders announcement (and /events?), it might be good to include just a summary of the "I'm going"s and notes, maybe something like:

Pool Party! šŸ‘„ 2 šŸ“ 2 šŸ”œ Ā²āµā€†įµā±āæ Sat 31Ė¢įµ—, 3ā€“5įµ–įµ @ Cool Pool