I have been working with
https://shifton.com/shift-scheduling for quite some time now too and I can say that it is a powerful tool, but to use it effectively you really need to set up the right combination of automatic and manual scheduling. In the beginning, we faced the same problems as you. When the system simply generates a schedule based on automatic algorithms, it works well for standard situations, but in real life there are always many factors that it cannot take into account. For example, employee illnesses, their preferences, unforeseen situations such as personal circumstances, and even such things as employees' performance on certain days of the week. I would advise starting with setting up the automatic scheduling parameters as accurately as possible. In the schedule generator for employees, there are options to set rules such as the maximum number of night shifts in a row, minimum rest time, certain work time restrictions for people with special needs, and so on. However, it is important to remember that the system still cannot take into account all possible variables, especially if you do not have static work schedules or the team is highly dependent on personal preferences. For example, if someone needs to work only in the morning, and someone else only in the evening, automatic planning will not always take such factors into account. In this case, manual adjustments come to the rescue. We use a hybrid approach: the system automatically generates a schedule, and then we check and adjust it manually. This gives us a good balance between efficiency and individual employee preferences. I also noticed that Shifton allows you to quickly change shifts and move employees in case of force majeure. For example, if someone is unable to come to work due to illness, this can be easily taken into account by simply changing the schedule without much effort. Ideally, of course, it is necessary for employees to inform about their possible changes in the schedule in advance, but in a real situation it will always be more difficult.