Skip to content

Choosing a CRM before you build around one

  • Home
  • Blog
  • Choosing a CRM before you build around one
Choosing a CRM before you build around one

Choosing a CRM before you build around one means deciding whether your customer system of record is a bought platform — Salesforce, HubSpot, Zoho CRM, Dynamics 365 — or a custom database. The choice shapes every integration, migration and reporting decision after it. Pick the CRM first, then design your website, portal and internal tools around its data model.

Key Takeaways

  • A CRM is a system of record, not just a sales tool — it constrains your data model across every system you build.
  • Integration capability, API limits and deduplication rules matter more than dashboard polish.
  • Custom objects, field types and validation behaviour determine how much custom code you will write.
  • A cheaper licence often costs more in engineer time for integration, migration and maintenance.
  • Test with real exported data, not vendor demo data, before you commit.
  • The CRM must be administerable by someone other than the developer who set it up.
The sequence for choosing a CRM before you build around itFive ordered steps from mapping the data model to committing and migrating, connected by red arrows.Five steps before you commit to a CRM1Map datamodel2Listintegrations3Shortlistplatforms4Pilot realdata5Commitand migrate
The five-step sequence we recommend before any build: map the data model, list integration points, shortlist platforms, pilot with real data, then commit.

What is a CRM, really?

A CRM is a customer relationship management system — the database that stores contacts, companies, deals, activities and communication history. It is the system of record for who your customers are and what you have promised them. Salesforce, HubSpot, Zoho CRM, Pipedrive and Microsoft Dynamics 365 are the common options, but the category matters more than the vendor.

In practice, most teams arrive at the CRM question after years of spreadsheets and shared inboxes. The switch matters because a CRM changes who can see what, and when. It also locks in naming conventions — company versus account, deal versus opportunity — that appear in every report, email template and integration afterwards. A good way to test a CRM is to ask whether it can express your actual sales process, not the vendor's ideal one. The line between a bought CRM and a custom build is the same decision covered in our look at custom software versus off-the-shelf.

Why does the CRM decision come before the build?

Build first and the CRM becomes a bolt-on; the website, portal or mobile app will have its own customer table, and you will spend months reconciling two sources of truth. Choosing the CRM first lets every form, signup and purchase write to the same record. The migration cost of choosing wrong rises with every system you wire to it.

We see the failure mode often: a business builds a website with its own user table, adds a booking form that emails enquiries to a shared inbox, then hires a second salesperson. At that point the website has become a shadow CRM, and importing years of records into a real CRM means field mapping, deduplication and a clean-up nobody budgeted for. Choosing first avoids a second migration. The order also changes scope: if the CRM can capture leads natively, you may not need to build that part at all.

When do you actually need a CRM — and when don't you?

You need a CRM when more than one person needs to see the same customer history — sales, support and billing working from one record. You do not need one while you are pre-revenue with a handful of clients in a spreadsheet. The tipping point is usually when a second person starts asking "who last spoke to this customer?".

The honest answer for most small businesses is later than the vendor would like. A solo founder with thirty clients and a tidy spreadsheet does not need a CRM; the admin overhead will slow them down. You need one when two conditions are both true: more than one person touches the customer relationship, and someone other than you needs the full history without asking. If you are between those states, spend time defining your data model on paper first. That work transfers whichever way you eventually go.

How does a CRM's data model shape what you build?

Every CRM has a fixed core — contacts, companies, deals, activities — plus custom objects and fields you define. Your website forms, checkout flow and mobile app must map to that model, not the other way round. A CRM with weak custom object support will force you to abuse the contact record, and that debt compounds.

Salesforce, HubSpot and Zoho all call the concept by slightly different names — custom objects or modules — but the idea is the same: you extend the core structure with tables for quotes, projects, subscriptions or whatever your business sells. The catch is limits. Some platforms cap custom objects on lower tiers, and every object adds reporting complexity. If your product catalogue or project history does not fit a CRM's object model cleanly, you will end up storing critical data in a separate database and syncing a subset. That split is where consistency breaks. Salesforce documents its custom object model in the developer reference; the same concept applies across the category.

How do you evaluate CRMs properly?

Evaluate against integration capability first: does the CRM expose a REST API, webhooks and a sandbox you can test against? Demo-booth polish fades; API limits, field types and sync behaviour are what you will live with. Shortlist three platforms, then run the same integration test against each before committing.

Start with your existing data, not the vendor's demo. The sequence below is the one we recommend to clients before any proposal, and it pairs naturally with the questions we list in what to ask before a web proposal.

  1. Export your current contacts, companies and deal history from wherever they live — spreadsheet, email, old database. Look for duplicate email addresses and missing fields.
  2. List every system that will read or write customer data: website forms, mobile app, email marketing tool, invoicing, support desk. Note the direction of each sync.
  3. Shortlist three CRMs and check each one's API documentation for the endpoints you need — contacts, companies, custom objects, webhooks. Confirm sandbox access for testing.
  4. Build the same small integration against each shortlisted CRM: create a contact, attach a company, log an activity, read it back. Time it and note where you hit limits.
  5. Run a data migration dry-run with real records, not demo data. Check duplicates, field truncation and records that fail validation.
  6. Present findings as a written comparison, then decide. The CRM that wins on API quality usually beats the one that wins on dashboard screenshots.

