API Endpoints Documentation

List Upcoming Events

SummaryCal NameEndpoint URLConsumesProducesIn ParametersResponses

API endpoint provides a list of upcoming events in QuickHelp

listUpcomingEvents

/Events/Upcoming

N/A


application/json

[
  {
    "eventId": 0,
    "thumbnail": "string",
    "title": "string",
    "description": "string",
    "sessionDate": "string",
    "duration": "string",
    "url": "string"
  }
]

From Date

  • in: located in URL
  • name: fromDate
  • type: string Format - date-time (as date-time in RFC3339) 
  • description: Parameter responsible for filtering data by time range start in format "mm/dd/yyyy".
  • required: optional
  • rules
    • IF From Date has not date-time format THEN validation is shown.
    • IF From Date is not set THEN From Date = Current Date.
    • IF From Date > To Date THEN validation is shown.
  1. The possible responses that the service can return.
    • description: A short description of when this response happens.
    • schema: A definition of the response object (see next section for details).
    • (HTTP Status Code): You first specify the HTTP Status Code (e.g. 200).



To Date

  • in: located in URL
  • name: toDate
  • type: string Format - date-time (as date-time in RFC3339) 
  • description: Parameter responsible for filtering data by time range end in format "mm/dd/yyyy".
  • required: optional
  • rules
    • IF To Date has not date-time format THEN validation is shown.
    • IF To Date < From Date THEN validation is shown.

Customer ID

  • in: located in URL
  • name: customerId
  • type: integer Format - int32.
  • description: Parameter available for BSI or Partner and responsible for filtering data per specific customer.
  • required: optional
  • rules
    • IF Customer ID is not integer THEN validation is shown.
    • IF Customer ID = ID that does not exist THEN validation is shown.
    • IF Customer ID = Template ID THEN validation is shown.
    • IF requester is Partner OR BSI THEN Customer ID is required.
    • IF requester is Partner THEN Customer ID = Child Customer ID.

Create Customer Account (Requires account type "Partner" or above)

SummaryCal NameEndpoint URLConsumesProducesIn ParametersResponses

The API endpoint can be used to create customer accounts

createCustomerAccount

/Account/Create

application/json

{
  "companyName": "string",
  "eula": 0,
  "templateId": 0,
  "accountType": 0,
  "contractStatus": 0,
  "routeURL": "string",
  "domains": [
    "string"
  ],
  "primaryContact": {
    "name": "string",
    "email": "string",
    "phone": "string"
  },
  "expirationDate": "string",
  "licenses": 0,
  "timeZone": 0,
  "supportInfo": {
    "website": "string",
    "email": "string",
    "phone": "string"
  },
  "partnerId": 0,
  "ae": 0,
  "csm": 0,
  "suppressUserCreation": true,
  "isEulaAccepted": true
}



application/json

{
  "companyName": "string",
  "eula": 0,
  "templateId": 0,
  "accountType": 0,
  "contractStatus": 0,
  "routeURL": "string",
  "domains": [
    "string"
  ],
  "primaryContact": {
    "name": "string",
    "email": "string",
    "phone": "string"
  },
  "expirationDate": "string",
  "licenses": 0,
  "timeZone": 0,
  "supportInfo": {
    "website": "string",
    "email": "string",
    "phone": "string"
  },
  "partnerId": 0,
  "ae": 0,
  "csm": 0,
  "suppressUserCreation": true,
  "isEulaAccepted": true
}

Company Name

  • in: body
  • name: companyName
  • type: string 
  • description: Parameter responsible for providing name of the company.
  • required: required
  • rules
    • IF Company Name is empty THEN validation is shown.
    • IF Company Name = Already Existing Company Name THEN validation is shown.
    • IF Company Name length > 64 characters THEN validation is shown.
    • Special characters and foreign letters are allowed.
  1. The possible responses that the service can return.
    • description: A short description of when this response happens.
    • schema: A definition of the response object (see next section for details).
    • (HTTP Status Code): You first specify the HTTP Status Code (e.g. 200).



EULA

  • in: body
  • name: eula
  • type: integer  Format - int32.
  • description: Parameter responsible for linking new customer with End-User License Agreement file.
  • required: required
  • rules
    • IF EULA is empty THEN validation is shown.
    • IF Partner has NOT accepted EULA THEN Partner is not able to create child customer (validation: Partner without accepted EULA can not be used).
    • IF EULA = ID that does not exist THEN validation message is shown.
    • IF EULA = NOT integer THEN validation message is shown.
    • IF EULA is inactive THEN it is not possible to link it to new customer.
    • IF Account Type = 45-Day Trial Customer OR Account Type = Partner Customer THEN EULA is inherited from Partner Customer AND Partner Admin shall set Partners EULA ID.

isEULAAccepted

  • in: body
  • name: isEULAAccepted
  • type: boolean
  • description: Parameter responsible for new customer End-User License Agreement status (Accepted = True; Not Accepted = False).
  • required: required
  • rules
    • The default value for "IsEULAAccepted" is FALSE.
    • IF isEULAAccepted = NOT boolean THEN validation message is shown.
    • IF BSI Admin set isEULAAccepted = TRUE AND Customer Type != Child Customer or Customer Type != 45-Day Trial Customer THEN validation is shown "EULA can be accepted only for child customers".

Account Type

  • in: body
  • name: accountType
  • type: integer Format - int32.
  • description: Parameter responsible for assigning customer type for new customer. Possible values:

    Id  Name   
    1   Customer Account   
    2   BQP Customer   
    3   Demo Account   
    4   Partner Customer   
    5   45-Day Trial Customer  
    6   Internal Use   
    7   Child Customer 
    11  CIE Bootcamp   
    12  BSI Trial Customer 
    13  SMC Sandbox

For more Info Account Type.

  • required: required
  • rules
    • IF Account Type  is empty THEN validation is shown.
    • IF Account Type  = NOT integer THEN validation is shown.
    • IF Account Type < 1 THEN validation is shown.
    • IF Account Type > 7 AND Account Type < 11  THEN validation is shown (Template cannot be created. Invalid input data for Account Type).
    • IF Account Type > 13 THEN validation is shown.
    • IF BSI Admin THEN next Account Types are available:
      • Customer Account; 
      • BQP Customer; 
      • Demo Account; 
      • Partner Customer;
      • Internal Use;
      • CIE Bootcamp;
      • BSI Trial Customer;
      • SMC Sandbox.
    • IF Partner Admin THEN next Account Types are available:
      • 45-Day Trial Customer
      • Child Customer.

Route URL

  • in: body
  • name: routeURL
  • type: string
  • description: Parameter responsible for settings url for new customer. Example: https://app.quickhelp.com/bsi/
  • required: required
  • rules
    • IF Route URL  is empty THEN validation is shown.
    • IF Route URL  contains space THEN validation is shown.
    • IF Route URL  = Already Existing Route URL THEN validation is shown (Customer with this Route URL already exists).
    • IF Route URL length  > 32 characters THEN validation is shown (Please enter no more than 32 characters.).
    • IF Route URL  = 'api' OR Route URL  = ' breeze' OR Route URL  = 'data' THEN validation is shown (These words are reserved: {words}.).

Domains

  • in: body
  • name: domains
  • type: string array
  • descriptionAn array that may contain multiple domains that new customer is linked to. E.g. ["string", "string1", "string2"].
  • required: required
  • rules
    • IF Domains is empty THEN validation is shown.
    • IF Domains  = Already Existing Domains THEN validation is shown (Customer with <domain_name> domain already exists).
    • IF Domains  = Already Existing Domains THEN validation is shown (Customer with <domain_name> domain already exists).
    • IF Domains contains spaces THEN validation is shown.
    • IF Domains length  > 128 characters THEN validation is shown.
    • IF Domains   array contains two OR more same domains THEN validation is shown.
    • IF Domains   array contains special characters THEN validation is shown.
    • IF Domain include dot THEN this is valid domain.

Primary Contact 

  • in: body
  • name: primaryContact
  • type: associative array
  • descriptionParameter that contains NameEmail and Phone of contact person from new customer.
  • required: required
  • rules
    • IF Name OR Email OR Phone is empty THEN validation is shown.
    • Foreign language characters, special characters are allowed.
    • IF Primary Contact  Name > 256 characters THEN validation is shown.
    • IF Primary Contact  Name include spaces THEN shall be separated to First and Last Name.
    • IF Primary Contact  Email length > 64 characters THEN validation is shown.
    • IF SupressUserCreation = False AND Primary Contact  Email include domain that does not belong to current customer (is not in Domains array ) THEN validation is shown.
    • IF  Primary Contact  Email does not fit email pattern THEN validation is shown.
    • IF Primary Contact  Phone length > 21 characters THEN validation is shown.
    • IF Primary Contact  Phone length < 10 characters THEN validation is shown.
    • IF Primary Contact  Phone contains   letters OR other symbols except '.' AND '-' THEN validation is shown.

