Overview

The Data API is a product offered by Moveworks that is designed to allow customers to ingest AI Assistant conversations and interaction data through a REST API. The Data API exposes all interactions, including user utterances, button clicks, link clicks, and UI form submissions. It also provides information on the plugins invoked by the LLM, resources used to generate summarized responses, and users who have been ingested into Moveworks and have access to the AI Assistant.

What is a rest API?

A REST API (Representational State Transfer Application Programming Interface) enables systems to communicate over HTTP using a set of architectural principles. It is stateless, meaning each request from a client to the server must contain all necessary information. The key HTTP methods used are GET (retrieve data), POST (create data), PUT (update data), and DELETE (remove data). Resources are accessed via standard URLs, and JSON format is typically used for data exchange. REST APIs are known for their simplicity, scalability, and flexibility, making them ideal for web services and mobile applications.

Learn more about REST API here.

API version

Data API is currently in Beta2 version which is a beta version of the API. To read more on the API lifecycle management please refer to this documentation.

Which REST Endpoints are exposed via Data API

In the beta2 version, The Data API exposes base tables related to AI Assistant conversations data. The following tables are exposed through individual REST endpoint. Only GET method is supported on these endpoints.

Name of the tableData exposed through the tablesURL
ConversationsConversations are the top level objects over all interactions. Conversations are grouped based on the context of the interaction. All interactions within a conversation share the same conversation ID.https://api.moveworks.ai/export/v1beta2/records/conversations
InteractionsAll user and AI Assistant exchanges are defined as interactions. These are the building blocks for a conversation.https://api.moveworks.ai/export/v1beta2/records/interactions
Plugin callsWhenever a plugin is called by a copilot in a conversation all of these entries are recorded in this table. The plugin calls object provides details on the plugin name, whether the plugin served the request or not, and whether the plugin was used in the interaction.https://api.moveworks.ai/export/v1beta2/records/plugin-calls
Plugin resourcesResources used by the plugin to serve the end user are recorded in this table. The resource object provides details on the Service portal name, URL, and ID of the resource. There can be multiple resource types, such as Knowledge, Forms, Users, or Tickets.https://api.moveworks.ai/export/v1beta2/records/plugin-resources
UsersUsers who are ingested into Moveworks are stored in this table. This table provides details on the ingested user’s ID from the end systems that are configured in identity setup, which can be used to pull additional information from external systems such as Okta or Active Directory.https://api.moveworks.ai/export/v1beta2/records/users

API structure

All REST endpoints will respond in JSON format defined by OData. Each JSON object represents a new unique entry in that table

{
"odata.context": "...",
"odata.nextlink": "...",
"value" : [

	{ //object 1

	},
	{ //object 2

	}

	]
	
}
  • If there is no entries present in the table, the value array is empty.
  • All attributes in each entity either contains a “value” or will be NULL . There will be no empty strings or empty JSON if data is not present for a certain field.
  • All attributes are exposed as STRING, nested JSON with STRING key <> value pair and array of STRING. We are not exposing any other data type from the API.

📘

