Skip to main content
Glama

Red by Big Red Cloud

Send Sales Invoice Email

brc_send_sales_invoice_email
Destructive

Sends a sales-invoice email to the customer address or an explicit recipient override. An unconfirmed call returns an email preview; confirmSend applies the send. Requires a valid routeToken issued for the matching action workflow. The token remains valid through lookup, preview and the permitted transaction. Placeholder tokens are invalid. A routeToken does not bypass preview or explicit-confirmation requirements.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
sendModeNoHow to handle multiple recipients. Use separate only when the user explicitly asks to send separate individual emails.
toAddressNoOptional single recipient override. If omitted or empty, BRC uses the customer's email address.
routeTokenYesOpaque routeToken from brc_route_request for this action workflow. Required for transactional tools. Routing permission only — does not replace preview-before-posting or confirmWrite.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
confirmSendNoMust be true only after the user has reviewed the email preview and explicitly confirmed sending.
fromAddressNoOptional sender address override.
messageBodyNoOptional custom email message body.
toAddressesNoOptional list of recipients. If more than one is provided, ask the user whether to send one email with BCC or separate individual emails.
bccAddressesNoOptional BCC email addresses. Only use if the user explicitly provides BCC addresses or chooses one email with BCC.
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
salesInvoiceIdYesBRC field: salesInvoiceId.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • addedInput schema / properties / routeToken
      Added value: +{
      +  "description": "Opaque routeToken from brc_route_request for this action workflow. Required for transactional tools. Routing permission only — does not replace preview-before-posting or confirmWrite.",
      +  "minLength": 1,
      +  "type": "string"
      +}
    • changedInput schema / required
      Previous value: -[
      -  "companyName",
      -  "salesInvoiceId"
      -]New value: +[
      +  "companyName",
      +  "salesInvoiceId",
      +  "routeToken"
      +]
  2. Changed2 schema fields changed
    • removedInput schema / properties / routeToken
      Removed value: -{
      -  "description": "Opaque routeToken from brc_route_request for this action workflow. Required for transactional tools. Routing permission only — does not replace preview-before-posting or confirmWrite.",
      -  "minLength": 1,
      -  "type": "string"
      -}
    • changedInput schema / required
      Previous value: -[
      -  "companyName",
      -  "salesInvoiceId",
      -  "routeToken"
      -]New value: +[
      +  "companyName",
      +  "salesInvoiceId"
      +]
  3. Changed2 schema fields changed
    • addedInput schema / properties / routeToken
      Added value: +{
      +  "description": "Opaque routeToken from brc_route_request for this action workflow. Required for transactional tools. Routing permission only — does not replace preview-before-posting or confirmWrite.",
      +  "minLength": 1,
      +  "type": "string"
      +}
    • changedInput schema / required
      Previous value: -[
      -  "companyName",
      -  "salesInvoiceId"
      -]New value: +[
      +  "companyName",
      +  "salesInvoiceId",
      +  "routeToken"
      +]
  4. First observed

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnlyHint=false, destructiveHint=true), the description explains the non-destructive preview step and the explicit confirmation requirement. It also discloses routeToken validity, rejects placeholder tokens, and clarifies that the token does not bypass preview/confirmation, which meaningfully informs an agent's behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded, with the core action stated first. Each subsequent sentence adds distinct operational information about preview, confirmation, routeToken validity, and placeholder tokens, without redundancy or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an 11-parameter transactional action with no output schema, the description covers the essential workflow: preview first, explicit confirmation, required routeToken, and token restrictions. Combined with the rich per-parameter schema descriptions, an agent has enough context to call the tool correctly and safely.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents all 11 parameters. The description adds real semantic value by explaining how confirmSend switches from preview to send, how toAddress acts as an 'explicit recipient override,' and how routeToken relates to the workflow.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'Sends a sales-invoice email.' It also distinguishes the receiver behavior and references the preview/confirm workflow, making it easy to tell apart from sibling email tools like brc_send_quote_email or brc_send_email_statement.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear operational context: an unconfirmed call produces a preview, confirmSend is required to actually send, and a valid routeToken is a prerequisite. It does not explicitly name alternatives or state when not to use this tool, but the intended usage is strongly implied and actionable.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.