Hi Vick,
I recently completed a 2017R3 to 2020R3 upgrade and it went smoothly.
Make sure the network user doing the upgrade is the same user that is listed as the user for Interaction Centre in Services on the CIC server.
As mentioned, upgrade all Media servers first. They are backward compatible with 2017R3 on the CIC servers.
Next upgrade a CIC server. The upgrade process will apply all database changes as it upgrades, so before you start make sure you have a database backup you could restore to if needed. We changed the database logging to simple mode to reduce the size of transaction logs, but others have commented that this might not be necessary. Ask an SQL specialist.
The 2017R3 client software (Int. Desktop, ICBM and Interaction Administrator) are compatible with the latest software for normal functions, so you can roll out your new client after the CIC server if you want. You can also roll out your new client first, but new features won't work until the CIC server is upgraded. I chose to roll out clients after the upgrade, over a 1 month period.
Polycom phone provisioning was seamless. The phones automatically picked up the latest version of firmware as their registration expired. I tested this by forcing a reload on a few managed IP phones and they rebooted several times and took about 15 mins each to complete the upgrade cycle.
If you are using SIP Softphone, the certificates are stored in a different location (since 2018 I believe). Make sure the agents have read/write access to %ProgramFiles% (x86)\Interactive Intelligence folder and %UserProfile%\Interactive Intelligence\Certificates folder.
I found the process smoother than expected, but take the usual precautions just in case something goes wrong.