function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
kim.stiteskim.stites 

Update Contact from CampaignMember trigger

I am trying to update the contact with the most recent campaign id from the campaignmember table but I am missing something.


trigger Update_Contact_Recent_Campaign on CampaignMember (after insert,after update) {

List<Contact> myContactUpdate =
[SELECT CampaignId FROM CampaignMember WHERE ContactID <> 'null' order by SystemmodStamp desc limit 1];
Recent_Campaign_ID__c = CampaignId
update myContactUpdate;

 

Best Answer chosen by Admin (Salesforce Developers) 
Shashikant SharmaShashikant Sharma

try to use campaignid instead od id in this

 

myContactUpdate.Recent_Campaign_ID__c = campaignMember.get(0).campaignid;

 

i hopw it will work

All Answers

Shashikant SharmaShashikant Sharma

I did not get this query you are getting list of contact but querying CampaignMember, are you able tpo compile it.?

 

List<Contact> myContactUpdate =
[SELECT CampaignId FROM CampaignMember WHERE ContactID <> 'null' order by SystemmodStamp desc limit 1];

 

kim.stiteskim.stites

No I want to get the most recent campaign when a campaignmember is updated or inserted and take that campaign id and update a field on the contact table called most recent campaign id.

Shashikant SharmaShashikant Sharma

Try this

trigger Update_Contact_Recent_Campaign on CampaignMember (after insert,after update) {

List<CampaignMember> campaignMember = [SELECT CampaignId , ContactID FROM CampaignMember WHERE ContactID <> null order by SystemmodStamp desc limit 1];
if(campaignMember.size() > 0)
{
Contact myContactUpdate = [Select id from Contact where id =: campaignMember.get(0).ContactID];

//Assign field Name as per your field API Name Contact
myContactUpdate.FieldForMostRecentCampaignMember__c = campaignMember.get(0).id;

update myContactUpdate;
}


}

 

kim.stiteskim.stites

Thank you so much!!

kim.stiteskim.stites
trigger Update_Contact_Recent_Campaign on CampaignMember (after insert,after update) { 
	List<CampaignMember> campaignMember = [SELECT CampaignId , ContactID FROM CampaignMember WHERE ContactID <> null order by SystemmodStamp desc limit 1]; if(campaignMember.size() > 0) 
	{ Contact myContactUpdate = [Select id from Contact where id =: campaignMember.get(0).ContactID]; 
		myContactUpdate.Recent_Campaign_ID__c = campaignMember.get(0)id; 
		update myContactUpdate; } }

 This is giving me the campaignmember Id and I want the campaign Id.  I tried changing it to campaignMember.get(0).CampaignId but that errors out.  Any thought?

Shashikant SharmaShashikant Sharma

try to use campaignid instead od id in this

 

myContactUpdate.Recent_Campaign_ID__c = campaignMember.get(0).campaignid;

 

i hopw it will work

This was selected as the best answer