SuppressUserCreation

  • in: body
  • name: SuppressUserCreation
  • type: boolean
  • description: Parameter responsible for assigning Primary Contact Person as Customer Administrator.
  • required: required
  • rules
    • IF SuppressUserCreation is set to FALSE THEN Primary Contact Person is assigned as Assignment Administrator, Communication Administrator, Library Administrator, System Group Admin, User Administrator for created customer.
    • IF SuppressUserCreation is set to FALSE THEN Primary Contact Person receive "Finalize Your QuickHelp Account Setup" email.
    • IF SuppressUserCreation is set to FALSE  AND Customer Type is set to Partner Customer THEN Primary Contact Person assigned as  Partner Administrator for created customer.

Expiration Date

  • in: body
  • name: expirationDate
  • type: string Format - date-time (as date-time in RFC3339) 
  • description: Parameter responsible for setup  expiration date for new customer.
  • required: required
  • rules
    • IF Expiration Date is not set THEN validation is shown.
    • IF Expiration Date has not valid date format THEN validation is shown (Invalid date format (mm/dd/yyyy))
    • IF Expiration Date <= Current Date THEN validation is shown.
    • IF Customer Type = 45-Day Trial Customer THEN Expiration date will be set to + 45-day from date creation AND setting Expiration Date is prohibited AND warning message is shown (For 45 day trial accounts, expiration date is automatically set for 45 days).
    • IF Customer Type = Child Customer THEN Expiration date shall be inherited from Partner Customer AND Expiration Date is prohibited AND warning message is shown (For child customer accounts, expiration date is inherited from partner account.).

Licenses

  • in: body
  • name: licenses
  • type: integer  Format - int32.
  • description: Parameter responsible for setup  number of licenses for new customer.
  • required: required
  • rules
    • IF Licenses is not set THEN validation is shown.
    • IF Licenses is integer THEN validation is shown.
    • IF Licenses < 0 OR Licenses > 99999999 THEN validation is shown.

Template

  • in: body
  • name: templateId
  • type: integer  Format - int32.
  • description: Parameter responsible for assigning template to new customer by adding Template ID for more flexible management.
  • required: optional
  • rules
    • IF BSI Admin THEN next  template types are available:
      • Private Inheritance;
      • Global inheritance;
      • Snapshot template;
      • Without template.
    • IF Account Type = Child Customer OR Account Type = 45-Day Trial Customer AND Partner Customer was created without template THEN next  template types are available:
      • Global inheritance;
      • Private Partner Inheritance;
      • Partner Customer shall be template for new customer when no ID was set.
    • IF Account Type = Child Customer OR Account Type = 45-Day Trial Customer AND Partner Customer was created from template THEN next  template types are available:
      • Global inheritance;
      • Private Partner Inheritance.
    • IF Account Type = Child Customer OR Account Type = 45-Day Trial Customer AND Partner Customer was created from template AND Template is not set' THEN validation is shown.
    • IF Account Type = Child Customer OR Account Type = 45-Day Trial Customer AND Partner Customer was created without template AND Template = Partner ID of current Partner Customer THEN validation is shown.
    • IF Account Type = Child Customer OR Account Type = 45-Day Trial Customer AND Partner Customer was created without template AND Template is not set THEN Partner Customer shall be Template for new customer.
    • IF Template = ID that is not available THEN validation message is shown
    • IF Template  is not integer THEN validation message is shown.
    • IF Template = ID AND this ID = Customer ID THEN validation message is shown.
    • IF Template = ID AND this ID belongs to Template Type that is not available for BSI Admin OR Partner Admin  THEN validation message is shown.

Time Zone

  • in: body
  • name: timeZone
  • type: integer Format - int32.
  • description: Parameter responsible for stetting Time Zone for new customer. 

    Time Zones
    Id TimeZoneId Abbreviation 
    1 Hawaiian Standard Time HST 
    2 Hawaiian Standard Time HDT 
    3 Alaskan Standard Time AKST 
    4 Alaskan Standard Time AKDT 
    5 Pacific Standard Time PST 
    6 Pacific Standard Time PDT 
    7 US Mountain Standard Time MST 
    8 US Mountain Standard Time MDT 
    9 Mountain Standard Time MST 
    10 Mountain Standard Time MDT 
    11 Central America Standard Time CST 
    12 Central America Standard Time CDT 
    13 Central Standard Time CST 
    14 Central Standard Time CDT 
    15 Central Standard Time (Mexico) CST 
    16 Central Standard Time (Mexico) CDT 
    17 Canada Central Standard Time CST 
    18 Canada Central Standard Time CDT 
    19 Eastern Standard Time EST 
    20 Eastern Standard Time EDT 
    21 US Eastern Standard Time EST 
    22 US Eastern Standard Time EDT 
    23 Atlantic Standard Time AST 
    24 Atlantic Standard Time ADT 
    25 Newfoundland Standard Time NST 
    26 Newfoundland Standard Time NDT 
    27 Morocco Standard Time WET 
    28 Morocco Standard Time WEST 
    29 GMT Standard Time GMT 
    30 GMT Standard Time BST 
    31 Greenwich Standard Time GMT 
    32 W. Europe Standard Time CET 
    33 W. Europe Standard Time CEST 
    34 Central Europe Standard Time CET 
    35 Central Europe Standard Time CEST 
    36 Romance Standard Time CET 
    37 Romance Standard Time CEST 
    38 Central European Standard Time CEST 
    39 Central European Standard Time CET 
    40 W. Central Africa Standard Time WAT 
    41 W. Central Africa Standard Time WAST 
    42 Namibia Standard Time WAST 
    43 Namibia Standard Time WAT 
    44 Jordan Standard Time EET 
    45 Jordan Standard Time EEST 
    46 GTB Standard Time EEST 
    47 GTB Standard Time EET 
    48 Middle East Standard Time EET 
    49 Middle East Standard Time EEST 
    50 Egypt Standard Time EET 
    51 Egypt Standard Time EEST 
    52 Syria Standard Time EET 
    53 Syria Standard Time EEST 
    54 South Africa Standard Time SAST 
    55 FLE Standard Time EET 
    56 FLE Standard Time EEST 
    57 Turkey Standard Time EET 
    58 Turkey Standard Time EEST 
    59 Kaliningrad Standard Time EET 
    60 Kaliningrad Standard Time EEST 
    61 Libya Standard Time EET 
    62 Libya Standard Time EEST 
    63 E. Africa Standard Time EAT 
    64 India Standard Time IST 
    65 Sri Lanka Standard Time IST 
    66 Singapore Standard Time SGT 
    67 W. Australia Standard Time AWST 
    68 W. Australia Standard Time AWDT 
    69 Cen. Australia Standard Time ACST 
    70 Cen. Australia Standard Time ACDT 
    71 AUS Central Standard Time ACST 
    72 AUS Central Standard Time ACDT 
    73 E. Australia Standard Time AEST 
    74 E. Australia Standard Time AEDT 
    75 AUS Eastern Standard Time AEST 
    76 AUS Eastern Standard Time AEDT 
    77 Tasmania Standard Time AEST 
    78 AUS Eastern Standard Time AEDT 
    79 Tasmania Standard Time AEDT 
    80 New Zealand Standard Time NZST 
    81 New Zealand Standard Time NZDT 
    82 UTC UTC 
    83 Dateline Standard Time BIT 
    84 Mountain Standard Time (Mexico) MSTM 
    85 Mountain Standard Time (Mexico) MDTM 
    86 SA Pacific Standard Time SAPST 
    87 SA Western Standard Time SAWST 
    88 Pacific SA Standard Time PSAST 
    89 Pacific SA Standard Time PSADT 
    90 E. South America Standard Time ESAST 
    91 E. South America Standard Time ESADT 
    92 Greenland Standard Time GNST 
    93 Greenland Standard Time GNDT 
    94 Mid-Atlantic Standard Time MAST 
    95 Mid-Atlantic Standard Time MADT 
    96 Azores Standard Time AZOT 
    97 Azores Standard Time AZOST 
    98 Cape Verde Standard Time CVT 
    99 Israel Standard Time IST 
    100 Israel Standard Time IDT 
    101 Russian Standard Time MSK 
    102 Russian Standard Time MSK 
    103 Arab Standard Time AST 
    104 Arab Standard Time ADT 
    105 Arabic Standard Time ARBST 
    106 Arabic Standard Time ARBDT 
    107 Iran Standard Time IRST 
    108 Iran Standard Time IRDT 
    109 Arabian Standard Time ARBST 
    110 Arabian Standard Time ARBDT 
    111 Azerbaijan Standard Time AZT 
    112 Azerbaijan Standard Time AZST 
    113 Georgian Standard Time GET 
    114 Caucasus Standard Time AMT 
    115 Caucasus Standard Time AMDT 
    116 Afghanistan Standard Time AFT 
    117 Ekaterinburg Standard Time YEKT 
    118 West Asia Standard Time UZT 
    119 Nepal Standard Time NPT 
    120 Central Asia Standard Time BTT 
    121 Bangladesh Standard Time BST 
    122 Bangladesh Standard Time BDT 
    123 N. Central Asia Standard Time NCAST 
    124 N. Central Asia Standard Time NCADT 
    125 Myanmar Standard Time MYST 
    126 SE Asia Standard Time THA 
    127 North Asia Standard Time KRAT 
    128 North Asia Standard Time KRADT 
    129 China Standard Time CST 
    130 Taipei Standard Time TIST 
    131 North Asia East Standard Time IRKT 
    132 North Asia East Standard Time IRKDT 
    133 Korea Standard Time KST 
    134 Tokyo Standard Time JST 
    135 Yakutsk Standard Time YAKT 
    136 Yakutsk Standard Time YAKDT 
    137 Vladivostok Standard Time VLAT 
    138 Vladivostok Standard Time VLADT 
    139 West Pacific Standard Time WPST 
    140 Central Pacific Standard Time SBT 
    141 Fiji Standard Time FJT 
    142 Fiji Standard Time FJST 
    143 Tonga Standard Time PHOT 
    144 Argentina Standard Time ART 
    145 Argentina Standard Time ARDT 
    146 Pacific Standard Time (Mexico) PST 
    147 Pacific Standard Time (Mexico) PDT 
    148 Central Brazilian Standard Time CBST 
    149 Central Brazilian Standard Time CBDT 
    150 Montevideo Standard Time MVST 
    151 Montevideo Standard Time MVDT 
    152 Venezuela Standard Time VST 
    153 Venezuela Standard Time VDT 
    154 Pakistan Standard Time PKT 
    155 Pakistan Standard Time PKDT 
    156 Mauritius Standard Time MUT 
    157 Mauritius Standard Time MUDT 
    158 Paraguay Standard Time PRST 
    159 Paraguay Standard Time PRDT 
    160 Kamchatka Standard Time PETT 
    161 Kamchatka Standard Time PETDT 
    162 Belarus Standard Time BLR 
    163 Belarus Standard Time BLRD
  • required: optional
  • rules
    • IF Partner Admin AND Account Type = Child Customer OR Account Type = 45-Day Trial Customer THEN Time Zone is required
    • IF Time Zone include invalid data THEN validation is shown.
    • IF Time Zone is not integer THEN validation is shown.

