> For the complete documentation index, see [llms.txt](https://help.solink.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://help.solink.com/docs/install-connect-and-integrate/integrations/csv-formatting-guides/access-control-csv-guidelines.md).

# Access Control CSV Guidelines

The Access Control CSV format enables integration of access control events from various systems into a standardized format. Each row in the CSV represents a single access control event with all required and optional fields.

Refer to the examples and tables below for information on formatting your CSV file for access control data integration.

***

## File Details

When sending data for this Solink integration, please ensure you follow the file naming conventions outlined below:

| **File Name breakdown**                          | Details                                                                                                                                                             |
| ------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **`<datestamp>-<locationId>-accesscontrol.csv`** | \* If you are **splitting** the files out by store, use **\<locationId>**. \* Can contain data for one or more stores as long as total group size is **below 50MB** |
| **`<datestamp>-accesscontrol.csv`**              | \* If **all stores are in one file**, the **\<locationId>** can be omitted. \* Can contain data for one or more stores as long as file size is **below 50MB**       |

### File Part Details

| **File Name Part** | **Additional Details**                                                                                                                                                                                                                                                                               |
| ------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **\<datestamp>**   | **Required**unique date stamp without separators\* Formats: \* YYYYMMDD (daily drops) \* YYYYMMDDTHHmm (multiple drops per day) \* Examples: \* 20260213-accesscontrol.csv \* 20260213T1233-accesscontrol.csv                                                                                        |
| **\<locationid>**  | **Optional**Unique identifier representing the physical location of your store.\* used if files contain the data for a single location. \* Identifier is tied to your configuration and should not change \* Formats: \* Any Alphanumeric character \* A-Z, a-z, 0-9 \* Examples \* A203 \* store535 |

### Samples

Refer to the examples and tables below for information on formatting CSV for access control applications.

* [Access\_Control\_CSV\_Template.csv](https://github.com/SolinkCorp/help-centre-docs/tree/main/docs/.gitbook/assets/10efdce5-Access_Control_CSV_Template.csv)

***

## Access Control Standard CSV Column Definitions

Refer to the table below for all supported CSV columns. Columns marked with ✱ are required — rows missing required fields will be rejected.

| **Column Name**    | **Required** | **Data Type** | **Examples**                                                                                                      | **Purpose**                                                                                                                                                     |
| ------------------ | ------------ | ------------- | ----------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **dataType**       | ✱ Required   | Constant      | 'access-control'                                                                                                  | Must always be "access-control". Row is rejected if any other value is provided.                                                                                |
| **eventUniqueId**  | ✱ Required   | String        | 'AC-001-20241201-120000' 'ACC\_123456789'                                                                         | Unique event identifier. Must be unique within the dataset.                                                                                                     |
| **startTime**      | ✱ Required   | Date/Time     | YYYY-MM-DDTHH:MM:SS.sss±HH:MM "2024-06-15T06:15:00.000-06:00" YYYY-MM-DDTHH:MM:SS.sssZ "2024-06-15T06:15:00.000Z" | Date/Time the event started. ISO-8601 datetime string. T is required between date and time. ±HH:MM = timezone offset; Z = UTC.                                  |
| **endTime**        | Optional     | Date/Time     | Same format as startTime                                                                                          | Date/Time the event ended. If omitted, defaults to startTime.                                                                                                   |
| **locationId**     | ✱ Required   | String        | '111' 'SITE\_001'                                                                                                 | Site/location identifier where the event occurred. Maps to siteId internally.                                                                                   |
| **locationName**   | Optional     | String        | 'Main Building Entrance' 'Server Room'                                                                            | Site/location name. Maps to siteName internally. Defaults to device name if omitted.                                                                            |
| **terminalId**     | ✱ Required   | String        | 'TERM001' 'TERMINAL\_789'                                                                                         | Terminal identifier that processed the event. Also used as dataSourceId.                                                                                        |
| **terminalName**   | Optional     | String        | 'Main Entrance Reader' 'Server Room Reader'                                                                       | Terminal name.                                                                                                                                                  |
| **doorId**         | ✱ Required   | String        | 'DOOR001' 'DEVICE\_456'                                                                                           | Door/device identifier (e.g., card reader, lock). Maps to deviceId internally.                                                                                  |
| **doorName**       | Optional     | String        | 'Main Entrance' 'Front Door Reader'                                                                               | Door/device name. Maps to deviceName internally.                                                                                                                |
| **actorId**        | ✱ Required   | String        | 'ACT001' 'ACTOR\_101'                                                                                             | ID of the person attempting access.                                                                                                                             |
| **actorName**      | Optional     | String        | 'John Smith' 'Jane Doe'                                                                                           | Name of the person attempting access.                                                                                                                           |
| **actionName**     | ✱ Required   | String        | 'Card Swipe' 'PIN Entry' 'Biometric Scan' 'Door Alarm'                                                            | Descriptive name of the action performed. Becomes the event title displayed in the system.                                                                      |
| **action**         | Optional     | Picklist      | 'Access Granted' 'Access Denied' 'Exception Event' 'Informational Event'                                          | Categorized event type. Classifies the actionName into a standard category.                                                                                     |
| **actionId**       | Optional     | String        | 'ACN001' 'ACT001'                                                                                                 | Action identifier code.                                                                                                                                         |
| **vendorName**     | ✱ Required   | String        | 'HID Global' 'Brivo' 'Schlage'                                                                                    | Name of the access control vendor/system.                                                                                                                       |
| **vendorId**       | Optional     | String        | 'V001' 'VENDOR\_123'                                                                                              | Vendor identifier code.                                                                                                                                         |
| **result**         | ✱ Required   | Picklist      | 'success' 'failure' 'unprocessable'                                                                               | Result of the access attempt. Must be one of the listed values exactly (case-sensitive). Row is REJECTED if an invalid value is provided.                       |
| **state**          | ✱ Required   | Picklist      | 'open' 'close' 'unknown'                                                                                          | Access control state (e.g., door opened or closed). Must be one of the listed values exactly (case-sensitive). Row is REJECTED if an invalid value is provided. |
| **accessMethod**   | Optional     | String        | 'Swipe' 'RFID' 'Pin' 'Biometric' 'Mobile' 'Cloud' 'QR' 'Other'                                                    | Method used for access. Defaults to "Other" if omitted.                                                                                                         |
| **buildingId**     | Optional     | String        | 'BUILDING\_001'                                                                                                   | Building identifier.                                                                                                                                            |
| **buildingName**   | Optional     | String        | 'Corporate Headquarters'                                                                                          | Building name.                                                                                                                                                  |
| **authorizerId**   | Optional     | String        | 'AUTH\_202'                                                                                                       | ID of the person who authorized access.                                                                                                                         |
| **authorizerName** | Optional     | String        | 'Security Guard'                                                                                                  | Name of the person who authorized access.                                                                                                                       |
| **notes**          | Optional     | String        | 'Emergency access granted' 'Access denied - biometric mismatch'                                                   | Additional free-text notes associated with the event.                                                                                                           |

***

## Picklist Values

### Results Field

| **Value**         | **Description**                                                                                                                                                                                  |
| ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| **Success**       | The access attempt or operation completed successfully (e.g. access granted, door opened, or command executed without error).                                                                    |
| **Failure**       | The access attempt or operation did not succeed (e.g. access denied due to invalid credentials or policy, or a command failed). An attempt was made and evaluated, but the outcome was negative. |
| **Unprocessable** | The request or data could not be meaningfully processed (e.g. malformed data, missing required fields, or unsupported operation). The system could not properly evaluate success or failure.     |

### State Field

| **Value**   | **Description**                                                                                                                                                          |
| ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| **Open**    | The access point (door, gate, turnstile, etc.) is unlocked, accessible, or in an active state where entry or exit is allowed; or an access session/event is in progress. |
| **Close**   | The access point is locked, secured, or otherwise not allowing passage; or the access session/event has ended.                                                           |
| **Unknown** | The current state cannot be determined or was not reported (e.g. device offline, sensor/communication error, or uninitialized state).                                    |

### Action Field

| **Value**               | **Description**                                                                                                                                                                                                                   |
| ----------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Access Granted**      | The access request was authorized and entry/exit was permitted (e.g. valid credential presented, door unlocked). Represents a successful, allowed access decision.                                                                |
| **Access Denied**       | The access request was evaluated and rejected (e.g. invalid or expired credential, insufficient permissions, wrong schedule/zone). An attempt was made but entry/exit was not permitted.                                          |
| **Exception Event**     | An abnormal or security-relevant condition at the access point that isn't a normal grant/deny decision (e.g. door forced open, door held/propped open too long, tamper, or duress). Typically warrants attention or alarm review. |
| **Informational Event** | A non-access, status/diagnostic occurrence that carries no allow/deny outcome (e.g. device online/offline, reader heartbeat, configuration change, or a routine state report). Provided for context and auditing.                 |

### Access Method Field

| **Value**     | **Description**                                  |
| ------------- | ------------------------------------------------ |
| **SwipeCard** | Swiped through a magnetic stripe reader          |
| **RFID**      | Card/fob tapped near a proximity reader          |
| **Pin**       | Numeric code entered on a keypad                 |
| **Biometric** | Fingerprint, face or other biometric scan        |
| **Mobile**    | Smartphone app or digital credential used        |
| **Cloud**     | Access granted via cloud-based authentication    |
| **QR**        | QR code scanned for entry                        |
| **Other**     | Access method not covered by standard categories |


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://help.solink.com/docs/install-connect-and-integrate/integrations/csv-formatting-guides/access-control-csv-guidelines.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
