> ## Documentation Index
> Fetch the complete documentation index at: https://nango.dev/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Workday

> Access the Workday SOAP API with custom integrations

> [tab] 🚀 Quickstart
>
> **1. Create an integration**
>
> In Nango ([free signup](https://app.nango.dev)), go to [Integrations](https://app.nango.dev/dev/integrations) -> *Configure New Integration* -> *Workday*.
>
> **2. Authorize Workday**
>
> Go to [Connections](https://app.nango.dev/dev/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 [Environment API key](https://nango.dev/docs/reference/backend/http-api/api-keys.md), [integration ID](https://app.nango.dev/dev/integrations), and [connection ID](https://app.nango.dev/dev/connections):
>
> > [tab] Node
> >
> > Install Nango's backend SDK and SOAP library with `npm i @nangohq/node soap`. Then run:
> >
> > ```typescript theme={null}
> > 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));
> > ```
>
> Or fetch credentials dynamically via the [Node SDK](https://nango.dev/docs/reference/backend/backend-sdk/node.md#get-a-connection-with-credentials) or [API](https://nango.dev/docs/reference/backend/http-api/connections/get.md).
>
> ✅ You're connected! Check the [Logs](https://app.nango.dev/dev/logs) tab in Nango to inspect requests.
>
> > [!TIP]
> >
> > Next step: [Embed the auth flow](https://nango.dev/docs/guides/primitives/auth.md) in your app to let your users connect their Workday accounts.

> [tab] 🔗 Useful links
>
> | Topic | Links |
> | - | - |
> | Authorization | [Guide to connect to Workday using Connect UI](https://nango.dev/docs/integrations/all/workday/connect) |
> | General | [Website](https://www.workday.com/) |
> | Developer | [Workday Web Services (WWS) Directory](https://community.workday.com/sites/default/files/file-hosting/productionapi/index.html) |
> | | [Workday Community](https://community.workday.com/) |
> | | [Request Community Account](https://workday.my.site.com/customercenter/register) |
>
> > [!NOTE]
> >
> > Contribute useful links by [editing this page](https://github.com/nangohq/nango/tree/master/docs/integrations/all/workday.mdx)

> [tab] 🚨 API gotchas
>
> * Workday provides two APIs, a REST and a SOAP one and Nango supports them both.
>
> * Workday requires a user-specific `hostname` and `tenant` for the API base URL.
>
> * Access to most Workday's API doc resources, including detailed documentation on OAuth authentication flows, is typically restricted to Workday customers and partners. To access these resources, you can:​
>
> 1. **Sign In to Workday Community**: Visit the [Workday Community](https://community.workday.com/) and sign in with your Workday credentials. If you don't have an account, you can [request one](https://workday.my.site.com/customercenter/register).
> 2. **Contact Workday Support**: If you are a customer, reach out to Workday Support for assistance in accessing specific documentation.
>    \[!NOTE] Contribute API gotchas by [editing this page](https://github.com/nangohq/nango/tree/master/docs/integrations/all/workday.mdx)

> [!NOTE]
>
> Questions? Join us in the [Slack community](https://nango.dev/slack).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.