Semantius Logo

Real Estate Agent Operations

1. Overview

Agent-facing workflow from lead capture through closing. Lead nurture (writes back into CRM contributor flow), listing creation and MLS syndication, tour scheduling and execution, transaction management (offer to escrow to contingencies to close), and buyer/seller disclosure handling. The deployable unit for solo agents and small firms; agents in larger brokerages work here while broker oversight runs in BROKERAGE-OPS.

2. Entity summary

NameDescription
Disclosure DocumentsState-mandated and brokerage-policy disclosure forms attached to transactions (agency disclosure, property condition, lead paint, HOA documents); required for compliance audit.
Real Estate ListingsProperty offered for sale or rent on an MLS or brokerage marketplace; carries pricing, photos, descriptive text, agent representation, and listing-status lifecycle (active/contingent/pending/sold/withdrawn).
Real Estate TransactionsDeal pipeline from offer through close: parties, terms, contingencies, escrow timeline, and document compliance. One transaction per accepted offer; survives the listing once the offer is bound.
Tour AppointmentsScheduled property showings with lock-box codes, access windows, agent attendance, and follow-up tracking.
ContactsPerson at a customer account (B2B) or contact-level record (B2C-relevant). Carries title, email, decision-maker flag, preferred channel, opt-in state. MA contributes engagement data; SALES-ENG contributes cadence touchpoints.
LeadsPre-qualification prospect record - source, score, status (new/working/qualified/disqualified/converted), assigned rep, conversion target (which contact + account it would become). MQL handoff from MA lands here.
Commission SplitsPer-transaction commission distribution across listing-side and buyer-side brokerages, then internal agent splits per franchise rules; referenced by accounting and 1099 processes.
flowchart TD
  classDef master fill:#d4f4dd,stroke:#27ae60,color:#0b3d20;
  classDef contributor fill:#cfe8ff,stroke:#1976d2,color:#0d3a66;
  classDef consumer fill:#e8def8,stroke:#7b1fa2,color:#3a155d;
  classDef platform_builtin fill:#e0e0e0,stroke:#424242,color:#1a1a1a;
  real_estate_listings["Real Estate Listings"]
  tour_appointments["Tour Appointments"]
  real_estate_transactions["Real Estate Transactions"]
  disclosure_documents["Disclosure Documents"]
  crm_leads["Leads"]
  crm_contacts["Contacts"]
  commission_splits["Commission Splits"]
  users["Users"]
  real_estate_listings -->|"generates"| real_estate_transactions
  real_estate_listings -->|"has tours"| tour_appointments
  real_estate_transactions -->|"requires disclosures"| disclosure_documents
  real_estate_transactions -->|"produces commission splits"| commission_splits
  crm_contacts -->|"converted_from_lead (opt)"| crm_leads
  real_estate_listings -->|"has listing agent"| users
  tour_appointments -->|"has showing agent"| users
  real_estate_transactions -->|"has listing-side agent"| users
  real_estate_transactions -->|"has buyer-side agent (opt)"| users
  disclosure_documents -->|"has preparer"| users
  commission_splits -->|"has recipient agent"| users
  commission_splits -->|"has approving broker"| users
  users -->|"owns"| crm_leads
  users -->|"owns (opt)"| crm_contacts
  class real_estate_listings master;
  class tour_appointments master;
  class real_estate_transactions master;
  class disclosure_documents master;
  class crm_leads contributor;
  class crm_contacts contributor;
  class commission_splits consumer;
  class users platform_builtin;
  style commission_splits stroke-dasharray:5 5;

3. Entities catalog

#data_objectrolemastered innecessitypattern flagsnotes
1disclosure_documents (Disclosure Documents)master-requiredpersonal_content, submit_lock, single_approver-
2real_estate_listings (Real Estate Listings)master-requiredpersonal_content-
3real_estate_transactions (Real Estate Transactions)master-requiredpersonal_content, submit_lock-
4tour_appointments (Tour Appointments)master-requiredpersonal_content-
5crm_contacts (Contacts)contributorcrm-acct-mgtrequiredpersonal_content-
6crm_leads (Leads)contributorcrm-lead-mgtrequiredpersonal_content-
7commission_splits (Commission Splits)consumerre-brok-brokerage-opsoptionalsubmit_lock, single_approver-

