What's new ⬇ Download Reportworq
⬇ Guide PDF

Connect Workday Adaptive Planning#

Reportworq refreshes Workday Adaptive Planning OfficeConnect reports. An OfficeConnect report is an Excel workbook whose query specifications are stored in hidden properties on each worksheet. Reportworq reads those embedded specifications and queries the Adaptive Planning API to update the workbook, so a report that a finance user built in the OfficeConnect Excel add-in can be refreshed, parameterized, burst, and distributed by Reportworq without anyone reopening it in Excel.

In the connector catalog the tile is Workday Adaptive Planning. This is the planning product on the Adaptive Planning API. It is not the same as the Workday connector, which reaches Workday itself (Financial Management and HCM). Adding the wrong one is the most common mistake here; see the Connector catalog.

The connector supports three authentication types:

How Workday OAuth authentication works#

Reaching the Adaptive Planning API with a Workday API client is a two-step token exchange, and in older setups administrators performed it by hand (for example, in Postman) on every token refresh:

  1. Call the Workday token endpoint with the client id, client secret, and a refresh token to get a short-lived Workday access token.
  2. Call the Adaptive token endpoint with that access token to get an Adaptive public API token, which authenticates the actual Adaptive Planning API calls.

Reportworq does this exchange for you. In Workday OAuth mode you enter five values once, and at run time Reportworq requests a fresh Workday access token, exchanges it for an Adaptive public API token, and reuses that token for the rest of the operation. You do not paste tokens into Reportworq, and you do not need Postman to keep a token alive. You only supply the durable client id, client secret, and refresh token.

The remaining one-time work (creating the API user, the security group, the API clients, and the refresh token in Workday and Adaptive) is done in Workday and Adaptive by a Workday administrator, and is described next.

Two Workday API clients, two jobs#

The setup below creates two Workday API clients. They look alike in Workday, and mixing them up is the most common reason a Workday OAuth connection fails, so it helps to know which one does what before you start:

API client for Adaptive's Workday Credential API client for Reportworq
Workday task Register API Client Register API Client for Integrations
Client grant type JWT Bearer Grant, with an x509 certificate Authorization Code Grant, with a client secret and a refresh token
Used by Adaptive, through the Workday Credential under Integrations > Design Integrations > Credentials Reportworq, through the Workday OAuth fields on the connection
What it is for Lets Adaptive connect to Workday, for example to import Workday data through a Planning Data Source Lets Reportworq get an Adaptive public API token and read Adaptive data
Set up in Step 3 below Step 4 below

Both clients act as the same integration user. Reportworq never uses the JWT client or its certificate: the Workday OAuth fields take only the client id, client secret, and refresh token of the API client for integrations. If your data starts in Workday (for example Financials actuals), it reaches Reportworq in two hops: Workday to Adaptive through the JWT client, then Adaptive to Reportworq through the client for integrations.

Before you begin#

Set up API access in Workday and Adaptive#

This is the one-time setup that Reportworq does not automate, because it happens inside Workday and Adaptive. The goal is to end up with a dedicated integration user, a Workday API client that can reach the Adaptive Planning API, and a refresh token for that client.

1. Create the public API user in Adaptive#

  1. In Adaptive, under Tenant Setup / Public APIs, create a new API user. The API user is added to Adaptive immediately; it does not need to go through the user-sync process.
  2. Edit the user in Adaptive Administration and give it the access the integration needs: assign it to the Administrator group with access to all levels. If your Adaptive tenant has child instances, grant the user top-level access in each child instance too, keeping the default instance as the parent.
  3. If Access Rules are enabled in your tenant, make sure the API user is covered by a rule that grants access to all levels and all dimensions. A public API token can only ever see what its user is entitled to, so an under-provisioned user is the usual reason data comes back empty or partial.

2. Create an integration security group in Workday#

  1. In Workday, create a new Integration System Security Group (Unconstrained) for this integration. Do not reuse a security group created for other integrations.
  2. Assign the new API (integration) user to the group.
  3. Grant the group the Adaptive Planning API domains it needs, typically Adaptive Planning API Access, Adaptive Planning, and Adaptive Planning Integration, with the get/put and view/modify access your Workday administrator determines, then activate the pending security changes.
  4. If you will refresh reports built on Workday Financials (see Reports built on Workday Financials), also give the group the Financial Reporting access those reports need, including the budgets they read, the same access the people who build the reports have. Then run Workday's Clear Financial Reporting Caches task. Do this again after every security change for this user and after every sandbox refresh: Workday caches Financial Reporting security, and until the cache is cleared the user keeps its old view.

