Create Opportunity

highlevel.create_opportunity
ActionCRM & salesconnection required

Calls the HighLevel API with the connection's credentials.

Create an opportunity in a pipeline stage for a contact.

Connection

Required
Yes — the node will not save without one
Auth type
OAuth 2.0
Providers
HighLevel
Secret shape
{"client_id": "…", "client_secret": "…", "refresh_token": "…"} for a marketplace app, or {"access_token": "…"} for a Private Integration Token
Config it needs
location_id, user_type, base_url
Resolved by
config.connection_id, else node.connection_id

Configuration

9 fields, 4 required. A dotted path is a nested object and name[] an array of objects — the editor renders the same tree.

FieldTypeRequiredDefaultConstraintsExample
name
Opportunity name.
stringYes———
pipeline_id
The pipeline it belongs in, from highlevel.list_pipelines.
stringYes———
contact_id
The contact the opportunity is for.
stringYes———
status
Starting status; HighLevel requires one on every create, and a new deal is normally open.
stringYes—one of "open", "won", "lost", "abandoned"open
pipeline_stage_id
The stage within the pipeline; HighLevel uses the first stage when this is blank.
stringNo———
monetary_value
Deal value, in the sub-account's currency.
numberNo—≥ 0—
assigned_to
User id to assign it to.
stringNo———
custom_fields
HighLevel's customFields list, as JSON — one entry per field, each with the field's id (or key) and its value.
arrayNo—array of object—
location_id
Sub-account (location) id to act on instead of the connection's own.
stringNo———

Example configuration

Every value below is the contract’s own example or default — nothing invented.

{
  "status": "open"
}

Output

One shape.

result

FieldTypeExample
id
The opportunity id.
string—
name
Opportunity name.
string—
monetaryValue
Deal value.
number—
pipelineId
The pipeline it sits in.
string—
pipelineStageId
The stage it sits in.
string—
status
open, won, lost or abandoned.
string—
contactId
The contact it belongs to.
string—
locationId
The sub-account it belongs to.
string—
assignedTo
User id it is assigned to.
string—
createdAt
When it was created (ISO-8601).
string—
updatedAt
When it last changed (ISO-8601).
string—
{
  "assignedTo": "",
  "contactId": "",
  "createdAt": "",
  "id": "",
  "locationId": "",
  "monetaryValue": 0,
  "name": "",
  "pipelineId": "",
  "pipelineStageId": "",
  "status": "",
  "updatedAt": ""
}

Notes

  • Scoped to the connection's location_id (the sub-account) unless the node overrides it.

See Create Opportunity run in a workflow.

In a technical demo we add the HighLevel connection, drop the node on the canvas and let Workflow Health pre-flight it before the first real run.