Railway

Deploy WhatsApp Group Analytics Dashboard

Self-hosted engagement analytics for WhatsApp groups you admin

Deploy WhatsApp Group Analytics Dashboard

Just deployed

/app/data

Deploy and Host WhatsApp Group Analytics on Railway

WhatsApp Group Analytics is a self-hosted dashboard that turns the groups you administer into engagement data — message volume over time, active and dormant members, peak activity hours, and growth trends. It connects to your own Evolution API instance, stores everything in your own PostgreSQL database, and sends nothing to a third party.

Built for community managers who run WhatsApp groups the way others run Discord servers, and who want the same reporting.


What This Template Deploys

ServicePurpose
Analytics DashboardWeb UI for charts, member cohorts, and CSV export on port 3000
Event CollectorReceives Evolution API webhooks and writes aggregate counters
PostgreSQLEvent store, rollups, and dashboard state

The collector and dashboard talk over Railway's private network. Postgres is never exposed publicly.

Requires an Evolution API instance. If you don't have one, deploy the Evolution API template first and point this template's webhook at it.


About Hosting WhatsApp Group Analytics

WhatsApp gives group admins no reporting whatsoever. You can see a member list and scroll history — that's the entire toolset. Anyone running a paid community, a cohort-based course, or client groups on behalf of an agency ends up counting messages by hand or exporting chats into a spreadsheet.

The hosted alternatives ask you to hand your group data to someone else's servers. That is usually a non-starter for anyone with a compliance obligation, and it's a poor trade for data you can just keep.

This template runs the whole pipeline on infrastructure you control. Evolution API delivers group events by webhook, the collector aggregates them into PostgreSQL, and the dashboard reads from that. Raw message bodies are never persisted — only counters, timestamps, and member identifiers.

Typical cost: ~$5–10/month on Railway's Hobby plan for all services, flat regardless of group size or message volume.


What It Measures — and What It Doesn't

Scope is deliberate. This is a group reporting tool, not a surveillance tool.

Measured, in aggregate:

  • Messages per day, week, and month per group
  • Active, occasional, and dormant member cohorts
  • Peak activity by hour and weekday
  • Member joins and exits over time
  • Top contributors by message count
  • Media versus text share
  • Response latency to admin announcements

Deliberately not collected:

  • Message content — bodies are counted, then discarded, never written to disk
  • Online, offline, or last-seen presence for any individual
  • Private or direct messages of any kind
  • Contact list or phone number export
  • Any data from groups the connected account does not administer

If you need per-person presence tracking, this is not that tool and won't become it.


Deploy in Under 5 Minutes

  1. Click Deploy on Railway and wait for the services to build (~3 minutes)
  2. Set EVOLUTION_API_URL and EVOLUTION_API_KEY to point at your Evolution API instance
  3. Copy the collector's public URL and register it as a webhook in the Evolution Manager dashboard
  4. Open the dashboard URL and sign in with the admin credentials you set
  5. Select the groups you administer — data begins accumulating from that moment forward

Historical data before setup is not available. WhatsApp does not expose it, and no tool can retroactively reconstruct it.


Common Use Cases

  • Paid community reporting — show subscribers and stakeholders that the group is active, with month-over-month engagement charts instead of anecdotes
  • Cohort-based course operations — identify students who have gone quiet in week three, before they churn, and reach out
  • Agency client reporting — export per-group CSVs for clients whose WhatsApp communities you manage under contract
  • Community health monitoring — catch the slow decline in daily messages that precedes a group dying, while there's still time to act
  • Announcement effectiveness — measure how quickly and how widely members respond after an admin post
  • Moderation capacity planning — see which hours generate the most traffic and staff coverage accordingly

Configuration

