How to generate NIM demo data using AI

Overview

In this show & tell, I’m providing you with a prompt that you can use to generate the Directory.xlsx file for your POCs, Demos, etc.

Step by step procedure

  1. Get the Directory.xlsx full file from NIM SDK (demo environment).

    Directory.xlsx (468.3 KB)

    It will be used as a template for the AI tool.

  2. Open your preferred AI tool (Claude in my case)

  3. Import the Directory.xlsx file

  4. Optional: Import any relevant documents containing your customer’s data

  5. Copy/past the attached prompt, then update the client’s name.

  6. Download the generated file, open it, and check the data accuracy.

  7. Rename your file if needed then upload it to NIM

Prompt

CLIENT
<Client name>

CONTEXT
An Excel template file is attached as an example, containing the structure of an organizational reference dataset (Usercube/IGA type). This file illustrates the logic of the tabs and the relationships between them.

OBJECTIVE
Generate a new, equivalent Excel file with dummy data representing the client, strictly following the structure of the template.

GENERAL RULES
1. Start from scratch (do not copy the data from the input file), but keep the same logic for structure and columns.
2. The data in the input file is for illustrative/learning purposes only, to understand the expected format.
3. For the organizational reference data (Organization, Site, Region, Country, Title, etc.), rely on real data found online or in any attached files (customer's actual organization, if available).
4. If real data is missing, invent coherent and realistic data.
5. Cross-tab reference rule: if a column name in one tab matches the name of another tab, that column contains a value referencing the Identifier column of the tab with the same name (foreign key).
6. Keep the same number and name of columns accross all the tabs even if they are emty

DETAILED SPECIFICATIONS BY TAB
- User
  Columns to fill: Identifier only

- UserRecord
  Columns to fill: All columns
  Mandatory columns : RecordIdentifier, PersonalTitle, FirstName, LastName, Email, Login, PhoneNumber, MobileNumber, EmployeeId, VIP, Organization, Subsidiary, Site, Title, ContractIdentifier, ContractStartDate, ContractEndDate, PositionIdentifier, PositionStartDate, PositionEndDate, StartDate, EndDate, Manager, Gender, Suspended, User, UserType, IsMainPosition
  Rules:
  - Email = firstname.lastname@domain (internal) or firstname.lastname.ext@domain (external); domain = EmailDomain column from the Subsidiary tab
  - Login = "U" + EmployeeId
  - VIP = FALSE
  - Suspended = FALSE
  - IsMainPosition = TRUE
  - JobTitle can be left empty if identical to the DisplayName in the Title tab
  - Manager = manager's Identifier
  - BirthDate, ContractStartDate, ContractEndDate, PositionStartDate, PositionEndDate, StartDate, EndDate, AccessesExpirationDate: must have standard Excel date format if they are filled
  
- UserType
  Columns to fill (required): DisplayName_enUS, DisplayName_frFR, Identifier, IsExternal

- UserCategory
  Columns to fill: All columns

- Subsidiary
  Columns to fill (required): DisplayName, EmailDomain, Identifier

- ExternalCompany
  Columns to fill (required): DisplayName, Identifier

- Organization
  Columns to fill: All columns
  Rules:
  - Manager = manager's Identifier
  - Parent = parent organization's Identifier (hierarchical structure)

- OrganizationType
  Columns to fill: All columns

- Title
  Columns to fill (required): DisplayName_enUS, DisplayName_frFR, Identifier

- JobCategory
  Optional — required only if the JobCategory column in the Title tab is not empty

- Country
  Columns to fill: All columns

- Region
  Columns to fill: All columns

- Site
  Columns to fill (required): DisplayName_enUS, DisplayName_frFR, Identifier, Name, PostalCode, PreferredLanguage, Region, StreetName, StreetNumber, StreetType, TimeZone, City, Country

- Office
  Optional

- PersonalTitle
  Columns to fill: All columns

- Gender
  Columns to fill: All columns
  
CRITICAL TECHNICAL REQUIREMENT — EXCEL TABLE FORMAT
The template's sheets are not plain cell ranges — each sheet is defined as a named Excel Table (ListObject). Netwrix Identity Manager's Excel connector reads the schema from these Table definitions, not from raw cells. If the generated file only contains plain cell data with no Table objects, the connector's schema reader will find zero header cells and throw an error (e.g. "Sequence contains no elements" / failure on `Max()`).

Therefore, the generated file MUST:
- Define each sheet as its own registered Excel Table (ListObject), matching the template exactly — same number of tables (one per sheet), same naming convention (e.g. Table1, Table2, ... Table19), and the same range pattern as the template.
- Preserve the blank extra row convention used on header-only / zero-data sheets in the template (e.g. JobCategory, Office, Reserved* sheets), so each Table range includes that one blank row below the headers.
- Not just write values into cells — the Table objects must be properly created/registered in the workbook's XML so the connector can detect them.

VALIDATION STEPS (to perform before delivering the file)
1. Verify all foreign key relationships across tabs are consistent (every referencing column resolves to a valid Identifier in the target tab).
2. Re-open the generated file (e.g. via LibreOffice or equivalent) to confirm it is not corrupted and opens cleanly.
3. Confirm every sheet has a properly defined Table object with headers correctly detected, matching the template's structure 1:1.

Troubleshooting

It is possible that you get the following error when refreshing the file schema.

The schema could not be recovered.

2026-09-16 15:22:02.525 +02:00 [INF] Error while fetching schema.
System.InvalidOperationException: Sequence contains no elements
   at System.Linq.ThrowHelper.ThrowNoElementsException()
   at System.Linq.Enumerable.Max(IEnumerable`1 source)
   at Usercube.Excel.Framework.ExcelReader.ExcelRow.RetrieveMaxIndex()
   at Usercube.ConnectionPackages.Agent.Excel.ExcelSchemaProvider.AddColumnsToTableFromHeaders(IEnumerable`1 rows, ConnectionTable connectionTable)
   at Usercube.ConnectionPackages.Agent.Excel.ExcelSchemaProvider.FetchSchema()
   at Usercube.ConnectionPackages.Agent.Excel.ExcelPackage.FetchSchemaUnsafe(IConnectionPackageRequest request)
   at Usercube.ConnectionPackages.Agent.Base.ConnectionPackageBase`1.HandleErrorManagementForApi(IConnectionPackageRequest request, Func`2 subAction)

In this case, open the Excel file then save it to a new file (Save As).

4 Likes