CRMs are as good as the information you give it. Portal allows users to edit personal/contact/giving information, but would be incredibly beneficial to be able to include "Anniversary", "Birthdate", etc. to the Portal as well.
Capturing this information internally and syncing with their profile will allow automated birthday emails, etc. to be sent.