VariableRequiredDescription
EVOLUTION_API_URLRequiredBase URL of your Evolution API instance
EVOLUTION_API_KEYRequiredEvolution API authentication key
EVOLUTION_INSTANCERequiredInstance name whose groups you want to report on
DATABASE_URLAuto-injectedPostgreSQL connection string via Railway reference variable
ADMIN_EMAILRequiredDashboard login
ADMIN_PASSWORDRequiredDashboard password — use a strong value
SESSION_SECRETAuto-generatedSigns dashboard session cookies
TRACKED_GROUPSOptionalComma-separated group JIDs; leave empty to prompt in the UI
RETENTION_DAYSOptionalDays of event-level data to keep before rolling up (default 90)
STORE_MESSAGE_CONTENTPre-setfalse — leave it off unless you have explicit member consent
TIMEZONEOptionalReporting timezone, e.g. Asia/Kolkata (default UTC)
EXPORT_ENABLEDOptionalSet to false to disable CSV export

RETENTION_DAYS is a compliance control, not a storage setting. Shorter retention means less personal data held. Set it to the shortest window your reporting actually needs.


Dependencies for WhatsApp Group Analytics Hosting

  • Railway account — Hobby plan (~$5–10/month) covers all services
  • A running Evolution API instance with a connected WhatsApp account
  • Admin rights on the groups you intend to report on
  • Optional: S3-compatible storage for scheduled CSV export archives

Deployment Dependencies

Implementation Details

The collector subscribes to Evolution API's group event webhooks and processes each event into counters keyed by group and member identifier. Message bodies pass through memory and are discarded — STORE_MESSAGE_CONTENT defaults to false and the schema has no column for them.

Event-level rows are rolled up into daily aggregates and pruned according to RETENTION_DAYS, so the database stays small even for high-traffic groups. The dashboard reads exclusively from the rollup tables, which keeps queries fast as history accumulates.

Group selection is explicit. The collector ignores events from any group not listed in TRACKED_GROUPS or selected in the UI, and drops events from groups where the connected account is not an administrator.


Frequently Asked Questions

Do group members know they're being counted? Not automatically — that's your responsibility as the admin. Post a notice in the group before you deploy. In jurisdictions with data protection statutes, including India's DPDP Act and the GDPR, you are the data controller for your members' information and the notice obligation is yours, not the tool's.

Can I track a group I'm not an admin of? No. The collector drops events from groups where the connected account lacks admin rights. This is a deliberate constraint, not an oversight.

Can I see when a specific person is online? No. Presence and last-seen data is not collected, stored, or displayed. The tool reports on group activity in aggregate, not on individuals' availability.

Are message contents stored? No, by default. Messages are counted and discarded. STORE_MESSAGE_CONTENT exists for teams with a documented consent basis and an actual need to archive; leave it off otherwise.

Will I see data from before I deployed? No. Reporting starts the moment the webhook is registered. WhatsApp exposes no historical group event API, so no tool can backfill this.

Does this risk my WhatsApp account? Any unofficial integration carries risk. This template only reads events from groups you administer and sends no messages, which is a considerably lower-risk profile than bulk messaging — but it is not zero. Use an account you can afford to lose, and read Evolution API's guidance before connecting a primary number.

How large a group can it handle? A single Postgres instance comfortably handles several groups in the thousands of members. Raise RETENTION_DAYS downward and rely on daily rollups if event volume grows.


Why Deploy WhatsApp Group Analytics on Railway?

Railway is a singular platform to deploy your infrastructure stack. Railway will host your infrastructure so you don't have to deal with configuration, while allowing you to vertically and horizontally scale it.

By deploying WhatsApp Group Analytics on Railway you get community reporting without handing your members' data to a third-party service — private networking between every service, automatic HTTPS, persistent Postgres, and retention controls you set yourself. Run it alongside your Evolution API instance and keep the entire pipeline on infrastructure you own.


Template Content

More templates in this category

View Template
SigOnly
Deploy SigNoz with a working demo app & config in one click

zoeyjones
21
View Template
Unwrapped Spotify Music Stats
Unwrapped Spotify Music Stats, Estatísticas de músicas disponíveis

Jorge Henrique
1
View Template
OpenTelemetry Collector and Backend
OpenTelemetry Collector with Backend Stack

Melissa
110