Last Updated at 12th Mar, 2021 5:00pm

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/f30f44b0-b27a-4e8d-b7a9-c003dce9f2c4/Untitled.png

Overview

BotStar Appstore is a link to connect BotStar App with a third party services.

After connecting BotStar with the app, the user can go to Bot Builder for setting. Then, on the Property penal on the right, they can choose an action.

Toolbox App Example

BotStar Toolbox App supports 2 features which are:

  1. Get current date/time with a predefined timezone.
  2. Get a random number in the range defined by bot builder.

You can also experience our Toolbox App here: https://app.botstar.com/auth/connect/botstar-toolbox

This is the user's journey of connecting and setting the Toolbox App

BotStar Sample Toolbox App

BotStar Sample Toolbox App

And here is ToolBox App JSON config

{
   "_id":"sample-appstore-ba748bc92de374",
   "version":"v1.0",
   "unique_name":"botstar-toolbox",
   "title":"BotStar Tool Box",
   "description":"Connect to BotStar Tool Box and experience our additional functions.",
   "avatar":"<https://static.botstar.com/app-stores/tool-box-app/assets/botstar-toolbox-avatar.png>",
   "icon":"<https://static.botstar.com/app-stores/tool-box-app/assets/botstar-toolbox-icon.png>",
   "auth":{
      "type":"APIKEY",
      "params":[
         {
            "name":"token",
            "title":"API Token"
         }
      ],
      "connection":{
         "headers":{
            
         },
         "qs":{
            
         }
      }
   },
   "actions":[
      {
         "name":"current_datetime",
         "title":"Get Current Date/Time",
         "description":"Get current date of given timezone",
         "avatar":"<https://static.botstar.com/app-stores/tool-box-app/assets/botstar-toolbox-datetime-icon.png>",
         "guidance":"Please give us the Timezone and your expected datetime format. We will send you the correct datetime.",
         "forms":[
            {
               "name":"timezone",
               "title":"Timezone",
               "source":"timezone",
               "default":"Europe/London"
            },
            {
               "name":"datetime_format",
               "title":"Date Format",
               "source":"datetime_format"
            }
         ],
         "requests":[
            {
               "method":"GET",
               "url":"<https://api.botstar.com/sample/appstores/datetime?timezone=[[timezone]>]&datetime_format=[[datetime_format]]",
               "headers":{
                  
               },
               "payload":{
                  
               },
               "mapping":[
                  {
                     "name":"datetime",
                     "title":"Datetime",
                     "path":"$.datetime"
                  }
               ]
            }
         ]
      },
      {
         "name":"random_number",
         "title":"Get Random Number",
         "description":"This action will help to to get a number randomly between a range.",
         "avatar":"<https://static.botstar.com/app-stores/tool-box-app/assets/botstar-toolbox-random-number.png>",
         "guidance":"Please give us 2 numbers, this action will give you a number between them.",
         "forms":[
            {
               "name":"minimum",
               "title":"Minimum",
               "default":"0"
            },
            {
               "name":"maximum",
               "title":"Maximum",
               "default":"100"
            }
         ],
         "requests":[
            {
               "method":"GET",
               "url":"<https://api.botstar.com/sample/appstores/random_number?max=[[maximum]>]&min=[[minimum]]",
               "headers":{
                  
               },
               "payload":{
                  
               },
               "mapping":[
                  {
                     "name":"number",
                     "title":"Number",
                     "path":"$.number"
                  }
               ]
            }
         ]
      }
   ],
   "sources":[
      {
         "type":"static",
         "name":"datetime_format",
         "list":[
            {
               "text":"Current Month",
               "value":"DD"
            },
            {
               "text":"Current Date",
               "value":"MM"
            },
            {
               "text":"Current Hour",
               "value":"HH"
            },
            {
               "text":"2021-03-08",
               "value":"YYYY-MM-DD"
            },
            {
               "text":"14:00",
               "value":"HH:mm"
            },
            {
               "text":"02:00 PM",
               "value":"hh:mm A"
            },
            {
               "text":"2021-03-08 14:00",
               "value":"YYYY-MM-DD HH:mm"
            },
            {
               "text":"2021-03-08 2:00 PM",
               "value":"YYYY-MM-DD hh:mm A"
            }
         ]
      },
      {
         "type":"rpc",
         "name":"timezone",
         "request":{
            "method":"GET",
            "url":"<https://api.botstar.com/sample/appstores/timezones>",
            "headers":{
               
            },
            "payload":{
               
            },
            "mapping":[
               {
                  "path":"*",
                  "text":"$.title",
                  "value":"$.value"
               }
            ]
         }
      }
   ]
}

Structure Definition

App JSON config

{
    "title": String,
    "unique_name": String,
		"description": String,
    "icon": String,
    "avatar": String,
    "***auth***": {
        "type": Enum[APIKEY],
        "params": [
            {
                "name": String,
                "title": String
            }
        ],
        "connection": {
            "headers": Object,
            "qs": Object
        }
    },
    "***actions***": [
        {
            "name": String,
            "title": String,
            "description": String,
						"guidance": String,
            "forms": [
                {
                    "name": String,
                    "title": String,
                    "source": String,
                    "default": String
                }
            ],
            "requests": [
                {
                    "method": Enum[GET, POST, DELETE, PUT, PATCH],
                    "url": String,
                    "headers": Object,
                    "payload": Object,
                    "mapping": [
                        {
                            "name": String,
                            "title": String,
                            "path": String,
                        }
                    ]
                }
            ]
        }
    ],
    "***sources***": [
        {
            "type": "static",
            "name": String,
            "list": [
                {
                    "text": String,
                    "value": String
                }
            ]
        },
        {
            "type": "rpc",
            "name": String,
            "request": {
                "method": Enum[GET, POST, DELETE, PUT, PATCH],
                "url": String,
                "headers": Object,
                "payload": Object,
                "mapping": [
                    {
                        "path": String,
                        "text": String,
                        "value": String
                    }
                ]
            }
        }
    ]
}

App Assets