Integration Architect – Evaluate Current System Landscape

Measure Performance for Your Salesforce Org
  • Plan your performance test and identify key personas

    • Visualize current and future features
    • Calculate the RPS (Requests per Second) – this includes inbound XMLHttpRequest(XHRs) and API calls
    • Estimate the size and shape of your data (accounts, users, feeds, groups, and other objects)
    • Include complex relationshps between your objects, role hierarchies, and sharing rules
  • Set Up and Run Performance Tests

    • Add an EPT (Experienced Page Time) Counter to the header of your app
    • Use the Lightning Usage App to view page and browser performance
    • Build a custom report using Lightning Usage App objects
    • Use the Event Monitoring Analytics App to monitor performance with event types
Inheriting a Mature Org

Collect All The Data

  • Assess Sharing Settings
  • How many licenses and types are being purchased?
  • How much storage is used?
  • How many accounts, opportunities, etc are created?
  • Assess Public Groups
  • Assess Roles
  • Assess Queues
  • What edition are you on?
  • Do you leverage Fiscal Year, Holidays, Business Hours?
  • Do you leverage currency management?
  • Assess Users
  • Assess Permission Sets
  • Find any 3rd party users by running a user report for email addresses that do not include the company domain
  • Assess record types and page layouts in each object
  • Find any 3rd party users by running a user report for email addresses that do not include the company domain
  • Assess various record types and page layouts in each object
  • Assess objects – how many and correlation
  • What customizable user interface themes are being used
  • Assess scheduled jobs
  • Assess List Views in each tab
  • Assess reports and dashboards
  • Assess validation rules in each object
  • Lightning Apps
  • Org wide default settings
  • Assess profiles
  • Assess 3rd party apps downloaded
  • Assess Workflows

Review Installed Apps and Integrations

Prepare for Lightning if Needed

  • Check out Lightning Features
  • Use the Lightning Experience Migration Assistant

Quick Wins

  • Simplicity/Scalability
    • Only use needed fields
    • Optimize page layouts
  • Automation
    • Automate manual tasks (like things that use spreadsheets)
  • Communication
    • Review logins rates
    • User adoption
    • User feedback
    • Check in with Salesforce Advocates
    • Public Roadmap
Salesforce Optimizer

Use Salesforce Optimizer to: 

– Perform proactive maintenance

– Perform cleanup

– Improve user experience

– Migrate to Lightning Experience

Its primary benefits: 

  • Maintain customizations
  • Decrease business and techinical debt
  • Increase productivity
  • Drive Salesforce usage

It can be accessed by searching in Salesforce Setup

 

Salesforce to Salesforce

What can it do?

Connected orgs do not have direct access – they have a record in their org that reflects your record. Changes are synced back and forth.

  • Forward records to another salesforce organization
  • Accept records forwarded from a connected organization
  • Use criteria for automatically accepted related records (if you accept a parent record related or child records are automatically accepted)

Reporting

  • Track survey responses
  • Track connection activity
  • Track connection information for published or subscribed objects
  • Custom Report type view records shared with multiple connections
  • View shared leads deleted by a connected organization

Fun Facts

  • To stop sharing a record select Stop Sharing in the External Sharing related list
  • To stop sharing case comments or attachments you must make the records private
  • An opportunity product is related to both opportunity and product records and can only be shared as a child record of a shared opportunity
  • Case comments can be shared as a child record of a case
  • Use connection history to identify errors when accepting a record
  • A related record will no longer be a shared with a connection if the related record is edited from an unshared record
  • Maximum of 100 tasks per related record can be shared (this includes both open and closed)
  • Because updates to shared records are processed asynchronously and retried they don’t appear in the connected org right away
  • If you are accepting large amounts enable auto accept
  • You can create auto assignments for cases and leads by setting the following
    • Received Connection Name contains name of connection
    • Created By contains Connection User
Status of Shared Record Description
Active (sent) The record has been forwarded to and accepted by an external organization.
Active (received) The record has been sent to you from an external organization, and it has been accepted.
Pending (sent) The record was forwarded to but not yet accepted by an external organization.
Inactive The record is no longer shared with an external organization.
Inactive (deleted) The record was accepted by an external organization, but that organization has deleted the record.
Inactived (converted) The record is a lead that was accepted by an external organization and converted into an opportunity by that organization. When a lead is converted, Salesforce to Salesforce inactivates the shared record so that it is no longer updated in the subscribing connection.

 

Application Integration Patterns for Salesforce Lightning Platform

Connectors for Data Integration

Org Performance at Scale

Integration Architecture for the Salesforce Platform
  • Integration Architecture Aligns the Business Strategy with Technical Capabilities
  • The Integration Architecture supports a Mix of Batch Processing and Real-time Services Middleware
  • The Integration Architecture is Based Upon Business Service Level Agreements (SLAs)
  • The Integration Architecture Has a Clearly Defined Standard for Applying Different Integration Use Cases

Cloud-to-Ground (Salesforce Platform Originated)

    • Salesforce originated message is relayed to a DMZ (Demilitarized Zone) service end point. This can be a firewall, a services gateway appliance or a reverse proxy. This is where much of the security authentication occurs (Whitelisted IPs, two-way SSL, and basic HTTP authentication)
    • The message is relayed from the DMZ to the On-Premise Infrastructure (Usually destined for a ESB – Enterprise Service Bus)
    • ESB may be pushing to the SOA infrastructure. If you do not have have a SOA layer you may need to integrate directly in to the legacy application
    • On-Premise database access may be needed. In a Cloud-to-Ground scenario this transaction would be a database READ. 

Ground-to-Cloud

    • Mature Integration Architecture handles real-time calls into Salesforce from the ESB. If you do not have an ESB, this occurs from each separate application
      • Recommened to use a centralized integration middleware (You can use oAtuh or user/pw session based authentication to Salesforce)
    • Many can be handled in batch design (Recommend a robust ETL solution for all Salesforce environments)
    • Off-load Salesforce data into a replicate copy to protect against losing data to user error, bad-code, or run-away processes. 
    • The ETL is responsible for moving data in and out of our database. 

Cloud-to-Cloud

    • Can use Salesforce to Salesforce or RESTful web services
    • Avoid using Apex as your primary integration technology and utilize middleware if possible
    • Also consider Integration-as-a-Service package
    • Cloud service bus can handle service mediation, transformation, routing, error handling
    • The cost of resiliant ESBs can be high. If your service levels must go through your on-premise technology you may end of piggy-backing on the same technical infratracture, cost, service levels and release timeline.