All pages
Powered by GitBook
1 of 4

Loading...

Loading...

Loading...

Loading...

CSV Upload Troubleshooting

Solutions for common CSV import issues in Veza

This document helps you identify and resolve common issues when importing CSV files into Veza.

Understanding CSV Import Behavior

Before troubleshooting, it's important to understand how the CSV import process works:

File Requirements

  • Maximum file size: 100MB per CSV file

  • Character encoding: UTF-8 recommended

  • First row: Must contain column headers

  • Column delimiters: Commas

  • Text qualifiers: Double quotes for fields containing commas

Entity Requirements

  • Users: Each user must have either an id or name (or both)

  • Groups: Each group must have either an id or name (or both)

  • Roles: Each role must have either an id or name (or both)

  • If only id or name is provided for an entity, that value is used for both fields and must be unique

  • Minimum mapping: You must map at least one column for each entity type you want to import

Processing Rules

  • First-row behavior: For entities appearing in multiple rows, only the first row sets the entity properties

  • Subsequent rows: Additional rows with the same identifier only process group and role assignments

  • Role permissions: Permissions for the same role are added across all rows (additive)

  • All properties: All properties (including custom properties) are set only from the first row where that entity appears

Common Issues and Solutions

Mapping Issues

Issue
Solution

CSV file is rejected with validation error

Verify you've mapped the minimum required fields (id or name for all entity types)

Only some properties appear

Check that columns are mapped to the correct entity types and attributes

Users appear without group/role assignments

Ensure you've correctly mapped group and role columns

Entities appear multiple times

Ensure that the value you're using for id is unique (Veza automatically cleans whitespace and is case-insensitive)

Data Format Issues

Issue
Solution

Boolean values not interpreted correctly

Use standard values: true, t, yes, y, 1, active, or enabled for TRUE

Timestamp data not processed

Multiple groups/roles not assigned properly

For list columns, ensure values are comma-separated and enclosed in quotes if they contain commas

Special characters causing parsing issues

Save your CSV with UTF-8 encoding and ensure text with commas is properly quoted

List Column Issues

Issue
Solution

Groups/roles in comma-separated lists not assigned

Verify you've selected the list option when mapping the column

Only first value in list is processed

Check for proper quoting around values that contain commas

Only some list values appear

Check for inconsistent naming between list items and other references to the same entity

Preparation Best Practices

  1. Start with a test file

    • Begin with a small subset of data to verify your mapping configuration

    • Test with representative examples of your data structure

  2. Validate CSV format

    • Ensure proper comma delimitation

    • Quote fields containing commas

    • Use consistent data formats across rows

  3. Pre-plan your mapping

    • Identify which columns map to which entity types and attributes

    • Determine how to handle multi-value fields (as lists or multiple rows)

    • Identify custom properties and their data types

  4. Consider data quality

    • Standardize identifiers (case consistency, no trailing spaces)

    • Use consistent naming for groups and roles

    • Validate data formats before import

Current Limitations

Be aware of these current limitations in the CSV import functionality:

  1. No application resources support

    • Resources within applications are not currently supported

  2. No direct user-to-permission mapping

    • Permissions must be assigned to roles, which are then assigned to users

    • Direct user-to-permission mappings (without a role) are not supported

  3. No column transformations

    • The system cannot combine or transform column values during import

    • Column transformations or combinations are not supported

  4. Full replacement updates

    • Each update completely replaces the previous data

    • Incremental updates are not supported

  5. Custom property types are fixed after creation

    • Once a custom property type is set and data processed, it cannot be changed

    • Changing custom property types requires deleting the integration and recreating it

  6. Default permissions

    • If no column is mapped to role permissions, Veza assigns a default "Uncategorized" permission.

Getting Support

If you continue to experience issues after reviewing this guide:

  1. Contact Veza Support with:

    • A sample of your CSV file (with sensitive data removed)

    • Your mapping configuration

    • A description of the unexpected behavior

CSV Upload Examples

Common patterns for importing identity and permissions metadata from CSV files