Support Information

  • in: body
  • name: supportInfo
  • type: string array
  • descriptionAn associative array containing contact information as phone, email, and website.
  • required: optional
  • rules
    • IF Phone length > 21 characters THEN validation is shown.
    • IF Phone length < 10 characters THEN validation is shown.
    • IF Phone contains   letters OR other symbols except '.' AND '-' THEN validation is shown.
    • IF Email length > 64 characters THEN validation is shown.
    • IF Email does not fit email pattern THEN validation is shown.
    • IF Website does not fit url pattern THEN validation message is shown.
    • IF Website length > 256 characters THEN validation message is shown.

Partner ID

  • in: body
  • name: partnerId
  • type: integer Format - int32.
  • description: Parameter available only for BSI and responsible for specifying Partner Customer that new Child Customer will belong to.
  • required: optional
  • rules
    • IF BSI Admin AND Partner ID = ID that does not exist OR ID does not belong to Partner THEN validation message is shown.
    • IF Partner Admin AND Partner ID is set THEN validation message is shown.

AE

  • in: body
  • name: ae
  • type: integer Format - int32.
  • description: Parameter available only for BSI and responsible for assigning Account Executive from BrainStorm to new customer.

/wiki/spaces/QH/pages/35782791

  • required: required
  • rules
    • IF BSI Admin leave AE empty AND Account Types one from:
      • Customer Account; 
      • BQP Customer; 
      • Demo Account; 
      • Partner Customer;
      • Internal Use;
      • CIE Bootcamp;
      • BSI Trial Customer;
      • SMC Sandbox.

THEN validation is shown.

    • IF BSI Admin AND Partner ID = ID of some partner AND  Account Types one from:
      • 45-Day Trial Customer
      • Child Customer

THEN for new Customer AE is inherited from Partner.

    • IF AE = ID that does not belong to Brainstorm AEs THEN validation is shown.
    • IF AE = ID AND this ID is invalid OR not existing THEN validation is shown.

CSM

  • in: body
  • name: csm
  • type: integer Format - int32.
  • description: Parameter available only for BSI and responsible for assigning Client Success Manager from BrainStorm to new customer.

/wiki/spaces/QH/pages/35782791

  • required: required
  • rules
    • IF BSI Admin leave CSM empty AND Account Types one from:
      • Customer Account; 
      • BQP Customer; 
      • Demo Account; 
      • Partner Customer;
      • Internal Use;
      • CIE Bootcamp;
      • BSI Trial Customer;
      • SMC Sandbox.

    THEN validation is shown.

    • IF BSI Admin AND Partner ID = ID of some partner AND  Account Types one from:
      • 45-Day Trial Customer
      • Child Customer

    THEN for new Customer CSM is inherited from Partner.

    • IF CSM = ID that does not belong to Brainstorm CSMs THEN validation is shown.
    • IF CSM = ID AND this ID is invalid OR not existing THEN validation is shown.

Contract Status

  • in: body
  • name: contractStatus
  • type: integer Format - int32.
  • description: Parameter responsible for Partner Customer contract status. Option for this parameter include: Signed = 1 and Unsigned = 2
  • required: required
  • rules
    • IF BSI Admin AND Account Type = Partner Customer THEN Contract Status is required.
    • IF Contract Status include invalid data OR is not integer THEN validation is shown.
    • IF Contract Status < 1 AND Contract Status > 2 THEN validation is shown.

Get Assets

SummaryCal NameEndpoint URLConsumesProducesIn ParametersResponses

API endpoint provides details of all assets that are available in QuickHelp.

getAssets

/Content/Assets




application/json

[
  {
    "assetId": 0,
    "assetTitle": "string",
    "assetDescription": "string",
    "type": "string",
    "typeId": 0,
    "duration": "string",
    "visibility": "string",
    "dateAdded": "string",
    "lastModified": "string",
    "resources": 0,
    "questions": 0,
    "categoryId": 0,
    "categoryTitle": "string",
    "topicId": 0,
    "topicTitle": "string",
    "publisher": "string",
    "thumbnail": "string",
    "url": "string"
  }
]

Type ID

  • in: located in URL
  • name:  
  • type: nteger Format - int32
  • description: Parameter responsible for filtering Assets by type:
    • Video = 1;
    • HTML = 2;
    • Poll Assessment = 3;
    • PDF = 4;
    • Graded Assessment = 5;
    • Embedded Video = 10.
  • required: optional
  • rules
    • IF Type ID include invalid data THEN validation is shown.
    • IF Type ID is not set THEN assets of all types shall be returned.
    • IF Type ID < 1 OR Type ID > 5 AND ID !=10 THEN validation is shown. (Not implemented)
  1. The possible responses that the service can return.
    • description: A short description of when this response happens.
    • schema: A definition of the response object (see next section for details).
    • (HTTP Status Code): You first specify the HTTP Status Code (e.g. 200).



Topic ID

  • in: located in URL
  • name: topicId
  • type: nteger Format - int64
  • description: Parameter responsible for filtering Assets by Topic.
  • required: optional
  • rules
    • IF Topic ID include invalid data THEN validation is shown.
    • IF Topic ID is not set THEN assets from all topics shall be returned.
    • IF Topic ID = ID that does not belong to any Topic THEN validation is shown. (Not Implemented)

Category ID

  • in: located in URL
  • name: categoryId
  • type: nteger Format - int64
  • description: Parameter responsible for filtering Assets by Category.
  • required: optional
  • rules
    • IF Category ID include invalid data THEN validation is shown.
    • IF Category ID is not set THEN assets from all categories shall be returned.
    • IF Category ID = ID that does not belong to any Topic THEN validation is shown. (Not Implemented)

Publisher

  • in: located in URL
  • name: publisher
  • type: string
  • description: Parameter responsible for filtering Assets by Publisher.
  • required: optional
  • rules
    • IF  (TBD)

Visibility

  • in: located in URL
  • name: 
  • type: 
  • description: Parameter responsible for filtering Assets by Visibility.
  • required: optional
  • rules
    • IF (TBD)

