[SalesForce] Updating Opportunity when Primary Opportunity Contact Role is changed

I'm running into a challenge around automatically updating Opportunities.

  • My Opportunities' names are generated by a workflow. This workflow pulls from various fields on the Opportunity object. One of these fields is a custom Primary Contact field.

  • I've written an Apex trigger on the Opportunity that automatically populates the custom Primary Contact field when a Primary OpportunityContactRole is added or deleted.

  • The problem is, the Apex trigger doesn't fire when I add/remove an OpportunityContactRole – it only fires – and therefore, the Opportunity Name only updates – once I've updated the Opportunity. I've asked our sales reps to click Edit –> Save to induce this renaming behavior.

  • I'm trying to get the Opportunity to update automatically when a Primary OpportunityContactRole is added or deleted.

  • However, I can't add Apex Triggers to OpportunityContactRoles, and moving to a custom object isn't feasible right now. Is there any way I could get the Opportunity to automatically update when adding/removing a Primary Contact?

Best Answer

I'd either create a batch job to run every half hour or so, and check for records with a changed contact role, or, replace the page the users are using to change the contact role with a visualforce page, and cause an opportunity update after updating the contact role.

Either solution should get you there, but you'll have to pick one or the other. Personally, I prefer visualforce solutions, since it turns into "when you do this, this happens", instead of "well, it should do it on its own, eventually".

Related Topic