MuleSoft ile Salesforce Data Cloud Entegrasyonu

Gerçek Zamanlı Müşteri Verisi ile Entegre, Ölçeklenebilir Çözümler
Müşteri deneyimini kişiselleştirmek isteyen kurumlar için veri artık sadece bir yan ürün değil, stratejik bir varlık. Ancak bu veriyi farklı sistemlerden toplayıp anlamlı hale getirmek ciddi bir entegrasyon altyapısı gerektiriyor. İşte burada Salesforce Data Cloud ve MuleSoft devreye giriyor.
Bu yazıda:
- Data Cloud nedir?
- Neden MuleSoft ile entegre edilmeli?
- Data Cloud’a nasıl veri yazılır ve nasıl veri okunur?
- MuleSoft Data Cloud Connector nasıl kullanılır?
gibi konuları detaylı ve görsellerle desteklenmiş bir şekilde ele alacağız.
Salesforce Data Cloud Nedir?
Salesforce Data Cloud, farklı kaynaklardan gelen müşteri verilerini bir araya getirerek gerçek zamanlı, birleşik müşteri profilleri oluşturan bir Customer Data Platform (CDP) çözümüdür.
Temel Özellikleri:
- Gerçek zamanlı veri akışı: IoT, mobil, web gibi kaynaklardan gelen verileri işler.
- Einstein AI ile içgörü: Veri üzerinden otomatik öngörüler üretilir.
- Segmentasyon: Demografi, davranış ve etkileşimlere göre müşteri grupları oluşturulur.
- Hyper-Personalization: Pazarlama ve hizmet stratejileri için anlık aksiyon alınır.
📌 Örnek Kullanım: Bir müşterinin son alışveriş alışkanlıkları, web davranışları ve destek talepleri tek profilde birleştirilerek “yüksek potansiyelli sadık müşteri” segmentine atanabilir.
Neden MuleSoft ile Entegre Edilmeli?
MuleSoft’un API-led entegrasyon yaklaşımı, tüm sistemleri katmanlı bir yapıda bağlamanızı sağlar. Data Cloud gibi gerçek zamanlı, merkezi veri yönetimi sistemleri için bu esneklik kritik önemdedir.
MuleSoft ile Entegrasyonun Avantajları:
Mulesoft Data Cloud Connector Kullanımı
MuleSoft, Salesforce Data Cloud Connector’ü aracılığıyla doğrudan veri yazma (ingestion) ve sorgulama (query) işlemlerini kolaylaştırır. Connector, Anypoint Exchange’de mevcuttur.
💡 Ön Gereksinimler:
- Salesforce Data Cloud hesabınız olmalı.
- Anypoint Platform’da bir proje oluşturulmalı.
- Salesforce Data Cloud Connector Anypoint Exchange üzerinden projeye eklenmiş olmalı.
Connector projeye eklendikten sonra pom.xml dosyasında aşağıdaki dependency görünecektir.
<dependency>
<groupId>com.mulesoft.connectors</groupId>
<artifactId>mule4-sdc-connector</artifactId>
<version>1.3.1</version>
</dependency>
Veri Ekleme (Streaming API)
Bu Mule flow, Streaming API üzerinden bir objenin endpoint’ine nasıl veri ekleneceğini gösterir. Detaylı bilgi için Salesforce API dokümantasyonuna başvurabilirsiniz.
Bu örnek aşağıdaki işlemleri kullanır:
- HTTP Listener HTTP POST isteklerini kabul eder. source (kaynak) ve object name (obje adı) URI parametreleri olarak iletilir.
- Logger Listener’dan gelen HTTP isteğini ve daha sonra Insert Objects operasyonunun dönüşünü loglar.
- Streaming Insert OAuth Client Credentials, OAuth JWT veya OAuth Username/Password seçeneklerinden biriyle kimlik doğrulaması yapar.
- Kaynak adı, obje adı ve payload (veri içeriği) alınır.
- Salesforce API çağrısı ile bu payload ilgili objeye insert edilir.
Salesforce Data Cloud Insert flow’u şu bileşenleri içerir: Listener, Logger, Insert Objects ve Response Logger.
XML for This Example: Aşağıdaki XML kodunu MuleSoft Studio’nun XML editörüne yapıştırarak örnek flow’u doğrudan uygulamanıza yükleyebilirsiniz:
<?xml version="1.0" encoding="UTF-8"?>
<mule xmlns:sdc="http://www.mulesoft.org/schema/mule/sdc" xmlns:http="http://www.mulesoft.org/schema/mule/http"
xmlns="http://www.mulesoft.org/schema/mule/core"
xmlns:doc="http://www.mulesoft.org/schema/mule/documentation" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd
http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd
http://www.mulesoft.org/schema/mule/sdc http://www.mulesoft.org/schema/mule/sdc/current/mule-sdc.xsd">
<http:listener-config name="HTTP_Listener_config" doc:name="HTTP Listener config" >
<http:listener-connection host="0.0.0.0" port="8081" />
</http:listener-config>
<configuration-properties doc:name="Configuration properties" file="mule-app.properties" />
<sdc:sdc-config name="Salesforce_Data_Cloud_OAuth_JWT_config" doc:name="Salesforce Data Cloud config" >
<sdc:oauth-jwt-connection consumerKey="${server.consumerKey}" keyStorePath="${server.keyStorePath}" storePassword="${server.keyStorePassword}" subject="${server.userName}" keyAlias="${server.certificateAlias}" audienceUrl="${server.audienceUrl}"/>
</sdc:sdc-config>
<sdc:sdc-config name="Salesforce_Data_Cloud_OAuth_UsernamePassword_config" doc:name="Salesforce Data Cloud config" >
<sdc:oauth-user-pass-connection audienceUrl="${server.audienceUrl}" username="${server.userName}" password="${server.password}" clientId="${server.consumerKey}" clientSecret="${server.consumerSecret}"/>
</sdc:sdc-config>
<flow name="Insert-objectsFlow" >
<http:listener doc:name="POST /insert/{sourceApiName}/{objectName}" config-ref="HTTP_Listener_config" path="/insert/{sourceApiName}/{objectName}" allowedMethods="POST"/>
<logger level="INFO" doc:name="Request Logger" message="#[payload]"/>
<sdc:insert-objects doc:name="Streaming Insert" config-ref="Salesforce_Data_Cloud_OAuth_JWT_config" sourceNameUriParam="#[attributes.uriParams.sourceApiName]" objectNameUriParam="#[attributes.uriParams.objectName]"/>
<logger level="INFO" doc:name="Response Logger" />
</flow>
</mule>
Örneği test etmek için:
- Connector yapılandırmanızı doğrulayın. Salesforce Data Cloud Connector’un doğru şekilde konfigüre edildiğinden emin olun.
- Projeyi kaydedin. Anypoint Studio’daki projeyi kaydederek değişikliklerin uygulanmasını sağlayın.
- Flow’u test edin: Aşağıdaki formatta bir JSON payload ile şu adrese bir HTTP POST isteği gönderin: http://localhost:8081/{SOURCE_API_NAME}/{OBJECT_NAME}
Örnek JSON payload:
{
"data": [
{
"your_object_field_1": "value_1",
"your_object_field_2": "value_2",
"your_object_field_3": "value_3"
}
]
}
No: Bu JSON yapısı, hedef objenizin şemasına uygun olmalıdır.
Veri Sorgulama (Query API)
Bu Mule flow, Salesforce Data Cloud üzerinden özel bir SOQL sorgusu kullanarak nasıl veri sorgulanacağını gösterir. Detaylı bilgi için Salesforce SOQL dokümantasyonuna göz atabilirsiniz.
Bu örnek aşağıdaki işlemleri içerir:
- HTTP Listener HTTP POST isteklerini kabul eder. SOQL sorgusu, istek gövdesinde (payload) iletilir.
- Logger Listener’dan alınan HTTP isteğini ve sonrasında Query operasyonundan dönen yanıtı loglar.
- Query
- OAuth Client Credentials, OAuth JWT veya OAuth Username/Password seçeneklerinden biriyle kimlik doğrulaması yapılır.
- Önceden iletilen SOQL sorgusunu alır.
- Bu sorgu ile Salesforce API'ye çağrı yapar ve sonucu alır.
XML for This Example: Aşağıdaki XML kodunu MuleSoft Studio’nun XML editörüne yapıştırarak örnek flow’u doğrudan uygulamanıza yükleyebilirsiniz:
<?xml version="1.0" encoding="UTF-8"?>
<mule xmlns:sdc="http://www.mulesoft.org/schema/mule/sdc" xmlns:http="http://www.mulesoft.org/schema/mule/http"
xmlns="http://www.mulesoft.org/schema/mule/core"
xmlns:doc="http://www.mulesoft.org/schema/mule/documentation" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd
http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd
http://www.mulesoft.org/schema/mule/sdc http://www.mulesoft.org/schema/mule/sdc/current/mule-sdc.xsd">
<http:listener-config name="HTTP_Listener_config" doc:name="HTTP Listener config" >
<http:listener-connection host="0.0.0.0" port="8081" />
</http:listener-config>
<configuration-properties doc:name="Configuration properties" file="mule-app.properties" />
<sdc:sdc-config name="Salesforce_Data_Cloud_OAuth_JWT_config" doc:name="Salesforce Data Cloud config" >
<sdc:oauth-jwt-connection consumerKey="${server.consumerKey}" keyStorePath="${server.keyStorePath}" storePassword="${server.keyStorePassword}" subject="${server.userName}" keyAlias="${server.certificateAlias}" audienceUrl="${server.audienceUrl}"/>
</sdc:sdc-config>
<sdc:sdc-config name="Salesforce_Data_Cloud_OAuth_UsernamePassword_config" doc:name="Salesforce Data Cloud config" >
<sdc:oauth-user-pass-connection audienceUrl="${server.audienceUrl}" username="${server.userName}" password="${server.password}" clientId="${server.consumerKey}" clientSecret="${server.consumerSecret}"/>
</sdc:sdc-config>
<flow name="query-objectsFlow" >
<http:listener doc:name="POST /query" config-ref="HTTP_Listener_config" path="/query" allowedMethods="POST"/>
<logger level="INFO" doc:name="Request Logger" message="#[payload]"/>
<sdc:query doc:name="Query" config-ref="Salesforce_Data_Cloud_OAuth_JWT_config"/>
<logger level="INFO" doc:name="Response Logger" message="#[payload]"/>
</flow>
</mule>
Örneği test etmek için:
- Connector yapılandırmanızı doğrulayın.
Salesforce Data Cloud Connector’un doğru şekilde yapılandırıldığından emin olun. - Projeyi kaydedin.
Anypoint Studio’daki projeyi kaydederek değişikliklerin geçerli olmasını sağlayın. - Flow’u test edin:
Aşağıdaki formatta bir HTTP POST isteği gönderin:http://localhost:8081/query
İstek gövdesinde (body) SOQL sorgusunu aşağıdaki gibi iletin:jsonCopyEdit{
"sql": "SELECT ID FROM ACCOUNT LIMIT 1"
}
Bu sorgu, Account objesinden bir adet kayıt ID’si döndürür.
Ver Silme (Streaming API)
Bu Mule flow, Streaming API kullanılarak bir objenin endpoint’i üzerinden nasıl veri silineceğini gösterir. Detaylı bilgi için Salesforce API dokümantasyonuna göz atabilirsiniz.
Bu örnek aşağıdaki adımları içerir:
- HTTP Listener HTTP DELETE isteklerini kabul eder. source API ve object name URI parametrelerinde, silinecek kayıtların ID'leri ise query parametrelerinde iletilir.
- Logger Listener’dan alınan HTTP isteğini ve ardından Streaming Delete operasyonundan dönen yanıtı loglar.
- Streaming Delete
- OAuth Client Credentials, OAuth JWT veya OAuth Username/Password yöntemlerinden biriyle kimlik doğrulaması yapılır.
- Source API adı, obje adı ve silinecek kayıt ID’leri alınır.
- Belirtilen objenin endpoint’i kullanılarak query parametrelerindeki kayıtlar silinir.
XML for This Example: Aşağıdaki XML kodunu MuleSoft Studio’nun XML editörüne yapıştırarak örnek flow’u doğrudan uygulamanıza yükleyebilirsiniz:
<?xml version="1.0" encoding="UTF-8"?>
<mule xmlns:sdc="http://www.mulesoft.org/schema/mule/sdc" xmlns:http="http://www.mulesoft.org/schema/mule/http"
xmlns="http://www.mulesoft.org/schema/mule/core"
xmlns:doc="http://www.mulesoft.org/schema/mule/documentation" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd
http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd
http://www.mulesoft.org/schema/mule/sdc http://www.mulesoft.org/schema/mule/sdc/current/mule-sdc.xsd">
<http:listener-config name="HTTP_Listener_config" doc:name="HTTP Listener config" >
<http:listener-connection host="0.0.0.0" port="8081" />
</http:listener-config>
<configuration-properties doc:name="Configuration properties" file="mule-app.properties" />
<sdc:sdc-config name="Salesforce_Data_Cloud_OAuth_JWT_config" doc:name="Salesforce Data Cloud config" >
<sdc:oauth-jwt-connection consumerKey="${server.consumerKey}" keyStorePath="${server.keyStorePath}" storePassword="${server.keyStorePassword}" subject="${server.userName}" keyAlias="${server.certificateAlias}" audienceUrl="${server.audienceUrl}"/>
</sdc:sdc-config>
<sdc:sdc-config name="Salesforce_Data_Cloud_OAuth_UsernamePassword_config" doc:name="Salesforce Data Cloud config" >
<sdc:oauth-user-pass-connection audienceUrl="${server.audienceUrl}" username="${server.userName}" password="${server.password}" clientId="${server.consumerKey}" clientSecret="${server.consumerSecret}"/>
</sdc:sdc-config>
<flow name="delete-objectsFlow" >
<http:listener doc:name="DELETE /delete/{sourceApiName}/{objectName}" config-ref="HTTP_Listener_config" path="/delete/{sourceApiName}/{objectName}" allowedMethods="DELETE"/>
<logger level="INFO" doc:name="Request Logger" />
<sdc:delete-objects doc:name="Streaming - Delete Objects" config-ref="Salesforce_Data_Cloud_OAuth_JWT_config" idsQueryParams="#[output application/java --- [attributes.queryParams.ids]]" sourceNameUriParam="#[attributes.uriParams.sourceApiName]" objectNameUriParam="#[attributes.uriParams.objectName]"/>
<logger level="INFO" doc:name="Response Logger" />
</flow>
</mule>
Örneği test etmek için:
- Connector yapılandırmanızı doğrulayın.
Salesforce Data Cloud Connector’un doğru şekilde yapılandırıldığından emin olun. - Projeyi kaydedin.
Anypoint Studio’da projeyi kaydederek değişikliklerin geçerli olmasını sağlayın. - Flow’u test edin:
Aşağıdaki formatta bir HTTP DELETE isteği göndererek akışı test edin:rubyCopyEdithttp://localhost:8081/delete/{SOURCE_API_NAME}/{OBJECT_NAME}?ids={RECORD_ID1},{RECORD_ID2
}
Örnek:bashCopyEdithttp://localhost:8081/delete/My_SourceApi/My_Object?ids=1,2,3
Bu istek, belirtilen object içerisindeki 1, 2 ve 3 ID’li kayıtları siler.
Sonuç
Salesforce Data Cloud, işletmelere müşterilerini daha iyi tanıma ve onlara kişiselleştirilmiş hizmet sunma imkânı verir. MuleSoft ile bu platforma yapılan entegrasyon sayesinde:
- Veri senkronizasyonu otomatikleşir
- Gerçek zamanlı içgörüler sağlanır
- İş süreçleri optimize edilir
Bu iki güçlü platformun birleşimi, özellikle müşteri odaklı kurumlar için büyük bir rekabet avantajı yaratır.
Logicalbond (Mulesoft Partner and Reseller)
Logicalbond, bir MuleSoft Türkiye Yetkili Satıcısı ve İş Ortağıdır. Küçük, orta ölçekli, kurumsal ve stratejik müşteriler için güvenilir entegrasyon çözümleri üretir.
Sertifikalı danışmanlarımız, müşterilerimizin gelişen ihtiyaçlarına uyum sağlamalarına yardımcı olurken aynı zamanda inovasyonu ve dijital dönüşümü destekleyen görev açısından kritik çözümler sağlama konusunda yeteneklidir.
Logicalbond’un güvenilir iş ortağınız olmasına izin verin, biz de kuruluşunuzun ve ekibinizin sürdürülebilir dijital değerler oluşturmasına yardımcı olalım. Daha fazla bilgi için lütfen www.logicalbond.com adresini ziyaret edin.