Which integration points matter most in production?

Website forms, authentication, email marketing, invoicing and support ticketing are the five integrations that break most often. Each one needs a defined sync direction, retry policy and deduplication rule. If a CRM cannot deduplicate contacts on email address before you write custom code, you will write that code yourself.

Which CRM integration points matter most in productionRows mapping each integration point to the failure mode it causes in production.Integration points that break firstWebsite formsHighest-volume write path; a failed post is a lost leadEmail marketingUnsubscribe state must sync back within minutesInvoicingClosed deals must become invoices without re-keyingSupport ticketingTickets must attach to the same customer recordMobile appToken refresh and offline sync add real complexity
How the five most common CRM integration points map to the failure mode each one causes when the sync direction or retry policy is undefined.

Website forms are the highest-volume write path, and every enquiry that fails to land in the CRM is a lost lead nobody knows about. Email marketing is next because unsubscribe state must sync back within minutes, or you will email people who opted out. HubSpot's API documentation is a good reference for how rate limits and webhook retries actually behave on one of the common platforms. If the integration surface feels large, our team can help you map and build it as part of a larger custom software build.

How do you verify the CRM will hold under real use?

Do not test with demo data. Import a real export of your existing contacts, run the integrations against a staging environment, and check what the CRM does with duplicates, missing fields and records older than five years. The failure you will meet in week one is data quality, not API availability.

Verification is three checks. First, import a real export and count the records that fail validation — if more than a few percent fail, your data needs cleaning before any build. Second, run a load test on the integration: submit a hundred form entries in a burst and confirm all land in the CRM within a few minutes. Third, check the CRM's audit log and permission model against your actual team structure. If a salesperson can export the entire customer database, that is a policy problem, not a technical one.

What breaks after you commit — and how do you debug it?

The common failures are sync lag, duplicate records from double form submission, and permission changes that silently break API tokens. Debug by checking webhook delivery logs first, then the CRM's API usage limits, then field-level validation. Most "integration bugs" are a field type mismatch, not a code fault.

The most common production failure we see is silent sync failure: the integration times out, the retry gives up, and nobody notices until a customer asks why their ticket vanished. Check webhook delivery logs first — most CRMs log every outbound event with the HTTP status returned. Then check API usage limits; a busy month of email sends can exhaust your daily quota and stall all integrations. Field type mismatches are the silent killer: a CRM date field receiving a UK-format string will reject records without an error you can see in the UI. A typical rejection looks like this:

{"event":"contact.creation","status":"failed","reason":"field 'date_of_birth' expected ISO 8601"}

Log every integration response and alert on repeated 4xx and 5xx statuses. That is the difference between finding a break in minutes and finding it in a quarterly report.

What does a CRM actually cost to operate — beyond the licence?

Licence fees are the visible cost; implementation, data migration, integration development and ongoing admin are the real ones. Every custom field, workflow and permission rule adds maintenance surface. Ask who will administer the CRM after launch — if the answer is "the developer who built it", you have a staffing problem.

Think in three buckets: getting data in, building integrations, and keeping it running. Data migration is a one-off cost that scales with how messy your current records are. Integration development is ongoing — every new form, campaign or workflow touches the CRM. Admin time is the quiet one: someone has to manage fields, permissions, automation rules and duplicate records. Before you buy, ask who owns that admin role after launch. If the answer is nobody, budget for it or the CRM becomes a read-only archive. Ongoing maintenance help is where most teams end up.

Security considerations you cannot skip

A CRM holds names, emails, phone numbers and often deal values — personal data under most privacy regimes. Check the vendor's data residency options, role-based access controls and audit log before you import anything. API tokens should be scoped to least privilege needed for each integration, never a shared admin key.

Check data residency first — some CRM vendors host data in specific regions, and privacy regimes like GDPR or local data protection laws may constrain where customer records can live. Role-based access control matters more than encryption at rest, because most breaches are internal: a departing employee exporting the full contact list. API tokens should be scoped per integration, stored in a secrets manager, and rotated on a schedule. Never share an admin credential across integrations; if one integration is compromised, every system using that key is exposed.

Common mistakes and alternatives compared

The most common mistakes are choosing the cheapest licence, letting a vendor's sales engineer design your data model, and skipping the migration dry-run. Alternatives to a full SaaS CRM include a custom database, a spreadsheet with disciplined process, or an industry-specific system. Each trades control for maintenance effort.

