# User Attributes

Source: https://developer.synup.com/users/attributes

## User Attributes Documentation

### Overview
A User is a person who can access your Synup account and has access to features and certain capabilities within. The following documentation details the user attributes that help you manage users in your account, govern their roles and access.

### Core Attributes

#### Identification
| Attribute |  Type  |  Description  |  Read Only  |  Required for Create  |  Required for Update  |
|-----------|------|-------------|-----------|-------------------|-------------------|
|  User ID  |  String  |  Alphanumeric string used to identify the user  |  Yes  |  No  |  Yes  |
|  Email  |  String  |  User's email ID  |  No  |  Yes  |  No  |
|  Account ID  |  String  |  ID of the Synup Account the user is associated with  |  Yes  |  No  |  No  |

#### Personal Information
|  Attribute  |  Type  |  Description  |  Read Only  |  Required for Create  |  Required for Update  |
|-----------|------|-------------|-----------|-------------------|-------------------|
|  First Name  |  String  |  User's First Name  |  No  |  Yes  |  No  |
|  Last Name  |  String  |  User's Last Name  |  No  |  No  |  No  |
|  Phone  |  Integer  |  User's phone number  |  No  |  No  |  No  |

#### Role & Permissions
|  Attribute  |  Type  |  Description  |  Read Only  |  Required for Create  |  Required for Update  |
|-----------|------|-------------|-----------|-------------------|-------------------|
|  Role ID  |  String  |  ID of user role  |  Yes  |  Yes  |  No  |
|  Custom Role  |  Object  |  Returns custom role ID and custom role name  |  Yes  |  No  |  No  |
|  Custom Role (ID)  |  String  |  Role ID of custom role  |  Yes  |  No  |  No  |
|  Custom Role (Name)  |  String  |  Name of Custom Role  |  Yes  |  No  |  No  |

#### Access & Status
|  Attribute  |  Type  |  Description  |  Read Only  |  Required for Create  |  Required for Update  |
|-----------|------|-------------|-----------|-------------------|-------------------|
|  Invite Status  |  Boolean  |  Indicates if user has accepted the invitation  |  Yes  |  No  |  No  |
|  Direct Customer  |  Boolean  |  Indicates if user is a direct customer  |  Yes  |  Yes  |  No  |
|  Archived  |  Boolean  |  Indicates if user account is archived  |  Yes  |  No  |  No  |

#### Organization
|  Attribute  |  Type  |  Description  |  Read Only  |  Required for Create  |  Required for Update  |
|-----------|------|-------------|-----------|-------------------|-------------------|
|  Location ID  |  String  |  Location ID  |  Yes  |  No  |  No  |
|  Folder ID  |  String  |  Folder ID  |  Yes  |  No  |  No  |

### Usage Notes

#### Creating a User
When creating a new user, the following fields are mandatory:
- Email
- First Name
- Role ID
- Direct Customer

#### Updating a User
When updating an existing user:
- User ID is required to identify the user
- All other fields are optional
- Read-only fields cannot be modified

#### Read-only Fields
The following fields are read-only and cannot be modified:
- User ID
- Role ID
- Custom Role information
- Account ID
- Location ID
- Folder ID

#### Status Fields
Several boolean fields indicate the user's status:
- `Invite Status`: Indicates if the user has accepted their invitation
- `directCustomer`: Indicates if the user is a direct customer
- `archived`: Indicates if the user account has been archived