4. Aliases and industry synonyms

(no industry-scoped aliases or non-synonym alias types loaded for this scope; generic synonyms are omitted as common knowledge.)

5. Relationships

5.1 Intra-scope edges

fromverbtocardinalitykindnecessityowner_sidenotes
real_estate_listingsgeneratesreal_estate_transactionsone_to_manyreferencerequiredtarget-
real_estate_listingshas tourstour_appointmentsone_to_manyreferencerequiredtarget-
real_estate_transactionsrequires disclosuresdisclosure_documentsone_to_manycompositionrequiredtarget-
real_estate_transactionsproduces commission splitscommission_splitsone_to_manycompositionrequiredtarget-
crm_contactsconverted_from_leadcrm_leadsone_to_manyreferenceoptionalsource-

5.2 Built-in edges (users and other platform built-ins)

fromverbtocardinalitynecessityowner_sidenotes
real_estate_listingshas listing agentusersmany_to_manyrequiredsource-
tour_appointmentshas showing agentusersmany_to_manyrequiredsource-
real_estate_transactionshas listing-side agentusersmany_to_manyrequiredsource-
real_estate_transactionshas buyer-side agentusersmany_to_manyoptionalsource-
disclosure_documentshas preparerusersmany_to_manyrequiredsource-
commission_splitshas recipient agentusersmany_to_manyrequiredsource-
commission_splitshas approving brokerusersmany_to_manyrequiredsource-
usersownscrm_leadsone_to_manyrequiredsource-
usersownscrm_contactsone_to_manyoptionalsource-

5.3 Cross-scope edges

fromverbtocardinalitynecessitynotes
customershas_contactscrm_contactsone_to_manyoptional-
customersconverted_from_leadcrm_leadsone_to_manyoptional-
crm_opportunitiesconverted_from_leadcrm_leadsone_to_manyoptional-
crm_opportunitiesinvolves_contactscrm_contactsmany_to_manyoptional-
crm_contactshas_activitiessales_activitiesone_to_manyoptional-
crm_leadshas_activitiessales_activitiesone_to_manyoptional-

6. Cross-domain context

6.1 Master consumers (other modules / domains that embed this scope’s masters)

data_objectother module / domainrolenecessitynotes
disclosure_documentsRE-BROK-BROKERAGE-OPS (Brokerage Oversight and Commission Management) - RE-BROKERAGEcontributorrequired-
disclosure_documentsREAL-ESTATE-AGENT (Real Estate Agent (solo / small firm bundle))embedded_masterrequired-
real_estate_listingsREAL-ESTATE-AGENT (Real Estate Agent (solo / small firm bundle))embedded_masterrequired-
real_estate_transactionsRE-BROK-BROKERAGE-OPS (Brokerage Oversight and Commission Management) - RE-BROKERAGEcontributorrequired-
real_estate_transactionsREAL-ESTATE-AGENT (Real Estate Agent (solo / small firm bundle))embedded_masterrequired-
tour_appointmentsREAL-ESTATE-AGENT (Real Estate Agent (solo / small firm bundle))embedded_masterrequired-

6.2 Outbound handoffs (events this scope publishes)

