This bot is what controls the @Slacker bot on the sndevs.com slack workspace.
🔔🔔🔔
CONTRIBUTORS must follow all guidelines in CONTRIBUTING.md or run the risk of having your Pull Requests labeled as spam.
🔔🔔🔔
Can be done without pulling this app into a ServiceNow instance.
This is the preferred method for adding simple call & response parsers (see Bowtie when chuck is mentioned, or Clap Back for examples)
- Fork this repo
- Create a new branch (name it according to what functionality you are adding)
- Create a new .js file in the Parsers folder (see CONTRIBUTING.md for requirements)
- Submit a pull request to the ServiceNowDevProgram/SlackerBot
mainbranch
If approved, your new parser automatically goes live for the bot's immediate use!
This method requires more setup, but is the preferred method for more complex parsers and functionalities, as it provides a method to robustly test before submitting a pull request.
- Fork this repo
- Go to your ServiceNow instance
- Go to
System Applications=>Studio - Once Studio loads, select
Import From Source Control - Use your forked repo to Import your application
- Optional: See below on how to get this bot working on your own slack server
- Make updates to the application (see CONTRIBUTING.md for additional details)
- In Studio, commit your changes to source control
- Submit a pull request to the ServiceNowDevProgram/SlackerBot
mainbranch
An accepted Pull Request and merge does not necessarily mean the functionality will go live immediately, as an admin for the host instance will need to pull the application into ServiceNow.
- Create a new app, select "From an app manifest"
- Select the Slack Workspace into which you want to install this app
- Copy and paste the manifest from either [App Manifest.json]("Slack App Manifest/appmanifest.json") or [App Manifest.yaml]("Slack App Manifest/appmanifest.yaml")
- Create the app
- Navigate to
Settings>Install App - Click the
Install to Workspacebutton - Verify the
viewanddopermissions - Click the
Allowbutton - Copy the
Bot User OAuth Tokenfor the ServiceNow system property configuration later
- Create a new app, select "From scratch"
- Select the Slack Workspace into which you want to install this app
- Navigate to
Features>Event Subscriptions - Turn on
Enable Events - Populate the
Request URLwith: https://YOURDEVINSTANCE.service-now.com/api/x_snc_slackerbot/slackerbot_event_handler
When you tab out of the field, make sure the URL is "Verified" before you proceed.
- Expand the
Subscribe to bot eventssection - Click the
Add bot User Eventbutton - Search for and select
message.channels - Search for and select
message.groups - Click the
Save Changesbutton - Navigate to
Features>OAuth & Permissions - Scroll down to
Bot Token Scopes - Click the
Add an OAuth Scopebutton - Search for and select
chat:write - Navigate to
Settings>Install App - Click the
Install to Workspacebutton - Verify the
viewanddopermissions - Click the
Allowbutton - Copy the
Bot User OAuth Tokenfor the ServiceNow system property configuration later
- Place token into the ServiceNow system property 'x_snc_slackerbot.SlackerBot.token'
- REMINDER: When you commit your changes, always delete the value of this property before you commit. If you forget to do this, Slack will automatically disable your token when it does a scan of GitHub and sees that you accidentally placed your private token online. If this happens, go into your Slack app and issue a new token.
- Invite your bot to a Slack channel
- Create a parser on the
x_snc_slackerbot_parsertable - Activate the parser in the Slack channel
- Check the Payload
x_snc_slackerbot_payloadtable to make sure SN is receiving Slack messages - Check 'Outbound HTTP Requests' to make sure the bot is replying to the channel
To fill your Parsers x_snc_slackerbot_parser table with all the parsers that exist on this repo:
- Go to the Parsers table list (type
x_snc_slackerbot_parser.listin your filter navigator and press enter) - Click on the "Sync Parsers" Banner UI Action
This syncs your table to this repo, if you rather sync it to another repo, change the value of your x_snc_slackerbot.Parsers_Sync_Repo system property.
The Parsers folder on ServiceNowDevProgram/SlackerBot is set up to send changes to the ServiceNow instance that @Slacker is hosted on (automatically, on every commit). To do this for your own fork and ServiceNow instance:
- In your forked repository, click on the Actions tab
- Click on "I understand" to activate workflows
- Go to the Settings tab
- Under
SecretsandActionsadd the following repository secrets:SN_INSTANCE_NAMEyour ServiceNow instance nameADMIN_USERNAMEthe username of an admin account on your ServiceNow instanceADMIN_PASSWORDthe password of the above account
- Create a new file in the Parsers folder and name it
something.js - Follow the template in the CONTRIBUTING.md document
- Commit the file
- Check your ServiceNow instance on the Parsers
x_snc_slackerbot_parsertable and verify the file was uploaded - Trigger the parser on a slack channel that your bot is in