Set up License Genie

Use this guide to install and configure License Genie in your workspace.

Prerequisites

Complete the following before beginning setup:

  • Connect either Okta or Microsoft Entra ID as your identity provider; don't use both at once. Entra ID requires a P1 or P2 license.
  • If you plan to enable manager approval, ensure each user's manager can be looked up in Okta, Microsoft Entra ID, or Workday.
  • Install the Google Docs, Highspot, and Intercom (Custom) custom connectors from the community library.
  • Gather license inventory data for each app, either as contract PDFs for automated extraction or for manual entry.
  • For each license tier per app, identify the SSO group ID and define a rank order. License Genie uses this hierarchy to determine downgrade targets.
  • Collect admin email addresses for each app you plan to optimize.
  • Choose a notification channel for user-facing messages: Slack, Microsoft Teams, or Workato GO.
  • Identify users to exclude from optimization runs, such as admins, executives, and key stakeholders.

Install License Genie

Complete the following steps to install the required packages for License Genie:

ALREADY HAVE THE INSTALLER?

If your workspace already has the Genie Installer, skip to Step 5.

1

Download the Genie Installer package. Contact your Workato account team if you don't have it.

2

Create the following projects in your workspace:

  • Agentic | All Genies
  • Agentic | Installer
3

Go to Tools > Recipe lifecycle management and import the Genie Installer zip file into the Agentic | Installer project.

Importing the Genie Installer package through Recipe lifecycle managementImport the Genie Installer package

4

Click Next to proceed through the import.

You should see the installer assets in Agentic | Installer after the import completes.

5

Go to Workspace admin > API clients > Client roles and click Create client role.

6

Assign the following permissions to the client role:

CategorySub-categoryPermissionEndpoint
Project assetsProjects & foldersList foldersGET /api/folders
Project assetsProjects & foldersCreate a project or folderPOST /api/folders
Project assetsRecipesListGET /api/recipes
Project assetsRecipesStartPUT /api/recipes/:id/start
Deployments & lifecycleRecipe lifecycle managementGet package detailsGET /api/packages/:id
Deployments & lifecycleRecipe lifecycle managementImport packagePOST /api/packages/import/:id
Workspace detailsWorkspace detailsGet detailsGET /api/users/me

API client role configuration with required permissionsCreate a client role with the required permissions

7

Create an API client. Assign the client role and project access to the new client, then copy and save the generated token.

API client creation showing the generated tokenCopy and save the generated API client token

8

Contact your Workato account team to obtain your organization's Genie module installer token. Save this token in a secure location.

9

Go to Agentic | Installer > Connections > CON | Agentic Apps Installer and configure the following fields:

FieldDescription
Data center (Current Workato Workspace)Select the data center for your Workato workspace.
API key (Current Workato Workspace)Enter your workspace API client token from Step 7.
API key (Genie Module Installer)Enter the installer token from your Workato account team.
10

Click Connect.

Agentic Apps Installer connection configurationConfigure the Agentic Apps Installer connection

11

Go to Agentic | Installer > Templates > FUNC | [SAMPLE] 3. Install Genie Module.

12

Click Edit recipe, then do the following:

1

Refresh the recipe to load the latest available packages.

2

In Step 2, select the latest version of Agentic | License Genie from the Genie Module drop-down menu. Set Get Dependencies to false.

Selecting the genie module package in the install recipeSelect the latest version of the genie module

MODULE NOT VISIBLE

If Agentic | License Genie doesn't appear in the drop-down menu, your workspace may not have been granted access. Contact your Workato account team and repeat this step once access is confirmed.

3

In Step 4, set the Folder field based on your install type:

  • Fresh install: Leave the field empty. If you see an x icon next to the Folder field, click it to clear the cached value before running the job.
  • Upgrade: Select the existing Agentic | License Genie project. This preserves your existing configuration.

Selecting the folder in the install recipeSelect the folder to install License Genie

13

Click Test recipe and wait for it to complete. Confirm that the output of Step 5 in the recipe shows a success status.

14

Confirm that Agentic | License Genie now appears in your workspace's projects list.

Configure connections

Complete the following steps to configure connections:

1

Review the requirements for each app you plan to use and complete any that apply. Each app is labeled Core or Extensions to indicate where its skills live in the project. Only Core apps include downgrade logic.

Coupa (Extensions)

Follow the Coupa connector documentation and grant the following OAuth scopes:

  • Core.user.read
  • Core.user.write
  • Core.expense.read
  • Openid
  • Profile
  • Email
  • core.common.write
