๐Ÿ  CSV Package Real Estate Configuration

Complete guide to integrate your real estate listings with AI4CALL via CSV file for automatic searches and bookings

AI4CALL - MCP CSV Package Real Estate Configuration

Go to "MARKET" โ†’ "Marketplace Plugin" and click Purchase on "CSV Package Real Estate" โ†’ FREE

Go to "MARKET" โ†’ "My Plugins" and click Configure on "CSV Package Real Estate"

โš ๏ธ Third-party services

The integrations described refer to third-party services.
Rate limits, authentication methods, technical configurations, costs, and policies are defined exclusively by the respective providers and may change over time.

Costs for external services are borne directly by the end user to the service providers themselves and are in no way managed or mediated by our portal (e.g., Meta or other providers for WhatsApp, Zapier, Calendly, etc.).

โš ๏ธ IMPORTANT - Standalone System
The CSV Package Real Estate is a LOCAL plugin that works on the CSV file you upload.

There's no automatic synchronization with real estate portals (Immobiliare.it, Idealista, etc.) or external databases. To update prices, availability or add new listings, you need to manually upload an updated CSV file.

The assistant can ONLY read data from CSV and manage bookings - cannot modify properties or prices.

1

Prepare the CSV file with listings

First step is to create or export the CSV file containing all your real estate listings with columns in correct format.

๐Ÿ“‹ REQUIRED columns in CSV:
  • Comune: property city (e.g. "Milan", "Rome")
  • Zona: specific geographic area (e.g. "Center", "Porta Romana")
  • Tipo_Immobile or Tipologia: property type (e.g. "two-room", "three-room", "studio")
  • Prezzo: price in euros (e.g. 250000, 450000)
๐Ÿ“ RECOMMENDED columns (optional but useful):
  • Indirizzo, CAP: complete location data
  • Locali, Superficie, Bagni: property characteristics
  • Piano, Totale_piani, Balconi: structure details
  • Camere_da_letto, Classe_energetica, Box, Ascensore
  • Anno_di_costruzione, Tipo_di_vendita, Data_di_consegna, Spese_condominiali
โš ๏ธ Header format
Headers must correspond EXACTLY to indicated names!

โŒ WRONG: "comune" (lowercase), "TipologiaImmobile" (without underscore), "Costo" (different name)
โœ… CORRECT: "Comune", "Tipo_Immobile", "Prezzo"

The system searches columns by exact name. If not found, search might not work correctly.
2

Upload the CSV file to the system

Once prepared the CSV with correct format, upload it to AI4CALL configuration panel.

๐ŸŽฏ upload procedure:
  1. Select "CSV Package Configuration" from the list of your Plugins
  2. Click the "UPLOAD CSV" button
  3. Select file from your computer (.csv format)
  4. The system will upload file and show "Active" status
  5. You'll see uploaded file name (e.g. "csv-agenzia.csv") and upload date
โ„น๏ธ Verify required CSV format
In configuration section you'll see a yellow box with warning "โš ๏ธ Required CSV Format" listing all columns the system expects to find:

Comune, Zona, Indirizzo, CAP, Prezzo, Locali, Superficie, Bagni, Piano, Totale_piani, Balconi, Camere_da_letto, Classe_energetica, Box, Ascensore, Anno_di_costruzione, Tipo_di_vendita, Data_di_consegna, Spese_condominiali

Verify your CSV has at least required columns before uploading.
โš ๏ธ Existing file replacement
When you upload a new CSV, the previous file is completely replaced.

If you uploaded "annunci-dicembre.csv" and upload "annunci-gennaio.csv", the first file will be deleted and the assistant will use only the new one. There's no automatic merge - ensure the new CSV contains ALL listings you want to make available.
โœ… File uploaded correctly
When upload is successful, you'll see:
  • File name: csv-agenzia.csv
  • Status: Active
  • Trash icon to delete file if needed

The assistant can now search in uploaded listings!
CSV Upload
Configuration panel: required CSV format, booking method and file upload
3

Configure booking method

Choose how the assistant should manage property visit bookings.

