Creating automatic schedules for delivery drivers

Hi, I want to create a tab where delivery drivers will see their week’s schedule automatically laid out for them. Let’s assume I already have a database of delivery locations based on location, frequency, urgency, etc. I basically need a way to auto create weekly driver schedules and also allow them the ability to edit those schedules with: drag and drop deliveries between days, refuse service (w/ notes), reschedule service for next day or another time.

Question #1: Is there a way to auto create/assign deliveries for a full week based on multiple conditions like due date for next delivery, condition #2 is distance, urgency, etc? I guess I would need a database that’s sorted by multiple conditions

Question #2: How can I automatically slot those into a week schedule that will also allow me to set parameters like working hours, ability to block out times for lunch, ability for user to drag and drop from one day to another? And ability to refuse a delivery.

Question #3: If delivery is refused for an account, I need that to be sorted right back into the main database so it appears hopefully the next day. Or perhaps the driver should be able to reschedule and override the auto-sorted database. Is that even possible?

This seems super complex to me and I’m not sure if Glide can accommodate these needs…I would love to be told otherwise though.

Thanks in advance.

This is definitely not straightforward to do. I assume you have the delivery locations already ready for the next week, say, on Sunday of the current week, and you want the ability to assign drivers to a “route” of delivery that makes sense for each day?

I graduated from Logistics & Supply Chain, this was somewhat a thesis topic of many of my friends, so I don’t think it’s easy :sweat_smile: We call this the Vehicle Routing Problem.

2 Likes

Yes pretty much and I appreciate your response. Here’s what I did…

I got rid of the Deliveries table and instead added attributes to the Accounts tables for last pickup date and gave them a Priority score based on how many days until their next pickup because they occur in regular intervals.

I created a list and Kanban that sorts by # of days since last pickup for all companies that are assigned to that particular driver.

Then the driver can look at that list, click “Accept” and it will show up on his Work Orders tab, which shows everything he accepted for that week. And once a pickup is completed, that Account goes back to the queue until it’s time for the next pickup.

But since I got rid of the Deliveries concept, I was unable to track metrics for each trip like miles traveled, etc. So I just created a separate table called Trip Data.

It’s not perfect, but it’s close to what I want. Any feedback is appreciated.

I’ve built something similar for Shift Schedules with Glide, but without the drag and drop functionality.

It’s quite complicated and took me a few weeks to figure out.

There are 3 tables that make this work: Shift Templates, 30-day rolling and Schedule

Basically how it works:

  • User creates a Shift Template and specifies days of the week, start and end times, and who will be required for the shift;
  • This is then superimposed onto the 30-day rolling table that automatically populates those shifts and times into the future. This is a dynamic table so it keeps updating;
  • The schedule table is what’s actually booked
  • The 30-day rolling table pulls the data from the Schedule table to see what’s been booked and what not and then from there you can color-code status, show what’s not booked yet etc.
  • The actual booking then uses this dynamic table to filter what’s available to be booked for a specific person, shift, position etc.

There’s a lot of queries, relations, arrays, transposing of data etc. in order to make this work so it is very advanced.

Something similar might work for your use-case. But it won’t be easy to set up.

Hope that helps.

1 Like

Thank you for the insight! I’m not quite as advanced yet so I’m not even sure where I would begin. I’m going to see if my current setup works for now and then hopefully advance to what you mentioned. I just find relations and arrays all the functions so confusing…I’m not exactly sure when to use it and when not to. And I find the glide trainings are very basic and minimal.

You will have to learn all the column types (especially relations) if you want to build complex apps. The biggest limitations on Glide is the frontend. The alternative is to get someone to build it for you and train you on how it works.

2 Likes