Skip to Content
Technical Articles

How to build your own 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 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.

I joined SAP TechEd held in this October and participated in hands-on sessions for SAP CoPilot. This post is based on the contents of the session.

 

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. Skill called “Product Management”, Intent to “create/read/update/query” products, and Utterance in case of 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, login to SAP CoPilot Skill Builder and click “New Skill”.

 

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

 

Specify end point 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 warning.

 

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

 

Let’s continue with the Utterance that had warning displayed. Hint is not set, this is the reason a warning was displayed. Add Utterance as 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.

 

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 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 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 stand-alone version of the SAP CoPilot. The conversation flow is like this:

  • Me: Could you show me products of supplier ‘AVANTEL’?
  • CoPilot: Here’s what I found products with supplier AVANTEL.
  • Me: Show me a price of 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 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 about 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 availability in stock and price over 150 dollars in category of computer component” with Query operation and conditions other than suppliers.

 

How I felt about Building Skills

I will briefly summarize how I felt when building my own skill using SAP CoPilot Skill Builder.

 

Oops? I did NOT set Utterances, did I?

Amazon Lex also has Intent (what you want it to do) and Utterance (password for triggering Intent), but it was very cumbersome to register many sample Utterances and make it trigger Intent without omission.

In particular, it was a challenge for me to cover the different expressions for the same intent such as “Show me products”, “Let me see …”, “Can I see …” etc. If the Intent is not triggered easily, it would be considered a piece of junk Bot.

With SAP CoPilot, I ONLY defined one hint Utterance to ask “Show me products”, for example. Isn’t it amazing?

 

Wow! This is really cool, Isn’t it?

SAP CoPilot makes regulation that Intent follows OData operations, and that is why it is easier for artificial intelligence to guess utterances. In other words, what users would like to do by saying either “Show me”, “Let me see”, or “Can I see” would be Query operations.

Other than that, if you type a supplier name, not AVANTEL(correct) but AVENTAL (incorrect), it would say “Here’s what I found for products with supplier AVANTEL:” and kindly correct me, nicely assimilating small mistakes in spelling, lack of articles, misuse of conjunctions, etc. What a SAP Leonardo ML technology!

 

Closing

Thank you for your reading. How was it?

