Skip to main content
Eptura Knowledge Center

Deploy AI Single Desk Intelligent Bookings

 

This article walks you through setting up Archibus and an Azure Machine Learning environment that enables the use of the AI Single Desk Intelligent Bookings.

Contents

Azure’s automated machine learning (AutoML) job requires a minimum of 50 records for training; ensure there are at least 60 historical booking records available in your Archibus database in the time range you set. The dataset is split into 90% for AutoML training and 10% for model validation, which means the 60 records provide approximately 54 records for training, meeting the requirement. 

When you have more data, this leads to better model performance. If fewer than 60 records are available, the AutoML job will not be created, and Workplace will get booking recommendations directly from the Archibus database.

Pre-requisites


Make sure you have assigned an Azure subscription, with the Owner role (to allow creating Azure resources like “Azure Machine Learning workspace”), and a resource group. 

Archibus Installation and Configuration


Install version V.2025.01 or later of Archibus.

This instance must be publicly accessible on the internet (to import booking data into Azure ML and to get the booking recommendations from Azure ML).

The Archibus instance can be hosted on Cloud (Azure, AWS, or GCM), or you can use ngrok to serve your localhost instance publicly.

Enable the DisplayIntelligentRecommendations parameter

Log in as an Archibus administrator to the Archibus Web Central.

From the left navigation, go to System > Archibus Administrator - Application Configuration > Configure Application Parameters.

clipboard_ea5d7f2c52828c2551d10c6f42a69835d.png

Select theAbWorkplaceIntelligentBookingsapplication.

clipboard_e64d7781bc651e697b845cfa709554887.png

Select theDisplayIntelligentRecommendationsparameter.

clipboard_e6aea5bece28060d56688ccc6f6458b8a.png

Set the parameter value to 1 to enable the parameter, click on Save, and on Reload All Parameters.

clipboard_e1a4c27880f0a5db5b64614547000692e.png

Azure Authentication


Register an application in Azure

Go to Azure - https://portal.azure.com/#home

Click the More services icon.

clipboard_e697b878f3a35f448766821e6b0dad3c9.png

Search and open Microsoft Entra ID.

clipboard_ecc12766e656ab67e21533f952be6dc11.png

This opens the Entra ID settings for the logged-in user’s default directory/tenant. 

clipboard_eff6bfc75e9661cc503aa145110e1a354.png

If you want to use a different tenant, then switch the directory.

clipboard_eeee2ba003391707eda5c6549be3eebdf.png

From the menu, click Manage > App registrations and the App registrations screen displays.

clipboard_efc10bec5f3a9c6527ea488479b3e8014.png

Click New registration.

clipboard_e085f9910e85bc6058fdf7595a02fb3b8.png

In the Name field enter name for the application and then click Register button.

Copy the Application (client) ID and the Directory (tenant) ID and paste this into a text editor as we will use this later in the steps

clipboard_e2d365664ce38921a8327cc3f19524a1e.png

Configure the Client Secret

From the menu, click Certificates & secrets.

clipboard_e6e8d6c38bf9d875728b77e7678a2ae4f.png

Click the + New client secret and the Add a client secret form displays.

clipboard_e9a7d69d47d7eb7c2c425f37784ce41a2.png

In the Description field, enter short description.

From the Expires drop-down, select when the client secret expires.

Click the Add button.

clipboard_e41d30f6fafc0e61981a899c8d86d6123.png

Copy the client secret value and paste this into a text editor. Make sure you save this file, as the value will not be visible later.

Expose the registered app’s API

From the menu, click (A) Expose an API.

Click the (B) Application ID URI's  Add button and the Edit application ID URI form.

(C) Click the Save button to save the default URI value.

clipboard_ed1cfba98eea36288ef5fb5c15f2753b4.png

Update the Manifest

From the menu, click Manifest.

In the Microsoft Graph App Manifest (New) section, set the requestedAccessTokenVersion property to 2, and save the manifest.

clipboard_eab8365b5fd6144ff1d561ed60f0eff9e.png

Create the Azure Machine Learning workspace

Go to Azure https://portal.azure.com/#home and click Create a resource.

