Revvly
Docs
Reference

What runs automatically, and when.

Every scheduled job and sweep whose effect you can observe: what it does, when it runs, what you see, and how to change it or turn it off.

01How to read this page

Clock
Clock times are the server clock. No schedule in the code sets a time zone, and code comments describe the daily ones as UTC, so read them as UTC unless Revvly tells you the servers run in another zone. Jobs marked local slot use each person’s own time zone, or the workspace time zone when the person has none.
Which workspaces
Daily billing jobs run for every active workspace. They do not depend on a workspace feature; the one that used to, Auto renewal, no longer gates anything.
Several servers
Sweeps that call outside services or spend AI budget take a shared lease, so when several replicas run, only one of them runs a pass.
Run order
The daily times are staggered on purpose: usage periods close before renewals bill them, and exchange rates and the daily snapshot are written before churn is booked. Section 07 lists the day in order.
Not listed
Gmail mailbox sync is handled by a separate email integration service, so its cadence is not set in the Revvly API code and is not listed. Internal housekeeping with no customer-visible effect is omitted.

02Billing and revenue

Overdue invoice detection
When Daily at 01:00, every active workspace.
What happens A pending invoice whose due date has passed becomes Overdue. Credit notes are never aged. Only invoices still pending at the moment of the write are changed, so a payment that lands during the run wins.
You see The invoice status changes to Overdue and an in-app overdue-invoice notification is raised for it.
Change or switch off No setting. The due date comes from the invoice payment terms.
Payment reminders
When Daily at 09:00, every active workspace whose Automatically send emails setting is not off.
What happens Sends reminder emails at six stages: 7 days before the due date, on the due date, and 1, 7, 14 and 30 days after it.
You see The reminder emails your clients receive, using the wording on the Templates page.
Change or switch off Settings, General, Email Settings, Automatically send emails (default on). Turning it off pauses all scheduled emails of this kind. Edit the wording under Templates.
Churn reconciliation
When Daily at 03:00, every workspace except Support sandboxes.
What happens A subscription whose end date passed more than the churn grace period ago, with no renewal, becomes a churn event in the lifecycle log. If the subscription had a scheduled cancellation, the reason is customer request; otherwise natural expiration. It skips subscriptions that have a renewal event for the same client inside the grace window, subscriptions that never went live, and any whose final invoice is still held as a draft.
You see A Churned event in the lifecycle log, which books the lost MRR in the MRR movement chart and in churn and NRR. Before it books the churn, a cancelled subscription that still owes a closing invoice has one raised.
Change or switch off Settings, General, Analytics Settings, Churn Grace Period. Default 30 days. The reactivation window must be at least as long.
Subscription start, renewal, expiry and grace
When Daily at 06:00, every active workspace. The billing-schedule sweep runs an hour earlier, at 05:00.
What happens In order: subscriptions whose start date has arrived move from Pending to active; contract renewal notices are raised for committed terms inside their notice window; every subscription whose term has ended is processed. With auto-renew on, it renews and invoices the next period. With auto-renew off, any usage still owed is invoiced, then the subscription enters grace if it has grace days, or expires at once. A subscription in grace expires when its grace end date passes.
You see Subscription status moves between Active, Grace period and Expired. Renewal invoices appear on Finance. Overdue renewals and subscriptions awaiting payment show on the current month panel.
Change or switch off Auto-renew and grace days are set per subscription. There is no workspace switch for the renewal run; the old Auto renewal workspace feature gates nothing.
Advance renewal invoicing
When Part of the 06:00 renewal run.
What happens Generates the renewal invoice ahead of the renewal date once the lead window is open, dated that day, for the upcoming period. Only the recurring base charge is billed ahead. Usage billed in arrears is billed at renewal. A subscription with no base charge is never invoiced ahead.
You see The renewal invoice exists before the renewal date.
Change or switch off Settings, General, Renewal Invoice Timing: lead days for monthly, quarterly and yearly subscriptions. Default 0, which invoices on the renewal date. A client can override each period on its edit screen; 0 on the client switches it off.
Owed invoice retry
When Part of the 06:00 renewal run, after advance invoicing; also hourly for held usage drafts (see Usage metering).
What happens Retries a renewal invoice that a previous run failed to raise, and any billing-schedule charge still owed, such as a prepaid span whose start invoice failed. A debt is cleared only after the work it stands for has completed, so a retry that throws leaves it owed for the next run.
You see The missing invoice appears once a retry succeeds. Nothing is shown while it is still failing.
Change or switch off No setting.
Billing-schedule sweep
When Daily at 05:00, every active workspace.
What happens Promotes subscriptions whose start date has arrived and raises the activation-overdue alert for deferred-activation subscriptions that are still waiting.
You see Pending subscriptions become active; overdue activations are flagged.
Change or switch off No setting. Only meaningful where Billing schedules is granted.
Custom pricing agreement expiry
When Daily at 02:00, all workspaces.
What happens Moves agreements whose end date has passed to expired, so the price walk stops using them.
You see The agreement shows as expired and the catalog price applies again.
Change or switch off Set the agreement end date.
Exchange rates
When Daily at 02:00.
What happens Fetches that day’s global rates (one EUR-based set shared by all workspaces) and fills yesterday’s if it is missing. A past date with no stored rate is fetched on demand; a rate is never approximated from another day.
You see Converted figures in analytics. If no authoritative rate can be obtained the calculation errors rather than showing a blended figure.
Change or switch off No workspace setting. Set the reporting currency under Settings, General.
Analytics snapshots
When Daily at 02:00 for yesterday; monthly at 03:00 on the 1st for the month just ended.
What happens Writes the stored daily and monthly snapshot of MRR, ARR, churn, expansion and NRR for every active workspace. Separate from this, any new lifecycle event or discount change queues a recalculation of snapshots from the affected date to today, after a 1.5 second wait that merges bursts.
You see History on the dashboard. A backdated change rewrites the days it touches.
Change or switch off No setting.