๐Ÿ“… available methods:
1. SMTP Email - Send email
  • The assistant sends a confirmation email to customer with visit details
  • Simultaneously sends a copy to agency as internal notification
  • Does NOT verify calendar availability - manual appointment management
  • When to use it: If you manage appointments manually or with external CRM

2. Google Calendar - Always create
  • Automatically creates an event in agency's Google Calendar
  • Does NOT verify if time is already occupied - always creates event
  • Useful to track all requests even if conflicting
  • When to use it: If you want complete log of all visit requests

3. Google Calendar - Create if free
  • Verifies FIRST if requested time is available on calendar
  • Creates event ONLY if no conflicts
  • If occupied, assistant proposes alternative times to customer
  • When to use it: To automatically avoid double bookings (RECOMMENDED)
๐Ÿ’ก Recommended configuration
For most agencies, best method is:

Google Calendar - Create if free

Advantages:
  • โœ… Automatically avoids double appointments
  • โœ… Assistant proposes actually available times
  • โœ… Google Calendar becomes source of truth for bookings
  • โœ… Synchronizable with mobile app for real-time notifications

If you don't use Google Calendar, choose SMTP Email and manage calendar manually.
โš ๏ธ Google Calendar integration prerequisites
To use Google Calendar methods, you must first:
  1. Configure Google Calendar integration in AI4CALL
  2. Authorize access to your Google Calendar
  3. Select which calendar to use for bookings

If integration not configured, use SMTP Email method.
4

Configure your agency data

Personalize the assistant with your real estate agency information to correctly manage schedules and availability.

๐Ÿข fields to configure:
  • Assistant Name:
    name with which AI will introduce itself to customer
    โ†’ e.g. "Casa Conveniente Assistant", "Milan Real Estate Bot"
  • Description:
    brief service description or specialization
    โ†’ e.g. "Virtual assistant for real estate search and visit booking"
  • Agency Name:
    official name of your real estate agency
    โ†’ e.g. "Casa Conveniente Milan", "Porta Romana Real Estate"
  • City:
    main operating city
    โ†’ e.g. "Milan", "Rome"
  • Opening Hours:
    time slots when agency is open and can manage visits
    โ†’ e.g. "08:00-12:00 and 16:00-18:00" (with lunch break)
    โ†’ e.g. "09:00-19:00" (continuous hours)
  • Closing Days:
    days of the week when agency is closed
    โ†’ e.g. "Saturday, Sunday and holidays"
    โ†’ e.g. "Sunday" (if open Saturday)
๐Ÿค– How the assistant uses this data
When a customer requests a visit, the assistant:
  1. Verifies requested day is NOT among "Closing Days"
  2. Checks requested time falls within "Opening Hours"
  3. If request is outside hours, automatically proposes valid alternatives
  4. Includes agency name in booking confirmation

Example: Customer requests visit Sunday 10:00. If Sunday is closing day, assistant will respond: "Casa Conveniente Milan agency is closed Sunday. I can propose Monday morning from 09:00 to 12:00 or afternoon from 16:00 to 18:00. Which do you prefer?"
โš ๏ธ Opening hours format
Use format HH:MM-HH:MM with "and" to separate slots:

โœ… CORRECT:
  • 08:00-12:00 and 16:00-18:00 (morning and afternoon)
  • 09:00-19:00 (continuous hours)
  • 10:00-13:00 and 15:00-20:00 (two customized slots)

โŒ WRONG:
  • 8-12 and 16-18 (missing minutes and zeros)
  • 08:00-12:00, 16:00-18:00 (use "and" not comma)
  • morning and afternoon (not interpretable)
5

Instruct the assistant for workflows

Configure the assistant prompt to correctly use CSV Package tools in common conversation flows.

๐Ÿ“ Recommended workflows to insert in prompt
1. Property search:
"When customer searches for a property, collect: city/municipality, preferred area, type (studio/two-room/three-room/etc), maximum budget. Then use search_csv_immobiliare filtering by these criteria. Present found results with: address, price, main characteristics (sqm, floor, bathrooms)."

2. Visit booking:
"After finding interesting properties, ask customer which they prefer to visit. Propose dates and times respecting agency opening hours. Collect: full name, email, phone. Then use book_appointment to confirm booking. Always specify exact property address to visit."

