Gabriel CRM

AI-powered CRM assistant for Complete Home Painting — built on OpenClaw + Claude

2
Authorized users
5
Automated flows
6
Pipeline stages
24/7
Always on
CRM management
Create leads, update pipeline stages, add notes, set follow-up dates, log costs, and set job values — all via plain English in Telegram.
Email automation
Sends branded emails from jacob@ or john@ based on who issues the command. Templates for every stage: intro, bid confirmation, follow-ups, won, lost.
Calendar control
Schedules and cancels appointments on Jacob's or John's Google Calendar. Sends bid confirmation emails automatically after scheduling.
Pipeline reporting
Real-time pipeline queries, margin reports, close rate, cold leads, follow-ups due today, and revenue totals — all pulled live from Notion.
Voice intake
Send a voice message to Telegram and Gabriel transcribes it via Whisper, confirms what it heard, and executes the command.
Assessment drafts
When a homeowner completes the website quiz, Gabriel auto-generates a personalized email draft using blog content and CHP knowledge.
input
Telegram
Jacob or John
brain
Gabriel
Claude Haiku
database
Notion
Lead records
comms
Gmail
jacob@ / john@
scheduling
Calendar
Google Cal

Everything Gabriel understands out of the box. All commands are issued in plain English via Telegram — no special syntax required. If Gabriel needs clarification, he will ask before acting.

CRM
Create a lead
"New lead: Sarah Jones, 205-555-0100, exterior painting, Google"
CRM
Update pipeline stage
"Move Sarah Jones to Bid Scheduled" — triggers auto-actions per stage
CRM
Add a note
"Add note to Sarah Jones: prefers afternoons, has a dog"
CRM
Set job value
"Set value for Sarah Jones to $4,200"
CRM
Log a cost
"Log cost for Sarah Jones: $380 materials"
CRM
Set follow-up date
"Set follow-up for Sarah Jones to next Friday"
Email
Send intro email
Sends from whoever issued the command — jacob@ or john@
Email
Send follow-up
Cycles through 3 follow-up templates, logs each attempt
Email
CONFIRM:[email]
Sends pending estimate email from john@ for form submissions
Calendar
Schedule appointment
"Schedule Sarah Jones for Tuesday at 2pm" — creates event + sends confirmation
Calendar
View calendar
"What's on my calendar this week?"
Calendar
Cancel appointment
"Cancel Sarah Jones's appointment" — deletes event, logs activity
Calendar
Add calendar event
"Add 'touch base with Maxine' to my calendar Monday 9-9:15am"
Report
Show my pipeline
Live summary grouped by stage with total values
Report
Margin report
By lead, period (30/60/90 days), job type, or source
Report
Cold leads / due today / bids scheduled
Filtered pipeline views pulled live from Notion

Gabriel manages your full sales pipeline in real time. Every stage change triggers automatic follow-up actions so nothing falls through the cracks — from the moment a lead comes in to the day a job is won or closed.

Lead
Bid scheduled
Proposal
Proposal sent
Won
Lost
Bid scheduled
Prompts for date/time → schedules calendar event → sends bid confirmation email
Proposal sent
Sets follow-up date +5 days — no email sent automatically
Won
Asks "Should I send the Job Won email?" — sends next steps email if confirmed
Lost
Asks "Should I send the closing email?" — sends keep the door open email if confirmed
day 0
Proposal sent
Follow-up +5 days
attempt 1
Checking in
Soft touch
attempt 2
Circling back
No pressure
attempt 3
Last follow-up
Final touch
no response
Mark lost?
Gabriel asks
Proposal status
Lead · Bid Scheduled · Proposal · Proposal Sent · Won · Lost
Project status
Not Started · In Progress · Done
Job type
Interior · Exterior · Cabinets · Pressure Washing · Rotten Wood Repair
Source
Google · Referral · Social Media · Partner · Repeat Customer

Gabriel runs in the background so you do not have to. From morning briefings to follow-up reminders to form submissions, everything routes to your group chat automatically — giving you full visibility without adding to your workload.

Daily 9am
Morning briefing
Follow-ups due, cold leads, pipeline summary → group chat
Daily 10am
Follow-up reminder
Leads with follow-up date = today → group chat
Every 5 min
Form watcher
Checks john@ for new Squarespace estimate form submissions
Daily 9am
Follow-up checker
3-day and 7-day follow-up drafts → group chat for approval
Webhook
Assessment quiz submission
Homeowner completes quiz → Gabriel generates personalized email draft using blog knowledge → group chat
Webhook
Estimate form submission
Form submitted → Notion lead created → calendar checked → draft sent to group chat for CONFIRM approval
trigger
Quiz submitted
completehomepainting.com
enrich
Blog knowledge
CHP knowledge base
draft
Claude writes
Personalized email
review
Group chat
Jacob approves
send
Gmail
jacob@ sends
trigger
Form submitted
Squarespace
create
Notion lead
Auto-created
check
Calendar
Next available slot
draft
Group chat
CONFIRM to send
send
john@ sends
CC jacob@

