Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Schedule meetings #82

Open
Jacq opened this issue Mar 22, 2020 · 20 comments
Open

Schedule meetings #82

Jacq opened this issue Mar 22, 2020 · 20 comments
Labels
Difficulty/2:Medium Medium ticket Hacktoberfest Help Wanted Community help wanted Tech/Go Tech/ReactJS Type/Enhancement New feature or improvement of existing feature Up For Grabs Ready for help from the community. Removed when someone volunteers

Comments

@Jacq
Copy link

Jacq commented Mar 22, 2020

Is it possible or in the roadmap to schedule meetings using the registered zoom account?
Cheers

@hanzei hanzei added the Triage label Mar 22, 2020
@hanzei
Copy link
Collaborator

hanzei commented Mar 22, 2020

@aaronrothschild ☝️

@levb levb added Needs Spec Needs further specification to be a good (help wanted) ticket and removed Triage labels Mar 24, 2020
@levb
Copy link
Contributor

levb commented Mar 24, 2020

Excellent feature proposal, we need to spec out the UX and the turn it into a Help Wanted

@aaronrothschild
Copy link
Contributor

@Jacq The ability to create a scheduled meeting is not in the roadmap for the zoom plugin yet. We have a project (Slash Command Auto complete) that will be adding a date picker component which is needed for us to schedule meetings. Once we have that functionality, we can consider allowing users to schedule a zoom meeting from MM.

@hanzei hanzei added the Type/Enhancement New feature or improvement of existing feature label Apr 22, 2020
@larkox
Copy link
Contributor

larkox commented May 14, 2020

@aaronrothschild
Maybe not the best usecase, but maybe a flow could work here. Something like:
User: /zoom schedule
Bot: Select Topic
User: My new meeting
Bot: Select Date (dd/mm/aaaa)
User: May 3rd
Bot: Cannot recognize format. Please write in dd/mm/aaaa format.
User: 03/05/2020
Bot: Select time (02:30PM)
User: 08:30AM
Bot: We have scheduled the meeting "My new meeting" for 03/05/2020 at 08:30AM. Here is the link. Would you like to post the meeting on channel X? (Yes/No)

@Jacq
Copy link
Author

Jacq commented May 14, 2020

A good starting point could be the reminder plugin that follows a similar workflow but also includes a dialog and the possibility to cancel previous reminds:
https://github.com/scottleedavis/mattermost-plugin-remind

@larkox
Copy link
Contributor

larkox commented Aug 11, 2020

As a first approach we would like to:

  • Add a slash command (/zoom schedule) that will open an interactive dialog
  • In the interactive dialog you can set the Topic and Time.
  • In the interactive dialog add a checkbox to "post the meeting in the channel"
  • After the meeting is created, if the checkbox is set, post the meeting information (topic, time and link) in the channel.

Bonus: Add a reminder when the meeting is about to start.

@larkox larkox added Difficulty/2:Medium Medium ticket Tech/Go Tech/ReactJS Up For Grabs Ready for help from the community. Removed when someone volunteers Help Wanted Community help wanted and removed Needs Spec Needs further specification to be a good (help wanted) ticket labels Aug 11, 2020
@raghavaggarwal2308
Copy link
Contributor

raghavaggarwal2308 commented Dec 11, 2023

@larkox @mickmister I am working on this issue currently. I have a few clarifications to ask:

  1. Do we need to add the support for using PMI while scheduling the meeting? I don't see an option to do that while scheduling a meeting from Zoom.
  2. Do we need to add a reminder for the meeting?

If we do the above two things, I think we should do them as separate issues as this will make the PR very big and hard to review. Please let me know your opinions on this.

  1. Which fields should we include in the modal for scheduling the meeting? Currently, I have added the topic, time, and date fields.

These are some screenshots of what we have till now:
image

image

image

@larkox
Copy link
Contributor

larkox commented Dec 12, 2023

@raghavaggarwal2308
I think that you cannot schedule a meeting with your PMI in Zoom, but I am not sure neither. Would be nice to double check with the Zoom API (or even their user interface). We should give the same options. That being said, it is something we can iterate around.

The reminder is a nice to have. It can be considered for a future iteration.

The fields LGTM. Again, it would be nice to verify with the Zoom user interface, to make sure we are not missing anything obvious.

Another bonus point (can be done in future iterations) is that the scheduled meeting message doesn't show the "Join meeting" button until it is near the meeting (10 minutes before the meeting?) and it shows some kind of countdown to the meeting (e.g. "This meeting will start in 2 days", "This meeting will start in 30 minutes", etc...). This is something we would have to flesh out better, but again, can be handled in a future different PR.

