-
Register a new bot here: https://developer.webex.com/my-apps. You will need the bot name, bot email and token.
-
nodejs
-
typescript
-
clasp: https://developers.google.com/apps-script/guides/clasp
- Clone the repo
- Run
npm install
- Run
clasp login - Run
clasp create --type standalone - Edit the file
.clasp.jsonby addingfilePushOrder:
{
"scriptId": "...",
"filePushOrder": [
"Common.ts",
"RequestManager.ts",
"Store.ts",
"BotCache.ts",
"Constants.ts",
"Utils.ts"
]
}-
Run
clasp push. TypeYesforManifest file has been updated. Do you want to push and overwrite? -
Run
clasp openand open the project link in the browser. -
In browser, open
Test.gsfile and run thetestfunction to initialize a default config. -
Now deploy the first version of the script:
Publish->Deploy as webapp...-> ClickUpdate. CopyWeb app URL, it's yourwebAppHookfor the MainConfig. -
In browser, open
File->Project Properties->Script Propertiesand copy the content of propertyConfig. This config has to be updated inline per your needs. For convenience, you can edit it in your favourite JSON editor and then save the new value. Default config example:{"botName":"NotSpecified","botEmail":"NotSpecified","admins":["NotSpecified"],"botAuthToken":"NotSpecified","webAppHook":"NotSpecified","dailyReportTo":[],"managers":[],"dailyStatusRoomId":"NotSpecified","operationsRoomId":"NotSpecified","debugRoomId":"NotSpecified","helpPageUrl":"NotSpecified"}The initial required params are:
botName,botEmail,botAuthToken,webAppHook.Suggestions:
- Read js docs in MainConfig.ts
-
Once you have all parameters filled in, open
Main.gsfile and run theBot_Initfunction. -
Create a "Debug Room" space in the Webex and invite the bot into the space. Send bot a message by mentioning it, to see the help, example:
@mybot help. You need to initialize the debug room first, run, example:@mybot init debug room. This room will be used for Debug messages. -
To see the other commands, send, example:
@mybot help.
To run functions, such as Bot_AskStatuses, Bot_CheckStatuses, on a regular basis, use the Google Apps Script triggers feature:

Some functions require additional permissions. Run a desired function manually to explicitly give it permissions (one time operation).
That's it!