# Perform a Step in a Guided Help Search ## Overview The Perform a Step in a Guided Help Search API can be used to answer one or more questions (perform a step) in Guided Help search. ## Prerequisites * A Guided Help session must be in progress before this API is invoked. Endpoint: PUT /portals/{portalID}/gh/search Security: oAuthUser, oAuthOnBehalfOfUser, oAuthCustomer, oAuthOnBehalfOfCustomer, oAuthAnonymousCustomer ## Header parameters: - `x-egain-activity-id` (string) A unique numeric interaction identifier from eGain. Example: "59237" - `x-ext-integration-id` (string) The unique numeric identifier for a tenant, used in self-service functionality as well as third-party integrations.Note: The x-ext-integration-id and x-ext-interaction-id headers must always be provided together and cannot be supplied independently.The x-egain-activity-id may be provided on its own, or it may be provided along with both x-ext-integration-id and x-ext-interaction-id. - `x-ext-interaction-id` (string) A unique interaction identifier from other CRM applications.Note: The x-ext-integration-id and x-ext-interaction-id headers must always be provided together and cannot be supplied independently.The x-egain-activity-id may be provided on its own, or it may be provided along with both x-ext-integration-id and x-ext-interaction-id. - `Content-Type` (string, required) The media type sent by the client. Enum: "application/json" - `Accept-Language` (string, required) The Language locale accepted by the client (used for locale specific fields in resource representation and in error responses). Enum: "en-US", "es-ES", "fr-FR", "it-IT", "de-DE", "nl-NL", "pt-BR", "pt-PT", "da-DK", "ru-RU", "fr-CA", "zh-CN", "ja-JP", "ko-KR", "sv-SE" ## Path parameters: - `portalID` (string, required) The ID of the portal being accessed.A portal ID is composed of a 2-4 letter prefix, followed by a dash and 4-15 digits. Example: "PROD-1000" ## Query parameters: - `$lang` (string) The language that describes the details of a resource. Resources available in different languages may differ from each other.If lang is not passed, then the portal's default language is used. Enum: "en-US", "fr-FR", "en-GB", "es-ES", "it-IT", "nl-NL", "da-DA", "sv-SE", "pt-PT", "fi-FI", "no-NB", "no-NN", "ja-JA", "de-DE", "pt-BR", "zh-CN", "zh-TW", "ko-KO", "ru-RU", "el-EL", "tr-TR", "pl-PL", "cs-CS", "sk-SK", "hu-HU", "sr-SR", "ar-SA", "hr-HR", "ro-RO", "th-TH", "de-AT", "vi-VN", "id-ID", "ms-MY", "fil-PH", "fr-CA", "hi-IN", "uk-UA", "bg-BG", "sl-SI", "xx-XX" - `ghCustomAdditionalAttributes` (string) Custom attributes to be fetched. Possible values are: - question.custom.\ where \ is the internal name of custom attribute of question. 'question' is used as a prefix to distinguish question's custom attribute from other objects custom attributes. ## Request fields (application/json): - `casebaseId` (string, required) The numerical ID of the Casebase. Example: "409601000000001" - `questions` (array, required) Pre-answered Questions in Guided Help search - `questions.id` (string, required) ID of question Example: "1000003852" - `questions.answers` (array) Answers of question - `questions.answers.id` (string) ID of answer Example: "1000000004" - `questions.answers.value` (string) Value of answer - `profileId` (string) The ID of the guided help profile. 1 will always be the system profile. - `sessionVariable` (array) Session variables used to give Guided Help additional context. - `sessionVariable.name` (string) - `sessionVariable.value` (string) - `startOver` (boolean) Restart the current Guided Help search with the existing context along with session variable context. - `useLiveRelease` (boolean) Use current live release snapshot of the Casebase otherwise use the authoring release. - `ghsArticleId` (string) Numeric ID of the guided help session article used for starting search. Example: "100000000001035" ## Response 200 fields (application/json): - `casebase` (object) - `casebase.casebaseId` (string) The numerical ID of the Casebase. Example: "409601000000001" - `casebase.name` (string) name of the Casebase Release. - `casebase.id` (string) The numerical ID of the Casebase Release. - `casebase.status` (string) status of the Casebase Enum: "author", "live", "qa" - `casebase.profiles` (array) All Guided Help Profiles associated with Casebase release - `casebase.profiles.profile` (array) profiles - `casebase.profiles.profile.id` (string, required) The ID of the guided help profile. 1 will always be the system profile. - `casebase.profiles.profile.name` (string, required) Name of the profile - `casebase.profiles.paginationInfo` (object) - `casebase.profiles.paginationInfo.count` (integer, required) The total number of pages. - `casebase.profiles.paginationInfo.pagenum` (integer, required) The page number requested. Page numbers start from 1. - `casebase.profiles.paginationInfo.pagesize` (integer, required) The number of objects requested per page. The maximum number of objects per page is 75. - `casebase.profiles.paginationInfo.link` (array) Can include the prev and next link. - `casebase.profiles.paginationInfo.link.rel` (string) Defines the relationship between a linked resource and the current object.For example: self, prev, next or an object name such as 'user', 'folder' etc. - `casebase.profiles.paginationInfo.link.href` (string) The URL that specifies the link's destination. - `casebase.searchSettings` (object) - `casebase.searchSettings.closeSessionOnAccept` (boolean) indicates whether to close the Guided Help session upon acceptance of answer - `casebase.searchSettings.closeSessionOnReject` (boolean) indicates wheather to reject the Guided Helo session upon rejection of answer - `casebase.languages` (object) KB languages - `casebase.languages.KbLanguage` (array) - `casebase.languages.KbLanguage.name` (string) Name of the language. Enum: "English (United States)", "English (United Kingdom)", "French (France)", "Spanish (Spain)", "Italian (Italy)", "German (Germany)", "Dutch (Netherlands)", "Portuguese (Brazil)", "Portuguese (Portugal)", "Danish (Denmark)", "Swedish (Sweden)", "Russian (Russia)", "French (Canada)", "Chinese (Simplified)", "Japanese (Japan)", "Korean (South Korea)" - `casebase.languages.KbLanguage.code` (string) IETF code of the language. Enum: "en-US", "en-GB", "fr-FR", "es-ES", "it-IT", "de-DE", "nl-NL", "pt-BR", "pt-PT", "da-DK", "sv-SE", "ru-RU", "fr-CA", "zh-CN", "ja-JP", "ko-KR" - `casebase.link` (object) Defines the relationship between this resource and another object. - `actionSearch` (array) actions in the search - `actionSearch.acceptCount` (integer) number of times action was accepted - `actionSearch.hasAdditionalInfo` (boolean) indicates if action has additional information - `actionSearch.metadata` (array) Metadata in action search. - `actionSearch.metadata.title` (string) content of the title - `actionSearch.metadata.additionalInformation` (string) content of the additional information - `actionSearch.metadata.action` (string) content of the action - `actionSearch.articleId` (string) The ID of the Article .The ID is composed of a 2-4 letter prefix, followed by a dash and 4-15 digits. Example: "PROD-9312" - `actionSearch.caseId` (string) The numerical ID of the case. Example: "100000000001035" - `actionSearch.passedThresholdValue` (boolean) indicates if the case has passed the threshold value - `actionSearch.rejectCount` (integer) The number of times action was rejected - `actionSearch.shortName` (string) short name - `actionSearch.score` (integer) score of the case - `actionSearch.name` (string) name of the case - `actionSearch.actionId` (string) The ID of the Action. Example: "100000000009312" - `actionSearch.type` (string) type of the action Enum: "control", "article" - `actionSearch.articleType` (object) The type of the Article and its attributes. - `actionSearch.articleType.articleCategoryId` (integer) Specifies the article category ID. - `actionSearch.articleType.typeName` (string) Indicates the article type name. - `actionSearch.articleType.useStructuredAuthoring` (boolean) Indicates whether structured authoring is enabled for this article type, requiring content to be created using predefined fields - `actionSearch.articleType.articleTypeId` (string) The ID of the Article Type. Example: "932100000002020" - `answeredQuestion` (array) questions answered in the search - `answeredQuestion.id` (string) The numerical ID of the question Example: "1000001035" - `answeredQuestion.title` (string) Title of the question - `answeredQuestion.type` (string) type of the question Enum: "numeric", "enumerated", "list", "text" - `answeredQuestion.format` (string) format of the question Enum: "radioButton", "dropdown", "checkbox", "mutliSelect", "number", "singleLineTextField", "multiLineTextField" - `answeredQuestion.hasAdditionalInfo` (boolean) indicates if question has additional information - `answeredQuestion.hasAction` (boolean) indicates if question has action - `answeredQuestion.validAnswer` (array) valid answers for question - `answeredQuestion.validAnswer.id` (string) ID of the answer Example: "1000001035" - `answeredQuestion.validAnswer.depth` (integer) depth of the answer - `answeredQuestion.validAnswer.isInvisible` (boolean) Flag indicating if answer is visible - `answeredQuestion.validAnswer.text` (string) Text of the answer - `answeredQuestion.validAnswer.image` (object) - `answeredQuestion.validAnswer.conceptName` (string) name of the answer - `answeredQuestion.validAnswer.conceptId` (string) Id of the answer - `answeredQuestion.validAnswer.lowerValue` (integer) lower value of the answer - `answeredQuestion.validAnswer.upperValue` (integer) upper value of the answer - `answeredQuestion.validAnswer.enumLowerValue` (string) lower value of enum answer - `answeredQuestion.validAnswer.enumUpperValue` (string) upper value of enum answer - `answeredQuestion.validAnswer.lowerInclusive` (boolean) Value indicating if lower value is inclusive - `answeredQuestion.validAnswer.upperInclusive` (boolean) Value indicating if upper value is inclusive - `answeredQuestion.validAnswer.partialMin` (integer) Partial minimum - `answeredQuestion.validAnswer.partialMax` (integer) Partial maximim - `answeredQuestion.previousAnswer` (array) answers provided for question - `answeredQuestion.validAnswerRange` (object) - `answeredQuestion.validAnswerRange.id` (string) Id of the answer range Example: "1000001035" - `answeredQuestion.validAnswerRange.min` (number) minimum value of range - `answeredQuestion.validAnswerRange.max` (number) maximum value of range - `answeredQuestion.validAnswerRange.minInclusive` (boolean) flag indicating if minimum value is included - `answeredQuestion.validAnswerRange.maxInclusive` (boolean) flag indicating if maximim value is included - `answeredQuestion.metadata` (array) Metadata on question - `answeredQuestion.customAttributes` (array) Custom attributes of question - `answeredQuestion.customAttributes.name` (string) The custom attribute's name. - `answeredQuestion.customAttributes.value` (string) The custom attribute's value. - `answeredQuestion.customAttributes.type` (string) The custom attribute's type. Enum: "STRING", "INTEGER", "BOOLEAN", "DATETIME" - `answeredQuestion.answerSource` (string) source of the provided answer Enum: "rule", "data_link_article", "user" - `caseSearch` (array) cases in the search - `caseSearch.acceptCount` (integer) The number of times action was accepted - `caseSearch.action` (array) actions in search - `caseSearch.action.id` (string) ID of the action - `caseSearch.action.title` (string) Name of the action - `caseSearch.action.shortName` (string) short name of the action - `caseSearch.action.rejectCount` (integer) number of times action was rejected. - `caseSearch.action.acceptCount` (integer) number of times action was accepted. - `caseSearch.action.metadata` (array) Metadata of action - `caseSearch.additionalInfo` (boolean) This field indicates if action has additional information - `caseSearch.metadata` (array) Metadata in search - `caseSearch.caseId` (string) case Id - `caseSearch.passedThresholdValue` (boolean) This field indicates if the case has passed the threshold value - `caseSearch.shortName` (string) The short name - `caseSearch.score` (number) The score of the case - `caseSearch.title` (string) The title of the case - `caseSearch.type` (string) The type of the action Enum: "Control", "Article" - `dynamicSearch` (array) dynamic cases in the search - `dynamicSearch.dynamicCluster` (array) clusters in search - `dynamicSearch.dynamicCluster.id` (string) Id of the cluster - `dynamicSearch.dynamicCluster.title` (string) name of the cluster - `dynamicSearch.parentClusterId` (string) Parent cluster Example: "1000001035" - `dynamicSearch.type` (string) type of search - `dynamicSearch.virtualCase` (array) cases in search - `dynamicSearch.virtualCase.id` (string) ID of the case - `dynamicSearch.virtualCase.detailField` (array) detail fields - `dynamicSearch.virtualCase.detailField.id` (string) The ID of the Detail Field.The ID is composed of a 2-4 letter prefix, followed by a dash and 4-15 digits. Example: "PROD-9312" - `dynamicSearch.virtualCase.detailField.detailLink` (string) link of the detail - `dynamicSearch.virtualCase.detailField.detailType` (string) type of the detail - `dynamicSearch.virtualCase.detailField.fieldName` (string) name of the field - `dynamicSearch.virtualCase.displayField` (array) display fields - `dynamicSearch.virtualCase.displayField.id` (string) The ID of the Display Field.The ID is composed of a 2-4 letter prefix, followed by a dash and 4-15 digits. Example: "PROD-9312" - `dynamicSearch.virtualCase.displayField.content` (string) content in bytes. 2 MB max - `dynamicSearch.virtualCase.dynamicClusterId` (string) Cluster id Example: "1000001035" - `dynamicSearch.virtualCase.title` (string) name of the case - `dynamicSearch.virtualCase.virtualCaseId` (string) virtual case id - `unansweredQuestion` (array) unanswered questions in the search - `startupQuestion` (array) startup questions in the search - `targetClusters` (array) active clusters in the search - `targetClusters.id` (string) The numerical Cluster ID Example: "1000000257" ## Response 400 fields (application/json): - `code` (string, required) A string that follows the pattern {integer}-{integer}. The first {integer} is the http status code. This code as a whole is unique. * For example, error codes "400-101" and "404-101" are distinctly different. - `developerMessage` (string, required) A summary of the error. - `details` (array) - `details.key` (string, required) - `details.value` (string) - `userMessage` (string) UI friendly messages are only supported by some APIs. The client must explicitly request UI friendly messages by passing the X-egain-error-message=yes* header. ## Response 401 fields (application/json): - `code` (string, required) A string that follows the pattern {integer}-{integer}. The first {integer} is the http status code. This code as a whole is unique. * For example, error codes "400-101" and "404-101" are distinctly different. - `developerMessage` (string, required) A summary of the error. - `details` (array) - `details.key` (string, required) - `details.value` (string) - `userMessage` (string) UI friendly messages are only supported by some APIs. The client must explicitly request UI friendly messages by passing the X-egain-error-message=yes* header. ## Response 403 fields (application/json): - `code` (string, required) A string that follows the pattern {integer}-{integer}. The first {integer} is the http status code. This code as a whole is unique. * For example, error codes "400-101" and "404-101" are distinctly different. - `developerMessage` (string, required) A summary of the error. - `details` (array) - `details.key` (string, required) - `details.value` (string) - `userMessage` (string) UI friendly messages are only supported by some APIs. The client must explicitly request UI friendly messages by passing the X-egain-error-message=yes* header. ## Response 404 fields (application/json): - `code` (string, required) A string that follows the pattern {integer}-{integer}. The first {integer} is the http status code. This code as a whole is unique. * For example, error codes "400-101" and "404-101" are distinctly different. - `developerMessage` (string, required) A summary of the error. - `details` (array) - `details.key` (string, required) - `details.value` (string) - `userMessage` (string) UI friendly messages are only supported by some APIs. The client must explicitly request UI friendly messages by passing the X-egain-error-message=yes* header. ## Response 406 fields (application/json): - `code` (string, required) A string that follows the pattern {integer}-{integer}. The first {integer} is the http status code. This code as a whole is unique. * For example, error codes "400-101" and "404-101" are distinctly different. - `developerMessage` (string, required) A summary of the error. - `details` (array) - `details.key` (string, required) - `details.value` (string) - `userMessage` (string) UI friendly messages are only supported by some APIs. The client must explicitly request UI friendly messages by passing the X-egain-error-message=yes* header. ## Response 500 fields (application/json): - `code` (string, required) A string that follows the pattern {integer}-{integer}. The first {integer} is the http status code. This code as a whole is unique. * For example, error codes "400-101" and "404-101" are distinctly different. - `developerMessage` (string, required) A summary of the error. - `details` (array) - `details.key` (string, required) - `details.value` (string) - `userMessage` (string) UI friendly messages are only supported by some APIs. The client must explicitly request UI friendly messages by passing the X-egain-error-message=yes* header. ## Response 415 fields