Click along your yard. Add sections for different fence types.
3
🪵 Choose Fence & Height
Fence type per section, height, gates — under a minute.
4
💰 Get an Instant Price
Your ballpark estimate appears immediately.
Draw Your Fence Sections
Click to trace each fence line. No loop needed — start and stop at the house.
No satellite view? Draw your plan manually — interior railings, pool fences, custom layouts.
← add gates!
Gate
Widthin
Positionft from start
= 2 ftDouble-click to end a segment
✏ Click to place points📐 Click a measurement to edit it✥ Move mode: drag to reposition
0 ft
Click to place fence points
Start & stop at the house — no loop
Switch sections for different fence types
🚪
Did you add your gate(s)?
Use the 🚪 Gate tool above to place gates on your fence line.
Fence Details
Choose a fence type for each section, then set height, gates, and extras.
STEP 3 OF 4 — FENCE DETAILS
🚪 Don't forget your gate(s)!
Most fences need at least one gate for access. You haven't added any yet — would you like to add one?
Gates
How many gates?
Single gates (person-width)
0
Double gates (vehicle-width)
0
Terrain & Extras
Any site conditions?
Your Info
Where should we send your quote?
📞 Please add your phone number — we'll use it to reach you quickly.
Please fill in your name, email and check the privacy box.
☝️ Fill in your name, email, and agree to terms above
Your Estimate
Ballpark
Based on your selections — free, no obligation.
Price Breakdown
REF-XXXX
Estimated Total
$0 – $0
CAD • Supply & Install • Tax not included
Next Steps
Where are you in your project?
📞 Please add your phone number — we'll use it to reach you quickly.
Next Steps
A free consultation lets us give you an exact price.
🔧 Self-Install Option
🔧
Interested in installing yourself?
We can generate a complete material list so you can source and install the fence yourself — and save on labour.
What would you like to do?
✅
You're on our list!
Our team will reach out shortly.
Why Choose Us
ADMIN
Fence Quote Dashboard
Incorrect password. Try again.
Admin Dashboard
⚙ Settings
● Not connected
🏢 Company
👥 CRM
📈 Analytics
⚡ Sequences
💰 Pricing
📐 Heights & Extras
🗺 Region
🔒 Security
📅 Planning
Live Preview:
Fence Quote
Instant Price Estimator
Company Identity
Company Name (EN)
Company Name (FR)
Tagline (EN)
Tagline (FR)
Logo Image (JPG / PNG / SVG — stored locally)
FQ
☁️ Logo uploads to Supabase Storage automatically — visible on all devices. First time only: create a public bucket named logos in your Supabase project.
Logo Initials (shown when no image)
Brand Color
Contact & Booking
Phone
Email (for sending quotes)
Quotes will be sent from/to this address via mailto link
Booking Link (URL)
Default Follow-up Sequence
Applied automatically to every new lead
Website URL
Sales Notification Email
Hot leads alert sent here when customer clicks “I'm interested”
Business Mailing Address *
Required by CASL — included in all automated emails
Email System (Brevo)
Default: Email Me This Quote opens your mail app (no server needed). For automatic sending: create free account at brevo.com, get API key, verify your domain, fill below.
Gmail/Hotmail cannot be From address. Need a business email verified in Brevo.
Brevo API Key (optional)
From Email (verified domain only)
Why Choose Us
Default Language
The language visitors see when they first land on your quote form. They can always switch manually.
Default App Language
Team Members / Sales Reps
These names appear in the CRM for assigning leads.
Win & Loss Reasons
shown when closing a deal
🏆 Win Reasons
❌ Loss Reasons
Disclaimer Text
Disclaimer (EN)
Disclaimer (FR)
Fence Types & Pricing
🔧 Self-Install / DIY Feature
When ON: "I need more time" first shows the customer a self-install material list. They then choose to request an official quote or defer.
When OFF: "I need more time" goes straight to the normal follow-up.
DIY Prompt Title (EN)
DIY Prompt Title (FR)
Labour Savings Note (EN)
Labour Savings Note (FR)
Material Cost Multiplier per Fence Type
Enter material prices per fence type for the self-install quote. $/lin. ft: material cost per linear foot of fence. Single gate $: material cost per single gate. Double gate $: material cost per double gate. Hardware $: flat hardware kit per project.
Height Options
Each height has a label (shown to customer) and a multiplier applied to the base price. 1.00 = no change.
Global Extras / Surcharges
These appear as checkboxes on the Details page for every job. Type: percent adds % to total, flat adds a fixed $ amount, perft multiplies by total footage.
Service Region
Region Display Name
Currency Symbol
Map Default City
Google Maps API Key
Demo Addresses
Date ↕
Contact ↕
Quote
Value ↕
Status
Assignee
Next Follow-up
Actions
📋
No leads yet
Leads appear here automatically when customers complete the quote form.
⏰ Follow-up Queue
✅
All caught up!
No follow-ups due today or overdue.
Lead Details
Add Lead Manually
Name
Email
Phone
Address
Quote Low ($)
Quote High ($)
Notes
📈 Analytics & Reports
Monthly Revenue
Won deals — lower bound
Conversion Funnel
Lead Source by Fence Type
Team Performance
Rep
Leads
Quoted
Won
Close %
Revenue
Win Reasons
Loss Reasons
⚡ Sequences & Templates
How sequences work: Assign a sequence to any lead from its detail view. Follow-ups are automatically scheduled at your defined intervals, each using an email template as its message.
No sequences yet. Click + New Sequence to get started.
Why you need this: Settings are saved in this browser only by default. Connect Supabase once and every device instantly sees your company name, prices, and colors.
One-time setup (5 min, free forever):
Go to supabase.com and create a new project (free)
Wait ~2 min, then click SQL Editor in the sidebar
Paste and run the SQL shown below, then go to Settings > API and copy your Project URL and anon key
CREATE TABLE app_config (id TEXT PRIMARY KEY DEFAULT 'main', data JSONB NOT NULL, updated_at TIMESTAMPTZ DEFAULT now());
INSERT INTO app_config (id, data) VALUES ('main', '{}');
ALTER TABLE app_config ENABLE ROW LEVEL SECURITY;
CREATE POLICY "read" ON app_config FOR SELECT USING (true);
CREATE POLICY "write" ON app_config FOR UPDATE USING (true);
CREATE TABLE crm_leads (id TEXT PRIMARY KEY, data JSONB NOT NULL, updated_at TIMESTAMPTZ DEFAULT now());
ALTER TABLE crm_leads ENABLE ROW LEVEL SECURITY;
CREATE POLICY "read" ON crm_leads FOR SELECT USING (true);
CREATE POLICY "insert" ON crm_leads FOR INSERT WITH CHECK (true);
CREATE POLICY "update" ON crm_leads FOR UPDATE USING (true);
CREATE POLICY "delete" ON crm_leads FOR DELETE USING (true);
-- Planning data (teams, customers, weekly plans, AI learning) — shared across all devices
CREATE TABLE planning_data (id TEXT PRIMARY KEY, data JSONB NOT NULL, updated_at TIMESTAMPTZ DEFAULT now());
INSERT INTO planning_data (id, data) VALUES ('planning_main', '{}');
ALTER TABLE planning_data ENABLE ROW LEVEL SECURITY;
CREATE POLICY "read" ON planning_data FOR SELECT USING (true);
CREATE POLICY "insert" ON planning_data FOR INSERT WITH CHECK (true);
CREATE POLICY "update" ON planning_data FOR UPDATE USING (true);
Supabase Project URL
Supabase > Settings > API > Project URL
Supabase Anon Key
Supabase > Settings > API > anon public key
Change Admin Password
Current Password
New Password
Confirm New Password
Reset All Settings
Resets all settings to defaults. Password not affected.
● Unsaved changes
🏆 Push to Planning
Customer marked as won. Add to installation planning?
Pick any date in the desired month — we'll use the month automatically.
Pick any date in the desired week — we'll use the week automatically.