clipboard_edf1dc352e766fcab9440595525fa806f.png

From the menu, click (A) AI + Machine Learning and then (B) Azure Machine Learning.

clipboard_ee15b2bcd43215acfe7230179d42ec195.png

The Azure Machine Learning screen displays.

Select the appropriate subscription and resource group.

In the Workspace details, enter a meaningful name for the workspace.

clipboard_e2420ca6448b11b1bd923a7a18e12dbab.png

Click the Review + create button.

After the validation passes, click Create, wait for the workspace deployment, and click resource to select the workspace.

An existing Machine Learning workspace may also be utilized, if available.

Assign a role to the app

If not already selected at the previous step, go to the Azure portal home page https://portal.azure.com/#home and then select the Azure Machine Learning workspace.

clipboard_ee8c9a5eef618b21e64b318d85fb69f4e.png

From the menu, navigate to Access control (IAM) and click on the Add role assignment button.

clipboard_e4323c0e7126b68712c26b68906e775f4.png

The Add role assignment screen displays.

clipboard_eb832e42b3a7abe63bd6885c80c01349a.png

Click the Privileged administrator roles tab.

Select the Contributor role.

Click the Next button and the Select member form displays.

clipboard_edbed6f129b9a8e923bbb08ae48f88b5b.png

Select the application you created before and then click the Select button.

clipboard_ef7787a86ae4f2dd2360952e298310ae1.png

Click the Review + assign button.

Configure the Archibus REST API


Update the following values in WEB-INF/config/oidc.properties file and restart the Archibus service

clipboard_ee9b5d3a63cebd355047ab12f459bee3c.png

  • oidc.usernameClaim:sub
  • oidc.audience:<<Client ID>>
  • oidc.issuer: https://login.microsoftonline.com/<<Tenant ID>>/v2.0
  • oidc.jwksUrl: https://login.microsoftonline.com/<<Tenant ID>>/discovery/v2.0/keys

Use the client ID and tenant ID generated when registering the application.

clipboard_ed1005a83b5c6a3111905a88dea4ebd08.png

Create a custom environment for running the AutoML job


In the machine learning workspace, select the Overview tab and click the Launch studio button.

clipboard_efccae0a87640dffd23d3d62a9365ce79.png

From the menu, under the Assets section, click Environments.

clipboard_e5d36d4ce6a4e51e264c0d1e20d24f732.png

Click the Custom environments tab.

clipboard_e255b8f4fdc651e4bf3700716c0f9de35.png

Click the +Create button and the Create environment screen displays the Settings tab.

clipboard_ea3de3159f36b69aca91d7d4d00c6d050.png

In the Name field, enter a a meaningful name. For example, archibus-ai-job-env-demo and make sure you keep the names no longer than 32 characters.

In the Description field, enter a short description.

From the Select from existing environment drop-down select the environment source.

In the environment list, search for python.

clipboard_e75868163a10e21df6fb3bfa4e5c57917.png

Check the python-sdk-v2 check box.

Click the Next button and the Customize tab displays.

clipboard_e97c8821df680b98ac6d3af5c4acfb136.png

In the Customize section, select the conda_dependencies.yaml file and replace the content with the below code, and click on Next.

name: python-sdk-v2
channels:
  - conda-forge
dependencies:
  - python=3.10
  - pip=23.3
  - pip:
    - azure-ai-ml==1.27.1
    - azure-identity==1.23.0
    - cryptography==44.0.3
    - certifi==2025.4.26
    - urllib3==2.4.0
    - paramiko==3.5.1
    - idna==3.10
    - tqdm==4.67.1
    - mltable==1.6.1
    - azureml-mlflow==1.60.0
    - mlflow==3.1.0
    - python-dotenv==1.1.0

Click the Next button and the Tags tab displays.

clipboard_e596b24b29809c1d89407198b091b2804.png

Click the Next button and the Review tab displays.

clipboard_efd2512b0932ea60e0173dbac99d0fc67.png

Click the Create button.

clipboard_e1c162a68ffc73b2102e173787d17567a.png

Create a Compute resource


