Is there any way to create campaign members from a new OpportunityContactRole created within an Opportunity? The absence of a trigger for new OCRs makes it seem difficult, if not impossible to complete this task. Simply using the trigger for a new Contact doesn't work since it is not yet associated with an Opportunity until it has already been created. Can anyone shed some light on this for me?
If you don't need the CampaignMember records created immediately, create a scheduled batch job that queries the OCR records and creates or upserts their CampaignMember records. I'd suggest against using custom objects as mentioned above as you will lose out of the box functionality the CampaignMembers may provide.
Winter 20 enables triggers on OpportunityContactRole (finally) so asynchronous approaches are no longer needed
The trigger would have access to OpportunityId (and ContactId) and hence you can then associate CampaignMembers to the Opportunity