Unless explicitly stated on the documentation for a method, the accepted Web API call content types are:
Calls using any other content type (ex: text/plain) are not supported.
-
APIs
-
People
Contents
Summary
Contains methods for working with
users and other individuals
within the TeamDynamix people database.
API Methods
POST
https://solutions.teamdynamix.com/TDWebApi/api/people
Copy URL
Creates a user in the system and returns an object representing that person.
Returns
A response creating the new user.
Rate/Submission Limitations
Invocations of this method are rate-limited, with a restriction of
45 calls
per IP address
every 60 seconds.
GET
https://solutions.teamdynamix.com/TDWebApi/api/people/{uid}
Copy URL
Gets a person from the system.
Parameters
-
-
Parameter Name
-
uid
-
Type
-
Guid
-
Source
-
URI
-
Description
-
The user unique identifier.
Access Restrictions
This action requires access to the TDPeople application.
Rate/Submission Limitations
Invocations of this method are rate-limited, with a restriction of
60 calls
per IP address
every 60 seconds.
PATCH
https://solutions.teamdynamix.com/TDWebApi/api/people/{uid}
Copy URL
Patches an existing person.
This only supports patching the person itself, custom attributes, applications and organization applications.
Other collections on the person are not supported.
About PATCH Support
For information on how to structure HTTP PATCH calls, see the
HTTP PATCH Support page.
Parameters
-
-
Parameter Name
-
uid
-
Type
-
Guid
-
Source
-
URI
-
Description
-
The person's unique identifier.
-
-
Parameter Name
-
Request Body
(Validated as "patch")
-
Type
-
PatchDocument<TeamDynamix.Api.Users.User>
-
Source
-
Request Body
-
Description
-
The patch document containing changes to apply to the person.
Rate/Submission Limitations
Invocations of this method are rate-limited, with a restriction of
45 calls
per IP address
every 60 seconds.
Remarks
You will not be able to change the user's password, change user's organization, or change user type using this
method.
Standard applications can be managed through this method as a full replace action. It is not possible to partially
add/remove/merge applications or otherwise partially change the Applications property
via this method. When including Applications, any standard applications
that are omitted will be removed from the user. Providing an empty collection of Applications
will remove all standard applications from the user. Omitting Applications
will cause no change in standard applications for the user.
Organizationally defined applications can be managed through this method as a full replace action. It is not possible to partially
add/remove/merge applications or otherwise partially change the OrgApplications property
via this method. When including OrgApplications, any organizationally defined applications
that are omitted or paired with an invalid security role ID will be removed from the user. Providing an empty collection of
OrgApplications will remove all organizationally defined applications from the user.
Omitting the OrgApplications will cause no change in organizationally defined applications
for the user. Finally, external apps are not associated with security roles. Any security role ID paired with an external app ID
will be ignored.
Application Access Usage Examples:
- Standard Applications:
- Changes application access to only TDNext and MyWork:
{"op": "add", "path": "/applications", "value": ["TDNext","MyWork"]} - Clears all application access:
{"op": "add", "path": "/applications", "value": []} - Makes no change to application access at all:
{"op": "add", "path": "/applications", "value": null}
- Organizationally Defined Applications:
- Changes application access to only Ticket app 1 and Client Portal app 2:
{"op": "add", "path": "/orgapplications", "value": [{"id":1,"securityroleid":"role1here"},{"id":2,"securityroleid":"role2here"}]} - Clears all application access):
{"op": "add", "path": "/orgapplications", "value": []} - Makes no change to application access at all:
{"op": "add", "path": "/orgapplications", "value": null}
POST
https://solutions.teamdynamix.com/TDWebApi/api/people/{uid}
Copy URL
Updates a person entry for the user with the specified identifier with a set of new values.
Parameters
-
-
Parameter Name
-
uid
-
Type
-
Guid
-
Source
-
URI
-
Description
-
The person's unique identifier.
-
-
Parameter Name
-
Request Body
(Validated as "person")
-
Type
-
TeamDynamix.Api.Users.User
-
Source
-
Request Body
-
Description
-
New values
Rate/Submission Limitations
Invocations of this method are rate-limited, with a restriction of
45 calls
per IP address
every 60 seconds.
Remarks
You will not be able to change the user's password, change user's organization, or change user type using this
method.
Standard applications can be managed through this method as a full replace action. It is not possible to partially
add/remove/merge applications or otherwise partially change the Applications property
via this method. When including Applications, any standard applications
that are omitted will be removed from the user. Providing an empty collection of Applications
will remove all standard applications from the user. Omitting Applications
will cause no change in standard applications for the user.
Organizationally defined applications can be managed through this method as a full replace action. It is not possible to partially
add/remove/merge applications or otherwise partially change the OrgApplications property
via this method. When including OrgApplications, any organizationally defined applications
that are omitted or paired with an invalid security role ID will be removed from the user.
Providing an empty collection of OrgApplications will remove all
organizationally defined applications from the user. Omitting the OrgApplications
will cause no change in organizationally defined applications for the user. Finally, external apps are not associated
with security roles. Any security role ID paired with an external app ID will be ignored.
Application Access Usage Examples:
- Standard Applications:
- Changes application access to only TDNext and MyWork:
"Applications": ["TDNext","MyWork"] - Clears all application access:
"Applications": [] - Makes no change to application access at all:
"Applications": null
- Organizationally-Defined Applications:
- Changes application access to only Ticket app 1 and Client Portal app 2:
"OrgApplications": [{"id":1,"securityroleid":"role1here"},{"id":2,"securityroleid":"role2here"}] - Clears all application access):
"OrgApplications": : [] - Makes no change to application access at all:
"OrgApplications": null
GET
https://solutions.teamdynamix.com/TDWebApi/api/people/{uid}/functionalroles
Copy URL
Gets all functional roles for a particular user.
Parameters
-
-
Parameter Name
-
uid
-
Type
-
Guid
-
Source
-
URI
-
Description
-
The UID of the user.
Rate/Submission Limitations
Invocations of this method are rate-limited, with a restriction of
180 calls
per IP address
every 60 seconds.
DELETE
https://solutions.teamdynamix.com/TDWebApi/api/people/{uid}/functionalroles/{roleId}
Copy URL
Removes the user from a functional role.
Parameters
-
-
Parameter Name
-
uid
-
Type
-
Guid
-
Source
-
URI
-
Description
-
The UID of the user.
-
-
Parameter Name
-
roleId
-
Type
-
Int32
-
Source
-
URI
-
Description
-
The functional role ID.
Returns
A response message indicating if the operation was successful or not.
Rate/Submission Limitations
Invocations of this method are rate-limited, with a restriction of
180 calls
per IP address
every 60 seconds.
PUT
https://solutions.teamdynamix.com/TDWebApi/api/people/{uid}/functionalroles/{roleId}?isPrimary={isPrimary}
Copy URL
Adds the user to functional role if they are not already in that role. If they are in that role,
this will update whether or not that role is the user's primary functional role.
Parameters
-
-
Parameter Name
-
uid
-
Type
-
Guid
-
Source
-
URI
-
Description
-
The UID of the user.
-
-
Parameter Name
-
roleId
-
Type
-
Int32
-
Source
-
URI
-
Description
-
The functional role ID.
-
-
Parameter Name
-
isPrimary
-
Type
-
Boolean
-
Source
-
URI
-
Default
-
This parameter is optional, with a default value of
False
.
-
Description
-
Indicates whether or not to set this role as the user's primary functional role.
Returns
A response message indicating if the operation was successful or not.
Rate/Submission Limitations
Invocations of this method are rate-limited, with a restriction of
180 calls
per IP address
every 60 seconds.
GET
https://solutions.teamdynamix.com/TDWebApi/api/people/{uid}/groups
Copy URL
Gets all groups for a particular user.
Parameters
-
-
Parameter Name
-
uid
-
Type
-
Guid
-
Source
-
URI
-
Description
-
The UID of the user.
Rate/Submission Limitations
Invocations of this method are rate-limited, with a restriction of
180 calls
per IP address
every 60 seconds.
DELETE
https://solutions.teamdynamix.com/TDWebApi/api/people/{uid}/groups/{groupID}
Copy URL
Removes the user from a group.
Parameters
-
-
Parameter Name
-
uid
-
Type
-
Guid
-
Source
-
URI
-
Description
-
The UID of the user.
-
-
Parameter Name
-
groupID
-
Type
-
Int32
-
Source
-
URI
-
Description
-
The group ID.
Returns
A response message indicating if the operation was successful or not.
Rate/Submission Limitations
Invocations of this method are rate-limited, with a restriction of
180 calls
per IP address
every 60 seconds.
PUT
https://solutions.teamdynamix.com/TDWebApi/api/people/{uid}/groups/{groupID}?isPrimary={isPrimary}&isNotified={isNotified}&isManager={isManager}
Copy URL
Adds the user to group if they are not already in that group. If they are in that group,
this will update whether or not that group is the user's primary group, whether they are notified along with the
group,
and if they are the manager of the group.
Parameters
-
-
Parameter Name
-
uid
-
Type
-
Guid
-
Source
-
URI
-
Description
-
The UID of the user. Only a full user can be added to a group.
-
-
Parameter Name
-
groupID
-
Type
-
Int32
-
Source
-
URI
-
Description
-
The ID of the group to add. Must match up with a pre-existing group.
-
-
Parameter Name
-
isPrimary
-
Type
-
Boolean
-
Source
-
URI
-
Default
-
This parameter is optional, with a default value of
False
.
-
Description
-
Whether or not this is the user's primary group. If set to true, this will clear out any
existing primary group.
-
-
Parameter Name
-
isNotified
-
Type
-
Boolean
-
Source
-
URI
-
Default
-
This parameter is optional, with a default value of
False
.
-
Description
-
Whether or not this user is notified along with this group.
-
-
Parameter Name
-
isManager
-
Type
-
Boolean
-
Source
-
URI
-
Default
-
This parameter is optional, with a default value of
False
.
-
Description
-
Whether or not this user is a group manager.
Returns
A response message indicating if the operation was successful or not.
Rate/Submission Limitations
Invocations of this method are rate-limited, with a restriction of
180 calls
per IP address
every 60 seconds.
POST
https://solutions.teamdynamix.com/TDWebApi/api/people/{uid}/groups?removeOtherGroups={removeOtherGroups}
Copy URL
Adds a user to a collection of groups.
Parameters
-
-
Parameter Name
-
uid
-
Type
-
Guid
-
Source
-
URI
-
Description
-
The UID of the user. Only a full user can be added to the collection of groups.
-
-
Parameter Name
-
removeOtherGroups
-
Type
-
Boolean
-
Source
-
URI
-
Default
-
This parameter is optional, with a default value of
False
.
-
Description
-
If set to
true
, other groups that this user is a member of will be removed.
-
-
Parameter Name
-
Request Body
(Validated as "groupIds")
-
Type
-
Int32[]
-
Source
-
Request Body
-
Description
-
The IDs of the groups to add the user to. Only pre-existing groups will be added to.
Returns
A response message indicating if the operation was successful or not.
Rate/Submission Limitations
Invocations of this method are rate-limited, with a restriction of
45 calls
per IP address
every 60 seconds.
PUT
https://solutions.teamdynamix.com/TDWebApi/api/people/{uid}/isactive?status={status}
Copy URL
Updates the active status of the specified user.
Parameters
-
-
Parameter Name
-
uid
-
Type
-
Guid
-
Source
-
URI
-
Description
-
The GUID of the user to update.
-
-
Parameter Name
-
status
-
Type
-
Boolean
-
Source
-
URI
-
Description
-
The new active status for the user.
Returns
A response message indicating if the operation was successful or not.
Rate/Submission Limitations
Invocations of this method are rate-limited, with a restriction of
60 calls
per IP address
every 60 seconds.
POST
https://solutions.teamdynamix.com/TDWebApi/api/people/import?AllowIsActiveChanges={AllowIsActiveChanges}&AllowSecurityRoleChanges={AllowSecurityRoleChanges}&AllowApplicationChanges={AllowApplicationChanges}&NotifyEmailAddresses={NotifyEmailAddresses}
Copy URL
Accepts a file, stores that file on disk, and places an entry into the database to indicate to the import file
processor to pick up the file and run a People Import on it.
File Upload
This action accepts an uploaded file as part of the form's submission.
For information on how to structure calls with files, see the
Submitting Files page.
Rate/Submission Limitations
Invocations of this method are rate-limited, with a restriction of
10 calls
per IP address
every 60 seconds.
Remarks
Requirements:
- The file must be in .xlsx format
-
The file must have a header row with supported TeamDynamix fields as column names. Download the template file
using the instructions below for more details.
This process can be used to:
- Update existing customer and user records
- Create new customer records if no existing customer is found and the user type is Customer
- Create new users if no existing user is found and the user type is User
This process will not:
- Convert existing Customer records to User records or vice-versa
Updating Existing Records:
The following matching logic is used to determine if a records should be udpated or created.
- Username - If there already exists one or more people, regardless of active status, with the same
TeamDynamix username
as a row that is being imported, those records will be updated from the spreadsheet. This field will only
be used for the purposes
of matching. TeamDynamix username fields will not be updated as part of this process.
- Authentication Username - If there already exists one or more people, regardless of active status, with
the same
TeamDynamix authentication username as a row that is being imported, those records will be updated from the
spreadsheet. This is
the Auth Username specified for the user in the TDAdmin application. This field will only be used for the
purposes of matching.
TeamDynamix authentication username fields will not be updated as part of this process.
- Organizational ID - If there already exists one or more people, regardless of active status, with the same
organizational ID
as a row that is being imported, those records will be updated from the spreadsheet.
- Primary Email Address - If there already exists one or more people, regardless of active status, with the
same primary email
as a row that is being imported, those records will be updated from the spreadsheet.
User organizational IDs and primary email addresses will be updated as part of this process as long as they are not
the fields which records are matched on.
Creating New Records:
When creating records, the default is to create a Customer. If you do not include the User Type column
and
specify a user type of User, Customer records will be created.
Not Mapping Values vs. Clearing Values :
It is important to note that this process will only attempt to modify values for fields which are included in the
import sheet and can
be mapped to a TeamDynamix field. For instance, if you do not provide a column for a user's home phone, that value
will not be mapped and thus
will not be changed in any way. If you want to clear values, be sure that you provide a column for the field you want
to clear and leave the cell values blank.
Schedule:
Calls to this endpoint are
not processed in real-time. All import jobs are run in a batch process overnight.
Download the Template File:
See
this TeamDynamix Knowledge
Base article
for a template upload file with the supported columns.
The template will contain all necessary instructions for how to obtain column values for each column.
GET
https://solutions.teamdynamix.com/TDWebApi/api/people/lookup?searchText={searchText}&maxResults={maxResults}
Copy URL
Performs a restricted lookup of TeamDynamix people. Will not return full user information.
Parameters
-
-
Parameter Name
-
searchText
-
Type
-
String
-
Source
-
URI
-
Default
-
This parameter is optional, with a default value of
''
.
-
Description
-
The searching text to use.
-
-
Parameter Name
-
maxResults
-
Type
-
Int32
-
Source
-
URI
-
Default
-
This parameter is optional, with a default value of
50
.
-
Description
-
The maximum number of results to return. Must be in the range
1-100, and will default to 50.
Rate/Submission Limitations
Invocations of this method are rate-limited, with a restriction of
75 calls
per IP address
every 10 seconds.
Remarks
This endpoint will not return all user information.
For example, the following collection properties will not be included in the results:
- Applications
- Attributes
- GroupIDs
- OrgApplications
- Permissions
To retrieve such information, you must load a user individually.
POST
https://solutions.teamdynamix.com/TDWebApi/api/people/search
Copy URL
Gets a list of users. Will not return full user information.
Access Restrictions
This action requires access to the TDPeople application.
Rate/Submission Limitations
Invocations of this method are rate-limited, with a restriction of
60 calls
per IP address
every 60 seconds.
Remarks
If you are attempting to look up basic user information using a simple search string,
consider using the
GET api/people/lookup
method instead.
This endpoint will not return all user information.
For example, the following collection properties will not be included in the results:
- Applications
- Attributes
- GroupIDs
- OrgApplications
- Permissions
To retrieve such information, you must load a user individually.
GET
https://solutions.teamdynamix.com/TDWebApi/api/people/userlist?isActive={isActive}&isConfidential={isConfidential}&isEmployee={isEmployee}&userType={userType}
Copy URL
Gets a list of TeamDynamix people. Will not return full user information.
Parameters
-
-
Parameter Name
-
isActive
-
Type
-
Boolean
-
Source
-
URI
-
Default
-
This parameter is optional, with a default value of
null
.
-
Description
-
The active status to filter on.
-
-
Parameter Name
-
isConfidential
-
Type
-
Boolean
-
Source
-
URI
-
Default
-
This parameter is optional, with a default value of
null
.
-
Description
-
The confidential status to filter on.
-
-
Parameter Name
-
isEmployee
-
Type
-
Boolean
-
Source
-
URI
-
Default
-
This parameter is optional, with a default value of
null
.
-
Description
-
The employee status to filter on.
-
-
Parameter Name
-
userType
-
Type
-
TeamDynamix.Api.Users.UserType
-
Source
-
URI
-
Default
-
This parameter is optional, with a default value of
None
.
-
Description
-
The type of user to filter on. A value of
None
will return users of any type.
Rate/Submission Limitations
Invocations of this method are rate-limited, with a restriction of
1 call
per user
every 60 seconds.