source moduletarget domaintarget moduletrigger_eventpayloadintegrationfrictiondescription
(domain-level)GRC(domain-level)real_estate_transaction.closeddisclosure_documentsbatch_synclowDisclosure-document completeness per closed transaction feeds brokerage-compliance audit and state-real-estate-commission requirements.
(domain-level)RE-PROP-MGMT(domain-level)real_estate_transaction.closedreal_estate_transactionsmanual_handoffhighClosed sale of a rental property results in a new landlord-of-record; the new owner’s property-management platform must be configured (often manual handoff via email; the buyer’s PM and the seller’s brokerage are different vendors).
(domain-level)RE-CRE(domain-level)listing.soldreal_estate_listingsbatch_syncmediumClosed sale triggers commercial lease setup if multi-tenant.
(domain-level)RE-CRE(domain-level)real_estate_transaction.closedreal_estate_transactionsmanual_handoffhighClosed sale of a CRE asset transfers operations to the new owner’s CRE platform; rent-roll, leases, and CAM history must be carried over (typically manual).
(domain-level)RE-INVEST(domain-level)listing.soldreal_estate_listingsmanual_handoffhighSale closing triggers fund NAV and LP-reporting recalculation.

6.3 Inbound handoffs (events this scope reacts to)

(no inbound handoffs whose payload is in this scope.)

6.4 Master providers (modules / domains that own masters this scope embeds)

data_objectrole herenecessitycanonical owner(s)slice notes
crm_contactscontributorrequiredCRM-ACCT-MGT (CRM)-
crm_leadscontributorrequiredCRM-LEAD-MGT (CRM)-
commission_splitsconsumeroptionalRE-BROK-BROKERAGE-OPS (RE-BROKERAGE)-

7. Lifecycle states (per touched entity)

commission_splits (Commission Split)

This scope holds commission_splits as consumer; the canonical state machine is owned by RE-BROK-BROKERAGE-OPS.

orderstate_nameinitial?terminal?requires_permission?derived gatedescription
1calculated---Split row auto-derived from transaction close (listing-side vs buyer-side splits, agent shares, franchise overrides). Pending review.
2reviewed--re-brok-brokerage-ops:review_commission_splitBroker reviewed split accuracy against the listing agreement and brokerage policy; flagged any anomalies.
3disputed--re-brok-brokerage-ops:dispute_commission_splitOne participating agent contests the calculated split. Holds disbursement pending resolution; may return to reviewed after adjustment.
4approved--re-brok-brokerage-ops:approve_commission_splitBroker approved the split for payment. Ready for disbursement.
5paid-re-brok-brokerage-ops:disburse_commissionCommission funds disbursed to participating agents and franchise; ledger entry recorded.

crm_contacts (Contact)

This scope holds crm_contacts as contributor; the canonical state machine is owned by CRM-ACCT-MGT.

orderstate_nameinitial?terminal?requires_permission?derived gatedescription
1active---Contact is current and reachable.
2inactive----Contact is no longer engaged but record retained.
3unsubscribed---Contact has opted out of all channels.

crm_leads (Lead)

This scope holds crm_leads as contributor; the canonical state machine is owned by CRM-LEAD-MGT.

orderstate_nameinitial?terminal?requires_permission?derived gatedescription
1new---Freshly captured lead awaiting triage.
2working----Sales rep is actively engaging the lead.
3qualified----Lead meets qualification criteria and is ready to convert.
4converted-crm-lead-mgt:convert_leadLead has been converted into a contact, account, and opportunity.
5disqualified---Lead does not meet criteria; closed without conversion.

disclosure_documents (Disclosure Document)

orderstate_nameinitial?terminal?requires_permission?derived gatedescription
1drafted---Disclosure generated from a state-specific template (agency disclosure, lead-paint, natural-hazards, transfer disclosure). Not yet delivered.
2delivered--re-brok-agent-ops:deliver_disclosureDisclosure sent to recipient (buyer or seller); recipient acknowledgment pending.
3acknowledged-re-brok-agent-ops:acknowledge_disclosureRecipient signed acknowledgment recorded (typically via eSign callback). Disclosure satisfies the compliance requirement on the transaction.
4rejected---Recipient refused to acknowledge or signed under dispute. Typically requires the transaction to address the rejection before progressing.

real_estate_listings (Real Estate Listing)