3. Outside hours management:
"If customer requests visit on closing days/hours, politely explain agency is closed and propose first 3 available alternatives within opening hours. Never book outside configured hours."

4. Property details:
"If customer asks specific details about a property (energy class, condominium expenses, construction year), search in CSV and provide available information. If data not present in CSV, be honest and say 'this information is not available in the system, I can have you speak with an agent'."
โœ… System test
Make a test call to your assistant and try this flow:
  1. Ask: "I'm looking for a three-room in Milan Porta Romana area, max budget 400 thousand euros"
  2. The assistant should invoke search_csv_immobiliare and show you results
  3. Choose a property and ask: "I'd like to visit this one, are you available tomorrow at 3?"
  4. The assistant verifies hours and uses book_appointment to confirm

If works, system is correctly configured! ๐ŸŽ‰


Scenario 1: three-room search and booking

Conversation:
Customer: "Good morning, I'm looking for a three-room in Milan center area, maximum budget 500 thousand euros."

Assistant: [invokes search_csv_immobiliare(comune="Milan", zona="Center", tipo="three-room", prezzo_max=500000)]

Assistant: "I found 3 three-rooms in Center area Milan within your budget:
1. Via Dante 15 - 450,000โ‚ฌ - 85sqm, floor 3/5, 2 bathrooms, balcony
2. Corso Garibaldi 42 - 480,000โ‚ฌ - 90sqm, floor 2/4, 1 bathroom, terrace
3. Via Manzoni 8 - 495,000โ‚ฌ - 95sqm, floor 1/3, 2 bathrooms, parking

Which would you like to explore further?"


Customer: "The first one seems interesting, can I see it?"

Assistant: "Certainly! Casa Conveniente Milan agency is open from 08:00 to 12:00 and from 16:00 to 18:00, Monday to Friday. When would you prefer to come?"

Customer: "Tomorrow at 17:00 okay?"

Assistant: "Perfect! To confirm visit to Via Dante 15 tomorrow at 17:00, I need: full name, email and phone number."

Customer: "Mario Rossi, mario.rossi@email.com, 333-1234567"

Assistant: [invokes book_appointment(property_id="apt_dante15", date="2025-01-16T17:00", user_name="Mario Rossi", user_contact="mario.rossi@email.com")]

Assistant: "โœ… Visit confirmed! Tomorrow 16/01/2025 at 17:00 at Via Dante 15, Milan. I sent you a confirmation email with all details. See you tomorrow!"

Scenario 2: outside hours request management

Conversation:
Customer: "I saw a two-room that interests me, are you available Sunday morning to see it?"

Assistant: "I'm sorry but Casa Conveniente Milan agency is closed Saturday, Sunday and holidays. I can propose these alternative times:
โ€ข Monday 13/01 at 09:00, 10:00, 11:00 (morning)
โ€ข Monday 13/01 at 16:00, 17:00 (afternoon)
โ€ข Tuesday 14/01 at 09:00, 10:00, 11:00 (morning)

Which do you prefer?"


Customer: "Okay, Monday at 10 then."

Assistant: "Perfect! To confirm visit Monday 13/01 at 10:00, could you give me full name, email and phone please?"

[Proceeds with book_appointment normally]

๐ŸŽฏ QUICK SUMMARY - CSV Package Real Estate
  1. Prepare CSV โ†’ required columns: Comune, Zona, Tipo_Immobile, Prezzo
  2. Upload file โ†’ "UPLOAD CSV" button in configuration panel
  3. Choose booking method โ†’ SMTP Email or Google Calendar (Create if free recommended)
  4. Configure agency โ†’ name, city, opening hours, closing days
  5. Instruct assistant โ†’ search and booking workflows in prompt

โšก REMEMBER: system is standalone - to update listings you need to reupload CSV manually. No automatic synchronization with real estate portals.

โ“ Frequently Asked Questions

Answers to the most common questions about CSV Package Real Estate

