Skip to content

Monitoring

Sync Log (Primary View)

Dashboard → Syncs is the main place to monitor sync activity. Use filters:

  • Source – Givebutter, Square, Mailchimp
  • Status – success, failed, skipped
  • Date range – last 24h, last week, etc.

Review failed rows regularly; open the detail modal for full error and payload.

Health Endpoint

GET /health – Returns 200 and a simple status (e.g. {"status":"ok"}) when the Worker is running. Does not verify LGL or third-party APIs.

bash
curl -s https://your-worker-url.workers.dev/health

Test Connections (Dashboard)

Settings page typically has Test buttons that call the Worker to verify:

  • LGL API (credentials and connectivity)
  • Givebutter API
  • Square API

Use after changing secrets or when debugging connectivity.

Alerts

  • Email alerts – When a sync fails after retries, the Worker can send an email to configured alert recipients. Set recipients in Settings → Alert recipients.
  • Development – In dev, alerts may be logged only (not sent). Production deploy uses the configured mail provider (e.g. Mailchannels).

Cron Jobs

ScheduleJobPurpose
Every 15 minutesPollingFetch recent Givebutter (and Square) transactions; sync any not already in sync_log. Catches missed webhooks.
Weekly (e.g. Sunday)SummaryEmail weekly sync stats (success/failed counts, optional campaign totals) to alert recipients.
Hourly (or as configured)Campaign syncRefresh Givebutter campaign cache so Mappings has up-to-date campaign list.

Cron triggers are configured in Cloudflare Workers (wrangler.toml or dashboard). No user action needed for them to run.

Wrangler Tail (Developer)

For real-time Worker logs (including console.log and request/response):

bash
cd noma-sync
wrangler tail

Use --format pretty for readable output. Helpful when testing webhooks or debugging.

What to Monitor Regularly

  1. Failed syncs – Resolve or fix mapping/credentials.
  2. Skipped (idempotent) – Normal; no action unless you expect a new gift.
  3. Recovered (polling) – Indicates webhook was missed; polling caught it. If frequent, check webhook delivery from Givebutter/Square.