All is done automatically except:
- quantities which are adjusted manually for the most part, because the positions are spread between wallets and exchanges
- prices of recently acquired ICO tokens because they are not traded on exchanges yet
I use coincap.io api to get the prices - it is the only one working correctly with calls made from google servers (the other apis I tested limit the number of calls per ip address, therefore they reject most of the calls from google servers).
The fetching and data treatment are done with Google Apps Script with triggers running periodically to update the prices.