You can use the CSV integration to flexibly model user, group, and role relationships based on data exported from the source application. This document includes examples from basic user data import to modeling more complex organizational structures, which you can adapt based on your needs.

Mapping Concepts

When importing CSV data into Veza, you are typically establishing one or more of these key components:

  1. Entities: Users, groups, and roles that exist in your application

  2. Attributes: Properties that describe each entity (e.g., name, email, status)

  3. Relationships: Connections between entities (user belongs to group, user has role)

  4. Permissions: Actions that roles allow users to perform

The examples below demonstrate different approaches to mapping these components from CSV data into Veza's Authorization Graph.

Basic User Mapping Example

For a simple file containing user records, one user per row with a list or groups and roles. You can map columns directly:

CSV Column
Entity Type
Veza Attribute
Required?

employee_id

local_user

id

Yes

display_name

local_user

name

No

email_address

local_user

email

No

account_status

local_user

is_active

No

join_date

local_user

created_at

No

last_access

local_user

last_login_at

No

password_updated

local_user

password_last_changed_at

No

termination_date

local_user

deactivated_at

No

groups

local_group

name list

No

roles

local_role

name list

No

Example CSV:

employee_id,display_name,email_address,account_status,join_date,last_access,password_updated,termination_date,groups,roles
EMP001,Alex Johnson,alex.j@example.com,active,2023-04-15,2025-02-15T09:30:45Z,2024-11-10T08:15:30Z,,"Engineering, DevOps","Developer, System Administrator"
EMP002,Taylor Smith,taylor.s@example.com,true,2022-09-20,2025-03-01T11:45:20Z,2024-10-05T14:30:15Z,,"Product, UX Research","Product Manager, UX Designer"
EMP003,Jordan Lee,jordan.l@example.com,inactive,2021-11-05,2024-10-10T16:20:30Z,2024-06-15T09:45:10Z,2025-01-15,"Marketing, Content","Content Creator, Social Media Manager"
EMP004,Casey Morgan,casey.m@example.com,1,2023-08-22,2025-02-28T15:10:25Z,2024-12-20T10:30:45Z,,"Finance, Accounting","Financial Analyst, Auditor"
EMP005,Riley Brown,riley.b@example.com,0,2022-03-10,2024-11-15T08:45:30Z,2024-08-05T11:20:15Z,2024-12-31,"HR, Recruiting","HR Specialist, Talent Acquisition"

Your CSV files may have column names that differ from Veza's standard attribute names.

CSV Column
Entity Type
Suggested Mapping

departments, department_names, teams

local_group

name list

job_titles, positions, roles_assigned

local_role

name list

permissions, access_rights

local_role

permissions list

Group and Role Assignment Methods

The CSV integration supports two methods for assigning users to groups and roles:

Method 1: Using List Columns

Use a single column containing comma-separated values to assign a user to multiple groups or roles at once.

Column mapping:

CSV Column
Entity Type
Veza Attribute

user_id

local_user

id

groups

local_group

name list

roles

local_role

name list

Example CSV:

user_id,groups,roles
user1,"Engineering, QA Team, Product Team","Software Engineer, Technical Lead"
user2,Marketing,"Content Writer, Editor"
user3,Finance,"Accountant, Auditor"
user4,HR,HR Specialist
user5,"Support, Training",Customer Support Representative

Key points about list columns:

  • Values must be comma-separated

  • Enclose lists in quotes if they contain commas

  • Whitespace around values is automatically trimmed

  • Empty values are ignored

  • Veza automatically creates any groups or roles that don't already exist

  • Additional properties on Groups and Roles is not supported

Method 2: Using Multiple Rows Per User

You can incrementally assign roles or groups using multiple rows with the same user id. This approach is useful when:

  • You have many groups or roles per user

  • Your source system exports data in this format

  • You need to include additional details for roles or groups such as custom properties

Example CSV:

