Users Queries

Access user accounts and authentication details.

User - Returns a single user based on the id or email provided

query GetUser($id: ID, $email: String) {
  User(id: $id, email: $email) {
    id
    label
    first_name
    last_name
    email
    active
    lang
    created_at
    updated_at
    notifications {
      id
    }
    active_user_profiles {
      id
    }
    two_factor_authentication
    has_qbo_single_sign_on
  }
}
{
  "id": 100012
}

Users - Returns a list of users based on filters and ordering

query Users(
  $where: QueryUsersWhereWhereConditions,
  $orderBy: [QueryUsersOrderByOrderByClause!]
) {
  Users(
    where: $where
    orderBy: $orderBy
  ) {
    id
    label
    first_name
    last_name
    email
    active
    lang
    created_at
    updated_at
  }
}
{
  "where": {
    "AND": [
      { "column": "ACTIVE", "operator": "EQ", "value": true }
    ]
  },
  "orderBy": [
    { "column": "LAST_NAME", "order": "ASC" }
  ]
}

Available fields

FieldTypeDescription
idIDUnique identifier of the user.
labelStringDisplay label of the user.
first_nameStringFirst name.
last_nameStringLast name.
emailStringEmail address.
activeBooleanIf true, the user is active.
langLangLanguage preference (enum: fr, en, ca).
email_verified_atDateTimeEmail verification timestamp (may be hidden to public).
created_atDateTimeCreation date.
updated_atDateTimeLast update date.
notifications[Notification]User notifications (paginated).
has_qbo_single_sign_onBooleanIndicates if QBO SSO is enabled (may be hidden to public).
two_factor_authenticationBooleanIndicates if Two‑Factor Authentication is enabled.
default_user_profile_idIntDefault user profile ID used at login.
active_user_profiles[UserProfile]Active user profiles associated to the user.

Filters

You can create filters based on following fields

id - ID
Example: { "column": "ID", "operator": "EQ", "value": 100012 }
label - String
Example: { "column": "LABEL", "operator": "LIKE", "value": "%Manager%" }
active - Boolean
Example: { "column": "ACTIVE", "operator": "EQ", "value": true }
first_name - String
Example: { "column": "FIRST_NAME", "operator": "LIKE", "value": "John%" }
last_name - String
Example: { "column": "LAST_NAME", "operator": "LIKE", "value": "%Doe" }
email - String
Example: { "column": "EMAIL", "operator": "EQ", "value": "[email protected]" }
created_at - DateTime
Example: { "column": "CREATED_AT", "operator": "GT", "value": "2025-01-01T00:00:00Z" }
updated_at - DateTime
Example: { "column": "UPDATED_AT", "operator": "LT", "value": "2025-12-31T23:59:59Z" }

Sorting

You can sort data based on following fields: id, label, first_name, last_name, email, lang, email_verified_at, created_at, updated_at

query SortUsers(
  $where: QueryUsersWhereWhereConditions
) {
  Users(
    where: $where
    orderBy: [{ column: LAST_NAME, order: ASC }]
  ) {
    id
    label
    first_name
    last_name
    email
    active
  }
}

Example of data returned

{
  "data": {
    "Users": [
      {
        "id": 100001,
        "label": "John Doe",
        "first_name": "John",
        "last_name": "Doe",
        "email": "[email protected]",
        "active": true,
        "lang": "en",
        "created_at": "2025-01-01T00:00:00Z",
        "updated_at": "2025-10-01T12:00:00Z"
      },
      {
        "id": 100002,
        "label": "Jane Smith",
        "first_name": "Jane",
        "last_name": "Smith",
        "email": "[email protected]",
        "active": false,
        "lang": "fr",
        "created_at": "2025-01-02T00:00:00Z",
        "updated_at": "2025-10-02T12:00:00Z"
      }
    ]
  }
}

Data Types

Notification

FieldTypeDescription
idStringNotification ID.
created_atDateTimeCreation time.
updated_atDateTimeLast update time.
read_atDateTimeRead time (null if unread).
company_idStringCompany ID.
dataJSONNotification data payload.
typeStringNotification type.

Enums

Lang

ValueDescription
frFrench.
enEnglish.
caCanadian French.
gbBritish English.