I have a custom field on task and event called Type with values as Call, Voicemail, Email..

I have a custom field on lead object, called last activity type. Now I want to populate this field on the lead detail page. Is there any standard way to do this.

Thoughts? Ideas?


  • trigger is the fastest answer but i would prefer thinking to find have i missed anything else .Since task or event not master detail so cross object formula field wont apply. Sep 15 '13 at 15:34
  • A simple trigger would be the best way to accomplish this. I know you asked about a standard way, which I dont know if there is. I can post some code for the trigger if you are willing to try it with a trigger. Sep 15 '13 at 16:12
  • Yes, can you please post some code. Meanwhile I am also looking for a standard way. Sep 15 '13 at 16:36
  • Added some code below Sep 15 '13 at 18:19

Something Like this should work.

trigger ExampleTrigger on Task (after insert) {

    set<Id> leadIds = new  set<Id>();
    for(Task t: trigger.new){
        if(t.Who.Type == 'Lead'){
    list<Lead> leadsToUpdate = new list<Lead>([Select Id, Name, Last_Activity_Type, (Select Id, ActivityDate, Type__c From Tasks) From Lead Where Id in : leadIds]);

    //This will cycyle through all the leads
    for(Lead l: leadsToUpdate){
        Date latestActivity;

            /*This will go through each task related to the current lead and find the 
            task with the latest date, and change the Last_Activity_Date__c fieild
            on that lead to the type of that latest activity*/

            for(Task t : l.Tasks){
            if (latestActivity == null || lastestActivity < t.ActivityDate){
                latestActivity = t.ActivityDate;
                l.Last_Activity_Type__c = t.Type__c;

    update leadsToUpdate;


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.