I built a custom CRM from scratch — with terminology, pipeline stages, and workflow that matched the company's actual sales process as it existed on day one, not as a consultant had imagined it should work. The design started with two weeks of interviewing the top-performing reps to understand exactly how they managed their accounts. Every label, every stage, and every field in the CRM came from that process — not from a default template.
**Lead capture and deduplication:** The CRM pulls leads from all five sources into a single inbox. The website enquiry form posts directly to the CRM API. The trade show card scan is handled by a mobile upload flow — a rep photographs the card, the system extracts name, company, and phone via OCR, and creates a draft lead for review. Channel partner referrals arrive through a partner portal where partners log in, submit the lead, and can track its status. Phone call leads are logged directly by the rep. Before any new lead is created, the system checks for an existing contact with the same phone number or email — deduplication runs automatically so the same prospect never appears in the funnel twice.
**Contact and account management:** The CRM is built around the company's actual entity structure — an Account (the customer company) can have multiple Contacts (individuals at that company), and a Contact can have multiple Deals (active enquiries). Every interaction is recorded at the Contact level and visible from the Account view. The account page shows every person at that company, every deal open or closed, every call note, every quotation sent, and the complete email thread history via inbox sync. When a new rep takes over an account, they open one page and see the full relationship — three years of history in one scroll.
**Custom 7-stage pipeline:** The pipeline stages were built to exactly match the company's sales vocabulary: Enquiry Received → Technical Discussion → Demo/Site Visit → Proposal Submitted → Negotiation → PO Received → Closed Won (or Closed Lost). Each stage has a configurable probability weight used in forecasting. Moving a deal between stages requires a mandatory activity log — the rep must note what happened to justify the movement. Stale deals — those with no activity for more than 14 days — are automatically flagged in amber on the manager's dashboard.
**Quotation builder:** Reps create quotations from within the CRM. The product catalogue is loaded — equipment model, list price, standard discount bands — and the rep selects items, applies approved discounts, and generates a branded PDF in one click. Every quotation is versioned: if the customer requests a revised price, a V2 is created and linked to the deal while V1 is preserved. The manager can see every quotation sent to every customer — and the discount applied — from the deal view. Quotation acceptance triggers automatic stage movement to 'Negotiation'. Expired quotations are flagged for follow-up.
**Activity logging and follow-up queue:** Every interaction — call, meeting, site visit, demo, email — is logged as an activity against a Contact and a Deal. The log captures what was discussed, what was agreed, and the next action with a due date. The follow-up queue is the rep's home screen: sorted by next-action date, with overdue items highlighted in red and today's items in amber. The queue eliminates 'I forgot to follow up' as a reason for lead loss — the system surfaces the lead at the right time without the rep having to remember.
**WhatsApp integration:** A WhatsApp Business API connection means reps can send messages directly from the contact page inside the CRM. The message is sent from the company's WhatsApp Business number. The conversation — including the customer's replies — syncs back to the contact's activity log within minutes. Reps no longer need to manage customer relationships across their personal WhatsApp and the CRM separately. Template messages are pre-loaded for common scenarios: follow-up after a demo, quotation reminder, PO confirmation request.
**Email sync:** The CRM connects to the rep's company email account via OAuth. Incoming and outgoing emails to and from a contact are automatically linked to that contact's record — no BCC forwarding required. The rep sees their email threads inside the CRM. The manager can see all external email communication on any deal without asking the rep to forward anything.
**Territory and assignment management:** India is divided into territories that map to each rep's coverage area. Leads are auto-assigned to the rep who covers that territory based on the customer's state. The assignment can be overridden manually by a manager. Channel partner leads are assigned to the rep in whose territory the partner operates. Territory performance reports show revenue by region, conversion rate by territory, and which territories are over- and under-performing.
**Manager dashboard and pipeline analytics:** The VP Sales opens the CRM to a live funnel — total enquiries, total proposals, total negotiation-stage deals, total POs expected this month — with INR values and deal counts at each stage. Conversion rates between each stage are calculated from real data and updated in real time. The 90-day rolling revenue forecast is the sum of all open deals weighted by their pipeline stage probability. A per-rep performance table shows each rep's deal count, pipeline value, activities logged, and average deal age — updated continuously, not weekly. Stale deals and overdue follow-ups are surfaced proactively on the dashboard without the manager having to query them.
**Commission calculation:** Commission rates vary by deal size, product category, and whether the lead originated from a channel partner (requiring a partner payout). The CRM calculates the commission for each closed deal automatically using the configured rules — base rate plus any escalation for deals above threshold values. The monthly commission statement is generated per rep and per channel partner. Finance downloads a CSV. The VP approves it. Manual calculation is eliminated.
**Automated sequences and reminders:** Deals that enter a stage trigger configurable automation. A deal moving to 'Proposal Submitted' automatically schedules a follow-up reminder for day 3 and day 7 if no response is logged. A deal in 'Negotiation' for more than 21 days with no activity sends an alert to the rep and flags the deal on the manager's dashboard. A closed-won deal triggers a task to the delivery team and a thank-you message template to the customer. These sequences are configured by the admin without code changes.
**Document management:** Every proposal, technical document, contract, and PO is uploaded to the deal record and stored in GCS with access-controlled signed URLs. The deal page is the single source of truth for everything ever shared with that customer. Reps access documents from the field on mobile. New hires see the full document history from their first day.