Skip to main content
Plugins Docs About Support Pricing My Account Browse Plugins

Bodholdt Backup Pro Docs

Connect a Slack or Discord webhook, choose which backup events alert you, and set up the backup-health digest.

Full Guide
v1.1.5

Bodholdt Backup Pro needs Bodholdt Backup for Google Drive or Bodholdt Backup for OneDrive active on the same site. Either one is enough, and both are free.

What Bodholdt Backup Pro is

Bodholdt Backup Pro is a paid companion for Bodholdt Backup for Google Drive and Bodholdt Backup for OneDrive. Both of those plugins are free, both are GPL, and both already email you after every backup attempt. This companion adds two things they do not do on their own: it posts the same events to your own Slack or Discord webhook, along with two they never email (a restore starting, and a database view that would stop the next backup), and it sends a per-site backup-health digest on a weekly or daily schedule.

It takes no backups of its own, and it replaces neither backup plugin. It only listens for events the backup plugins announce and reports them. Your backups, schedules, restores, and retention rules are untouched whether this companion is installed or not.

One license covers both clouds. If you run Google Drive on one site and OneDrive on another, or both on the same site, that is one product either way.

What it needs before it can do anything

Backup Pro needs at least one Bodholdt backup plugin active on the site to have anything to report on. Without one it still activates cleanly, explains itself in a plain notice on your Plugins screen, and does nothing at all.

It attaches to the lifecycle hooks that shipped in Bodholdt Backup for Google Drive 6.51.0 and Bodholdt Backup for OneDrive 5.48.0. Older backup versions keep working exactly as before, but they announce no events, so there is nothing for the companion to send. The one-line suggestion that failure alerts lead with comes from the backup plugin as well, starting at Google Drive 6.51.2 and OneDrive 5.48.2. With anything older the alert still arrives and still carries the full error, just without that sentence.

Backup Pro itself needs WordPress 6.0 or newer and PHP 7.4 or newer.

Quick start (about 5 minutes)

  1. Install and activate the ZIP from Plugins → Add New Plugin → Upload Plugin, or unzip it into wp-content/plugins/.
  2. Open Backup Pro → License and enter the key from your purchase email. Alerts and the digest both stay switched off until a license is active, so do this first.
  3. Open Backup Pro. The Status panel at the top tells you which backup plugin it found and whether it has anything to listen to.
  4. Paste a Slack webhook URL or a Discord webhook URL, or both. Making one takes a minute and is covered below.
  5. Click Send test webhook and confirm the message arrives in the channel you expect.
  6. Tick the events you want to hear about. Backup completed and verified and Backup failed are on by default.
  7. Set the digest under Backup-health digest, then Save settings.

The Backup Pro screen

Backup Pro adds one top-level menu called Backup Pro, with a License page underneath it. The main screen is titled Bodholdt Backup Pro, Alerts and Digest and has three sections.

Status

Says which backup plugin or plugins are active, whether your license is valid, and whether anything is currently arranged to alert you.

Alert channels

Two fields, Slack webhook URL and Discord webhook URL, then a checkbox per event, then Send test webhook.

Once a channel has been tried, including with a manual test, a plain line under Send test webhook says whether its last message was delivered, handed off, or could not be delivered, and when. A webhook that has quietly stopped working says so there instead of going silent.

The URL fields are strict on purpose. A Slack URL is only accepted if it is HTTPS, on the host hooks.slack.com, and its path begins with /services/. A Discord URL is only accepted if it is HTTPS, on discord.com or discordapp.com, and its path begins with /api/webhooks/. Anything else is refused with a message saying so, and the field is left unsaved rather than storing an address your site would then try to post to. Nothing is ever posted anywhere but those hosts.

Backup-health digest

Three settings: How often (Weekly, Daily, or Off), Where it goes (Email, Slack or Discord, or Both), and Email address. Leave the address blank and it uses your site administration email.

The five events you can alert on

Each has its own checkbox, so you can be told about failures without being told about every success.

  • Backup completed and verified. A backup finished and passed verification. On by default. The message carries the product, the file, the size, and your site’s address.
  • Backup failed. On by default. Carries the error, and from Google Drive 6.51.2 and OneDrive 5.48.2 it leads with a one-line suggestion for what to do about it: an expired cloud connection says to reconnect, a full cloud says to free up space, and so on.
  • Restore initiated. Someone started a restore. Carries the scope of what is being restored. Worth switching on if more than one person can reach your admin.
  • Backups have gone stale. The backup plugin’s own watchdog noticed no successful backup within its threshold. Your backup plugin already emails you when this happens, and again each week until a backup succeeds. Turn this on to have it posted to your channel as well.
  • Pre-flight found a blocker. The check that runs before a backup found something that would stop the next run.

Every alert is capped by a short timeout and is sent only after the backup’s outcome has already been recorded. A slow or broken webhook cannot fail, delay, or change a backup or a restore. The worst a dead webhook can do is not tell you something.

