1

Create an integration

In Nango (free signup), go to Integrations -> Configure New Integration -> Workday.
2

Authorize 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.
3

Call the Workday SOAP API

Let’s make your first request to the Workday SOAP API (fetch workers using Human_Resources service). Replace the placeholders below with your secret key, integration ID, and connection ID:
Install Nango’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({ secretKey: '<NANGO-SECRET-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));
Or fetch credentials dynamically via the Node SDK or API.
✅ You’re connected! Check the Logs tab in Nango 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.