This was the most complex interaction flow I worked on during my time with Leadin. We rebuilt Leadin from the ground up, and as a result needed to to migrate over users' contacts to the newest version. We realized some users may not even want to upgrade their contacts, so we decided to give them the choice not to migrate their contacts. We would also be hosting their information in a different way than before, so we wanted to give them the option to opt out of this particular upgrade if they wanted to. This meant they had a lot of choices at this step that we needed to inform them about, but we also wanted to still urge them to upgrade, because the newest version was much better than the previous version.
Designing this with the team was very complex because we weren't even sure how we would technically be doing everything, so the design and development process were very intertwined. We went through several iterations and had to throw away a lot of work, but ultimately we came out with a solution.