Challenge Overview
Hercules uses Slack internally for communication between teams. We also have built a large Node library that integrates with internal Hercules services. This challenge will be the beginning of a project to expose Hercules services into Slack to make useful tools that the client can use for support and investigation of issues.
Botkit
For this proof of concept, we'd like to use Botkit:
https://github.com/howdyai/botkit
For this challenge, we will just be targeting Slack and Slack Buttons. The Botkit repo contains examples for both.
Customer information
For this challenge, we are going to focus on customer information, including searching, viewing details, viewing bills, and viewing devices.
Customer search
We want to look up a customer by:
* Email (using Einstein)
* Name (using PSG)
* Account number (using Einstein)
* Phone number (using Einstein)
The search could either return 0, 1, or >1 results.
0 results should show a message to the user like "No results found for search {search term}"
1 result should immediately load that account through Einstein
>1 result should prompt the user to select one of the search results.
Customer Details
Once a customer account is selected, we will use Einstein to look up the customer details and display them, including:
* Customer name
* Customer email
* Customer address
* Customer phone number
* Customer service account number
If the Slack user clicks on the customer email, we should launch the default email client (similar to a mailto: link)
If the user clicks the address, we should launch Google Maps for that address
Customer actions
Once a customer is loaded, we should have buttons or actions that allow the Slack user to:
* Download the latest PDF bill for the customer
* Download a past PDF bill for the customer (will need to prompt for a date from the last 10-12 bill dates)
* Show the devices registered to the customer
Heroku deploy
We will be targeting Heroku for the deployment, so please make sure your deployment guide covers how to not only configure the app, but also deploy it to Heroku.
Ideally, anything configurable, like the Slack hook, should come from the environmental variables, so we can set them on Heroku like "heroku config:set ...."
Base libraries
The Node base libraries we have existing will be available in the forum. The libraries likely won't cover everything needed for the requirements, so test Ruby scripts will be available to help here.
Botkit
For this proof of concept, we'd like to use Botkit:
https://github.com/howdyai/botkit
For this challenge, we will just be targeting Slack and Slack Buttons. The Botkit repo contains examples for both.
Customer information
For this challenge, we are going to focus on customer information, including searching, viewing details, viewing bills, and viewing devices.
Customer search
We want to look up a customer by:
* Email (using Einstein)
* Name (using PSG)
* Account number (using Einstein)
* Phone number (using Einstein)
The search could either return 0, 1, or >1 results.
0 results should show a message to the user like "No results found for search {search term}"
1 result should immediately load that account through Einstein
>1 result should prompt the user to select one of the search results.
Customer Details
Once a customer account is selected, we will use Einstein to look up the customer details and display them, including:
* Customer name
* Customer email
* Customer address
* Customer phone number
* Customer service account number
If the Slack user clicks on the customer email, we should launch the default email client (similar to a mailto: link)
If the user clicks the address, we should launch Google Maps for that address
Customer actions
Once a customer is loaded, we should have buttons or actions that allow the Slack user to:
* Download the latest PDF bill for the customer
* Download a past PDF bill for the customer (will need to prompt for a date from the last 10-12 bill dates)
* Show the devices registered to the customer
Heroku deploy
We will be targeting Heroku for the deployment, so please make sure your deployment guide covers how to not only configure the app, but also deploy it to Heroku.
Ideally, anything configurable, like the Slack hook, should come from the environmental variables, so we can set them on Heroku like "heroku config:set ...."
Base libraries
The Node base libraries we have existing will be available in the forum. The libraries likely won't cover everything needed for the requirements, so test Ruby scripts will be available to help here.