[{"data":1,"prerenderedAt":947},["ShallowReactive",2],{"caseStudies":3,"blogs":424},[4],{"id":5,"title":6,"date":7,"description":8,"extension":9,"meta":10,"stem":422,"__hash__":423},"caseStudies\u002Fcase-studies\u002Fglobal-fintech-transformation.md","Global Fintech Transformation","2026-03-01","Consolidated 14 legacy systems into a unified Revenue Cloud architecture.","md",{"tags":11,"cover":14,"benefitScale":15,"benefitName":16,"body":17},[12,13],"data cloud","cpq","\u002Fimages\u002Fblog\u002Fnuxt-content-cover.jpg","150%","Improvement",{"type":18,"value":19,"toc":389},"minimark",[20,25,29,32,36,41,54,58,69,73,84,88,99,101,105,109,123,127,141,145,156,158,162,166,180,184,189,204,208,219,223,234,238,249,251,255,259,270,274,285,289,300,304,315,319,330,332,336,340,351,355,369,371,375],[21,22,24],"h2",{"id":23},"overview","Overview",[26,27,28],"p",{},"A global fintech enterprise operated with 14 disconnected systems across regions, creating operational inefficiencies, inconsistent pricing, and fragmented customer data. The transformation focused on unifying revenue operations through Salesforce Revenue Cloud.",[30,31],"hr",{},[21,33,35],{"id":34},"problem-breakdown","Problem Breakdown",[37,38,40],"h3",{"id":39},"_1-system-fragmentation","1. System Fragmentation",[42,43,44,48,51],"ul",{},[45,46,47],"li",{},"14 independent systems across sales, billing, and customer management",[45,49,50],{},"No single source of truth for customer or revenue data",[45,52,53],{},"High dependency on manual reconciliation between systems",[37,55,57],{"id":56},"_2-inconsistent-pricing-quoting","2. Inconsistent Pricing & Quoting",[42,59,60,63,66],{},[45,61,62],{},"Region-specific pricing logic embedded in different tools",[45,64,65],{},"Manual quote generation leading to errors and delays",[45,67,68],{},"Lack of standardized discounting and approval workflows",[37,70,72],{"id":71},"_3-data-silos","3. Data Silos",[42,74,75,78,81],{},[45,76,77],{},"Customer data duplicated across CRM, billing, and support systems",[45,79,80],{},"No unified customer profile",[45,82,83],{},"Limited ability to run global analytics",[37,85,87],{"id":86},"_4-operational-inefficiency","4. Operational Inefficiency",[42,89,90,93,96],{},[45,91,92],{},"Slow quote-to-cash cycle",[45,94,95],{},"High maintenance cost for legacy infrastructure",[45,97,98],{},"Difficult onboarding for new regions or products",[30,100],{},[21,102,104],{"id":103},"existing-architecture","Existing Architecture",[37,106,108],{"id":107},"characteristics","Characteristics",[42,110,111,114,117,120],{},[45,112,113],{},"Point-to-point integrations between systems",[45,115,116],{},"Region-specific CRM and billing tools",[45,118,119],{},"Custom scripts for data synchronization",[45,121,122],{},"Batch-based data transfers (delayed updates)",[37,124,126],{"id":125},"stack-snapshot","Stack Snapshot",[42,128,129,132,135,138],{},[45,130,131],{},"Legacy CRM systems (multiple instances)",[45,133,134],{},"Separate billing platforms per region",[45,136,137],{},"Middleware with tightly coupled integrations",[45,139,140],{},"Data stored in isolated silos",[37,142,144],{"id":143},"key-issues","Key Issues",[42,146,147,150,153],{},[45,148,149],{},"Fragile integration layer (high failure rate)",[45,151,152],{},"No scalability for new markets",[45,154,155],{},"Limited observability and reporting",[30,157],{},[21,159,161],{"id":160},"proposed-architecture","Proposed Architecture",[37,163,165],{"id":164},"design-principles","Design Principles",[42,167,168,171,174,177],{},[45,169,170],{},"Single source of truth for customer and revenue data",[45,172,173],{},"API-led, loosely coupled integrations",[45,175,176],{},"Standardized global processes with regional flexibility",[45,178,179],{},"Scalable, modular architecture",[37,181,183],{"id":182},"target-architecture-components","Target Architecture Components",[185,186,188],"h4",{"id":187},"_1-salesforce-revenue-cloud","1. Salesforce Revenue Cloud",[42,190,191,198],{},[45,192,193,197],{},[194,195,196],"strong",{},"Salesforce CPQ"," for unified pricing and quoting",[45,199,200,203],{},[194,201,202],{},"Billing & Revenue Management"," for lifecycle handling",[185,205,207],{"id":206},"_2-data-cloud","2. Data Cloud",[42,209,210,213,216],{},[45,211,212],{},"Centralized customer data platform",[45,214,215],{},"Identity resolution across systems",[45,217,218],{},"Real-time data availability",[185,220,222],{"id":221},"_3-integration-layer","3. Integration Layer",[42,224,225,228,231],{},[45,226,227],{},"API-first architecture",[45,229,230],{},"Replacement of point-to-point with reusable services",[45,232,233],{},"Event-driven data synchronization",[185,235,237],{"id":236},"_4-governance-security","4. Governance & Security",[42,239,240,243,246],{},[45,241,242],{},"Role-based access control",[45,244,245],{},"Standardized data models",[45,247,248],{},"Global governance framework",[30,250],{},[21,252,254],{"id":253},"implementation-how-it-was-built","Implementation (How It Was Built)",[37,256,258],{"id":257},"phase-1-discovery-mapping","Phase 1: Discovery & Mapping",[42,260,261,264,267],{},[45,262,263],{},"Audited all 14 systems and their data flows",[45,265,266],{},"Identified redundancies and critical dependencies",[45,268,269],{},"Defined canonical data model",[37,271,273],{"id":272},"phase-2-data-foundation","Phase 2: Data Foundation",[42,275,276,279,282],{},[45,277,278],{},"Consolidated customer data into Data Cloud",[45,280,281],{},"Implemented identity resolution and deduplication",[45,283,284],{},"Established real-time data pipelines",[37,286,288],{"id":287},"phase-3-revenue-cloud-setup","Phase 3: Revenue Cloud Setup",[42,290,291,294,297],{},[45,292,293],{},"Configured Salesforce CPQ with standardized pricing rules",[45,295,296],{},"Built product catalog and discounting logic",[45,298,299],{},"Implemented quote-to-cash workflows",[37,301,303],{"id":302},"phase-4-integration-refactor","Phase 4: Integration Refactor",[42,305,306,309,312],{},[45,307,308],{},"Replaced point-to-point integrations with API services",[45,310,311],{},"Introduced event-driven architecture for updates",[45,313,314],{},"Decoupled legacy systems progressively",[37,316,318],{"id":317},"phase-5-migration-rollout","Phase 5: Migration & Rollout",[42,320,321,324,327],{},[45,322,323],{},"Phased regional rollout to reduce risk",[45,325,326],{},"Parallel run with legacy systems during transition",[45,328,329],{},"User training and adoption programs",[30,331],{},[21,333,335],{"id":334},"final-outcome","Final Outcome",[37,337,339],{"id":338},"architecture-state","Architecture State",[42,341,342,345,348],{},[45,343,344],{},"Single unified Revenue Cloud platform",[45,346,347],{},"Centralized customer data via Data Cloud",[45,349,350],{},"API-led, scalable integration layer",[37,352,354],{"id":353},"business-impact","Business Impact",[42,356,357,360,363,366],{},[45,358,359],{},"150% improvement in operational efficiency",[45,361,362],{},"Significant reduction in system complexity",[45,364,365],{},"Faster and more accurate quote-to-cash cycle",[45,367,368],{},"Real-time global revenue visibility",[30,370],{},[21,372,374],{"id":373},"key-learnings","Key Learnings",[42,376,377,380,383,386],{},[45,378,379],{},"Strong data foundation is critical before consolidation",[45,381,382],{},"API-led architecture prevents future rigidity",[45,384,385],{},"Standardization must balance global and regional needs",[45,387,388],{},"Incremental rollout reduces transformation risk",{"title":390,"searchDepth":391,"depth":391,"links":392},"",2,[393,394,401,406,410,417,421],{"id":23,"depth":391,"text":24},{"id":34,"depth":391,"text":35,"children":395},[396,398,399,400],{"id":39,"depth":397,"text":40},3,{"id":56,"depth":397,"text":57},{"id":71,"depth":397,"text":72},{"id":86,"depth":397,"text":87},{"id":103,"depth":391,"text":104,"children":402},[403,404,405],{"id":107,"depth":397,"text":108},{"id":125,"depth":397,"text":126},{"id":143,"depth":397,"text":144},{"id":160,"depth":391,"text":161,"children":407},[408,409],{"id":164,"depth":397,"text":165},{"id":182,"depth":397,"text":183},{"id":253,"depth":391,"text":254,"children":411},[412,413,414,415,416],{"id":257,"depth":397,"text":258},{"id":272,"depth":397,"text":273},{"id":287,"depth":397,"text":288},{"id":302,"depth":397,"text":303},{"id":317,"depth":397,"text":318},{"id":334,"depth":391,"text":335,"children":418},[419,420],{"id":338,"depth":397,"text":339},{"id":353,"depth":397,"text":354},{"id":373,"depth":391,"text":374},"case-studies\u002Fglobal-fintech-transformation","2qR0q8p5vsxkmKhru_dGEAGCK_ltsVDUHs7QcplXr2I",[425,728],{"id":426,"title":427,"cover":14,"date":428,"description":429,"draft":430,"extension":9,"meta":431,"stem":722,"tags":723,"__hash__":727},"blogs\u002Fblogs\u002Fbuilding-a-scalable-salesforce-content-system.md","Building a Scalable Salesforce Content System","2026-03-29","How to structure, manage, and deliver content inside Salesforce for scalable operations.",false,{"body":432},{"type":18,"value":433,"toc":709},[434,438,441,444,448,451,465,468,482,486,489,498,502,505,509,512,523,526,537,541,544,547,558,561,572,576,579,590,593,604,608,611,614,625,628,631,642,646,664,667,671,685,689,692,706],[435,436,427],"h1",{"id":437},"building-a-scalable-salesforce-content-system",[26,439,440],{},"Modern Salesforce implementations fail not because of features, but because of fragmented, unstructured content. Notes live in fields, documentation lives outside the system, and knowledge becomes tribal. This creates operational drag, onboarding friction, and inconsistent customer experiences.",[26,442,443],{},"A scalable content system inside Salesforce eliminates that entropy.",[21,445,447],{"id":446},"the-problem","The Problem",[26,449,450],{},"Most teams treat Salesforce purely as a data system:",[42,452,453,456,459,462],{},[45,454,455],{},"Records store facts, not context",[45,457,458],{},"Documentation exists in external tools",[45,460,461],{},"Business logic is understood only by a few individuals",[45,463,464],{},"Knowledge is duplicated across emails, Slack, and tickets",[26,466,467],{},"This results in:",[42,469,470,473,476,479],{},[45,471,472],{},"Slow onboarding",[45,474,475],{},"Inconsistent sales and support responses",[45,477,478],{},"High dependency on specific individuals",[45,480,481],{},"Poor system adoption",[21,483,485],{"id":484},"the-shift-content-as-a-first-class-layer","The Shift: Content as a First-Class Layer",[26,487,488],{},"Instead of treating content as an afterthought, it must be structured, queryable, and embedded directly into workflows.",[26,490,491,492,495],{},"Core principle:",[493,494],"br",{},[194,496,497],{},"Data tells you what happened. Content tells you what to do.",[21,499,501],{"id":500},"system-architecture","System Architecture",[26,503,504],{},"A scalable Salesforce content system has three layers:",[37,506,508],{"id":507},"_1-structured-content-storage","1. Structured Content Storage",[26,510,511],{},"Use one of the following depending on complexity:",[42,513,514,517,520],{},[45,515,516],{},"Salesforce Knowledge (for support-heavy orgs)",[45,518,519],{},"Custom Objects (for flexible schemas)",[45,521,522],{},"External CMS (for large-scale publishing systems)",[26,524,525],{},"Content must be:",[42,527,528,531,534],{},[45,529,530],{},"Modular (small reusable units)",[45,532,533],{},"Tagged (by product, stage, persona)",[45,535,536],{},"Versioned",[37,538,540],{"id":539},"_2-dynamic-rendering-layer","2. Dynamic Rendering Layer",[26,542,543],{},"Content should not be static text blobs.",[26,545,546],{},"Instead:",[42,548,549,552,555],{},[45,550,551],{},"Store content as structured JSON or rich text",[45,553,554],{},"Render dynamically in Lightning Web Components (LWC) or frontend frameworks",[45,556,557],{},"Apply consistent styling and formatting rules",[26,559,560],{},"This allows:",[42,562,563,566,569],{},[45,564,565],{},"Reusability across pages",[45,567,568],{},"Conditional rendering based on context",[45,570,571],{},"Central updates without duplication",[37,573,575],{"id":574},"_3-contextual-delivery","3. Contextual Delivery",[26,577,578],{},"Content must appear exactly where decisions happen:",[42,580,581,584,587],{},[45,582,583],{},"Sales: playbooks inside Opportunity view",[45,585,586],{},"Support: troubleshooting steps inside Case view",[45,588,589],{},"Onboarding: guided flows embedded in UI",[26,591,592],{},"Delivery should be:",[42,594,595,598,601],{},[45,596,597],{},"Role-aware",[45,599,600],{},"Stage-aware",[45,602,603],{},"Data-driven",[21,605,607],{"id":606},"example-use-case","Example Use Case",[26,609,610],{},"A sales rep opens an Opportunity.",[26,612,613],{},"Instead of guessing next steps:",[42,615,616,619,622],{},[45,617,618],{},"The system surfaces a playbook based on deal stage",[45,620,621],{},"Shows objection-handling scripts",[45,623,624],{},"Provides relevant case studies",[26,626,627],{},"All pulled dynamically from the content system.",[26,629,630],{},"Result:",[42,632,633,636,639],{},[45,634,635],{},"Reduced ramp time",[45,637,638],{},"Higher win rates",[45,640,641],{},"Consistent messaging",[21,643,645],{"id":644},"implementation-strategy","Implementation Strategy",[647,648,649,652,655,658,661],"ol",{},[45,650,651],{},"Start with one domain (e.g., sales playbooks)",[45,653,654],{},"Define a content schema",[45,656,657],{},"Build reusable components for rendering",[45,659,660],{},"Integrate into one workflow surface",[45,662,663],{},"Expand incrementally",[26,665,666],{},"Avoid attempting full-system transformation upfront.",[21,668,670],{"id":669},"key-design-rules","Key Design Rules",[42,672,673,676,679,682],{},[45,674,675],{},"No free-form content without structure",[45,677,678],{},"No duplication — everything reusable",[45,680,681],{},"No content without ownership",[45,683,684],{},"No rendering without context",[21,686,688],{"id":687},"outcome","Outcome",[26,690,691],{},"A properly implemented system creates:",[42,693,694,697,700,703],{},[45,695,696],{},"Institutional memory inside Salesforce",[45,698,699],{},"Faster execution across teams",[45,701,702],{},"Reduced dependency on individuals",[45,704,705],{},"Scalable knowledge distribution",[26,707,708],{},"The system stops being a database and becomes an operational engine.",{"title":390,"searchDepth":391,"depth":391,"links":710},[711,712,713,718,719,720,721],{"id":446,"depth":391,"text":447},{"id":484,"depth":391,"text":485},{"id":500,"depth":391,"text":501,"children":714},[715,716,717],{"id":507,"depth":397,"text":508},{"id":539,"depth":397,"text":540},{"id":574,"depth":397,"text":575},{"id":606,"depth":391,"text":607},{"id":644,"depth":391,"text":645},{"id":669,"depth":391,"text":670},{"id":687,"depth":391,"text":688},"blogs\u002Fbuilding-a-scalable-salesforce-content-system",[724,725,726],"salesforce","content","architecture","LcFd457obXUgg9122lzykdUEYJQ1HNwr-gk0LnWCjEQ",{"id":729,"title":730,"cover":14,"date":428,"description":731,"draft":430,"extension":9,"meta":732,"stem":944,"tags":945,"__hash__":946},"blogs\u002Fblogs\u002Ftest2.md","Building a Scalable Content System with Nuxt Content","A practical guide to structuring blogs, resources, and case studies using Nuxt Content.",{"body":733},{"type":18,"value":734,"toc":933},[735,739,742,744,748,751,765,768,770,774,777,787,790,792,796,799,816,819,821,823,826,829,840,843,845,849,856,859,861,865,870,881,886,894,896,900,921,923,927,930],[21,736,738],{"id":737},"introduction","Introduction",[26,740,741],{},"Managing content in modern applications requires structure, consistency, and scalability. Using Nuxt Content, Markdown becomes a structured data source with strong querying capabilities.",[30,743],{},[21,745,747],{"id":746},"problem","Problem",[26,749,750],{},"Projects often begin with a single blog folder. Over time:",[42,752,753,756,759,762],{},[45,754,755],{},"Resources need different metadata",[45,757,758],{},"Case studies require structured fields (client, industry)",[45,760,761],{},"Filtering becomes inconsistent",[45,763,764],{},"Content logic leaks into UI",[26,766,767],{},"This creates fragmentation and weak data guarantees.",[30,769],{},[21,771,773],{"id":772},"approach","Approach",[26,775,776],{},"Separate content by intent, not format.",[778,779,784],"pre",{"className":780,"code":782,"language":783},[781],"language-text","content\u002F\n  blogs\u002F\n  resources\u002F\n  case-studies\u002F\n","text",[785,786,782],"code",{"__ignoreMap":390},[26,788,789],{},"Each collection enforces its own schema.",[30,791],{},[21,793,795],{"id":794},"blog-structure","Blog Structure",[26,797,798],{},"A blog post should remain narrative-focused with minimal required metadata:",[42,800,801,804,807,810,813],{},[45,802,803],{},"title",[45,805,806],{},"description",[45,808,809],{},"date",[45,811,812],{},"tags",[45,814,815],{},"optional cover",[26,817,818],{},"This keeps writing friction low while preserving discoverability.",[30,820],{},[21,822,607],{"id":606},[26,824,825],{},"A developer writes about optimizing Nuxt performance.",[26,827,828],{},"Tags enable grouping:",[42,830,831,834,837],{},[45,832,833],{},"nuxt",[45,835,836],{},"performance",[45,838,839],{},"caching",[26,841,842],{},"Queries can later isolate all performance-related posts without restructuring content.",[30,844],{},[21,846,848],{"id":847},"rendering-strategy","Rendering Strategy",[26,850,851,852,855],{},"Pages resolve content using ",[785,853,854],{},"_path",".",[26,857,858],{},"This removes manual routing logic and ensures consistency across content types.",[30,860],{},[21,862,864],{"id":863},"tradeoffs","Tradeoffs",[26,866,867],{},[194,868,869],{},"Pros",[42,871,872,875,878],{},[45,873,874],{},"Strong separation of concerns",[45,876,877],{},"Type-safe frontmatter",[45,879,880],{},"Scalable querying",[26,882,883],{},[194,884,885],{},"Cons",[42,887,888,891],{},[45,889,890],{},"Initial setup overhead",[45,892,893],{},"Requires strict schema discipline",[30,895],{},[21,897,899],{"id":898},"extension-points","Extension Points",[42,901,902,908,915,918],{},[45,903,904,905],{},"Add ",[785,906,907],{},"readingTime",[45,909,910,911,914],{},"Introduce ",[785,912,913],{},"author"," schema",[45,916,917],{},"Implement pagination",[45,919,920],{},"Enable full-text search",[30,922],{},[21,924,926],{"id":925},"conclusion","Conclusion",[26,928,929],{},"Content must behave like structured data, not loose files.",[26,931,932],{},"Nuxt Content provides the primitives. Architecture determines whether it scales.",{"title":390,"searchDepth":391,"depth":391,"links":934},[935,936,937,938,939,940,941,942,943],{"id":737,"depth":391,"text":738},{"id":746,"depth":391,"text":747},{"id":772,"depth":391,"text":773},{"id":794,"depth":391,"text":795},{"id":606,"depth":391,"text":607},{"id":847,"depth":391,"text":848},{"id":863,"depth":391,"text":864},{"id":898,"depth":391,"text":899},{"id":925,"depth":391,"text":926},"blogs\u002Ftest2",[833,725,726],"V6gTt7sqZKSCdWp4gZavEWPboXon8vMiQjtXqtASM2s",1774619882913]