- 11 Minutes to read
- Print
- DarkLight
API: createUser
- 11 Minutes to read
- Print
- DarkLight
- Starting June 1, 2022, SmarterU will require all API calls to POST to HTTPS. Any POST to HTTP will result in the SU:01 error (i.e., No POST data detected.).
- If you are viewing the help in a language other than English, please change your language to English before copying and pasting any code. All API attributes and functions are in English.
- Tags are required unless specified.
Description
The createUser method adds a user. Administrators and owners cannot be created using the createUser API method and must be added using the SmarterU interface.
If a user already exists in another SmarterU account, a relationship between the user and your account will be created. Due to security restrictions, information contained within your XML package to the SmarterU API may not be saved to a user record. The following settings may NOT be updated if the user exists in another SmarterU account:
- Given Name
- Surname
- Password
Who Has Access
The following users have access to the createUser method:
- Users with the Group Managers, Manage Group Users, or Manage Users group permission.
- Supervisors, if the account's Supervisor Access setting'sView Supervisees or Edit Supervisees option is checked.
- Administrators and owners.
API Call XML Package
<SmarterU>
<AccountAPI><![CDATA[]]></AccountAPI>
<UserAPI><![CDATA[]]></UserAPI>
<Method>createUser</Method>
<Parameters>
<User>
<Info>
<Email><![CDATA[]]></Email>
<EmployeeID><![CDATA[]]></EmployeeID>
<GivenName><![CDATA[]]></GivenName>
<Surname><![CDATA[]]></Surname>
<Password><![CDATA[]]></Password>
<Timezone><![CDATA[]]></Timezone>
<LearnerNotifications><![CDATA[]]></LearnerNotifications>
<SupervisorNotifications><![CDATA[]]></SupervisorNotifications>
<SendEmailTo><![CDATA[]]></SendEmailTo>
<AlternateEmail><![CDATA[]]></AlternateEmail>
<AuthenticationType><![CDATA[]]></AuthenticationType>
</Info>
<Profile>
<Supervisors>
<Supervisor><![CDATA[]]></Supervisor>
</Supervisors>
<Organization><![CDATA[]]></Organization>
<Teams>
<Team><![CDATA[]]></Team>
</Teams>
<CustomFields>
<CustomField>
<CustomFieldName><![CDATA[]]></CustomFieldName>
<CustomFieldValue><![CDATA[]]></CustomFieldValue>
</CustomField>
</CustomFields>
<Language><![CDATA[]]></Language>
<Status><![CDATA[]]></Status>
<Title><![CDATA[]]></Title>
<Division><![CDATA[]]></Division>
<AllowFeedback><![CDATA[]]></AllowFeedback>
<PhonePrimary><![CDATA[]]></PhonePrimary>
<PhoneAlternate><![CDATA[]]></PhoneAlternate>
<PhoneMobile><![CDATA[]]></PhoneMobile>
<Fax><![CDATA[]]></Fax>
<Website><![CDATA[]]></Website>
<Address1><![CDATA[]]></Address1>
<Address2><![CDATA[]]></Address2>
<City><![CDATA[]]></City>
<Province><![CDATA[]]></Province>
<Country><![CDATA[]]></Country>
<PostalCode><![CDATA[]]></PostalCode>
<SendMailTo><![CDATA[]]></SendMailTo>
<Roles>
<Role><![CDATA[]]></Role>
<RoleID><![CDATA[]]></RoleID>
</Roles>
<ReceiveNotifications><![CDATA[]]></ReceiveNotifications>
<HomeGroup><![CDATA[]]></HomeGroup>
</Profile>
<Groups>
<Group>
<GroupName><![CDATA[]]></GroupName>
- OR -
<GroupID><![CDATA[]]></GroupID>
<GroupPermissions>
<Permission>
<Action><![CDATA[]]></Action>
<Code><![CDATA[]]></Code>
</Permission>
</GroupPermissions>
</Group>
</Groups>
<Venues>
<Venue>
<VenueName><![CDATA[]]></VenueName>
<Visibility><![CDATA[]]></Visibility>
<AutoWaitingList><![CDATA[]]></AutoWaitingList>
</Venue>
</Venues>
<Wages>
<Wage>
<EffectiveDate><![CDATA[]]></EffectiveDate>
<HourlyWage><![CDATA[]]></HourlyWage>
</Wage>
</Wages>
</User>
</Parameters>
</SmarterU>
User Tag Group
The User tag group is a container for the user's details.
<User>
<Info>
<Email><![CDATA[]]></Email>
<EmployeeID><![CDATA[]]></EmployeeID>
<GivenName><![CDATA[]]></GivenName>
<Surname><![CDATA[]]></Surname>
<Password><![CDATA[]]></Password>
<Timezone><![CDATA[]]></Timezone>
<LearnerNotifications><![CDATA[]]></LearnerNotifications>
<SupervisorNotifications><![CDATA[]]></SupervisorNotifications>
<SendEmailTo><![CDATA[]]></SendEmailTo>
<AlternateEmail><![CDATA[]]></AlternateEmail>
<AuthenticationType><![CDATA[]]></AuthenticationType>
</Info>
<Profile>
<Supervisors>
<Supervisor><![CDATA[]]></Supervisor>
</Supervisors>
<Organization><![CDATA[]]></Organization>
<Teams>
<Team><![CDATA[]]></Team>
</Teams>
<CustomFields>
<CustomField>
<CustomFieldName><![CDATA[]]></CustomFieldName>
<CustomFieldValue><![CDATA[]]></CustomFieldValue>
</CustomField>
</CustomFields>
<Language><![CDATA[]]></Language>
<Status><![CDATA[]]></Status>
<Title><![CDATA[]]></Title>
<Division><![CDATA[]]></Division>
<AllowFeedback><![CDATA[]]></AllowFeedback>
<PhonePrimary><![CDATA[]]></PhonePrimary>
<PhoneAlternate><![CDATA[]]></PhoneAlternate>
<PhoneMobile><![CDATA[]]></PhoneMobile>
<Fax><![CDATA[]]></Fax>
<Website><![CDATA[]]></Website>
<Address1><![CDATA[]]></Address1>
<Address2><![CDATA[]]></Address2>
<City><![CDATA[]]></City>
<Province><![CDATA[]]></Province>
<Country><![CDATA[]]></Country>
<PostalCode><![CDATA[]]></PostalCode>
<SendMailTo><![CDATA[]]></SendMailTo>
<Roles>
<Role><![CDATA[]]></Role>
<RoleID><![CDATA[]]></RoleID>
</Roles>
<ReceiveNotifications><![CDATA[]]></ReceiveNotifications>
<HomeGroup><![CDATA[]]></HomeGroup>
</Profile>
<Groups>
<Group>
<GroupName><![CDATA[]]></GroupName>
- OR -
<GroupID><![CDATA[]]></GroupID>
<GroupPermissions>
<Permission>
<Action><![CDATA[]]></Action>
<Code><![CDATA[]]></Code>
</Permission>
</GroupPermissions>
</Group>
</Groups>
<Venues>
<Venue>
<VenueName><![CDATA[]]></VenueName>
<Visibility><![CDATA[]]></Visibility>
<AutoWaitingList><![CDATA[]]></AutoWaitingList>
</Venue>
</Venues>
<Wages>
<Wage>
<EffectiveDate><![CDATA[]]></EffectiveDate>
<HourlyWage><![CDATA[]]></HourlyWage>
</Wage>
</Wages>
</User>
The User tag may contain the following.
Info
A container for the user's login information. Refer to Info Tag Group.
Profile
A container for the user's profile information. Refer to Profile Tag Group.
Groups
A container for the user's groups and group permissions. Refer to Groups Tag Group.
Venues
A container for the user's venues. Refer to Venues Tag Group.
Wages
A container for the user's wages. Refer to Wages Tag Group.
Info Tag Group
The Info tag group is a container for the user's login information.
<Info>
<Email><![CDATA[]]></Email>
<EmployeeID><![CDATA[]]></EmployeeID>
<GivenName><![CDATA[]]></GivenName>
<Surname><![CDATA[]]></Surname>
<Password><![CDATA[]]></Password>
<Timezone><![CDATA[]]></Timezone>
<LearnerNotifications><![CDATA[]]></LearnerNotifications>
<SupervisorNotifications><![CDATA[]]></SupervisorNotifications>
<SendEmailTo><![CDATA[]]></SendEmailTo>
<AlternateEmail><![CDATA[]]></AlternateEmail>
<AuthenticationType><![CDATA[]]></AuthenticationType>
</Info>
The Info tag group may contain the following.
The user's email address. This tag can be empty if the EmployeeID tag is provided.
EmployeeID
The user's employee ID. This must be a unique value between all users in your SmarterU account. If a blank value is provided, an employee ID is not assigned to the user. A value must be provided if no value is provided for the Email tag.
GivenName
The user's first name.
Surname
The user's last name.
Password
The user's password. The password must comply with the account's password requirements. If no password is provided, a random password will be generated for the user. Regardless of whether a random password is generated or one is provided, the user must change their password the next time they log in (if Single Sign On is not used).
TimeZone (optional)
The user's primary time zone.
Acceptable values are listed in the Provided Name column on the Time Zones page. If this tag is not provided, the user’s time zone will default to the account’s time zone.
LearnerNotifications
Indicates whether the user should receive weekly reminders of their pending or outstanding courses in SmarterU:
- 1 - The user will receive weekly reminders.
- 0 - The user will not receive weekly reminders.
SupervisorNotifications
Indicates whether the user should receive weekly reports on the status of their supervisees:
- 1 - The user will receive weekly reports on their supervisees.
- 0 - The user will not receive weekly reports on their supervisees.
SendEmailTo
Indicates where the user's emails should be sent:
- Supervisor - Emails to the user will be sent to the supervisors' email addresses. If the user has multiple supervisors, emails will be sent to all of the user's supervisors. A supervisor must have a primary email address specified for this option to be allowed.
- Self - Emails to the user are sent to the user's primary email address. An email address must be provided for this option to be allowed.
- Alternate - Emails to the user will be sent to the email address specified in the AlternateEmail tag. For this option to be allowed, a valid email address must be provided in the AlternateEmail tag.
AlternateEmail
This value is required if the SendEmailTo tag is set to Alternate.
AuthenticationType
Indicates how you would like the user to authenticate:
- SmarterU - The user will log into SmarterU via the SmarterU interface.
- External - The user will log into SmarterU via an external system using single-sign on.
- Both - The user will log into SmarterU via the SmarterU interface or an external system.
The default is SmarterU.
Profile Tag Group
The Profile tag group is a container for the user's profile information.
<Profile>
<Supervisors>
<Supervisor><![CDATA[]]></Supervisor>
</Supervisors>
<Organization><![CDATA[]]></Organization>
<Teams>
<Team><![CDATA[]]></Team>
</Teams>
<CustomFields>
<CustomField>
<CustomFieldName><![CDATA[]]></CustomFieldName>
<CustomFieldValue><![CDATA[]]></CustomFieldValue>
</CustomField>
</CustomFields>
<Language><![CDATA[]]></Language>
<Status><![CDATA[]]></Status>
<Title><![CDATA[]]></Title>
<Division><![CDATA[]]></Division>
<AllowFeedback><![CDATA[]]></AllowFeedback>
<PhonePrimary><![CDATA[]]></PhonePrimary>
<PhoneAlternate><![CDATA[]]></PhoneAlternate>
<PhoneMobile><![CDATA[]]></PhoneMobile>
<Fax><![CDATA[]]></Fax>
<Website><![CDATA[]]></Website>
<Address1><![CDATA[]]></Address1>
<Address2><![CDATA[]]></Address2>
<City><![CDATA[]]></City>
<Province><![CDATA[]]></Province>
<Country><![CDATA[]]></Country>
<PostalCode><![CDATA[]]></PostalCode>
<SendMailTo><![CDATA[]]></SendMailTo>
<Roles>
<Role><![CDATA[]]></Role>
<RoleID><![CDATA[]]></RoleID>
</Roles>
<ReceiveNotifications><![CDATA[]]></ReceiveNotifications>
<HomeGroup><![CDATA[]]></HomeGroup>
</Profile>
The Profile tag may contain the following.
Supervisors (optional)
A container for the user's supervisors .
<Supervisors>
<Supervisor><![CDATA[]]></Supervisor>
</Supervisors>
Each supervisor is contained in a Supervisor tag and contains the following.
Tag | Description |
---|---|
Supervisor | The supervisor's email address. |
Organization (optional)
Teams (optional)
A container for the user's teams.
<Teams>
<Team><![CDATA[]]></Team>
</Teams>
Each team is contained in a Team tag and contains the following.
Tag | Description |
---|---|
Team | The team's name. |
CustomFields (optional)
A container for the account's custom user fields.
<CustomFields>
<CustomField>
<CustomFieldName><![CDATA[]]></CustomFieldName>
<CustomFieldValue><![CDATA[]]></CustomFieldValue>
</CustomField>
</CustomFields>
Each custom field is contained in a CustomField tag and contains the following.
Tag | Description |
---|---|
CustomFieldName | The custom user field's name. |
CustomFieldValue | The value to assign to the custom user field. To specify the values for a hierarchical custom user field, separate each level's value with a greater than symbol (>). |
Language (optional)
The language used for the user's account.
Status (optional)
The user's status:
- Active - The user account may be used to access SmarterU.
- Inactive - The user account may not be used to access SmarterU.
The default is Active.
Title (optional)
The user's title.
Division (optional)
The user's division.
AllowFeedback (optional)
Indicates whether the user can provide feedback on online course tasks:
- 1 - The user can provide feedback on online course tasks.
- 0 - The user cannot provide feedback on online course tasks.
PhonePrimary (optional)
PhoneAlternate (optional)
PhoneMobile (optional)
Fax (optional)
The user's fax number.
Website (optional)
The user's website in its full URL format (eg. https://www.domain.com).
Address1 (optional)
Address2 (optional)
City (optional)
Province (optional)
The province or state of the user's address. This is the full name of the province or state.
Country (optional)
The country of the user's address:
- Canada
- United States
- International
PostalCode (optional)
SendMailTo (optional)
Indicates where the user's physical mail should be sent:
- Personal - The user's physical mail should be sent to their personal address.
- Organization - The user's physical mail should be sent to their organization's address.
Roles (optional)
A container for the user's learning plans.
<Roles>
<Role><![CDATA[]]></Role>
<RoleID><![CDATA[]]></RoleID>
</Roles>
This tag contains the following.
Tag | Description |
---|---|
Role (optional) | The learning plan's name. |
RoleID (optional) | The learning plan's user-specified identifier. This is the RoleID returned by the listRoles method. |
ReceiveNotifications (optional)
Indicates whether the user will receive email notifications:
- True - The user will receive email notifications.
- False - The user will not receive email notifications.
The default is True.
HomeGroup (optional)
The name of the user's home group.
If this tag is not provided, the first group in the Group tag group will be used as the user's home group.
Groups Tag Group
The Groups tag group is a container for the user's groups and group permissions.
- At least one group must be added to the user even if they're not assigned any group permissions.
- The groups that a user can be added to are linked to the permissions that the calling User API key grants.
<Groups>
<Group>
<GroupName><![CDATA[]]></GroupName>
- OR -
<GroupID><![CDATA[]]></GroupID>
<GroupPermissions>
<Permission>
<Action><![CDATA[]]></Action>
<Code><![CDATA[]]></Code>
</Permission>
</GroupPermissions>
</Group>
</Groups>
Each group is contained in a Group tag and may contain the following.
GroupName
The group's name. This tag is mutually exclusive with the GroupID tag. This is the Name returned by the getGroup and listGroups methods.
GroupID
The group's user-specified identifier. This tag is mutually exclusive with the GroupName tag. This is the GroupID returned by the getGroup and listGroups methods.
GroupPermissions
A container for the user's group permissions.
<GroupPermissions>
<Permission>
<Action><![CDATA[]]></Action>
<Code><![CDATA[]]></Code>
</Permission>
</GroupPermissions>
Each permission is contained in a Permission tag and contains the following.
Tag | Description |
---|---|
Action | Indicates whether your granting or denying the permission:
Although acceptable values are Grant or Deny, you'll likely only use Grant when creating a usre. |
Code | The permission's code:
|
In the following example, the user would be assigned to the Legal group and granted the Manage Users and Manage Group Users permissions.
<Groups>
<Group>
<GroupName>Legal</GroupName>
<GroupPermissions>
<Permission>
<Action>Grant</Action>
<Code>MANAGE_USERS</Code>
</Permission>
<Permission>
<Action>Grant</Action>
<Code>MANAGE_GROUP_USERS</Code>
</Permission>
</GroupPermissions>
</Group>
</Groups>
If no child tags are added to the GroupPermissions tag, no group permissions will be granted, but the user will be assigned to the group. In the following example, the user would be added to the Legal group, but would have no permissions on the group.
<Groups>
<Group>
<GroupName>Legal</GroupName>
<GroupPermissions></GroupPermissions>
</Group>
</Groups>
Venues Tag Group
The Venues tag group is a container for the user's venues.
<Venues>
<Venue>
<VenueName><![CDATA[]]></VenueName>
<Visibility><![CDATA[]]></Visibility>
<AutoWaitingList><![CDATA[]]></AutoWaitingList>
</Venue>
</Venues>
Each venue is contained in a Venue tag and contains the following.
VenueName
The venue's name.
Visibility
Indicates whether the venue is visible to the user by default:
- 1 - The venue is visible to the user by default.
- 0 - The venue is not visible to the user by default.
AutoWaitingList
Not yet implemented.
Wages Tag Group
The Wages tag group is a container for the user's wages.
<Wages>
<Wage>
<EffectiveDate><![CDATA[]]></EffectiveDate>
<HourlyWage><![CDATA[]]></HourlyWage>
</Wage>
</Wages>
Each wage is contained in a Wage tag and contains the following.
EffectiveDate
The date that the user's wage took effect. Effective dates are unique for a user's wages.
HourlyWage
API Response XML Package
The API response XML package will always include a Result, Info, and Errors tag.
<SmarterU>
<Result></Result>
<Info>
<Email><![CDATA[]]></Email>
<EmployeeID><![CDATA[]]></EmployeeID>
</Info>
<Errors>
<Error>
<ErrorID></ErrorID>
<ErrorMessage></ErrorMessage>
</Error>
</Errors>
</SmarterU>
The response may also contain the following.
The user's email address.
EmployeeID
The user's employee ID.
Example API Response XML Package
Below is an example of an API response XML package.
<SmarterU>
<Result>Success</Result>
<Info>
<Email><![CDATA[lori.tran@finashoes.com]]></Email>
<EmployeeID><![CDATA[U-230495]]></EmployeeID>
</Info>
<Errors>
</Errors>
</SmarterU>
Error Codes
Error Code | Message |
---|---|
CU:01 | The email address provided is not valid. |
CU:02 | The employee ID provided is too long. |
CU:03 | The given name provided is not valid. |
CU:04 | The surname provided is not valid. |
CU:05 | The birth date provided is not valid. |
CU:06 | The password provided is not valid. |
CU:07 | The time zone provided is not valid. |
CU:08 | The option specified to send email to is not valid. Available options are Supervisor, Self, or Alternate. |
CU:09 | The alternate email provided is not valid. |
CU:10 | The value for learner notifications must be 1 or 0. |
CU:11 | The value for supervisor notifications must be 1 or 0. |
CU:12 | The supervisor email address provided is not valid. |
CU:13 | The province provided is not valid. |
CU:14 | The country provided is not valid. |
CU:15 | The value for a users status must be active or inactive. |
CU:16 | The title provided is too long. |
CU:17 | The division provided is too long. |
CU:18 | The value for allowing feedback must be 1 or 0. |
CU:19 | The hire date provided is not valid. |
CU:20 | The termination date provided is not valid. |
CU:21 | The primary phone number provided is not valid. |
CU:22 | The alternate phone number provided is not valid. |
CU:23 | The mobile phone number provided is not valid. |
CU:24 | The fax number provided is not valid. |
CU:25 | The web site address provided is not valid. |
CU:26 | The value of address 1 is too long. |
CU:27 | The value of address 2 is too long. |
CU:28 | The city provided is too long. |
CU:29 | The postal code provided is too long. |
CU:30 | You must provide a group name. |
CU:31 | A group permission action must be provided. |
CU:32 | A group permission code must be provided. |
CU:33 | The email address provided cannot be used. |
CU:34 | The employee id provided cannot be used. |
CU:35 | A valid supervisor user must be provided when the SendEmailTo option is set to SUPERVISOR. |
CU:36 | A valid email address must be provided when the SendEmailTo option is set to SELF. |
CU:37 | A valid alternate email address must be provided when the SentEmailTo option is set to ALTERNATE. |
CU:38 | An employee id must be provided when an email address is not. |
CU:39 | The supervisor provided cannot be used. |
CU:40 | The language provided is not valid. |
CU:41 | The status provided is not valid. Only ACTIVE or INACTIVE are allowed values. |
CU:42 | User creation failed. |
CU:43 | Account assignment failed. |
CU:44 | Group assignment failed. |
CU:45 | Group permission assignment failed. |
CU:46 | The organization provided is not valid. |
CU:47 | You must provide at least one team. |
CU:48 | One or more of the teams provided are not valid. |
CU:49 | A minimum of one custom fields must be provided. |
CU:50 | A custom field name and value must be provided for all custom fields. |
CU:51 | A custom field name provided is not valid. |
CU:52 | A custom field value provided is not valid. |
CU:53 | Custom field assignment failed. |
CU:54 | One or more of the group names/IDs provided are not valid. |
CU:55 | The required permissions are not met to call the createUser method. |
CU:55 | You do not have the appropriate permissions to one or more of the groups provided. |
CU:56 | The SendMailTo value provided is not valid. Only PERSONAL or ORGANIZATION are allowed values. |
CU:57 | The home group provided is not valid. |
CU:58 | The home group provided is not in the list of groups the user will be assigned to. |
CU:59 | Home group assignment failed. |
CU:60 | The AuthenticationType value provided is not valid. Only SmarterU, External or Both are allowed values. |
CU:61 | One or more of the roles provided are not valid. |
CU:62 | The Venue Visibility provided is not valid. Only 1 or 0 are allowed values. |
CU:63 | The Venue Auto Waiting List provided is not valid. Only 1 or 0 are allowed values. |
CU:64 | One or more of the group IDs provided is not valid. |
CU:65 | One or more of the effective dates provided is not valid. |
CU:66 | One or more of the hourly wages provided is not valid. |
CU:67 | Wage assignment failed. |
CU:68 | Wage effective dates must be unique. |
CU:69 | Venue assignment failed. |
CU:70 | One or more of the venue names provided are not valid. |
CU:71 | The password provided must contain at least <AccountMinPasswordLength> characters. |
CU:73 | The password provided must not exceed <AccountMaxPasswordLength> characters. |
CU:74 | The password provided must contain at least one uppercase letter, one number, and one non-alphanumeric character. |