Sales App Development

Build custom app solutions with Scrums.com's expert development team. With an NPS (Net Promoter Score) of 82, Scrums.com crafts cost-effective, custom applications that drive results.

Companies shipping B2B sales software (CRM platforms, pipeline management systems, configure-price-quote engines, sales engagement tools, and revenue intelligence platforms) face a data-model challenge that scales quickly. Contacts and accounts carry many-to-many relationships, opportunities move through configurable stage state machines with branching logic, activities must be deduplicated across channels, and forecast roll-ups must handle currency conversion, split credit, and probability weighting simultaneously. Scrums.com builds dedicated engineering teams for product companies and SaaS organisations that need to ship sales infrastructure that is commercially differentiated and operationally sound from day one.

CRM Data Model and Pipeline Architecture

The core of any sales platform is the entity graph: Accounts, Contacts, Opportunities, and Activities, with clear ownership, visibility rules, and relationship cardinality defined up front. The Opportunity entity drives the pipeline stage machine: each stage transition should be modelled as an event appended to an immutable transition log rather than a simple field update. This supports audit, attribution, and time-in-stage analytics without data loss.

Pipeline stage definitions are configuration data, not application code. Each stage carries entry criteria, exit criteria, required fields validated on transition rather than on record creation, probability weights for forecast roll-ups, and automation trigger hooks. Stage transitions emit domain events consumed by downstream systems: forecast recalculation, activity assignment, and notification routing.

Contact and account deduplication is a first-class concern in any multi-source CRM. An inbound lead matching pipeline should compare against existing contacts on email, normalised phone number (E.164 format), company domain, and fuzzy name matching. Merge operations must preserve the complete activity history of all matched records: never hard-delete source contacts.

For multi-currency pipelines, store deal values in the deal's native currency with a snapshot exchange rate at record creation. Report in base currency at query time using current or period rates, with the rate choice surfaced explicitly to the report consumer. Converting at write time and discarding the original amount produces irrecoverable reporting errors when exchange rates change.

AI Lead Scoring and Sales Forecasting

Lead scoring models in production sales platforms fall into two categories: rules-based scoring (explicit criteria: job title, company size, industry vertical, product usage signals, engagement events) and ML-based propensity scoring (gradient-boosted trees or logistic regression trained on closed-won and closed-lost historical data). Both should coexist: the rules-based score handles new accounts with no history; the ML score refines predictions for accounts with sufficient signal volume.

Forecast engines aggregate probability-weighted opportunity values into period roll-ups by territory, team, product line, and currency. Three forecast categories are standard: pipeline (weighted by stage probability), commit (rep-indicated high-confidence), and best-case. Waterfall reporting (tracking movement between forecast categories week-over-week) is the key analytical output for sales leadership and requires an append-only forecast snapshot table rather than overwriting current state.

Territory and quota management adds a third layer: rep assignment should be deterministic based on configurable rules (geography, industry vertical, account size tier, named account lists) rather than manual allocation per deal. Quota attainment tracking must handle mid-period adjustments, rep transfers between territories, and split-credit deals without corrupting historical performance data.

For sales intelligence, enrichment pipelines pull firmographic and technographic data from Clearbit, Apollo, or ZoomInfo into Account and Contact records. Enrichment should be asynchronous, versioned (store enrichment snapshots with source and timestamp rather than overwriting existing values), and marked with a data-source provenance field for GDPR data minimisation compliance. Third-party enrichment data must be handled under a documented lawful basis separate from the primary CRM data.

For engineering teams building sales mobile platforms, see our mobile app development services.

Sales Engagement and CPQ Infrastructure

Sales engagement platforms manage multi-touch sequences across email, phone, LinkedIn, and direct mail. The sequence engine models each step as a scheduled task with configurable delays, branch conditions (if email opened, skip call step), and reply detection via inbound email parsing. Hard-bounce and unsubscribe events must pause or terminate sequences and update the contact's email opt-out status atomically: a two-phase write that logs the opt-out and pauses the sequence in the same transaction, preventing sequence resumption before the suppression record is committed.

Meeting scheduling integrations (Google Calendar, Outlook) require OAuth 2.0 token management with refresh handling, conflict detection across calendars, buffer time rules, and round-robin distribution for team booking links. Availability queries should cache calendar free/busy slots with a short TTL (under 60 seconds) to reduce API call volume while maintaining acceptable freshness for the scheduling interface.

