Customers with dedicated Koji instances can develop new integration scenarios using the SDK, a software development kit. Here are the main tools for enhancing your Koji experience.
Workflow
Workflow is a dialog model that allows users to go through a dialog using the predefined scheme.
Concept
Workflows help you design conversations. With workflows you can ask users questions and keep the received answers, perform actions, such as ticket creation, or running search in a knowledge base. Use workflows to create scenarios that involve knowledge base resourced, conversations (including asking questions, clarifications, and so on), and external integrations.
Nodes are the building blocks of a workflow. There are many types of nodes: search nodes, interaction nodes, AI nodes, and so on. Each type has its own purpose.
To learn more about the workflow concept, its usage, and view the reference materials (including help pages on nodes), see the /wiki/spaces/DOC/pages/781451265 in the Kbot documentation. It is located in another Wiki, so if you do not have access to it, please contact us.
Web service node
As Koji is designed for Jira Service Management, in this documentation we are going to describe the Web service node. It is a very powerful node, which allows you to leverage JSM REST APIs and integrate Jira Service Management with Koji.
To learn more about JSM REST APIs functionality and view the references, visit the Atlassian Developer REST API portal.
Custom functions
There are a number of nodes and built-in functions for you to implement in your workflows, however you can build custom Python functions as well. A set of libraries make it possible to interact with users, invoke requests on external systems, and return results.
To learn more about this functionalities, see the Custom workflow functions page.
Python callbacks
Intent in Kbot is the primary logical unit of a conversation. Basically, the main idea of a conversation processing is extracting an intent and delivering a corresponding response to a user. Intents can have Python callbacks defined as their response.
This Python code allows you to run any kind of interaction with users, send requests to external systems, and eventually end the intent with particular return code (completed, failed, etc.).
To learn more about callbacks, see the Custom callbacks page.