← Tool reference

update_transaction_email_draft

Update transaction email draft

Revise the safe editable fields of one exact unsubmitted transaction email draft using its returned draftRevisionId and an idempotent mutationId. Recipients and attachments must already belong to the owned transaction. Limits: subject 240 characters, body 12,000, at most 10 cc addresses and 20 attachments. This tool resets no approval, grants no approval, contacts nobody, and never sends the draft.

Effect
Draft or workspace edit
Required scopes
workspace:write
Workflow stages
closing, offer, transaction
Data classes
communications, transaction
Operation cost
2 weighted units; additional domain limits may apply.
Configurations
Standard, Buyer UI v2
Muse proposal
Write. Creates or updates draft, document, or workspace data within the authorized workflow. Meta makes the final classification during review.

Buyer approval and signing controls apply in addition to the scopes above. Read error and retry guidance before implementing recovery.

Input and output contracts

Returns structured content and a JSON text content block. Live discovery may compact a large output schema; execution validates the full contract below.

Input fields

Required applies within the containing object. Optional fields can be omitted; null is accepted only where listed. Field descriptions and constraints come from the source schema. The raw schema remains the complete contract.

FieldRequiredMeaning and constraints
draftIdstringYes

Pattern validation applies; see the raw schema.

expectedDraftRevisionIdstring | nullYes

Must match at least one alternative.

expectedDraftRevisionId: nested contract
Alternative 1: string

Pattern validation applies; see the raw schema.

Alternative 2: null

mutationIdstringYes

A fresh random UUID (v4) you generate for this mutation. Send the same UUID only to retry the identical mutation; never a readable label.

Format: uuid.

Pattern validation applies; see the raw schema.

patchobjectYes

Extra fields are not allowed.

patch: nested contract
FieldRequiredMeaning and constraints
attachmentDocumentIdsarray<string>No

Maximum items: 20.

attachmentDocumentIds: nested contract
Array item contract

Pattern validation applies; see the raw schema.

bodystringNo

Minimum characters: 1.

Maximum characters: 12000.

ccEmailsarray<string>No

Maximum items: 10.

ccEmails: nested contract
Array item contract

Maximum characters: 320. Pattern validation applies; see the raw schema.

recipientEmailstringNo

Maximum characters: 320.

Pattern validation applies; see the raw schema.

replyToEmailstring | nullNo

Must match at least one alternative.

replyToEmail: nested contract
Alternative 1: string

Maximum characters: 320. Pattern validation applies; see the raw schema.

Alternative 2: null

subjectstringNo

Minimum characters: 1.

Maximum characters: 240.

workspaceIdstringYes

Pattern validation applies; see the raw schema.

Output fields

Required applies within the containing object. Optional fields can be omitted; null is accepted only where listed. Field descriptions and constraints come from the source schema. The raw schema remains the complete contract.

FieldRequiredMeaning and constraints
emailDraftobjectYes

Extra fields are not allowed.

emailDraft: nested contract
FieldRequiredMeaning and constraints
approvalStatestringYes

Allowed: "not_requested", "pending", "approved", "rejected", "reset_required", "unknown".

attachmentDocumentIdsarray<string>Yes

Maximum items: 50.

attachmentDocumentIds: nested contract
Array item contract

Pattern validation applies; see the raw schema.

bodystring | nullYes

Must match at least one alternative.

body: nested contract
Alternative 1: string

Maximum characters: 32000.

Alternative 2: null

ccEmailsarray<string>Yes

Maximum items: 20.

ccEmails: nested contract
Array item contract

Maximum characters: 2000.

createdAtstring | nullYes

Must match at least one alternative.

createdAt: nested contract
Alternative 1: string

Format: date-time. Pattern validation applies; see the raw schema.

Alternative 2: null

draftIdstringYes

Pattern validation applies; see the raw schema.

draftRevisionIdstring | nullYes

Must match at least one alternative.

draftRevisionId: nested contract
Alternative 1: string

Pattern validation applies; see the raw schema.

Alternative 2: null

proposedStatusstring | nullYes

Must match at least one alternative.

proposedStatus: nested contract
Alternative 1: string

Maximum characters: 2000.

Alternative 2: null

recipientEmailstring | nullYes

Must match at least one alternative.

recipientEmail: nested contract
Alternative 1: string

Maximum characters: 2000.

Alternative 2: null

replyToEmailstring | nullYes

Must match at least one alternative.

replyToEmail: nested contract
Alternative 1: string

Maximum characters: 2000.

Alternative 2: null

sentAtstring | nullYes

Must match at least one alternative.

sentAt: nested contract
Alternative 1: string

Format: date-time. Pattern validation applies; see the raw schema.

Alternative 2: null

statusstringYes

Allowed: "generating", "draft", "approval_pending", "approved", "sent", "rejected", "unknown".

subjectstring | nullYes

Must match at least one alternative.

subject: nested contract
Alternative 1: string

Maximum characters: 2000.

Alternative 2: null

updatedAtstring | nullYes

Must match at least one alternative.

updatedAt: nested contract
Alternative 1: string

Format: date-time. Pattern validation applies; see the raw schema.

Alternative 2: null

wireFraudWarningPresentbooleanYesNo additional description in the contract.
emailDraftRevisionstringYes

Pattern validation applies; see the raw schema.

mutationIdstringYes

A fresh random UUID (v4) you generate for this mutation. Send the same UUID only to retry the identical mutation; never a readable label.

Format: uuid.

Pattern validation applies; see the raw schema.

schemaVersionstringYes

Must be "1".

workspaceIdstringYes

