For me it breaks down into very high risk versus not.
For very high risk, like a patient at the border of needing involuntary hospitalization who is refusing IOP/ PHP etc where that visit was basically part of a safety strategy, I will call them and let them know that if I don't hear back within some time frame I will call a welfare check. I would estimate that I end up doing this once a year or so, and I almost never actually have to proceed to call a welfare check (one time that I can think of, and it turned out to be a good thing I did).
For all the others I just send a message noting that they did not make it to our planned appointment and offering to reschedule. I then leave it at that. Like calvnandhobbs mentioned I then go through my patient list a few times a year and send a letter to anyone I have not seen in a while letting them know that if I do not hear from them in the next 30 days about scheduling a follow-up appointment I will close their chart with the clinic.
I think this approach takes very little time and shows that you did make outreach attempts and clearly offered follow-up. I think there is very little liability risk in general, but the message at the time of the missed appointment and the letter terminating care provide a little bit of extra risk mitigation. It is otherwise pretty unclear how long they remain "your patient." That ambiguity creates some liability, and also some awkward situations when they reappear 18 months later and expect to be seen.