I've talked to a bunch of customers who do this, and in general I tend to see the following approach:
-
Create a set of custom fields corresponding to key usages (Features enabled, certain counts, other relevant metrics)
-
Instrument the code such that the required data is available within your software on the back-end
-
Use the SOAP API to setup a background push nightly (or hourly) to update those fields, usually based on the lead's email address
-
Build campaigns that trigger on or otherwise use those fields
Munchkin and URL tracking can be done too, but I tend to think you're better served using SOAP and key indicators as lead fields.