Top 5 Salesforce Integration Patterns - Attuneww

Transcription

WHITEPAPERTop 5 SalesforceIntegration PatternsBest Practices for Integrating Salesforce

Salesforce Integration: Connecting Beyond CRMtransformation – which the data set will undergoEvery business, no matter how large or established, requiressound and ongoing customer relationship management. As theleading CRM system, Salesforce can accelerate and increasesales, enhance customer loyalty and grow marketing capabilities.Companies can use Salesforce to connect with customers and gainvital data that can influence decisions. Additionally, cross-functionalteams can access and leverage the most up-to-date customerinformation throughout the organization in order to streamlinebusiness processes and maximize services and solutions. But howcan businesses extend Salesforce to facilitate all this?a destination system – where the data will be insertedEffective and efficient integration of Salesforce with adjacententerprise systems, such as databases, ERP and CRM systemsand custom applications, is critical to enabling sales teams,increasing revenue and better serving customers. Increasinglycompanies find that the best way to solve both their IT andbusiness needs is to use best of breed systems, each designedfor a specific functionality, and to use an integration platform tomake all of the systems work together seamlessly. Integrationplays a critical part, especially when dealing with legacy systems,mergers and acquisitions, new company initiatives, or developinga partner ecosystem. Each of these needs will lead to uncoveringnew opportunities, new ways to approach an account, or situationswhere you can provide additional value to your customers.Salesforce Integration PatternsAcross the broad spectrum of Salesforce integration needs,patterns emerge for how to best address these challenges. Patternsas defined here are the most logical sequence of steps to solvinga specific type of integration problem and are discovered andestablished from real world use cases. An integration applicationincludes a pattern and business use case. The business use caseis comprised of the value obtained from an integration and thepattern is the use of the generic process for data movement andhandling.When thinking about the format of a simple point-to-point, atomicintegration, one can use the following structure:.Application(s) A to Application(s) B – Object(s) – Patternresults capture – to compare the final state with the desired state.The five most common integration patterns are migration, broadcast,aggregation, correlation, and bi-directional synchronization.MigrationData migration is the act of moving a specific set of data at a pointin time from one system to another. A migration pattern allowsdevelopers to create automated integration services for functionalitythat will be shared across multiple teams. Developers can setconfiguration parameters to pass into the API call, so that themigration application can dynamically migrate scoped Salesforcedata in or out of Salesforce either on command or in the form of anAPI. Creating reusable services for frequent migrations can save anexceptional amount of time for development and operations teams.There are numerous Salesforce integration scenarios that maycall for the migration pattern including, migrating from a legacyCRM system to Salesforce, from one Salesforce org to another,backing up a customer master dataset, consolidating CRM systems,populating Salesforce product data from SAP, and more. Migrationpatterns are tuned to handle large volumes of data, process manyrecords in batches and to have a graceful failure case.Migrations are essential to any data systems and are executedextensively in any organization that has data operations. A lot oftime is spent creating and maintaining data, and migration is keyto keep that data agnostic from the tools used to create it, view it,and manage it. Without the ability to migrate it, data would be lostanytime tools were changes, crippling the ability to be productive inthe digital world.BroadcastTo templatize common Salesforce integration needs, base patterns,or best practices, must first be established to make integrationsatomic, reusable, extensible, and easily understandable. Theessence of a pattern include some combination of at least one eachof the following elements:a source system – where data resides prior to executionthe criteria – which determines the scope of data to be copied,moved or replicated1Contact usShare

Broadcast is the act of moving data from a single source system tomany destination systems in an ongoing, near real-time or real-timebasis . Essentially, it is one-way synchronization from one to many.Typically “one way sync” implies a 1:1 relationship; however, thebroadcast pattern can also be a 1:many relationship.In contrast to the migration pattern, the broadcast pattern istransactional – executing logic only for items that have recentlymodified – and is optimized for processing records as quickly aspossible. Broadcast patterns are highly flexible and used to keepdata up to date between multiple systems, across time. A broadcastpattern should be highly reliable to avoid losing critical data intransit. Reliability is also necessary to employ integrations with lowhuman oversight across mission critical applications as broadcastpatterns are usually initiated by a push notification or a scheduledjob.The broadcast pattern allows for the immediate transfer of customerdata between systems, whether from two instances of Salesforceor between Salesforce and other systems. For instance, the patterncan broadcast contacts between Salesforce orgs or can enable anaction in Salesforce to immediately translate into order fulfillmentprocessing. Examples of use cases for the broadcast patterninclude the following:real time, would mean maintaining a database to store replicateddata to be queried. Aggregation is the simplest way to extract andprocess data from multiple systems into one application or report.By using an integration template built on an aggregation pattern,developers can query multiple systems on demand and mergedata sets to use data however needed, including creating or storingreports in .csv or other formats of choice. Inherent in the pattern isa custom logic that can be modified to merge and format data asdesired and that can be easily extended to insert data into multiplesystems, such as Salesforce, SAP and Siebel.Examples of uses for the aggregation pattern include the following:Creating a dashboard that pulls data from multiple Salesforceinstances, while ensuring data consistencyUpdating Salesforce with data from both ERP and issuetracking systemsBuilding APIs that collect and return data from multiplesystems, or report across multiple systemsReal time data needs to be synchronized from Siebel toSalesforceSince the aggregation pattern allows developers to extract andprocess data from multiple systems and merge them into oneapplication, data is always up to date, does not get replicated, andcan be processed or merged to produce any desired dataset orreport. This avoids the need to have a separate database for mergedcontent and makes reports available in any format or within anyrepository.Salesforce must be updated with object changes in otheradjacent enterprise applicationsThe aggregation pattern is particularly helpful in the followingscenarios:A sales order in SAP should be created when an opportunity ismarked as CLOSED WON in SalesforceAggregationWhen creating orchestration APIs that get data from multiplesystems to “modernize” legacy systems by processing data intoone responseWhen creating reports or dashboards which similarly have topull data from multiple systems and create an experience withthat dataWhen systems used for compliance or auditing purposesneed to have related data from multiple systems. With theaggregation pattern, compliance data can be collected frommultiple systems, but be housed in a central, compliantrepositoryAggregation is the act of taking or receiving data from multiplesystems and moving or copying that data into one system. Thealternative would be to run multiple migrations on a daily basis,which means worrying about keeping data accurate, synchronizedand up to date. Broadcasting data from multiple systems, thoughWhen leveraging the aggregation pattern to integrate data andapplications, key considerations include collecting data, the scopeof the source data and insert data, merging multiple datasets,formatting data, and any additional destinations. For example, whencollecting data, there are two ways to do so: either create a systemthat listens for messages from multiple systems and aggregatesthem in real time, or create an application that is triggered by anevent. When combining multiple datasets, it is important to considerhow to merge them and how to present the data in the final report ordestination system.2Contact usShare

