SYSPRO Bot
Artificial Intelligence means customers deal with an intelligent and human-like chatbot that answers queries quickly.
Chatbots which answer and even predict customer queries automate customer service to free up resources in the business.
The (AI) web robot resides within the SYPRO ERP ecosystem and streamlines business functions through natural conversations with the BOT.
Exploring
The SYSPRO Bot lets organizations expose certain SYSPRO business functions to their operators, customers and suppliers in an instant message/chat-like interface. This can either be through Bot channel contacts (e.g. Skype) or a simple web control on their website.
These business functions are exposed in natural conversations over everyday channels to which users already have access, letting them conveniently surface information and action functions normally performed in the SYSPRO core product, from anywhere, at any time.
The beneficial features of the SYSPRO Bot include:
The provision of digital citizens (Bots) across your organization, be they internal or supply chain focused, enable engaging connection points between stakeholders and the SYSPRO business solution.
With the application of Bots, you are now able to evaluate which of your repetitive processes can be 'trained' for the Bot to perform.
The SYSPRO Bot is practically always available due to the Azure Bot framework's SLA of more than 99% uptime.
This emerging platform has unlimited potential for business applications, where it can include and analyze information from various sources to create efficiencies, improve processes and increase revenue, all with limited human intervention.
This results in being able to free up resources within your company to answer and even predict customer queries.
The SYSPRO Bot uses natural language processing to create real-time conversations and information exchanges with users.
The SYSPRO Bot also allows custom skills to be acquired automatically, extending the Bot's functionality beyond the scope of ERP.
For example:
Custom skills such as leave applications can be handled by the SYSPRO Bot.
The creation of rules via the SYSPRO Bot or Rules Administrator activates any of the trained skills which can trigger the Bot to initiate a conversation.
For example:
If you set a price alert on a stock code via the Bot, this creates a rule in the SYSPRO Rules Engine, which in turn initiates a Bot conversation when the alert is triggered.
Proactive messages are pushed to all signed in channels. Therefore if a user is signed in on both Microsoft Teams and Skype, they will receive the proactive message on both channels.
The Bot Skill Development Platform enables the development, testing and deployment of Bot skills, customized to situational requirements.
The SYSPRO Bot resources in Microsoft Azure include:
SYSPRO 8 Bot Service
Acts as an IIS service and is the only Microsoft Azure resource in contact with the SYSPRO 8 e.net Communications Load Balancer service and SYSPRO 8 Reporting Host Service.
State Database
Stores the state of the conversation data.
LUIS
Language Understanding Intelligence Service (LUIS) interprets user phrases to analyze their intent.
Document Database
Contains documents to be accessed by users.
Bot Framework Authentication
Authentication ensures that only configured channels can communicate with the SYSPRO 8 Bot Service.
Bot Channel Registration
Handles all channel configurations and communication between the channel applications and the SYSPRO Bot.
For example:
A Skype message is sent to the SYSPRO Bot on a mobile device.
The message sends to the Skype server, and subsequently to the SYSPRO Bot, according to the channel configuration.
The SYSPRO Bot processes the message (using LUIS to understand the user’s message intent).
SYSPRO Documents
Document requests, such as order acknowledgments or invoices, are communicated from the SYSPRO Bot directly to the SYSPRO 8 Reporting Host Service, using the SOAP port.
As this communication is coming from outside the App Server network, the SOAP ports need to be accessible from outside networks.
SYSPRO Data Communication
SYSPRO data requested by the SYSPRO Bot is communicated through the SYSPRO 8 e.net Communications Load Balancer service.
SYSPRO Instance
SYSPRO Bot settings that configurable within the App Server include:
- Fixed menu
- Diagnostics
- Document formats
- Sign In page configuration
- Customization (menu options, menu layout and accessible skills)
- XML Inputs
- Email HTML templates
The SYSPRO Bot functions are stored on the App Server in the ..\Base\Bot\Skills folder as .dll files. New and Custom skills can be added to this folder, and are then available within the SYSPRO Bot from the next new conversation.
Bot Alerts
This is only available from SYSPRO 8 2019 R2.
Rules that exist within the SYSPRO Rules Engine can trigger the SYSPRO Bot to start conversations. This can be via a message and even followed by an optional skill.
This is referred to as Proactive Messaging.
Bot Predictions
This is only available from SYSPRO 8 2019 R2.
Predictive functions (i.e. using the Predictions skill) are communicated directly between the SYSPRO Bot and the SYSPRO 8 Machine Learning service, as these access active AI Models.
A user that communicates with the SYSPRO Bot without signing in and being authenticated.
The Azure App service URL or endpoint where the SYSPRO Bot is hosted.
This address is provided by SYSPRO Cloud Services after the SYSPRO Bot cloud configuration is completed and must be configured in the System Setup program (Artificial Intelligence tab).
For example:
https://sysproken.azurewebsites.net
A Binary Large Object (BLOB) is a collection of binary data stored as a single entity in a database management system.
Blobs are typically images, audio or other multimedia objects, though sometimes binary executable code is stored as a blob.
This is a Microsoft Azure resource used by SYSPRO to store the binary data of PDF documents produced by SYSPRO Reporting Services. SYSPRO then provides the user with a direct link to that document.
This data is securely uploaded as binary, but easily retrieved by the accessing user utilizing the unique link provided in the reply message.
A bot, which is short for "robot", is an automated program that runs over the Internet.
Some bots run automatically, whilst others only execute commands when they receive input. The SYSPRO Bot is the latter, as you need to sign in and enter a commonly used phase to start the conversation.
The SYSPRO Bot provides functionality over the SYSPRO ERP ecosystem. For the SYSPRO Bot to service user requests effectively, skills are used and are required to define specific pieces and areas of functionality.
Users can communicate with the SYSPRO Bot via different client applications - also called channels (e.g. Skype, Webchat, Facebook).
This is the field required by a Bot skill to perform its task or action. This can vary from 1 to many fields depending on the task / action required by the Bot skill.
For example:
Posting a sales order with a quantity.
The fields then required by this skill are:
- Quantity
- Customer
- Stock code
The field(s) required to uniquely identify SYSPRO data entities and concepts. These are used by the SYSPRO Bot infrastructure to service user requests / interactions effectively.
For example:
The skill to provide a list of invoices, requires a Customer Code. The Bot will ask the user for a customer and use the entered value to verify that a valid customer has been entered.
Key fields utilize the defined search configuration to verify the validity of a phrase.
Search configuration is defined using the Espresso Search Configuration program.
The mechanism provided by the SYSPRO Bot framework to search for and find relevant information within the context of the current skill and conversation.
Bot searches assist in the selection of Bot key fields and will loop until a valid entry is entered, or until the conversation ends.
The SYSPRO Bot provides functionality over the SYSPRO ERP ecosystem. Therefore, to service user requests effectively, skills are used by the SYSPRO Bot and are therefore required to define specific pieces and areas of functionality.
A skill is an area of specific functionality that the SYSPRO Bot provides for.
For example:
-
To query a customer, the SYSPRO Bot utilizes the Customer.Query skill.
-
When the SYSPRO Bot is asked by the user to view a specific invoice, the SYSPRO Bot utilizes the Invoice.ViewInvoice skill.
In certain instances the SYSPRO Bot responds back to the user using predefined templates in order to provide the information in a certain format.
These templates are called cards and are part of the Microsoft Bot framework.
The language structure, grammar and phonetics used by the SYSPRO Bot to interact with users.
The configurable linguistics architecture of the SYSPRO Bot allows for the random selection of multiple phrases.
Microsoft Azure is a cloud computing service created by Microsoft to build, test, deploy, and manage applications and services through Microsoft-managed data centers.
It caters for:
-
Software as a service (SaaS)
-
Platform as a service (PaaS)
-
Infrastructure as a service (IaaS)
In addition, Microsoft Azure supports different programming languages, tools and frameworks (including Microsoft-specific and third-party software and systems).
When the user interacts with the SYSPRO Bot, they use phrases and sentences to indicate what action is required.
These sentences or phrases are called utterances.
Applicable to SYSPRO business objects that require input options via a predefined XML structure.
Input options are specified using the relevant predefined XML structure associated with the business object. The values for the XML can be configured per business object based on user requirements.
The web chat is a stock-standard chat interface that can be hosted on a website.
A web chat can be a web control, but not all web controls are necessarily web chats. The web chat is a form of interacting with the Bot (i.e. a channel).
A technical reference for functionality that can be hosted within a web browser.
Starting
The following technology prerequisites are applicable to using this feature:
-
SYSPRO 8 e.net Communications Load Balancer service
The SYSPRO Bot requires access to this service's SOAP port (i.e. Net.TCP) in order to pick up the Bot skills and authenticate its conversations. Therefore, a valid endpoint must be configured in the System Setup program.
This requires exceptions in the App Server's firewall, as well as exceptions and routing information in the Company's DNS configuration. -
SYSPRO 8 Reporting Host Service
This is used by the SYSPRO Bot for document functions, therefore the service needs to be externally accessible.
This requires exceptions in the App Server's firewall, as well as exceptions and routing information in the Company's DNS configuration. -
SYSPRO 8 Machine Learning service
This optional prerequisite is used by the SYSPRO Bot for predictive functions as it accesses any active AI Models you have, therefore it is only required if you intend on using the Predictions skill.
This requires exceptions in the App Server's firewall, as well as exceptions and routing information in the Company's DNS configuration. -
SYSPRO 8 Rules Data Service and SYSPRO 8 Rules Engine Service
These optional prerequisites are used by the SYSPRO Bot for alert functions, therefore they are only required if you intend on using any of the alert skills (e.g. Set Price Alert, My Alerts, Enable Alert Rule, Disable Alert Rule, Delete Alert Rule).
The following setup options must be configured to use this feature:
SYSPRO Ribbon bar > Setup > General Setup
Artificial Intelligence
-
Bot
- Azure Bot website
- Diagnostics
-
Bot Document formats
- Order Acknowledgement
- Order Acknowledgement description
- Delivery note
- Delivery note description
- Invoice
- Invoice description
-
Bot Sign-in Screen
- Header image
- Organization name
- Organization website
Reporting
Server-side Printing is required for the SYSPRO Bot to access documents.
-
Reporting configuration
This must be defined as Server-side reporting using SQL.
-
Reporting service (Server-side configuration)
This must be configured correctly with an external facing endpoint.
Setup Options > Company > General
Email/SMTP settings
SMTP settings are required for the SYSPRO Bot to perform email functions.
-
Method when emailing
-
SMTP server IP address
-
Outgoing email address
-
Username
-
Password
-
Server port
-
Use SSL
Currently the Use system-wide SMTP details option does not affect the SYSPRO Bot.
As the SYSPRO Bot makes use of SYSPRO Cloud Services, there are certain processes that need to take place in order to gain access to this feature:
- Deployment
- Configuration
In order to attain a SYSPRO Bot Server, you first need to request a quote from SYSPRO Cloud Services.
After you accept the quote, you are requested to provide the following:
- Which channel(s) you require.
- The name and description of your Bot.
-
An icon image for your Bot.
Only .png files are accepted, with a maximum size of 30kb.
-
The SOAP port (i.e. endpoint) for your SYSPRO 8 e.net Communications Load Balancer.
-
The BaseDir entry for the Bot to connect to.
Once this has been completed, SYSPRO Cloud Services then proceeds with the following actions:
- Deployment of the SYSPRO Bot Server to Microsoft Azure, with all the relevant resources.
- Configuration of your requested channels.
- Connection between the SYSPRO Bot Server and your exposed SYSPRO 8 e.net Communications Load Balancer endpoint.
Once this has been configured, SYSPRO Cloud Services will provide you with an Azure web address that lets SYSPRO know where the Bot is, as well as your chosen Bot channel contact URLs.
Most of the Bot Server and channel configuration is handled by SYSPRO Cloud Services. However, after the initial configuration is complete, the following steps are required to deploy the SYSPRO Bot at your company:
-
Capture the Azure web address (provided by SYSPRO Cloud Services) in the Azure Bot website field of the Artificial Intelligence tab in the System Setup program.
-
Optionally, you can define further customization in the System Setup program for the SYSPRO Bot.
For example:
You can define the specific image you require for the Bot header by configuring the Header image option.
-
Ensure that your Reporting configuration is defined as Server-side reporting using SQL in the Reporting tab of the System Setup program.
-
Ensure that your Email/SMTP settings are configured correctly (Setup Options > Company > General).
-
Add the web control (e.g. web chat) to your company website.
Or
Add the Bot as a contact in your required channel.
-
Multi-Factor Authentication and Single Sign-on are not supported for the SYSPRO Bot.
-
Currently, modifications for skills and menu management must be made in Microsoft SQL Server.
An administration interface is in development and will be added with a future release of SYSPRO 8.
-
Only posting of automatic numbering keys is currently supported, however you can customize this in Microsoft SQL Server to allow for manual numbering.
-
The SYSPRO Bot does not perform validation on non-SYSPRO key fields (i.e. price).
-
Alpha-numeric values are not supported as the SYSPRO Bot only recognizes numeric values (i.e. 10 and not "ten").
-
Currently, the SYSPRO Bot is only available in English.
Solving
The Bot is refreshing the skills list.
The user's operator does not have access for the requested skill.
The SYSPRO 8 e.net Communications Load Balancer service is out of reach.
This could be due to the service or the App Server’s firewall not running currently.
This error occurs during a skill request. The skill failed to complete, but the conversation can continue.
This is a mandatory time-out. The SYSPRO Bot might still be processing your previous request and will reply shortly.
At any time, you can send Exit and the SYSPRO Bot will end the conversation.
The next conversation will begin fresh.
After deployment, SYSPRO Cloud Services will provide you with a Web Control embedded code.
This is a snippet of HTML code that you can inject anywhere on your website, in an appropriate location.
When using client-side reporting you are able to use most of the SYSPRO Bot functions, however printing documents is not available due to the fact that access to the SYSPRO 8 Reporting Host Service is required.
From SYSPRO 8 2019 R2, the Bot Skill Development Platform enables the development, testing and deployment of BOT skills, customized to situational requirements.
This SDK (with Visual Studio plug-in) enables you to use C# to develop the following:
- Custom skills
- Cards
- Custom searches
A developer guide for this platform will be made available on the SLC at a later stage.
Please contact SYSPRO Cloud Services for a quote.
Additional training on the SYSPRO Bot language understanding is available from http://www.luis.ai, for contributor accounts added by SYSPRO Cloud Services.
Training options available include:
-
Add new Intents
This is useful for custom developed skills or for linking to untrained SYSPRO skills.
-
Add new Entities
These are the keyfields that the custom or SYSPRO skill requires.
-
Add new Utterances
These are example phrases that users will send to the SYSPRO Bot requesting a skill to be executed.
After adding any new training data in the LUIS portal, you need to train the LUIS model with these new aspects:
Using
All operators have access to the SYSPRO Bot, however, using skills you can define what access an operator is allowed when interacting with the Bot.
If no security configuration is defined, then access is denied for all skills other than the Sign In Skill.
The levels of security that apply are:
-
0 SYSPRO (i.e. shipped out with the release)
-
1 SYSTEM (i.e. system-wide)
-
2 Company (e.g. EDU1)
-
3 Role (e.g. 001)
-
4 Operator (e.g. ALAN)
Bot users require their SYSPRO Operator code to sign in and authenticate themselves, and once verified an entry is added to the BotOperatorMapping table within your system-wide database.
This authentication is per user, per channel and users remain authenticated on the channel until they either sign out or manually get removed from the BotOperatorMapping table.
Users can remain authenticated on different channels at the same time.
If an authenticated user returns to a conversation after a long period of inactivity, the bot will welcome him with his SYSPRO Operator name and state which company he is logged in as.
This period is dependent on how busy the Bot has been and if the Microsoft Azure service has been defined as Always on.
For example:
-
The respective operator's functional role applies.
-
The operator's business object access security applies.
-
If the user is recognized by the SYSPRO Bot as a Customer or Supplier, then these related fields within the Bot are set as that customer or supplier code as defined in the Operator Maintenance program of SYSPRO.
These keys can’t be overridden and will remain in context.
-
An unauthenticated user (also known as an anonymous user) is able to view some, but not all of the SYSPRO Bot features.
-
Unauthenticated users use the _ _BOT security which includes program access for business object calls.
-
The _ _BOT entry in the system-wide BotCustomization table will be used to specify which skills this user has access to.
An administration interface is currently in development and will be added with a future release of SYSPRO 8, however from SYSPRO 8 2019 R2, you can configure user access in Microsoft SQL Server, within the BotCustomAccess table of your system-wide database.
If you want to have a base control for all authenticated users and what they can access, then from a system-wide perspective you would add the customization for Level 1 - SYSTEM.
Using the SYSPRO Bot
The following steps detail how to start using the SYSPRO Bot:
- Add the SYSPRO Bot as a contact on your selected channel, or use the Web control.
-
Start a conversation with a greeting (e.g. 'hi').
- The SYSPRO Bot will respond with either a menu listing or an open ended question (depending on your company’s configuration preferences in SYSPRO).
-
Request a skill (e.g. 'Create sales order')
- If the skill requires any unknown keys, it will ask you to enter these or select a value, and then continue to the next key.
- Once all the keys has been acquired, the SYSPRO Bot will process the requested skill and provide an output.
- If the skill fails, the Bot will advise you and provide an error description.
After a skill completes, the SYSPRO Bot is ready for the next skill to be requested.
If the next skill requires some of the same keys, they will be remembered. Any additional keys will be asked for in sequence and extra keys from the previous skill will be discarded. However, if the same skill is being called again, all keys are discarded.
Customization done at the most granular (i.e. lowest) level will supersede all other customization.
For example:
Operator ALAN is given access to skills 1 and 5.
However system level access is granted to skills 1, 2 and 5.
Operator ALAN only has access to skills 1 and 5.
Each organization has their own instance of the SYSPRO Bot (i.e. their own sign in page). Therefore, the Sign In page is both secure and brandable, as the following aspects are customizable:
-
Header Image
-
Organization Name
-
Organization Website
This customization is possible from SYSPRO's System Setup program at the Bot Sign-in Screen options within the Artificial Intelligence tab.
The following example depicts a typical sign in page, highlighting the areas where this customization reflects:
The SYSPRO Bot menu can be customized in Microsoft SQL Server by the relevant level ID or to access particular skills.
This customization is done on your system-wide database in the BotCustomization and BotCustomAccess tables.
This customization is only available from SYSPRO 8 2019 R2.
Security types available when customizing access:
-
A - All (i.e. access allowed for all skills)
-
N - None (i.e. access denied for all skills)
-
L - List (i.e. specified list of skills allowed)
The following sample code ensures that all anonymous or unauthenticated users only have access to the sign in skill.
The recommended customization for unauthenticated users is LevelId = 4 and LevelValue = “_ _BOT”.
LevelId | LevelValue | SecurityType |
---|---|---|
4 | _ _BOT | N |
SQL script in the BotCustomization table:
INSERT INTO [dbo].[BotCustomization] ([LevelId] ,[LevelValue] ,[SecurityType]) VALUES (4 ,'__BOT' ,'N') GO
We recommend that you implement this code as an added security control.
The following sample code ensures that a specific operator only has access to the following skills:
- Sales order query
- Standard price query
- Order acknowledgment
LevelId | LevelValue | SecurityType |
---|---|---|
4 | ALAN | L |
SQL script in the BotCustomization table:
INSERT INTO [dbo].[BotCustomization] ([LevelId] ,[LevelValue] ,[SecurityType]) VALUES (4 ,'ALAN' ,'L') GO
New entries in the BotCustomAccess table:
LevelId | LevelValue | SkillName | AddToMenu | Sequence |
---|---|---|---|---|
4 | ALAN | Document.OrdAck | N | 0 |
4 | ALAN | Pricing.QueryStandardPrice | Y | 1 |
4 | ALAN | SalesOrder.QuerySalesOrder | Y | 0 |
The SkillName element must contain a valid skill name.
The AddToMenu element specifies if the skill should be added to the user’s main menu.
A full list of skill names are located in BotSkills table.
This table is updated by the Bot but only contains entries after the first conversation occurs.
The SYSPRO Bot can use its own document formats that are setup and created in the same manner in which other SRS report templates are created.
These document formats are be applied against the source documents that are attached to the emails.
This customization is possible from SYSPRO's System Setup program at the Bot Document formats options within the Artificial Intelligence tab.
If users are in the middle of a conversation with the Bot and the System Administrator changes or updates the document formats, then the newly updated template(s) are applied at the start of a new conversation, when the settings are refreshed or when the Bot service restarts.
If you indicate that the Blob Storage Azure option must be enabled when your Bot is configured by SYSPRO Cloud Services, the documents are then stored in Microsoft Azure blob storage. This allows the URL to your document to remain valid for longer, compared to the standard memory storage.
The SYSPRO Bot uses SYSPRO's Email/SMTP settings to email documents.
You can customize your HTML emailing template using Microsoft SQL Server and the customization can then be saved at system, company, role or operator level.
This customization is done on your system-wide database in the EspDataStore table, with the StoreName key defined as SYSPROBotDocumentEmail.
The key contains the following placeholders:
-
{DocumentType}
-
{DocumentNumber}
-
{BotName}
-
{CompanyImage}
The placeholders will then be populated with information based on the values. However, you can amend the email template that is sent out entirely.
The following sample code provides an example of this type of customization:
This example shows customization that is only available from SYSPRO 8 2019 R2, due to it containing the {BotService} place holder.
<html> <head> <META content="text/html; charset=windows-1252" http-equiv=Content-Type> <META name=GENERATOR content="MSHTML 8.00.7600.16490"> </head> <body bgColor=white style="font-family: Arial Medium;"> <div align="center"> <img src="{BotService}/Media/SYSPROBotTop.png" alt="" align="baseline" border="0" hspace="0" /> <table style="border: thin;" border="5" width="802"> <tbody> <tr> <td align="left" style="padding-left: 70;"> <p style="margin-top: 17px;"><span style="color: #425563; font-size: 16pt;text-align: left"><strong>Here’s your new document:</strong></span> </p> <p style="margin-top: -10px; margin-bottom: 0px;"> </p> <p style="margin-top: -10px; text-align: left;"><span style="color: #425563; font-size: 15pt;"><strong>{DocumentType}:</strong><em> {DocumentNumber}</em></span> </p> <p> </p> <p style="text-align: left;margin-bottom: 0px;"><span style="color: #425563; font-size: 12pt;">Kind regards</span></p> <p style="text-align: left; margin-top: 0px;"><span style="color: #425563; font-size: 12pt;">{BotName}</span> </p> <p style="text-align: left;"><img src="{CompanyImage}" alt="" width="150" /></p> <p style="text-align: left;"> </p> </td> </tr> </tbody> </table> <img src="{BotService}/Media/SYSPROBotBottom.png" alt="" align="baseline" border="0" hspace="0" /> </div> </body> </html>
The SYSPRO Bot contains phrases, which are customizable in Microsoft SQL Server.
Customization available:
-
Edit existing phrases
-
Remove existing phrases
-
Add new phrases
This customization is done on your system-wide database in the HrmLinguistics table.
The standard phrases shipped with the SYSPRO Bot feature include the following:
Area |
Existing Phrases |
---|---|
AnythingElse |
|
MenuTitle |
|
MessageOptions |
|
SearchPrompt |
|
FailedAnythingElse |
|
There must always be at least 1 phrase per area.
When the SYSPRO Bot asks you to input information, it only asks you for "key" information that is required to action a specific task.
For example:
When you ask the Bot to create a sales order.
However, as part of creating a sales order there may be additional information and values that you want to add as a standard, such as Salesperson. This is achievable by configuring XML inputs or parameters.
XML Parameters are customizable using SYSPRO's Espresso Custom Configuration program.
XML Input blobs are customizable using Microsoft SQL Server, from your system-wide database in the EspDataStore table.
Configurable XML Inputs:
- APSQRY XMLIn
- ARSQRY XMLIn
- CSHQRY XMLIn
- INVQPL XMLIn
- PORQ91 XMLIn
- PORTOI XMLIn
- QOTQRY XMLIn
- QOTSNS XMLIn
- QOTTQC XMLIn
- QOTTQI Add NonStocked XMLIn
- QOTTQI Add XMLIn
- QOTTQI Cancel XMLIn
- QOTTQI NonStocked XMLIn
- QOTTQI XMLIn
- RMATRH XMLIn
- RMATRL XMLIn
- SORQID XMLIn
- SORQPL XMLIn
- SORQRY XMLIn
- SORTOI Change XMLIn
- SORTOI XMLIn
- SORTOS XMLIn
- WIPQJS XMLIn
- WIPTJB NonStk XMLIn
- WIPTJB XMLIn
Configurable XML Parameters:
- PORTOI Parameter
- QOTSNS Parameter
- QOTTQC Parameter
- QOTTQI Add Parameter
- QOTTQI Cancel Parameter
- QOTTQI Parameter
- RMATRH Parameter
- RMATRL Parameter
- SORTOI Parameter
- SORTOS Parameter
- WIPTJB Parameter
The following sample code provides an example of this type of customization:
<SalesOrders> <Orders> <OrderHeader> <CustomerPoNumber>{Ask}</CustomerPoNumber> <OrderActionType>A</OrderActionType> <Customer>000010</Customer> <OrderDate>2006-11-04</OrderDate> </OrderHeader> <OrderDetails> <StockLine> <LineActionType>A</LineActionType> <StockCode>B100</StockCode> <OrderQty>5</OrderQty> <OrderUom>EA</OrderUom> </StockLine> <CommentLine> <LineActionType>A</LineActionType> <Comment>Added by Bot, please review</Comment> <AttachedLineNumber>1</AttachedLineNumber> <CommentType /> </CommentLine> </OrderDetails> </Orders> </SalesOrders>
The SYSPRO Bot search functionality uses the same configuration as SYSPRO's Predictive Search, unless it is customized to search on additional columns within a table or linked tables.
This customization is possible from SYSPRO's Espresso Search Configuration program.
Regardless of the configuration, the first 3 unique columns returned are displayed in the search results carousel.
If only one result is being returned by the search, then that key value will be selected and the search will exit.
When searching for a particular key field, you can either enter the key field’s description, or type '*' to return the first 5 related records.
-
Allowing the SYSPRO Bot to complete its current process before sending a new message assists in better performance.
-
Sometimes the first message, after a period of time, can take a few seconds to process. This is most likely the Azure App Server starting up.
-
When searching for a particular key field, typing '*' returns the first 5 records.
-
If you get stuck in a search loop or want to cancel a skill while in a search, you can end the conversation at anytime, by entering Exit and the Bot will end the conversation.
Referencing
The following channels can be used to communicate with the SYSPRO Bot:
-
Web Chat
-
Facebook Messenger
-
Skype
-
Microsoft Teams
-
Skype for Business
-
Telegram
-
Kik
-
GroupMe
The user interface of each channel is noticeably different and the setup of these channels are controlled by SYSPRO Cloud Services, but some would require additional configuration from your side.
For example:
The Facebook Messenger channel requires configuration from the SYSPRO Cloud Services and from the customer’s Facebook account, as both configurations require keys generated from the other configuration.
After channels are configured, you are supplied with a contact URL to add the Bot as a contact.
The following information can assist you in determining which channel(s) your company would or could make use of:
Additional Information: https://docs.microsoft.com/en-us/azure/bot-service/bot-service-channel-connect-webchat?view=azure-bot-service-4.0
Requirements | Checklist | Customer Requirements |
---|---|---|
N/A |
|
|
Additional Information: https://docs.microsoft.com/en-us/azure/bot-service/bot-service-channel-connect-facebook?view=azure-bot-service-4.0
Requirements | Checklist | Customer Requirements |
---|---|---|
|
|
|
Additional Information: https://docs.microsoft.com/en-us/azure/bot-service/bot-service-channel-connect-skype?view=azure-bot-service-4.0
Requirements | Checklist | Customer Requirements |
---|---|---|
N/A |
Skype:
Skype Web Control:
|
Skype:
Skype Web Control:
|
Additional Information: https://docs.microsoft.com/en-us/azure/bot-service/channel-connect-teams?view=azure-bot-service-4.0
Requirements | Checklist | Customer Requirements |
---|---|---|
N/A |
|
|
Additional Information: https://docs.microsoft.com/en-us/azure/bot-service/bot-service-channel-connect-skypeforbusiness?view=azure-bot-service-4.0
Requirements | Checklist | Customer Requirements |
---|---|---|
|
|
|
Additional Information: https://docs.microsoft.com/en-us/azure/bot-service/bot-service-channel-connect-telegram?view=azure-bot-service-4.0
Requirements | Checklist | Customer Requirements |
---|---|---|
|
|
|
Additional Information: https://docs.microsoft.com/en-us/azure/bot-service/bot-service-channel-connect-kik?view=azure-bot-service-4.0
Requirements | Checklist | Customer Requirements |
---|---|---|
|
|
|
Additional Information: https://docs.microsoft.com/en-us/azure/bot-service/bot-service-channel-connect-groupme?view=azure-bot-service-4.0
Requirements | Checklist | Customer Requirements |
---|---|---|
|
|
|
The following table indicates all available skills, as well as the key fields required by the SYSPRO Bot to execute each skill.
The Main Menu column indicates whether or not the skill is included in the Main Menu by default (i.e. N indicates that the skill is not included by default).
Skill |
Key Fields |
Main Menu |
---|---|---|
Email Document (Admin.EmailDocument) |
|
N |
Administration Menu (Admin.Menu) |
None |
Y |
My Details (Admin.MyDetails) |
None |
N |
Sign In (Admin.SignIn) |
None |
Y |
Sign Out (Admin.SignOut) |
None |
N |
Delete Alert Rule (Alert.DeleteRule) |
|
N |
Disable Alert Rule (Alert.DisableRule) |
|
N |
Enable Alert Rule (Alert.EnableRule) |
|
N |
Customer Query (Customer.QuerySkill) |
|
Y |
Statement Print (Document.ArStatement) |
|
N |
Delivery Note (Document.DeliveryNote) |
|
N |
Delivery Note Reprint (Document.DeliveryNoteReprint) |
|
N |
Generate Invoice (Document.GenerateInvoice) |
|
N |
Reprint Invoice (Document.InvoiceReprint) |
|
N |
Order Acknowledgement (Document.OrdAck) |
|
N |
Order Acknowledgement Reprint (Document.OrdAckReprint) |
|
N |
Print Purchase Order (Document.PurchaseOrder) |
|
N |
Print Quote (Document.Quote) |
|
N |
Reprint Quote (Document.QuoteReprint) |
|
N |
Reprint Purchase Order (Document.ReprintPurchaseOrder) |
|
N |
Query Generic Fetch (Generic.FetchSkill) |
|
N |
View Invoice (Invoice.ViewInvoice) |
|
N |
View Invoices (Invoice.ViewInvoices) |
|
N |
Create Job (Job.CreateJob) |
|
N |
Create Non-stocked Job (Job.CreateNSJob) |
|
N |
Jobs (Job.JobMenu) |
None |
Y |
Query Job (Job.QueryJob) |
|
N |
Query Job Materials (Job.QueryJobMaterials) |
|
N |
Pricing (Pricing.PricingMenu) |
None |
Y |
Price Query (Pricing.QueryPrice) |
|
N |
Standard Price Query (Pricing.QueryStandardPrice) |
|
N |
Set Price Alert (Pricing.StandardPriceAlert) |
|
N |
Query Purchase Order (Purchase.QueryPurchaseOrder) |
|
N |
Purchase Order Menu (PurchaseOrder.PurchaseOrderMenu) |
None |
Y |
Quotes (Quote.QuoteMenu) |
None |
Y |
Add Non-stocked Code (Quotes.AddNonStocked) |
|
N |
Add Non-Stocked Quote Line (Quotes.AddNonStockedQuoteLine) |
|
N |
Add Quote Line (Quotes.AddQuoteLine) |
|
N |
Cancel Quote (Quotes.CancelQuote) |
|
N |
Confirm Quote (Quotes.ConfirmQuote) |
|
N |
Create Non-Stocked Quote (Quotes.CreateNonStockedQuote) |
|
N |
Create Quote (Quotes.CreateQuote) |
|
N |
Query Quote (Quotes.QueryQuote) |
|
N |
Requisitions (Requisitions.RequisitionMenu) |
None |
Y |
Add Sales Order Line (SalesOrder.AddSalesOrderLine) |
|
N |
Create Sales Order (SalesOrder.CreateSalesOrder) |
|
N |
Query Sales Order (SalesOrder.QuerySalesOrder) |
|
N |
Sales (SalesOrder.SalesOrderMenu) |
None |
Y |
My Alerts (Skill.Alerts.QueryMyAlerts) |
None |
Y |
Bank Query (Skill.Bank.QueryBank) |
|
Y |
Create purchase order (Skill.CreatePurchaseOrderSkill) |
|
N |
Customer Quotes (Skill.CustomerQuotes) |
|
N |
Inventory Query (Skill.InventoryQuery) |
|
Y |
Add Purchase Order Line (Skill.PurchaseOrder.AddPurchaseOrderLine) |
|
N |
Predictions (Skill.QueryMachineLearningModel) |
|
Y |
Create Requisition (Skill.RequisitionCreateSkill) |
|
N |
Add Requisition line (Skill.RequisitionPostSkill) |
|
N |
Requisition Query (Skill.RequisitionQuery) |
|
N |
Requisition routing (Skill.RequisitionRouting) |
|
N |
Create RMA (Skill.RMA.CreateRMA) |
|
Y |
RMA Query (Skill.RmaQuery) |
|
Y |
Update Purchase Order Header (Skill.Skill.ChangePurchaseOrderHeader) |
|
N |
Supplier Invoices (Skill.SupplierInvoices) |
|
N |
Supplier Query (Skill.SupplierQuery) |
|
Y |
Supplier receipts (Skill.SupplierReceipts) |
|
N |
Requisition Approval (Skill.SysproRequisitionApproval) |
|
N |
The following table indicates all available cards, as well as the key fields required by the SYSPRO Bot to produce each card.
Card |
Key Fields |
---|---|
Bank Card (Card.Hero.BankCard) |
|
Carousel Items Card (Card.CarouselItemsCard) |
|
Confirm Posting of Requisition Line (Card.Hero.ConfirmRequisitionPost) |
None |
Customer Card (Card.CustomerCard) |
|
Customer Quotes (Card.Carousel.CustomerQuotesCard) |
|
Document Download Card (Card.DocumentDownloadCard) |
|
Generic Fetch Card (Card.GenericFetch) |
|
Inventory Query (Card.Receipt.InventoryQueryCard) |
|
Invoice Card (Card.InvoiceCard) |
|
Invoices Card (Card.InvoicesCard) |
|
Job Card (Card.JobCard) |
|
Job Materials Card (Card.JobMaterialsCard) |
|
Menu Card (Card.MenuCard) |
|
My Alerts Query Card (Card.MyAlertsQuery) |
None |
Non-Stocked Card (Card.NonStockedCard) |
|
Price Query Card (Card.PriceQuery) |
|
Purchase Order Card (Card.Receipt.Card.PurchaseOrder) |
|
Purchase Order Preview (Card.Receipt.PurchaseOrderPreview) |
|
Quote Card (Card.QuoteCard) |
|
Requisition Approval (Card.Receipt.RequisitionApprovalReceiptCard) |
|
Requisition Hero Card (Card.Hero.RequisitionQuery) |
|
Requisition Post Result Card (Card.Hero.RequisitionPostResultCard) |
None |
RMA Query Card (Card.Receipt.RmaQueryCard) |
|
Requisition Route Result Card (Card.RequisitionRouteResultCard) |
|
Sales Order Card (Card.SalesOrderCard) |
|
Sales Order Preview Card (Card.SalesOrderPreviewCard) |
|
Sales Order Line Preview Card (Card.SalesOrderLinePreviewCard) |
|
Standard Price Query Card (Card.StandardPriceQuery) |
|
Supplier Invoices (Card.Carousel.SupplierInvoicesCard) |
|
Supplier Receipts (Card.Receipt.Card.Carousel.SupplierReceipts) |
|
Supplier Query Receipt (Card.Receipt.SupplierQuery) |
|
The following table indicates all available custom searches:
Search Name |
Key Field to Search |
---|---|
Search.AlertFrequencySearch | AlertFrequency |
Search.QuoteTarget | QuoteTarget |
Search.MLProject | MLProject |
Search.POChangeItem | POChangeItem |
Search.POPriceMethod | PricingMethod |
Search.ReqLineSearch | BotReqLineSearch |
Search.ReqSearch | BotReqSearch |
Search.RuleIdSearch | RuleId |
LUIS (Language Understanding Intelligent System) is a machine learning-based service that is used to build natural language understanding into the SYSPRO Bot.
Designed to identify valuable information in conversations, LUIS interprets user goals (intents) and distills valuable information from sentences (entities), for a high quality, nuanced language model.
The SYSPRO Bot is trained with the following intents (skills):
- Admin.MyDetails
- Admin.SignOut
- Alert.DeleteRule
- Alert.DisableRule
- Alert.EnableRule
- Customer.QuerySkill
- Document.ArStatement
- Generic.FetchSkill
- Greeting
- Invoice.ViewInvoice
- Invoice.ViewInvoices
- Job.CreateJob
- Job.CreateNSJob
- Job.QueryJob
- Pricing.QueryPrice
- Pricing.QueryStandardPrice
- Pricing.StandardPriceAlert
- Purchase.QueryPurchaseOrder
- Quote.QuoteMenu
- Quotes.AddNonStockedQuoteLine
- Quotes.AddQuoteLine
- Quotes.ConvertQuote
- Quotes.CreateQuote
- Quotes.QueryQuote
- SalesOrder.AddSalesOrderLine
- SalesOrder.CreateSalesOrder
- SalesOrder.QuerySalesOrder
- Skill.Alerts.QueryMyAlerts
- Skill.Bank.QueryBank
- Skill.Skill.ChangePurchaseOrderHeader
- Skill.CreatePurchaseOrderSkill
- Skill.InventoryQuery
- Skill.PurchaseOrder.AddPurchaseOrderLine
- Skill.RequisitionPostSkill
- Skill.RequisitionQuery
- Skill.RequisitionRouting
- Skill.RMA.CreateRMA
- Skill.RmaQuery
- Skill.SupplierInvoices
- Skill.SupplierQuery
- Skill.SupplierReceipts
- Skill.SysproRequisitionApproval
The SYSPRO Bot is trained with the following entities (keys):
- ActivityType
- ARInvoice
- Bank
- BotReqLineSearch
- BotReqSearch
- Customer
- Job
- KeyFieldName
- KeyFieldValue
- Non-StockedCode
- NotificationReason
- POChangeItem
- PurchaseOrder
- Quantity
- Quantity_old
- Quote
- QuoteTarget
- ReqLine
- RequisitionNotation
- RequisitionStockPrice
- RequisitionStockQuantity
- RequisitionUser
- RmaNumber
- SalesOrder
- SearchFieldNames
- StockCode
- Subject
- Supplier
- Warehouse
The SYSPRO Bot is trained with a multitude of different utterances (phrases), however to provide you with some examples, the following table covers a few of these.
Trained utterances can be used with any of the trained intents (skills).
Intent (Skill) | Utterances (Phrases) |
---|---|
Customer Query (Customer.QuerySkill) |
|
Query Generic Fetch (Generic.FetchSkill) |
|
View Invoice (Invoice.ViewInvoice) |
|
View Invoices (Invoice.ViewInvoices) |
|
Create Job (Job.CreateJob) |
|
Create Non-stocked Job (Job.CreateNSJob) |
|
Query Job (Job.QueryJob) |
|
None |
|
Price Query (Pricing.QueryPrice) |
|
Create Quote (Quotes.CreateQuote) |
|
Create Sales Order (SalesOrder.CreateSalesOrder) |
|
Query Sales Order (SalesOrder.QuerySalesOrder) |
|