Making a Slack webhook

  1. Go to api.slack.com/apps and either create an app or open an existing one. Choose From scratch and pick the workspace you want the messages in.
  2. Open Incoming Webhooks and turn it on.
  3. Click Add New Webhook to Workspace and choose the channel.
  4. Copy the URL Slack gives you. It starts with https://hooks.slack.com/services/.
  5. Paste it into the Slack field on the Backup Pro screen and save.

The webhook is tied to the channel you picked, so to move the alerts to a different channel you make a new webhook and replace the URL.

Making a Discord webhook

  1. In Discord, open the channel you want the messages in, then Edit Channel → Integrations → Webhooks.
  2. Click New Webhook, name it something you will recognize later, and confirm the channel.
  3. Click Copy Webhook URL. It starts with https://discord.com/api/webhooks/.
  4. Paste it into the Discord field on the Backup Pro screen and save.

The backup-health digest

The digest is a summary written by your own site about your own site. It is the part of this plugin that is useful even if you never connect a webhook.

It reads the backup plugin’s own records rather than only the events this companion has witnessed, so a site that was backing up for months before you installed Backup Pro is described accurately in its very first digest.

A digest tells you:

  • the schedule your backups are really on, and whether a run is actually armed rather than just saved,
  • how fresh the newest verified backup is, and whether that is older than your own schedule should allow,
  • how many runs completed in the period, and anything that failed or warned,
  • whether the stale-backup watchdog is raised,
  • the state of the cloud connection.

Your backup plugin already emails you when backups go stale. The digest also compares your newest verified backup with the schedule you chose, and says so in every digest while it is out of date.

The subject line says whether anything needs a person, so you can tell a healthy week from a bad one without opening the message.

It arrives weekly by default, counted from when you activate the plugin. Switch it to daily or turn it off entirely on the Backup Pro screen. Changing anything else on that screen leaves the next digest exactly where it was, so saving a new webhook URL does not restart the clock.

Each site reads its own state and sends its own digest. If you run many sites, install the companion on each and point them all at the same inbox or the same channel, and you will collect them in one place. There is no central service, no dashboard on our side, and nothing hosted by Bodholdt Labs that any of this passes through.

Long digests are shortened in Slack and Discord, and the chat copy says so. Choose Both if you want the full digest by email as well. The Backup Pro screen shows when the next digest is due and when the last one was delivered, not the digest itself.

License and updates

Enter your key at Backup Pro → License. Both the alerts and the digest check for a valid license before doing anything, so an unlicensed copy is silent rather than partly working.

The license is stored site-wide, so on a multisite network one key covers every site in the network rather than needing to be entered on each. Your license is checked when you activate or deactivate it, and at most every 12 hours, when an admin page loads.

Updates arrive through the normal WordPress Plugins screen once the license is active.

Privacy

Nothing in this plugin sends data to Bodholdt Labs except its license and update requests, both standard and listed here: activating, checking or deactivating your license, which sends your license key and your site’s address, and checking for and downloading plugin updates. Downloading an update sends your license key as well. All of it goes only to bodholdtlabs.com.

Your webhook URLs, the contents of every alert, and every digest go directly from your site to your own Slack, your own Discord, or your own inbox. They do not pass through us and there is no service on our side that could receive them. No third-party scripts, no cookies.

Troubleshooting

The test webhook does not arrive

Check the line under Send test webhook first, since it records the result and time of the last delivery attempt per channel. If the attempt is recorded as failed, the webhook is being rejected at the far end, and the usual cause is that the webhook was deleted or the channel it pointed at was removed. Make a new one and replace the URL. If no attempt is recorded at all, the URL was refused on save: re-read it against the two rules above, since a webhook copied from a browser address bar rather than the copy button often is not the webhook URL.

Alerts never fire, but the test works

The test proves the channel. It does not prove there is anything to report. Check that a Bodholdt backup plugin is active and new enough to announce events, which means Google Drive 6.51.0 or OneDrive 5.48.0 at a minimum, and check that the event you are expecting is ticked. Success and failure are on by default; the other three are not.

The digest has not arrived

A weekly digest is counted from activation, not from a fixed day of the week, so the first one is up to seven days out. Digests are sent on WordPress scheduled tasks, so a site with no traffic and no system cron may run them late. If the digest is set to go to a webhook and no webhook URL is saved, the screen says so when you save rather than failing quietly later.

The digest says backups need attention and the backup plugin looks fine

That is the check working. A site can hold a saved daily schedule and show a next run on the clock while not having produced a backup in days, because the runs are failing or because nothing is triggering scheduled tasks. The digest compares the newest verified backup against your own schedule, allows one missed run, and then says so plainly. Your backup plugin will usually have emailed a stale-backup warning too.

Getting help

Email support@bodholdtlabs.com. Include the backup plugin and version you are running alongside the companion, since most questions about alerts turn out to be about which events that version announces.

To report a security problem, email the same address with “Security” in the subject line. The full policy is at bodholdtlabs.com/security.