Skip to content

erp.io CRM

One client record. Every call, clean and invoice on it.

In most cleaning businesses the client lives in five places: the scheduler, the texting app, the phone log, QuickBooks and somebody's head. The erp.io CRM is the one record every module reads from and writes to.

app.erp.io/service/clients/alvarez
Client · Dana Alvarez
DA

Dana Alvarez

Client since 2023 · Referral

BiweeklyAutopayVIP

Lifetime value$6,840

Next cleanThu 10:30

Balance$0.00

418 Cedar Ln

Entry
Lockbox by side door · 0918
Alarm
Code on file · crew leads only
Pets
Biscuit (friendly), keep gate shut
Notes
No bleach in primary bath
1

The whole relationship in one view

Properties, access notes, calls, texts, quotes, visits, invoices, reviews and referrals on one timeline.

2

A pipeline for new business

Requests, walkthroughs and quotes move across a board so nothing sits unanswered over the weekend.

3

Win back quiet clients

Spot clients who have not booked in a while and bring them back with a targeted text or email.

Why a cleaning company needs a real CRM

Field-service apps treat clients as addresses with a phone number attached. That works until you want to know which clients came from Google versus referrals, who has not booked since spring, or what a client said on the phone last month about her dog.

The erp.io CRM is the same client record your schedule, quotes, invoices and field app already use. It just shows you the whole relationship: every property, every conversation and every dollar. Nothing syncs overnight, because there's nothing to sync.

  • Contacts and companies, with multiple properties per client
  • Billing vs service addresses, access notes, gate and alarm codes, pets, parking
  • Tags, lead source and custom fields that carry through to quotes, jobs and invoices
  • Duplicate detection and merge when a client books twice under two emails
  • Full activity timeline: calls, texts, emails, visits, payments, reviews

A sales pipeline built around requests and quotes

New business flows in from request forms, online booking, Phony calls and outbound prospecting. The pipeline shows every open opportunity as a card: new request, walkthrough booked, quote sent, quote approved, won or lost.

Drag cards between stages or let automations move them. When a quote goes unanswered for three days, a follow-up goes out. When it's approved, the job is created and the card closes as won. Owners see which lead sources actually turn into recurring revenue, not just which ones bring in form fills.

app.erp.io/pm/boards/operations
Operations board

To do

Ops

Order new van wrap

OnOct 12
Growth

Price list refresh

PlOct 15

Doing

Ops

Open Rogers location

OROct 12
Growth

Spanish checklist set

ScOct 15

Done

Ops

Q3 insurance renewal

QiOct 12

Two-way texting and email from the client record

Clients text. They text about lockouts, about adding the oven this week, about moving Thursday. With the erp.io CRM, those texts land in a shared team inbox tied to the client, so whoever is on the desk sees the whole history before they reply.

Email works the same way. Replies to quote and invoice emails come back to the record. AI can rewrite a message to sound friendlier or shorter before you hit send.

  • Shared team inbox for SMS and email, threaded per client
  • Assign conversations and leave internal notes
  • Saved replies for common questions like pricing, pets and supplies
  • AI rewrite for tone and length
9:41

Text message · Today

Hi Dana, reminder: Sparkle Home cleans tomorrow, 10:30–11:00 arrival. Reply C to confirm or R to reschedule.
C
Thanks. You're confirmed for Thu 10:30.

Thu 10:12

Priya and Marco are on their way. ETA 10:34. Track them here: maid.co/t/8fk2

Thu 1:05

All done. How did we do? ★★★★★

Automations that run the follow-up for you

Workflow automations follow a trigger, condition and action pattern. A new request from the website with a move-out tag can notify your move-out lead and send the client a link to book a walkthrough. A recurring client who skips two visits can get a check-in text. A lost quote can drop into a re-engagement list for 60 days later.

Re-engagement is where a CRM earns its keep for maid services. Clients go quiet for ordinary reasons: a tight month, a move, a relative who cleaned for a while. A timely, personal note often brings them back.

A day with maid.co

The client who went quiet in March

Say the Nguyens were biweekly for two years, then paused in March when money was tight. In a scheduling app they simply disappear from the calendar. Nobody notices.

In the CRM, they fall into a saved view: recurring clients with no visit in 60 days. A workflow sends a short text from your number in June, mentioning their usual cleaner by name and offering a spot next week. Mrs. Nguyen replies from her phone. The text lands in the team inbox on her record, and your office manager sees the notes about the cat and the side-door key before answering.

Ten minutes later the biweekly series is back on the schedule with the same cleaner, and the pipeline shows a won re-engagement with its original lead source still attached.

FAQ

Questions, answered

Is this a separate CRM I have to sync?

No. The erp.io CRM and the maid.co service module share one client record. When your dispatcher updates an access note or your cleaner adds a pet warning, it is on the CRM contact immediately. When Phony takes a call, the transcript lands in the same place. There is no nightly sync and no mismatched client list.

Can I track where my clients come from?

Yes. Lead source is captured from request forms, online booking, Phony calls and outbound, including UTM tags from your website. Because invoices sit on the same record, reports can show revenue by lead source, not just leads by source. That tells you whether a marketing channel brings in one-time cleans or long-term recurring clients.

How do you handle commercial clients with many locations?

Create a company with multiple contacts and multiple properties. A property manager can have twenty buildings, each with its own access notes and service schedule, while invoices go to one billing contact. Custom fields hold things like PO numbers or building IDs and carry through to quotes, jobs and invoices.

Can I import my client list from Jobber?

Yes. The Jobber importer brings over clients, properties, jobs, visits, quotes, invoices, and completed checklists with photos and signatures, and reconciles the counts against Jobber so you can see nothing was missed. Other systems can come in by CSV. Duplicates are flagged for merge rather than silently doubled.

Who on my team can see what?

Permissions follow the same roles as the rest of maid.co. Field crew can see what they need for their visits, like access notes and pets, without seeing pricing or payment history. Managers and admins see everything. Named capabilities such as 'see costs' or 'edit pricing' let you fine-tune access per person.

Keep exploring

Run your whole cleaning company from one place.

Try every module free for 30 days. No card, no setup fee, and we'll help you bring your clients over.