Dashboard
Recent leads
Upcoming jobs
Due today
All sequences
| Client | Project | Completed | Progress | Next due | Status |
|---|
| Name | Phone | Address | Jobs | Notes |
|---|
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.Employee hourly rates
Rate changes apply to new timesheet entries and newly opened job modals.
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 | Job | Hours | Rate | Cost |
|---|
| Source | Leads | Won | Conv. rate | Revenue won | Ad spend | Cost per lead | ROAS |
|---|
Logged ad spend
| Month | Source | Amount | Notes |
|---|