user_id,name,email,active,group,role,role_description
user1,Alice Smith,alice@example.com,true,Engineering,Software Engineer,Core development role
user1,Alice Smith,alice@example.com,true,QA Team,Technical Lead,Testing oversight role
user1,Alice Smith,alice@example.com,true,Product Team,Technical Lead,Product development leadership
user2,Bob Johnson,bob@example.com,false,Marketing,Content Writer,Content creation role
user2,Bob Johnson,bob@example.com,false,Marketing,Editor,Content review role

Key points about multiple row assignments:

  • The first occurrence of an entity id sets all properties for that entity. If the same user or role is listed more than once, the user or role attributes are not updated for rows after the first.

  • Subsequent rows only process new group and role assignments

Advanced Role Permissions

The CSV can include a column with a list of permissions for each role. This enables searching and filtering by permission in Veza:

You can assign permissions to roles and then users to roles:

user_id,name,email,is_active,groups,role,permissions
USR001,Alex Johnson,alex.j@example.com,true,"Dev Team",Developer,"view_code, edit_code"
USR001,Alex Johnson,alex.j@example.com,true,"Backend Group",Code Reviewer,"approve_pull_requests"
USR002,Taylor Smith,taylor.s@example.com,yes,"Ops Team",System Administrator,"manage_infrastructure"
USR002,Taylor Smith,taylor.s@example.com,yes,"Cloud Admin",Release Manager,"deploy_production"
USR003,Jordan Lee,jordan.l@example.com,1,"Product Team",Product Owner,"create_requirements"
USR003,Jordan Lee,jordan.l@example.com,1,"Analytics Users",Data Analyst,"view_analytics"

Note: If permissions column is not defined any Roles are automatically assigned the Member permission

Real-World Example: Complex Organization Structure

This example shows how to represent a complex organizational structure with departments, teams, roles with permissions, and user assignments:

user_id,display_name,email,active,department,team,job_title,role,role_permissions
emp101,John Smith,john.smith@example.com,true,Engineering,Backend,"Senior Developer","Developer Lead","read_all,write_backend,deploy_backend"
emp101,John Smith,john.smith@example.com,true,Engineering,Architecture,"Senior Developer","Architecture Committee","approve_designs,modify_architecture"
emp102,Jane Doe,jane.doe@example.com,true,Engineering,Frontend,"UI Developer","Frontend Developer","read_all,write_frontend,deploy_frontend"
emp103,Robert Johnson,robert.j@example.com,true,Product,"Product Management","Product Owner","Product Manager","read_all,create_requirements,approve_features"
emp103,Robert Johnson,robert.j@example.com,true,Product,"UX Research","Product Owner","User Researcher","conduct_research,analyze_results"
emp104,Maria Garcia,maria.g@example.com,true,Marketing,Content,"Marketing Specialist","Content Creator","read_marketing,write_content"
emp104,Maria Garcia,maria.g@example.com,true,Marketing,Social,"Marketing Specialist","Social Media Manager","post_social,analyze_metrics"
emp105,David Lee,david.l@example.com,true,Finance,Accounting,"Finance Manager","Financial Controller","approve_expenses,manage_budgets,generate_reports"
emp106,Sarah Wilson,sarah.w@example.com,true,HR,Recruiting,"HR Specialist","Recruiter","post_jobs,review_applications,conduct_interviews"
emp107,Michael Brown,michael.b@example.com,true,Sales,"Enterprise Sales","Sales Executive","Account Manager","manage_clients,create_proposals,close_deals"

Column mapping for this example:

CSV Column
Entity Type
Veza Attribute

user_id

local_user

id

display_name

local_user

name

email

local_user

email

active

local_user

is_active

department

local_group

name

team

local_group

name

job_title

local_user

custom property (String)

role

local_role

name

role_permissions

local_role

permissions list

This example CSV will create:

  • 7 user entities with their properties

  • Department groups (Engineering, Product, Marketing, Finance, HR, Sales)

  • Team groups (Backend, Architecture, Frontend, Product Management, UX Research, Content, Social, Accounting, Recruiting, Enterprise Sales)

  • Multiple role assignments per user

  • Role permission assignments for different functional areas

Supported Timestamp Formats

The CSV integration supports various timestamp formats:

