Figure 1: PI Bot
Figure 2: PI DevOpsBot
Figure 3: Bot Feedback Loop
Payroll is a part of of every employee’s life but can be a source of friction when they have a question or feel like something is wrong. It is not easy to access payroll data, and HR/Payroll Professionals are often in a position to act as “Customer Service” for their organization’s employees. This is a burden on HR/Payroll and can be a poor customer experience for their employees. Therefore, why not use the latest technologies to make the payroll information more accessible for everyone? Nowadays, in the HR Tech field, professionals are thinking about the benefits the latest technology, such as AI, cloud technology, mobile, etc., can bring to the business world. And Payroll Innovation Bot is one of the efficient and smart solutions for companies to help their employees manage payroll more easily.
New payment models, such as event based payroll and real time payroll, generated from new technologies and new business models, has brought great strike to the HR Tech field. Companies like Uber and AirBnb requires much stronger HR service not just for the large quantities of their employees, but also for the real-time requirement for the payrolls. The Payroll Innovation Bot (PI Bot), is the attempt by ADP to apply multiple cutting-edge technologies to make our user experience better.
We hope to use its powerful real time payroll APIs and the PI Bot to transfer the HR service calls to the PI Bot platform so that we can lower the pressure of HR managers and reduce the budget for call center services.
By introducing PI Bot to ADP customers, employees can easily review their own payroll details and compare different payroll data by just asking the bot for results. Also, PI Bot offers convenient “issue reporting” functionalities for employees to report payroll issues and help HR manager better receive and organize the reported payroll issues. PI Bot is a pioneer to bring multiple cutting-edge technologies, such as AI, cloud, gamification, analytics, etc. together into practice in HR Tech field. Finally, we not only want to bring benefits for the payroll related issues, but also this initiative can drive more and more innovations in HR Tech.
Our goal is to connect the HR manager, Employee and DevOps smoothly using PI Bot. Employee can interact with PI Bot to get all kinds of information, including Payroll, HR, Benefits, etc. For escalated issues, PI Bot can assist Employee to generate ticket as a Trello card and save audit records into DynamoDB For HR Manager, PI Bot will track all the related issues in a central Trello board based on the escalated issues and feedbacks, DevOps team can keep adding new features to PI Bot. Through this evolving feedback loop, we can make PI Bot smarter, more connected and more capable. With the assistance of PI DevOpsBot, We can enjoy the convenience that it brings to help monitor various backend processes.
Summarize Payrolls. By asking the “EmployeeInfo” intents or clicking “Payroll Summary” button, users can get the payroll information within a certain period. Including payroll information, tax, working hours, etc.
Compare Payrolls. The “Compare Payrolls” function is activated when users want to check abnormal issues in current payroll or figure out his/her working and payment conditions in a longer term. The bot will generate the last payroll information and create a new table to visualize the detailed conditions of the two payrolls. The actual ADP APIs offers real time payroll information
Escalate Issues. The employee can forward their question on the payroll to their HR managers by either creating a new slack channel involving the HR manager, the bot and other related people by “@” function or writing a new issue card on the HR manager’s Trello list (if the HR manager has set up the tokens for the Trello and targeted list). This will greatly help reduce the traffic of HR service calls to the PI Bot platform. For all the reported issues, the bot will save the record to the DynamoDB automatically for future investigation and analysis.
Evolve PI Bot. By leveraging the escalated issues from above, Lex can evolve based on unsolved issues by adding new intents and new features, which will make PI Bot smarter, more connected and more capable.
HR Manager Functitionality
Bot Management. Each HR manager will own one or more slack teams. Each slack team will be assigned one Trello board for all the team members to create issue cards, which will later be exposed the HR manager.
Audit and Feedback. We also use DynamoDB to help authenticate and audit the Trello usage so that the manager can share Trello boards safely. What’s more, with all the data collected, we can generate analytics report which will be utilized to train the bot to be smarter and more capable.
Reduce call volume in service centers (PI Bot). This will help ADP HR managers to get less service calls. Therefore, ADP can reduce the budget on service center and HR managers can spend more time focusing on how to improve our SaaS-based service.
Track issues and generate report (PI Bot). In traditional payroll world, HR managers receive all kind of requests through emails and phone calls and have to keep track of them manually. However, with PI Bot, all of them can be tracked automatically and later we can generate reports for analytical reasons.
Monitor jobs for various environment (PI DevOpsBot). PI DevOpsBot let you check the overall condition of the environment by showing number of successful and failed jobs. Simply by asking “How many failed/red jobs are there?” will get you the answer.
View job dashboards (PI DevOpsBot). With the dashboard name, either full name or short form, PI DevOpsBot will present the user a list of detailed report of all the jobs in the specified dashboard. The report includes job name, job status, executor, last build number and a clickable url link.
Query job details (PI DevOpsBot). Once the user have the name of a job he can make queries specifically to it. The attributes that one can make queries on include last (successful) build time, last (successful) build number, executor and job claimed condition.
How we built it
In this project, we set up the “Payroll Innovation” ecosystem by creating two chatbots, which includes PI Bot for external clients (employees and HR managers), and PI DevOpsBot for internal ADP DevOps team.
As shown in the design above, the architecture of PI Bot consists of Slack and Trello as view and communication platforms, multi-AWS service as the serverless backend, database, and logic runner on the cloud, and ADP payroll APIs as the data source.
For PI DeveOpsBot shown above, it is for ADP internal usage and has been deployed on both Lex and Alexa platforms to help ADP developers monitor various backend processes
Challenges we ran into
Though there are many tutorials online, building the PI Bot and its brother, PI DevOps Bot is not easy. Here are some challenge points we met during the project:
How to retrieve more data from slack? Though Slack can be easily integrated with AWS Lex, the input data stream from Slack to Lex remains limited. In order to retrieve more data (e.g. Slack user information, and team information, etc.) from Slack, we built an extra layer between Slack and Lex using API-Gateway and Lambda function to reorganize the data to be injected to Lex. By doing this, we can also utilize the Lambda as a simple backend logic runner to do some primary data processing and help trigger some awesome Slack features such as buttons and menus.
How to help HR managers better track employee’s issues? Commonly, when facing an issue, the employee can either directly go to the HR manager or send an email. However, in HR manager’s view, it is cumbersome to keep track of all the issues. Therefore, we give the HR managers a better choice to use Trello to manage reported issues. We also use the DynamoDB to as the authentication tool to protect HR manager’s Trello account.
How to mock data? In order to protect the privacy of ADP’s clients, we need to mock the data. Instead of using the data returned from the real ADP payroll API, we follow the original structure and change the values. Our mock is using the AWS API gateway and lambda to access the mock data stored in DynamoDB.
Accomplishments that we're proud of
- Payroll is a part of of every employee’s life but can be a source of friction when they have a question or feel like something is wrong. We use the latest technologies to make the payroll information more accessible for everyone;
- Serverless architecture design and accomplishment using multiple AWS services, Slack, and Trello;
- Successfully built the intermediate layer between Slack and Lex which makes the bot more flexible and powerful to unlock more hidden features in AWS, Slack, and Trello;
- Ported our PI DevOpsBot to Alexa so that the clients can ask questions without turning on the computer, which brings more convenience to users. This also gives us more confidence for leveraging echo show in the future.
What we learned
- HR Tech Initiatives: Solve real world payroll issues for employess and HR managers.
- Technical skills: Various AWS services including Lex, Alexa, Lambda, API-Gateway, DynamoDB, VPC, etc. Third Party tools such as Slack and Trello.
- Instead of build a team ourselves, we can leverage powerful Lex and Alexa services as our NLU and ASR experts
What's next for ADP PI Bot
In the future, we plan to develop more features on PI Bot to offer better service to both ADP HR managers and employees. The improvements for the PI Bot shall start in the following aspects:
- Leverage more ADP APIs so that users can access various payroll, hr and benefits functionalities;
- Extend PI Bot features to Alexa platform;
- Leverage Echo Show for features with more detailed information;
- Collect Employees HR managers’ feedbacks to improve PI Bot;
- Use the issue records in DynamoDB to generate reports for ADP and its client companies to investigate and analyze.