Salesforce Opportunity and Contact have a many-to-many relationship. It is supported by a junction object called OpportunityContactRole.
Inside an opportunity, you may add many opportunity contact roles. Additionally, there is no restriction on which Account the Contact can come from, you can add in any Contact from any Account.
However, unlike other system objects, there is some restriction to this object:
- You can’t add any custom fields to this object. (see this post)
- You can’t add any validation rules on this object (see this post)
- You can’t create any trigger on this object (see this post)
Since writing a trigger is not an option, if you want to integrate OpportunityContactRole changes to another object or another system, you can use the LastUpdatedDateTime attribute from the backend. Please contact us if you would like to know more.