user_id,name,email,active,created_at,last_login_at,password_last_changed_at,deactivated_at
TS001,Timestamp Example 1,ts1@example.com,true,2023-04-12T15:34:56.123456789Z,2006-01-02T15:04:05Z07:00,20060102150405,
TS002,Timestamp Example 2,ts2@example.com,true,2006-01-30 15:04:05Z07:00,2006-01-30 15:04:05,2006-01-30,2006-01-30T
TS003,Timestamp Example 3,ts3@example.com,true,2006-01-30T15:04:05,2006-01-30T15:04:05Z,never,null
TS004,Timestamp Example 4,ts4@example.com,false,2024-03-15,none,false,0
TS005,Timestamp Example 5,ts5@example.com,true,1/2/2006,1/15/2023,11/22/2024,

Timestamps are considered unset when the value is never, null, none, false, or 0. Invalid timestamps will result in a processing error.

Boolean Value Handling

When mapping to boolean attributes like is_active:

  • TRUE values: true, t, yes, y, 1, active, enabled

  • FALSE values: Any other value including false, f, no, n, 0, inactive, disabled

Example CSV:
user_id,name,email,active
B001,Boolean Example 1,b1@example.com,true
B002,Boolean Example 2,b2@example.com,t
B003,Boolean Example 3,b3@example.com,yes
B004,Boolean Example 4,b4@example.com,y
B005,Boolean Example 5,b5@example.com,1
B006,Boolean Example 6,b6@example.com,active
B007,Boolean Example 7,b7@example.com,enabled
B008,Boolean Example 8,b8@example.com,false
B009,Boolean Example 9,b9@example.com,f
B010,Boolean Example 10,b10@example.com,no
B011,Boolean Example 11,b11@example.com,n
B012,Boolean Example 12,b12@example.com,0
B013,Boolean Example 13,b13@example.com,inactive
B014,Boolean Example 14,b14@example.com,disabled

Custom Properties Example

Any column can be mapped to a custom property for any entity type. When mapping to a custom property:

  1. Select Custom Property as the attribute

  2. Enter a name for the custom property

  3. Select the data type (String, Number, Boolean, Timestamp, or String List)

Example CSV:
user_id,name,email,active,department,title,office_location,hire_date,employee_type,salary_band,performance_rating,certification,languages,project_ids,manager_id,emergency_contact
CP001,Custom Property Example 1,cp1@example.com,true,Engineering,Senior Developer,New York,2023-01-15,Full-time,B4,Exceeds Expectations,"AWS Certified, Azure Expert","Java, Python, Go","PROJ-001, PROJ-002",MGR-101,John Smith (555-123-4567)
CP002,Custom Property Example 2,cp2@example.com,true,Marketing,Marketing Manager,San Francisco,2022-05-10,Full-time,C2,Meets Expectations,Google Analytics,"English, Spanish",PROJ-003,MGR-102,Mary Johnson (555-987-6543)
CP003,Custom Property Example 3,cp3@example.com,false,Finance,Financial Analyst,Chicago,2023-08-22,Contract,A3,Needs Improvement,CPA,"English, French","PROJ-004, PROJ-005, PROJ-006",MGR-103,Robert Davis (555-456-7890)

CSV Upload API

Automating updating CSV integration data

Overview

In addition to using a simple web interface to update CSV data manually, you can automate a process to push new data using the Veza REST API and refresh the Veza graph. This document includes example utilities using Python and CLI tools.

Using the Upload CSV REST API

Whenever a CSV is submitted, it is processed based on the current configuration of the CSV Upload Integration provider, including any column mapping settings.Authentication: To make API calls, you must include an authorization token in the header of each request. This can be:

  • A Personal API Key for a Veza administrator

  • A Team API Key, for a team assigned to manage CSV Upload integrations

Note: The CSV data must be complete for each upload. Veza will remove entities from the Graph for any entities that were present in the previous upload, but not in the current upload.

Retrieving Integration IDs