Customer ID

  • in: located in URL
  • name: 
  • type: nteger Format - int32
  • description: Parameter is available for BSI or Partner and responsible for filtering Assets by Customer. 
  • required: optional
  • rules
    • IF Customer ID is not integer THEN validation is shown.
    • IF Customer ID = ID that does not exist THEN validation is shown.
    • IF Customer ID = Template ID THEN validation is shown.
    • IF requester is Partner THEN Customer ID shall be Child Customer ID.

Get Attended Events

SummaryCal NameEndpoint URLConsumesProducesIn ParametersResponses

Get a list of users that have attended events.

getAttendedEvents

/Events/Attended




application/json

[
  {
    "eventId": 0,
    "title": "string",
    "description": "string",
    "sessionDate": "string",
    "duration": "string",
    "userId": 0,
    "firstName": "string",
    "lastName": "string",
    "department": "string",
    "jobTitle": "string",
    "email": "string"
  }
]

From Date

  • in: located in URL
  • name: fromDate
  • type: string Format - date-time (as date-time in RFC3339) 
  • description: Parameter responsible for filtering data by time range start in format "mm/dd/yyyy".
  • required: optional
  • rules
    • IF From Date has not date-time format THEN validation is shown.
    • IF From Date > To Date THEN validation is shown.
  1. The possible responses that the service can return.
    • description: A short description of when this response happens.
    • schema: A definition of the response object (see next section for details).
    • (HTTP Status Code): You first specify the HTTP Status Code (e.g. 200).



To Date

  • in: located in URL
  • name: toDate
  • type: string Format - date-time (as date-time in RFC3339) 
  • description: Parameter responsible for filtering data by time range end in format "mm/dd/yyyy".
  • required: optional
  • rules
    • IF To Date has not date-time format THEN validation is shown.
    • IF To Date < From Date THEN validation is shown.

Customer ID

  • in: located in URL
  • name: customerId
  • type: integer Format - int32.
  • description: Parameter available for BSI or Partner and responsible for filtering attended Events visible for the Customer.
  • required: optional
  • rules
    • IF Customer ID is not integer THEN validation is shown.
    • IF Customer ID = ID that does not exist THEN validation is shown.
    • IF Customer ID = Template ID THEN validation is shown.
    • IF requester is Partner OR BSI THEN Customer ID is required.
    • IF requester is Partner THEN Customer ID = Child Customer ID.

Update Customer Account (Requires account type "Partner" or above)

SummaryCal NameEndpoint URLConsumesProducesIn ParametersResponses

API endpoint to update the details of a customer account.

.

updateCustomerAccount

/Account/Update

application/json

{
  "customerId": 0,
  "companyName": "string",
  "eula": 0,
  "isEulaAccepted": true,
  "accountType": 0,
  "routeURL": "string",
  "domains": [
    "string"
  ],
  "primaryContact": {
    "name": "string",
    "email": "string",
    "phone": "string"
  },
  "expirationDate": "string",
  "licenses": 0,
  "timeZone": 0,
  "supportInfo": {
    "website": "string",
    "email": "string",
    "phone": "string"
  },
  "ae": 0,
  "csm": 0,
  "contractStatus": 0
}

application/json

{
  "customerId": 0,
  "companyName": "string",
  "eula": 0,
  "isEulaAccepted": true,
  "accountType": 0,
  "routeURL": "string",
  "domains": [
    "string"
  ],
  "primaryContact": {
    "name": "string",
    "email": "string",
    "phone": "string"
  },
  "expirationDate": "string",
  "licenses": 0,
  "timeZone": 0,
  "supportInfo": {
    "website": "string",
    "email": "string",
    "phone": "string"
  },
  "ae": 0,
  "csm": 0,
  "contractStatus": 0
}


Company Name

  • in: body
  • name: companyName
  • type: string 
  • description: Parameter responsible for updating name of the company.
  • required: required
  • rules
    • IF Company Name is empty THEN validation is shown.
    • IF Company Name = Already Existing Company Name THEN validation is shown.
    • IF Company Name length > 64 characters THEN validation is shown.
    • Special characters and foreign letters are allowed.
  1. The possible responses that the service can return.
    • description: A short description of when this response happens.
    • schema: A definition of the response object (see next section for details).
    • (HTTP Status Code): You first specify the HTTP Status Code (e.g. 200).



EULA

  • in: body
  • name: eula
  • type: integer  Format - int32.
  • description: Parameter responsible for linking customer with new End-User License Agreement file.
  • required: required
  • rules
    • IF EULA is empty THEN validation is shown.
    • IF EULA = ID that does not exist THEN validation message is shown.
    • IF EULA = NOT integer THEN validation message is shown.
    • IF EULA is inactive THEN it is not possible to link it to new customer.
    • IF EULA was already accepted AND we try to assign new THEN validation is shown ("EULA cannot be updated because EULA is already accepted by a customer. Please reset EULA by entering IsEULAAccepted= FALSE parameter.").
    • IF Partner Admin AND Account Type = 45-Day Trial Customer OR Account Type = Child Customer THEN validation is shown ("Only BSI Administrator can change EULA").
    • IF BSI Admin AND Account Type = 45-Day Trial Customer OR Account Type = Child Customer THEN it is possible to update EULA.

isEULAAccepted

  • in: body
  • name: isEULAAccepted
  • type: boolean
  • description: Parameter responsible for customer End-User License Agreement status (Accepted = True; Not Accepted = False).
  • required: required
  • rules
    • IF EULA was accepted THEN isEULAAccepted = TRUE.
    • IF EULA was not accepted THEN isEULAAccepted = FALSE.
    • IF Partner Admin THEN validation is shown ("Only BSI Administrator can change isEULAAccepted").
    • To change EULA customer has to enter two parameters EULA= EULA ID and IsEULAAccepted = FALSE
    • IF isEULAAccepted = TRUE THEN not possible to set new EULA.
    • IF isEULAAccepted = NOT boolean THEN validation message is shown.
    • IF BSI Admin set isEULAAccepted = TRUE AND Customer Type != Child Customer or Customer Type != 45-Day Trial Customer THEN validation is shown ("Invalid isEulaAccepted.").
    • IF IsEULAAccepted = FALSE AND EULA = ID that is inactive AND Admin try to update any field for customer THEN varning message is shown.

Account Type

  • in: body
  • name: accountType
  • type: integer Format - int32.
  • description: Parameter responsible for updating customer type for customer. Possible values:

    Id  Name   
    1   Customer Account   
    2   BQP Customer   
    3   Demo Account   
    4   Partner Customer   
    5   45-Day Trial Customer  
    6   Internal Use   
    7   Child Customer 
    11  CIE Bootcamp   
    12  BSI Trial Customer 
    13  SMC Sandbox

For more Info Account Type.

  • required: required
  • rules
    • IF Account Type  is empty THEN validation is shown.
    • IF Account Type  = NOT integer THEN validation is shown.
    • IF Account Type < 1 THEN validation is shown.
    • IF Account Type > 7 AND Account Type < 11  THEN validation is shown (Template cannot be created. Invalid input data for Account Type).
    • IF Account Type > 13 THEN validation is shown.
 From Type \ To Type

Error rendering macro 'excerpt-include' : User 'null' does not have permission to view the page 'QH:Account Type'.

Route URL

  • in: body
  • name: routeURL
  • type: string
  • description: Parameter responsible for updating  url for  customer. Example: https://app.quickhelp.com/bsi/
  • required: required
  • rules
    • IF Route URL  is empty THEN validation is shown.
    • IF Route URL  contains space THEN validation is shown.
    • IF Route URL  = Already Existing Route URL THEN validation is shown (Customer with this Route URL already exists).
    • IF Route URL length  > 32 characters THEN validation is shown (Please enter no more than 32 characters.).
    • IF Route URL  = 'api' OR Route URL  = ' breeze' OR Route URL  = 'data' THEN validation is shown (These words are reserved: {words}.).

Domains

  • in: body
  • name: domains
  • type: string array
  • descriptionAn array that may contain multiple domains that new customer is linked to. E.g. ["string", "string1", "string2"].
  • required: required
  • rules
    • IF Domains is empty THEN validation is shown.
    • IF Domains  = Already Existing Domains THEN validation is shown (Customer with <domain_name> domain already exists).
    • IF Domains contains spaces THEN validation is shown.
    • IF Domains length  > 128 characters THEN validation is shown.
    • IF Domains   array contains two OR more same domains THEN validation is shown.
    • IF Domains   array contains special characters THEN validation is shown.
    • IF Updete/delete Domain that already in use by user's emails THEN validation message is shown.
    • IF delete all domains THEN validation is shown
    • IF Domain include dot THEN this is valid domain.

