How to know when a temporal workflow has failed/completed/been cnacelled?

Hi I would love to get some input regarding built-in solutions or creative ideas on how to know when a workflow has finished (either due to failure, completed or manually cancelled on Temporal UI).

Some context: I need to sync this status with internal business logic and could not find a simple way to do it other than adding activities to the workflow that monitor this.

What is wrong with adding activities at the end of the workflow to update its status in the external storage? You can implement an interceptor to make this functionality generic.