No developer needed. Export from your CRM, upload once, and share a live map with every client.
Four steps from zero to a live, shareable property map.
Export from any CRM or spreadsheet as a CSV or JSON file. MapState accepts any column names and auto-detects fields like price, address, and bedrooms.
Drag your file into the dashboard. MapState geocodes missing coordinates, scores data quality, and makes your map live in seconds.
Pick your brand colors, choose a font, and set the border radius. Your map matches your website, not a generic iframe.
Share the direct URL with clients, or embed the map on any webpage with a single line of HTML.
<iframe src="https://mapstate.com/c/your-slug" width="100%" height="520" style="border:0;" allowfullscreen></iframe>
MapState reads your file and maps columns to standard fields automatically, regardless of how your CRM names them.
| Field | Example column names | Notes |
|---|---|---|
| Title | title, name, listing_name, nom | Used as the property heading in the map popup and list view. |
| Price | price, prix, amount, sale_price, loyer | Numeric value. Currency detected separately or defaults to your workspace setting. |
| Address | address, adresse, full_address, location | Geocoded automatically if lat/lng are missing. |
| Bedrooms | bedrooms, beds, chambres, nb_pieces, pieces | Integer. Used in filter and display. |
| Bathrooms | bathrooms, baths, salles_de_bain | Integer. Optional. |
| Area | area, surface, sqm, m2, superficie | Numeric. Displayed alongside bedrooms in the specs line. |
| Property type | type, property_type, category, categorie | Apartment, house, villa, etc. Used in filter. |
| Listing type | listing_type, transaction, operation | Sale or rent. Used in filter and badge color. |
| Coordinates | lat + lng, latitude + longitude | If present, geocoding is skipped and import is faster. |
Your CSV columns can be named anything.
MapState uses fuzzy matching — nb_pieces, bedrooms, and chambres all map to the bedrooms field. You can review and adjust column mappings before confirming the import.
Not necessarily. For small portfolios, a manual re-upload takes under a minute. If you want automatic sync, you can point MapState to a public URL (JSON or CSV) that your CRM already exports, and MapState will poll it on a schedule you control. Changes appear on the map within minutes.
MapState accepts JPEG, PNG, and WebP image URLs. Images are referenced by URL, not uploaded to MapState directly — just include an image_url or photo column in your file pointing to where images are hosted. Unsplash, your own CDN, or your CRM's media storage all work.
Yes. Each map is tied to a workspace and a source. You can create multiple workspaces — one per market, city, or property type — each with its own branding, domain, and embed URL. All workspaces are managed from the same account.
Your listing data is stored securely and is never shared with third parties, used for advertising, or visible to other MapState users. Public maps are accessible via their URL only — they are not indexed or discoverable within MapState. You can password-protect any map from your workspace settings.
Your first map is live in minutes.