Primary Contact 

  • in: body
  • name: primaryContact
  • type: associative array
  • descriptionAn associative array that contains NameEmail and Phone of contact person from customer.
  • required: required
  • rules
    • IF Name OR Email OR Phone is empty THEN validation is shown Primary Contact  Name.
    • Foreign language characters, special characters are allowed.
    • IF Primary Contact  Name > 256 characters THEN validation is shown.
    • IF Primary Contact  Name include spaces THEN shall be separated to First and Last Name.
    • IF Primary Contact  Email length > 64 characters THEN validation is shown.
    • IF  Primary Contact  Email does not fit email pattern THEN validation is shown.
    • IF Primary Contact  Phone length > 21 characters THEN validation is shown.
    • IF Primary Contact  Phone length < 10 characters THEN validation is shown.
    • IF Primary Contact  Phone contains   letters OR other symbols except '.' AND '-' THEN validation is shown.

Expiration Date

  • in: body
  • name: expirationDate
  • type: string Format - date-time (as date-time in RFC3339) 
  • description: Parameter responsible for update  expiration date for customer. This parameter available only for BSI.
  • required: required
  • rules
    • IF Expiration Date is not set THEN validation is shown.
    • IF Expiration Date has not valid date format THEN validation is shown (Invalid date format (mm/dd/yyyy))
    • IF Expiration Date <= Current Date THEN validation is shown.
    • IF Customer Type = 45-Day Trial Customer AND Partner Admin THEN validation message is shown.
    • IF Customer Type = Child Customer THEN  Expiration Date is prohibited AND warning message is shown.

Licenses

  • in: body
  • name: licenses
  • type: integer  Format - int32.
  • description: Parameter responsible for update number of licenses for customer.
  • required: required
  • rules
    • IF Licenses is not set THEN validation is shown.
    • IF Licenses is NOT integer THEN validation is shown.
    • IF Licenses < 0 OR Licenses > 99999999 THEN validation is shown.

Time Zone

  • in: body
  • name: timeZone
  • type: integer Format - int32.
  • description: Parameter responsible for update Time Zone for customer. 

  • required: optional
  • rules
    • IF Time Zone is not set THEN validation is shown.
    • IF Time Zone include invalid data THEN validation is shown.
    • IF Time Zone is not integer THEN validation is shown.

Support Information

  • in: body
  • name: supportInfo
  • type: string array
  • descriptionAn associative array responsible for update contact information as phone, email, and website.
  • required: optional
  • rules
    • IF Phone length > 21 characters THEN validation is shown.
    • IF Phone length < 10 characters THEN validation is shown.
    • IF Phone contains   letters OR other symbols except '.' AND '-' THEN validation is shown.
    • IF Email length > 64 characters THEN validation is shown.
    • IF Email does not fit email pattern THEN validation is shown.
    • IF Website does not fit url pattern THEN validation message is shown.
    • IF Website length > 256 characters THEN validation message is shown.

AE

  • in: body
  • name: ae
  • type: integer Format - int32.
  • description: Parameter available only for BSI and responsible for assigning Account Executive from BrainStorm to customer.

Adding Roles Tab

  • required: required
  • rules
    • IF BSI Admin leave AE empty AND Account Types one from:
      • Customer Account; 
      • BQP Customer; 
      • Demo Account; 
      • Partner Customer;
      • Internal Use;
      • CIE Bootcamp;
      • BSI Trial Customer;
      • SMC Sandbox.

THEN validation is shown.

    • IF BSI Admin AND  Account Types one from:
      • 45-Day Trial Customer
      • Child Customer

THEN for Customer AE is inherited from Partner AND it is not possible to update.

    • IF AE = ID that does not belong to Brainstorm AEs THEN validation is shown.
    • IF AE = ID AND this ID is invalid OR not existing THEN validation is shown.
    • Partner is not able to assign AE.

CSM

  • in: body
  • name: csm
  • type: integer Format - int32.
  • description: Parameter available only for BSI and responsible for assigning Client Success Manager from BrainStorm to customer.

Adding Roles Tab

  • required: required
  • rules
    • IF BSI Admin leave CSM empty AND Account Types one from:
          • Customer Account; 
          • BQP Customer; 
          • Demo Account; 
          • Partner Customer;
          • Internal Use;
          • CIE Bootcamp;
          • BSI Trial Customer;
          • SMC Sandbox.

THEN validation is shown.

    • IF BSI Admin AND Partner ID = ID of some partner AND  Account Types one from:
      • 45-Day Trial Customer
      • Child Customer

THEN for new Customer CSM is inherited from Partner AND it is not possible to update.

    •  IF CSM = ID that does not belong to Brainstorm CSMs THEN validation is shown.
    • IF CSM = ID AND this ID is invalid OR not existing THEN validation is shown.
    • Partner is not able to assign CSM.

Contract Status

  • in: body
  • name: contractStatus
  • type: integer Format - int32.
  • description: Parameter responsible for Partner Customer contract status. Option for this parameter include: Signed = 1 and Unsigned = 2
  • required: required
  • rules
    • IF BSI Admin AND Account Type = Partner Customer THEN Contract Status is required.
    • IF Contract Status include invalid data OR is not integer THEN validation is shown.
    • IF Contract Status < 1 AND Contract Status > 2 THEN validation is shown.

Get Customer Details (Requires account type "Partner" or above)

SummaryCal NameEndpoint URLConsumesProducesIn ParametersResponses

API endpoint provides details of all child customers under a partner account.

getAllCustomerDetails

/Account/Details




application/json

[
  {
    "customerId": 0,
    "customerName": "string",
    "expirationDate": "string",
    "licenseCount": 0,
    "accountTypeId": 0,
    "accountType": "string",
    "subscriptionStatus": 1,
    "templateName": "string",
    "primaryContact": {
      "name": "string",
      "email": "string",
      "phone": "string"
    },
    "domains": [
      "string"
    ],
    "isActive": true
  }
]

Customer ID

  • in: located in URL
  • name: customerId
  • type: integer Format - int32
  • description: Parameter responsible for filtering customer's details by Customer ID.
  • required: optional
  • rules
    • IF BSI Admin AND Customer ID is not set THEN details for all customers shall be returned.
    • IF Partner Admin AND Customer ID is not set THEN details for all child customers shall be returned.
    • IF Customer ID is not integer THEN validation is shown.
    • IF Customer ID = ID that does not exist THEN validation is shown.
    • IF Customer ID = Template ID THEN validation is shown.
    • IF requester is Partner THEN Customer ID shall be Child Customer ID.
  1. The possible responses that the service can return.
    • description: A short description of when this response happens.
    • schema: A definition of the response object (see next section for details).
    • (HTTP Status Code): You first specify the HTTP Status Code (e.g. 200).



Update User Account

SummaryCal NameEndpoint URLConsumesProducesIn ParametersResponses

API endpoint to update the details of a user account.











updateUserAccount











/User/Update











application/json

{
  "userId": 0,
  "firstName": "string",
  "lastName": "string",
  "email": "string",
  "department": "string",
  "jobTitle": "string",
  "customerId": 0,
  "licensed": true,
  "confirmed": true,
  "bypassSso": true,
  "roles": [
    "00000000-0000-0000-
0000-000000000000"
  ]
}











application/json

{
  "userId": 0,
  "firstName": "string",
  "lastName": "string",
  "email": "string",
  "department": "string",
  "jobTitle": "string",
  "customerId": 0,
  "licensed": true,
  "confirmed": true,
  "bypassSso": true,
  "roles": [
    "00000000-0000-0000-
0000-000000000000"
  ]
}











General rule: IF Parameter is not set THEN do not update parameter for the user.
  1. The possible responses that the service can return.
    • description: A short description of when this response happens.
    • schema: A definition of the response object (see next section for details).
    • (HTTP Status Code): You first specify the HTTP Status Code (e.g. 200).













User ID

  • in: body
  • name: userId
  • type: integer Format - int32
  • description: Parameter responsible for identifying user by ID.
  • required: required
  • rules
    • IF User ID is not integer THEN validation is shown.
    • IF User ID = ID that does not exist THEN validation is shown.
    • IF User ID is not set THEN validation is shown.

First Name

  • in: body
  • name: firstName
  • type: string
  • description: Parameter responsible for updating First Name for the user.
  • required: optional
  • rules
    • IF First Name > 256 characters THEN validation is shown.
    • IF First Name contain  =+:;",<>OR only one letter THEN validation is shown.
    • Is allowed to add foreign characters.

Last Name

  • in: body
  • name: lastName
  • type: string
  • description: Parameter responsible for updating Last Name for the user.
  • required: optional
  • rules
    • IF Last Name > 256 characters THEN validation is shown.
    • IF Last Name contain  =+:;",<>OR only one letter THEN validation is shown.
    • Is allowed to add foreign characters.

