Renewals and alerts
The renewal calendar, when reminders and charge checks are sent, email alerts, the digest, Slack, and what each one needs to work.
3 min readUpdated Oct 17, 2026Applies to Subsweep 0.1.0
Everything on this page except the calendar is sent by the hourly job (Schedule the hourly job). Three things must be true for a workspace to receive anything:
- The hourly job is being called.
- The workspace is on a paid plan: Pro, an active Pro trial, Accountant, or a client workspace whose accountant is on Accountant. Free workspaces get no reminders, alerts or digests.
- Outbound email is configured. Without it, messages are only written to the server log.
Alerts and digests go to every member of the workspace, whatever their role.
Renewal calendar
Calendar shows upcoming charges on a month grid, with previous, next and today controls, and as a list. Clicking a charge opens the subscription's detail panel. The overview also counts renewals due this week.
Renewal reminders
Reminders are scheduled for every active subscription with a next charge date:
| Subscription | Reminders |
|---|---|
| Billed yearly, or 100.00 or more per charge (in its own currency) | 30, 14 and 7 days before the charge |
| Everything else | 3 days before the charge |
Reminder dates already in the past are skipped, and dates move when the next charge date changes. Renewal reminder emails cannot be switched off in Settings → Notifications.
Note
Not in this version yet: per-subscription reminder settings in the interface. Subscriptions whose source was disconnected stop getting reminders.
Manual charge checks
Subscriptions added by hand have no bank feed to confirm that a charge happened, so Subsweep asks.
- By email. Once the next charge date is at least a day old and no newer charge has been recorded, the hourly job emails "Did this vendor charge you?".
- In the app. The overview and Actions show a banner for a subscription whose charge date passed in the last three days, with Yes, Amount changed and It was cancelled.
| Answer | What happens |
|---|---|
| Yes | Records the charge, marks the subscription verified, and sets the next charge one cycle from today |
| Amount changed | Records the charge the same way. Edit the new amount in the detail panel; the banner does not ask for it |
| It was cancelled | Marks the subscription cancelled and adds its monthly cost to the savings tracker |
If the check is not answered, the email is sent on two consecutive hourly runs, and on the next run the subscription is marked Unverified and the emails stop. Answering resets it.
Email alerts
| Alert | Sent when | Can be switched off |
|---|---|---|
| New subscription detected | Detection created a subscription in the last two hours | Yes |
| Price increase | A price-change flag was raised in the last two hours (decreases are included) | Yes |
| Upcoming renewal | A renewal reminder is due | No |
| Manual charge confirmation | See Manual charge checks | Yes |
| Trial converted | A trial-converted flag was raised in the last two hours | Yes |
Each email has one link back into the app. Editors and Owners change these under Settings → Notifications.
Note
Because the job runs hourly and looks back two hours, a new-subscription, price or trial alert can arrive twice. The notification switches also always show as on when the page opens; saving writes whatever they show.
The digest
Set during onboarding and under Settings → Notifications:
- Cadence: monthly on the 1st, every Monday, or off.
- Hour: the local hour in the workspace's timezone (8:00 by default).
The digest leads with the savings recorded so far, lists renewals in the next 30 days, and says how many active subscriptions are still Unsure. It is sent by the hourly run that falls in the chosen hour.
Workspaces whose only sources are statements and manual entries also get an "Upload this month's statement" email on the 1st, at the digest hour.
Slack
Owners can connect a Slack workspace under Settings → Integrations (needs SLACK_CLIENT_ID and SLACK_CLIENT_SECRET). Slack's install screen asks which channel to post to. Messages carry the alert text and an Open Subsweep button.
Important
Not in this version yet: the per-alert Slack switches. Connecting Slack works, but each alert type has its Slack switch off and the Notifications screen does not show it, so nothing is posted. To turn it on for a workspace by hand, save Settings → Notifications once, then:
UPDATE notification_settings SET slack_enabled = true
WHERE organization_id = '<workspace id>';
INSERT INTO notification_settings (organization_id, type, email_enabled, slack_enabled)
VALUES ('<workspace id>', 'renewal', true, true);Messages are posted with the app's bot token, so invite the app to the chosen channel (/invite @your-app) if Slack reports that it is not in the channel. Digests are email only.