Your Account & Data
Export your data as JSON or CSV, request account deletion with a 30-day grace period, and use the onboarding checklist and the public preference center.
This page covers the personal account controls that live outside the main marketing tools: exporting your data, deleting your account, the getting-started checklist on your dashboard, and the public preference center your contacts use to manage their subscriptions.
Account management lives under Settings > Account Management (/dashboard/settings/account).
Exporting your data
You can download a copy of your data at any time from the Export Your Data card. There are two formats.
| Export | Format | Scope | Who can run it |
|---|---|---|---|
| Complete Data Export | JSON | Your profile plus every team you belong to and the data inside it | Any signed-in user |
| Contacts Export | CSV | Your contacts with their property values and topic memberships | Owners and admins |
Complete data export (JSON)
The JSON export bundles your profile (email, name, image, created/updated timestamps) together with each organization you're a member of and your role in it. For every organization it includes contacts, contact properties, topics, email templates, campaigns, automations, transactional emails, segments, domains, form endpoints, and blocked emails, plus an exportedAt timestamp.
A few fields are deliberately redacted so the file is safe to store:
- API keys include only the name, key prefix, created time, and last-used time — never the secret value.
- Webhooks are included without their signing secret.
The file downloads as owlat-data-export-<date>.json.
Each Owlat deployment hosts a single team, so the JSON export contains one organization with all of that team's records. The export reads every record in one pass; on very large deployments it can hit Convex's per-call runtime limits and fail, in which case use the CSV contacts export for the data you need most.
Contacts export (CSV)
The CSV export is scoped to contacts and is intended for spreadsheets or migrating into another tool. It requires the contacts:manage permission, so it's available to owners and admins. The button stays disabled if no team is active.
Each row contains these base columns, followed by one column per custom contact property:
| Column | Notes |
|---|---|
email | |
firstName | |
lastName | |
source | How the contact was added |
timezone | |
createdAt | ISO 8601 |
updatedAt | ISO 8601 |
topics | The contact's subscribed topic names, joined with ; |
The file downloads as contacts-export-<date>.csv. This is the same shape used by contact import, so an export can be re-imported.
Requesting account deletion
The Delete Account card lets you schedule a permanent deletion with a 30-day grace period.
Open the deletion dialog
Click Request Account Deletion. You can optionally add a reason for leaving (it's stored on the request), then type DELETE to confirm. The confirm button stays disabled until the text matches exactly.
A deletion request is scheduled
Submitting records a pending deletion dated 30 days out and generates a one-time cancellation token. The page then shows a banner with the exact deletion date and a days remaining counter.
Cancel any time during the grace period
While a deletion is pending, the same page shows Cancel Account Deletion. Cancelling restores the account immediately. The cancellation can also be performed without signing in, via the secret token in the confirmation email (see below).
After the grace period, a daily background job removes accounts whose scheduled date has passed.
When you request deletion, Owlat automatically sends a deletion-confirmation email through the configured system email transport (MTA, Resend, or SES), carrying a tokenised Cancel Account Deletion link that points at the standalone /cancel-deletion?token=… page. The send is best-effort (scheduled, not awaited), so the in-app banner on the settings page remains the primary way to cancel while signed in.
Once the 30-day grace period ends, the account and its data cannot be recovered.
The onboarding checklist
New users see a Get your instance ready checklist on the dashboard. It tracks six setup milestones and fills in automatically as you complete them — there's nothing to tick off manually.
| Step | Marked done when… | Where it links |
|---|---|---|
| Configure a sending provider | A delivery provider is configured | Delivery settings |
| Add contacts | At least one contact exists | Contacts |
| Create email | At least one email template exists | Marketing emails |
| Send campaign | At least one campaign has reached sent | Create a Campaign |
| Create an API key | At least one API key exists | API key settings |
| Set up domain | At least one domain is verified | Deliverability |
A progress bar shows how many of the six steps are complete. You can dismiss the checklist with the × button or the I'll do this later link; it also disappears on its own once all six steps are done. Because completion is computed from your actual data, dismissing it never loses progress — the steps stay checked if you bring it back.
The public preference center (for your contacts)
When you send marketing email, recipients get a link to a standalone preference center at /preferences?token=…. It runs without a login: the token in the link identifies the contact and is verified server-side. Contacts use this page to choose which topics they want to hear about.
The page shows the contact's email, the team name, and a toggle for each available topic. Saving sends only the changed toggles back to the server, which subscribes or unsubscribes the contact from each affected topic.
The preference center footer reminds contacts that transactional messages (like password resets) may still be sent regardless of their topic choices. See Transactional Emails.
Preference tokens are derived from the email a contact received, so an old link can expire. If a contact reports an expired link, ask them to open the preference link from a more recent email.
For how subscriptions, double opt-in, and the underlying token system work, see Topics.