Integration Flashcards

1
Q

You use Salesforce to manage customer cases. A customer service rep is on the phone with a customer working on a case. The customer makes a payment and the customer service rep needs to see a real-time update in Salesforce from the payment processing application.

Which pattern does this describe?

A

UI Update based on Data Changes

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

What is the recommended solution for the UI Updates based on Data Changes Pattern?

A

The Salesforce Streaming API using:
1- A push topic
2- Bayeux/CometD JS implementation
3- VF or Lightning component
4- JS lib included as a static resoruce

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

What are the benefits of using the Streaming API to update the UI based on changes?

A

No need to write a custom poller
No need to have the user manually poll

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

What are the limitations of using the Streaming API to update the UI based on changes?

A

1- Delivery of notifications isn’t guaranteed
2- Order of notifications isn’t guaranteed
3- Notifications aren’t generated from record changes made by Bulk API

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

A telecommunications company uses Salesforce to manage customer cases. The customer service managers want to be notified when a case is successfully closed by one of their customer service reps.

Describe what the solution for this use case would look like.

A
  1. Create a PushTopic that sends a notification when a case is saved with a status of Closed and resolution of Successful
  2. Create custom UI and subscribe the UI to the PushTopic Channel
  3. Implement logic in the UI that shows alerts generated by that managers reps
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

What are two implementation drivers for Streaming API solutions?

A
  • Appliations that poll frequently
  • General notification of data changes in the org.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

T/F: A PushTopic can define specific criteria about which it will notify subscribers.

A

TRUE

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

What is Bayeaux?

A

A Protocol for transporting asynchronous messages, primarily over HTTP.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

What is CometD?

A

A scalable HTTP-based routing bus that uses an AJAX push technology pattern known as Comet. It implements the Bayeaux protocol.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

What five CometD methods are supported by the Streaming API?

A

Connect
Disconnect
Handshake
Subscribe
unsubscribe

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

What are two major differences between a PushTopic and a Change Data Capture?

A

PushTopic send only specific fields, wheereas CDC send all of the fields that changed.

CDC also sends details of the change in the header

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

What is the retention period for a PushTopic Event?

A

24 hours

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

What is the retention period for a Change Data Capture Event?

A

72 hours

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

What is the retention period for a regular Platform Event?

A

24 Hours

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

What is the retention period for a High-volume Platform Event?

A

72 hours

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

What is the retention period for a Generic Event?

A

1 Day

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

What are Generic Events?

A

Generic events send custom notifications that are not tied to Salesforce Data Changes

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

What is a replay ID and what is it’s impact on Event Durability?

A

The ReplayID is a value populated by the system to represent the event’s position in the event stream.

The replay even can be used to retrieve events that are within the retention window

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

True/False:

A subscriber can choose which events to retrieve as long as the event is within its retention window or starting after a particular event.

A

TRUE

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

What events will a subscriber receive by default after subscribing to a messaging queue?

A

The default is to receive only the new events sent after subscribing.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

If there are ten messages in a queue, and a subscriber tries to replay events using the replayId of -1, what events will the subscriber receive?

A

the subscriber will receive all events after the client subscribes.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

If there are ten messages in a queue, and a subscriber tries to replay events using the replayId of -2, what events will the subscriber receive?

A

the subscriber will receive all events that are within the retention window + all new events.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

If there are ten messages in a queue, and a subscriber tries to replay events using the replayId of 5, what events will the subscriber receive?

A

the subscriber will receive events 6-10 (NOT 5) + all new events

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

What is a PushTopic?

What’s included?

A

A PushTopic triggers notifications for changes to Salesforce records resulting from a create, update, delete or undelete.

The PT Notification is based on the criteria specified in the PushTopic record and the SOQL query defined to retrieve the notification.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
Q

What is a Platform Event?

A

A Platform Event represents the definition of the custom data to be sent in a platform event message.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
26
Q

What is a Change Data Capture Event?

A

A CDC triggers notification for changes in Salesforce records resulting from a create, update, delete or undelete operation. All changed fields are sent in the notification, and information about the change can be found in the header

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
27
Q

Describe the relationship between an event, notification, subscription channel and the event bus

A

An event occurs as the result of a CRUD operation, and triggers a notification, which is published to the channel of an event bus for consumption

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
28
Q

You use Salesforce to track leads, manage your pipeline, create opportunities, and capture order details that convert leads to customers. However, Salesforce isn’t the system that contains or processes orders. Orders are managed by an external (remote) system. But sales reps want to view and update real-time order information in Salesforce without having to learn or use the external system.