orderstate_nameinitial?terminal?requires_permission?derived gatedescription
1draft---Listing is being prepared (photos, copy, pricing); not yet published to MLS.
2active--re-brok-agent-ops:activate_listingListing is published to the MLS and accepting offers.
3under_contract--re-brok-agent-ops:mark_under_contractOffer accepted; a real_estate_transaction has been opened. Listing remains visible on MLS as ‘pending’ but not accepting new offers.
4sold-re-brok-agent-ops:close_listingTransaction closed; listing terminated as a sale. Triggers downstream events to property-management, CRE, and investment systems.
5withdrawn-re-brok-agent-ops:withdraw_listingListing pulled from the market without a sale (seller decision, expired listing agreement before contract, market reasons).
6expired---Listing agreement reached its end date without a sale or active renewal. No explicit user action; system marks at expiration.

real_estate_transactions (Real Estate Transaction)

orderstate_nameinitial?terminal?requires_permission?derived gatedescription
1opened---Accepted offer created the transaction; buyer/seller, listing reference, offer price, escrow agent, target close date captured.
2inspection--re-brok-agent-ops:schedule_inspectionInspection period active; structural / pest / specialty inspections scheduled or in progress.
3financing--re-brok-agent-ops:submit_financingBuyer’s loan application in underwriting; appraisal pending; financing contingency open.
4contingencies_cleared--re-brok-agent-ops:clear_contingenciesAll contingencies (inspection, financing, appraisal, title) satisfied or waived. Transaction ready for broker compliance review.
5compliance_review--re-brok-brokerage-ops:submit_for_compliance_reviewBroker / transaction coordinator reviewing transaction file for compliance (disclosure completeness, signature audit, trust-account accounting). Only realized when BROKERAGE-OPS module is deployed.
6cleared_to_close--re-brok-brokerage-ops:approve_for_closingBroker signed off; closing date and location confirmed. Only realized when BROKERAGE-OPS module is deployed.
7closed-re-brok-agent-ops:close_transactionDeed recorded, funds disbursed via escrow; transaction complete. Commission splits become payable; downstream domains notified.
8cancelled-re-brok-agent-ops:cancel_transactionTransaction fell through (failed inspection beyond repair, financing denied, mutual cancellation, contingency invocation). Listing typically returns to active.

tour_appointments (Tour Appointment)

orderstate_nameinitial?terminal?requires_permission?derived gatedescription
1scheduled---Tour booked with prospect; access arrangements (lockbox code, listing-agent attendance) pending confirmation.
2confirmed--re-brok-agent-ops:confirm_tourProspect confirmed attendance; access arrangements finalized.
3completed-re-brok-agent-ops:complete_tourTour took place; agent recorded notes and any buyer-feedback signals.
4cancelled-re-brok-agent-ops:cancel_tourTour cancelled by either party before it took place.
5no_show---Prospect did not appear at the scheduled time. No explicit cancellation; agent marks after the fact.

8. Permissions and business rules (derived)

8.1 Permissions

