-
Notifications
You must be signed in to change notification settings - Fork 3k
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
Make scheduling with assigned setup specialist experience native #56910
Comments
Triggered auto assignment to @shawnborton ( |
Once we have some mockups, I can open this up to Contributors. |
cc @Expensify/design for viz. I will get started on this one tomorrow, and my first thought is to do something very similar to what we already have via Calendly. |
Here is what I have so far... a "wide modal" when you first go to book: With a simple confirmation step afterwards: For mobile, not sure if we want to drastically change the layout here (like break the first step into two steps) or just do something stacked like this? @anmurali before I keep exploring, what happens after you confirm a meeting? Do you get a message in the room where you booked? An email? Something else? cc @Expensify/design for feedback. Figma is here! |
I don't think we need a confirmation screen for this, the first step should be good enough where user selects a date and time and then hit confirm. |
That's fair, we could in theory make the times just look like a list with checkboxes, and then a big green confirm button on the bottom of the page. That might feel like a lot to squeeze on one screen though. |
But it will save extra step in the process. We already have two steps where first user clicks schedule a demo button and then this modal where they select data and time. Because, selected date and time can be shown as primary(green), it should be sufficient to for user confirmation. Anyways, they will have to hit a submit button or something at the end of this modal. Yeah, if we want to move to confirmation on the selection on date and time automatically then no submit button but that is a new pattern IMO, having a confirm button is easy and familiar pattern. |
Yeah, I personally don't think having the confirm page is a bad thing though, and it's pretty consistent with most flows in the app. Let's see what others think though. |
Looking good! I don't mind the confirmation page at all. It doesn't feel like an extra step to me, just an opportunity to double-check everything. One thing though is that you wouldn't really be able to edit the Date, Time, and Timezone independently in separate push rows would you? I almost think on the confirmation page those should be read only push rows and then have one edit or change button somewhere there that basically just takes you back to the previous screen. (Or maybe the top left caret is enough?) As far as mobile goes, I'd probably just do what you're doing and stack the times below the calendar and let the screen scroll. 👍 For the Timezone push row in your first mock, are you imagining it opening "above" the modal? |
Nope, I was being tricky and just assumed that either of those push rows would navigate you back to the previous page. And now that I think of it, it seems pointless to have a timezone push row on the confirmation page. Maybe a more simple approach might be to only change out the content of the modal after you press the time button, something like this? CleanShot.2025-02-18.at.21.19.47.mp4Though I could see where that doesn't quite follow other patterns we use across the app. So maybe we do want the modal to seem like it's sliding the content in/out like the onboarding modals do? |
I like the prototype you're showing at the end. Couple of questions:
|
Ah that's actually a super great point, I forgot we had an existing calendar I could use 🤦 I say let's not plan on making any calendar changes here that are one-off, so let's use what we currently have.
My thinking was that it was important to be able to pick a date and see times at the same time. At least that feels much more efficient to me than needing to split that across two steps. I don't feel too strongly though and I'm happy to do something stepped in the RHP for the sake of consistency. But I do feel like it maybe doesn't provide the smoothest booking experience? |
Personally I think we should just roll your calendar updates into this issue and send it. Though if we super duper need to keep the year separate from the month, here are a couple riffs: Regarding the modal vs. RHP, I can't believe I'm saying this since I'm a System Stickler™, but I agree with Shawn's points here:
I much prefer the modal, and his prototype video above feels really nice to me. Having said that, if we're super set on keeping it in the RHP we could maybe do something like this where we keep it one screen and just let it scroll if it gets too big? Riffage below... Use select-y elements instead of buttons for time selection: Replace the footer button with time slot buttons Just a few ideas! I still think Shawn's modal idea is my preferred solution. Figma for the tweakerz. |
I think I would punt any calendar changes into a different issue entirely, just so we aren't adding too much scope here. Actually I think I quite like the simple RHP solution you are showing? Maybe with less intro text it's not as bad: |
FINE 😂
Yeah this isn't bad at all! I like your tweaks as well. Wonder what The Judge™ will think. |
It is pretty disjointed today. They don't get any messages as confirmation from us - chat or email. They do get a confirmation email and reminders from Calendly directly. I actually didn't think of this at all, so thank you for reminding me. When we use the APIs, I think we should control these messages. We should post the confirmation and any reminders to #admins. I love the mockups #56910 (comment) |
I like this. Who do you think this message would come from? Would it be from Concierge, sent to everyone in the room? What kind of information does the message have? As in, what do we use for the meeting link, etc? I agree though, I am feeling pretty good about the most recent round of mocks - they seem to fit our current patterns the most and will scale very well to mobile. |
The calendly confirmation page looks like this ![]()
|
|
something like that? |
I actually really like this RHP solution you've all got here. This feels right to me. Again, I don't mind the modal but I also kinda feel like a simple RHP allows us to get this out quicker than having to worry about modals and breakpoints. Would also be good to start noodling on some rules of when it's appropriate vs not. I don't think we should be against them and I'll leave it to y'all if you think it's better here. My vote is still probably for the RHP given the entry point also is from a chat |
Yep, I think the RHP is our pick. @parasharrajat do you want to implement the FE here? |
Yes @anmurali |
Looking good! Just to confirm: we want to leave the |
Oh that's a good shout... I don't know how I feel there, I could see leaving it in case you wanted to schedule another one? Another thing that came to mind... @anmurali Calendly makes it easy to cancel or reschedule bookings. What are you thinking for that functionality? |
We currently link out to Calendly for all schedule demo or schedule a call links/ buttons. There are a few opportunities here:
a. A lead of size
1-10
- we might ask them to connect their accounting ledger before scheduling a callb. A lead of size
11-50
, which is a wide range, we could ask incremental qualifying questions to determine if we also want to require some pre-work in the account before allowing them to scheduleLet's make a beautiful in-app scheduling flow, which utilizes the Calendly APIs. Then once we're done with that, we can follow on by making all calendly links private, and then add logic like the ones listed in #2 and #3 as follow ons.
On clicking
Schedule demo
, we would open an in-app modal that allows the user to pick a date and then the time. As an example, this is what the Calendly one looks like, on click:Then any
schedule
links in any email or Concierge or Guides messages would all direct the user to this in-app modalThe text was updated successfully, but these errors were encountered: