I’m having trouble figuring out how to properly create or update an Opportunity in HighLevel using N8n.
In Zapier, there’s a single action that allows you to “Create or Update Opportunity” in one step. However, in N8n, there’s no such combined node. So I’m not sure how to structure the workflow to manage this logic.
Here’s my current situation:
When a WooCommerce order is placed, I already have a workflow that creates the contact in HighLevel. That part is working fine.
But then, I need to either create a new opportunity or update an existing one, depending on whether there’s already an opportunity for that contact (or with specific criteria like pipeline or stage).
My questions:
What’s the best way to check if an opportunity already exists for a contact to select the proper action?
Based on that, how should I structure the workflow to either create or update accordingly?
Any help or examples would be highly appreciated. Thank you!
Hi,
n8n’s built-in HighLevel node doesn’t (yet) have the single “Create or Update Opportunity” action you see in Zapier, so the cleanest approach is to call the HighLevel API directly.
1 One-step option — Upsert endpoint
HighLevel exposes an “Upsert Opportunity” endpoint that does exactly what Zapier does: it looks for an existing opportunity that matches “contactId + pipelineId + stageId”, updates it if found, or creates a new one if not.