03Usage metering

Usage period close
When Daily at 04:00, every workspace with metered usage.
What happens Closes every usage accumulator whose period has ended, at the boundary the period actually ended on, and writes the period reading. It runs before the 06:00 renewal so arrears usage is already closed when the invoice is built. A period cannot be closed twice.
You see A reading for the closed period, awaiting its seal.
Change or switch off No setting.
Usage seal and late arrivals
When Hourly. A closed period waits 24 hours before it is sealed.
What happens After the wait, a reading is sealed and becomes the billable number. For a metered API period that received nothing, the reading is marked unverified instead and is not billed as zero. A manual-entry period stays awaiting for an operator. The invoice for a period is held as a draft until its readings release; each hourly run also retries drafts whose release was interrupted.
You see Held drafts on Finance, awaiting-entry and unverified counts on the Metered usage action items card on the dashboard.
Change or switch off The 24 hour wait is set by Revvly deployment configuration. Enter or waive a period to release its invoice.
Late-arrival flag
When On each usage event received.
What happens An event reported more than 24 hours before it arrived is stored with a late-arrival flag. The flag is separate from the seal wait and does not reject the event.
You see The flag on the event in the usage audit.
Change or switch off No setting.

04Support

These run only for workspaces that hold the Support feature.

Where
  1. Settings
  2. Support
  3. General

Auto-close, AI answering, the daily AI spend cap and the client email delay are on this screen.

Auto-close
When Every 5 minutes.
What happens Closes a ticket that has waited on the client, in a waiting status such as Resolved or Answered, longer than the auto-close time with no client reply. Up to 500 tickets per run across all workspaces.
You see The ticket closes.
Change or switch off Settings, Support, General, Auto-close. Default 48 hours, from 1 to 720. Turn the switch off to disable it.
Assumed AI resolution
When Every 5 minutes, looking back 14 days.
What happens A ticket the AI answered, where no person replied in public and the customer has been silent for 24 hours after the last AI message, is counted as an AI resolution. Practice answers and answers the customer already judged are not counted.
You see The ticket counts toward the month’s billable AI resolutions.
Change or switch off The 24 hour window is fixed. Whether the AI answers at all is Settings, Support, General, AI answers first.
Client reply emails
When Checked every minute.
What happens Emails the client about a public reply that stays unread for the client email delay. Up to three attempts. An email still owed 24 hours after it fell due is dropped.
You see The email the client receives.
Change or switch off Settings, Support, General, minutes unread. Default 5, from 1 to 1,440.
Agent notification emails
When Every 15 seconds.
What happens Sends the email half of agent notifications: new ticket, assigned to you, new reply, status changed, mentioned. The email carries the ticket number, title and a link, not the message text. Up to three attempts.
You see The email to the agent.
Change or switch off No workspace setting.
Client progress updates
When Checked every minute.
What happens Posts a progress update to the client when a ticket moves to a new client-facing stage. Moves closer than 10 minutes apart make one update about the latest stage. A failed post is retried after 5 minutes.
You see An update message on the ticket thread.
Change or switch off Settings, Support, Client updates.
Ticket titles and summaries
When Checked every minute.
What happens Gives an untitled ticket a short title, and writes a summary of a closed ticket, for tickets closed in the last 7 days. Both obey the AI on switch and the daily spend cap, and are never billable.
You see The title and the summary on the ticket.
Change or switch off Settings, Support, General, AI switches and the daily spend cap.
Knowledge refresh
When Checked every 5 minutes.
What happens Re-reads a website or help-centre source whose schedule is daily or weekly and which is due. A failing source backs off 5 minutes, then 10, doubling up to 6 hours. A site is read only after its owner has confirmed ownership.
You see Updated articles in Knowledge, and a failed-source count when reading fails.
Change or switch off The schedule on each knowledge source: manual, daily or weekly. New sources are manual.
Attachment cleanup
When Hourly.
What happens Deletes support attachments that were uploaded but never sent on a message, once they are older than 24 hours. Up to 500 per run.
You see Nothing. A draft left open over lunch still sends.
Change or switch off No setting.
Support webhooks
When Every 5 seconds.
What happens Delivers ticket events to your endpoints. Retries after 10 seconds, 1 minute, 5 minutes, 30 minutes, 2 hours and 6 hours. A delivery still owed after 24 hours is dropped. After 10 deliveries in a row give up, the endpoint switches itself off. Up to 5 endpoints.
You see Delivery status in Settings, Support, Webhooks.
Change or switch off Enable or disable each endpoint there.

