Opportunity fields - how to populate custom fields

I have a few custom fields in my opportunities, and I want to be able to populate them based on campaign behavior. However both campaign builder and action sets only seem able to update field values for contacts. Am I missing something? Why can’t we also update field values for opportunities?

Campaigns only work on Contacts. When a contact is in a campaign, the campaign doesn’t have any way of knowing which opportunity you would want to be working with.

There are some third-party tools that let you do what you want, but with a significant limitation. The third-party tools work by grabbing the most recently updated Opportunity associated to the contact record and grabbing data from or saving data to that record.

For example, NovakSolutions has a tool for copying data from the contact record to the opportunity record. With this, you can set the values you want to save to the Opportunity in the Contact’s custom fields, and then use the tool to push those values over to the most recently updated Opportunity on the Contact record.