Know how each customer is doing, while you can still help.
Which features a trial used in 14 days, who went quiet this week, whose activity fell below their own usual week. Aggrelis keeps these numbers live per user, workspace and company, and tells customer success when an account needs a call.
watching
watching
watching
The questions this answers
Typical questions, each with the window it usually looks at. Thresholds are starting points you set yourself.
- Catch accounts going quiet
Which companies have had no activity for 7 days? Aggrelis notices the silence itself, with no nightly job searching for it.
no activity for 7 days - Spot a drop early
Is this account's activity this week well below its own week before? Compared with its own baseline, not an average over all customers.
rolling 7 days vs. the 7 days before - Find trials that took off
How many different features did this trial workspace use in the last 14 days, and did it invite a teammate?
rolling 14 days, distinct features - Follow onboarding
Did this account build its first report within 3 days of connecting its data, or did it stall in between?
in sequence, within 3 days - Watch seat use
How many different people at this company were active in the last 30 days, against the seats it pays for? A low share is worth a call before the renewal.
rolling 30 days, distinct users - Know the last touch
When was this customer last active, and which feature did they use last? Context for the next conversation.
latest value, lifetime
A paying account goes quiet
Acme's team used the product every working day, then nothing for a week. A trigger notices the silence, asks how Acme looked before it went quiet, and sends the answer to your customer success tool, so someone reaches out while there is still time before the renewal.
- Send activity as events: a sign-in, a feature used, each with the user and their company
- Define the company's numbers: active users and features used in 30 days, last activity, seats from an attribute
- Trigger on silence: when a company sends no activity for 7 days, Aggrelis asks the question for you
- Act on the answer: the webhook opens a task for customer success, with the numbers attached
{
"id": "act_20261026_8812",
"type": "activity",
"ts": "2026-10-26T15:12:40Z",
"attrs": {
"user_id": "u_314",
"company_id": "acme",
"feature": "reports"
}
}{
"name": "account_health",
"spec": {
"entity": "company",
"features": {
"activeUsers30d": {
"state": "active_users_by_company",
"window": {
"rolling": "30d"
}
},
"featuresUsed30d": {
"state": "features_by_company",
"window": {
"rolling": "30d"
}
},
"lastActiveAt": {
"state": "activity_by_company",
"window": "lifetime",
"select": "last"
}
},
"derived": [
{
"name": "seatUse",
"expr": "entity.seats > 0 ? double(activeUsers30d) / double(entity.seats) : 1.0"
},
{
"name": "daysQuiet",
"expr": "days_between(lastActiveAt, now)"
}
],
"reasons": [
{
"name": "gone_quiet",
"when": "daysQuiet >= 7"
},
{
"name": "low_seat_use",
"when": "seatUse < 0.3"
}
],
"triggers": [
{
"name": "quiet_7d",
"on": "activity",
"absent": "7d"
}
]
}
}{
"type": "trigger.result",
"timestamp": "2026-11-02T15:12:43Z",
"data": {
"trigger": "quiet_7d",
"profile": "account_health",
"timing": "absence",
"status": "ok",
"entity": {
"type": "company",
"id": "acme"
},
"values": {
"activeUsers30d": 9,
"featuresUsed30d": 4,
"lastActiveAt": "2026-10-26T15:12:40Z",
"seatUse": 0.36,
"daysQuiet": 7
},
"reasons": [
"gone_quiet"
],
"event": {
"id": "act_20261026_8812",
"type": "activity",
"ts": "2026-10-26T15:12:40Z"
},
"profileVersion": "account_health@v2"
}
}The parts of Aggrelis behind it
Nothing built for one industry: the same building blocks, configured for this job.
- Distinct counts
How many different users, features or workspaces, exact up to 10,000 values, or estimated beyond.
- Windows and baselines
Rolling, calendar and lifetime windows, a window shifted back to compare with, and sequences: this, then that, within 3 days.
- User, workspace, company
One user's activity counts for their workspace and their company, so customer success sees the account, not one login.
- Triggers on silence
An absence trigger fires when the next event does not come, from 1 minute to 30 days, and the answer is pushed as a signed webhook.
- Ask when you open the account
Your CRM or admin panel asks for an account's numbers when someone opens it, and gets them in the same request, current to the last event.
- Owned by the team that uses it
Customer success and product adjust what counts as quiet or activated in the workspace, try it on real accounts first, without a release.
Your first live numbers, configured not coded
Tell us what you would count first, and we'll help you set it up.