SK SKYVVA Documentation

11. How to Create a SKYVVA Inbound Interface Using Auto-Switch Mode with the SkyvvaSalesforce Adapter

Overview

This document explains how to create a SKYVVA Inbound Interface in Salesforce using Auto-Switch mode with the SkyvvaSalesforce Receiver Adapter in SAP Cloud Integration.

Auto-Switch mode automatically selects the appropriate processing method based on the number of root records received in a request.

Depending on the configured interface thresholds, the adapter can process the request using:

This allows a single integration flow to handle different message sizes without manually changing the adapter mode.

This tutorial covers:

  1. Creating and configuring the SKYVVA Inbound Interface in Salesforce.
  2. Configuring the Auto-Switch threshold settings.
  3. Creating the SAP CPI integration flow.
  4. Configuring the HTTPS Sender Adapter.
  5. Configuring the SkyvvaSalesforce Receiver Adapter.
  6. Deploying the integration flow.
  7. Testing different payload sizes with Postman.
  8. Monitoring the integration in SAP CPI and Salesforce.

Example Configuration

ItemValue
Salesforce ObjectsAccount and Contact
Message SourcePostman
MiddlewareSAP Cloud Integration
SKYVVA API VersionV3
Adapter ModeAuto-Switch
Interface DirectionInbound
Processing ModeAsynchronous
Operation TypeUpsert
Integrate Max Size200
Integrate Batch Max Size5000
Request FormatXML
Response FormatXML

Context Before You Start