3. Register the API client for Adaptive's Workday Credential#

This client is used by Adaptive, not by Reportworq. You do not enter its client id or certificate in Reportworq.

  1. In Adaptive, under Integrations / Design Integrations / Credentials, create a new Workday Credential and copy its certificate.
  2. In Workday, register a new API client with the client grant type set to JWT (JWT bearer). Add an x509 certificate using the certificate you copied from the Adaptive Workday Credential.
  3. Set the client's scope to the Adaptive Planning scopes the integration needs (for example, Adaptive Planning, Adaptive Planning for Financial Plans, and Adaptive Planning for the Workforce, plus the system/tenant scopes your administrator requires).
  4. Copy the resulting client id back into the Adaptive Workday Credential and add the integration user, then test the connection in Adaptive to confirm the client can reach the tenant.

It is worth validating the new user inside Adaptive before going further, for example, by building a Planning Data Source with the new credential and importing data. Adaptive uses the same API under the hood, so a successful import is a good sign the user and client are provisioned correctly.

4. Register the API client for Reportworq and generate a refresh token#

This is the client Reportworq uses. It is a separate client from the one in step 3.

  1. In Workday, run Register API Client for Integrations (not Register API Client, which creates the JWT kind from step 3). Its client grant type is Authorization Code Grant. Select Non-Expiring Refresh Tokens, and set the scope to the functional areas of the domains you granted in step 2, for example Adaptive Planning and System. Copy the client's client id and client secret.
  2. From that API client, choose the action to manage refresh tokens for integrations, select the integration user from step 2, and generate a new refresh token. The token acts as the account you select, so select the integration user, not your own account. Copy and store the token securely. This is the refresh token Reportworq will use.
  3. Note the token endpoint for the API client (Workday shows it on the View API Client task). This is the Workday Token Url you give Reportworq.

Gather the five values Reportworq needs#

For Workday OAuth mode, collect these five values from the setup above:

Reportworq field What it is Where it comes from
Workday Token Url The Workday OAuth 2.0 token endpoint. Typically https://<gateway>/ccx/oauth2/<tenant>/token. The API client's token endpoint (shown on Workday's View API Client task).
Adaptive Token Url The endpoint that exchanges a Workday access token for an Adaptive public API token. Typically https://<gateway>/ccx/api/planning/v1/<tenant>/adaptiveAPIAccessToken. Built from your Workday gateway and tenant.
Workday ClientId The API client's client id. The API client for integrations (step 4), not the JWT client from step 3.
Workday Secret The API client's client secret. The API client for integrations (step 4).
Workday Refresh Token The long-lived refresh token for the integration user. Generated under Manage Refresh Tokens for Integrations.

In both URLs, <gateway> is your Workday gateway host and <tenant> is your Workday tenant. Treat the client secret and refresh token like passwords: do not paste them into email, chat, or a screenshot. Reportworq stores them encrypted on the connection.

Add the connection in Reportworq#

  1. Sign in to Reportworq as an administrator and go to Settings > Integrations. Datasource connectors live under the DATASOURCES heading.

  2. Select Add integration, find Workday Adaptive Planning in the catalog, and add it. The connection editor opens.

    The Reportworq Workday Adaptive Planning connection editor, showing Datasource Settings and Authentication Settings
    The Reportworq Workday Adaptive Planning connection editor, showing Datasource Settings and Authentication SettingsTap or click the image to view it full screen
  3. At the top of the editor, select Enable Integration and give the connection a Display name (for example, Adaptive). This name is how parameters and formulas refer to the datasource, so it must be unique across the instance and is awkward to change later.

  4. Under Authentication Settings, set Authentication Type to Workday OAuth.

  5. Set the API URL for your environment. Leave it blank for US production. For a sandbox, a preview environment, or a non-US region, use the examples menu on the field or enter the host by hand. For example https://api.sbox.adaptiveplanning.com. Enter only the host; Reportworq appends the API path and version itself. See Connect a Workday Adaptive sandbox or non-US environment.

  6. Set the Instance Code if you need a specific Adaptive instance. Leave it blank to use the default instance.

  7. Enter the five Workday OAuth values you gathered: Workday Token Url, Adaptive Token Url, Workday ClientId, Workday Secret, and Workday Refresh Token.

    The Workday OAuth fields in the Reportworq connection editor: Workday Token Url, Adaptive Token Url, Workday ClientId, and the masked Workday Secret and Workday Refresh Token
    The Workday OAuth fields in the Reportworq connection editor: Workday Token Url, Adaptive Token Url, Workday ClientId, and the masked Workday Secret and Workday Refresh TokenTap or click the image to view it full screen
  8. If your Reportworq instance is licensed for Data Collection and you want data collection (writeback) to authenticate as a different user, select Use different credentials for data collection and fill in the Data Collection Credentials. Otherwise the connection's credentials are used for both.

  9. Select Test Connection. A reachable, correctly configured connection shows a Connection Test message reading Success. If it fails, re-check the URLs, the client id, secret, and refresh token, the API user's Adaptive access, and the Reportworq server's outbound network access to the Adaptive host, then test again.

  10. Select Save.