A full picture of the technology stack powering Gabriel — every service, integration, and file that keeps the system running. Hosted on a dedicated VPS with SSL, Docker, and automatic certificate renewal.

Core services

Gabriel (OpenClaw)Port 60436
Webhook serverPort 5001
Assessment webhookPort 5050
Send listenersystemd
Nginx / SSLPort 443

Cron jobs

Daily briefing9:00am CT
Follow-up reminder10:00am CT
Form watcherEvery 5 min
Follow-up checker9:00am CT

Integrations

NotionCRM database
Gmail (jacob@)Send + read
Gmail (john@)Send + read
Google CalendarBoth accounts
TelegramGroup + DM
Whisper (OpenAI)Voice transcription

Workspace files

HEARTBEAT.md9,015 chars
USER.mdJacob + John profiles
TOOLS.mdAPI reference
MEMORY.mdField values + rules
SOUL.mdPersonality + values
Host
Hostinger VPS · Ubuntu 24.04
IP: 187.77.208.87
Container
Docker · openclaw-0rcs
/docker/openclaw-0rcs/
Model
Claude Haiku 4.5
Anthropic API · Tier 2
SSL
webhook.completehomepainting.com
Nginx reverse proxy

Once a job is won, Gabriel tracks it through completion. Log costs as they happen, monitor margin in real time, and keep a full timestamped activity log on every job — so you always know exactly where each project stands and what it is worth.

stage
Won
Project: Not Started
stage
In Progress
Project: In Progress
stage
Complete
Project: Done
Track
Set job value
"Set value for Sarah Jones to $4,200" — records the contract amount
Track
Log a cost
"Log cost for Sarah Jones: $380 materials" — adds to running cost total
Track
Update project status
"Move Sarah Jones to In Progress" or "Mark Sarah Jones as Done"
Track
Add a note
"Add note to Sarah Jones: started demo today, found additional rot on east wall"
Margin $
Value minus total logged costs. Gabriel calculates this on demand — never estimates.
Margin %
(Value − Cost) ÷ Value × 100. Reported per job or across a time period.
Cost logging
Each cost entry is additive — Gabriel appends to the running total and logs every entry with a description in the Activity Log.
Activity log
Every action Gabriel takes on a lead is timestamped and appended — stage changes, emails sent, costs logged, notes added.
Pipeline board
Kanban grouped by Proposal Status. Won and Lost columns hidden. Active leads only.
Active jobs table
Filtered to Won, grouped by Project Status. Shows all jobs currently in flight.
Archive table
Filtered to Won + Done, sorted by date added descending. Full job history.

Ask Gabriel anything about your business and get a live answer pulled directly from Notion. No spreadsheets, no manual reporting — just ask. Every number is real-time and every report is formatted for clean reading in Telegram.

Pipeline
Full pipeline summary
"Show my pipeline" — groups all active leads by stage with total value per stage
Pipeline
Bids scheduled
"Show bids scheduled" — all leads at Bid Scheduled stage
Pipeline
Follow-ups due today
"What follow-ups are due today?" — leads with Follow Up date = today
Pipeline
Cold leads
"Show cold leads" — Follow Up blank or more than 7 days ago
Pipeline
High value leads
"Show top leads by value" — top 5 sorted by Value descending
Pipeline
Close rate
"What is my close rate?" — Won ÷ (Won + Lost)
Margin
Individual job margin
"What is the margin on Sarah Jones?" — Value minus Cost, with margin %
Margin
Period margin report
"Show margin for the last 30 days" — 30, 60, or 90 day periods supported
Margin
Margin by job type
"Show margin by job type" — grouped by Interior, Exterior, Cabinets, etc.
Margin
Margin by source
"Show margin by source" — grouped by Google, Referral, Social Media, etc.
Revenue
Total revenue
"Show total revenue" — sum of Value for all Won leads
Revenue
Revenue by period
"Show revenue for the last 90 days" — filtered by date added
Always live
Every report queries Notion in real time — Gabriel never guesses or uses cached data.
Bullet points only
All pipeline and margin output uses bullet points. No tables. Designed for clean reading in Telegram.
Won vs pipeline
Margin reports clearly split actual revenue (Won) from estimated pipeline value and label each separately.
Daily briefing
Every morning at 9am Gabriel sends a pipeline snapshot to the group chat — follow-ups due, cold leads, and stage totals.