After Test Summary
I passed. For me, this was the easiest Salesforce certification I’ve taken so far. The test had multiple questions regarding Outbound Messages, Salesforce connect, and surprisingly Web-To-Lead.
Overview
Here’s the Integration Designer study guide I prepared for myself. I’ve done numerous integrations and built a Bulk API Starter project so this guide contains things I wasn’t very knowledgeable in. If you’re thinking about taking this exam, make sure you’ve done a few real integrations first. One thing I find lacking in these materials is integration error handling and different ways to handle that.
Resources
- Integration Patterns and Practices
- Salesforce Integration Architecture
- Webservice API Video
- Always A Blezard
- Salesforce Memo
- Salesforce Ben
- Exploring on Salesforce
- Cory Cowgill
Outline
- Salesforce Integration Capabilities – 28%
- Salesforce Integration Patterns – 17%
- Enterprise Integration Architecture Concepts – 15%
- Salesforce Integration Testing – 10%
- Integrating with Force.com: Security – 15%
- Tools – 10%
- Monitoring – 5%
Foundational Platform Integration Points
- Creating and exposing web services using Apex
- Invoking external web services from Apex
- Outbound messaging for invoking external web services when data changes
- HTTP and REST integration
- Email integration for inbound and outbound messaging
- Force.com SOAP APIs
- Syndication feeds via Force.com Sites
- Replication API
- getDeleted – Retrieves the list of records that have been deleted within the given timespan for a specified object
- getUpdated – Retrieves the list of records that have been added or changed during a specified timespan for the specified object.
- These API calls return a set of IDs for records that have been added, updated, or deleted as well as the timestamp in UTC indicating when they were last updated or deleted.
Force.com Security
Inbound
- Authentication, Network, and session security
- How is user authenticated?
- For how long is session valid?
- Data Security
- How is access to data regulated?
- Transport layer security
- How is communication secured?
Outbound Messaging
- Can be used within a workflow rule or approval process
- Sent asynchronously
- Reliable – 24-hour retry for failed messages
- Secure
- Support HTTP/S
- Supports X.509 client certificates for 2-way SSL authentication
- Send from Salesforce.com IP addresses
- Outbound messages contain Organization ID
- Two-way communication can be achieved using a callback
- Outbound message can contain the enterprise or partner URL and session ID token
Salesforce-To-Salesforce
Native Salesforce feature that allows one org to share data with another org. Once enabled it can’t be disabled.
After two orgs have enabled Salesforce-To-Salesforce, they have to establish a connection. A connection is established by sending an invite email and the receiver accepting it using the given link. After connection established, each party can publish the objects the other party can subscribe to. Most standard objects and all custom objects are available.
When subscribing, one can decide to Auto-Accept records per object or not. If not, one has to approve the inbound records before they’re available. Junction objects are auto-accepted and child records are auto-accepted if their parent records are accepted. One has to map the fields from the published object to their fields too.
Field Mapping Considerations
- Data Type Matching – Only matching data type fields can be mapped.
- Field Visibility – Lookup IDs are not available for publishing. You can enable S@S for those fields with formulas.
Record Sharing
Records are shared either manually or programmatically.
Common Integration Architectures
Point-to-Point
Each System is connected to every other system through a direct integration. Easy to implement with only a few systems. Difficult to scale.
Hub and Spoke
Every system connects to the hub. All data transfer is done through the hub. Easy to design and implement.
Considerations
- Architectures are proprietary in nature
- Single point of failure
- Inability to support large transaction volumes
Enterprise Service Bus
Distributed services architecture. Employs distributed adapters. Highly scalable.
Middleware
Computing software that functions as an intermediate layer between systems
Typical functions
- ETL (Extract, Tranform, Load)
- Data Cleansing
- Process Management
Integration Patterns
Remote Process Invocation – Request and Reply
Scenario: Salesforce invokes a process on a remote system, waits for completion of that process, and then tracks state based on the response from the system.
Remote Process Invocation – Fire and Forget
Scenario: Salesforce invokes a process in a remote system but doesn’t wait for completion of the process. Instead, the remote process receives and acknowledges the request and then hands off control back to Salesforce.
Batch Data Synchronization
Scenario: Data stored in Lightning platform should be created or refreshed to reflect updates from an external system, and when changes from Lightning platform should be sent to an external system. Updates in either direction are done in a batch manner.
Remote Call-In
Scenario: Data stored in Lightning platform is created, retrieved, updated, or deleted by a remote system.
UI Update Based on Data Changes
Scenario: Salesforce user interface must be automatically updated as a result of changes to Salesforce data.
Pattern Selection Matrix
Streaming API
Exposes a near real-time stream of data from the platform. Notifications can be sent to
- Salesforce pages
- Application Servers outside Salesforce
- External Clients
Use For
- Applications that need to poll against Salesforce data frequently
- Near real-time notifications
Basic Technology
Push Technology / Pub/Sub
Considerations
- Updates performed by the Bulk API won’t generate notifications, since such updates could flood a channel.
- Evemts may generat a notification, but it is not guaranteed.
- Unsupported Queries
- Queries without an ID in the selected fields list
- Queries with relationships
- If a Salesforce application server is stopped,
- All the messages being processed but not yet sent are lost
- Client must reconnect and subscribe to the topic channel to receive notifications
- Clients only receive notifications when a subscriptions and connection are active.
Chatter REST API
REST API for integrating with Chatter.
Key Aspects
- Pre-aggregration of data from different objects
- /services/data/v24.0/chatter/users/me
- Data automatically localized to the user’s time zone and language
- Built-in Pagination
- Structured for rendering on websites and mobile devices
- Provides easy relationship traversal
Examples
- Requesting a News Feed
- Updating the User’s status
- Inserting a Post with @mention – Mention id has to be specified in messageSegments
Security
Inbound Security
- User Authentication
- Security Token
- Two-Factor Authentication
- OAuth
- Network Authentication
- determines when and from where a user can log in.
- Login Hours and IP Ranges in a user’s profile
- Org-Wide Trusted IP Address list.
- determines when and from where a user can log in.
- Session Security
- Data Security
- Standard APIs follow regular Object-Level, Field-Level and Record-Level security.
- Application-Level Security
- API Client Whitelisting restricts all client application access until explicitly defined by the administrator.
- Client applications that are not configured as connected apps are denied access.
- Includes Data Loader, Salesforce 1, Workbench, and Force.com Migration Tool
- Users whose profile or permission set has the “Use the API Client” permission may access any connected app.
- Contact Salesforce to enable API Client whitelisting.
- Transport Layer Security
Authentication Flow
Outbound Security
- Two-way TLS
- Both the client and server present a certificate to prove their identity to the other party.
- A mutually trusted certificate authority signs the certificate establishing the trust between the two parties.
- Outbound port restrictions
- Port 80: HTTP only
- Port 443: HTTPS only
- Ports 10244-66535 inclusive: HTTP or HTTPS
- Remote Site registration
- A remote site setting is needed before Apex is allowed to callout to an external system.
- Named Credentials
- A named credential specifies the URL of a callout endpoint and its required authentication parameters in one definition.
- Supported Callout Types
- Apex Callouts
- Salesforce Connect: OData 2.0
- Salesforce Connect: OData 4.0
- Salesforce Connect: Custom (developed with the Apex Connector framework)
External Object Relationships
Relationship | Allowed Child Objects | Allowed Parent Objects | Parent Field for Matching Records |
---|---|---|---|
Lookup | Standard
Custom External |
Standard
Custom |
The 18-character Salesforce record ID |
External lookup | Standard
Custom External |
External | The External ID standard field |
Indirect lookup | External | Standard
Custom |
You select a custom field with the External ID and Unique attributes |