Notification Channels - JaiminBrahmbhatt/Global-Entry-Appointment-Scanner GitHub Wiki

Notification Channels

All configured channels fire concurrently when a new appointment slot is found. One failing channel never blocks the others — failures are logged and the scan continues.


Console

Prints notifications directly to the terminal. Zero configuration required.

This channel is automatically enabled if you run setup and don't select any other channel.

Config:

[notifications.console]
enabled = true

Email

Sends notifications via SMTP (port 587, STARTTLS). Works with any email provider.

Setup

Run global-entry-scanner setup and select email. You'll be prompted to pick your provider — the SMTP host and port are filled in automatically. For Other, you'll enter the host and port manually.

Supported providers and the credential they require:

Provider SMTP host Credential
Gmail smtp.gmail.com App password (required if 2-Step Verification is on)
Outlook / Hotmail smtp.office365.com Password or app password
Yahoo Mail smtp.mail.yahoo.com App password (required)
iCloud Mail smtp.mail.me.com App-specific password
Zoho Mail smtp.zoho.com Password
Other your SMTP host SMTP password

Config:

[notifications.email]
from_email = "[email protected]"
to_email   = "[email protected]"
password   = "your-password-or-app-password"
smtp_host  = "smtp.gmail.com"   # set automatically by setup
smtp_port  = 587                # set automatically by setup

from_email and to_email can be the same address.

Existing configs without smtp_host/smtp_port continue to work — they default to smtp.gmail.com:587.


Discord

Sends a message to a Discord channel via an Incoming Webhook.

Setup

  1. Open your Discord server and go to the channel you want notifications in
  2. Click the gear icon (Edit Channel) → IntegrationsWebhooks
  3. Click New Webhook, give it a name (e.g. Global Entry Scanner), optionally set an avatar
  4. Click Copy Webhook URL

Config:

[notifications.discord]
webhook_url = "https://discord.com/api/webhooks/1234567890/xxxxxxxxxxxxxxxxxxxx"

Slack

Sends a message to a Slack channel via an Incoming Webhook.

Setup

  1. Go to api.slack.com/appsCreate New AppFrom scratch
  2. Give it a name (e.g. global-entry-scanner) and pick your workspace
  3. Under Add features and functionality, choose Incoming Webhooks → toggle it On
  4. Click Add New Webhook to Workspace, pick the channel, click Allow
  5. Copy the webhook URL that appears

Config:

[notifications.slack]
webhook_url = "https://hooks.slack.com/services/T00000000/B00000000/xxxxxxxxxxxxxxxxxxxx"

SMS (Twilio)

Sends an SMS text message via the Twilio API.

Setup

  1. Sign up at twilio.com — free trial includes a small credit and one phone number
  2. From the Twilio Console dashboard, copy your Account SID (starts with AC) and Auth Token
  3. Go to Phone NumbersManageBuy a number to get a number to send from

Free trial: Twilio trial accounts can only send SMS to verified phone numbers. Go to Phone NumbersManageVerified Caller IDs and add your personal number before testing.

Config:

[notifications.sms]
account_sid = "ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
auth_token  = "your_auth_token_here"
from_number = "+12125550000"   # your Twilio number
to_number   = "+12125551234"   # your personal number

Phone numbers must be in E.164 format: + followed by country code and number, no spaces or dashes.


Using multiple channels

All active channels fire for every notification. Configure as many as you want — they coexist in the same config file.

To use only specific channels for a single scan without changing your config:

global-entry-scanner scan --notify discord,sms
global-entry-scanner scan --notify email