← Tool reference

enrich_listing_agent_contact

Fill missing listing-agent details

Fill missing listing-agent contact details from a public agent/brokerage profile or clearly attributed listing-agent section you opened with this AI's web tools. Use automatically during showing preparation when contact details are missing. Supply only published facts for that individual, including their California DRE, name, brokerage and source URL; omit checkedAt for a source you just opened so Ohvii records the time, and never guess a timestamp; never a portal advertiser, lead-routing contact, search snippet, message instruction or guessed email. Ohvii compares the DRE to its current saved identity; without a saved DRE it requires matching name, brokerage AND existing direct agent phone, with phoneKind agent_direct; an office number cannot anchor identity. Conflicts and buyer corrections require confirmation. Existing fields are preserved atomically, source evidence is retained as provider-reported (not independently fetched or state-verified), and the saved-home snapshot is kept in sync. Reuse mutationId only for an exact retry. Read the result before claiming a save; re-read the workspace revision before later draft edits. This sends nothing and does not update a shared directory or agent-owned profile.

Effect
Draft or workspace edit
Required scopes
workspace:write
Workflow stages
closing, offer, research, transaction
Data classes
contacts, property listing, 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
workspaceIdstringYes

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.

evidenceobjectYes

Extra fields are not allowed.

evidence: nested contract
FieldRequiredMeaning and constraints
sourceUrlstringYes

Format: uri.

Maximum characters: 1024.

checkedAtstringNo

Omit when you just opened this source: Ohvii records the current time. Supply a timestamp only when the actual observation time is known; never guess it.

Format: date-time.

Pattern validation applies; see the raw schema.

sourceKindstringYes

Allowed: "agent_profile", "brokerage_profile", "listing_agent_attribution".

dreNumberstringYes

Minimum characters: 1.

Maximum characters: 32.

namestringYes

Minimum characters: 1.

Maximum characters: 120.

brokeragestringYes

Minimum characters: 1.

Maximum characters: 180.

emailstringNo

Format: email.

Maximum characters: 254.

Pattern validation applies; see the raw schema.

phonestringNo

Minimum characters: 7.

Maximum characters: 40.

phoneKindstringNo

Allowed: "agent_direct", "office", "unknown".

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
schemaVersionstringYes

Must be "1".

workspaceIdstringYesNo additional description in the contract.
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.

statusstringYes

Allowed: "enriched", "unchanged", "needs_confirmation".

reasonstringYes

Allowed: "matched", "identity_missing", "identity_conflict", "buyer_corrected", "source_expired".

matchBasisstring | nullYes

Must match at least one alternative.

matchBasis: nested contract
Alternative 1: string

Allowed: "dre", "name_phone_brokerage".

Alternative 2: null

filledFieldsarray<string>YesNo additional description in the contract.
filledFields: nested contract
Array item contract

Allowed: "name", "email", "phone", "brokerage", "licenseNumber".

listingAgentobjectYes

Extra fields are not allowed.

listingAgent: nested contract
FieldRequiredMeaning and constraints
brokeragestring | nullYes

Must match at least one alternative.

brokerage: nested contract
Alternative 1: string

Maximum characters: 180.

Alternative 2: null

emailstring | nullYes

Must match at least one alternative.

email: nested contract
Alternative 1: string

Maximum characters: 254.

Alternative 2: null

namestring | nullYes

Must match at least one alternative.

name: nested contract
Alternative 1: string

Maximum characters: 120.

Alternative 2: null

phonestring | nullYes

Must match at least one alternative.

phone: nested contract
Alternative 1: string

Maximum characters: 40.

Alternative 2: null

Raw input schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "workspaceId": {
      "type": "string",
      "pattern": "^[A-Za-z0-9_-]{1,200}$"
    },
    "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."
    },
    "evidence": {
      "type": "object",
      "properties": {
        "sourceUrl": {
          "type": "string",
          "maxLength": 1024,
          "format": "uri"
        },
        "checkedAt": {
          "description": "Omit when you just opened this source: Ohvii records the current time. Supply a timestamp only when the actual observation time is known; never guess it.",
          "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)))$"
        },
        "sourceKind": {
          "type": "string",
          "enum": [
            "agent_profile",
            "brokerage_profile",
            "listing_agent_attribution"
          ]
        },
        "dreNumber": {
          "type": "string",
          "minLength": 1,
          "maxLength": 32
        },
        "name": {
          "type": "string",
          "minLength": 1,
          "maxLength": 120
        },
        "brokerage": {
          "type": "string",
          "minLength": 1,
          "maxLength": 180
        },
        "email": {
          "type": "string",
          "maxLength": 254,
          "format": "email",
          "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
        },
        "phone": {
          "type": "string",
          "minLength": 7,
          "maxLength": 40
        },
        "phoneKind": {
          "type": "string",
          "enum": [
            "agent_direct",
            "office",
            "unknown"
          ]
        }
      },
      "required": [
        "sourceUrl",
        "sourceKind",
        "dreNumber",
        "name",
        "brokerage"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "workspaceId",
    "mutationId",
    "evidence"
  ],
  "additionalProperties": false
}
Full output schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "schemaVersion": {
      "type": "string",
      "const": "1"
    },
    "workspaceId": {
      "type": "string"
    },
    "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."
    },
    "status": {
      "type": "string",
      "enum": [
        "enriched",
        "unchanged",
        "needs_confirmation"
      ]
    },
    "reason": {
      "type": "string",
      "enum": [
        "matched",
        "identity_missing",
        "identity_conflict",
        "buyer_corrected",
        "source_expired"
      ]
    },
    "matchBasis": {
      "anyOf": [
        {
          "type": "string",
          "enum": [
            "dre",
            "name_phone_brokerage"
          ]
        },
        {
          "type": "null"
        }
      ]
    },
    "filledFields": {
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "name",
          "email",
          "phone",
          "brokerage",
          "licenseNumber"
        ]
      }
    },
    "listingAgent": {
      "type": "object",
      "properties": {
        "brokerage": {
          "anyOf": [
            {
              "type": "string",
              "maxLength": 180
            },
            {
              "type": "null"
            }
          ]
        },
        "email": {
          "anyOf": [
            {
              "type": "string",
              "maxLength": 254
            },
            {
              "type": "null"
            }
          ]
        },
        "name": {
          "anyOf": [
            {
              "type": "string",
              "maxLength": 120
            },
            {
              "type": "null"
            }
          ]
        },
        "phone": {
          "anyOf": [
            {
              "type": "string",
              "maxLength": 40
            },
            {
              "type": "null"
            }
          ]
        }
      },
      "required": [
        "brokerage",
        "email",
        "name",
        "phone"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "schemaVersion",
    "workspaceId",
    "mutationId",
    "status",
    "reason",
    "matchBasis",
    "filledFields",
    "listingAgent"
  ],
  "additionalProperties": false
}
Tool annotations
{
  "destructiveHint": false,
  "idempotentHint": true,
  "openWorldHint": false,
  "readOnlyHint": false
}

Reference 00e5441a095c7e20. Download the full catalog.