Gong (Core)
  • Ensure that read/write scopes are added to your Gong permission profile.
  • Open Gong, go to Admin Center > Provisioning, and confirm your identity provider (Okta or Microsoft Entra ID) is selected and groups are configured for your organization.
  • Enable the following OAuth scopes:
    • api:stats:user-actions
    • api:stats:interaction
    • api:logs:read
    • api:calls:read:basic
    • api:users:read
    • api:stats:scorecards
    • api:permission-profile:read
    • api:stats:user-actions:detailed
    • api:settings:scorecards:read
    • api:workspaces:read

MANUAL EXECUTION REQUIRED

If your organization doesn't use Okta or Microsoft Entra ID, License Genie can recommend license downgrades but can't execute them. Downgrades must be completed manually in Gong, as Gong doesn't support provisioning through its API.

Microsoft Entra ID (Core)
  • Requires a P1/P2 license.
  • Enable Reports and Audit logs permissions in the Azure Portal.
  • Audit log availability varies by license. Refer to the Microsoft data retention reference for more information.
Okta (Core)
  • The OAuth client or API token must be created by a Super Administrator or Organization Administrator.
  • Enable the following scopes if using OAuth:
    • okta.groups.read
    • okta.groups.manage
    • okta.users.read
    • okta.apps.read
    • okta.apps.manage
    • okta.logs.read
Outreach (Extensions)

Follow the Outreach connector documentation and grant the following permissions:

  • users.all
  • mailings.all
Salesforce (Core)
  • Enable logging in Salesforce so that usage metrics are recorded. Grant the following permissions:
    • API Enabled
    • View Event Log Files
    • View All Users
    • View Setup and Configuration
  • Enable Event Monitoring. Go to Setup > Event Manager and enable both Streaming and Storage for the following event types:
    • LightningUriEvent
    • UriEvent
    • ApiEvent
    • ReportEvent
SAP Concur (Extensions)

Follow the SAP Concur connector documentation. No additional setup is required.

Zoom (Core)
  • Enable the following granular OAuth scopes in your Zoom app:
    • report:read:list_users:admin
    • report:read:list_meeting_participants:admin
    • user:update:user:admin
    • user:read:user:admin
  • The connected Zoom account must also have access to Usage Reports and User Management in its Zoom role settings.
2

Go to Agentic | License Genie > Config > Connections.

3

Set up a connection for each app you plan to use. In the Connections folder, each connection name starts with CON | LOPT (License Optimization) — configure the one for each app you use:

Configure metadata

Complete the following steps to configure the data tables License Genie uses to identify licenses and schedule optimization:

1

Go to Agentic | License Genie > Config > Metadata.

2

Edit the License Genie Scheduler data table.

Column nameDescriptionExample
Data SourceEnter the SSO platform that provisions this app (Okta or Entra ID); use the same provider you connected as your identity provider.Okta
App NameEnter the name of the application to optimize.Gong
ActiveSet to TRUE to include the app in optimization runs.TRUE
Day/DateSet the optimization schedule. Enter a date number to run monthly on that date. For example, enter 22 to run the optimization on the 22nd of every month. Enter a day name to run weekly. For example, Wed runs every Wednesday.Wed
Underutilization CriteriaDescribe the conditions that indicate a user is underutilizing the application. Use a concrete metric and time window so the genie can evaluate it consistently.No logins in the last 60 days
Admin Email/Channel IDEnter the admin's email address or notification channel for this application. Separate multiple emails with commas.[email protected]
Processing TypeEnter Auto for automatic (API-based) processing or Manual for manual (CSV upload) processing.Auto

License Genie Scheduler data tableConfigure the License Genie Scheduler data table

3

Edit the Application License Inventory data table. This table stores license details for each app and is used for downgrade recommendations.

If you're using the contract data extraction feature, the values in the first table below are populated automatically when you upload your contracts; configure only the values in the second table. If you're not using contract data extraction, configure all entries in both tables manually.

License and contract details:

Column nameDescriptionExample
App NameEnter the name of the application. Must match the name used by License Genie skills (Workato-built or custom).Zoom
License NameEnter the name of the license.Zoom Basic
License DetailsEnter additional details about the license.Basic Zoom License Type 1
Pricing Per MonthEnter the monthly price per user.0
Pricing DetailsEnter additional details about pricing.Free Zoom License
QuantityEnter the number of seats purchased under the license.1000
Current UtilizationThe number of seats currently in use. License Genie updates this automatically when it runs.100
Start DateEnter the contract start date.01/01/2026
End DateEnter the contract end date.12/31/2026
isAdminSet to TRUE if this is an admin-level license.FALSE