permissiontierdescriptionincluded in :admin?
re-brok-agent-ops:readbaseline-readRead access to every entity in the module
re-brok-agent-ops:managebaseline-manageEdit operational records
re-brok-agent-ops:adminbaseline-adminEdit reference data and inherit every workflow gate below-
re-brok-agent-ops:activate_listingworkflow-gate (lifecycle)Transition real_estate_listings into state active
re-brok-agent-ops:mark_under_contractworkflow-gate (lifecycle)Transition real_estate_listings into state under_contract
re-brok-agent-ops:close_listingworkflow-gate (lifecycle)Transition real_estate_listings into state sold
re-brok-agent-ops:withdraw_listingworkflow-gate (lifecycle)Transition real_estate_listings into state withdrawn
re-brok-agent-ops:schedule_inspectionworkflow-gate (lifecycle)Transition real_estate_transactions into state inspection
re-brok-agent-ops:submit_financingworkflow-gate (lifecycle)Transition real_estate_transactions into state financing
re-brok-agent-ops:clear_contingenciesworkflow-gate (lifecycle)Transition real_estate_transactions into state contingencies_cleared
re-brok-agent-ops:close_transactionworkflow-gate (lifecycle)Transition real_estate_transactions into state closed
re-brok-agent-ops:cancel_transactionworkflow-gate (lifecycle)Transition real_estate_transactions into state cancelled
re-brok-agent-ops:confirm_tourworkflow-gate (lifecycle)Transition tour_appointments into state confirmed
re-brok-agent-ops:complete_tourworkflow-gate (lifecycle)Transition tour_appointments into state completed
re-brok-agent-ops:cancel_tourworkflow-gate (lifecycle)Transition tour_appointments into state cancelled
re-brok-agent-ops:deliver_disclosureworkflow-gate (lifecycle)Transition disclosure_documents into state delivered
re-brok-agent-ops:acknowledge_disclosureworkflow-gate (lifecycle)Transition disclosure_documents into state acknowledged
re-brok-agent-ops:view_all_real_estate_listingsoverride (personal_content)View all real_estate_listings rows beyond row-scope
re-brok-agent-ops:manage_all_real_estate_listingsoverride (personal_content)Manage all real_estate_listings rows beyond row-scope
re-brok-agent-ops:view_all_tour_appointmentsoverride (personal_content)View all tour_appointments rows beyond row-scope
re-brok-agent-ops:manage_all_tour_appointmentsoverride (personal_content)Manage all tour_appointments rows beyond row-scope
re-brok-agent-ops:view_all_real_estate_transactionsoverride (personal_content)View all real_estate_transactions rows beyond row-scope
re-brok-agent-ops:manage_all_real_estate_transactionsoverride (personal_content)Manage all real_estate_transactions rows beyond row-scope
re-brok-agent-ops:submit_real_estate_transactionoverride (submit_lock)Submit and lock a real_estate_transactions row (post-submit edits gated)
re-brok-agent-ops:view_all_disclosure_documentsoverride (personal_content)View all disclosure_documents rows beyond row-scope
re-brok-agent-ops:manage_all_disclosure_documentsoverride (personal_content)Manage all disclosure_documents rows beyond row-scope
re-brok-agent-ops:submit_disclosure_documentoverride (submit_lock)Submit and lock a disclosure_documents row (post-submit edits gated)

8.2 Business rules

rule_namedata_objectsource flagintent
real_estate_listing_edit_scopereal_estate_listingshas_personal_contentRow-scope by default; override via re-brok-agent-ops:view_all_real_estate_listings / re-brok-agent-ops:manage_all_real_estate_listings
tour_appointment_edit_scopetour_appointmentshas_personal_contentRow-scope by default; override via re-brok-agent-ops:view_all_tour_appointments / re-brok-agent-ops:manage_all_tour_appointments
real_estate_transaction_edit_scopereal_estate_transactionshas_personal_contentRow-scope by default; override via re-brok-agent-ops:view_all_real_estate_transactions / re-brok-agent-ops:manage_all_real_estate_transactions
submit_restricted_to_real_estate_transaction_ownerreal_estate_transactionshas_submit_lockOnly the row’s authoring user can submit; post-submit the row is read-only except via re-brok-agent-ops:manage_all_real_estate_transactions
disclosure_document_edit_scopedisclosure_documentshas_personal_contentRow-scope by default; override via re-brok-agent-ops:view_all_disclosure_documents / re-brok-agent-ops:manage_all_disclosure_documents
submit_restricted_to_disclosure_document_ownerdisclosure_documentshas_submit_lockOnly the row’s authoring user can submit; post-submit the row is read-only except via re-brok-agent-ops:manage_all_disclosure_documents
approve_disclosure_document_requires_approverdisclosure_documentshas_single_approverExactly one explicit approver required; uses the module’s approval gate (re-brok-agent-ops:approve_disclosure_document if surfaced as a lifecycle workflow gate).