What pattern describes the best solution?

A

Data Virtualization

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
29
Q

What are the two solutions for Data Virtualization on Saleforce?

A

Salesforce Connect (best)
Request/Reply (suboptimal)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
30
Q

Describe how Salesforce Connect works.

A

Salesforce Connect maps data tables in an external system to external objects in your org.

Salesforce Connect uses a live connection to external data to always keep external objects up-to-date.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
31
Q

What protocols must the external system support for Salesforce Connect to be an option?

A

Odata 2.0 and Odata 4.0

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
32
Q

How can 2 Salesforce orgs be connected to share data using Data Virtualization?

A

Using a cross org adapter

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
33
Q

How does the Salesforce cross-org adapter communicate between orgs?

A

The orgs connect directly to each other, and send data using the Salesforce REST API

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
34
Q

If Odata and cross-org adapters are not suitable, what other option can be used to implement Salesforce Connect?

A

A custom Apex adapter can be created with the Apex Connector Framework

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
35
Q

What volume considerations are related to Data Virtualization in Salesforce?

A

The Data Virtualization pattern is primarily used for small volume/real-time activities.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
36
Q

What are the data state management concerns when using the Data Virtualization pattern?

A

The remote system stores either the Salesforce record ID or some other unique surrogate key from the record.

The call to the remote process returns the unique key from the application, and Salesforce stores that key value in a unique record field.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
37
Q

External Objects supports lookup relationships similarly to custom and standard objects.

What is the relationship name if a standard object is the parent, the external object is the child and the SF ID is the field used for mapping?

A

Lookup Relationship

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
38
Q

External Objects supports lookup relationships similarly to custom and standard objects.

What is the relationship name if a custom object is the parent, the external object is the child and the SF ID is the field used for mapping?

A

Lookup Relationship

39
Q

External Objects supports lookup relationships similarly to custom and standard objects.

What is the relationship name if an external object is the parent, an external object is the child and the SF ID is the field used for mapping?

A

Lookup Relationship

40
Q

External Objects supports lookup relationships similarly to custom and standard objects.

What is the relationship name if an external object is the parent, an external object is the child and External ID is the field used for mapping?

A

External Lookup Relationship

41
Q

External Objects supports lookup relationships similarly to custom and standard objects.

What is the relationship name if an external object is the parentt, a custom object is the child and External ID is the field used for mapping?

A

External Lookup Relationship

42
Q

External Objects supports lookup relationships similarly to custom and standard objects.

What is the relationship name if an external object is the parent, a standard object is the child and External ID is the field used for mapping?

A

External Lookup Relationship

43
Q

External Objects supports lookup relationships similarly to custom and standard objects.

What is the relationship name if a standard object is the parent, the external object is the child and a custom external ID is the field used for mapping?

A

Indirect Lookup Relationship

44
Q

External Objects supports lookup relationships similarly to custom and standard objects.

What is the relationship name if a custom object is the parent, the external object is the child and a custom external ID is the field used for mapping?

A

Indirect Lookup Relationship

45
Q

What integration is necessary in order to allow SF users to search external files?

A

Files Connect

46
Q

What are the steps required to setup Files Connect?

A

Enable Files Connect
Setup an authentication provider for the source system.

47
Q

If the call to the remote system is synchronous and Salesforce has to process the response as part of the same transaction as the initial call what pattern should you select?

A

Request/Reply

48
Q

What are Enhanced External Services

A

Enhanced External Services allows you to invoke an externally hosted service in a declarative manner (no code required).

49
Q

For the request/reply integration pattern, what are the best fit implementations?

A

Enhanced External Services
Custom Lightning Component
Visual Force Page/Button

50
Q

For custom implementations of the Request/Reply pattern, what is the recommendation if the endpoint potentially has high-latency response?

A

Use a continuation

51
Q

What is the recommended integration pattern for initiating a call out from an Apex Trigger?

A

Fire & Forget

52
Q

What is the recommended integration pattern for initiating a call out from an Apex Batch?

A

Fire & Forget

53
Q

How should an error be handled and recovered in Salesforce when using the Request/Reply integration pattern?

A

Salesforce should handle the error (display message, etc).

The change should not be committed in SF until a successful response is received from the remote system (via retry).

54
Q

What is idempotency?

A

An API call or operation is idempotentif it has the same result no matter how many times it is applied.

55
Q

What is the risk of an operation not being idempotent?

A

Data integrity issues

56
Q

True/False:

One-way SSL is enabled by default for Apex REST & Apex SOAP callouts..