In short: Auto-Switch mode counts how many root records (Accounts, not counting nested Contact children) arrive in a request and picks one of three processing strategies automatically: Normal (one direct Apex call, no batching), Batch (the same direct-Apex-call mechanism, grouped into packages), or Bulk (SKYVVA's basket/attachment engine). Which one a given request gets depends purely on where its root-record count falls against two thresholds configured on the interface — Integrate Max Size and Integrate Batch Max Size.

Reasons to pick this path:

production calls forced through it — Auto-Switch lets a 5-record smoke test and a 3,000-record production run each get a strategy suited to their size, from the same interface/channel configuration. for occasional larger loads, without maintaining two separate interfaces/channels.

Good fit for:

interfaces/channels for "small" and "large" cases isn't worth it. automatically, once the thresholds below are sized correctly for their volumes.

End-to-end sequence: the steps below — create and configure the Interface (including the two Auto-Switch threshold fields) in Salesforce, build the CPI iFlow (HTTPS sender → SkyvvaSalesforce receiver with Mode = Auto-Switch), deploy, send test payloads of different sizes from Postman, then confirm which tier each one used and that the records landed in Salesforce.

⚠️ Note — size Integrate Batch Max Size above your real traffic. Requests whose
root-record count exceeds Integrate Batch Max Size are handled by Bulk processing, which has
a per-file size limit and can fail on very large requests. Set Integrate Batch Max Size above
the largest number of root records you realistically expect in a single request, so your
traffic is always handled by Normal or Batch processing instead. If you do need to process
volumes larger than that in one request, contact SKYVVA support for guidance before relying on
Bulk processing for production traffic.

The processing method is selected according to the interface threshold settings:

Root Record CountProcessing Method
Less than or equal to Integrate Max SizeNormal
Greater than Integrate Max Size and less than or equal to Integrate Batch Max SizeBatch
Greater than Integrate Batch Max SizeBulk — see the note above before relying on this tier
For example:
POSTMAN
   ↓
SAP CPI
   ↓
SkyvvaSalesforce Receiver
Mode = Auto-Switch
   ↓
SKYVVA Inbound Interface
   │
   ├── Small request  → Normal
   ├── Medium request → Batch
   └── Large request  → Bulk
   ↓
Salesforce
image

Figure 1. End-to-end message flow using Auto-Switch mode.

1. Salesforce Interface Development

1.1 Create the Inbound Interface

Create a SKYVVA Inbound Interface under the required Integration record in Salesforce.

For this example, the interface is named:

AccountContactAutoSwitch_IN

Leave the Message Type field blank. For a V3 Inbound interface, leaving Message Type unset is what triggers Hierarchical Mapping — there is no MetaData Provider/Repository/Message Type hierarchy to build first; the Mapping Tool derives the parent/child tree directly from Salesforce's own schema instead.

Configure the interface as follows:

SettingValue
Interface NameAccountContactAutoSwitch_IN
IntegrationYour SAP CPI Integration App record
Source/Target NameAccount
StatusDeployed
Interface DirectionInbound
Processing ModeAsynchronous
Operation TypeUpsert
Message Type(leave blank)
External MappingEnabled
image image Figure 2. SKYVVA Inbound Interface configuration — Message Type left blank, External Mapping enabled.

1.2 Configure the Hierarchical Mapping

Open the interface Mapping Tool.

For this example, the integration processes Account records with related Contact records.

The hierarchy is:

Account
   │
   └── Contact

With External Mapping enabled on the interface (§1.1), field-level mapping is not needed — External Mapping auto-maps fields by name on its own. All this step has to do is drag the two relationship nodes, top-down, to generate the chained sub-interface:

Recommended Mapping Order

  1. Drag the Account root node onto the target Account root first. This is required, not
optional — dragging the Contact child node before the Account root itself is mapped produces "Warning! Please map its Parent first!" and silently does nothing.
  1. Expand the Contact child relationship and drag it onto the target Contact node. No individual
field needs to be dragged in either step — this is a node-to-node mapping, not a field-to-field one.
  1. Save the mapping.
Important — this step is not optional and cannot be replaced by External Mapping alone.
Dragging the Contact node in auto-creates a chained sub-interface behind the scenes (internal,
engine-managed — you don't create or configure it yourself), and that's the actual mechanism
that makes the Account+Contact hierarchy work at runtime. External Mapping only flat-maps
fields on an interface that already exists; it doesn't create this chained structure or walk
into child relationships on its own. Skip this step, and posting nested Contact data will not
produce Contact records, no matter how the payload is shaped.
⚠️ [SCREENSHOT NEEDED] Mapping Tool — Source tree showing the Account root expanded into
the Contact child relationship, with both nodes dragged onto their target counterparts (no
individual fields dragged/mapped).

Figure 3. Hierarchical Mapping Tool — Account and Contact relationship mapping.

1.3 Configure the Auto-Switch Thresholds

Auto-Switch behavior is controlled by threshold settings on the Salesforce interface.

These settings determine when SKYVVA switches between Normal, Batch, and Bulk processing.

Configure the following values according to your expected message volume:

SettingExample ValueDescription
Integrate Max Size200Requests up to this number of root records use Normal processing.
Integrate Batch Max Size5000Requests above Integrate Max Size and up to this value use Batch processing. Requests above this value use Bulk processing.
For example:
Root Records ≤ 200
        ↓
Normal Processing

Root Records > 200 and ≤ 5000
        ↓
Batch Processing

Root Records > 5000
        ↓
Bulk Processing

image **Figure 4. Interface Auto-Switch threshold settings.
Important: don't leave Integrate Batch Max Size at the 5000 default without deliberately
checking it against your actual expected traffic — see the note in Context Before You Start.
Set it explicitly, above your real maximum root-record count per request, so it's a conscious
choice rather than an inherited default.

After completing the interface configuration and mapping, save the interface.

2. SAP CPI Development

2.1 Create the Integration Flow

In SAP Cloud Integration, navigate to Design and create an Integration Package.

Create a new Integration Flow.

Example:

ItemExample
Integration PackageSkyvva_V4_Integration
Integration FlowAccountContact_Skyvva_AutoSwitch
The integration flow uses: Because this example sends the payload directly to Salesforce without transformation, no Content Modifier or mapping step is required.
HTTPS Sender
      ↓
    Start
      ↓
SkyvvaSalesforce Receiver
⚠️ [SCREENSHOT NEEDED] Integration flow canvas — Sender → Start → End → Receiver, showing
the HTTPS sender and SkyvvaSalesforce receiver shapes connected.

Figure 5. SAP CPI integration flow for Auto-Switch mode.

2.2 Configure the HTTPS Sender Adapter

Select the standard SAP HTTPS Sender Adapter.

General Tab

Configure the sender adapter according to your SAP CPI requirements.

⚠️ [SCREENSHOT NEEDED] HTTPS sender channel — General tab, showing Direction Sender,
Adapter Type HTTPS, Transport Protocol HTTPS, Message Protocol None.

Figure 6. HTTPS Sender Adapter — General tab.

Connection Tab

Configure the connection settings.

Example:

FieldExample Value
Address/skyvva/AccountContactIntegrateAutoSwitch
AuthorizationUser Role
User RoleESBMessaging.send
CSRF ProtectedUnchecked
The configured Address becomes part of the SAP CPI endpoint URL.
Important: The configured User Role must be assigned to the CPI user or credential used by Postman. Otherwise, SAP CPI may reject the request with a 403 Forbidden response.
⚠️ [SCREENSHOT NEEDED] HTTPS sender channel — Connection tab, showing the Address,
Authorization (User Role), User Role value, and CSRF Protected checkbox unchecked.

Figure 7. HTTPS Sender Adapter — Connection tab.

3. Configure the SkyvvaSalesforce Receiver Adapter

Select SkyvvaSalesforce as the receiver adapter.

The receiver channel includes the following main configuration areas:

⚠️ [SCREENSHOT NEEDED] SkyvvaSalesforce receiver channel — General tab, showing Direction
Receiver, Adapter Type SkyvvaSalesforce, Transport Protocol https, Message Protocol skyvva.

Figure 8. SkyvvaSalesforce Receiver Adapter — General tab.

3.1 Connection Tab

Configure the Salesforce authentication settings.

FieldExample Value
Authentication TypeOAuth2
OAuth2 FlowUsername-Password Credential or Client Credential
Login URLYour Salesforce login URL
User CredentialYour CPI User Credential artifact
Client CredentialYour CPI OAuth2 Client Credentials artifact
Example Salesforce login URLs:
EnvironmentURL
Sandboxhttps://test.salesforce.com
Productionhttps://login.salesforce.com
My DomainYour Salesforce My Domain URL
Select the OAuth2 flow that matches your Salesforce authentication configuration.
⚠️ [SCREENSHOT NEEDED] SkyvvaSalesforce receiver channel — Connection tab, showing
Authentication Type, OAuth2 Flow, Login URL, User Credential, and Client Credential fields.

Figure 9. SkyvvaSalesforce Receiver Adapter — Connection tab.

3.2 Skyvva Tab — Request Settings

Configure the Skyvva Request Settings as follows:

FieldValue
Skyvva API VersionV3
IntegrationYour SKYVVA Integration
InterfaceAccountContactAutoSwitch_IN
ModeAuto-Switch
Request FormatXML
Response FormatXML
Skyvva App VersionYour installed SKYVVA version
Salesforce API VersionYour configured Salesforce API version
⚠️ [SCREENSHOT NEEDED] SkyvvaSalesforce receiver channel — Skyvva tab, Request Settings
group with Skyvva API Version V3, Integration, Interface set to
AccountContactAutoSwitch_IN, and Mode set to "Auto-Switch".

Figure 10. SkyvvaSalesforce Receiver Adapter — Request Settings.

Interface Processing Mode vs. Adapter Mode

The following settings are configured in different locations:

Salesforce Interface

Processing Mode = Asynchronous

SAP CPI Receiver Adapter

Mode = Auto-Switch

These settings are not duplicates.

The Processing Mode controls how the SKYVVA interface processes the message.

The Auto-Switch Mode determines which processing strategy is selected based on the number of root records in the incoming request.


3.3 Skyvva Tab — Adapter Settings

Configure the Adapter Settings.

Example:

FieldValue
Logging OptionDefault
Enable Retry for Fatal Connectivity ErrorsUnchecked
HTTP Client Timeout60 seconds
Use additional logging levels only when troubleshooting.

Increase the timeout when processing large requests that require additional time.

⚠️ [SCREENSHOT NEEDED] SkyvvaSalesforce receiver channel — Skyvva tab, Adapter Settings
group showing Logging Option, Enable Retry for Fatal Connectivity Errors, and HTTP Client
Timeout.

Figure 11. SkyvvaSalesforce Receiver Adapter — Adapter Settings.

After completing all configuration settings, save and deploy the integration flow.

⚠️ [SCREENSHOT NEEDED] Integration flow deployed and started confirmation (green/started
status in Manage Integration Content or the editor's deploy confirmation toast).

Figure 12. Integration Flow deployed successfully.

4. Get the SAP CPI Endpoint URL

Navigate to:

CPI
→ Monitoring
→ Manage Integration Content

Locate the deployed Integration Flow and copy the endpoint URL.

⚠️ [SCREENSHOT NEEDED] Manage Integration Content — Endpoints panel for this iFlow, showing
the copied endpoint URL.

Figure 13. Manage Integration Content — Endpoint URL.
Note: The endpoint URL shape depends on the tenant generation — Neo tenants use
https://{{TenantId}}-iflmap.hcisbp.<region>.hana.ondemand.com/http/<Address>, current SAP BTP
Integration Suite (Cloud Foundry) tenants use
https://{{TenantId}}.<runtime-cluster>.cfapps.<region>.hana.ondemand.com/http/<Address>.
Important: Always copy the exact endpoint URL displayed by your SAP CPI tenant instead of
assembling it by hand.

5. Testing with Postman

Auto-Switch mode should be tested with different payload sizes to confirm that the expected processing strategy is selected.

Using the example thresholds:

Integrate Max Size = 200
Integrate Batch Max Size = 5000

the following tests can be performed:

TestRoot Account RecordsExpected Processing
SmallUp to 200Normal
Medium201 to 5000Batch
LargeMore than 5000Bulk — see the note in Context Before You Start before testing this row; keep Integrate Batch Max Size set above your real traffic so production requests don't land here
⚠️ [SCREENSHOT NEEDED] Postman request configuration — POST method, endpoint URL,
Authorization matching the HTTPS sender's User Role, Content-Type header matching the Skyvva
tab's Request Format.

Figure 14. Postman request configuration.

5.1 Configure the Postman Request

Create a new request with the following configuration:

SettingValue
MethodPOST
URLYour SAP CPI endpoint URL
AuthorizationAuthentication configured for the HTTPS Sender
Content-TypeMatch the configured Request Format
Because this example uses:
Request Format = XML

configure the header as:

Content-Type: application/xml

5.2 Example Payload Structure

The payload must match the hierarchical structure configured in the SKYVVA interface. Under External Mapping, the adapter resolves each child node by walking the Account element's descendants looking for elements named after the mapped child object (Contact) — so nest Contact elements directly under Account, with no extra wrapper element in between:

<Accounts>

    <Account>
        <skyvvasolutions__ERP_DEBTOR_ID__c>ACC-000001</skyvvasolutions__ERP_DEBTOR_ID__c>
        <Name>Test Account 1</Name>
        <Phone>123456789</Phone>

        <Contact>
            <skyvvasolutions__ERP_CONTACT_ID__c>ACC-000001-C01</skyvvasolutions__ERP_CONTACT_ID__c>
            <FirstName>John</FirstName>
            <LastName>Smith</LastName>
        </Contact>
    </Account>

    <Account>
        <skyvvasolutions__ERP_DEBTOR_ID__c>ACC-000002</skyvvasolutions__ERP_DEBTOR_ID__c>
        <Name>Test Account 2</Name>
        <Phone>987654321</Phone>

        <Contact>
            <skyvvasolutions__ERP_CONTACT_ID__c>ACC-000002-C01</skyvvasolutions__ERP_CONTACT_ID__c>
            <FirstName>Jane</FirstName>
            <LastName>Doe</LastName>
        </Contact>
    </Account>

</Accounts>
Important: the actual XML element names and hierarchy must match the SKYVVA hierarchical
mapping configured in your Salesforce interface (§1.2). skyvvasolutions__ERP_DEBTOR_ID__c/
skyvvasolutions__ERP_CONTACT_ID__c are this example's External ID fields — since Operation
Type is Upsert, each object needs one populated or the upsert fails with "No External Id
Found In The Mapping." Adjust field names/values for your org. A ready-to-use generator script
and sample files at several sizes are available under tutorial/SkyvvaBulk/ (originally built
for the Skyvva Bulk tutorial, but the same shape applies here).
⚠️ [SCREENSHOT NEEDED] Postman request and response for a Normal-tier or Batch-tier test
payload — the XML body sent and the New status response received.

Figure 15. Postman request and response.

5.3 Expected Response

This example uses:

Processing Mode = Asynchronous

Therefore, the immediate response confirms that the request was accepted for processing.

The response does not necessarily mean that all Account and Contact records have completed processing.

Use SAP CPI and Salesforce monitoring to verify the final processing result.


6. Monitoring

6.1 SAP CPI Monitoring

Navigate to:

CPI
→ Monitor
→ Monitor Message Processing

Locate the message and verify that it completed successfully.

⚠️ [SCREENSHOT NEEDED] CPI Monitor Message Processing — the test message shown with a
completed/successful status.

Figure 16. SAP CPI Monitor Message Processing.

A successful CPI message indicates that the request was successfully processed through the SAP CPI integration flow.


6.2 Salesforce Monitoring

Navigate to:

Salesforce
→ Message Monitoring

Locate the message associated with:

AccountContactAutoSwitch_IN

Review the processing status and verify that the data was processed successfully.

⚠️ [SCREENSHOT NEEDED] Salesforce Message Monitoring, showing the processed message for
the AccountContactAutoSwitch_IN interface with a successful status.

Figure 17. Salesforce Message Monitoring.

6.3 Verify Salesforce Records

After processing is complete, verify the records in Salesforce.

Confirm that:


Summary

The complete integration flow is:

Postman
   ↓
HTTPS Sender Adapter
   ↓
SAP Cloud Integration
   ↓
SkyvvaSalesforce Receiver Adapter
Mode = Auto-Switch
   ↓
SKYVVA Inbound Interface
   ↓
Auto-Switch Processing
   │
   ├── Normal
   ├── Batch
   └── Bulk
   ↓
Salesforce Account and Contact

Configuration Summary

ComponentConfiguration
Interface DirectionInbound
Interface Processing ModeAsynchronous
Operation TypeUpsert
External MappingEnabled
Integrate Max SizeExample: 200
Integrate Batch Max SizeExample: 5000
SKYVVA API VersionV3
Adapter ModeAuto-Switch
Request FormatXML
Response FormatXML
Auto-Switch mode provides a flexible way to process requests of different sizes through a single SKYVVA interface and SAP CPI integration flow.

The processing strategy is automatically selected according to the number of root records in the incoming request and the threshold values configured on the SKYVVA interface.

Open this article in the interactive viewer →