Looking around the net it appears that the best place to hook into the Lead Conversion process is in a Trigger's After Update event.
I have a situation where I have a related object on a lead and upon conversion, for those that create a new Contact I want to do one thing, but if it's a merge with an existing contact I want to do another.
My problem is, I can't figure out how to know whether the merge was to an existing contact or new contact.
I would think that ConvertedContactId would give me a value for both new and merge?
if (lead.IsConverted && !trigger.oldmap.get(lead.id).IsConverted) {
// Handling conversion
// Step 1 - get all existing Status Trackers for lead, that are not Existing Contacts
// and migrate to new Contact id
// Step 2 - get all existing Status Trackers for lead -- that are for
// existing Contacts and delete them
}