create_transaction_email_draft
Create transaction email draft
Create one new transaction email draft in Ohvii, for example listing-agent outreach, a question about seller preferences or competing offers, a follow-up, or a lender update. The recipient must already be the listing agent or a saved transaction contact; the buyer is always copied (added automatically when cc is empty), and any other cc must be the listing side or a saved contact; attachments must be documents from list_transaction_documents. Nothing is sent here: delivery only happens through prepare_transaction_email_send and send_transaction_email_draft, after the buyer saw that email in this conversation and said yes, or when they asked in advance for this specific email to be sent. Limits: subject 240 characters, body 12,000, at most 10 cc addresses and 20 attachments. The mutationId becomes the draft id; reuse it only for an exact retry.
- 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.
| Field | Required | Meaning and constraints | ||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
draftobject | Yes | Extra fields are not allowed. | ||||||||||||||||||||||||||||||
draft: nested contract
| ||||||||||||||||||||||||||||||||
mutationIdstring | Yes | 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. | ||||||||||||||||||||||||||||||
workspaceIdstring | Yes | 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.
| Field | Required | Meaning and constraints | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
emailDraftobject | Yes | Extra fields are not allowed. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
emailDraft: nested contract
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
emailDraftRevisionstring | Yes | Pattern validation applies; see the raw schema. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
mutationIdstring | Yes | 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. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
schemaVersionstring | Yes | Must be "1". | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
workspaceIdstring | Yes | Pattern validation applies; see the raw schema. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Raw input schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"draft": {
"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
}
},
"required": [
"body",
"recipientEmail",
"subject"
],
"additionalProperties": false
},
"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."
},
"workspaceId": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,200}$"
}
},
"required": [
"draft",
"mutationId",
"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.