A

TRUE

57
Q

Salesforce has a configurable timeout of up to ____ seconds for calls from Apex.

A

120 Seconds

58
Q

Options to mitigate the risk of a request/reply timeout include:

A

Setting the timeout of the external callout to five seconds

Using a continuation in Visualforce or Lightning Components to handle long-running transactions

59
Q

What are the endpoint considerations for Apex SOAP callouts?

A

The endpoint must be able to receive a web service call via HTTP. Salesforce must be able to access the endpoint over the public Internet.

This solution requires that the remote system is compatible with the standards supported by Salesforce

60
Q

What are the endpoint considerations for Apex REST callouts?

A

The endpoint must be able to receive HTTP calls. Salesforce must be able to access the endpoint over the public Internet.

You can use Apex HTTP callouts to call REST services using the standard GET, POST, PUT, and DELETE methods.

61
Q

What are the two options for managing the state of data passed between two systems via outbound request/reply transactions?

A

Salesforce stores the remote system primary or unique surrogate key for the record.

The remote system stores the SF unique record ID or some other unique Surrogate key

62
Q

A utility company uses Salesforce and has a separate system that contains customer billing information. They want to display the billing history for a customer account without storing that data in Salesforce. They have an existing web service that returns a list of bills and the details for a given account, but can’t display this data in a browser. The utility company is on SF Classic.

What pattern should be implemented?
What is the calling mechanism?
Who is responsible for error management in this scenario?
How is the state of the record maintained in this example?

A

Pattern: Request/Reply
Calling Mechanism: Visual Force
Error Management: SF
Record state: remote system account info on the Account record

63
Q

You use Salesforce to track leads, manage your pipeline, create opportunities, and capture order details that convert leads to customers. However, Salesforce isn’t the system that holds or processes orders. After the order details are captured in Salesforce, an order must be created in the remote system, which manages the order through to its conclusion.

What is the correct pattern to implement?

A

Fire & Forget

64
Q

For the fire & forget integration pattern, what are the best fit implementations?

What are the good fit implementations?

A

Best:
Process-driven Platform Events

Good:
Customization-driven Platform Events
Workflow Driven Outbound Messaging
Outbound Messaging w/callbacks

65
Q

When an external app uses the API or a native Salesforce app uses Apex to publish the event message, how does Salesforce respond?

A

a trigger on that event is fired

66
Q

What is the recommended solution to trigger a remote process from an insert or update of a record or event?

A

Process-driven Platform Events

67
Q

A software system sends events containing information about printer ink cartridges. Subscribers can subscribe to the events to monitor printer ink levels and place orders to replace cartridges with low ink levels.

How is the remote system notified of these messages?

A

External apps can listen to event messages by subscribing to a channel through CometD

68
Q

A software system sends events containing information about printer ink cartridges. Subscribers can subscribe to the events to monitor printer ink levels and place orders to replace cartridges with low ink levels.

How is native Salesforce functionality notified of these messages?

A

Platform apps, such as Visualforce pages and Lightning components, can subscribe to event messages with CometD

69
Q

How are Platform Events consumed on the Salesforce platform?

A

Apex Trigger

70
Q

How can a remote system retrieve data from or send data to Salesforce without explicitly authenticating?

A

Outbound messages send a session id which can be used as an authentication token in a callback

71
Q

Why are Custom Lightning/VisualForce, Triggers and Batch Apex suboptimal solutions for using a Fire & Forget solution?

A

All three require customizations. There are event-driven implementations that could be better alternatives.

72
Q

Assuming a fire and forget integration triggered by an Apex callout, if Salesforce is able to successfully transact the message /event, where should the error be handled?

How can the transaction be recovered?

A

The error should be handled in the remote system, and should be recovered using a custom retry.

73
Q

Assuming a fire and forget integration triggered by an Outbound Message, if Salesforce is able to successfully create the message, but the remote system doesn’t acknowledge it, where should the error be handled?

How can the transaction be recovered?

A

The exception should be handled by the remote system. Recovery is handled automatically because the OBM will try to send the message for up to 24 hours.

74
Q

Assuming a fire and forget integration triggered by a Platform Event, if Salesforce is able to successfully transact the message /event, where should the error be handled?

How can the transaction be recovered?

A

If the PE is created successfully, then any errors would need to be resolved in the remote system. Recovery would consist of the remote system replaying any missed events within 72 hours.

75
Q

What five things can the Lightning SOAP API be used for?

A

Publish events to notify the Org
Query data
CRUD data
Obtain metadata from the org
Run utlities to perform administrative tasks

