Chapter 65. Salesforce Source
Receive updates from Salesforce.
65.1. Configuration Options Copy linkLink copied to clipboard!
The following table summarizes the configuration options available for the salesforce-source Kamelet:
| Property | Name | Description | Type | Default | Example |
|---|---|---|---|---|---|
| clientId * | Consumer Key | The Salesforce application consumer key. | string | ||
| clientSecret * | Consumer Secret | The Salesforce application consumer secret. | string | ||
| password * | Password | The Salesforce user password. | string | ||
| query * | Query | The query to execute on Salesforce. | string | SELECT Id, Name, Email, Phone FROM Contact | |
| topicName * | Topic Name | The name of the topic or channel. | string | ContactTopic | |
| userName * | Username | The Salesforce username. | string | ||
| loginUrl | Login URL | The Salesforce instance login URL. | string | ||
| notifyForFields | Notify For Fields | Notify for fields. | string | ALL | |
| notifyForOperationCreate | Notify Operation Create | Notify for create operation. | boolean | True | |
| notifyForOperationDelete | Notify Operation Delete | Notify for delete operation. | boolean | False | |
| notifyForOperationUndelete | Notify Operation Undelete | Notify for undelete operation. | boolean | False | |
| notifyForOperationUpdate | Notify Operation Update | Notify for update operation. | boolean | False | |
| operation | Operation | The operation to use | string | subscribe | |
| rawPayload | Raw Payload | Use raw payload String for request and response (either JSON or XML depending on format), instead of DTOs, false by default. | boolean | False | |
| replayId | Replay Id | The replayId value to use when subscribing to the Streaming API. | long |
* = Fields marked with an asterisk are mandatory.
65.2. Dependencies Copy linkLink copied to clipboard!
65.2.1. Quarkus dependencies Copy linkLink copied to clipboard!
<dependencies>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifact>camel-quarkus-jackson</artifact>
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifact>camel-quarkus-kamelet</artifact>
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifact>camel-quarkus-salesforce</artifact>
</dependency>
<dependency>
<groupId>org.apache.camel.kamelets</groupId>
<artifact>camel-kamelets-utils</artifact>
<version>4.8.5</version>
</dependency>
</dependencies>
65.3. Usage Copy linkLink copied to clipboard!
65.3.1. Camel JBang usage Copy linkLink copied to clipboard!
65.3.1.1. Prerequisites for JBang Copy linkLink copied to clipboard!
- Install JBang.
You have executed the following command:
jbang app install camel@apache/camel
65.3.1.2. Running a route with JBang Copy linkLink copied to clipboard!
Suppose you have a file named route.yaml with this content:
- route:
from:
uri: "kamelet:timer-source"
parameters:
period: 10000
message: 'test'
steps:
- to:
uri: "kamelet:log-sink"
You can now run it directly through the following command.
camel run route.yaml
65.3.2. Knative Source Copy linkLink copied to clipboard!
You can use the salesforce-source Kamelet as a Knative source by binding it to a Knative object.
salesforce-source-binding.yaml
apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
name: salesforce-source-binding
spec:
source:
ref:
kind: Kamelet
apiVersion: camel.apache.org/v1
name: salesforce-source
properties:
clientId: "The Consumer Key"
clientSecret: "The Consumer Secret"
password: "The Password"
query: "SELECT Id, Name, Email, Phone FROM Contact"
topicName: "ContactTopic"
userName: "The Username"
sink:
ref:
kind: Channel
apiVersion: messaging.knative.dev/v1
name: mychannel
65.3.3. Kafka Source Copy linkLink copied to clipboard!
You can use the salesforce-source Kamelet as a Kafka source by binding it to a Kafka topic.
salesforce-source-binding.yaml
apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
name: salesforce-source-binding
spec:
source:
ref:
kind: Kamelet
apiVersion: camel.apache.org/v1
name: salesforce-source
properties:
clientId: "The Consumer Key"
clientSecret: "The Consumer Secret"
password: "The Password"
query: "SELECT Id, Name, Email, Phone FROM Contact"
topicName: "ContactTopic"
userName: "The Username"
sink:
ref:
kind: KafkaTopic
apiVersion: kafka.strimzi.io/v1beta1
name: my-topic