CSV must contain at least: Comune, Zona, Tipo_Immobile (or Tipologia), Prezzo. Recommended columns: Indirizzo, CAP, Locali, Superficie, Bagni, Piano, Totale_piani, Balconi, Camere_da_letto, Classe_energetica, Box, Ascensore, Anno_di_costruzione, Tipo_di_vendita, Data_di_consegna, Spese_condominiali. Headers must exactly match these names.

The plugin works in standalone mode based on uploaded CSV file. To update prices, availability or add new properties, you need to upload a new updated CSV file via "UPLOAD CSV" button. The system will replace previous file with the new one. There's no automatic synchronization with external portals.

SMTP Email sends a booking confirmation email to customer and agency when a visit is booked. Google Calendar automatically creates an event in agency's Google Calendar with visit details. You can choose "Always create" (book without checking calendar) or "Create if free" (verifies availability first).

No, if defined in prompt. The assistant always verifies "Opening Hours" and "Closing Days" configured in "Create/Modify Real Estate Assistant" section. If customer requests appointment in unavailable hours (e.g. Sunday if closed), the assistant will automatically propose alternatives within valid hours.

The assistant uses search_csv_immobiliare tool that filters uploaded CSV based on parameters requested by customer: Municipality (e.g. "Milan"), Area (e.g. "Center"), Type (e.g. "three-room", "two-room"), Price range. The tool compares exact values for Municipality/Area and looks for partial matches for Type. Returns all properties matching criteria.

No. CSV Package Real Estate is a standalone local system. You need to manually export data from portals in CSV format and upload them to the system. There's no direct API integration with external real estate portals. For updates, re-export CSV from portal and reupload it.

No. The plugin works exclusively on the CSV file you uploaded. If a property is sold or price changes, you need to manually update the CSV and perform a new upload. There's no real-time synchronization with external databases or real estate CRMs.

There's no strict technical limit, but for optimal performance it's recommended to keep CSV under 10,000 listings. Too large files can slow down searches. If you have many listings, consider uploading only active/available ones and segment by city if managing multiple geographic areas.

No, CSV Package plugin supports ONE single agency per AI4CALL assistant. If you manage multiple agencies, you need to create separate AI4CALL assistants, each with its own uploaded CSV file and configuration (agency name, hours, city). Each assistant will work independently.

When customer books a visit, the assistant invokes book_appointment tool which uses your SMTP configuration to send an email to customer with: visit date/time, property address, agency contacts. Simultaneously sends a copy to agency email configured in system as internal notification.

The system will attempt to load CSV but might give errors if: required columns missing, wrong separators (must use comma or semicolon), unmanaged special characters. In case of error, you'll receive a specific message. Use CSV template provided by AI4CALL to avoid format issues.

No. The assistant can ONLY read data from uploaded CSV. Cannot modify prices, availability or property characteristics. Any data modification requires updating CSV file and reuploading it to system via configuration interface.

If using "Google Calendar - Create if free" method, the system verifies calendar availability before confirming. If using "SMTP Email - Send email" or "Always create", there's NO automatic double appointment control - management is manual. To avoid overlaps, use Calendar integration with availability verification.

Main search fields are fixed: Municipality, Area, Type (property type), Price. However you can customize assistant prompt to make it collect other criteria (e.g. "with garden", "top floor") and then manually filter base search results before proposing them to customer.

In "Opening Hours" field use format: "HH:MM-HH:MM and HH:MM-HH:MM". Example for morning and afternoon: "08:00-12:00 and 16:00-18:00". The assistant will automatically interpret the two separate time slots and propose appointments only in these ranges. For continuous hours use single slot: "09:00-18:00".

Yes, the Tipo_Immobile (or Tipologia) field in CSV has no limitations. You can insert "shop", "office", "warehouse", "land" besides "studio", "two-room", etc. The assistant will search exactly what customer requests. Ensure to use consistent names in CSV for same typology.

Yes. The system doesn't distinguish between sale and rental - works only on CSV data. You can upload a CSV with rental properties specifying "Prezzo" as monthly rent and using Tipo_di_vendita column with value "rental". The assistant will handle searches and bookings the same way.

No, CSV file contains only textual data (text, numbers). For images, you can include a column with URL/links to photos hosted online. The assistant can provide these links to customer during conversation, but cannot directly show images during phone call.


Some of the ai4call users