For API documentation refer [here](https://help.moveworks.com/reference/get_conversations).

Data Dictionary

The following tables cover what attributes are available in through individual REST API’s. To understand the exact attribute names for each REST endpoints please refer to the API documentation.

Conversations

Field nameDescription
IDUUID assigned by the system to a conversation. Conversations are grouped based on the context of interactions. All interactions within a conversation share the same conversation ID.
User IDUser record ID assigned by the system to a user.
Conversation DomainPrimary domain detected by an LLM model after going through all detected domains of free text interactions belonging to a particular conversation.
RouteThis field contains details on how a conversation was started either through DM, Notification engagement, Ticket interception engagement, or Channel resolver engagement.
Created timeTimestamp when the conversation was initiated.
Last updated timeTimestamp when the conversations entry is last updated in this table.

Interactions

Field nameDescription
IDUUID assigned by a system to a interaction. An interaction is either an input from a user to the system, or a response from the system the the user.
Conversation IDID of the parent conversation.
User IDUser record ID assigned by the system to a user.
ActorThis field differentiates user v/s AI Assistant interactions.
PlatformThis field denotes the platform where the interaction took place. For example: slack, msteam
TypeThis field defines the type of the interaction. The interaction can belong to one of the following types.

1.INTERACTION_TYPE_FREE_TEXT - user types an utterance
2.INTERACTION_TYPE_CONTENT_UPLOAD - user uploads content, for example a file
3.INTERACTION_TYPE_AI Assistant_MESSAGE - text of the AI Assistant response to a user
4.INTERACTION_TYPE_UIFORM_SUBMISSION - user submits a UI form
5.INTERACTION_TYPE_LINK_CLICK - user clicks on a URL link (Moveworks wrapped links or Unwrapped Service portal link), citation, global action emoji (For example: Helpful, Unhelpful, Information) or a link presented as a button.
6.INTERACTION_TYPE_BUTTON_CLICK - user clicks on a button in chat
LabelThis field defines the label for UI form submission interaction type. This can contain any one of the following values

1. feedback - User has submitted a "feedback" form by clicking on the Helpful/Unhelpful button
2. file_ticket - In-chat fillable "file ticket" form submitted by the end user.
3. mw_form - User has submitted a Internal MW form. For example: Change language form.
4. handoff - User has submitted a form after clicking on the "Get help" button.
Parent Interaction IDParent interaction ID for AI Assistant messages
DetailThis is a JSON object which contains metadata per interaction type. The detailed description of each field is covered in the below table.
Created timeTimestamp when the interaction was initiated.
Last updated timeTimestamp when the interaction entry is last updated in this table.

Fields inside the “detail” JSON object

Field nameDescription
contentThis field contains the free form text, link URL, Button name according to interaction type
domainThis the interaction level detected domain. Domain is only predicted for free form text interaction type. In some cases, domain of individual utterances may differ from the primary domain detected per conversation.
topicThis field contains the topic as detected per each interaction. Topic is only predicted for free form text interaction type.
typeThis field indicates which type of resource were accessed during an link click interaction.
detailThis field indicates the form name which was submitted
resource_idThis field provides the resource ID that was accessed by the end user during an link click interaction, or when a user submits a ticket via UI form

INTERACTION_TYPE_LINK_CLICK
INTERACTION_TYPE_UIFORM_SUBMISSION
file_typesThis field provides list of types of files that were uploaded during a file upload interaction (INTERACTION_TYPE_CONTENT_UPLOAD). We do not record the file names as user can also upload a private file

Plugin calls

Field nameDescription
IDUUID assigned by the system to a plugin being called by AI Assistant for a interaction.
Interaction IDID of the interaction for which the plugin is called
Conversation IDID of the parent conversation.
User IDUser record ID assigned by the system to a user.
Plugin nameName of the plugin being called.

Native plugins
For example: Knowledge Base, Create ticket, Grant Software Access

Custom plugins : Represents the plugin name configured in Creator studio
For examples: Ariba_PTO_LOOKUP, Apply_Holiday_leave
ServedThis field defines if the plugin was served to the end user.

Plugin are considered served when they are offered to the end user through the AI Assistant response.
For example: Knowledge base plugin is served when citations fetched by the plugin are used to generated the summarized response.
Action plugins such as Create ticket are considered as "Served" when the workflow is initiated and is offered to the end users.
UsedThis field defines if the plugin was used by the AI Assistant in the interaction.

Plugins such as Knowledge base, Forms or productivity plugins if served are also considered as Used.

Plugins such as File ticket, Update Approval are only considered as used if the end user has completed the workflow.
Created timeTimestamp when the plugin call was initiated.
Plugin update timeTimestamp of the last update for the plugin call.
Last updated atTimestamp when the plugin call entry is last updated in this table

Plugin resources

Field nameDescription
IDUUID assigned by the system to a resource being used by a plugin called during an interaction.
Plugin call IDID of the plugin being called.
Interaction IDID of the interaction.
Conversation IDID of the parent conversation.
User IDUser record ID assigned by the system to a user.
Resource ID ID of the resource stored in Moveworks.
TypeThis field represents the type of resource utilized by a plugin call. The type can be one of the following values.

1.RESOURCE_TYPE_FORM - Ingested forms from service desk.
2.RESOURCE_TYPE_TICKET - Tickets created by the AI assistant in service desk (or) fetched from the service desk.
3.RESOURCE_TYPE_FILE - Files ingested in Moveworks
4.RESOURCE_TYPE_KNOWLEDGE - Internal knowledge articles, FAQ, External knowledge ingested/configured in Moveworks.
5.RESOURCE_TYPE_APPROVAL - Approvals fetched from the Approval systems.
6.RESOURCE_TYPE_RECORD - Entries fetched from external systems through Queries in creator studio
7.RESOURCE_TYPE_IDENTITY_SYSTEM - Identity systems configured in Moveworks.
8.RESOURCE_TYPE_PERSON - User ingested into Moveworks.
9.RESOURCE_TYPE_SOFTWARE - Softwares provision workflows and entities configured in Moveworks.
10.RESOURCE_TYPE_GROUP - Distribution lists ingested into Moveworks
11.RESOURCE_TYPE_INTERNAL_KNOWLEDGE - Moveworks AI assistant internal knowledge.
12.RESOURCE_TYPE_UPLOADED_CONTENT - Content uploaded by end users.
13.RESOURCE_TYPE_ROOM - Room information ingested into moveworks
14.RESOURCE_TYPE_UNSPECIFIED - Unknown resource types. Please check the AI Assistant’s response to learn more.
DetailThis is a JSON object which contains metadata per resource type. The detailed description of each field is covered in the below table.
CitedThis field denotes if the utilized resource was cited in the AI Assistant response or not.
Created atTimestamp when the resource was utilized by a plugin
Last updated atTimestamp when the plugin resource entry was last updated in this table.

Field included in the “detail” JSON object

Field nameDescription
DomainThis field denotes the resource domain configured in Moveworks Setup while configuring Content ingestion & Ticketing. Domain is defined for resources of types:

RESOURCE_TYPE_APPROVAL
RESOURCE_TYPE_FORM
RESOURCE_TYPE_TICKET
RESOURCE_TYPE_KNOWLEDGE
External Resource IDService portal ID for the resource of type RESOURCE_TYPE_KNOWLEDGE. This field can be used to join data from external system. Please note external resource ID is not provided for FILE & EXTERNAL KNOWLEDGE (Public knowledge enabled in Moveworks)
NameName of the resource being used by the plugin, populated for resources of types:
RESOURCE_TYPE_FILE
RESOURCE_TYPE_FORM
RESOURCE_TYPE_KNOWLEDGE
SnippetExact snippet from the resource being used to provide the summarized response, populated for resource types
RESOURCE_TYPE_FILE
RESOURCE_TYPE_KNOWLEDGE
SourceName of the external sources from which the resource is being fetched from, populated for resource types
RESOURCE_TYPE_TICKET
RESOURCE_TYPE_APPROVAL
TypeContains sub-type of approval or type of the ticket creation : User initiated v/s AI Assistant initiated, populated for resource types
RESOURCE_TYPE_TICKET
RESOURCE_TYPE_APPROVAL
URLExternal system URL of the resource, populated for resource types
RESOURCE_TYPE_TICKET
RESOURCE_TYPE_KNOWLEDGE
RESOURCE_TYPE_FILE

Users

Field nameDescription
IDUser record id generated and stored in Moveworks for the end user
Email AddrEmail of the end user stored in Moveworks. This field is ingested from your systems and reflect the value present in your systems. Learn more about user profile here.
Access to AI AssistantDenotes if the end user has access to Moveworks Assistant or not. This is evaluated through the AI Assistant access rule configured in Moveworks Setup.
First nameFirst name of the end user. This field is ingested from your systems and reflect the value present in your systems. Learn more about user profile here .
Last nameLast name of the end user.This field is ingested from your systems and reflect the value present in your systems. Learn more about user profile here .
User preferred languageUser preferred language set from the end user. EN-US is the default value for this field
First interaction timeTime stamp for the first interaction for the end user.
Last interaction timeTime stamp for the latest interaction of the end user.
External IdsThis array contains External system details configured during identity ingestion

1. Connector name : Name of the connector created in Moveworks Setup
2. External ID : External ID from the source system
3. Source : Identifier for the source system.
Last updated timeLast updated time for the user entry in this table.