I've recently seen a video of this being done successfully with almost no hardware modifications to the printer.
Unfortunately I can't find the video itself any more, but the basic idea is to use the print head/gantry to knock the finished prints off the table, likely by adding some custom commands to the end of the sliced G-code. After the print is finished, the bed moves to the Y endstop (this was done on a bedslinger printer), the head is lowered to about half of the parts' height, then the bed is slowly moved so that the part crashes into the head, gets detached and knocked off the table, then the head is lowered even further and sweeps the part away.
The only mechanical modification, namely a sheet of paper stuck to the table's edge, ensures that the part will roll clear of the bed rails, and pushes the pile of finished parts further from the printer once it's off.
In the case of that video there were three parts being printed at a time, so the motion was repeated for each of them, even though most of the time all three got successfully detached by the gantry.
This approach is likely far from universal, and probably only works with parts that are tall enough and have a small enough footprint to easily detach from the bed; I certainly wouldn't try it if the parts have really good bed adhesion and require more than a slight force to pop off. But it looks like if the requirements are satisfied it should be quite effective.
Also it's likely to be problematic on printers with box frames where it's the bed that moves in the Z direction, as the printed parts are likely to get trapped between the bed, print head and printer frame. CoreXY designs where the bed is static and the head moves in all three axes should be fine, however.