CRM

Link a document to an opportunity

Ties to the opportunity the quote, the order or the project that came out of it.

Tool
filmo_crm_opportunities_link
Access: Write

Result

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "filmo_crm_opportunities_link",
    "arguments": {
      "opportunityId": "oppo_8f2a1c",
      "kind": "quote"
    }
  }
}

generated from the schema

With kind: "quote" and isPrimary: true, that quote becomes the primary one and the others are demoted. meta.created distinguishes a new link from one that already existed, which is what a retry needs to know. Returns the full opportunity, the same projection as its GET. The link itself —kind, linkedEntityId, created— goes in meta.

Arguments

opportunityIdstringRequired

Opportunity identifier.

Limits: min length 1

kindstringRequired

What is linked to the opportunity.

Available options: quote, order, project

quoteIdstring

Quote. Required with kind="quote".

orderIdstring

Order. Required with kind="order".

projectIdstring

Project. Required with kind="project".

isPrimaryboolean

Only with kind="quote": marks this quote as the primary one.

idempotencyKeystring

Idempotency key chosen by the client (a UUID is recommended). Repeating the same key with the same arguments within 24 h returns the stored response without executing again; with different arguments it responds 422. It is the safe way to retry after a network failure.

Limits: min length 1, max length 255

ifMatchstring

Optimistic locking: the meta.etag you got from the detail read of this resource (or "*"). If the resource changed since, the call fails with 412 precondition_failed before writing anything; read it again and retry. Omit it to write unconditionally.

Limits: min length 1

Result

On success the result carries structuredContent with data and meta. These are the attributes of data.

Show the attributes of data
opportunityIdstring

identifierstring

namestring

statusstring

Available options: open, won, lost

amountstring

currencystring

pipelineIdstring

pipelineNamestring

stageIdstring

stageNamestring

stageTypestring

Available options: open, won, lost

effectiveProbabilitynumber

weightedAmountstring

daysInStageinteger

expectedCloseDatestring<date-time>

contactNamestring

companyNamestring

ownerNamestring

sourcestring

Available options: inbound_email, website_form, referral, cold_outreach, event, social, existing_customer, partner, other

createdAtstring<date-time>

updatedAtstring<date-time>

descriptionstring

versioninteger

Limits: min 1

collaboratorStaffIdsstring[]

quoteIdsstring[]

stageHistoryobject[]

Show child attributes
stageHistory.fromStageIdstring

stageHistory.toStageIdstring

stageHistory.toStatusstring

stageHistory.daysInPrevStageinteger

stageHistory.movedAtstring<date-time>

stageHistory.notestring

An error is a result with isError: true and the problem in content[0].text; there is no structuredContent. See Errors.

The same operation by REST

This tool runs POST /api/v1/crm/opportunities/{opportunityId}/links.

  • CRM

    Link a document to an opportunity

    Ties to the opportunity the quote, the order or the project that came out of it.

  • Guides

    Safe writes

    An assistant that can write can also write the wrong thing. Decide which tools need a person, retry without duplicating, and know what a write sets in motion.

  • Guides

    Errors

    A tool error is a result with isError: true and the problem in the first text block. Branch on its code.