Email

  • in: body
  • name: email
  • type: string
  • description: Parameter responsible for updating Email for the user.
  • required: optional
  • rules
    • IF  Email length > 256 characters THEN validation is shown.
    • IF  Email does not fit email pattern THEN validation is shown.
    • IF Email include domain that does not belong to current customer  THEN validation is shown.
    • IF EMAIL = Already exiting Email THEN validation is shown.

Departments

  • in: body
  • name: department
  • type: string
  • description: Parameter responsible for updating Department for the user.
  • required: optional
  • rules
    • IF  Department length > 256 characters THEN validation is shown.
    • Is allowed to add all special characters.
    • Is allowed to add foreign characters.

Job Title

  • in: body
  • name: jobTitle
  • type: string
  • description: Parameter responsible for updating Job Title for the user.
  • required: optional
  • rules
    • IF Job Title  length > 256 characters THEN validation is shown.
    • Is allowed to add all special characters.
    • Is allowed to add foreign characters.

Issue License

  • in: body
  • name: licensed
  • type: boolean
  • description: Parameter responsible for issuing or removing license of user.
  • required: optional
  • rules
    • IF Issue License is not boolean THEN validation is shown.

Confirmed

  • in: body
  • name: confirmed
  • type: boolean
  • description: Parameter responsible for confirmation of user.
  • required: optional
  • rules
    • IF Confirmed is not boolean THEN validation is shown.

Bypass SSO

  • in: body
  • name: bypassSso
  • type: boolean
  • description: Parameter determines whether user SSO should be bypassed.
  • required: optional
  • rules
    • IF bypassSso is not boolean THEN validation is shown.

Roles

  • in: body
  • name: roles
  • type: 
  • description:Parameter responsible for updating roles assigned to user.
  • required: optional
  • rules
    • Сannot add simultaneously BrainStorm and non-BrainStorm roles: "Either only BrainStorm or non BrainStorm roles can be added for a user"
    • Some roles cannot be added to the specific customer account type: e.g. Partner Administrator role cannot be added to customer of Customer account type: "Entered roles cannot be added to a user of current customer."

    • IF Role guid is not existing THEN validation message is shown ("Role does not exist").

    • IF Role guid has invalid value THEN validation message is shown.
    • Partner is allowed to add only partner and customer's roles to partner user.
    • Partner is allowed to add customer's roles to child customer user.
    • Customer is allowed to add only customer's role.

Customer ID

  • in: body
  • name: customerID
  • type:integer
  • description: Parameter available for BSI or Partner and responsible for specifying customer by ID.
  • required: optional
  • rules
    • IF Customer ID is not integer THEN validation is shown.
    • IF Customer ID = ID that does not exist THEN validation is shown.
    • IF Customer ID = Template ID THEN validation is shown.
    • IF requester is Partner THEN Customer ID shall be Child Customer ID.

Get User History

SummaryCal NameEndpoint URLConsumesProducesIn ParametersResponses

API endpoint provides the QuickHelp activity history for your users.

getUserHistory

/User/History

application/json

[
  {
    "userId": 0,
    "firstName": "string",
    "lastName": "string",
    "department": "string",
    "jobTitle": "string",
    "email": "string",
    "country": "string",
    "ssoClaim": "string",
    "status": "string",
    "topicId": 0,
    "topicTitle": "string",
    "categoryId": 0,
    "categoryTitle": "string",
    "id": 0,
    "type": "string",
    "title": "string",
    "description": "string",
    "duration": "string",
    "dateCompleted": "string",
    "url": "string"
  }
]

User ID

  • in: located in URL
  • name: userId
  • type: integer Format - int32
  • description: Parameter responsible for filtering data per specific user.
  • required: optional
  • rules
    • IF User ID is not integer THEN validation is shown.
    • IF User ID = ID that does not exist THEN validation is shown.
    • IF User ID is not set THEN history for all users will be shown.
    • IF User ID does not belong to Customer = Customer ID THEN validation is shown.
  1. The possible responses that the service can return.
    • description: A short description of when this response happens.
    • schema: A definition of the response object (see next section for details).
    • (HTTP Status Code): You first specify the HTTP Status Code (e.g. 200).



Email

  • in: located in URL
  • name: email
  • type: string
  • description: Parameter responsible for filtering data per specific email.
  • required: optional
  • rules

Department

  • in: located in URL
  • name: department
  • type: string
  • description: Parameter responsible for filtering data per specific department.
  • required: optional
  • rules

Job Title

  • in: located in URL
  • name: jobTitle
  • type: string
  • description: Parameter responsible for filtering data per specific job title.
  • required: optional
  • rules

Group

  • in: located in URL
  • name: group
  • type: string
  • description: Parameter responsible for filtering data per specific group.
  • required: optional
  • rules

Role

  • in: located in URL
  • name: role
  • type: string
  • description:  Parameter responsible for filtering data per specific user role.
  • required: optional
  • rules

SSO Attribute

  • in: located in URL
  • name: ssoAttribute
  • type: string
  • description: Parameter responsible for filtering data per specific SSO Attribute.
  • required: optional
  • rules
    • Parameters should be in the following format [{"Attribute Name":"Attribute Value"}]. For example [{"SsoPlatform":"Mac"}]

From Date

  • in: located in URL
  • name: fromDate
  • type: string Format - date-time (as date-time in RFC3339) 
  • description: Parameter responsible for filtering data by time range start in format "mm/dd/yyyy".
  • required: optional
  • rules
    • IF From Date has not date-time format THEN validation is shown.
    • IF From Date > To Date THEN validation is shown.

To Date

  • in: located in URL
  • name: toDate
  • type: string Format - date-time (as date-time in RFC3339) 
  • description: Parameter responsible for filtering data by time range end in format "mm/dd/yyyy".
  • required: optional
  • rules
    • IF To Date has not date-time format THEN validation is shown.
    • IF To Date < From Date THEN validation is shown.

Country

  • in: located in URL
  • name: country
  • type: string
  • description: Parameter responsible for filtering data per specific country.
  • required: optional
  • rules

Customer ID

  • in: located in URL
  • name: customerId
  • type: integer Format - int32.
  • description: Parameter available for BSI or Partner and responsible for filtering data per specific customer.
  • required: optional
  • rules
    • IF Customer ID is not integer THEN validation is shown.
    • IF Customer ID = ID that does not exist THEN validation is shown.
    • IF Customer ID = Template ID THEN validation is shown.
    • IF requester is Partner OR BSI THEN Customer ID is required.
    • IF requester is Partner THEN Customer ID = Child Customer ID.

Create User Account

SummaryCal NameEndpoint URLConsumesProducesIn ParametersResponses

The API endpoint can be used to create multiple  users accounts at once.

createUserAccount

/User/Create

application/json

[
  {
    "firstName": "string",
    "lastName": "string",
    "password": "string",
    "email": "string",
    "department": "string",
    "jobTitle": "string",
    "groups": [
      0
    ],
    "roles": [
      "00000000-0000-0000-0000-000000000000"
    ],
    "customerId": 0,
    "issueLicense": true,
    "supressPostCreationEmails": true
  }
]

application/json

 

First Name

  • in: body
  • name: firstName
  • type: string
  • description: Parameter responsible for setting First Name for the user.
  • required: required
  • rules
    • IF First Name > 256 characters THEN validation is shown.
    • IF First Name contain  =+:;",<>OR only one letter THEN validation is shown.
    • Is allowed to add foreign characters.

Accepted

  • description: Accepts user creation request and return CorrelationId and Location where the status can be checked. The generated jobId can be used in getUserCreationJobStatus, getUserCreationTasksStatus endpoints for the further information about user creation status
  • schema: 
    • {
        "format": "uuid",
        "type": "string",
        "example": "00000000-0000-0000-0000-000000000000"
      }
  • (HTTP Status Code): 202 Accepted


Last Name

  • in: body
  • name: lastName
  • type: string
  • description: Parameter responsible for setting Last Name for the user.
  • required: required
  • rules
    • IF Last Name > 256 characters THEN validation is shown.
    • IF Last Name contain  =+:;",<>OR only one letter THEN validation is shown.
    • Is allowed to add foreign characters.

Email

  • in: body
  • name: email
  • type: string
  • description: Parameter responsible for setting Email for the user.
  • required: required
  • rules
    • IF  Email length > 256 characters THEN validation is shown.
    • IF  Email does not fit email pattern THEN validation is shown.
    • IF Email include domain that does not belong to current customer  THEN validation is shown.
    • IF EMAIL = Already exiting Email THEN validation is shown.

