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
-
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.
-
Open your preferred AI tool (Claude in my case)
-
Import the Directory.xlsx file
-
Optional: Import any relevant documents containing your customer’s data
-
Copy/past the attached prompt, then update the client’s name.
-
Download the generated file, open it, and check the data accuracy.
-
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).