After the custom ML environment is created, from the Manage menu, Compute.

clipboard_eb9eabc85deb0537c3964c7c0463d13d9.png

Click the New button and the Create compute instance screen displays.

clipboard_eaf1b7d73c22f2eebf3549055b6a36694.png

In the Compute name, enter a meaningful name.

For the Virtual machine size, select the Standard_DS11_v2 or any other.

Click the Next button and the Scheduling tab displays.

clipboard_e1ac9bb259c3f39622c77f083de8a5be0.png

Click the Next button and the Security tab displays.

clipboard_ece29e1f9af834389ab0aede029e9d641.png

Click the Next button and Appplications tab displays.

clipboard_e936a7def606643de7add1b36f11230c8.png

Click the Next button and the Tags tab displays.

clipboard_efd14c62eef0f1375f28a6d710e6fcaf1.png

Click the Next button and the Review tab displays.

clipboard_e75adb01e6f7f518ee974d17a2d83831f.png

Click the Create button and then wait for the compute instance to be created.

clipboard_e37c884d0a67866c71bcfc83ddf2150c7.png

Customize the AutoML script code (prepare & upload)


After the compute instance is created and running, from the menu, click Notebooks.

clipboard_ed7a5d4d7ef1aebfbdbd8ad30eb09618d.png

You will need to upload an archibus-single-desk-ai folder here, containing four files as below. But first, you need to make changes in the .env file.

clipboard_eb8a09882e627b9bdfdff023f610749a8.png

Create the archibus-single-desk-ai folder on your local system.

Download archibus_single_desk_ai.zip and unzip the following files into the folder.

  • score.py
  • automi-job.py
  • automi-schedule.py
  • env

Before you use the env file, make sure you rename the file to .env

From a code editor, such as Visual Studio Code and open the .env file.

clipboard_ebc7c9a945f4a66bb6a607c95629e49e2.png

The following values must be filled appropriately before uploading the folder.

Value Description
API_URL Set the Archibus Web Central instance URL from which to retrieve the bookings data: https://<<Web Central server>>/archibus/api/v1/onsite/workspacebookings
PAGE_SIZE Set the number of booking records to get in one call. e.g. 100
NUMBER_OF_DAYS Set the number of days in the past to search for bookings. e.g. 90
TENANT_ID Set the tenant ID of the app that was created in the previous steps.
CLIENT_ID Set the client ID of the app that was created in the previous steps.
CLIENT_SECRET Set the client secret value of the app created in the previous steps.

In Machine Learning Studio for your ML workspace, select the Change workspace drop-down on the top right and get the subscription ID, the resource group, and the workspace name.

clipboard_e96272089532affb6b397e65fdc4863cc.png

  • SUBSCRIPTION - set the subscription ID.
  • RESOURCE_GROUP - set the resource group. 
  • WS_NAME - set the machine learning workspace name.

In Machine Learning Studio for your ML workspace, from the menu, click Data.

clipboard_e497dedb46b6519568c3cd76527d22a63.png

Click the Datastores tab.

clipboard_e4f88ac092c121a04239d61179b3c95e5.png

Click the datasource marked as Default.

clipboard_ecf835d60f200b7799545af31d55d6ec4.png

Click the Account name value.

clipboard_e8f0244677ea8bfc603a2abd6ca0a2f7e.png

It will open the storage account in the Azure portal.

clipboard_ecfb583a3c1ed9292fb45839d6c774122.png

Go to Security + networking > Access keys.

clipboard_e6eed60091e687d6cd731ade970c008e6.png

Click to show the Connection string of key1 and copy the value.

clipboard_e2d2465635ab3a95bf9e18401e469cef6.png

  • STORAGE_CONNECTION_STRING - paste the copied connection string.

In the Machine Learning Studio, to the selected datastore marked as “(Default)”, copy the Blob container name.