Refresh OfficeConnect reports in a job#

Once the connection tests, Reportworq can refresh OfficeConnect workbooks that were built against this Adaptive tenant:

Reports built on Workday Financials#

OfficeConnect can also build reports on Workday Financials data (the add-in's Reporting: Financials mode). Reportworq refreshes those workbooks through the same Workday Adaptive Planning connection:

Behavior and limits#

Troubleshooting#

Symptom Likely cause What to do
Test Connection fails immediately with an authentication error A wrong client id, secret, or refresh token, or a revoked/expired refresh token Re-copy the client id and secret from the Workday API client, generate a fresh refresh token, re-enter all three, and test again.
The error starts with Workday Oauth: and includes invalid_grant Workday rejected the refresh token. It was revoked, it belongs to a different API client than the Workday ClientId, or it was generated in a different tenant (a sandbox refresh removes tokens generated before it) Confirm Workday ClientId is the client for integrations from step 4, not the JWT client from step 3. Then generate a new refresh token for the integration user on that client, in the tenant your Workday Token Url points at, and re-enter it.
The error starts with Adaptive Oauth: and includes permission denied (code S22) The refresh token works, but Workday refused an Adaptive token for the user behind it Check that the refresh token was generated for the integration user, that the user is mapped under Adaptive Tenant Setup > Public APIs, that its security group has the Adaptive Planning API domains with the pending security changes activated, and that the API client's scope covers those domains' functional areas. Then select Refresh Public APIs Setup in Adaptive and test again. If it still fails, the refusal is inside Workday, so open a case with Workday support.
A Workday Financials report fails with Workday Financials (customReportValues): An element used in this report no longer exists in the reporting model, but the same report refreshes in OfficeConnect for the person who built it. Often only some columns fail, for example the budget versions while Actuals work The API user can't see an element the report uses, usually a version such as a budget. Workday hides it from that user, or still serves security it cached before access was granted. Common after a sandbox refresh, which restores production security Give the API user the same access to those elements as the report's author, activate the pending security changes, then run Workday's Clear Financial Reporting Caches task and re-run the job. To confirm, sign in to OfficeConnect as the API user and refresh the report: it shows the same problem as An element of type 'Version' was excluded because it no longer exists or you don't have access to it.
A refresh fails with Sheet '…' carries a filter for an Adaptive dimension (…) that this report's model doesn't have Either the report was built inside an earlier Reportworq output, or a sheet was copied from one, and it still carries a filter left by that output's job; or the job has a parameter on a Workday Adaptive Planning dimension and the report is built on Workday Financials If the report came from an output, rebuild it in a new, blank workbook in OfficeConnect and upload it again. To filter a report built on Workday Financials, use a list parameter with the AIFILTER worksheet function instead of a parameter on an Adaptive Planning dimension.
Test Connection fails when reaching the token or Adaptive endpoint A wrong Workday Token Url or Adaptive Token Url, or the server cannot reach the host Confirm both URLs against Workday's View API Client task and your gateway/tenant, and confirm the Reportworq server has outbound HTTPS to the Adaptive host.
Connection tests, but a refresh returns no data or partial data The API user is under-provisioned in Adaptive In Adaptive, give the API user Administrator-group access to all levels, and, if Access Rules are enabled, a rule granting all levels and dimensions. Re-run after Refresh Metadata.
Data is missing for a specific instance, or the wrong instance is queried Instance Code is blank or wrong on a multi-instance tenant Set Instance Code to the intended Adaptive instance (blank uses the default), save, and test again.
A structure change in Adaptive is not reflected in a refresh The metadata cache is still serving the old structure Select Refresh Metadata on the connection (save edits first), then re-run.
You added a connector that signs in to Workday but cannot see Adaptive data You added the Workday connector instead of Workday Adaptive Planning Add the Workday Adaptive Planning connector; the plain Workday connector reaches Workday Financial Management/HCM, not Adaptive.

Feedback on this page

Comments, questions, requests, or something missing or unclear? Email us - the page you are on is filled in for you.

Email feedback on this page

Or write to support@reportworq.com directly.