Using the REST API requires the Integration (Provider) and Data Source IDs. You can retrieve these in Veza on the Integration Details > Data Source tab:

  1. On the Veza Integrations page, click the CSV integration to view details

  2. On the Data Source tab, click the data source name to view details

  3. Copy the values from the Properties table:

    1. The unique data source "Id"

    2. The "Provider Id"

    Both values are in UUID format, e.g., 19b0c736-6686-4708-87e2-92171db6afb3.

Uploading the Data

Uploading the CSV data is made with a post call to the /api/v1/providers/custom/{provider_id}/datasources/{data_source_id}:push_csv endpoint.

Note: The CSV contents must be base64-encoded into the JSON body of the request. Raw CSV values are rejected. You can automatically convert the data as part of your implementation, as shown below.

{
    "csv_data": "abc123="
}

Example using Curl

CSV_PAYLOAD=$(cat my_app_data.csv | base64)
curl --location https://example.vezacloud.com/api/v1/providers/custom/40bdd318-d320-4574-be90-ca556d59889a/datasources/9bc29dc6-8cd0-4926-992e-7d720305ae2f:push_csv \
--request POST \
--header "Content-Type: application/json" \
--header "Authorization: Bearer $VEZA_API_KEY" \
--data "{\"csv_data\": \"${CSV_PAYLOAD}\"}"

Example using Python

#!/usr/bin/env python3

import base64
import json
import os
import sys

import oaaclient.utils as oaautils
from oaaclient.client import OAAClient, OAAClientError

veza_url = "https://example.vezacloud.com"
veza_api_key = os.getenv("VEZA_API_KEY")

provider_id = "UUID of Provider"
data_source_id = "UUID of Data Source"

source_csv = "path/to/my_file.csv"

print("Connecting to Veza")
try:
    veza_con = OAAClient(veza_url, veza_api_key)
except OAAClientError as e:
    print("Error connecting to Veza tenant")
    print(e)
    sys.exit(1)

print("Loading CSV file")
with open(source_csv, "rb") as f:
    encoded_csv = base64.b64encode(f.read())

print("Pushing data to Veza")
try:
    push_request = {"id": provider_id, "data_source_id": data_source_id, "csv_data": encoded_csv.decode()}
    veza_con.api_post(f"/api/v1/providers/custom/{provider_id}/datasources/{data_source_id}:push_csv", push_request)
    print("Push succeeded")
except OAAClientError as e:
    log.error(f"{e.error}: {e.message} ({e.status_code})")
    if hasattr(e, "details"):
        for d in e.details:
            log.error(d)
    sys.exit(3)

CSV Upload

Import identity and authorization data from CSV files into Veza

Overview

Use CSV Upload to integrate identity and authorization metadata from sources that don't have built-in Veza connectors, but support exporting this information in tabular format.

You can create a CSV integration in Veza to:

  • Import user and authorization data from legacy or custom applications

  • Integrate with SaaS applications that support CSV exports

  • Model employee access to homegrown or specialized systems

  • Upload employee metadata from your HRIS as a source of identity for Lifecycle Management workflows

CSV import enables modeling identity and permissions metadata for any application not natively supported by Veza, with support for:

  • Flexible column mapping: Map any exported CSV column to Veza identity attributes

  • Support for custom properties: Map columns to custom attributes in Veza

  • Multiple data formats: Process timestamps, booleans, and string lists in various formats

Adding a CSV Integration

Prerequisites

To create an integration from CSV, you will need:

  • A CSV file containing relevant data with column headers

  • Sufficient permissions in Veza (Administrator or CSV Manager role)

  • Understanding of the data model for the source application

  • A plan for mapping between CSV columns and Veza attributes

Format Requirements

CSV (Comma-Separated Values) is a widely used file format that stores tabular data in plain text. Each row represents a record or a relationship between entities (e.g., User to Role), and columns represent attributes.

When importing from CSV:

  1. The first row must contain column headers

  2. Each column can be mapped to a specific Veza attribute or custom attribute

  3. Columns can be ignored after uploading the file

  4. At minimum, you must map columns for unique identifiers (such as user ID or Name)

Create a CSV Integration

