Hello Nick,
you can pretty safely delete desired data directly from database without bothering with archive/purge functionality, that I have found pretty useless many years ago. Biggest tables are usually "session_log" and "not_log". You can't correctly purge not_log because you can base your rules on the table itself, so you can't make sure that data being purged doesn't belong to open ticket as was in our case.
As for activity log, there are two tables. For R/I/P it is "act_log" and for changes it is "chgalg".
List of big tables can be easily obtained from your DB. For MS SQL just right click on your DB and go to Reports => Standard Reports => Disk Usage by Top Tables
And if you are afraid of touching DB directly, then you can do it through pdm_extract / pdm_load combo. That way you will get backup of data too, in case you delete more than desired
For example deleting activities that happened before 1.1.2018 and are of type callback with description test is done this way:
DELETE FROM act_log
WHERE last_mod_dt < 1514764800
AND type = 'CB'
AND description = 'test'
I hope these hints will help you achieve your goal.