clipboard_e7c4ac62ee5549d6c7583fca68b24858c.png

  • CONTAINER_NAME - paste the copied container name.
  • PARTNER_NAME - set a unique partner name for; the service being configured.
  • ONLINE_ENDPOINT_NAME - set a unique name not exceeding 32 characters.
  • MODEL_NAME - set a unique name not exceeding 32 characters.
  • DEPLOYMENT_NAME - set a unique name not exceeding 32 characters.
  • ENV_NAME - set a unique name not exceeding 32 characters.
  • JOB_NAME - set a unique name not exceeding 32 characters.
  • SCHEDULE_NAME - set a unique name not exceeding 32 characters.

In Machine Learning Studio for your ML workspace, from the menu, click Environments and copy the name of the environment that was created in the previous steps.

clipboard_e68dfe348b3a2f18fd1e1f7e1158aacc7.png

  • JOB_ENVIRONMENT - paste the copied name.
  • RECURRENCE_FREQUENCY - set the desired frequency for importing the bookings and training the machine learning, a value from these options: minute, hour, day, week, month. e.g. hour
  • RECURRENCE_INTERVAL - set the desired interval. e.g. 1 (every hour) or 2 (every 2 hours)
  • START_TIME - set the desired UTC string to run the AutoML job. e.g. "2025-06-19T10:00:00"

After updating the .env file with these changes, you can upload the folder.

In Machine Learning Studio for your ML workspace, from the menu, click Notebooks.

clipboard_e5d55ad9bdaaf35755ad02aeef957a513.png

Click the Add files icon and then Upload folder.

clipboard_e258354e7bd88809d2563070872539179.png

Select the archibus-single-desk-ai folder from your local machine and then click the Upload button.

clipboard_e1c2bb6faa83cd088d3dc6f451b3dc4dc.png

The .env file won’t show; as it is hidden.

Run the AutoML scheduling job


Click the Open Terminal icon.

clipboard_e09b594cdb822e5c839701a62f84a602c.png

If the compute instance isn't running, then you will need to start it.

Add the command - pip install azure-ai-ml azure-identity python-dotenv and press Enter.

clipboard_edd0b5e9b40dbba42fbfbd44852fa4f2e.png

Add the command - cd archibus-single-desk-ai/ and press Enter.

clipboard_e3b485e667a7bb70f0cd042b40c0ac958.png

Add the command - python automl-schedule.py and press Enter.

clipboard_e2351094b9d8ed4fd2037f9f194c87c35.png

Verify the AutoML schedule and job


From the menu, click Jobs and then click the All Schedules tab and the schedule displays.

clipboard_e3aaf52c9c4d01292b09a05d72b3fd997.png

From the menu, click Jobs and then click the All Jobs tab. Jobs created by schedule can be seen here.

In the .env file, for demo, RECURRENCE_FREQUENCY was set to “hour" and RECURRENCE_INTERVAL was set to 1. The schedule creates jobs at each hour at the UTC mentioned in START_TIME.

clipboard_e4cdb8627e463a174a541ae0023dd44bf.png

Check the endpoint for the ML Inference


Wait for the job created by the schedule to complete, then go to the Endpoints section from the left sidebar in Machine Learning Studio.

clipboard_ec434359455116479ac17332ee401910c.png

Click the endpoint with the name provided in the .env file. The REST endpoint is highlighted for use in Archibus for the MLinference.

clipboard_ef34a402f6c1264b2eaa9a8b80c2c6847.png

After the Endpoint is set up, to free up resources, you can delete the compute resource created in the Create a Computer Resource step.

Set up the ML endpoint in Archibus


Update the following values in the WEB-INF/config/intelligent-booking.properties file and restart the Archibus service.

clipboard_e2329657ba60a6618fc83e79a4771b27e.png

  • intelligentBooking.tokenUrl
https://login.microsoftonline.com/<<Tenant ID>>/oauth2/v2.0/token

Replace <<Tenant ID>> with the value noted in the Register an Application in Azure step. 

  • intelligentBooking.mlEndpoint

From the menu, click Endpoints and use the REST endpoint URL for the endpoint generated in the previous step.

clipboard_e7245501172fb4c777b09c0e547d769e7.png

  • intelligentBooking.clientId

Use the client ID value noted in the Register an Application in Azure step.

  • intelligentBooking.clientSecret

Use the client secret value noted in the Configure the Client Secret step.