Browse documentation
Data lifecycle
How WALAO handles data
A plain account of what enters the system, where it goes, and when it leaves.
What is collected
WALAO stores your email, account settings, connection identifiers, group metadata, selected contacts, and new text messages from enabled conversations.
It does not import WhatsApp history. The implemented message pipeline is text-based. Media content is not part of the summary input.
Initial group loading filters for WhatsApp group identifiers, but message-driven discovery does not. A direct chat can appear as an enableable entry. Confirm every entry before enabling it.
Where group text goes
A new text event comes from the paired account.
The unofficial provider holds the linked session and sends a webhook.
The event is checked, queued, normalised, encrypted, and stored.
Selected plain text is processed into summaries, answers, or relevance choices.
What is encrypted at rest
| Data | Storage today | Retention |
|---|---|---|
| Normalised message body | AES-256-GCM with a per-account data key | 1 to 30 days, stamped when stored |
| Raw gateway event payload | Readable JSON in the ingestion queue | No expiry for processed rows today |
| Summaries | Readable structured JSON | 90 days |
| Today picks | Readable headline and item keys | No separate purge policy documented |
| Reminders and memories | Readable text after you confirm it | Until you delete it or delete related data |
| Email and metadata | Readable database fields | For the account lifetime, unless a narrower rule applies |
| Login codes and session tokens | SHA-256 hashes | Code expires in 15 minutes; session token in 30 days |
Processed provider payloads can contain the original message text and currently remain outside the message-body encryption and retention path. Do not connect sensitive groups until this is fixed.
How retention works
Your 1 to 30 day setting applies to new normalised message rows. Changing it does not rewrite the expiry already stamped on older rows.
Summaries are deleted after 90 days. Confirmed reminders and memories copy their text and can outlive the summary that proposed them.
Disabling a group stops new accepted messages, but does not itself delete existing data. Use group deletion for removal.
Your data controls
- Pause: drop new incoming events and stop processing until you resume.
- Disable: stop new processing for one selected group.
- Delete group: remove that group's primary records and related confirmed data.
- Export: download a JSON snapshot of several core data types.
- Delete account: remove the account's primary records and destroy its wrapped data key.
The current export does not include every stored type. See Account and settings for its known omissions.
Items that still need owner confirmation
- Production hosting region and database region.
- Transport security between every infrastructure component.
- Backup creation, encryption, retention, and deletion behavior.
- Production log retention and access.
- Vendor contract terms and provider-side data retention.
The repository shows intended application behavior, but it does not prove these production facts.