Skip to content

Installation – Manual Setup

Sam Betts edited this page Aug 26, 2026 · 13 revisions

Installing the solution by hand — the fallback for when the installer application can't be used. This page is long and detailed; prefer the installer-driven install where possible.

Before you start: complete the Prerequisites and create the two app registrations. This page assumes those are done. See the Configuration reference for what every app setting and connection string means.

These are the steps to install the Microsoft 365 Advanced Analytics Engine solution, from start to finish, done without the installer application if for some reason it’s not available to use.

This manual guide is organised into three stages - follow them in order:

  1. Azure resources - create the Storage, Application Insights, App Service, SQL, Redis, Service Bus and (optional) Cognitive Services resources.
  2. Deploy the binaries - publish the web-jobs and website through Kudu ZIP deployment over HTTPS, then set the App Service connection strings and app settings.
  3. Web tracking & final config - deploy the AITracker script and SPFx extension to SharePoint, set the runtime app reply URLs, and configure filtered URLs.

When all three stages are done, verify the deployment.

Key configuration data to collect & store during this setup process:

  • Application Insights connection string (AppInsightsConnectionString) – the importer's main Application Insights setting. The instance's instrumentation key is also needed, for the AITracker client script (AITracker.js) and the legacy web-job logging settings.

  • Connection strings – for configuring the "connection strings" part of the app service:

    • Azure storage account connection-string: used for storing web-job runtime data in App Services (names: "AzureWebJobsDashboard" and "AzureWebJobsStorage").
    • SQL Server connection string ("SPOInsightsEntities") – used for the SQL Server database.
    • Redis connection string.
    • Service-bus connection string.
  • Microsoft 365/Azure AD runtime app registration – used to grant access to activity data:

    • Client ID – ID of app registration.
    • Client secret – secret generated for app registration.
    • Tenant GUID – Azure AD GUID of Microsoft 365 tenant.

Here are all the configuration settings used which need to be configured in the app-service once created.

Configuration Inventory

App settings:

Name Example Required?
AppInsightsApiKey h01yi....fa Yes
AppInsightsAppId 4da38010-2f83-40e2-0000-f0d96d292529 Yes
AppInsightsConnectionString InstrumentationKey=XXXXXX-0XXXX-4792-9713-3a06b75dc987;IngestionEndpoint=https://northeurope-2.in.applicationinsights.azure.com/;LiveEndpoint=https://northeurope.livediagnostics.monitor.azure.com/;ApplicationId=XXXXXX Yes
ClientID 550bf80f-c279-47a5-0000-d9546493a882 Yes
ClientSecret veM..h Yes
CognitiveEndpoint westeurope No
CognitiveKey b06f6f....8 No
ImportJobSettings Calls=True;GraphUsersMetadata=True;GraphUsageReports=True;GraphTeams=True;ActivityLog=True;WebTraffic=False Yes
TenantGUID 4bcb41fb-fd0a-4fb3-0000-578912d2d4ed Yes
WebAppURL https://contosoofficeanalytics.azurewebsites.net/ Yes
KeyVaultURL https://sfbanalyticsdev.vault.azure.net/ Yes

Connection strings:

Name Example Type
AzureWebJobsDashboard -same as storage - Custom
AzureWebJobsStorage -same as storage - Custom
Redis contoso.redis.cache.windows.net:6380,password=...=,ssl=True,abortConnect=False Custom
ServiceBus Endpoint=sb://contoso.servicebus.windows.net/;SharedAccessKeyName=ListenAndSendPolicy;SharedAccessKey=...;EntityPath=graphcalls Custom
SPOInsightsEntities data source=metlifeanalyticsdemosvr.database.windows.net,1433;initial catalog=o365analytics;persist security info=True;user id=sqladmin;password=...;MultipleActiveResultSets=True;Connection Timeout=120 SQLAzure
Storage DefaultEndpointsProtocol=https;AccountName=contoso;AccountKey=...;EndpointSuffix=core.windows.net Custom

All the connection strings are required.

Clone this wiki locally