76
Q

What is an External Service?

A

External Services are a Salesforce integration product that declaritively connects external REST APIs using the Open API Standards

77
Q

What is an API spec?

  • A human-readable file that External Services consumes to generate invocable actions
  • A humna-readable file that flow creates for the parameters needed in the definition when your flow runs
  • A human-readable file definition that flow outputs at the end of a flow interview
  • A machine-readable external service that must be compiled

From the perspective of Salesforce/Salesforce Architecture

A

A human-readable file that External Services consume to generate invocable actions

78
Q

Which are elements of a valid schema for External Services:

  • Response code output contains complex objects, paramters have names
  • Response code output does not contain complex objects, any method can be used.
  • Schema adheres to OpenAPI specification, parameters have names
  • Schema has less than 100K characters, parameters use complex named object
A

Schema adheres to OpenAPI specification, parameters have names

79
Q

What might cause you API Spec to fail registration?

  • It includes a name that is not reserved
  • It includes all supported methods
  • It exceeds the limit for total number of actions
  • Parameters have descriptive names
A

It exceeds the limit for total number of actions

80
Q

What prereq has to be completed before registering an external service?

  • Give the service provider the named credential so that it can access Salesforce
  • Ensurte that the remote credential the service provider uses has endpoints
  • Define a named credential and authorize endpoint access
  • Create your remote credential and export it.

Once you have the API spec…

A

Define a named credential and authorize endpoint access

81
Q

What can you do after you successfully register an external service?

  • Validate your Apex actions using the dev console
  • Select the named credential you defined so that the remote credential can access the schema
  • Invoke actions based on the external source via a flow
  • Invoke flows from the External Services Wizard
A

Invoke actions based on the external source via a flow

82
Q

Which is true about the Apex actions generated by External Svcs.

  • They can be mapped to the flow you created before registering your service
  • They are mapped directly from the operations in the schema definition and are visible in the wizard
  • They are available only within the wizard to protect service security
  • They become obsolete once you run the wizard along with a flow
A

They are mapped directly from the operations in the schema definition and are visible in the wizard

83
Q

What are 4 common reasons to integrate apps on Heroku w/Salesforce?

A
  • Data Replication
  • Data proxies
  • Custom UIs
  • External processes
84
Q

What is Data Replication?

(in context of Salesforce)

A

Copying or synchronizing data between Salesforce and another system.

85
Q

What are data proxies?

A

Data proxies aggregate different data stores that are read only and on demand.

86
Q

What Heroku product is used for data replication & data proxies?

A

Heroku Connect

87
Q

Which is not an advantage of data replication vs. Data proxies?

  • A replicated data set offloads processing and requersts from an origin data server
  • A replicated data set is always and immediately in sync with origin data
  • A replicated data set reduces data access latency
  • A replicated data set supports bidirectional writes
A

A replicated data set is always and immediately in sync with origin data

88
Q

You can use Salesforce Connect to proxy which types of data sources?

  • OData 2.0 & 4.0
  • REST W/JSON payloads
  • REST w/XML Payloads
  • SOAP
  • All of the above
A

All of the above

89
Q

Which technology do Salesforce REST APIs use for authentication?

  • Pre-shared keys
  • Basic usernames & passwords
  • OAuth
  • SAML
A

OAuth

90
Q

Callouts from Salesforce to Heroku can be made using:

  • Web sockets
  • Apex triggers or outbound messages
  • Message bus
  • Corba
A

Apex Triggers or outbound messages

91
Q

Heroku Connect can be used for:

  • One-way data replication
  • Bidirectional data replication
  • Data proxy with Salesforce connect
  • All of the above
A

All of the above

92
Q

How does Heroku Connect work with Salesforce Authentication?

  • A single integration user’s credentials are stored
  • OAuth provides Heroku connect with API tokens after the user authorizes the Heroku Connect application on Salesforce
  • SAML authorizes Heroku Connect to make API calls
  • The end user of a Heroku app authorizes Heroku Connect via OAuth
A

OAuth provides Heroku connect with API tokens after the user authorizes the Heroku Connect application on Salesforce

93
Q

Heroku Connect data replication happens:

  • Instantly in both directions
  • Near real time in both directions
  • Near real time for writes to Salesforce, and on a 30- secont poling window for writes to Heroku Postgres
  • Near real time for writes to Salesforce and either on a poling window or near real time for writes to Heroku Postgres (depending on user config)
A

Near real time for writes to Salesforce and either on a poling window or newar real time for writes to Heroku Postgres (depending on user config)