This time, I introduced SAP CoPilot as digital assistant for enterprises. I am looking forward to it becoming a major conversational UI soon. Unfortunately, SAP CoPilot does not support Japanese as I post this. Considering Amazon Lex does not support Japanese either, natural language processing for Japanese might not be easy. I hope it will support Japanese in the very near future!

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.

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

    Could you please precise the system architecture, are you on premise or on cloud mode ?

    Are you using Copilot NPL or Recast NPL ?

    Is it possible to integrate Recast NPL to Copilot ?

    Thanks in advance for your answer .

  • Everyone is looking for ways to develop their skills and abilities. By building up our skills, we become more capable. We use tools and rely on the help of others to better ourselves. To a certain extent, software is quite similar: it needs tools and people to become more capable and to be able to do new things mybkexperience.

  • Hi Shunichiro,

    thanks for this blog!

    Can you please explain what is the “Skill builder” tool? Is this an on-premise software, or part of cloud platform? Where is it, do I have to order or download it?

    I understand you were using an S/4 on-premise backend. I have a S/4 Cloud tenant (so all in the cloud) – can I still build my own skills?

     

    thank you,

    Johannes

    • Hi Johannes,

      Thank you for your comment.

      SAP CoPliot Skill Builder is provided as a part of SAP Cloud Platform. You have to order a SAP CoPilot subscription. For your reference, my cockpit is below.

      Yes, I use an S/4HANA on-premise. However, SAP CoPilot supports both S/4HANA on-premise and cloud (supported SAP S/4HANA 1709 SPS01 (minimum), please check here). You have only to order a subscription, you can build your own skills.

      Best regards,

      Shunichiro

       

  • Hello Shunichiro,

    yes I have a CoPilot subscription, and my cockpit looks like yours. But still I cannot access the Skillbuilder. In the documentation I read I have to add the suffix /skillbuilder to the CoPilot App Url. If I do this, i get an http 404 error.

    In the cockpit i have clicked on the subscribed application, then assigned myself all roles (like skill_developer etc.)

    The help also says, there are various “feature toogles” to be activated for skill builder, but I do not know how to get there either.

    Can you explain how to open the skillbuilder please.

    thank you,

    Johannes

    • Hi Johannes,

       

      To launch the SkillBuilder, you will have to follow the below steps,

      1. Click on copilot services under Applications->subscriptions from the Cloud cockpit
      2. You will find 2 URLs under Application URLs (1 with cert and another without cert). Will look something like below,
      3. https://copilotdcxxxxxx2-rxxxxxxxx.us2.hana.ondemand.com
      4. Add /copilot/config to the above url, https://copilotdcxxxxxx2-rxxxxxxxx.us2.hana.ondemand.com/copilot/config/
      5. Below screen will appear and choose the relevant/required features. But make sure you enable “Enable Skill Builder”
      6. And follow the below guide to create destinations. so you can pull the Odata services/annotations from S/4 box to create intents in SkillBuilder.
      7. https://help.sap.com/viewer/c7d829d2dff24c458f88fe7671e3ae8e/1902/en-US/73a98ea6e68044dfaf839d6c428330cc.html
      8. Now, you can launch the SkillBuilder services by amending the copilot service URL as below,
      9. https://copilotdcxxxxxx2-rxxxxxxxx.us2.hana.ondemand.com/skillbuilder
      10. And there you go, you can start playing with the SkillBuilder.
      11. Make sure you create destinations with (abap-BSE800-TECHNICAL-NLPPROV, abap-BSE800-SSO-NLP, abap-BSE800-TECHNICAL-NOTIFICATION)
      12. Also create source system grouping in the copilot configuration.

       

      Hope this helps!

      Thanks

      Sab

      Sabarinathan Chandrasekar

      • Dear sab,

        thank you, i can now start skillbuilder, the feature was not switched on.

        but i cannot create new skills, the button is not enabled.

        i have not created destinations yet, but the guide that you refer to seems to be for connecting to an on-premise system. Now i want to connect to an s4 cloud tenant, how would the connection then look like?

        do you have a guide for this at hand?

        thank you, johannes

        • Hi Johannes,

           

          Glad you could launch SkillBuilder now!

          As far as I know copilot can be connected only to the S/4 HANA OnPremise version for now. So I do not have any document on how to connect the same with HANA Cloud account. May be try using the Cloud connector to link your S/4 Cloud and copilot cloud services. If you could succeed, do let us know as well.

          Cheers

          Sab

          Sabarinathan Chandrasekar

      • Hi Chandrasekar,

        I have followed until point 5. But cannot “Enable Skill Builder”. It’s not highlighted or in other words, I cannot enable it. As yuo can see in the picture bellow.
        Would you like to guide me?
        Thank you.    Mubasher
      • Hi Sab,

        I have tried to use the config page of CoPilot.

        CoPilot config page: https://Application URL/copilot/config/

         

        Its giving me below error msg.

        Access Denied: You need to have one of these roles: copilot_admin

         

        Although  I have “Administrator” role in the subaccount

        And there is no such “copilot_admin” role in Platform Roles.

         

        If you have any idea, please suggest.

         

        Regards,

        Partha

  • Hello ,

    Could you please precise from where i can download skills .

    I’m working in purchase requisition creation with copilot and i want to import the standard Skills ?

    Did you know wich Odata service i need to use ?

  • Hi,

    I have couple of question on CoPilot.

    Q1: Is there standard skills available for S/4 HANA in CoPilot. Like for Sales Order Creation or Purchase Order Creation or View… or We have to build the skills in CoPilot Skillbuilder either using standard OData services or with custom OData services.

     

    Q2: Is there any per user cost involved to use CoPilot in Fiori Launchpad. Or only the the CoPilot subscription is the one time charge?

    Correct answers are highly appreciated!

     

    Regards,

    Partha

    • Hi Partha,

      I am not 100% sure on my answers, but this is what is my understanding from my analysis and few interactions with CoPilot team in SAP.

       

      A1: You will have standard skills for few of the standard apps in S/4 HANA 1902 (as this is the first release of CoPilot). But sure Sales Creation will be part of it. And you can also add few of the utterances to the standard skills. Again I may be wrong, but this is my understanding.

      A2: I believe copilot is user license based and you will have 10 users part of your trial account. But in terms of the S/4 HANA box user license, user who is triggering the odata service from copilot has to be a named user. I am not sure on the value of the cost for license in copilot services though.

       

      Thanks

      Sab

  • Hello ,

    I created a new Odataservices to create purchase request .

    When i try out the chatbot , The chatbot confirm the action with yes or not button .

    When i click on Yes, I have this error :

    Request “Yes” returned error: “null” – by provider undefined – Assistant

    Where can i define the action of the “Yes” button?

    Thank you .