Bad Request

  • description: Some validation appeared
  • schema: 
    • {
        "type": "object",
        "additionalProperties": {
          "type": "object",
          "properties": {
            "value": {
              "type": "object",
              "properties": {
                "attemptedValue": {
                  "type": "string",
                  "readOnly": true
                },
                "culture": {
                  "type": "string",
                  "readOnly": true
                },
                "rawValue": {
                  "type": "object",
                  "readOnly": true
                }
              }
            },
            "errors": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "exception": {
                    "type": "object",
                    "readOnly": true
                  },
                  "errorMessage": {
                    "type": "string",
                    "readOnly": true
                  }
                }
              },
              "readOnly": true
            }
          }
        }
      }
  • (HTTP Status Code): 400 Bad Request

Departments

  • in: body
  • name: department
  • type: string
  • description: Parameter responsible for setting Department for the user.
  • required: optional
  • rules
    • IF  Department length > 256 characters THEN validation is shown.
    • Is allowed to add all special characters.
    • Is allowed to add foreign characters.







Job Title

  • in: body
  • name: jobTitle
  • type: string
  • description: Parameter responsible for setting Job Title for the user.
  • required: optional
  • rules
    • IF Job Title  length > 256 characters THEN validation is shown.
    • Is allowed to add all special characters.
    • Is allowed to add foreign characters.

Issue License

  • in: body
  • name: licensed
  • type: boolean
  • description: Parameter responsible for issuing or removing license of user (If not specified licensed = TRUE).
  • required: optional
  • rules
    • IF Issue License is not boolean THEN validation is shown.