SSO and ranking details (always configured manually):

Column nameDescriptionExample
Data SourceEnter the provisioning or SSO app for the organization. Use the same value across all entries for a given app: Okta, Entra ID, or leave blank.Okta
License Hierarchy/RankAssign a rank to each license tier. Rank 1 is the highest tier, typically the most expensive or feature-rich; lower-ranked tiers are downgrade targets.1
SSO Group/App IDEnter the SSO group ID for this license tier. Used for deprovisioning and downgrades. Each license tier should have its own SSO group so downgrades can be applied cleanly.00g1a2b3c4

CRITICAL COLUMNS

These three columns control how License Genie applies downgrades and deprovisioning. Verify each value carefully before saving an entry.

4

Optional. Edit the License Optimization Exclusion List data table to exclude specific users from optimization for an application.

Column nameDescriptionExample
ApplicationEnter the name of the application this exclusion applies to. If SSO is used for optimization, use the format [SSO]|[App].Okta|Gong
EmailEnter the email address of the user to exclude.[email protected]
Optimization AllowedSet to FALSE to exclude this user from optimization for the specified application.FALSE
5

Go to Agentic | License Genie > Extensions > Entra ID License Data and start REC | Entra ID Service Plan Registry Sync if it isn't already started. This recipe populates the Entra ID Service Plan Registry table with SKU plan names and app name mappings. License Genie uses the table to identify which license to revoke during Entra ID optimization.

MICROSOFT ENTRA ID ONLY

This step is only required if you are using Microsoft Entra ID.

6

If you plan to use Salesforce for optimization, ensure your Salesforce connection is set up correctly first. Then go to Agentic | License Genie > Extensions > Salesforce License Data and activate REC | Salesforce License Permission Registry Sync to populate the Salesforce Permission Registry table. Leave the recipe running if your Salesforce permissions change regularly.

Configure project properties

Complete the following steps to configure project properties:

1

Go to Agentic | License Genie > Settings > Project properties.

2

Edit the following project properties:

PropertyDescription
Approval.Admin.EnabledSet to TRUE to enable admin approval or FALSE to disable it.
Approval.Manager.EnabledSet to TRUE to enable manager approval or FALSE to disable it.
Approval.ReminderFrequency.DaysSet the number of days between approval reminder notifications. For example, 3.
Approval.TimedOutDefaultActionSet the default action when all configured approvals time out. Accepts Approved or Rejected.
Approval.TimeOut.DaysSet the number of days after which the approval workflow times out. For example, 7.
Approval.User.EnabledSet to TRUE to enable end user approval or FALSE to disable it.
EntraId.SignIn.CountSet the number of sign-in records to fetch per API call for pagination, up to a maximum of 998. Entra ID only. For example, 200.
EntraId.User.CountSet the number of user records to fetch per API call for pagination. Entra ID only. For example, 200.
Feedback.UrlSet the URL of the feedback page where users can review or submit additional feedback. When set, the Capture User Feedback skill appends the captured feedback as prefilled values and sends the link to the user. Leave blank to omit the feedback link. For example, https://acme.com/feedback.
Genie.NameSet the display name for License Genie. This name appears in notifications. For example, License Genie.
3

Go to Agentic | License Genie > Settings > Project access and add the collaborators that need access to this project. This should include admins and developers working on custom extensions. End users whose licenses are being optimized don't need project access.

Configure License Genie

Your project includes two genies: License Genie Slack, which has the Slack chat interface preselected, and License Genie, which lets you select any chat interface. Use License Genie Slack if Slack is your notification channel; use License Genie for Microsoft Teams or Workato GO.

Agentic | License Genie project Assets tab showing the License Genie Slack and License Genie geniesThe two genies included in the License Genie project

Complete the following steps to configure License Genie:

1

Go to Agentic | License Genie, select the genie for your notification channel, and click Edit.

2

Select your AI model. If you chose the genie that allows any chat interface, also select a chat interface. Don't change the genie description.

3

If you chose the genie that allows any chat interface, update the notification trigger to point to it. Go to Agentic | License Genie > Extensions > App Events and edit FUNC | User Notification & Genie Trigger [App Event]. In the Step 2 setup, select License Genie (Agentic | License Genie) from the drop-down menu.

Step 2 setup of the User Notification & Genie Trigger app event with License Genie selected in the Genie drop-down menuSelect License Genie in the Step 2 Genie drop-down menu

CHECK THE SELECTED GENIE

This trigger is initially set to License Genie Slack (Agentic | License Genie). Make sure you select License Genie (Agentic | License Genie) instead. The two names are similar but are different genies.