@mickmister
Copy link
Contributor

mickmister commented Dec 12, 2023

@matthewbirtch @asaadmahmood Is this something we want to support in the Zoom plugin? Curious what flow/outcome on how we expect this feature to work if so.

@raghavaggarwal2308 I'm thinking if we have to implement the scheduling logic ourselves then we shouldn't implement this for the Zoom plugin. The plugin is essentially meant to be a "portal" into Zoom, and not manage the lifecycle of future Zoom meetings. That puts Mattermost in the position of "missed" meetings if there is an issue with scheduling the meeting.

More specifically, if we have to "wait" until the time of the meeting to create the meeting, then we shouldn't implement this. But if Zoom's API supports scheduling in advance, then this sounds fine to me. Definitely want to get the UX down before we implement the feature though.

Do we need to add a reminder for the meeting?

Unless Zoom has a webhook event for this, then 3/5 we shouldn't include that in this feature

@matthewbirtch
Copy link

@mickmister Zoom definitely allows for scheduling meetings, and I think this could be a valuable addition.

This is what fields are available in Zoom when scheduling an event:

image

I think the fields that are most relevant for scheduling a meeting in MM are:

  • Topic
  • Date (default today)
  • Start Time (default to nearest 30 minute increment)
  • End Time (default to nearest
  • Meeting ID (choose 'Generate Automatically' or 'Personal Meeting ID')
  • Post meeting link to channel (default checked)

I think we could leave out the recurring meeting part to start. And attendees are sort of assumed based on the channel it's being scheduled for, so we may not need that to start either.

Do we need to add the support for using PMI while scheduling the meeting? I don't see an option to do that while scheduling a meeting from Zoom.

As per the screenshot above, it looks like you can choose between an automatically generated ID or your PMI when scheduling a meeting in Zoom.

Do we need to add a reminder for the meeting?

A reminder would be great (5 minutes before meeting starts). I suppose that could be a follow-up PR to this, but it definitely seems important - especially if you're scheduling a meeting far in advance. Otherwise, it will be forgotten and no one will remember that the meeting is happening in the channel.

Another bonus point (can be done in future iterations) is that the scheduled meeting message doesn't show the "Join meeting" button until it is near the meeting (10 minutes before the meeting?) and it shows some kind of countdown to the meeting

I think we could start simple here and only show 'join meeting' if it's 5 minutes or less before the meeting starts. Otherwise hide the button.

That's where the reminder could come in as well. The reminder could essentially be the same post repeated in the channel at the 5 minutes mark before the meeting begins and it would have the button now active/visible to join the meeting.

@asaadmahmood
Copy link
Contributor

asaadmahmood commented Dec 13, 2023

I agree with the points mentioned above.

@mickmister
Copy link
Contributor

@matthewbirtch Thanks for the deep analysis 👍

There is a lot of overlap between this form and the Google Calendar form, so we probably want to converge or avoid duplicating efforts, trying to keep the solutions as conformant as possible. cc @fmartingr @raghavaggarwal2308 https://github.com/mattermost/mattermost-plugin-google-calendar/blob/master/webapp/src/components/modals/create_event_form.tsx

I think we could leave out the recurring meeting part to start

I agree with this. Creating the UI for this is the main challenge/effort, since Zoom would handle the scheduling etc. Implementing the flow for all of the recurring meeting options would be a large effort to develop and validate/test.

And attendees are sort of assumed based on the channel it's being scheduled for, so we may not need that to start either.

The main drawback I can think of if there are no attendees selected is that it won't show on everyone's Zoom calendar. Maybe that's not worth implementing just for that reason.

A reminder would be great (5 minutes before meeting starts). I suppose that could be a follow-up PR to this, but it definitely seems important - especially if you're scheduling a meeting far in advance. Otherwise, it will be forgotten and no one will remember that the meeting is happening in the channel.

Adding a "5 minute reminder" will indeed increase the scope of this quite a bit (introducing time management in general to the plugin). A more straightforward version of this would be to use the Zoom "meeting started" event to ping the channel that the meeting has started. When the event is initially created in Mattermost, we can subscribe to that (potentially recurring) meeting id, to create posts whenever the meeting is started in the future. It's not perfect, but it would be a very small change to make this work.

I think we could start simple here and only show 'join meeting' if it's 5 minutes or less before the meeting starts. Otherwise hide the button.

I like this idea. We definitely don't want to convey "join meeting" if the meeting time is far in the future.

It would also be interesting to subscribe an existing meeting id to a channel, so you could get benefits of reminding for an existing recurring meeting.

@raghavaggarwal2308
Copy link
Contributor

raghavaggarwal2308 commented Dec 21, 2023

There is a lot of overlap between this form and the Google Calendar form, so we probably want to converge or avoid duplicating efforts, trying to keep the solutions as conformant as possible. cc @fmartingr @raghavaggarwal2308

@mickmister Currently we are using the Mattermost interactive dialog for creating the form. Should we use a custom component instead?

Just to summarize:

  • We will have a interactive modal with the following fields
  1. (Text field) Topic
  2. (Text field with validation) Date (default today)
  3. (Text field with validation) Start Time (default to nearest 30 minute increment)
  4. (Text field with validation) End Time (default to 30 minutes after start time)
  5. (Radio button) Meeting ID (choose 'Generate Automatically' or 'Personal Meeting ID')
  6. (Checkbox) Post meeting link to channel (default checked) (The join meeting button will not be present in this post)
  • Selecting attendees will not be included currently.
  • The admin will create a webhook for "meeting started" and we will post the meeting link in the channel when we receive the webhook. (This post will have the join meeting button).

Please correct me if I missed something.

@mickmister
Copy link
Contributor

Currently we are using the Mattermost interactive dialog for creating the form. Should we use a custom component instead?

@raghavaggarwal2308 The date picker is one of the main reasons why we chose to use a custom component. I'm not sure if manually entering the date is good enough UX for this feature. I'll ask @matthewbirtch for his opinion on this.

We'll also need to take into account timezones either way

(Checkbox) Post meeting link to channel (default checked) (The join meeting button will not be present in this post)

I think this is referring to the "post that happens at the time of the meeting", which should have the join meeting button as you mentioned

@raghavaggarwal2308
Copy link
Contributor

I think this is referring to the "post that happens at the time of the meeting", which should have the join meeting button as you mentioned

@mickmister According to the previous flow I think this checkbox is to post in the channel just after submitting the dialog.

Something like the screenshot below but without the join meeting button. We need to change the name of the checkbox to something like "Post meeting details in the channel".
image

We can also use it as you suggest (That should we post the meeting link in the channel if the meeting is about to start.)

Please let me know your thoughts on this.

@avas27JTG avas27JTG added this to the next milestone milestone Dec 22, 2023
@mickmister
Copy link
Contributor

@raghavaggarwal2308 Maybe we can have two checkboxes. Something like:

  • Create announcement of meeting in channel right now
  • Create reminder post at beginning of meeting

Also, a workaround for the user having a 5 minute reminder is to schedule the meeting 5 minutes before the time they specify. We would tell them that we're doing this so it's not a surprise, or they could do that manually instead. A little hacky but it allows them to have a reminder ahead of time

@raghavaggarwal2308
Copy link
Contributor

Maybe we can have two checkboxes. Something like:

@mickmister Sounds good to me.

Also, a workaround for the user having a 5 minute reminder is to schedule the meeting 5 minutes before the time they specify. We would tell them that we're doing this so it's not a surprise, or they could do that manually instead. A little hacky but it allows them to have a reminder ahead of time

2/5 I am a little dicey about this. We will be showing the correct time on the MM post but on Zoom it will be showing a time 5 min earlier. Although we already told the user that we are doing so, it still does not sound very user-friendly. I think the user can do it manually if he wants. Please let me know your opinions.

@raghavaggarwal2308
Copy link
Contributor

2/5 I am a little dicey about this. We will be showing the correct time on the MM post but on Zoom it will be showing a time 5 min earlier. Although we already told the user that we are doing so, it still does not sound very user-friendly. I think the user can do it manually if he wants. Please let me know your opinions.

@mickmister Can you please let us know your opinions on this?

@mickmister
Copy link
Contributor

@raghavaggarwal2308 Yeah let's not do the 5 minute before thing

@matthewbirtch
Copy link

@raghavaggarwal2308 The date picker is one of the main reasons why we chose to use a custom component. I'm not sure if manually entering the date is good enough UX for this feature. I'll ask @matthewbirtch for his opinion on this.

Apologies for the late reply on this. Manual text entry for a date definitely would not work well and would be very error-proned for users. A date picker is pretty important/expected here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Difficulty/2:Medium Medium ticket Hacktoberfest Help Wanted Community help wanted Tech/Go Tech/ReactJS Type/Enhancement New feature or improvement of existing feature Up For Grabs Ready for help from the community. Removed when someone volunteers
Projects
None yet
Development

Successfully merging a pull request may close this issue.