Configure-Price-Quote (CPQ) engines price complex product configurations against a rule matrix: base prices, volume discounts, bundle pricing, promotional overrides, and approval workflows for discounts above threshold. Every quote line must carry the pricing rule IDs and parameter values that produced the output price, stored as an immutable pricing snapshot alongside the quote record. CPQ audit trails are a compliance requirement in many enterprise sales contexts and must be designed as append-only records from the outset.

eSignature and quote-to-contract automation (DocuSign or PandaDoc integration) requires idempotent webhook handling for signature events: signature completion webhooks can arrive more than once and must not double-close the opportunity or create duplicate contract records. The idempotency key is the signature provider's event ID, stored in a processed-events table checked before acting on each incoming webhook.

Scrums.com deploys dedicated engineering teams with expertise across CRM architecture, sales engagement infrastructure, and CPQ systems. To discuss your sales platform requirements, start a conversation.

Revenue Attribution and RevOps Integration

Revenue attribution models (first-touch, last-touch, linear, time-decay, and data-driven) must be implemented as separate analytical computations over an immutable touchpoint event log, not as fields on the contact or opportunity record. This allows attribution methodology to change retroactively without data loss and enables multi-model comparison for calibration against actual revenue outcomes.

CRM-to-ERP handoff is the critical integration point in a closed-loop revenue system. When an opportunity closes-won, the CRM emits a contract-created event that triggers downstream provisioning in the ERP or billing system. The integration must be idempotent (safe to replay on failure), carry the canonical opportunity ID as a correlation key, and handle ERP validation failures with a dead-letter queue and alerting rather than silent data loss.

For SaaS companies, product usage signals (login frequency, feature adoption depth, expansion events) should feed back into the CRM as activity records with standardised event schemas. This creates a complete customer health picture for account managers and surfaces upsell signals in the lead scoring model. The integration pipeline (typically Segment or Rudderstack to data warehouse to CRM sync) should be treated as a first-class data product with schema versioning and clear field ownership.

HubSpot and Salesforce APIs both impose rate limits that require request queuing with exponential backoff, bulk API usage for large sync operations, and change-data-capture patterns (webhook subscriptions rather than polling) to minimise API consumption. A bidirectional sync must carry a sync-origin flag on every write to prevent event loops where a record updated by the sync triggers a re-sync back to the source system.

Engineering teams building sales platforms with Scrums.com typically include backend engineers with CRM data-model experience and data engineers for the attribution pipeline. View team composition options or explore the FinTech software context for regulated-industry sales platforms.

Frequently Asked Questions

How do you model the contact-account-opportunity relationship for a multi-product CRM?

Contacts and accounts have a many-to-many relationship: a contact can be affiliated with multiple accounts, and an account can have multiple contacts at different seniority levels. The standard model uses a ContactRole junction entity linking a Contact to an Opportunity with a role attribute (economic buyer, technical evaluator, champion, blocker). Multi-product line items within a single opportunity are modelled as OpportunityLineItem child records linked to a product catalogue, each carrying its own quantity, unit price, discount, and CPQ rule snapshot. Flattening multi-product deals into a single opportunity amount field produces reporting inconsistencies and CPQ audit failures at scale.

What is the correct architecture for a forecast engine that handles multi-currency and split credit?

Store opportunity amounts in native deal currency with a snapshot exchange rate at record creation. For reporting, apply a parameterised rate (current rate or period average) at query time by joining to a currency_rates table. Split credit deals use an OpportunityCredit child table with rep_id, credit_percentage, and a constraint that percentages sum to 100. Forecast roll-ups join through OpportunityCredit, grouping by rep_id and summing credit_percentage multiplied by probability-weighted amount. This prevents double-counting regardless of how credit is split and allows mid-period credit adjustments without corrupting historical attainment data.

How long does it take to build a lead scoring model that works reliably in production?

A rules-based scoring model can be defined and deployed in the first sprint once the entity model is established: it requires only explicit criteria mapped to point weights. An ML propensity model requires 12-18 months of historical closed-won and closed-lost data with sufficient volume (typically 1,000 or more labelled outcomes per model target), a feature engineering pipeline, and a training and serving infrastructure. The correct sequencing is to ship rules-based scoring first, instrument all signals as events from day one, and train the ML model once sufficient labelled history exists. Shipping an ML model on thin data produces a model that is confidently wrong and erodes rep trust in scoring.

How do you handle GDPR compliance for contact data in a CRM built for European customers?