4

Optional. Go to your genie's Knowledge bases section, click Add > New knowledge base, and create a knowledge base. You can then add PDFs for License Genie to reference.

5

Go to the Enterprise skills section and confirm the following skills are started. For any that aren't, click the skill name, then click Start recipe:

SkillLocation
Request Bulk Approval for Escalated RequestsCore > Approval Workflow
Capture User FeedbackCore > User Feedback
Optimization Status UpdateExtensions > Apps to Optimize > Manual
Request User ApprovalCore > Approval Workflow
Review New User Identified for OptimizationCore > Reports
Get License Optimization ReportCore > Reports

Activate any additional skills for the apps and capabilities you want this genie to use.

6

Go to Agentic | License Genie > Core.

7

Click the Assets filter, select Recipes, and start any recipes in the Core folder that aren't already started.

8

Return to Agentic | License Genie and select the genie you configured.

9

Click Start genie.

SETUP COMPLETE

License Genie is now configured. Use Activate and test to confirm it's working, or Extend License Genie to add more apps and build custom skills.

Extend License Genie

You can extend License Genie to optimize apps beyond the built-in set or to add usage data manually. This section is optional.

The Core folder holds the genie's optimization logic and is read-only. You extend the genie through the other two folders, without changing its default behavior. To add capabilities, use the Extensions folder to activate provided assets, such as additional apps and functions. To build new skills, use the Custom Extensions folder.

Extensions

Complete the steps that apply to activate additional apps and features:

1

Go to Agentic | License Genie > Extensions > Apps to Optimize to see the available apps, such as SAP Concur, Coupa, and Outreach. Each app's folder contains the skills and functions for optimizing that app. Set up the connection for any app you plan to use in Configure connections.

CORE SKILLS ONLY

Only skills in the Core folder are set up for downgrade logic. Skills in Extensions aren't configured for downgrades.

2

Open the folder for each app you plan to use, click the skill name, and click Start recipe. Then add the skill to License Genie.

3

For apps without a direct API integration, upload usage data manually. Use the following template:

csv
Identifier,Identifier type,Application ID,User Email,Field Name,Field value,Field type,Reasoning,Current SSO Group,Recommended action

User Email and Field value are required. All other columns are optional.

To upload a file, start a chat with License Genie and provide the application name along with the completed template. The genie runs the New Usage Data File Uploaded for Apps skill, which adds the data to the data table.

4

To make your existing inventory data available to the genie, go to Agentic | License Genie > Extensions > Knowledge Ingestion and activate Store Application License Inventory in Knowledge Base. Then add the Application License Inventory knowledge base to License Genie. This doesn't create records in the Application License Inventory data table.

5

If manager approval is enabled, configure the FUNC | Get manager details function so License Genie can route approvals to managers.

1

Go to Agentic | License Genie > Extensions > Functions and select FUNC | Get manager details.

2

Clone the function inside the Custom Extensions folder.

3

Open the cloned function and connect it to your organization's provisioning app.

4

Unskip the steps for your provisioning app. All other steps are skipped by default.

Provisioning appAction
OktaUnskip steps 3–9
Microsoft Entra IDUnskip steps 10–13
WorkdayUnskip steps 14–19
5

Map the manager email datapill to the data field in the final return step. The function then passes the manager's email address automatically to the next step of the recipe.

CUSTOM PROVISIONING APPS

This function may need additional configuration if your provisioning app isn't listed above. Refer to your app's connector documentation for more information.

Custom extensions

Complete the following steps to build a custom skill:

1

Go to Agentic | License Genie > Custom Extensions > [App Name]. Templates for new apps are already configured.

2

Rename the folder and skill to match the app name.

3

Add the skill to License Genie.

Activate and test

Complete the following steps to confirm your setup.

WORKATO GO EXAMPLE

These steps use Workato GO as an example. If you configured the Slack or Microsoft Teams chat interface, access License Genie through that interface instead. The verification step is the same: send a message and check the genie's reply.

1

Go to AI Hub > Workato GO and copy your subdomain URL.

AI Hub Workato GO settings page showing the subdomain URL fieldWorkato GO subdomain URL

2

Open the URL and log in with your Workato Identity credentials.

3

Click the Ask field and select License Genie from the drop-down menu. Alternatively, select Genies in the sidebar and select License Genie.

Workato GO interface showing the Ask drop-down menu with License Genie selectedSelect License Genie from the Ask drop-down menu

4

Enter Who are you? in the chat. License Genie greets you by name, confirms its name, and describes its role.

Last updated: