Hi

You have two simple choices:

1) Auto bed leveling, (bilinear or whatever) that just does it's thing with a G29 gcode. It resets when any G28 (X,Y,Z) comes in.
2) Mesh bed leveling, this runs with a sequence of G28 commands (or at least it used to). There is a bit more to the startup script as a result.

The BLTouch has it's own issues, but seems to be "good enough".

Bob