Knowledge Gateway (1.0.0)

Download OpenAPI specification:Download

About Knowledge Gateway

See documentation on our Answers Skill to understand how the Knowledge Gateway will be used.
Setting up a Knowledge Gateway allows you to control the data which Moveworks is able to ingest from Knowledge Articles.

A Knowledge Gateway implementation is a good fit for you if you are trying to ingest knowledge from an internal or external knowledge base that doesn't have REST endpoints.

List Articles

Description:
The endpoint should return a list of articles in deterministic order.
We recommend a rate limit of 10 req/sec for this endpoint.

Usage:
Moveworks will call this endpoint to ingest articles every 4 hours.
Ask your CSE if you wish to increase or decrease the polling frequency.

SecuritybearerAuth
Request
query Parameters
pageToken
string

pageToken is used to paginate query results.
If pageToken is not used in a request, the response should default to the first page.

The response should always include a next_page_token field.
To obtain the next page of results, the client will use next_page_token as the value of pageToken in the next request.

When combining the filter parameter with the pageToken parameter, servers must ensure that the client uses the appropriate pageToken value for the specified filter string. Failure to do so should result in the server throwing an "INPUT_VALIDATION_FAILED".

pageSize
integer <int64>

pageSize defines the maximum number of articles to return in a single query.

Moveworks will take a max of 1000 articles in a single response. However, the server can return less than 1000 if desired.

filter
string

Defines a filter expression that narrows down the returned set of items. It allows you to specify criteria, such as numeric comparisons or string matching, to filter the items based on the values of their properties.

The filter parameter must include at least one valid Boolean expression. Each expression should consist of an attribute name, followed by an attribute operator and a value. You have the flexibility to combine multiple expressions using logical operators, and you can also group expressions together using parentheses “()”.

Here are the available attribute operators and their descriptions:

  • eq (equal): The attribute and operator values must be identical for a match.
  • ne (not equal): The attribute and operator values are not identical.
  • gt (greater than): If the attribute value is greater than the operator value, there is a match. The actual comparison depends on the attribute type.
  • lt (less than): If the attribute value is less than the operator value, there is a match. The actual comparison depends on the attribute type.

The boolean operators available for combining expressions are:

  • and (Logical AND): The filter is considered a match only if both expressions evaluate to true.
  • or (Logical OR): The filter is considered a match if either of the expressions evaluates to true.

Parentheses () can be used to group boolean expressions and alter the standard order of operations. By grouping expressions with parentheses, you can control how the logical OR operation is evaluated and prioritize certain conditions over others. This allows for more flexibility and precision in constructing complex boolean expressions.

Attribute names and attribute operators used in filters are case insensitive. For example, the following two expressions will evaluate to the same logical value: filter=article.state Eq "ACTIVE" filter=article.State eq "ACTIVE"

The evaluation of filters follows a standard order of operations. Attribute operators take precedence over other operators, followed by the grouping operator (parentheses), then the logical AND operator, and finally the logical OR operator.

If the requested filter operation is not recognised, providers must refuse to filter the results and return an HTTP 400 error with an appropriate human readable response.

Here are some examples of filter expressions: In the provided examples, we have utilised the suggested response structure as defined in the response section. However, it's important to note that these expressions may differ if you opt for an alternative response format or structure.

  • filter=last_modified_at gt "2011-05-13T04:42:34Z"
  • filter=article.state ne “INACTIVE” and last_modified_at gt "2011-05-13T04:42:34Z"
Examples:
During a full sync, Moveworks can retrieve only articles in the active state, which restricts the returned results to the desired articles for ingestion.
filter=article.state eq "ACTIVE"
During an incremental sync, the query parameter with the "last_modified_at" attribute is utilised to fetch records that have been modified since a specific timestamp.
filter=last_modified_at gt "2022-10-20T17:28:52Z"
Responses
200

List of articles

default

There was an error. Please see our error documentation for details on what the errors mean. https://docs.moveworks.ai/gateway/errors/

get/articles
Request samples
Response samples
application/json
{
  • "results": [
    ],
  • "next_page_token": "ABCD1234"
}