To create a new CSV integration:

  1. Go to Integrations > Add Integration

  2. Choose Upload CSV from the options

  3. Upload a logo for the provider (optional) - This will appear throughout the Veza UI, including in Graph search, to identify the integration and entity types.

  4. Enter an integration name

    • Use a title that uniquely identifies this integration source

    • Avoid generic terms like "application" or "CSV"

    • If you have multiple environments, consider including that in the name

  5. Select a data source template (currently supports Application and HR Systems)

  6. Enter template-specific information (fields will vary based on the selected template):

    For Application Template:

    • Name: A unique identifying name for this specific application instance (e.g., "Marketing CRM - Prod", "HR Portal - Dev").

    • Type: The general category or system type (e.g., "CRM", "DevOps Tool"). In Veza, the type appears as a prefix on entity names, e.g., CRM User, DevOps Tool Role.

    For HR System Template:

    • Name: A unique identifying name for the HR system (e.g., "Workday - Production", "HR Portal - Dev")

    • Type: The type of HR system (e.g., "HRIS", "ATS", "Benefits")

    • URL: The URL of the HR system

    Note: Naming is critical for easy search in Veza. For Applications, the Type enables searching for all entities of that category, while the Name differentiates between multiple instances of the same system type.

  7. Upload the CSV file - Veza will read the column headers and show them for mapping

  8. Map your columns to Veza attributes (see Column Mapping section)

  9. Click Create Integration to trigger extraction and parsing

CSV Column Mapping

The CSV integration allows you to map columns in your file to specific Veza attributes. After uploading the CSV, Veza automatically detects all columns and presents them for mapping.

For each column, you can:

  1. Select to include or exclude the column

  2. Select the target entity type for mapping (available entities depend on the selected template)

  3. Select the specific entity attribute to map to (only attributes applicable to the selected entity type will be shown)

  4. For custom properties, specify a name and data type

Example: Mapping CSV columns to Application template entities and attributes

Supported Entity Types and Attributes

For all entities, an ID or Name is required. If ID is not provided, Name is automatically used as the unique identifier for the entity. Both are also supported.

The available entity types and attributes depend on the template you select. Each template supports different entity types.

Application Template Entities

User Attributes

Group Attributes

Role Attributes

HR System Template Entities

Employee Attributes

Data Type Handling

Boolean Values

The following values are treated as TRUE (case-insensitive):

  • true, t

  • yes, y

  • 1

  • active

  • enabled

Any other value is treated as FALSE.

Timestamp Formats

Veza supports multiple timestamp formats:

  • 2023-04-12T15:34:56.123456789Z (RFC3339 with nanoseconds)

  • 2006-01-02T15:04:05Z07:00 (RFC3339)

  • 20060102150405 (Active Directory format)

  • 2006-01-30 15:04:05Z07:00

  • 2006-01-30 15:04:05

  • 2006-01-30

  • 2006-01-30T

  • 2006-01-30T15:04:05

  • 2006-01-30T15:04:05Z

  • 1/2/2006 (MM/DD/YYYY format)

Timestamps are considered unset when the value is never, null, none, false, 0 or empty. Invalid timestamps will result in a processing error.

String Lists

For attributes that support lists (like Role Name List, and Group Name List), values should be comma-separated within the cell and the list enclosude by quotes ".

Updating a CSV Integration

Incremental updates are not supported; you must submit the complete data set for each update.

Push new data for an existing integration

  1. Find the CSV integration on the Veza Integrations page

  2. Click on the integration name to view details

  3. Under Data Sources, click Upload CSV

  4. Select your updated CSV file and click Upload

Update mappings for an integration

  1. Find the CSV integration on the Veza Integrations page

  2. Click on the integration name to view details

  3. Click Edit

  4. In the integration configuration, click Edit above the table of current mappings

  5. Modify your column mappings as needed

  6. Click Save Configuration to apply the changes

CSV Manager Role

Veza provides a limited privilege "CSV Manager" role for users that need permission to manage a CSV integration, but should not have access to other functionality in Veza. Users with this role can:

  • Create new CSV integrations

  • Upload new CSV data

  • Edit existing CSV integrations, including delete

