POST

Contact & opportunity upsert

One endpoint for every GoHighLevel update. Send the contact and opportunity together — the contact's email is the identifier, so records are matched and updated in place instead of duplicated.

/api/public/ghl/opportunity
Content-Type: application/json
{
  "contact": {
    "name": "Robert Chen",
    "email": "robert@example.com",
    "phone": "+1 403 555 1111",
    "company": "Skyline Roofing"
  },
  "source": {
    "platform": "Facebook",
    "line_of_business": "Life",
    "utm_source": "Facebook"
  },
  "opportunity": {
    "pipeline_name": "Recruiting V0.2",
    "stage_name": "Business Builder"
  }
}
{
  "contact": {
    "name": "{{contact.name}}",
    "email": "{{contact.email}}",
    "phone": "{{contact.phone}}",
    "company": "{{contact.company_name}}"
  },
  "source": {
    "platform": "{{contact.source}}",
    "line_of_business": "{{contact.what_line_of_business_do_you_specialize_in}}",
    "utm_source": "{{contact.source}}"
  },
  "opportunity": {
    "pipeline_name": "{{opportunity.pipeline_name}}",
    "stage_name": "{{opportunity.stage_name}}"
  }
}
Fires a real POST at the endpoint above.
Field reference
FieldRequiredNotes
contact.emailrequiredPrimary identifier. Matched case-insensitively; contact is created if new.
contact.name / phone / companyoptionalUpdated on the matched contact when present.
source.line_of_businessoptionalMatched by name, auto-created if it doesn't exist yet.
source.platformoptionalStored as the lead source.
source.utm_source / utm_medium / campaignoptionalAttribution fields stored on the lead.
opportunity.pipeline_nameoptionalSets the lead pipeline. Defaults to Recruiting V0.2.
opportunity.stage_nameoptionalSets the pipeline stage.
opportunity.id / value / statusoptionalOptional extras. Value is in dollars.
lead.assigned_tooptionalTeam member name, auto-created if it doesn't exist yet.
Recent deliveries
EventStatusReceived
opportunity.upsert2002h ago
opportunity.upsert2002h ago
opportunity.upsert4008/19/2026
opportunity.upsert2008/19/2026
opportunity.upsert2008/19/2026