Estimate construction costs from text, photos and PDFs with Telegram, GPT‑4/Gemini and DDC CWICR

A full-featured Telegram bot that accepts text descriptions, photos, or PDF floor plans and returns detailed cost estimates with work breakdown. Powered by GPT-4 Vision / Gemini 2.0, vector search, and the open-source DDC CWICR database (55,000+ construction rates).

Who's it for

Contractors & Estimators** who need estimates from any input format Construction managers** evaluating scope from site photos or drawings Architects** getting quick cost feedback on floor plans Real estate professionals** assessing renovation costs Project managers** doing rapid feasibility checks via mobile

What it does

Receives text / photo / PDF via Telegram Analyzes input with AI (Gemini 2.0 Flash or GPT-4 Vision) Extracts work items with quantities and units Searches DDC CWICR vector database for matching rates Generates professional HTML report with full cost breakdown Exports results as Excel or PDF

Supports 9 languages: 🇩🇪 DE · 🇬🇧 EN · 🇷🇺 RU · 🇪🇸 ES · 🇫🇷 FR · 🇮🇹 IT · 🇵🇱 PL · 🇧🇷 PT · 🇺🇦 UK

How it works

┌─────────────────────────────────────────────────────────────────────┐ │ TELEGRAM INPUT │ │ 📝 Text Description │ 📷 Construction Photo │ 📄 PDF Floor Plan │ └─────────────────────────────────────────────────────────────────────┘ ↓ ┌─────────────────────────────────────────────────────────────────────┐ │ MAIN ROUTER │ │ Parse message → Detect content type → Route to handler (17 actions) │ └─────────────────────────────────────────────────────────────────────┘ ↓ ┌──────────────────────────┼──────────────────────────┐ ↓ ↓ ↓ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │ Text LLM │ │ Vision API │ │ Vision PDF │ │ Parse works │ │ Analyze photo │ │ Read floor plan│ │ from text │ │ GPT-4/Gemini │ │ Gemini 2.0 │ └─────────────────┘ └─────────────────┘ └─────────────────┘ └──────────────────────────┼──────────────────────────┘ ↓ ┌─────────────────────────────────────────────────────────────────────┐ │ CALCULATION LOOP │ │ For each work item: │ │ 1️⃣ Transform query → 2️⃣ Optimize search → 3️⃣ Get embedding │ │ 4️⃣ Qdrant search → 5️⃣ Score results → 6️⃣ AI rerank → 7️⃣ Calculate │ └─────────────────────────────────────────────────────────────────────┘ ↓ ┌─────────────────────────────────────────────────────────────────────┐ │ OUTPUT │ │ 📊 Telegram message │ 🌐 HTML Report │ 📑 Excel │ 📄 PDF │ └─────────────────────────────────────────────────────────────────────┘

Input Types

| Type | Description | AI Used | |------|-------------|---------| | 📝 Text | Work lists, specifications, notes | OpenAI GPT-4 | | 📷 Photo | Construction site photos (up to 4) | GPT-4 Vision / Gemini | | 📄 PDF | Floor plans, architectural drawings | Gemini 2.0 Flash |

Route Actions (17 total)

| # | Action | Description | |---|--------|-------------| | 0 | show_lang | Language selection menu | | 1 | ask_photo | Request photo upload | | 2 | lang_selected | Save language preference | | 3 | show_analyze | Photo analysis options | | 4 | analyze | Run AI vision analysis | | 5 | show_edit_menu | Edit work quantities | | 6 | works_updated | After quantity change | | 7 | ask_new_work | Add manual work item | | 8 | start_calc | Start cost calculation | | 9 | show_help | Display help message | | 10 | view_details | Show resource details | | 11 | export_excel | Generate CSV export | | 12 | export_pdf | Generate PDF export | | 13 | process_pdf | Analyze PDF floor plan | | 14 | analyze_text | Parse text description | | 15 | refine | Re-analyze with context | | 16 | fallback | Handle unknown input |

Prerequisites

| Component | Requirement | |-----------|-------------| | n8n | v1.30+ with Telegram Trigger | | Telegram Bot | Token from @BotFather | | OpenAI API | For embeddings + text parsing | | Gemini API | For Vision (photos/PDF) — or use GPT-4 Vision | | Qdrant | Vector DB with DDC CWICR collections | | DDC CWICR Data | github.com/datadrivenconstruction/DDC-CWICR |