05OKRs, notifications and tasks

OKR weekly prompt
When Checked hourly at :15. Sent at each person’s own local slot. Default Monday at 09:00.
What happens Sends each person the list of check-ins due. Nobody with nothing due is messaged, and nothing is sent unless the cycle is active.
You see A message in Slack, or in ClickUp Chat if the workspace has switched OKR messages to it.
Change or switch off Settings, Notifications, Check-in rhythm: the workspace default day and time. Each person can set their own in their profile notification preferences. The OKR module must be turned on under Settings, Modules.
OKR daily reminder
When Checked hourly at :45. Sent at the same local hour as the prompt, on weekdays other than the prompt day.
What happens Chases only people the weekly prompt was delivered to in the last week, and only while a key result that prompt listed is still unanswered. It stops by itself when the check-ins are done or the next weekly prompt takes over.
You see A still-due message.
Change or switch off Same settings as the weekly prompt.
OKR scoring reminder
When Checked hourly at :35. Weekly, at each person’s local slot, starting 3 days after scoring opens.
What happens Nudges owners who still owe scores while a cycle is being scored.
You see A message addressed to the person who owes the score.
Change or switch off Same settings as the weekly prompt.
OKR digest
When Checked hourly at :25. Once per cycle per week per reader, at their local slot.
What happens Sends cycle owners the stale, declining, unowned, unattached and metric-stalled items, plus how many people were prompted. Team leads receive their team’s part when enabled. A digest with nothing to report is not sent.
You see A digest message.
Change or switch off Settings, Notifications, Check-in rhythm: day, time, and Copy team leads on the weekly digest.
OKR metric refresh
When Daily at 03:30, after the 02:00 snapshot.
What happens Reads each metric-backed key result’s metric and writes the value back. On failure the last value is kept and a failure counter rises. Three failures in a row mark the data stale.
You see Key result values, and a stale-data indicator.
Change or switch off No setting.
ClickUp work-link refresh
When At :00 and :30 every hour.
What happens Refreshes the status of ClickUp tasks linked to key results in cycles that are not closed. A link tried in the last 25 minutes is skipped; up to 200 links per workspace per pass.
You see Current status on linked tasks.
Change or switch off Connect or disconnect ClickUp under Settings, Integrations. The sweep runs only for workspaces with ClickUp connected.
ClickUp Chat polling
When Every minute, per workspace with ClickUp connected and Chat on.
What happens ClickUp has no chat webhook, so replies are polled. A person in a conversation, or messaged in the last 15 minutes, is read every minute. A chat messaged within the last day is read about every fifth minute. Older chats are not read. Up to 60 chats per pass.
You see A reply typed in ClickUp Chat is picked up within about a minute while a conversation is live.
Change or switch off Settings, Integrations, ClickUp, Chat.
Digest folding
When Hourly at :05, at each person’s local hour.
What happens Folds a person’s queued digest-type messages into one message.
You see One message instead of several.
Change or switch off Settings, Notifications and each person’s profile notification preferences.
Slack invitations
When Expiry daily at 03:20. Reminder daily at 09:40.
What happens An invitation expires 14 days after it is sent. One reminder goes on day 7 to a pending invitation, with a rotated link. A workspace with no Slack connection is skipped and its reminder is not spent.
You see The invitation status moves to Expired; the reminder DM.
Change or switch off Resend an invitation to start a new 14 days.
Recurring tasks
When Every 30 minutes.
What happens Creates the next task of any active recurring series that is due, whether or not the previous one was completed. The schedule is advanced before the task is created, so concurrent workers cannot create it twice.
You see A new task on its due schedule.
Change or switch off Deactivate the series. Revvly can switch the sweep off for a deployment.
Task reminders
When Every minute.
What happens Finds tasks whose reminder time has passed and are still open, and marks the reminder sent. The only visible effect today is on usage tasks: a manual-usage or unverified-usage task rises to Urgent. Notifications are not attached yet.
You see Urgent priority on a usage task.
Change or switch off Revvly can switch the sweep off for a deployment.
Account situations
When Daily at 06:00, every workspace.
What happens Re-evaluates each account’s situation from its email threads and facts, such as a stalled account.
You see Entries on the Situations page.
Change or switch off Thresholds under Settings, Situations.
Email AI passes
When Tier 1 hourly on the hour. Tier 2 hourly at :30.
What happens Tier 1 classifies escalated inbound email. Tier 2 extracts commitments from messages Tier 1 qualified. Each pass runs only for workspaces holding the matching feature, and only while Revvly has configured the model and a positive monthly budget.
You see Triage results and overdue-commitment situations.
Change or switch off Granted by Revvly; see Workspace features.
Slack connection health
When Every 15 minutes, at :07, :22, :37 and :52.
What happens Checks that the Slack connection still works, because a token revoked in Slack’s admin console announces nothing.
You see A degraded-connection banner when the check fails.
Change or switch off Reconnect Slack under Settings, Integrations.

