xtreamsrl/clockify-nlp-bot
An NLP driven bot for interacting with Clockify timesheet via different channels
Clockify NLP Bot
Clockify NLP Bot is a Bot Framework bot developed to act as a timesheet assistant for the busy and the lazy among us.
It reminds proactively people to fill in their time when EOD approaches, and it accepts natural language for creating time entries directly from chat.
It's easy!
How to use it
It's simple, just open a chat with the bot either on Teams or Telegram.
๐ Chat on Telegram
๐ Chat on Teams
Features:
Proactive reminders
It will assist you to complete your due diligence. If you have less than 6 hours
reported on your Clockify (no matter how you put them in) it sends you a reminder.
Adding time entries with ease
Add your time flexibly, even indicating projects partially. For example, you can type
time bot instead of time_survey_bot. If it's not ambiguous, it'll figure it out.
Smart task request
Some projects benefit from tasks drill down, some don't. If you never use them on the project,
it doesn't ask it in the first place.
Architecture
This bot is hosted by xtream on Azure Cloud.
This is what it looks like:
Support
This project was started as an internal tool for our employees, and then we decided to roll it out
to anyone who could benefit from it, with a few tweaks and adjustments. Hence, we'd do our best to work on any issue
or bug but do consider we're maintaining it on our spare time.
If you'd like to see this project grow in features, richness and support, you can give a โญ๏ธ to let us know this is helpful.
You can also buy us a coffee if you like.
Installing
If you want to host the bot yourself, you'll need to provide for the other components of the architecture on your own.
The following are minimal instructions for installing and deploying the bot on App Service.
Prerequisites
- .NET Core SDK version 3.1
# determine dotnet version
dotnet --versionTo run this bot
Make sure to provide required configuration values. The app currently needs a value for these properties:
{
"LuisAppId": "",
"LuisAPIKey": "",
"LuisAPIHostName": "",
"ProactiveBotApiKey": "",
"KeyVaultName": "",
"MicrosoftAppId": "",
"MicrosoftAppPassword": ""
}Then run the bot. For example, from a terminal:
# run the bot
dotnet runIntegration testing setup
- Create a Clockify account and generate an API key
- Create a
test.runsettingsfile with the following env variables
<?xml version="1.0" encoding="utf-8"?>
<RunSettings>
<RunConfiguration>
<EnvironmentVariables>
<CLOCKIFY_API_KEY><!--API-KEY--></CLOCKIFY_API_KEY>
<CLOCKIFY_WS_ID><!--ACTIVE-WORKSPACE-ID--></CLOCKIFY_WS_ID>
</EnvironmentVariables>
</RunConfiguration>
</RunSettings>- Configure the Test Runner to use the custom settings
Testing the bot using Bot Framework Emulator
Bot Framework Emulator is a desktop application that allows bot developers to test and debug their bots on localhost or running remotely through a tunnel.
- Install the Bot Framework Emulator version 4.9.0 or greater from here
Connect to the bot using Bot Framework Emulator
- Launch Bot Framework Emulator
- File -> Open Bot
- Enter a Bot URL of
http://localhost:3978/api/messages
Deploy the bot to Azure
To learn more about deploying a bot to Azure, see Deploy your bot to Azure for a complete list of deployment instructions.
Further reading
Who we are
A proudly ๐ฎ๐น software development and data science startup.We consider ourselves a family of talented and passionate people building their own products and powerful solutions for our clients. Get to know us more on xtreamers.io or follow us on LinkedIn.