Bi-Directional SyncBi-directional sync is the act of uniting two or more datasets in two ormore different systems to behave as one system that recognizes theexistence of different datasets. This type of integration is useful whendifferent tools or different systems, which are needed in their ownright and for their own specific purposes, must accomplish differentfunctions on the same data set. Using bi-directional sync to share thedataset enables use of both systems, while maintaining a consistentreal time view of the data across systems.Enterprises can use bi-directional sync integration to:optimize organizational processesmore closely align data representations to reality in both systemsreduce the compound cost of manually addressing inconsistencies,lack of data or the impact to business as a result of inconsistencieshand pick and customize a suite of tools with best of breedapplications used collectively for specific organizational aimsBi-directional sync integration enables each system to performoptimally while maintaining data integrity across both synchronizedsystems. It can provide flexibility to modularly add and remove twoor more systems that subspecialize inside a domain as storage. Thesync is particularly advantageous when object representations ofreality must be comprehensive and consistent.In B2B sales models, Salesforce can be integrated with multiplesystems that contribute to operational efficiencies and a streamlinedquote to cash flow but still serve as the system of record or primarysystem for all data that needs to be synchronized. It is a patternthat could unify the most relevant and best performing applicationsto enhance Salesforce functionalities and result in overall growth insales.Correlationnew records if they are found in one system and not the other. Thecorrelation pattern is not discerning in terms of origination of objects.It will agnostically synchronize objects as long as they are found inboth systems.Correlation is useful for cases in which two groups or systems onlywant to share data, but only if they both have records representingthe same items or contacts in reality. The correlation pattern is mostuseful when extra data is more costly than beneficial as it scopesout the “unnecessary” data. For example, hospitals in the samehealthcare network may want to correlate patient data for sharedpatients across hospitals, but it would be a privacy violation to sharepatient data with a hospital that has never admitted or treated thepatient.With the correlation pattern, the most important consideration is thedefinition of the term “same” across records. This definition can varyby industry and consequences for unclear definitions also vary. Forexample, in targeting offers to customers, the same name may beclose enough; however, in a hospital, relying on a name could haveserious consequences if two patients have the same name anddifferent courses of treatment. The table below illustrates what canoccur when the definition of “same” is too strict, too lax or accurateacross correlation and bi-directional sync.Just RightToo StrictToo LooseBi-Directional SyncUnion of Data SetsDuplicate CreatedWrong RecordsMergedCorrelationIntersection of DataSetsNot SynchronizedWrong RecordsMergedThe correlation pattern allows shared account data to besynchronized across applications, including Salesforce instances,either across an organization or between a company and a partner.Working internally, it can also allow for synchronization of customerdata entered by two different teams or even team members of thesame department.Patterns in Practice: Anypoint TemplatesBuilt on MuleSoft’s Anypoint Platform, Anypoint Templates are highperformance, simplified solutions to building integration applications,designed by our best engineers. These templates accelerate “timeto value” and meet the highest standard of quality to best fulfillorganizational demands.MuleSoft templates are:Correlation and bi-directional sync are very similar but thepatterns have one critical difference. The correlation patternidentifies the intersection of two data sets and does a bi-directionalsynchronization of that scoped dataset, but only if that item occursin both systems naturally. Bi-directional synchronization will createcomplete for atomic use cases – They are comprehensive andfocused on the main base unit of value, but are compounded byadding flows in a parallel or serial order.reusable – Anypoint Templates conform the base to basepatterns leveraged in many variations of the same baseproblem.3Contact usShare

extendible – Anypoint Templates are designed to grow,containing limited field mappings, data scopes, insertstatements, definitions of “same” and transformations to adhereto specifics within each enterprise.high quality – They are built and tested with production qualityin mind.elegant – Flows are built to read like an integration story so thatthey are easily understood.documented – Clear, complete documentation helps to quicklyrealize value and to help developers rapidly understand andinitiate templates.easy to f

Salesforce Integration Patterns Across the broad spectrum of Salesforce integration needs, patterns emerge for how to best address these challenges. Patterns as defined here are the most logical sequence of steps to solving a specific type of integration problem and are discovered and established from real world use cases. An integration application