Performing Actions in Semi-Unstable Applications

I am working on an automation that need to perform tasks in an application that can be difficult to work with (this is an internal application that frequently undergoes changes for various internal reasons, though the overall structure of the application is usually consistent).

I am trying to create an unattended process in this application, but have some issues with activities like click, type into, etc. not always being able to locate the item it needs to. My question is this: are there any best practices for performing actions until it is successful? For example, if there is a field that I need to type into, how can I code it to continue attempting this using various methods until one is successful?

I hope that makes sense.