[{"data":1,"prerenderedAt":521},["ShallowReactive",2],{"insight-custom-crm-vs-off-the-shelf":3,"insights-cards":411},{"id":4,"title":5,"body":6,"category":392,"date":393,"description":394,"extension":395,"meta":396,"navigation":397,"path":398,"readingTime":399,"relatedArticles":400,"relatedAssessment":404,"relatedServices":405,"seo":408,"stem":409,"__hash__":410},"insights\u002Finsights\u002Fcustom-crm-vs-off-the-shelf.md","Should You Build Your Own CRM? Run the Build-or-Buy Test on Your Sales Process",{"type":7,"value":8,"toc":380},"minimark",[9,13,18,21,24,27,30,34,37,40,75,78,82,85,167,170,173,176,180,183,203,206,210,213,216,299,302,305,309,312,357,360,364,367,370,373,377],[10,11,12],"p",{},"The build-or-buy test asks one question of any capability: is this a commodity, or is it part of how you win? Applied to a CRM, the answer is almost always \"buy\" for the product as a whole and occasionally \"build\" for one narrow piece of it. The work is finding out whether you have such a piece, and noticing when a heavily configured platform has already turned into a build without anyone deciding it should.",[14,15,17],"h2",{"id":16},"most-of-a-crm-is-commodity-and-you-should-treat-it-that-way","Most of a CRM is commodity, and you should treat it that way",[10,19,20],{},"Contact and company records. Email and calendar sync. Activity logging. Task reminders. A pipeline view with draggable stages. Role-based permissions. Standard reports. A mobile app.",[10,22,23],{},"No company wins deals because its contact database is better than a competitor's. These features are solved problems, maintained by vendors with far more engineers than you will ever assign to them, and improved every quarter at no extra effort on your side. Rebuilding them means paying for parity and then paying again to keep up.",[10,25,26],{},"So the default is clear. If someone proposes replacing a mainstream CRM with a fully custom one, the burden of proof is on the proposal.",[10,28,29],{},"The interesting question is narrower. It concerns the shape of the sale itself: what a deal is, who is party to it, how it is priced, and what has to be true before it can close. Off-the-shelf platforms assume a particular shape. When yours is different, that difference is where the decision lives.",[14,31,33],{"id":32},"the-model-every-platform-assumes","The model every platform assumes",[10,35,36],{},"Under the configuration screens, mainstream CRMs share a core data model. A company has contacts. A deal belongs to one company and one owner. A deal moves through a linear sequence of stages. It has one amount and one expected close date. When it closes, it is won or lost.",[10,38,39],{},"That model fits a very large share of B2B selling, which is why it became the standard. It fits poorly when the real structure of your business contradicts one of its assumptions. Some examples, framed as patterns and not as any particular company:",[41,42,43,51,57,63,69],"ul",{},[44,45,46,50],"li",{},[47,48,49],"strong",{},"Multi-party deals."," A contract closes only when a manufacturer, a distributor and an installer all commit. There is no single \"customer\", and each party has its own stage.",[44,52,53,56],{},[47,54,55],{},"Usage-based or consumption pricing."," The deal has no fixed amount. Revenue depends on metered usage after signing, and the sales team is paid on something other than the booking.",[44,58,59,62],{},[47,60,61],{},"Channel and partner sales."," A deal is registered by a partner, worked jointly, and split by rules that depend on who sourced it.",[44,64,65,68],{},[47,66,67],{},"Non-linear pipelines."," Regulated or project-based sales where steps run in parallel, loop back, or depend on external approvals with their own clocks.",[44,70,71,74],{},[47,72,73],{},"Quotes with heavy logic."," Pricing depends on configuration rules, inventory, freight and contract history held in an ERP.",[10,76,77],{},"In each case the platform can store something. The question is whether what it stores still means what the business needs it to mean.",[14,79,81],{"id":80},"four-options-not-two","Four options, not two",[10,83,84],{},"\"Custom or off-the-shelf\" is a false binary. In practice there is a spectrum.",[86,87,88,107],"table",{},[89,90,91],"thead",{},[92,93,94,98,101,104],"tr",{},[95,96,97],"th",{},"Option",[95,99,100],{},"What it is",[95,102,103],{},"Fits when",[95,105,106],{},"Watch for",[108,109,110,125,139,153],"tbody",{},[92,111,112,116,119,122],{},[113,114,115],"td",{},"Configure",[113,117,118],{},"Fields, stages, layouts and rules built through the admin interface",[113,120,121],{},"Your process matches the standard model with local variations",[113,123,124],{},"Volume. Hundreds of rules become a system nobody understands",[92,126,127,130,133,136],{},[113,128,129],{},"Extend",[113,131,132],{},"The platform's own scripting, custom objects and marketplace add-ons",[113,134,135],{},"One or two gaps the vendor's extension points were designed for",[113,137,138],{},"Lock-in to proprietary languages and per-add-on license costs",[92,140,141,144,147,150],{},[113,142,143],{},"Custom module alongside",[113,145,146],{},"A separate service you own that handles the unusual part and syncs to the CRM through its API",[113,148,149],{},"One capability breaks the platform's model, and the rest fits",[113,151,152],{},"Integration design: which system owns which data",[92,154,155,158,161,164],{},[113,156,157],{},"Fully custom CRM",[113,159,160],{},"You build and operate everything",[113,162,163],{},"The sales process is the product, or constraints rule out every platform",[113,165,166],{},"Rebuilding commodity features, and maintaining them forever",[10,168,169],{},"Most conversations that begin with \"we need a custom CRM\" end at the first row done properly. The team was not short of software. It was short of a clear process and a disciplined configuration.",[10,171,172],{},"A meaningful minority end at the third row, and that row is underused. The platform stays the system of record for accounts, contacts and activity. The part that does not fit (the multi-party deal engine, the usage-based pricing calculator, the partner split logic) lives in a small custom service with a real data model, real tests and its own release process. Reps still work in the CRM. The custom service does the part the CRM was never designed to do.",[10,174,175],{},"The fourth row is rare and should be. It is defensible when the selling workflow is itself what the company offers, or when data residency, security or regulatory constraints cannot be met by any vendor.",[14,177,179],{"id":178},"the-moment-configuration-turns-into-an-unplanned-build","The moment configuration turns into an unplanned build",[10,181,182],{},"Adding fields, stages and workflow rules through an admin screen is something all of these products support. That is configuration, and it is what the product is for. The line is crossed gradually, and you can tell it has been crossed by a few signs:",[41,184,185,188,191,194,197,200],{},[44,186,187],{},"A standard object is being used to represent something else. Deals stand in for projects, contacts stand in for partner companies, and a text field holds structured data separated by semicolons.",[44,189,190],{},"Automations exist mainly to work around the data model: rules that copy values between records to simulate a relationship the platform does not support.",[44,192,193],{},"A meaningful amount of logic lives in the platform's proprietary scripting language, written by a contractor who has moved on.",[44,195,196],{},"Platform updates break things, and you learn about it from the sales team.",[44,198,199],{},"One administrator is the only person who understands how it works, and their vacation is a business risk.",[44,201,202],{},"A request that sounds small (\"split commission across two reps\") gets an estimate measured in weeks.",[10,204,205],{},"At that point you own a custom application. It simply happens to be written in the least maintainable medium available.",[14,207,209],{"id":208},"cheap-changes-expensive-system","Cheap changes, expensive system",[10,211,212],{},"Each individual change through the admin interface is cheap. No developer, no deployment, done by lunch. That is exactly what makes the accumulated result expensive.",[10,214,215],{},"Several hundred fields and rules amount to a codebase. Compare how that codebase is usually managed with how you would manage ordinary software:",[86,217,218,231],{},[89,219,220],{},[92,221,222,225,228],{},[95,223,224],{},"Concern",[95,226,227],{},"Typical heavily configured platform",[95,229,230],{},"Ordinary custom code",[108,232,233,244,255,266,277,288],{},[92,234,235,238,241],{},[113,236,237],{},"History of changes",[113,239,240],{},"Often partial, and rarely explains why",[113,242,243],{},"Version control with reviewable commits",[92,245,246,249,252],{},[113,247,248],{},"Testing",[113,250,251],{},"Manual clicking through a sandbox, if one is used",[113,253,254],{},"Automated tests run on every change",[92,256,257,260,263],{},[113,258,259],{},"Review",[113,261,262],{},"One admin changes production directly",[113,264,265],{},"Peer review before release",[92,267,268,271,274],{},[113,269,270],{},"Rollback",[113,272,273],{},"Rebuild the previous state by hand",[113,275,276],{},"Redeploy the previous version",[92,278,279,282,285],{},[113,280,281],{},"Documentation",[113,283,284],{},"In the administrator's head",[113,286,287],{},"Lives next to the code",[92,289,290,293,296],{},[113,291,292],{},"Portability",[113,294,295],{},"Tied to one vendor's model and language",[113,297,298],{},"Yours to host and move",[10,300,301],{},"Many platforms do offer sandboxes, deployment tooling and change tracking, and mature teams use them. The point is that these disciplines are optional on a platform and tend to be skipped, because the tool makes it so easy to change production directly.",[10,303,304],{},"Asking whether the product is capable of the behavior you want gets you nowhere, because with enough rules the reply is nearly always yes. A more useful thing to ask is what it costs to keep that configuration correct for five years: through vendor releases, staff turnover, a pricing change, an acquisition, and a new product line that sells differently.",[14,306,308],{"id":307},"run-the-test-on-your-own-pipeline","Run the test on your own pipeline",[10,310,311],{},"Work through these in order. Write the answers down, because the act of writing usually settles the matter.",[313,314,315,321,327,333,339,345,351],"ol",{},[44,316,317,320],{},[47,318,319],{},"Describe one real deal from first contact to cash."," Not the ideal one. A recent, typical one, including the awkward parts.",[44,322,323,326],{},[47,324,325],{},"Mark every point where the description contradicts the standard model."," More than one customer? No fixed amount? Stages in parallel? Approval that depends on data outside the CRM?",[44,328,329,332],{},[47,330,331],{},"For each contradiction, ask whether it is a source of advantage or an accident of history."," A pricing model customers choose you for is an advantage. An approval chain that exists because of a reorganization three years ago is an accident. Fix accidents by changing the process, not by building software around them.",[44,334,335,338],{},[47,336,337],{},"For the contradictions that survive, check the platform's intended extension points."," Custom objects and documented APIs are intended. Repurposing standard objects is not.",[44,340,341,344],{},[47,342,343],{},"Estimate the rule count."," If supporting the requirement needs dozens of interdependent rules, treat it as software and price it as software.",[44,346,347,350],{},[47,348,349],{},"Compare five-year costs, not launch costs."," For the platform path: licenses at your projected headcount, add-ons, administrator time, consultant fees for changes, and the cost of each change taking longer than the last. For the custom path: build, hosting, maintenance, and an engineer who stays responsible for it.",[44,352,353,356],{},[47,354,355],{},"Ask what leaving would cost."," How would you get your data and logic out of each option?",[10,358,359],{},"If step 3 leaves you with nothing, buy and configure well. If it leaves one or two real items, look hard at a custom module alongside the platform. If it leaves most of the process, you may be one of the few cases for a full build.",[14,361,363],{"id":362},"what-goes-wrong-on-the-build-side","What goes wrong on the build side",[10,365,366],{},"Fairness requires the other list. Teams that build their own CRM tend to underestimate the commodity layer. Email sync alone, done reliably across providers, is a substantial project. So are permissions, mobile access, duplicate handling, audit trails and reporting that non-technical managers can change themselves.",[10,368,369],{},"A custom system also needs an owner for as long as it runs. Without a budget line for maintenance, it ages into the same unmaintainable state as the over-configured platform, with the added problem that no vendor is coming to fix it.",[10,371,372],{},"That is the strongest argument for the hybrid: buy the commodity, own the difference, and keep the boundary between them explicit.",[14,374,376],{"id":375},"which-rule-do-you-keep-fighting-your-crm-over","Which rule do you keep fighting your CRM over?",[10,378,379],{},"If there is one requirement your platform has never handled cleanly, that requirement is where the decision sits. Bring it to Trivo along with a description of a real deal, and we will give you a plain answer: better setup of the platform you already pay for, a small custom service beside it, or a real case for building.",{"title":381,"searchDepth":382,"depth":382,"links":383},"",2,[384,385,386,387,388,389,390,391],{"id":16,"depth":382,"text":17},{"id":32,"depth":382,"text":33},{"id":80,"depth":382,"text":81},{"id":178,"depth":382,"text":179},{"id":208,"depth":382,"text":209},{"id":307,"depth":382,"text":308},{"id":362,"depth":382,"text":363},{"id":375,"depth":382,"text":376},"CRM","2026-10-12","Most of a CRM is a commodity you should buy. The question is whether the way you sell fits the platform's model, and what it costs when it does not.","md",{},true,"\u002Finsights\u002Fcustom-crm-vs-off-the-shelf",8,[401,402,403],"build-vs-buy","crm-migration-checklist","rpa-vs-api-integration","build-or-buy",[406,407],"crm","custom-software",{"title":5,"description":394},"insights\u002Fcustom-crm-vs-off-the-shelf","CfUQg__fBs9nGKCL87Twd-LYlEq7RLYaaqH-JCEjdhw",[412,420,427,432,437,442,447,452,457,459,465,472,477,483,489,495,501,506,511,516],{"path":413,"title":414,"description":415,"category":416,"readingTime":417,"relatedServices":418,"date":393},"\u002Finsights\u002Fbuild-vs-buy","The License Fee Is the Small Number: A Working Guide to Build or Buy","Buying software is usually right, until the product sits on top of how you make money. How to sort capabilities, price the hidden costs and decide.","Strategy",9,[407,419],"modernization",{"path":421,"title":422,"description":423,"category":424,"readingTime":417,"relatedServices":425,"date":393},"\u002Finsights\u002Fcloudflare-observability","The Cloudflare Signals You Need Wired Up Before Something Breaks","Cloudflare records plenty by default. Whether a person hears about a problem in time depends on choices made in a quiet week, not mid-outage.","Cloudflare",[426,419],"cloudflare",{"path":428,"title":429,"description":430,"category":424,"readingTime":417,"relatedServices":431,"date":393},"\u002Finsights\u002Fcloudflare-performance-tuning","After the Static Assets: Where Cloudflare Performance Is Actually Won","Default caching handles images, CSS and JavaScript. The larger gains sit in HTML, API responses, cache keys and origin trips that nobody tuned.",[426,407],{"path":433,"title":434,"description":435,"category":424,"readingTime":417,"relatedServices":436,"date":393},"\u002Finsights\u002Fcloudflare-waf-and-ddos","Managed Rules Know the Internet. Custom Rules Have to Know Your Application.","Cloudflare's managed WAF and DDoS rules stop generic attacks. Logins, APIs, bots and false positives still need rules written from your own traffic.",[426,407],{"path":438,"title":439,"description":440,"category":424,"readingTime":417,"relatedServices":441,"date":393},"\u002Finsights\u002Fcloudflare-zero-trust-and-integrity","Who Got In Versus What Is Running: Two Integrity Problems One Control Cannot Solve","Zero Trust verifies who reaches a system. Client-side script monitoring verifies what runs in the browser. They fail differently and need separate owners.",[426,419],{"path":443,"title":444,"description":445,"category":392,"readingTime":399,"relatedServices":446,"date":393},"\u002Finsights\u002Fcrm-adoption-and-training","Your CRM Passed Every Test and Nobody Uses It: A Diagnostic for Stalled Adoption","Low CRM adoption is rarely a training gap. How to tell whether the cause is screen friction, missing payback or management habits, and what to fix first.",[406],{"path":448,"title":449,"description":450,"category":392,"readingTime":399,"relatedServices":451,"date":393},"\u002Finsights\u002Fcrm-implementation-timeline","The Honest Calendar of a CRM Implementation: Five Phases and Where the Weeks Go","Provisioning a CRM takes a day. Making it the place your team sells from takes months. A phase-by-phase calendar, with the parts quotes tend to leave out.",[406,407],{"path":453,"title":454,"description":455,"category":392,"readingTime":417,"relatedServices":456,"date":393},"\u002Finsights\u002Fcrm-migration-checklist","CRM Migration Checklist: The Records Arrive, the Selling Process Gets Left Behind","A CRM migration is a process migration with a data load attached. What a plain export loses, how to choose a cutover, and a checklist for each stage.",[406,419],{"path":398,"title":5,"description":394,"category":392,"readingTime":399,"relatedServices":458,"date":393},[406,407],{"path":460,"title":461,"description":462,"category":416,"readingTime":463,"relatedServices":464,"date":393},"\u002Finsights\u002Fcustom-software-cost-framework","Estimate Before the Estimate: Sizing a Custom Software Budget on Your Own","You can't know the price before a quote, but you can know what drives it. Six cost drivers, a self-check worksheet and how to read a proposal.",10,[407],{"path":466,"title":467,"description":468,"category":469,"readingTime":417,"relatedServices":470,"date":393},"\u002Finsights\u002Fetl-vs-elt","Transform before or after loading? A practical ETL versus ELT decision for mid-sized teams","ETL or ELT is a question of where transformation runs and who pays for it. A practical way for a mid-sized team to choose, with the costs most plans miss.","Data",[407,471],"ai-automation",{"path":473,"title":474,"description":475,"category":416,"readingTime":463,"relatedServices":476,"date":393},"\u002Finsights\u002Fevaluating-engineering-depth","Ask About the Outage: How to Vet a Software Vendor's Real Engineering Ability","Portfolios and logos look the same from every vendor. The interview questions, artifacts and deal-breakers that show who has really run software in production.",[407,419],{"path":478,"title":479,"description":480,"category":481,"readingTime":463,"relatedServices":482,"date":393},"\u002Finsights\u002Fhipaa-business-associate-agreement","A BAA Is a Contract, Not a Badge: What Your Software Vendor Is Really Signing Up For","What a HIPAA Business Associate Agreement commits a software vendor to, what it leaves unproven, and what to ask and build before PHI reaches the system.","Compliance",[407,471],{"path":484,"title":485,"description":486,"category":481,"readingTime":487,"relatedServices":488,"date":393},"\u002Finsights\u002Fhipaa-technical-safeguards-checklist","Reading 45 CFR 164.312 Like a Design Document: HIPAA Technical Safeguards for Engineers","The five HIPAA technical safeguard standards mapped to concrete engineering decisions: identity, logging, integrity, authentication and encryption.",11,[407,419,426],{"path":490,"title":491,"description":492,"category":493,"readingTime":417,"relatedServices":494,"date":393},"\u002Finsights\u002Flegacy-erp-anticorruption-layer","The ERP stays as it is: building on a decades-old system through an anti-corruption layer","How to build new software on an old ERP without modifying it, using an anti-corruption layer: what goes inside, how to handle writes, when to skip it.","Modernization",[419,407],{"path":496,"title":497,"description":498,"category":499,"readingTime":463,"relatedServices":500,"date":393},"\u002Finsights\u002Fllm-in-production-confidence-thresholds","An LLM that proposes and a system that decides: thresholds, review and audit for production AI","Running an LLM in production without giving it autonomy: measured confidence, thresholds set by business cost, human review that works, an audit trail.","AI",[471,407],{"path":502,"title":503,"description":504,"category":416,"readingTime":417,"relatedServices":505,"date":393},"\u002Finsights\u002Fnearshore-offshore-onshore-cost","Cheap Hours, Expensive Projects: Pricing US, Nearshore and Offshore Teams Honestly","The hourly rate tells you little about what a project will cost. How overlap, rework, turnover and compliance change the math for each delivery model.",[407],{"path":507,"title":508,"description":509,"category":499,"readingTime":417,"relatedServices":510,"date":393},"\u002Finsights\u002Frpa-vs-api-integration","Bots on the screen or calls to the API: where RPA earns its place and where it becomes debt","RPA and API integration solve the same problem at different layers. How to choose, what screen automation really costs, and how to run it safely if you must.",[471,407],{"path":512,"title":513,"description":514,"category":493,"readingTime":417,"relatedServices":515,"date":393},"\u002Finsights\u002Fstrangler-fig-modernization","Replace the legacy system in slices: a working guide to the strangler fig pattern","How to retire a legacy system piece by piece while the business keeps running: the facade, the first slice, parallel runs, and when the pattern fails.",[419,407],{"path":517,"title":518,"description":519,"category":416,"readingTime":463,"relatedServices":520,"date":393},"\u002Finsights\u002Ftwo-week-discovery-deliverables","Paying for a Plan, Not a Pitch: What Two Weeks of Discovery Owes You","A paid discovery should leave you with documents another team could build from. The five deliverables, the work behind them and the limits to expect.",[407,419],1792618973202]