Password

  • in: body
  • name: password
  • type: string
  • description: Parameter responsible for setting Password for the user.
  • required: optional
  • rules
    • IF Password include next symbols +,/;’`?:”|<>[]{}()'  THEN validation is shown.
    • IF Password is empty OR include only spaces THEN validation is shown.
    • IF Password length < 6 THEN validation is shown.
    • IF Password length > 32 THEN validation is shown.

SupressPostCreationEmails 

  • in: body
  • name: supressPostCreationEmails
  • type: boolean
  • description: Parameter determines whether to send emails to user.
  • required: optional
  • rules
    • IF SupressPostCreationEmails is not boolean THEN validation is shown.

Roles

  • in: body
  • name: roles
  • type: array
  • description: Parameter responsible for assigning  roles  to user.
  • required: optional
  • rules
    • Сannot add simultaneously BrainStorm and non-BrainStorm roles: "Either only BrainStorm or non BrainStorm roles can be added for a user"
    • Some roles cannot be added to the specific customer account type: e.g. Partner Administrator role cannot be added to customer of Customer account type: "Entered roles cannot be added to a user of current customer."

    • IF Role guid is not existing THEN validation message is shown ("Role does not exist").

    • IF Role guid has invalid value THEN validation message is shown.
    • Partner is allowed to add only partner and customer's roles to partner user.
    • Partner is allowed to add customer's roles to child customer user.
    • Customer is allowed to add only customer's role.
    • IF same Role guid is added several times THEN validation message is shown

Groups

  • in: body
  • name: groups
  • type: array
  • description: Parameter responsible for user to system groups.
  • required: optional
  • rules
    • IF Group ID is not existing THEN validation message is shown.
    • IF same Group ID is added several times THEN validation message is shown.
    • IF Group ID belong to Users Group ID THEN validation message is shown.


Customer ID

  • in: located in URL
  • name: customerId
  • type: integer Format - int32.
  • description: Parameter available for BSI or Partner and responsible for filtering data per specific customer.
  • required: optional
  • rules
    • IF Customer ID is not integer THEN validation is shown.
    • IF Customer ID = ID that does not exist THEN validation is shown.
    • IF Customer ID = Template ID THEN validation is shown.
    • IF requester is Partner OR BSI THEN Customer ID is required.
    • IF requester is Partner THEN Customer ID = Child Customer ID.


List Skill Paths

SummaryCal NameEndpoint URLConsumesProducesIn ParametersResponses

API endpoint provides a list of all skill paths in QuickHelp.

listSkillPaths

/SkillPaths/List

application/json

[
  {
    "id": 0,
    "thumbnail": "string",
    "title": "string",
    "description": "string",
    "coursesCount": 0,
    "assetsCount": 0,
    "url": "string"
  }
]

Customer ID

  • in: located in URL
  • name: customerId
  • type: integer Format - int32.
  • description: Parameter available for BSI or Partner and responsible for filtering data per specific customer.
  • required: optional
  • rules
    • IF Customer ID is not integer THEN validation is shown.
    • IF Customer ID = ID that does not exist THEN validation is shown.
    • IF Customer ID = Template ID THEN validation is shown.
    • IF requester is Partner OR BSI THEN Customer ID is required.
    • IF requester is Partner THEN Customer ID = Child Customer ID.
  1. The possible responses that the service can return.
    • description: A short description of when this response happens.
    • schema: A definition of the response object (see next section for details).
    • (HTTP Status Code): You first specify the HTTP Status Code (e.g. 200).



Reset User Pasword

SummaryOperation NameEndpoint URLConsumesProducesIn ParametersResponses
Provides admins with ability  to reset password for a given user within his own or child accountsresetUserPassword/User/ResetPassword

application/json

{
  "customerId": 0,
  "id": 0,
  "email": "string",
  "password": "string"
}
  • No Content if operation succeded
  • Error Message if Bad Request

application/json

{
  "message": "The request is invalid.",
  "modelState": {
    "propertyName": ["description"]
  }
}

Customer ID

  • in: body
  • name: customerId
  • type: integer Format - int32
  • description: Parameter available for BSI or Partner and responsible for specifying customer by ID.
  • required: optional
  • rules
    • IF Customer ID is not integer THEN validation is shown.
    • IF Customer ID = ID that does not exist THEN validation is shown.
    • IF Customer ID = Template ID THEN validation is shown.
    • IF requester is Partner OR BSI THEN Customer ID is required.
    • IF requester is Partner THEN Customer ID = Child Customer ID.

Id

  • in: body
  • name: id
  • type: int32
  • description: Unique identifier of a user.
  • required: required if Email was not provided in request

Email

  • in: body
  • name: email
  • type: string
  • description: email of a user that needs her password to be reset
  • required: required if Id was not provided in request
  • rules
    • IF Email is invalid OR does not exist THEN validation is shown.
    • IF Email does not belong to Customer = Customer ID THEN validation is shown.

Password

  • in: body
  • name: password
  • type: string
  • description: Parameter responsible for setting Password for the user.
  • required: optional


  • 204 No Content
  • 400 Bad Request

Delete User

SummaryCal NameEndpoint URLConsumesProducesIn ParametersResponses

The endpoint can be used to send requests to delete user information as is pursuant to GDPR requirements.

deleteUser

/User/Delete

application/json

{
  "customerId": 0,
  "users": [
    {
      "id": 0,
      "email": "string"
    }
  ]
}

application/json

[
  {
    "id": 0,
    "email": "string"
  }
]

Customer ID

  • in: body
  • name: customerId
  • type: integer Format - int32
  • description: Parameter available for BSI or Partner and responsible for specifying customer by ID.
  • required: optional
  • rules
    • IF Customer ID is not integer THEN validation is shown.
    • IF Customer ID = ID that does not exist THEN validation is shown.
    • IF Customer ID = Template ID THEN validation is shown.
    • IF requester is Partner OR BSI THEN Customer ID is required.
    • IF requester is Partner THEN Customer ID = Child Customer ID.
  1. The possible responses that the service can return.
    • description: A short description of when this response happens.
    • schema: A definition of the response object (see next section for details).
    • (HTTP Status Code): You first specify the HTTP Status Code (e.g. 200).




Users

  • in: body
  • name: users
  • type: array
  • description: Parameter responsible for providing the list of users that will be deleted.
  • required: optional
  • rules:
    • Usersr endpoint accepts only either userId or email.

User ID

  • in: body
  • name: userId
  • type: integer Format - int32
  • description: Parameter responsible for ID of a user being deleted.
  • required: optional
  • rules
    • IF User ID is not integer THEN validation is shown.
    • IF User ID = ID that does not exist THEN validation is shown.
    • IF User ID does not belong to Customer = Customer ID THEN validation is shown.
    • IF User ID = User has Event Owner OR Group Owner role THEN validation is shown.

Email

  • in: body
  • name: email
  • type: string
  • description: Parameter responsible for Email of a user being deleted.
  • required: required
  • rules
    • IF Email is invalid OR does not exist THEN validation is shown.
    • IF Email does not belong to Customer = Customer ID THEN validation is shown.
    • IF Email = User has Event Owner OR Group Owner role THEN validation is shown.

List Topics

SummaryCal NameEndpoint URLConsumesProducesIn ParametersResponses

API endpoint provides a list of all skill paths in QuickHelp.

listTopics

/Content/Topics

application/json

[
  {
    "id": 0,
    "title": "string",
    "categoriesCount": 0,
    "assetsCount": 0,
    "publisher": "string"
  }
]

Customer ID

  • in: located in URL
  • name: customerId
  • type: integer Format - int32.
  • description: Parameter available for BSI or Partner and responsible for filtering data per specific customer.
  • required: optional
  • rules
    • IF Customer ID is not integer THEN validation is shown.
    • IF Customer ID = ID that does not exist THEN validation is shown.
    • IF Customer ID = Template ID THEN validation is shown.
    • IF requester is Partner OR BSI THEN Customer ID is required.
    • IF requester is Partner THEN Customer ID = Child Customer ID.
  1. The possible responses that the service can return.
    • description: A short description of when this response happens.
    • schema: A definition of the response object (see next section for details).
    • (HTTP Status Code): You first specify the HTTP Status Code (e.g. 200).



User Creation Job Status 

SummaryCal NameEndpoint URLConsumesProducesIn ParametersResponses

API endpoint to get the status of user creation job.

getUserCreationJobStatus

/User/UserCreationJobStatus

application/json

[
  {
  "jobId": "00000000-0000-0000-0000-000000000000",
  "startDate": "string",
  "status": 0,
  "totalUsers": 0,
  "processed": 0,
  "created": 0,
  "failed": 0,
  "errorId": "00000000-0000-0000-0000-000000000000"
  } 
]

where


  • jobId - value from createUserAccount response;
  • startDate - date job was started on;
  • status - job status.
    One of: Pending, Started, Failed, Completed, PartiallyCompleted. Last 3 is final statuses;
  • totalUsers - count of user requested to be created;
  • processed - count currently processed users;
  • created -  count currently created users;
  • failed - count currently failed users;
  • errorId - id of total fail error, if any occurred 

jobId

  • in: located in URL
  • name: jobId
  • type: string Format - uuid.
  • description: Parameter responsible for CorrelationId of user creation job.
  • required: required
  • rules
    • IF valid jobId is provided but endpoint is called not by customer that had called createUserAccount endpoint THEN empty response will be returned
    • IF jobId data type is not guid THEN validation is shown
  1. The possible responses that the service can return.
    • description: A short description of when this response happens.
    • schema: A definition of the response object (see next section for details).
    • (HTTP Status Code): You first specify the HTTP Status Code (e.g. 200).


User Creation Task Status 

SummaryCal NameEndpoint URLConsumesProducesIn ParametersResponses

API endpoint to get user creation tasks details per each user.

getUserCreationTasksStatus

/User/UserCreationTasksStatus

application/json

[
  {
    "jobId": "00000000-0000-0000-0000-000000000000",
    "email": "string",
    "successful": true,
    "userId": 0,
    "errors": {}
  } 
]

where

  • jobId - value from createUserAccount response;
  • email - email of user to be created
  • successful - true, if user was created
  • userId - id of user, if it was created, otherwise - false
  • errors - JSON collection that contain reason why user was not created;

jobId

  • in: located in URL
  • name: jobId
  • type: string Format - uuid.
  • description: Parameter responsible for CorrelationId of user creation job.
  • required: required
  • rules
    • IF valid jobId is provided but endpoint is called not by customer that had called createUserAccount endpoint THEN empty response will be returned
    • IF jobId data type is not guid THEN validation is shown
  1. The possible responses that the service can return.
    • description: A short description of when this response happens.
    • schema: A definition of the response object (see next section for details).
    • (HTTP Status Code): You first specify the HTTP Status Code (e.g. 200).



User Assignments

SummaryCal NameEndpoint URLConsumesProducesIn ParametersResponses
API endpoint provides a list of all user assignments in QuickHelp.getUserAssignments

User/Assignments

application/json

[
  {
    "userId": 0,
    "firstName": "string",
    "lastName": "string",
    "department": "string",
    "jobTitle": "string",
    "email": "string",
    "country": "string",
    "ssoClaim": "string",
    "dateStarted": "string",
    "dateCompleted": "string",
    "dueDate": "string",
    "type": "string",
    "title": "string",
    "url": "string"
  }
]

Customer ID

  • in: located in URL
  • name: customerId
  • type: integer Format - int32.
  • description: Parameter available for BSI or Partner and responsible for filtering data per specific customer.
  • required: optional
  • rules
    • IF Customer ID is not integer THEN validation is shown.
    • IF Customer ID = ID that does not exist THEN validation is shown.
    • IF Customer ID = Template ID THEN validation is shown.
    • IF requester is Partner OR BSI THEN Customer ID is required.
    • IF requester is Partner THEN Customer ID = Child Customer ID.
  1. The possible responses that the service can return.
    • description: A short description of when this response happens.
    • schema: A definition of the response object (see next section for details).
    • (HTTP Status Code): You first specify the HTTP Status Code (e.g. 200).








User ID

  • in: located in URL
  • name: userId
  • type: integer Format - int32
  • description: Parameter responsible for filtering data per specific user.
  • required: optional
  • rules
    • IF User ID is not integer THEN validation is shown.
    • IF User ID = ID that does not exist THEN validation is shown.
    • IF User ID is not set THEN history for all users will be shown.
    • IF User ID does not belong to Customer = Customer ID THEN validation is shown.

Email

  • in: located in URL
  • name: email
  • type: string
  • description: Parameter responsible for filtering data per specific email.
  • required: optional
  • rules

SSO Claim

  • in: located in URL
  • name: ssoClaim
  • type: string
  • description: Parameter responsible for filtering data per specific SSO Claim.
  • required: optional
  • rules
    • Parameters should be in the following format [{"Attribute Name":"Attribute Value"}]. For example [{"SsoPlatform":"Mac"}]

From Date

  • in: located in URL
  • name: fromDate
  • type: string Format - date-time (as date-time in RFC3339) 
  • description: Parameter responsible for filtering data by time range start in format "mm/dd/yyyy".
  • required: optional
  • rules
    • IF From Date has not date-time format THEN validation is shown.
    • IF fromDate is entered THEN assignments are filtered by dueDate that belons to the date:  dueDate >= fromtDate.
    • IF From Date > To Date THEN validation is shown.

To Date

  • in: located in URL
  • name: toDate
  • type: string Format - date-time (as date-time in RFC3339) 
  • description: Parameter responsible for filtering data by time range end in format "mm/dd/yyyy".
  • required: optional
  • rules
    • IF To Date has not date-time format THEN validation is shown.
    • IF To Date < From Date THEN validation is shown.
    • IF To Date is entered THEN assignments are filtered by dueDate that belongs to date: dueDate <= toDate.


Search results

SummaryCal NameEndpoint URLConsumesProducesIn ParametersResponses

API endpoint provides search results by provided query.

getSearchResults

/Search/Results

application/json

[
  {
    "id": 0,
    "thumbnail": "string",
    "title": "string",
    "description": "string",
    "typeId": 0,
    "type": "string",
    "duration": "string",
    "url": "string"
  }
]

User ID

  • in: located in URL
  • name: userId
  • type: integer Format - int32
  • description: Parameter responsible for filtering data per specific user.
  • required: optional
  • rules
    • IF User ID is not integer THEN validation is shown.
    • IF User ID = ID that does not exist THEN validation is shown.
    • IF User ID is not set THEN history for all users will be shown.
    • IF User ID does not belong to Customer = Customer ID THEN validation is shown.
  1. The possible responses that the service can return.
    • description: A short description of when this response happens.
    • schema: A definition of the response object (see next section for details).
    • (HTTP Status Code): You first specify the HTTP Status Code (e.g. 200).



Query

  • in: located in URL
  • name: query
  • type: string
  • description: Parameter responsible for searching query.
  • required: required
  • rules
    • IF Query is not set THEN validation is shown.

Limit

  • in: located in URL
  • name: limit
  • type: integer, Format - int32
  • description: Parameter responsible for number of returned results.
  • required: optional
  • rules
    • Should be in range [1-100], othwerwise following validation errors will appear:
      -  if limit <1: "'Limit' must be greater than or equal to '1'."
      -  if limit >100: "Limit should be in range [1-100]."
    • IF data in invalid format was entered THEN validation is shown.

TypeId

  • in: located in URL
  • name: typeId
  • type: integer, Format - int32
  • description: Parameter responsible for searching by type. Possible values: 1 (Events), 2 (Group), 3 (Video), 4 (HTML), 5 (PDF), 6 (Assessment), 7 (Skill path).
  • required: optional
  • rules
    • IF value that is not in range [1-7] was entered THEN validation is shown.
    • IF data in invalid format was entered THEN validation is shown.