Processing Rules

  • Multiple Rows per Entity: If the same entity (user, group, or role) appears in multiple rows, Veza processes them as follows:

    • Properties are set based on the first row where the entity ID (or Name if it is being used as the unique ID) appears

    • For subsequent rows with the same identifier, only relationship assignments are processed (for example user to group, or user to role)

    • Role permissions are the only properties that are additive across all rows

  • Ignored Columns: Columns that are not mapped (unchecked) are ignored during processing

  • Additional Columns: CSV files can contain more columns than are mapped - extra columns are ignored

  • Entity Identifiers: Every entity type (user, group, role) requires an ID or Name (or both). If only one is provided, the same value is used for both fields and must be unique.

  • Identity Mapping: When using the Application template, you can choose the column(s) used to connect external identities.

Related Documentation

Ensure timestamps are in one of the supported formats listed in the

Review the for details on supported formats and mapping options

Check the for guidance on structuring your CSV files

This document provides practical examples for mapping data from CSV files into Veza using the integration.

After creating a CSV upload integration, you can use the REST API operation to upload new CSV data.

See for more details on creating API keys.

The integration uses Open Authorization API (OAA) to enable modeling a range of different source applications. Uploading CSV data creates an . It also populates Authorization Graph entities with the specified attributes. The integration currently supports Users, Groups, and Roles (using the Custom Application template) and Employees (Custom HRIS).

For more examples and detailed mapping patterns, see .

Attribute
Description
Attribute
Description
Attribute
Description
Attribute
Description

This role can be combined with to further limit a user's scope. When a user with the CSV manager role is added to a non-root team, they can only manage CSV integrations assigned to their team.

CSV Import documentation
CSV Import Examples
CSV Upload
Authentication
CSV Upload Examples
Mapping Concepts
Basic User Mapping Example
Group and Role Assignment Methods
Method 1: Using List Columns
Method 2: Using Multiple Rows Per User
Advanced Role Permissions
Real-World Example: Complex Organization Structure
Supported Timestamp Formats
Boolean Value Handling
Custom Properties Example

ID

Unique identifier for the user

Name

Display name for the user

Is Active

Boolean indicating if the user is active

Created At

Timestamp when the user was created

Last Login At

Timestamp of the user's last login

Deactivated At

Timestamp when the user was deactivated

Password Last Changed At

Timestamp of the last password change

Email

User's email address

Custom Properties

Map any column to a custom user property (type varies)

ID

Unique identifier for the group

Name

Name of the group (supports list format)

Created At

Timestamp when the group was created

Custom Properties

Map any column to a custom group property (type varies)

ID

Unique identifier for the role

Name

Name of the role (supports list format)

Permissions

Permissions assigned to the role (supports list format)

Custom Properties

Map any column to a custom role property (type varies)

ID

Unique identifier for the employee

Name

Employee name (typically full name)

Employee Number

Alternative employee identifier

Company

Employee's company

First Name

Employee's first name

Last Name

Employee's last name

Preferred Name

Employee's preferred name

Display Full Name

Complete display name

Canonical Name

Standardized name format

Username

Employee's username

Email

Primary email address

IDP ID

Identity Provider ID

Personal Email

Personal email address

Home Location

Employee's home location

Work Location

Employee's work location

Cost Center

Cost center assignment

Department

Employee's department

Managers

Employee's manager(s) (supports list format)

Groups

Group memberships (supports list format)

Employment Status

Current employment status

Is Active

Boolean indicating active employment

Start Date

Employment start date

Termination Date

Employment end date

Job Title

Employee's job title

Employment Types

Types of employment (supports list format)

Primary Time Zone

Employee's primary time zone

Custom Properties

Map any column to a custom employee property (type varies)

CSV Import documentation
templates
custom provider and data source
CSV Import Examples
Teams
Open Authorization API (OAA) Templates
Managing Teams and Permissions
Creating Custom Reports
Understanding the Veza Access Graph
Automating CSV Upload
Push Custom Provider Datasource CSV
Retrieving IDs from Datasources details view
CSV Mapping Interface with column selection and attribute mapping options