When integrating with Salesforce, a Contact in Salesforce can be related to an Opportunity in 2 different ways, via Contact Roles and via the Account relationship.
It appears that the current "Has Opportunity" filter is based upon Contact Roles. It would be nice if there were two...
-
Has Opportunity (via Contact Roles): like how it works now.
-
Has Opportunity (via Account): a new one that filters for any Contact (leads to Marketo) where they are linked to an Account with an Opportunity.
The latter filter could be important, say, if you are a SaaS company and have all users as Contacts. Only a portion were involved in the Opportunity, but all are linked to the Account.
If you want to market to ones links to Opportunities, you'd use the "Has Opportunity (via Contact Roles)". If you want to market to all linked to the Account with a Closed Won opportunity, you'd use the "Has Opportunity (via Account)" filter.
Yes, I know there are other ways to solve the specific example I gave, but the idea is that both methods of filtering should be available.
On a Side Note, the name of the current "Has Opportunity" filter gets confusing if you are bringing in Custom Objects linked to your Account. We bring Licenses and Orgs to our Marketo system and we then get filters for "Has Licenses" and "Has Orgs". It's confusing because those are based upon the Account relationship, but Has Opportunities is based upon a Contact Roles relationship.