GDPR compliance in a CRM requires: a lawful basis field on each contact record with supporting evidence stored; a right-to-erasure workflow cascading deletion across the contact record, activity history, enrichment snapshots, email logs, and downstream analytics tables with documented retention exceptions for legally required records; a DSAR export pipeline producing a structured export of all data held against a given contact; data minimisation controls on enrichment fields with a documented purpose and auto-expiry; and cross-border transfer documentation for European contact data flowing to US-based services under SCCs or equivalent mechanisms recorded in the ROPA.

Can you integrate a CRM platform you build with an existing Salesforce or HubSpot instance?

Yes: bidirectional CRM sync is a standard integration pattern where a custom platform maintains its own canonical data model and syncs to Salesforce or HubSpot as an integration layer rather than replacing it. The integration carries a sync-origin flag on all writes to prevent event loops. Conflict resolution uses last-write-wins with server-side timestamps, or a field-level merge strategy for high-contention fields. Salesforce Bulk API handles large initial loads; Change Data Capture webhooks and HubSpot webhooks handle ongoing sync with sub-60-second latency. Schema mapping is defined as configuration data with a validation layer that rejects unmapped fields rather than silently dropping data.

Want to Know if Scrums.com is a Good Fit for Your Business?

Get in touch and let us answer all your questions.

Get started

Don't Just Take Our Word for It

Hear from some of our amazing customers who are building with Scrums.com Teams.

"Scrums.com has been a long-term partner of OneCart. You have a great understanding of our business, our culture and have helped us find some real tech rockstars. Our Scrums.com team members are high-impact, hard working, always available, and fun to have around. Thanks a million!"
CTO, OneCart
On-demand marketplace connecting users and top retailers
"The Scrums.com Team is always ready to take my call and assist me with my unique challenges. No problem is to big or small. Great partner, securing strong talent to support our teams."
CIO, Network
Leading digital payments provider
"Finding great developers through Scrums.com is easier than explaining to my mom what I do for a living. Over the past couple of years, their top-tier devs and QAs have plugged seamlessly into Payfast by Network, turbo-charging our sprints without a hitch."
Engineering Manager, PayFast by Network
A secure digital payment processor for online businesses
"Our project was incredibly successful thanks to the guidance and professionalism of the Scrums.com teams. We were supported throughout the robust and purpose-driven process, and clear channels for open communication were established. The Scrums.com team often pre-empted and identified solutions and enhancements to our project, going over and above to make it a success."
CX Expert, Volkswagen Financial Services
Handles insurance, fleet and leasing
"The Scrums.com teams are extremely professional and a pleasure to work with. Open communication channels and commitment to deliver against deadlines ensures successful delivery against requirements. Their willingness to go beyond what is required and technical expertise resulted in a world class product that we are extremely proud to take to market."
Product Manager, BankservAfrica
Africa's largest clearing house
“Scrums.com Team Subscriptions allow us to easily move between tiers and as our needs have evolved, it has been incredibly convenient to adjust the subscription to meet our demands. This flexibility has been a game-changer for our business. Over and above this, one of their key strengths is the amazing team members who have brought passion and creativity to our project, with enthusiasm and commitment. They have been a joy to work with and I look forward to the continued partnership.”
CEO & Co-Founder, Ikue
World's first CDP for telcos
“Since partnering with Scrums.com in 2022, our experience has been nothing short of transformative. From day one, Scrums.com hasn't just been a service provider; they've become an integral part of our team. Despite the physical distance, their presence feels as close and accessible as if they were located in the office next door. This sense of proximity is not just geographical but extends deeply into how they have seamlessly integrated with our company's culture and identity.”
SOS Team, Skole
Helping 60k kids learn, every day
"Scrums.com joined Shout-It-Now on our mission to empower young women in South Africa to reduce the rates of HIV, GBV and unwanted pregnancy. By developing iSHOUT!, an app exclusively for young women, and Chomi, a multilingual GBV chatbot, they have contributed to the critical task of getting information & support to those who need it most. Scrums.com continues to be our collaborative partner on the vital journey."
CX Expert, iShout
Empowering the youth of tomorrow
"Scrums.com has been Aesara Partner's tech provider for the past few years; and with the development support provided by the Scrums.com team, our various platforms have evolved. Throughout the developing journey, Scrums.com has been able to provide us with a team to match our needs for that point in time."
Founder, Aesara Partners
A global transformation practice

Find Related App Types

Marketing Attribution app

Payroll Management System App

Retail Management app

Payments app development

Invoicing App

Telecoms app