"Call me Saturday at 11"
Written in a remarks cell. Nobody is reminded. The client signs with another studio.
CRM for interior design studios
Interior Sales OS replaces the lead spreadsheet. Your sales team opens one screen each morning, calls in order, taps how the call went, and the app plans the next step. You see everything, without asking anyone.
The problem
Written in a remarks cell. Nobody is reminded. The client signs with another studio.
Next follow-up, last call, outcome: the sheet has columns for them, but busy people don't fill them in.
Which source brings orders? Who is overdue? Where do leads drop? Answers need a meeting.
Workflow
Every lead always has a next step. The app asks for it, so nothing is forgotten.

Added by hand in seconds, imported from a spreadsheet, or sent from your website. Duplicate phone numbers merge into the existing lead instead of creating a copy.

Overdue first. Meetings and times the client asked for are pinned. Hot leads come next. Leads with no next step are listed so they get planned.

The studio's message templates fill in the client's name, property and meeting time. Phone numbers work however they were typed: 98765โฆ, 098765โฆ, +91 98765โฆ.

Connected, not answering, busy, switched off, call back later, wrong number. Attempts are counted and every call is on the lead's timeline, with who made it.

"In 2 hours", "This evening", "Tomorrow"โฆ it saves instantly. If the client asked for an exact time, switch on They asked for this time and the reminder always fires.

Moving a lead to Lost asks why. Lost leads keep their history on their own page, and the ones who already met you are flagged as the best to try again.
Features
Overdue, due today, pinned client times and hot leads in the right order, per person.
Call, WhatsApp with templates, or copy the number from any card.
"They asked for 6 pm" is treated differently from "sometime today".
Outcome, attempt count and notes on every call, in two taps.
Prioritise the leads most likely to sign. Filter and sort by it.
Group leads by building or society; track your own list of lead sources.
Reasons on every loss and a "had a meeting โ retry" list.
Upload a CSV, match columns, skip duplicates. Understands "15 lakh" and "1.2 Cr".
New lead assigned, follow-up and meeting reminders, and a morning summary.
Find any lead by name, phone or location, or jump to any page.
Comfortable on a phone in a site visit or a laptop in the office.
Only people the owner adds can join. Removing someone frees their leads for the team.
For studio owners

New โ contacted โ meeting โ proposal โ won, and the biggest leak between steps.
Results by lead source, by project and by salesperson.
Calls logged, connect rate, follow-ups done on time, leads not yet called.
Add people by email, choose who gets new leads, remove access when someone leaves.

How it's built
Designed, built and run by one developer: product, frontend, database, auth, notifications and deployment.
Every row carries a studio. Postgres row-level security decides what each user can read or change, so one studio can never see another's data, even through the public API.
Stage changes, follow-ups, meetings, reassignment and call logging run as security-definer SQL functions that validate permissions and write an audit trail in one transaction.
Public sign-up is off. An Edge Function creates an account only for an email the studio admin added, and places it in that studio as an employee.
pg_cron calls a Deno Edge Function every minute. Each reminder is claimed atomically before sending, so a slow push never fires twice.
The same normalisation rules run in TypeScript (for Call and WhatsApp links) and in SQL (for duplicate detection), so they always agree.
Each studio gets its own subdomain on Vercel, locked to its tenant by configuration, from a single codebase that deploys on every push.
Get your CRM
Tell us about your studio. We'll call you, set up your portal at yourstudio.salescrave.in, move your existing leads in, and walk your team through it.