06Documents, forms and delivery

Document link expiry
When Not a scheduled job. Checked each time a link is opened.
What happens A shared document link works until its expiry date or until it is revoked. After that it answers with the same page as any dead link. Default expiry 180 days, at most 730.
You see The unavailable page for the recipient.
Change or switch off Set the expiry when you create the link, or revoke the link.
Library upload cleanup
When Hourly.
What happens Deletes library uploads that never became a document version, once older than 24 hours. A failed deletion is retried after a day.
You see Nothing.
Change or switch off No setting.
Form upload cleanup
When Hourly.
What happens Deletes files uploaded to a form that no submission claimed, once older than 24 hours.
You see Nothing.
Change or switch off No setting.
Assistant attachment cleanup
When Daily at 07:00, every workspace.
What happens Deletes chat attachments that no conversation references, once older than 24 hours. An attachment a conversation uses is never deleted.
You see Nothing.
Change or switch off No setting.
Form action steps
When Every 15 seconds.
What happens Runs the pending follow-up steps of form submissions. A step is claimed with a lease and renewed before each step. A workspace that has lost Forms has its steps held, not run.
You see Step results on the submission.
Change or switch off Edit the form follow-up steps, or retry failed steps.
Outbound webhooks
When Every 5 seconds.
What happens Delivers workspace webhook events, at most 25 per endpoint per pass. Up to 7 attempts, waiting 30 seconds, 2 minutes, 10 minutes, 1 hour, 6 hours, then 12 hours. After 25 final failures in a row the endpoint switches itself off, and its queued deliveries are given up after 7 days.
You see Delivery history for the endpoint.
Change or switch off Settings, Webhooks: enable or disable each endpoint.

07The day in order

01:00
Overdue invoice detection
02:00
Exchange rates, daily snapshots, custom pricing agreement expiry
03:00
Churn reconciliation; monthly snapshots on the 1st
03:20
Slack invitation expiry
03:30
OKR metric refresh
04:00
Usage period close
05:00
Billing-schedule sweep
06:00
Start dates, renewals, expiry and grace, advance invoicing, owed retries; account situations
07:00
Assistant attachment cleanup
09:00
Payment reminders
09:40
Slack invitation reminder
The billing day, in order
  1. 01:00
    Overdue detection
    Pending invoices past due become Overdue.
  2. 02:00
    Rates and daily snapshots
    Exchange rates, yesterday’s snapshots, agreement expiry.
  3. 03:00
    Churn reconciliation
    Ended subscriptions become churn events.
  4. 04:00
    Usage period close
    Ended usage periods are closed.
  5. 05:00
    Billing-schedule sweep
    Start dates arrive, overdue activations flagged.
  6. 06:00
    Renewals
    Start, renew, expire, advance invoicing, owed retries.
  7. 09:00
    Payment reminders
    Reminder emails go out.
Usage periods close at 04:00 so renewals at 06:00 bill them, and rates and the daily snapshot land before churn is booked.

Hourly and faster jobs are listed in their own sections. For how renewals work in full, see Renewals; for how usage periods bill, see Metered usage.