| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Attendances (hr_attendance)
• Employees (hr) • Discuss (mail) |
| Lines of code | 783 |
| Technical Name |
slack_attendance_integration |
| License | LGPL-3 |
| Website | https://github.com/anmol6213 |
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Attendances (hr_attendance)
• Employees (hr) • Discuss (mail) |
| Lines of code | 783 |
| Technical Name |
slack_attendance_integration |
| License | LGPL-3 |
| Website | https://github.com/anmol6213 |
Slack Attendance Integration
π’ Available for Hire!
Looking for a skilled and reliable Odoo Developer to build, fix or customize your Odoo system?
Letβs build something great together! I specialize in custom module development, ERP implementation, integrations, and performance optimization.
π¬ Hire Me wa.me/+91 82082 40374 /anmolpatil83
Overview
This module allows employees to mark attendance directly from Slack using simple slash commands. It integrates seamlessly with Odoo Attendance and provides real-time tracking without opening Odoo.
Key Features
How to use
- Go to Settings > Slack Configuration:
- Add Slack User ID in Employee:
- Use commands like /login, /break, /resume, /logout:
- Attendance is tracked automatically in Odoo:
Screenshots
Found any issue? Raise here -> https://github.com/anmol6213/OdoosApps/issues/new
Slack Attendance Integration
Track employee attendance directly from Slack β no separate app, no browser required. Employees use simple slash commands to check in, check out, and manage breaks, all synced automatically with Odoo's HR Attendance module.
Features
Slack Slash Commands
| Command | Action |
|---|---|
| /login | Check in β records attendance in Odoo |
| /logout | Check out β closes attendance record |
| /break | Start a break |
| /resume | End a break and return to work |
Smart Login Grace Time
Configure a grace window (e.g. 5 minutes) so that an employee who types /login at 10:00 AM is recorded as checking in at 9:55 AM. This removes the pressure of racing the clock.
Break Threshold
Short interruptions (bathroom, coffee) that fall below the configured minimum break duration are saved but not deducted from working hours. Only meaningful breaks count.
Net Working Hours
Every attendance record shows:
Net Working Hours = Total Hours β Counted Break Time
AI-Powered Daily Summary (optional)
When enabled with an Anthropic API key, each employee receives a personalised Slack DM at end-of-day. The message references their actual hours, streak, and target β not a generic template.
Daily Attendance Alert
Employees who forgot to /logout receive an automatic reminder DM.
Installation
Requirements
- Odoo 17.0 or 18.0
- Python packages: certifi, pytz (both included in standard Odoo)
- A Slack workspace with a configured App (slash commands + bot token)
Steps
Copy the slack_attendance_integration folder into your Odoo addons path.
Restart the Odoo server.
In Odoo, go to Apps β search for Slack Attendance β click Install.
Navigate to Attendances β Configuration β Slack Settings.
Fill in:
- Slack Signing Secret β from your Slack app's Basic Information page
- Bot Token β starts with xoxb-
- Incoming Webhook URL β from Incoming Webhooks in your Slack app
Set the Webhook URL in your Slack app's slash commands to:
https://<your-odoo-domain>/slack/attendance
For each employee, open their HR record and add their Slack User ID (found in Slack β profile β Copy member ID).
Slack App Configuration
Create a new Slack app at https://api.slack.com/apps and configure:
Slash Commands
Create four commands, all pointing to the same URL:
| Command | Usage hint |
|---|---|
| /login | Check in to office |
| /logout | Check out from office |
| /break | Start a break |
| /resume | Resume work after a break |
Required Bot Token Scopes
- chat:write β to send DMs to employees
- commands β to respond to slash commands
AI Summary Setup (optional)
- Get an API key from https://console.anthropic.com
- In Slack Settings, enable AI Summaries and paste the key.
- The daily cron job will now send personalised messages instead of the default template.
Note
The API key is visible only to Odoo System Administrators. Summaries are generated once per day and cached on the attendance record.
Configuration Reference
| Field | Description |
|---|---|
| Login Grace Minutes | Subtract N minutes from actual login time |
| Minimum Break Minutes | Breaks shorter than this are not counted |
| Minimum Working Hours | Target hours for daily summary comparison |
| Send Daily Summary | Enable end-of-day Slack DM |
| Summary Time | Hour (24h format) when the cron fires |
| Enable AI Summaries | Use Claude AI for personalised messages |
| Anthropic API Key | Your sk-ant- key (admin-only) |
Security
- Every request from Slack is verified using HMAC-SHA256 with your Signing Secret before any database action is performed.
- Replay attacks are blocked β requests older than 5 minutes are rejected.
- SSL connections use the certifi CA bundle (no certificate verification bypass).
- The Anthropic API key is stored in an admin-only field group.
Changelog
17.0.1.0.0 (2024)
- Initial release
- Login / logout / break / resume slash commands
- Grace minutes and minimum break threshold
- Net working hours computation
- Daily Slack summary via cron
- AI-powered personalised summaries (Claude)
- HMAC-SHA256 Slack signature verification
- certifi-based SSL β no CERT_NONE
- Employee timezone support (no hardcoded IST)
Support
- GitHub: https://github.com/anmol6213/slack_attendance_integration
- Issues: https://github.com/anmol6213/slack_attendance_integration/issues
Please log in to comment on this module