-
Unpack the code to a folder .../amex-offer-monitor
-
Install the Node.js application by running
npm installfrom the directory (Install node.js on your system first if you don't have it.) -
Rename config.yml.example to config.yml
-
Amex credentials - either update your username & password in the config file, or if you don't want to leave them in plaintext on your harddrive, supply them some other way via
--username <username> --password <password>on each run of the script -
Email support - If you want to receive email updates from amex-offer-monitor, you need an email account to send the mail from. I recommend a free/throwaway mail.com account, but you can use others. Update config.yml with your inbox address, and your sender's email, password, smtp_port, and smtp_server. (smtp settings configured for mail.com)
-
Automation - the script is intended to be run once per day or so. You can do this with cron on linux or taskschd.msc on windows, so you just get a daily digest of your amex offer status.
-
To launch the script, open a command window or powershell, and from the script directory run
node amex-offer-monitor.js
-
notify_new: Email will contain all new offers detected since the last time the script ran
-
notify_removed: Email will contain all offers no longer detected that existed the last time the script ran
-
notify_eligible_expiry: Get a reminder about any eligible offers (not added to card) which are expiring soon.
-
notify_enrolled_expiry: Get a reminder about any enrolled offers (added to card) which are expiring soon.
-
notify_eligible_expiry_days: Number of days in advance to warn about expiration for eligible offers (max 10)
-
notify_enrolled_expiry_days: Number of days in advance to warn about expiration for enrolled offers (max 10)
-
notify_all_enrolled : Receive a summary about all enrolled offers on all cards
-
notify_all_eligible : Receive a summary about all eligible offers on all cards (probably huge!)
Occasionally on login amex will throw an extra security page prompting for the last 4 of your SSN. Currently experimenting with a solution to workaround this, but it may not happen often enough to big deal unless you are hammering them running the script over and over.
If you want to handle multiple amex accounts, you can create a separate config file for each account. Add a amex:historyfile key to each config file indicating a filename in the directory that you want to use for each account. You may also customize the email subject with a email:subject key. This should allow you to run the program for multiple accounts without thrashing the data between the two. To run with a config file other than the default config.yml, launch node amex-offer-monitor.js --config mycustomconfigfile.yml