Dashboard
Recent leads
Upcoming jobs
Due today
All sequences
| Client | Project | Completed | Progress | Next due | Status |
|---|
| Name | Phone | Address | Jobs | Notes |
|---|
Cut Optimizer
Minimize waste for wardrobe tube and cap & rail
Settings
Available Stock
Length (inches)Qty
Required Cuts
RoomLength (in)QtyNote
Cut Plan
Enter stock and required cuts, then click Calculate.
Inventory
Stock levels, pricing and movement history
Stock In
Employees
Set hourly rates for each team member
Settings
App settings and account management
☁ Cloud sync (Supabase)
Live
Your data is stored in Supabase and syncs in real-time across all devices. No configuration needed — login handles everything.
Power Automate webhook URL
Paste your HTTP trigger URL from Power Automate. It should start with
https://prod- or https://...logic.azure.com. Once set, a "Send to Outlook" button appears on every job, and follow-up reminders are created automatically when a lead reaches Quote Sent.
Sends a dummy event — check Outlook in ~30s to confirm it's working
⚠ Common reasons reminders don't arrive:
1. The flow is turned off in Power Automate — open it and click Turn on
2. Wrong URL type — must be the HTTP trigger URL (shown in the trigger step after saving), not the flow's browser URL
3. The Create event step has an error — open the flow's run history to see if it's failing
4. Calendar permissions — the flow must be connected to your Outlook account, not a shared one
1. The flow is turned off in Power Automate — open it and click Turn on
2. Wrong URL type — must be the HTTP trigger URL (shown in the trigger step after saving), not the flow's browser URL
3. The Create event step has an error — open the flow's run history to see if it's failing
4. Calendar permissions — the flow must be connected to your Outlook account, not a shared one
How to set up Power Automate (5 steps)
1Go to make.powerautomate.com and sign in with your Microsoft account.
2Click Create → Instant cloud flow → name it "CRM to Outlook" → choose When an HTTP request is received as the trigger → click Create.
3Click the trigger step → Use sample payload to generate schema → paste this JSON and click Done:
{"customer":"Jane Smith","type":"Walk-in install","date":"2026-04-10","time":"09:00","duration":"4","value":"3200","notes":"White finish"}4Click + New step → search Outlook → choose Create event (V4). Set:
• Subject:
• Start: use Expression →
• End:
• Body:
• Subject:
@{triggerBody()?['type']} — @{triggerBody()?['customer']}• Start: use Expression →
addHours(concat(triggerBody()?['date'],'T',triggerBody()?['time'],':00'), 0)• End:
addHours(concat(triggerBody()?['date'],'T',triggerBody()?['time'],':00'), int(triggerBody()?['duration']))• Body:
@{triggerBody()?['notes']}5Click Save. Then click back on the "When an HTTP request is received" trigger step — the HTTP POST URL will now be shown. Copy that URL (starts with
https://prod-) and paste it above. Click Send test event to Outlook to confirm it's working.Follow-Up Sequence Settings
These values are inserted into your follow-up email templates.
Acuity → CRM (inbound leads)
Paste a published Google Sheet CSV URL or Acuity JSON feed URL. The CRM will check for new bookings and import them as leads — duplicates are skipped automatically.
| Customer | Type | Date | Time | Quote | Panel $ | HW $ | Labour $ | Total Cost | Margin | Status |
|---|
| Employee | Date | Total hrs | Job | Job hrs |
|---|
| Source | Leads | Won | Conv. rate | Revenue won | Ad spend | Cost per lead | ROAS |
|---|
Logged ad spend
| Month | Source | Amount | Notes |
|---|