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
- Pre-requisites
- Archibus installation and configuration
- Azure authentication
- Configure the Archibus REST API
- Create a custom environment for running the AutoML job
- Create a Compute resource
- Customize the AutoML script code (prepare & upload)
- Run the AutoML scheduling job
- Verify the AutoML schedule and job
- Check the endpoint for the ML Inference
- Set up the ML endpoint in Archibus
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.

Select theAbWorkplaceIntelligentBookingsapplication.

Select theDisplayIntelligentRecommendationsparameter.

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

Azure Authentication
Register an application in Azure
Go to Azure - https://portal.azure.com/#home
Click the More services icon.

Search and open Microsoft Entra ID.

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

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

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

Click New registration.

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

Configure the Client Secret
From the menu, click Certificates & secrets.

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

In the Description field, enter short description.
From the Expires drop-down, select when the client secret expires.
Click the Add button.

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.

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.

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

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

The Azure Machine Learning screen displays.
Select the appropriate subscription and resource group.
In the Workspace details, enter a meaningful name for the workspace.

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.

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

The Add role assignment screen displays.

Click the Privileged administrator roles tab.
Select the Contributor role.
Click the Next button and the Select member form displays.

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

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

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

Create a custom environment for running the AutoML job
In the machine learning workspace, select the Overview tab and click the Launch studio button.

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

Click the Custom environments tab.

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

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.

Check the python-sdk-v2 check box.
Click the Next button and the Customize tab displays.

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.

Click the Next button and the Review tab displays.

Click the Create button.

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

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

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.

Click the Next button and the Security tab displays.

Click the Next button and Appplications tab displays.

Click the Next button and the Tags tab displays.

Click the Next button and the Review tab displays.

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

Customize the AutoML script code (prepare & upload)
After the compute instance is created and running, from the menu, click Notebooks.

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.

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.

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.

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.

Click the Datastores tab.

Click the datasource marked as Default.

Click the Account name value.

It will open the storage account in the Azure portal.

Go to Security + networking > Access keys.

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

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.

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.

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. hourRECURRENCE_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.

Click the Add files icon and then Upload folder.

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

The .env file won’t show; as it is hidden.
Run the AutoML scheduling job
Click the Open Terminal icon.

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.

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

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

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

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.

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.

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

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.

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

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