Purpose
This timer synchronizes SalesMsg broadcast and campaign data back into the Supabase CCP database. It ensures campaign tracking rows are updated with the latest results from the SalesMsg API on an hourly basis.
Schedule
OnCalendar=*:13:00 with RandomizedDelaySec=300s.
Runs hourly at 13 minutes past the hour — the :13 offset is deliberate to avoid top-of-hour stampede with other timers. Up to 5 minutes additional jitter from RandomizedDelaySec.
Service
Runs sm-broadcast-sync.service, which executes the following Node.js script:
/usr/bin/node /home/opsadmin/.openclaw/workspace/scripts/sync-salesmsg-broadcasts.js
Credentials loaded via EnvironmentFile=/home/opsadmin/.openclaw/master.env. SalesMsg uses query-param token auth (not HMAC) per CLAUDE.md webhook governance.
Failure behavior
The service is configured as a oneshot type. Failures are captured in the systemd journal. No automatic retry is configured within the unit file; the next attempt occurs at the following :13 mark.
Health signal
Verification can be performed via the systemd journal or by checking the campaign tracking rows in Supabase for recent update timestamps:
systemctl --user status sm-broadcast-sync.timerjournalctl --user -u sm-broadcast-sync.service
Related
- cron-timer-registry — Central registry of all system timers.
- salesmsg — SMS platform integration details.