The cheapest licence is often the most expensive because you pay in engineer hours to work around missing API endpoints or object limits. Letting a vendor's sales engineer design your data model is a mistake — they optimise for their platform's strengths, not your business. And skipping the dry-run migration means you discover bad data on go-live day, when there is no time to fix it. The table below compares the realistic alternatives.

OptionTime to valueIntegration effortMaintenance burdenBest for
SaaS CRM (HubSpot, Zoho, Salesforce)Days to weeksModerate — vendor APIsVendor managed, you administerMost growing teams
Custom databaseWeeks to monthsHigh — you build everythingFully yoursUnusual data models
Spreadsheet with disciplineHoursNoneFragile but simplePre-revenue or solo
Industry-specific systemWeeksModerateVendor lock-in riskNiche verticals

A trekking operator in Kathmandu — the kind of business we have worked with, including Royal Trek Nepal — runs enquiries through a website form, email and WhatsApp. Two salespeople share a spreadsheet; the owner keeps a separate notebook. They choose a CRM before rebuilding the booking form, because they know the CRM's contact and deal objects will define how enquiries are stored. The evaluation takes two weeks: export the spreadsheet, map fields to the CRM, build a test integration that creates a contact on form submission, then run a dry migration. The pilot exposes a duplicate-email problem they did not know they had. They fix the data, then build the form around the CRM. Six months later, the spreadsheet is gone and both salespeople see the same history.

A realistic CRM rollout timelineFive milestones from data audit to post-launch review, spaced across six to eight weeks.A realistic CRM rolloutWeek 1Data auditWeek 2Integration buildWeek 4Pilot liveWeek 6Go-liveWeek 8Review
A realistic rollout spans six to eight weeks when you include the data audit, integration build and a pilot before go-live.

In short: decide whether the CRM is a bought platform or a custom build before you wire anything to it. Evaluate on API quality, custom object flexibility and deduplication, not demo polish. Test with real data, define who administers it, and keep licence cost separate from the real cost of integration and maintenance. The CRM you choose today will outlive the code you write around it.

People also search for

Choosing a CRM before you build is the kind of decision that is cheap to get right early and expensive to reverse later. If you are weighing a SaaS CRM against a custom build, or you have an existing system that no longer fits, contact our team — we will review what you have, map the integration points and give you a written plan before any code is written. See how we have helped businesses like Royal Trek Nepal build systems their own team can run.

Frequently asked questions

  • It means selecting the system of record for customer data, sales pipeline, and support before writing custom code, integrations, or automations that depend on its API, objects, and workflows. Changing later means rewriting sync logic, mappings, and UI, not just swapping a tool.

  • Decide when more than one team needs shared customer state, when duplicate records or lost follow-ups affect revenue, or when you plan automations and reporting. A custom database will silently grow into a poor CRM: no dedupe, no audit trail, no standard objects, and no vendor-maintained connectors.

  • The common failure is field and object mismatch: your code expects custom fields, picklists, or ownership rules that the CRM does not support. You then maintain brittle middleware, poll APIs for changes you cannot subscribe to, and lose source-of-truth clarity. Migrations after launch typically mean a parallel write period and data backfill.

  • Map your current stages, required fields, and record ownership to the CRM's built-in objects, validation rules, and workflow automation. Test with a real deal and a support ticket in a trial or sandbox. Confirm you can enforce stage transitions and report on conversion without code; if you need Apex or plugins for basic steps, the fit is poor.

  • Check rate limits, object coverage, field-level permissions, and whether webhooks include enough payload to identify changed records. Verify idempotency and retry behaviour. A CRM with a REST API but no reliable event stream forces polling, which increases API consumption and can miss deletes or merges that your code must reconcile.

  • Choose a CRM that lets you export all records, attachments, notes, and custom field definitions through an API or bulk export. Keep the data in your own backup bucket and test a restore into a clean instance. Confirm the contract states your data is yours and retrievable on termination, including audit logs where available.

  • A migration or dedupe changes record IDs, ownership, and related activity history. Before running any merge, import, or destructive cleanup, export the full data set and schema to CSV or a staging sandbox. Dry-run the operation in the sandbox, then verify counts and key relationships in production before and after.

  • Costs come from API overage, storage for attachments and logs, user licences, and the time spent maintaining sync jobs, field mappings, and retry queues. The largest hidden cost is usually engineering time: every CRM upgrade or permission change can break custom code, so plan for regression testing on each vendor release.

  • For a small team with simple contacts and deals, a managed database with an admin UI or a lightweight open-source CRM can work. But you inherit schema design, backups, and access control yourself. A commercial CRM becomes worth it once you need standard objects, mobile access, email sync, or integrations maintained by someone else.

  • Use a dedicated sandbox or developer instance, seed it with representative accounts and deals, and run your sync and webhook handlers against it. Verify idempotent retries, timeouts, and error logs. Then switch to a canary set of real records and monitor for duplicates or silent drops before full rollout.

0 comments

Be the first to share your thoughts.

Leave a comment

Chat on WhatsApp