How it worksOne engine keeps running totals for everything your product tracks, and answers the moment something changes.
EventTotalAnswerDecision
AggregationsCount anything, per anything, over any windowReal timeAnswers in your app, pushed to your systemsDecisionsYour rules first, AI for the restWorkspaceBuild, test and change without codeSecurityIsolated, private, on record
Acme
Globex
Initech
Usage & limitsKeep usage live for every account and act before a customer hits a wall.
How much of their plan has each account used this month?
→ Warn the owner at 80 %
Customer insightEngagement, churn signalsTrust & safetyAbuse, fraud, account securitySaaSUsage and engagementBanking & fintechLimits, risk, KYCE-commerceOrders and returnsIoT & industryReadings and silenceGamingFair, safe playMobilityFleets and driversAll use cases
QuickstartTwo calls in your hot path: send events, ask questions.
POST /v1/events
POST …/profiles/usage_check:evaluate
→ { "reasons": ["near_limit"] }
DocsConcepts and guidesAPI referenceEvery endpointTechnical overviewArchitecture and limitsAuthenticationKeys, OAuth, workload identitySelf-hostingHelm and Docker Compose
SecurityA database per customer, scrambled identifiers, everything on record.
Acme
Globex
Initech
DeploymentShared, dedicated, your cloudPlatformsLive numbers for your own customersContactTalk to a personChangelogWhat we shipped
Pricing
Product
How it worksFrom events to live numbers to actionAggregationsCount anything, per anything, over any windowReal timeAnswers in your app, pushed to your systemsDecisionsYour rules first, AI for the restWorkspaceBuild, test and change without codeSecurityIsolated, private, on record
Use cases
Usage & limitsQuotas, plans, meteringCustomer insightEngagement, churn signalsTrust & safetyAbuse, fraud, account securitySaaSUsage and engagementBanking & fintechLimits, risk, KYCE-commerceOrders and returnsIoT & industryReadings and silenceGamingFair, safe playMobilityFleets and driversAll use cases
Developers
QuickstartYour first live numberDocsConcepts and guidesAPI referenceEvery endpointTechnical overviewArchitecture and limitsAuthenticationKeys, OAuth, workload identitySelf-hostingHelm and Docker Compose
Company
SecurityHow your data is kept apartDeploymentShared, dedicated, your cloudPlatformsLive numbers for your own customersContactTalk to a personChangelogWhat we shipped
Pricing
Sign inRequest access

Turn every event into a live number you can act on — for any industry, in any region.

Request access

Product

  • How it works
  • Events and answers
  • Decisions
  • Pricing
  • FAQ

Use cases

  • Usage & limits
  • Banking & fintech
  • Operations & IoT
  • Trust & safety
  • All use cases

Developers

  • Docs
  • API reference
  • Quickstart
  • Technical overview

Company

  • Security
  • Deployment
  • Platforms
  • Contact
  • Changelog
© 2026 AggrelisTermsPrivacyCookiesData centers worldwide
Use cases · By job

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.

Request accessSee the questions
Live questions · illustrative
Which accounts went quiet this week?Engagement
heartbeatslive
Hand to customer success
watching
Has this trial reached its activation moment?Onboarding
Connected dataInvited a teammateBuilt a report
Flag as a qualified lead
watching
How many support tickets did this account open this week?Support
2/ 5 · this week
Alert the account manager
watching
What you can ask

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
Worked example

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
POST /v1/events
{
  "id": "act_20261026_8812",
  "type": "activity",
  "ts": "2026-10-26T15:12:40Z",
  "attrs": {
    "user_id": "u_314",
    "company_id": "acme",
    "feature": "reports"
  }
}
POST /v1/admin/profiles
{
  "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"
      }
    ]
  }
}
Webhook delivery, when the silence is noticed
{
  "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"
  }
}
Illustrative. Field names are examples.
What it uses

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.

Related

Often used together

  • Usage & limitsQuotas, plans, meteringHow much of their plan has each account used this month?
  • SaaSUsage and engagementHow many API calls did each key make this minute?
  • E-commerceOrders, returns, sellersHow many orders did this customer place this week?
Early access

Your first live numbers, configured not coded

Tell us what you would count first, and we'll help you set it up.

Request accessSee how it works