As it stands, there isn't much you can do with opportunities in workflows. You can create or update, if it's for the same contact (assuming you have duplicate opportunities disabled).
But you can't for example "Find Opportunity" (by ID or name or anything) and "Add Additional Contacts" or even "Change Primary Contact".
USE CASE
I built out a Pipeline for a mortgage company, titled "Loans in Process". Zapier finds when a loan in their system has been updated, and sends a single webhook with all the loan and contact data over to HL. This then creates/updates the contact for primary borrower, and creates/updates an Opportunity (in this case, a Loan).
Due to limitations with workflows only being able to create one contact at a time, I have to send additional webhooks over to extra workflows to create each additional contact. Which is fine, it works. --
HOWEVER,
I can't add these contacts to the Opportunity (Loan) in those workflows. They're created in the system, but they have to manually be linked to the Opportunity.
DISCLAIMER
I'm technically using Opportunities as a sort of workaround, because we don't have custom objects yet. Once that's released, all of this will most likely become obsolete, since ideally a loan would live as its own Object, instead of an Opportunity.