Skip to Content
Technical Articles

How to build custom skills for SAP CoPilot

Introduction

I built my own skill for SAP CoPilot, I would like to share the detailed steps for I took.

By the way, SAP CoPilot is SAP’s digital assistant for enterprise. My expectation is that SAP CoPilot will bring flexibility, extensibility, and diversity by introducing superior UX provided by a digital assistant for the consumer (Google Assistant, Amazon Alexa, Apple Siri, etc.).

For SAP CoPilot product information, please refer to https://www.sap.com/products/digital-assistant.html.

 

Prerequisite

To use SAP CoPilot, you need to have a subscription contract for SAP Cloud Platform.

By activating the subscription for SAP CoPilot and setting it up properly, you can use CoPilot (core service) on SAP Cloud Platform and a tool called Skill Builder that you need for creating skills (it is like Amazon Lex on AWS). I used the latest release; October 2018.

 

3 Factors to Understand Before Beginning

Before you begin using the SAP CoPilot skill, let’s check the terminology. To create skill, three factors are very important; Skill“, “Intent and Utterance.

Name Description
Skill Intents bundled. Skill, so to say.
Intent Purpose; what user wants to do.
Utterance Triggering spoken word(s).

It might be difficult to understand with just the chart, so I have listed some examples. A skill called “Product Management”, Intent to “create/read/update/query” products, and Utterance in case of a query as an example.

 

As you might notice by looking at the verbs listed under Intent, they match to the OData operations (Create/Read/Update/Query). Like these, it is one of the characteristics of SAP CoPilot that Intent is structured based on OData operations.

 

How to Build Your Own Skills

Well, the introduction might have been a little long, let’s start building a custom skill. By the way, there is a meaning that I say “custom”. SAP CoPilot is SAP standard digital assistant, so it will provide vast standard skills without building custom skills. This time, hands-on itself was the purpose, this is why I built a custom skill.

 

Skill Creation

First, log in to SAP CoPilot Skill Builder and click “New Skill”.

 

 

 

Type the name of the skill and click “Add Intents to the skill”.

 

Specify endpoint for OData service or click “Browse”.

 

In case you clicked “Browse”, select OData service, and click “Import Service”.

 

Select the object (entity) for the selected OData service.

 

After selecting Object (entity), activate the operation for it. Select Query operation to obtain the list.

 

 

Set the parameters desired for the selected operations. With these steps, the basic setup for Intent is complete. Click “Save”. (after saving it, go back to the skill list screen.)

If there are any parameters not set, a “!” mark is displayed. In this case, please select your Intent again, and check the contents.

 

 

UI Display (UI display setting) looks incomplete. Utterance also has yellow “!” mark it is a warning.

Set Title, Subtitle, and Image for UI display setting. The setup is now complete.

Let’s continue with the Utterance that had a warning displayed. The hint is not set, this is the reason a warning was displayed. Add Utterance as a hint for “how to ask questions”, such as “Show me products from ABC”. With this hint, people who use this skill for the first time can use it without getting lost.

 

A warning is not shown, but let’s check Entities under Utterance. You can check parameters (=Filter items for OData service) here. You can set each item is mandatory or not, use-value helper or not, etc., For example, Rich predefined value help for a Business domain is SAP’s advantage. Furthermore, you can also add custom names (synonyms).

After completing the necessary setup, click “Build” and wait for a while until the build is complete.

 

Now custom SAP CoPilot skill is created!!

 

Skill Execution

Finally, we can actually execute the skill we created. During the hands-on exercise, we checked the stand-alone version of the SAP CoPilot. The conversation flow is like this:

  • Me: Could you show me the products of supplier ‘AVANTEL’?
  • CoPilot: Here’s what I found products with supplier AVANTEL.
  • Me: Show me the price of the second one
  • CoPilot: The price per unit for the product “ITelO Vault SAT” is 149.00 USD.

When I first said “show me the products of supplier ‘AVANTEL’”, CoPilot said “I found products” and showed me the list of products with images. I then asked “show me the price of the second one”, CoPilot answered, “The price per unit for the product “ITelO Vault SAT” is 149.00 USD”. SAP CoPilot could answer to the order of “second”, so it means it understands the context of sentences.

 

To make it easy to understand the description, I only mentioned  Query operation, but If I say, “I would like to create …”, I can, of course, execute Create operation. SAP CoPilot can even understand long sentences like “Show me products that are available in stock and price over 150 dollars in the category of computer component” with Query operation and conditions other than suppliers.

 

Closing

Thanks for reading. Please share your feedback

This time, I introduced SAP CoPilot as a digital assistant for enterprises. I am looking forward to it becoming a major conversational UI soon.

SAP CoPilot is not only Digital Assistant but also Bot Integration Hub; another innovative feature which I would like to write about at another time.

 

7 Comments
You must be Logged on to comment or reply to a post.
  • Hello Suman,

    could you explain me in which Business context CoPilot can be used and what functionality it brings other dedicated applications do not already bring?

    In your example (i know it is just an example to illustrate your remarks), you look for materials a supplier can provide. And, for each of those materials, to know what their price is.

    But, in your example, why a user would look for this information?

    In order to buy it? But why do not connect directly to the @-procurement application used by the user?

    Just to get the information? But some applications are dedicated for this.

    How do you justify the interest of such a tool compared to the existing ones?

    Regards.

    Laurent.

    • Hi Laurent,

      Thanks for the comment, as from my perspective A lot of our customers talk to us about other bots they’ve built themselves (e.g. IT helpdesk, Q&A) to make their employees’ lives easier. However, as the number of bots grows, they have trouble managing them. That’s why we have built the Bot Integration Hub feature of SAP CoPilot: it brings together all bots in one single interface and also exposes the bot functionality in different channels such as Slack via CoPilot so that you don’t have to build a bot for every channel.

      You can integrate bots from SAP Conversational AI, a collaborative platform for building, training, and deploying bots. SAP Conversational AI enables custom dialogs with machine learning-based natural language understanding.

      Moving forward, we will also enable the integration of bots built with other bot-building frameworks.

      Now I presume that I have it all cleared out.

      Thanks and Regards,

      Suman.S

      • Hello Suman,

        thank you for clarification.

        But my question was more about the customer business interest of using bots, that is to say the business case in the real life and not to use those tools as a gizmo because it is fashionable.

        What are their ROI?

        Still waiting for a customer presentation in a real business process taking avantages of AI and machine learning.

        Regards.

        Laurent