Skip to content
All projects
AutomationPython · GitHub Actions cronPrivate codebase

Support Ticket Notifier

Scheduled Notion → push + WhatsApp notifier for support tickets.

Role · Author — integration design, delivery pipeline and scheduling.

3
Channels
3
Runs / day
4
Ticket states
Notion
Source

Overview

A scheduled service that tells students when their support tickets move. It reads ticket databases in Notion, fans out OneSignal push, WhatsApp Cloud API template messages and a signed webhook into the learning platform, then advances each ticket's status so nobody is notified twice.

Architecture

  1. Scheduler

    GitHub Actions cron triggers each run.

  2. Worker

    A single Python process with a notification module per channel.

  3. State

    Notion status fields act as the idempotency marker between runs.

What it does

Ingest

  • Queries Notion ticket databases for resolved, in-progress, cancelled and unresolvable tickets

Fan-out

  • OneSignal push targeted by external user ID
  • WhatsApp template messages via a threaded, rate-limited sender
  • Signed webhook to the learning platform for in-app notifications

State

  • Advances tickets to 'notified' states after delivery
  • Deep links back to the help-center site

Ops

  • GitHub Actions cron with three runs a day
  • Secrets-managed credentials and run logs

Engineering decisions

Idempotency without a database

Notion's own status field is the only state; each run moves tickets forward so re-runs are safe.