Setup

  1. Configure 🔑 TOKEN Node { "bot_token": "YOUR_TELEGRAM_BOT_TOKEN", "AI_PROVIDER": "gemini", "GEMINI_API_KEY": "YOUR_GEMINI_KEY", "OPENAI_API_KEY": "YOUR_OPENAI_KEY", "QDRANT_URL": "http://localhost:6333", "QDRANT_API_KEY": "YOUR_QDRANT_KEY" }

  2. Vision Provider Selection AI_PROVIDER: "gemini" → Gemini 2.0 Flash (recommended for photos + PDF) AI_PROVIDER: "openai" → GPT-4 Vision (photos only)

  3. n8n Credentials Settings → Credentials → Add → Telegram API Enter bot token, save Select credential in Telegram Trigger node

  4. Qdrant Collections Load DDC CWICR embeddings for target languages (example for Russian): RU_STPETERSBURG_workitems_costs_resources_EMBEDDINGS_3072_DDC_CWICR

  5. Activate & Test Activate workflow Send /start to your bot Select language → send photo/text/PDF

Features

| Feature | Description | |---------|-------------| | 📷 Photo Analysis | GPT-4 Vision or Gemini 2.0 for site photos | | 📄 PDF Processing | Floor plan analysis with room extraction | | 📝 Text Parsing | Natural language work lists | | 🔍 Vector Search | Semantic matching via Qdrant + OpenAI embeddings | | 🤖 AI Reranking | LLM-based result scoring for accuracy | | ✏️ Inline Editing | Modify quantities via Telegram buttons | | 📊 HTML Report | Professional expandable report with KPIs | | 📑 Excel Export | CSV with full work breakdown | | 📄 PDF Export | HTML-based PDF document | | 🌍 9 Languages | Full UI + database localization | | 💾 Session State | Multi-turn conversation support | | 🔧 Refine Mode | Re-analyze with additional context |

Example Workflow

User: /start
Bot: Language selection menu (9 options)

User: Selects 🇷🇺 Russian
Bot: "Отправьте фото, PDF или текстовое описание работ"

User: Sends bathroom photo
Bot: "📷 Анализ фото... ⏳"

Bot: Shows detected works: 🏠 Ванная комната — 4.5 m²

Найдено 12 работ: Демонтаж плитки стен — 18 m² Демонтаж плитки пола — 4.5 m² Гидроизоляция пола — 4.5 m² Гидроизоляция стен — 8 m² Стяжка пола — 4.5 m² Укладка плитки стены — 18 m² Укладка плитки пол — 4.5 m² Установка унитаза — 1 шт Установка раковины — 1 шт Установка смесителя — 2 шт ...

[✏️ Редактировать] [📊 Рассчитать]

User: Taps 📊 Calculate
Bot: Shows progress per item, then final result:

✅ Смета готова — 12 позиций

💰 Итого: ₽ 89,450

Работа: ₽ 35,200 (39%) Материалы: ₽ 48,750 (55%) Механизмы: ₽ 5,500 (6%)

[📋 Детали] [↓ Excel] [↓ PDF] [↻ Заново]

HTML Report Features

KPI Cards:** Total cost, item count, labor days, cost breakdown % Expandable rows:** Click work item to show resources Resource tags:** Color-coded (Labor/Material/Machine) Scope of work:** Expandable detailed descriptions Quality indicators:** Match quality dots (high/medium/low) Responsive design:** Works on mobile and desktop Export buttons:** Expand/Collapse all

Notes & Tips

Photo tips:** Capture full room, include reference objects (doors, tiles) PDF support:** Works best with clear floor plans and room schedules Text input:** Supports lists, tables, free-form descriptions Rate accuracy:** Depends on DDC CWICR coverage for your region Session timeout:** User sessions persist across messages Extend:** Chain with CRM, project management, or notification tools

Categories

AI · Communication · Data Extraction · Document Ops

Tags

telegram-bot, construction, cost-estimation, gpt-4-vision, gemini, pdf-analysis, qdrant, vector-search, multilingual, html-report

Author

DataDrivenConstruction.io
https://DataDrivenConstruction.io
info@datadrivenconstruction.io

Consulting & Training

We help construction, engineering, and technology firms implement: AI-powered estimation systems (text, photo, PDF) Multi-channel bot integrations (Telegram, WhatsApp, Web) Vector database solutions for construction data Multilingual cost database deployment

Contact us to test with your data or adapt to your project requirements.

Resources

DDC CWICR Database:** GitHub Qdrant Documentation:** qdrant.tech/documentation Gemini API:** aistudio.google.com n8n Telegram Trigger:** docs.n8n.io

⭐ Star us on GitHub! github.com/datadrivenconstruction/DDC-CWICR

0
Downloads
16
Views
8.31
Quality Score
beginner
Complexity
Author:Artem Boiko(View Original →)
Created:2/13/2026
Updated:3/19/2026

🔒 Please log in to import templates to n8n and favorite templates

Workflow Visualization

Loading...

Preparing workflow renderer

Comments (0)

Login to post comments