Pattern validation applies; see the raw schema.

Raw input schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "draftId": {
      "type": "string",
      "pattern": "^[A-Za-z0-9_-]{1,200}$"
    },
    "expectedDraftRevisionId": {
      "anyOf": [
        {
          "type": "string",
          "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,399}$"
        },
        {
          "type": "null"
        }
      ]
    },
    "mutationId": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
      "description": "A fresh random UUID (v4) you generate for this mutation. Send the same UUID only to retry the identical mutation; never a readable label."
    },
    "patch": {
      "type": "object",
      "properties": {
        "attachmentDocumentIds": {
          "maxItems": 20,
          "type": "array",
          "items": {
            "type": "string",
            "pattern": "^[A-Za-z0-9_-]{1,200}$"
          }
        },
        "body": {
          "type": "string",
          "minLength": 1,
          "maxLength": 12000
        },
        "ccEmails": {
          "maxItems": 10,
          "type": "array",
          "items": {
            "type": "string",
            "maxLength": 320,
            "pattern": "^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,}$"
          }
        },
        "recipientEmail": {
          "type": "string",
          "maxLength": 320,
          "pattern": "^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,}$"
        },
        "replyToEmail": {
          "anyOf": [
            {
              "type": "string",
              "maxLength": 320,
              "pattern": "^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,}$"
            },
            {
              "type": "null"
            }
          ]
        },
        "subject": {
          "type": "string",
          "minLength": 1,
          "maxLength": 240
        }
      },
      "additionalProperties": false
    },
    "workspaceId": {
      "type": "string",
      "pattern": "^[A-Za-z0-9_-]{1,200}$"
    }
  },
  "required": [
    "draftId",
    "expectedDraftRevisionId",
    "mutationId",
    "patch",
    "workspaceId"
  ],
  "additionalProperties": false
}
Full output schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "emailDraft": {
      "type": "object",
      "properties": {
        "approvalState": {
          "type": "string",
          "enum": [
            "not_requested",
            "pending",
            "approved",
            "rejected",
            "reset_required",
            "unknown"
          ]
        },
        "attachmentDocumentIds": {
          "maxItems": 50,
          "type": "array",
          "items": {
            "type": "string",
            "pattern": "^[A-Za-z0-9_-]{1,200}$"
          }
        },
        "body": {
          "anyOf": [
            {
              "type": "string",
              "maxLength": 32000
            },
            {
              "type": "null"
            }
          ]
        },
        "ccEmails": {
          "maxItems": 20,
          "type": "array",
          "items": {
            "type": "string",
            "maxLength": 2000
          }
        },
        "createdAt": {
          "anyOf": [
            {
              "type": "string",
              "format": "date-time",
              "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
            },
            {
              "type": "null"
            }
          ]
        },
        "draftId": {
          "type": "string",
          "pattern": "^[A-Za-z0-9_-]{1,200}$"
        },
        "draftRevisionId": {
          "anyOf": [
            {
              "type": "string",
              "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,399}$"
            },
            {
              "type": "null"
            }
          ]
        },
        "proposedStatus": {
          "anyOf": [
            {
              "type": "string",
              "maxLength": 2000
            },
            {
              "type": "null"
            }
          ]
        },
        "recipientEmail": {
          "anyOf": [
            {
              "type": "string",
              "maxLength": 2000
            },
            {
              "type": "null"
            }
          ]
        },
        "replyToEmail": {
          "anyOf": [
            {
              "type": "string",
              "maxLength": 2000
            },
            {
              "type": "null"
            }
          ]
        },
        "sentAt": {
          "anyOf": [
            {
              "type": "string",
              "format": "date-time",
              "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
            },
            {
              "type": "null"
            }
          ]
        },
        "status": {
          "type": "string",
          "enum": [
            "generating",
            "draft",
            "approval_pending",
            "approved",
            "sent",
            "rejected",
            "unknown"
          ]
        },
        "subject": {
          "anyOf": [
            {
              "type": "string",
              "maxLength": 2000
            },
            {
              "type": "null"
            }
          ]
        },
        "updatedAt": {
          "anyOf": [
            {
              "type": "string",
              "format": "date-time",
              "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
            },
            {
              "type": "null"
            }
          ]
        },
        "wireFraudWarningPresent": {
          "type": "boolean"
        }
      },
      "required": [
        "approvalState",
        "attachmentDocumentIds",
        "body",
        "ccEmails",
        "createdAt",
        "draftId",
        "draftRevisionId",
        "proposedStatus",
        "recipientEmail",
        "replyToEmail",
        "sentAt",
        "status",
        "subject",
        "updatedAt",
        "wireFraudWarningPresent"
      ],
      "additionalProperties": false
    },
    "emailDraftRevision": {
      "type": "string",
      "pattern": "^[0-9a-f]{64}$"
    },
    "mutationId": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
      "description": "A fresh random UUID (v4) you generate for this mutation. Send the same UUID only to retry the identical mutation; never a readable label."
    },
    "schemaVersion": {
      "type": "string",
      "const": "1"
    },
    "workspaceId": {
      "type": "string",
      "pattern": "^[A-Za-z0-9_-]{1,200}$"
    }
  },
  "required": [
    "emailDraft",
    "emailDraftRevision",
    "mutationId",
    "schemaVersion",
    "workspaceId"
  ],
  "additionalProperties": false
}
Tool annotations
{
  "destructiveHint": false,
  "idempotentHint": true,
  "openWorldHint": false,
  "readOnlyHint": false
}

Reference 00e5441a095c7e20. Download the full catalog.