Privacy Policy
Last updated: May 11, 2026
This Privacy Policy explains what information LW Alliance Helper (the "Bot") collects, how it is used, and how it is stored. By adding LW Alliance Helper to your Discord server and using its features, you agree to this policy.
Who We Are
LW Alliance Helper is operated as a Discord bot for Last War alliance leadership teams. If you have questions about this policy, the best way to reach us is by opening an issue on our issue tracker. Note that issues are public — please don't include personal information (such as data you'd like deleted) in the issue itself; we'll follow up with you privately to handle any sensitive details.
Where Your Data Lives
Alliance Helper keeps a clean separation: your alliance's data lives in your Google Sheet, on a Google account you own and control. The bot's own database stores only the configuration that tells the bot what to do, plus a little operational bookkeeping.
| What | Where it lives | Who owns it |
|---|---|---|
| Power scores, growth snapshots, train history, participation logs, member roster (when synced), survey responses, birthdays | Your Google Sheet | You. The bot writes; your Sheet is where it lives. |
| Wizard answers, channel/role IDs, schedule settings, draft state, premium assignment, persistent view registry | Bot's SQLite database (private, hosted on Railway) | The bot. This is config and bookkeeping, not alliance data. |
What this means for you:
- You own the data. Every piece of data that's about your alliance — its members, history, results, tracking over time — is stored in your Sheet, not ours. The bot reads and writes; we don't keep duplicates of your alliance data.
- Leaving doesn't trap your data. If you stop using the bot, revoke the service-account share on your Sheet (Share → remove the bot's service-account email). You keep everything that matters — there's no export step or migration request, because we never had a separate copy.
- Premium adds features, it does not take away any data or lock you in to a plan. Subscribing unlocks features that build on the same setup (DMs, scheduled reminders, Member Roster Sync). Nothing about your alliance data moves to a different system; storage works the same as on the free tier.
This is a deliberate choice. If you ever want to move to another tool — or build your own — your data is already in your own Google Sheet, on a Google account you control.
What Information We Collect
LW Alliance Helper collects only the information necessary to provide its features. This includes:
From Discord:
- Discord server (guild) IDs — used to store per-server configuration settings
- Discord user IDs — used to match members to their rows in your Google Sheet
- Discord display names — used in survey notifications and birthday announcements
- Discord channel and role IDs — stored as part of your server's configuration
Server install metadata (for support triage): when the bot is added to a server, it stores a small record so that errors logged against a guild ID can be matched to an alliance for support purposes. This record contains the guild ID, the current guild name, the server owner's Discord ID, and the Discord ID of the user who invited the bot when this can be read from the audit log. Two timestamps are kept: the first time the bot saw the server and the most recent time it reconnected. The record is updated whenever the bot starts up so the guild name stays current, and it is deleted automatically when the bot is removed from a server.
When Member Roster Sync is configured (a Premium feature), the bot also writes each member's server-join date and assigned role names to a tab in your Google Sheet, alongside their Discord ID and display name. This is opt-in and only happens after leadership runs /setup_members.
From your Google Sheet (submitted by your members):
- Any data your members submit through the survey feature (e.g. squad powers, profession, game statistics). The specific fields depend on the questions you configure.
- Birthday data, if you configure birthday tracking and have that information in your sheet
Configuration data:
- Your Google Sheet ID
- Your server's configured timezone, channels, roles, and feature settings
What We Do Not Collect
- We do not collect passwords, payment information, or personal contact details
- We do not read any Discord messages beyond what is typed in response to an active bot prompt
- We do not access any Google Sheet data beyond the tabs and columns you configure the bot to use
- We do not track member activity, online status, or behaviour
How Information Is Used
Information collected by LW Alliance Helper is used solely to provide the bot's features:
- Server configuration data is used to route commands, post announcements, and personalise the bot's behaviour to your server
- Discord user IDs and display names are used to match survey submissions to the correct row in your sheet and to @mention members in birthday announcements where a Discord ID is available
- Google Sheet data is read and written only in response to commands run by your leadership team or automated tasks you have configured
We do not use your data for advertising, analytics, or any purpose beyond operating the bot.
Direct Messages from the Bot
The bot may send Discord direct messages in two cases:
- Welcome DM — when the bot is added to a new server, it DMs the user who invited it (or the server owner if the inviter cannot be determined) with setup instructions and links to the documentation.
- Premium DM features — when leadership has enabled DM-based features (birthday wishes, train assignment notifications, storm participation reminders, or scheduled survey reminders), the bot sends those DMs to members on the configured roster. Members can disable DMs from the bot in their Discord privacy settings ("Allow direct messages from server members").
- Config export delivery — when a leadership user runs
/export_config, the bot DMs them the resulting JSON file as a one-off delivery. The bot does not retain a copy of the exported file.
The bot does not initiate DMs outside of these features.
How Information Is Stored
Server configuration is stored in a private SQLite database hosted on Railway (our hosting provider). This database is accessible only to the bot and is not shared with any third parties.
Member data (survey responses, birthday information, squad powers, etc.) is stored in your own Google Sheet, not in our database. We write to your sheet on your behalf when commands are run, but we do not retain copies of that data.
Google Sheet access is granted by you when you share your sheet with the bot's service account during setup. You can revoke this access at any time by removing the service account from your sheet's sharing settings.
Data Sharing
We do not sell, trade, or share your data with any third parties, with the following exceptions:
- Railway — our hosting provider stores server configuration data as described above. Railway's privacy policy applies to their infrastructure.
- Google — survey responses and other data written to your sheet are subject to Google's terms of service for Google Sheets.
- Discord — the bot operates within Discord's platform and is subject to Discord's terms of service and privacy policy.
- Sentry — when the bot encounters an unexpected error, it sends a crash report to Sentry (a third-party error tracking service) so the bug can be investigated and fixed. These reports include the Python traceback and a release version number. They do not include Discord user IDs, member names, or the contents of your Google Sheet — Sentry is configured with
send_default_pii=False. Sentry's privacy policy applies to the reports it stores.
Third-Party Data Sources
Some features in the bot are powered by publicly available Last War reference information sourced from third-party community sites. These sources provide server and task information only — no alliance data, no member data, and nothing about your server is sent to them. The bot reads from these sources on a periodic schedule and caches the results.
Payments and Subscriptions
Premium subscriptions are processed through Discord's App Subscriptions system. We do not receive, collect, or store your payment information — Discord handles all billing. Refunds and billing questions are handled through Discord per their refund policy.
Data Retention
Server configuration data is retained for as long as your server uses the bot. If you run /setup_reset or remove the bot from your server, your configuration data can be deleted upon request.
The install-metadata record described above is deleted automatically when the bot is removed from your server, and can also be deleted on request at any time.
Member data in your Google Sheet is entirely under your control. We do not retain copies of it.
Your Rights
You have the right to:
- Request a copy of the configuration data and install-metadata record we hold for your server
- Request deletion of your server's configuration data and install-metadata record
- Revoke the bot's access to your Google Sheet at any time
To make any of these requests, open a data removal request on the issue tracker. Include your Discord guild ID — that's the only field needed to look up and clear your records. Issues are public; please don't include any other personal information in the issue itself.
Changes to This Policy
We may update this policy from time to time. The date at the top of this page reflects when it was last updated. Continued use of LW Alliance Helper after changes are made constitutes acceptance of the updated policy.