Workday
Access the Workday SOAP API with custom integrations
In Tenklo (free signup), go to Integrations -> Configure New Integration -> Workday.
Go to Connections -> Add Test Connection -> Authorize, then log in to Workday. Later, you'll let your users do the same directly from your app.
Let's make your first request to the Workday SOAP API (fetch workers using Human_Resources service). Replace the placeholders below with your Environment API key, integration ID, and connection ID:
Install Tenklo's backend SDK and SOAP library with npm i @nangohq/node soap. Then run:
import { Nango } from '@nangohq/node';
import soap from 'soap';
const nango = new Nango({ apiKey: '<NANGO-API-KEY>' });
const connectionId = '<CONNECTION-ID>';
const providerConfigKey = '<INTEGRATION-ID>';
const connection = await nango.getConnection(providerConfigKey, connectionId);
const { credentials, connection_config } = connection;
if (
credentials.type !== "BASIC" ||
!credentials.username ||
!credentials.password ||
!connection_config["hostname"] ||
!connection_config["tenant"]
) {
throw new Error(
"Invalid credentials: BASIC auth, username, password, hostname, and tenant are all required."
);
}
// Example: Get workers using Human_Resources service
const serviceType = 'Human_Resources';
const version = '40.0';
const wsdlUrl = `https://community.workday.com/sites/default/files/file-hosting/productionapi/${serviceType}/v${version}/${serviceType}.wsdl`;
const endpointUrl = `https://${connection_config["hostname"]}/ccx/service/${connection_config["tenant"]}/${serviceType}/v${version}`;
const client = await soap.createClientAsync(wsdlUrl, {});
client.addHttpHeader("Accept-Encoding", "gzip, deflate"); // Needed or some queries will fail https://github.com/axios/axios/issues/4806
client.setSecurity(
new soap.WSSecurity(credentials.username, credentials.password),
);
client.setEndpoint(endpointUrl);
// Make SOAP request to Get_WorkersAsync
const [res] = await client["Get_WorkersAsync"]({
Response_Filter: {
Page: 1,
Count: 100,
},
});
console.log('Workers Response:', JSON.stringify(res, null, 2));✅ You're connected! Check the Logs tab in Tenklo to inspect requests.
Next step: Embed the auth flow in your app to let your users connect their Workday accounts.
Questions? Join us in the Slack community.