Skip to main content

WhatsApp Attendance Bot

An automated WhatsApp bot that sends scheduled entry and exit notifications via GitHub Actions. Perfect for tracking attendance, work hours, or any time-based notifications through WhatsApp groups.

Overview

This bot uses the Ultramsg API to send WhatsApp messages on a schedule. It runs automatically via GitHub Actions cron jobs, sending entry notifications at 9:00 AM and exit notifications at 3:00 PM (Monday through Friday).

Quick Start

Get your bot running in under 5 minutes

Configuration

Configure environment variables and scheduling

GitHub Actions

Set up automated workflows

Customization

Customize your notification messages

Key Features

Automated Messaging

Send WhatsApp messages automatically via the Ultramsg API

Scheduled Notifications

Configure cron schedules for entry/exit notifications

Time-Based Logic

Automatically detect entry vs. exit based on UTC time

Manual Testing

Test your bot manually with workflow dispatch

How It Works

The bot operates on a simple workflow:
1

Schedule triggers

GitHub Actions runs the bot at configured cron times (9 AM and 3 PM CST)
2

Time detection

The bot checks the current UTC hour to determine entry or exit
3

Message sent

A formatted message is sent to your WhatsApp group via Ultramsg API

Use Cases

Automatically log when you start and end work each day to a WhatsApp group
Keep a record of your daily work hours shared with your team
Send time-based reminders or notifications to WhatsApp contacts
Adapt the bot for any scheduled WhatsApp messaging needs

Requirements

Before getting started, you’ll need:
  • A GitHub account with Actions enabled
  • An Ultramsg account and API credentials
  • A WhatsApp group or contact ID to send messages to
  • Basic familiarity with GitHub repositories and secrets
The bot is designed to run completely free using GitHub Actions’ free tier, which includes 2,000 minutes per month.

Next Steps

Get Started

Follow the quickstart guide to deploy your bot

Environment Setup

Learn about required environment variables

Build docs developers (and LLMs) love