upsert_opportunity
Create or update an opportunity based on contact and pipeline (smart merge)
This record as markdown: /tools/ghl/upsert-opportunity.md
What upsert_opportunity does on Ghl
AI agents use upsert_opportunity to create or update resources in Ghl, usually the action step of a workflow, after the agent has gathered context. Every call changes real data in your Ghl environment.
| Parameter | Type | Required | Description |
|---|---|---|---|
name | string | — | Name/title of the opportunity |
status | string | — | Status of the opportunity |
contactId | string | Yes | ID of the contact associated with this opportunity |
assignedTo | string | — | User ID to assign this opportunity to |
pipelineId | string | Yes | ID of the pipeline this opportunity belongs to |
monetaryValue | number | — | Monetary value of the opportunity in dollars |
pipelineStageId | string | — | Pipeline stage ID |
Parameters from the server's own tool schema.
Why upsert_opportunity is rated Medium
This tool creates new opportunities or updates existing ones—classic Write operations. While the effects are significant in a CRM context (opportunities typically represent potential revenue), they are reversible (opportunities can be deleted or corrected).
From the tool's definition Tool name 'upsert_opportunity' and description 'Create or update an opportunity based on contact and pipeline (smart merge)' indicate reversible creation or modification of opportunity records.
Attacks that exploit this kind of access
The rule that runs upsert_opportunity safely
PolicyLayer is an MCP gateway: it sits between your AI agents and Ghl, and checks every tool call against a rule you set before the call runs. Nothing changes on the server itself. For upsert_opportunity, this is the rule to start with:
upsert_opportunity stays usable, but capped: an agent stuck in a loop can't make hundreds of changes a minute. Everything else on the server is denied unless you say otherwise.
The button opens the PolicyLayer dashboard: create your workspace, connect Ghl, apply this rule, and every upsert_opportunity call is checked against it from then on.
Questions about upsert_opportunity
Create or update an opportunity based on contact and pipeline (smart merge). It is categorised as a Write tool in the Ghl MCP Server, which means it can create or modify data. Consider rate limits to prevent runaway writes.
upsert_opportunity accepts 7 parameters: name, status, contactId, assignedTo, pipelineId, monetaryValue, pipelineStageId. Required: contactId, pipelineId. The full parameter table on this page comes from the server's own tool schema.
Register the Ghl MCP server in PolicyLayer and add a rule for upsert_opportunity: allow, deny, rate-limit, or require approval. Point your MCP client at the PolicyLayer proxy URL and the rule is enforced on every call, before it reaches Ghl. Nothing to install.
upsert_opportunity is a Write tool with medium risk. Write tools should be rate-limited to prevent accidental bulk modifications.
Yes. Add a rate_limit block to the upsert_opportunity rule in your PolicyLayer policy. For example, setting max: 10 and window: 60 limits the tool to 10 calls per minute. Rate limits are tracked per agent session and reset automatically.
Set action: deny in the PolicyLayer policy for upsert_opportunity. The AI agent will receive a policy violation error and cannot call the tool. You can also include a reason field to explain why the tool is blocked.
upsert_opportunity is provided by the Ghl MCP server (ghl-mcp-server). PolicyLayer sits as a proxy in front of this server to enforce policies before tool calls reach the server.
More on Ghl, and thousands of servers like it.
This server
Across the catalogue