Teams and store configuration.
Queries
appointmentEventUserConflicts
For each user, returns the existing events that would conflict if they were assigned an appointment in the given window. Reads from the Postgres source-of-truth so callers always see post-mutation freshness. Time-off conflicts are normalized to blocked.
Arguments
endTime(DateTime!) — Exclusive end of the conflict windowexcludeAppointmentEventId(ID) — An appointment event to omit from consideration, e.g. the appointment currently being editedstartTime(DateTime!) — Inclusive start of the conflict windowuserIds([ID!]!) — The users whose schedules should be checked
Returns: [AppointmentEventUserConflict!]! — A scheduling conflict a user would have if assigned an appointment in the given window
searchTeams
Deprecated: Use Query.teams instead
Lists Teams
Arguments
accessibleToUserId(ID) — The User ID to filter results by accessafter(String) — A cursor to search after (only include first & after or last & before)before(String) — A cursor to search before (only include first & after or last & before)byStatus(TeamStatusFilter) — The status of the Team to filter results byfirst(Int) — The number of results to fetch when searching forward (only include first & after or last & before)last(Int) — The number of results to fetch when searching backward (only include first & after or last & before)search(String) — A search query to filter resultssortBy(SortTeamsBy) — The sort keysortDir(SortDirection) — The sort directionteamMemberIds([ID!]) — The User IDs to filter results by membership
Returns: TeamConnection! — A connection to a list of items.
searchUserProfiles
Searches UserProfiles
Arguments
after(String) — A cursor to search after (only include first & after or last & before)before(String) — A cursor to search before (only include first & after or last & before)filters([SearchFilterInput!]) — A set of filters to applyfirst(Int) — The number of results to fetch when searching forward (only include first & after or last & before)last(Int) — The number of results to fetch when searching backward (only include first & after or last & before)search(String) — A search query to filter resultssortBy(SortUserProfilesBy) — The sort keysortDir(SortDirection) — The sort direction
Returns: UserProfileConnection! — A connection to a list of items.
searchUsers
Deprecated: Use Query.users instead
Lists Users
Arguments
after(String) — A cursor to search after (only include first & after or last & before)before(String) — A cursor to search before (only include first & after or last & before)byAvailability(UserAvailabilityFilter) — The availability to filter resultsbyStatus(UserStatusFilter) — The status to filters resultsfirst(Int) — The number of results to fetch when searching forward (only include first & after or last & before)hasProfilePicture(Boolean) — Whether to include only users with profile pictureslast(Int) — The number of results to fetch when searching backward (only include first & after or last & before)memberOfTeamIds([ID!]) — A Team ID to filter results bysearch(String) — A search query to filter resultssortBy(SortUsersBy) — The sort keysortDir(SortDirection) — The sort directiontype(UserType) — The type to filters results
Returns: UserConnection! — A connection to a list of items.
team
A single Team by ID
Arguments
id(ID!) — The unique identifier of the Team
Returns: Team — A physical store or virtual team.
teamMembersByIds
A list of TeamMembers by Team IDs and/or User IDs
Arguments
Returns: [TeamMember!]! — A member of a Team
teams
Lists Teams
Arguments
accessibleToUserId(ID) — The User ID to filter results by accessafter(String) — A cursor to search after (only include first & after or last & before)before(String) — A cursor to search before (only include first & after or last & before)byStatus(TeamStatusFilter) — The status of the Team to filter results byfirst(Int) — The number of results to fetch when searching forward (only include first & after or last & before)last(Int) — The number of results to fetch when searching backward (only include first & after or last & before)search(String) — A search query to filter resultssortBy(SortTeamsBy) — The sort keysortDir(SortDirection) — The sort directionteamMemberIds([ID!]) — The User IDs to filter results by membership
Returns: TeamConnection! — A connection to a list of items.
teamsByIds
A list of Teams by IDs
Arguments
ids([ID!]!) — The IDs of the Teams
Returns: [Team]! — A physical store or virtual team.
teamsByIntegratedLocationId
A single Team by the ID of its associated IntegratedLocation
Arguments
integratedLocationId(ID!) — The ID of the IntegratedLocationtype(TeamLocationType!) — The type of the TeamLocation
Returns: [Team!]! — A physical store or virtual team.
user
A single User by ID or username
Arguments
Returns: User — A person or bot that can access Endear
userByConnectedUserProfile
A single User by the ID of its connected UserProfile
Arguments
userProfileId(ID!)
Returns: User — A person or bot that can access Endear
users
Lists Users
Arguments
after(String) — A cursor to search after (only include first & after or last & before)before(String) — A cursor to search before (only include first & after or last & before)byAvailability(UserAvailabilityFilter) — The availability to filter resultsbyStatus(UserStatusFilter) — The status to filters resultsfirst(Int) — The number of results to fetch when searching forward (only include first & after or last & before)hasProfilePicture(Boolean) — Whether to include only users with profile pictureslast(Int) — The number of results to fetch when searching backward (only include first & after or last & before)memberOfTeamIds([ID!]) — A Team ID to filter results bysearch(String) — A search query to filter resultssortBy(SortUsersBy) — The sort keysortDir(SortDirection) — The sort directiontype(UserType) — The type to filters results
Returns: UserConnection! — A connection to a list of items.
usersByIds
A list of Users by IDs
Arguments
ids([ID!]!) — The IDs of the Users
Returns: [User]! — A person or bot that can access Endear
Mutations
assignUsersToCustomer
Assigns Users to a Customer
Arguments
assigneeIds([ID!]!) — The IDs of the Users to assign to the CustomerassignerId(ID) — The ID of the User who is assigning the Usersid(ID!) — The ID the CustomernotifyAssignees(Boolean) — Whether to notify the assigneesskipIfCustomerAlreadyAssigned(Boolean) — Whether to skip assigning Users if they the Customer is already assigned
Returns: AssignUsersToCustomerPayload!
assignUsersToTask
Assigns Users to a Task
Arguments
assigneeIds([ID!]!) — The IDs of the Users to assign to the TaskassignerId(ID!) — The ID of the User who is assigning the Usersid(ID!) — The ID the TasknotifyAssignees(Boolean) — Whether to notify the Users that they have been assigned
Returns: AssignUsersToTaskPayload!
bulkUpsertExternalUsers
Upserts one or more ExternalUsers by ID
Arguments
users([ExternalUserInput!]!) — The list of ExternalUsers
Returns: OperationStatus!
connectUserProfilesToUser
Associate a list of UserProfiles to a User
Arguments
editorId(ID!) — The ID of the User who is making the requestid(ID!) — The unique identifier of the UseruserProfileIds([ID!]!) — The unique identifiers of the UserProfiles to associate to the User
Returns: ConnectUserProfilesToUserPayload!
unassignUsersFromCustomer
Unassigns Users from a Customer
Arguments
assigneeIds([ID!]!) — The IDs of the Users to unassign from the CustomerassignerId(ID!) — The ID of the User who is unassigning the Usersid(ID!) — The ID the Customer
Returns: UnassignUsersFromCustomerPayload!
unassignUsersFromTask
Unassigns Users from a Task
Arguments
assigneeIds([ID!]!) — The IDs of the Users to unassign from the TaskassignerId(ID!) — The ID of the User who is unassigning the Usersid(ID!) — The ID the Task
Returns: UnassignUsersFromTaskPayload!
updateUserStatus
Update the status of a User
Arguments
editorId(ID!) — The ID of the User performing the updateid(ID!) — The unique identifier of the Userstatus(UserStatus!) — The new status of the User
Returns: UpdateUserStatusPayload!
updateUserV2
Updates a User
Arguments
editorId(ID!) — The ID of the User updating the UserfirstName(String) — The User's first or given nameid(ID!) — The unique identifier of the UserlastName(String) — The User's last or family nameprofilePictureUrl(URL) — The User's profile pictureusername(String) — The User's username
Returns: UpdateUserV2Payload!
Objects
AppointmentEventUserConflict
A scheduling conflict a user would have if assigned an appointment in the given window
Fields
conflict_type(AppointmentEventConflictType!)conflicting_object_id(ID!)conflicting_object_metadata(AppointmentEventConflictMetadata!)user_id(ID!)
AssignUsersToCustomerError
Fields
code(AssignUsersToCustomerErrorCode!)human_readable_message(String!)
AssignUsersToCustomerFailure
Fields
errors([AssignUsersToCustomerError!]!)
AssignUsersToCustomerSuccess
Fields
customer(EditableCustomer!)
AssignUsersToTaskError
Fields
code(AssignUsersToTaskErrorCode!)human_readable_message(String!)
AssignUsersToTaskFailure
Fields
errors([AssignUsersToTaskError!]!)
AssignUsersToTaskSuccess
Fields
task(Task!)
ConnectUserProfilesToUserError
Fields
code(ConnectUserProfilesToUserErrorCode!)human_readable_message(String!)
ConnectUserProfilesToUserFailure
Fields
errors([ConnectUserProfilesToUserError!]!)
ConnectUserProfilesToUserSuccess
Fields
user(User!)
Team
A physical store or virtual team.
Fields
address(String!) — The associated address for the Teamattribution_excluded_at(DateTime) — The date the Team was excluded from message attributioncreated_at(DateTime!) — The date the Team was createdcurrency(String) — The currency used by the Team — 🚧 Deprecated: Use display_currency insteaddeleted_at(DateTime) — When the Team was deleteddisplay_currency(Currency) — The display currency used by the Teamhas_access(Boolean!) — Whether the provided User ID has access to the Teamid(ID!) — The unique identifier of the Teamis_member(Boolean!) — Whether the provided User ID is a member of the Teammembers(UserConnection!) — The Users that are assigned to the Teamname(String!) — The user-facing name of the Teamstatus(TeamStatus!) — The status of the Teamtype(TeamType) — The type of teamupdated_at(DateTime!) — The date the Team was last updated
TeamConnection
A connection to a list of items.
Fields
edges([TeamEdge]) — A list of edges.pageInfo(PageInfo!) — Information to aid in pagination.
TeamEdge
An edge in a connection.
Fields
TeamMember
A member of a Team
Fields
team(Team) — The Team that the TeamMember is associated withuser(User) — The User that the TeamMember is associated with
UnassignUsersFromCustomerError
Fields
code(UnassignUsersFromCustomerErrorCode!)human_readable_message(String!)
UnassignUsersFromCustomerFailure
Fields
errors([UnassignUsersFromCustomerError!]!)
UnassignUsersFromCustomerSuccess
Fields
customer(EditableCustomer!)
UnassignUsersFromTaskError
Fields
code(UnassignUsersFromTaskErrorCode!)human_readable_message(String!)
UnassignUsersFromTaskFailure
Fields
errors([UnassignUsersFromTaskError!]!)
UnassignUsersFromTaskSuccess
Fields
task(Task!)
UpdateUserStatusError
Fields
code(UpdateUserStatusErrorCode!)human_readable_message(String!)
UpdateUserStatusFailure
Fields
errors([UpdateUserStatusError!]!)
UpdateUserStatusSuccess
Fields
user(User!)
UpdateUserV2Error
Fields
code(UpdateUserV2ErrorCode!)human_readable_message(String!)
UpdateUserV2Failure
Fields
errors([UpdateUserV2Error!]!)
UpdateUserV2Success
Fields
user(User!)
User
A person or bot that can access Endear
Fields
attribution_excluded_at(DateTime) — The date the User was excluded from attributionconnected_user_profiles([UserProfile!]!) — The UserProfiles that the User is connected tocreated_at(DateTime!) — The date the User was createddisplay_name(String!) — The display name of the Useremail_address(EmailAddress) — The email address of the Userfirst_name(String) — The first name of the Userfull_name(String) — The full name of the Userhandle(String) — The identifying handle of the Userhas_name(Boolean!) — Whether the User has a nameid(ID!) — The unique identifier of the Userinitials(String!) — The initials of the UserAccountis_available(Boolean!) — Whether the User is availableis_member(Boolean!) — Whether the User is a member of the provided Team IDlast_name(String) — The last name of the Userlast_sign_in_at(DateTime) — The date the User last signed inlimits(UserLimits!) — The UserLimits for this Usermost_recently_signed_into_team(Team) — The Team that the User most recently signed intophone_number(PhoneNumber) — The phone number of the Userprofile_picture_url(URL) — The URL to an image of the profile picture for a Userstatus(UserStatus!) — The status of the Userteams(TeamConnection!) — The Teams that the User is assigned totype(UserType!) — The type of the Userupdated_at(DateTime!) — The date the User was last updatedusername(String) — The username of the User
UserConnection
A connection to a list of items.
Fields
edges([UserEdge]) — A list of edges.pageInfo(PageInfo!) — Information to aid in pagination.
UserEdge
An edge in a connection.
Fields
UserLimits
Fields
limit_sms_drafts_by(LimitSmsDraftsBy!) — The unit of measure for SMS draftsmax_email_recipients_per_draft(NonNegativeInt!) — The maximum number of email recipients per draftmax_sms_characters_per_draft(NonNegativeInt!) — The maximum number of characters per SMS draftmax_sms_recipients_per_draft(NonNegativeInt!) — The maximum number of SMS recipients per draftmax_sms_segments_per_draft(NonNegativeInt!) — The maximum number of segments per SMS drafttype(UserType!) — The type of user
UserProfile
A person or bot that can access Endear
Fields
created_at(DateTime!) — The date the UserProfile was createddeleted_at(DateTime) — The date the UserProfile was deleteddisplay_name(String!) — The display name of the UserProfileemail_address(String) — The email address of the UserProfileexternal_id(ID!) — The unique identifier of the UserProfileid(ID!) — The unique identifier of the UserProfileintegration(Integration!) — The integration that the UserProfile belongs tophone_number(String) — The phone number of the UserProfileupdated_at(DateTime!) — The date the UserProfile was last updateduser(User) — The User that the UserProfile belongs to
UserProfileConnection
A connection to a list of items.
Fields
edges([UserProfileEdge]) — A list of edges.pageInfo(PageInfo!) — Information to aid in pagination.total(Int)
UserProfileEdge
An edge in a connection.
Fields
cursor(String!) — A cursor for use in paginationnode(UserProfile) — The item at the end of the edge
Unions
AssignUsersToCustomerPayload
Possible types
AssignUsersToTaskPayload
Possible types
ConnectUserProfilesToUserPayload
Possible types
UnassignUsersFromCustomerPayload
Possible types
UnassignUsersFromTaskPayload
Possible types
UpdateUserStatusPayload
Possible types
UpdateUserV2Payload
Possible types
Input Objects
ExternalUserInput
An ExternalUser to be added/updated
Fields
created_at(DateTime) — The date the ExternalUser was createddeleted_at(DateTime) — The date the ExternalUser was deletedemail_address(EmailAddress) — The email address of the ExternalUserfirst_name(String) — The first name of the ExternalUserid(ID!) — The unique identifier of the ExternalUserlast_name(String) — The last name of the ExternalUserphone_number(PhoneNumber) — The phone number of the ExternalUserupdated_at(DateTime) — The date the ExternalUser was last updated
Enums
AssignUsersToCustomerErrorCode
Values
ASSIGNEES_NOT_FOUND— One or more assignees were not foundASSIGNER_NOT_FOUND— The assigner was not foundCONCURRENCY_ERROR— The customer has been updated since this request was initiatedCUSTOMER_ALREADY_ASSIGNED— The customer is already assignedCUSTOMER_DELETED— The customer is deletedCUSTOMER_NOT_FOUND— The customer was not foundMUST_PROVIDE_AT_LEAST_ONE_ASSIGNEE— At least one assignee must be provided
AssignUsersToTaskErrorCode
Values
ASSIGNEES_NOT_FOUND— One or more assignees were not foundASSIGNER_NOT_FOUND— The assigner was not foundCANNOT_ASSIGN_TO_DELETED_TASK— Cannot assign users to a deleted taskFORBIDDEN— You do not have permission to perform this actionMUST_PROVIDE_AT_LEAST_ONE_ASSIGNEE— At least one assignee must be providedTASK_LINKED_TO_V2_CANNOT_BE_MODIFIED— This task is linked to a TaskV2 and cannot be modified directlyTASK_NOT_FOUND— The task was not found
ConnectUserProfilesToUserErrorCode
Values
EDITOR_NOT_FOUND— The editor was not foundFORBIDDEN— You do not have permission to perform this actionMUST_PROVIDE_AT_LEAST_ONE_USER_PROFILE— You must provide at least one user profileUSER_NOT_FOUND— The user was not foundUSER_PROFILE_NOT_FOUND— The user profile was not found
SortTeamsBy
The available keys to sort Teams
Values
CREATED_ATNAMEUPDATED_AT
SortUserProfilesBy
The available keys to sort UserProfiles
Values
CREATED_ATDISPLAY_NAMEUPDATED_AT
SortUsersBy
The available keys to sort Users
Values
CREATED_ATLAST_SIGN_IN_ATUPDATED_AT
TeamLocationType
The type of the TeamLocation
Values
ECOMMPOS
TeamStatus
The status of the Team
Values
ACTIVEDELETED
TeamStatusFilter
The status of the Team to filter results by
Values
ACTIVEALLDELETED
TeamType
The type of team
Values
CONCESSIONSDIGITALPHYSICAL_LOCATIONWHOLESALE
UnassignUsersFromCustomerErrorCode
Values
ASSIGNEES_NOT_FOUND— One or more assignees were not foundASSIGNER_NOT_FOUND— The assigner was not foundCONCURRENCY_ERROR— The customer has been updated since this request was initiatedCUSTOMER_DELETED— The customer is deletedCUSTOMER_NOT_FOUND— The customer was not foundMUST_PROVIDE_AT_LEAST_ONE_ASSIGNEE— At least one assignee must be provided
UnassignUsersFromTaskErrorCode
Values
ASSIGNEES_NOT_FOUND— One or more assignees were not foundASSIGNER_NOT_FOUND— The assigner was not foundCANNOT_UNASSIGN_FROM_DELETED_TASK— Cannot unassign users from a deleted taskFORBIDDEN— You do not have permission to perform this actionMUST_PROVIDE_AT_LEAST_ONE_ASSIGNEE— At least one assignee must be providedTASK_LINKED_TO_V2_CANNOT_BE_MODIFIED— This task is linked to a TaskV2 and cannot be modified directlyTASK_NOT_FOUND— The task was not found
UpdateUserStatusErrorCode
Values
CONCURRENCY_ERROR— The user has been updated since this request was initiatedFORBIDDEN— You do not have permission to perform this actionUSER_NOT_FOUND— The user was not found
UpdateUserV2ErrorCode
Values
CONTACT_METHOD_NOT_FOUND— The contact method was not foundEDITOR_NOT_FOUND— The editor was not foundFIRST_NAME_TOO_LONG— The first name is too longFIRST_NAME_TOO_SHORT— The first name cannot be emptyINVALID_FIRST_NAME— The first name is invalidINVALID_LAST_NAME— The last name is invalidLAST_NAME_TOO_LONG— The last name is too longLAST_NAME_TOO_SHORT— The last name cannot be emptyUSERNAME_ALREADY_EXISTS— There is already an account with this usernameUSERNAME_INVALID— This username is invalidUSER_NOT_FOUND— The user was not found
UserAvailabilityFilter
The availability of the User to filter results by
Values
ALLAVAILABLEUNAVAILABLE
UserStatus
The status of the User
Values
ACTIVEDISABLED
UserStatusFilter
The status of the User to filter results by
Values
ACTIVEALLDISABLED
UserType
The type of the User
Values
ADMINMANAGERUSER
