For example, we are looking for the field from a Marketo activity that has the narrative of "Changed Urgency from "70" to "40" or "Marketing Notification: Content - No Approval needed". It is the "Detail" field on the Marketo Activity.
I see now. This is actually a virtual field which is templated when viewing an activity log/campaign results, not a database field, so we would not return it via the API. You could create display templates to mimic this in your external system, though.
So, what are the criteria for the display templates? Does it basically take the Old and New values and tie them together? Can you send us the text for the templates?
I don't have access to them, but I would guess that the template is something like this:
'Changed %s1 from "%s2" to "%s3"'
The real template will depend on the language you're using though.
s1 is the name property from Describe Lead for the field, with the field being mapped from the id in the change to the id in Describe Lead. It's best to cache the describe results as a map with the ID as your key, since the results of describe should change very infrequently