Property Intake, Smart Parser & Address Sanitization Flow

Property Intake, Smart Parser & Address Sanitization Flow A workflow diagram generated by Archify. 01 / Broker Intake Channels 02 / Smart Listing Parser 03 / Database Sanitize Trigger 04 / Cadastral Verification Broker Intake Text Normalization Bounded Regex Parsing Postgres Sanitize PACI Linkage Verified Listing Input Formatting Guard Smart Listing Regex Fleet Postgres Write Shield Cadastral & CRM Store Broker Intake · text, voice, form · Broker Intake Channels › Input Formatting Guard › Broker Intake · raw listing Broker Intake text, voice, form raw listing Phone Formatter · Kuwait 8-digit E.164 · Broker Intake Channels › Input Formatting Guard › Text Normalization · contact check Phone Formatter Kuwait 8-digit E.164 contact check Text Normalizer · Arabic numerals · Smart Listing Parser › Smart Listing Regex Fleet › Text Normalization · preprocessor Text Normalizer Arabic numerals preprocessor Smart Parser · bounded regex · Smart Listing Parser › Smart Listing Regex Fleet › Bounded Regex Parsing · regex fleet Smart Parser bounded regex regex fleet Partition Parser · sub-parcel 28غ · Database Sanitize Trigger › Postgres Write Shield › Bounded Regex Parsing · plot syntax Partition Parser sub-parcel 28غ plot syntax Sanitize Trigger · sanitize_address() · Database Sanitize Trigger › Postgres Write Shield › Postgres Sanitize · prefix stripper · PostgreSQL Sanitize Trigger sanitize_address() prefix stripper PACI Cadastral · Kuwait Finder link · Cadastral Verification › Cadastral & CRM Store › PACI Linkage · GIS resolution PACI Cadastral Kuwait Finder link GIS resolution Verified Listing · clean CRM card · Cadastral Verification › Cadastral & CRM Store › Verified Listing · active listing Verified Listing clean CRM card active listing normalize text format phone clean tokens plot tokens publish CRM parsed payload clean contact valid plot clean address Legend User UI Agent logic Context / trace

Smart Listing Parser Hardening

  • • Replaces naive substring checks with bounded regex to eliminate false positives like 'مصعد داخلي'
  • • Correctly maps 'طريق عام' to standard 'public_road' location type enum
  • • Disambiguates plot frontage layout (One Street, Corner, Two Frontages) from physical street identifiers

Kuwait Plot & Sub-Parcel Partitioning

  • • Permits standard Kuwait numeric plots and official sub-parcel letters (e.g. 28غ, 14أ)
  • • Rejects corrupt multi-field string leaks (e.g. 'منزل 3') at both Dart client and schema validation layers
  • • Applies strict phone formatting for Kuwait 8-digit mobile/landline and international E.164 formats

Database Trigger: sanitize_property_address_on_write()

  • • PostgreSQL BEFORE INSERT OR UPDATE trigger on properties_base automatically strips redundant Arabic prefixes
  • • Sanitizes شارع, طريق, جادة, and مبنى prefixes to keep raw numbers and identifiers clean across all write paths
  • • Guarantees 100% data integrity whether written via Flutter wizard, Hermes AI agent, quick edit sheet, or CSV import
Suite ↗