> ## Documentation Index
> Fetch the complete documentation index at: https://dashtray.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Mobile App Guide

> Complete guide to the Dashtray mobile app

## Getting Started

### Download the App

**Android:**

* [Google Play Store](https://play.google.com/store/apps/details?id=app.dashtray)
* Requires Android 8+

> iOS is coming later — the App Store link will be added here once it's live.

### First Launch

1. **Download & install** from your app store
2. **Sign in** with Google or email
3. **Allow notifications** when prompted
4. **Grant permissions** (camera, microphone if needed)
5. **Done!** You're ready to receive notifications

## Home Screen

The home screen shows your at-a-glance notification activity, top to bottom:

### Greeting

A personalized greeting based on the time of day.

### Stats

Cards for any alerts you've **pinned** (up to 4, from the alert editor). Each card shows:

* **Alert name** - What it tracks
* **Notification count** - Total for this alert
* **Last triggered** - When last event occurred
* **Status indicator** - 🟢 active, ⚫ paused

Tap a card to jump to that alert's history.

### Insights

AI-detected anomalies in your notification patterns (e.g., unexpected spikes or drops in a alert's traffic).

* Vertical list, newest first
* Shows severity, percentage change, and alert
* Dismiss an insight by tapping it

### Notification History

Your latest notifications across all alerts.

* Tap to view full details
* Shows title, body, timestamp
* Color matches alert

## Alerts Tab

Manage all your notification webhooks.

### Create a Alert

1. Tap **"+"** button
2. Enter alert details:
   * **Name** - What it's for (e.g., "Stripe Payments")
   * **Icon** - Choose from 400+ icons
   * **Color** - Pick a color
   * **Sound** - Notification sound (default, cash, chime, ping, silent)
3. Tap **"Create"**
4. Copy the webhook URL
5. Paste into your service (GitHub, Stripe, etc.)

### Configure Template

When first webhook arrives:

1. Tap alert
2. Tap **"Configure →"** button
3. See sample data from real webhook
4. Build template:
   * **Title** - E.g., "💳 Payment Received"
   * **Body** - E.g., "\${{amount}} from {{email}}"
5. Use `{{variable}}` syntax
6. Optional: tap **"✨ Generate with AI"** to auto-write a title and body from the sample payload — AI never sees your excluded fields, and you can edit the result before saving
7. Tap **"Save"**

### AI vs Manual Notifications

On the alert screen, the **Edit Notification** section lets you choose who writes your notifications:

* **Manual** — you write the template with `{{variables}}`; every event renders it mechanically.
* **AI** — Gemini reads each event's payload (excluded fields removed first) and writes a fresh title and body for that event. Identical payloads reuse the same wording; distinct events get their own. If AI is ever unavailable, your saved manual template is used as a fallback so no notification is lost.

A live preview card under the selector shows how the notification will look using your latest real event.

### Webhook URL

The URL for this alert:

```
https://dashtray.app/p/{short_code}
```

* **Copy**: Tap to copy to clipboard
* **Rotate**: Get a fresh code if the URL leaks (old one stops working)
* **Delete**: Removes alert (can't undo!)

### Manage Alert

Swipe left or tap **"..."** menu:

* **Edit** - Change name, icon, color, sound, template
* **Pause** - Stop receiving notifications (but don't delete)
* **Delete** - Remove permanently
* **Copy URL** - Copy webhook URL

### Alert Settings

Tap **"Edit"** to configure:

* **Name** - Rename anytime
* **Icon** - Change visual icon
* **Color** - Pick color theme
* **Template Title** - Notification title with {{variables}}
* **Template Body** - Notification body with {{variables}}
* **Sound** - Notification sound
* **Field Exclusion** - Hide sensitive data
* **Team** - Assign the alert to a team so members get the same notifications

## History Tab

Browse all notifications you've received.

### Notification List

Shows all notifications with:

* Alert icon and color
* Title and body text
* Timestamp (with timezone)
* Delivery status

### Search & Filter

**Search:**

* Tap search icon
* Type keywords
* Shows matches in title/body

**Filter by Alert:**

* Tap filter icon
* Select alert
* Shows only that alert's notifications

### View Details

Tap a notification to see:

* Full title and body
* Complete timestamp
* Associated alert
* Raw JSON payload (for debugging)
* Delivery status (delivered, failed, retrying, blocked)
* Retry count

### Export Notifications

Select multiple notifications:

1. Long-press a notification
2. Tap others to select more
3. Tap "Export"
4. Choose format: JSON or CSV
5. Share or save

### Clear History

**Warning: Permanent**

1. Settings → Advanced
2. Tap "Clear History"
3. Confirm
4. All notifications deleted

Note: Depends on your plan:

* Starter: 30-day auto-purge
* Pro: 1-year retention

## Settings Tab

Personalize your Dashtray experience.

### Account Section

**Profile:**

* View email
* Change display name
* Upload avatar
* See account creation date

**Sign Out:**

* Tap to sign out
* Clears all data locally
* App returns to login

### Notifications Section

**Enable/Disable:**

* Toggle notifications globally
* When off: webhooks still processed, no alerts

**Default Sound:**

* Choose default notification sound
* Overridable per alert
* Options: default, cash, chime, ping, silent

**Vibration:**

* Enable/disable vibration on notifications

### Quiet Hours

Prevent notifications during sleep/focus time:

**Enable Quiet Hours:**

1. Toggle "Quiet Hours" on
2. Set start time (e.g., 10:30 PM) — minutes supported
3. Set end time (e.g., 8:00 AM)
4. Tap "Save"

**During Quiet Hours:**

* Notifications are held on the server — no push, no banner, no sound (works even when the app is closed)
* Everything still appears in history
* When the window ends, you get **one digest notification** summarizing what you missed — AI-written when possible ("💤 While you slept: 3 payments, 1 deploy failed")
* Your device's timezone is used, so travel doesn't shift your window

### Theme

**Light/Dark Mode:**

* System: Follow device setting
* Light: Always light theme
* Dark: Always dark theme

### API Keys

**Generate API Key:**

1. Tap "Generate New Key"
2. Optionally name it
3. **Copy key immediately** (shown only once)
4. Store securely

**Manage Keys:**

* See all keys you've generated
* Shows key prefix (not full key)
* See last used date
* Revoke old/unused keys

**Revoke Key:**

1. Find key in list
2. Tap "Revoke"
3. Confirm
4. Immediately stops working

### Billing

**Current Plan:**

* See plan name
* See features included
* See next renewal date

**Change Plan:**

* Tap "Upgrade" or "Downgrade"
* Choose new plan
* Confirm payment
* Takes effect immediately

**View Invoices:**

* See billing history
* Download receipts

### App Settings

**Advanced:**

* Clear cache
* Clear history
* Reset app
* Export data

**About:**

* App version
* Build number
* Check for updates
* View terms/privacy

## Widgets (Android)

> Widgets are **Android-only** — they're built on Voltra's Android home-screen widgets and aren't available on iOS.

Dashtray widgets put live counters and goal progress right on your home screen — no app opening needed. Data syncs while the app runs, and widgets refresh on demand via the ↻ button in their top-right corner.

### Add a Widget

1. Long-press your home screen
2. Tap "Widgets" (or the + icon)
3. Search "Dashtray"
4. Pick a widget from the list below
5. Tap **CONFIGURE** on the placed widget to choose which alert or goal it shows

### Widget Catalog

Dashtray offers alert and goal widgets in three layouts:

**Alert widgets** — show one alert's event count for today:

* *Alert (Compact)* — 2×2, big number, minimal
* *Alert (Detailed)* — 4×2, adds last event and refresh time
* *All Alerts* — 4×3, compact list of your top alerts with counts

**Goal widgets** — show progress toward a target:

* *Goal (Compact)* — 2×2, percentage + progress bar
* *Goal (Detailed)* — 4×2, adds period and tracked alert
* *All Goals* — 4×3, progress bars for your top goals

### Multiple Widgets of the Same Size

You're not limited to one widget per size — **each single-item widget has 4 independent instances**. Pin four different alerts as four 2×2 widgets, or track four goals at 4×2, each with its own selection.

In your launcher's widget picker you'll find them listed as:

* **Dashtray Alert** / **Dashtray Alert 2** / **Dashtray Alert 3** / **Dashtray Alert 4**
* **Dashtray Goal** / **Dashtray Goal 2** / **Dashtray Goal 3** / **Dashtray Goal 4**

Each numbered variant is a fully independent widget: it carries its own alert/goal selection, its own refresh, and its own configuration. The "All Alerts" and "All Goals" list widgets don't have numbered variants — they always show every alert or goal.

<Tip>
  Want the same alert in two places (e.g. phone and tablet)? Any widget can be
  placed multiple times — same-kind placements mirror each other. Use the
  numbered variants when you want *different* alerts at the same size.
</Tip>

### Configuring a Widget

Tap **CONFIGURE** on an unconfigured widget (or tap the widget's title once it's configured) to choose what it shows:

1. The picker lists your alerts (or goals) with today's counts
2. Tap one to select — the widget updates immediately
3. Use **Reset** in the same screen to clear the selection and show the CONFIGURE button again

You can also manage widgets from inside the app: **Settings → Widgets** shows every widget you've placed (with live placement count), each with:

* **↻ Refresh** — pull fresh data immediately
* **⚙ Reconfigure** — open the picker for that widget
* **🗑 Reset** — clear the widget's selection so it shows its CONFIGURE button again. The widget stays on your home screen; remove it from the launcher if you no longer want it. Heads-up: if you placed the *same* widget kind twice (e.g. "Dashtray Alert" twice), they share one selection — reset applies to both. Use the numbered variants for independent widgets.

### Troubleshooting Widgets

* **Widget shows CONFIGURE** — it isn't set up yet; tap the button and pick an alert or goal.
* **Data looks stale** — tap the widget's ↻ overlay, or refresh from Settings → Widgets. Widget data syncs while the app is open; the ↻ button forces an immediate refresh.
* **Wrong alert after changing it** — make sure you edited the right numbered variant (Alert 2 vs Alert 3 are independent). Check Settings → Widgets to see every placement.
* **Numbered variants missing from the picker** — they ship with app updates; make sure you're on the latest version.
* **Reset a widget you didn't mean to** — just tap its CONFIGURE button and pick again; nothing is deleted, only the selection is cleared.

## Notifications

### Receiving Notifications

Notifications appear as:

* **Lock screen** - Notification preview
* **Notification center** - Pull down to see all
* **Banner** - Pop-up at top (if configured)
* **Badge** - App icon shows count
* **Sound/vibration** - Alert you

### Interacting with Notifications

**Tap notification:**

* Opens Dashtray app
* Shows notification details
* Jumps to that alert's history

**Swipe left (Android) / Swipe right (iOS):**

* Clear/dismiss notification
* Removes from notification center

**Long-press (Android):**

* Show more options
* Manage all notifications from this alert

### Quiet Hours

While quiet hours are active:

* No notification is pushed — events are held server-side
* Still in history
* One digest notification arrives when the window ends
* Individual alerts can be excluded via the alert's **Bypass quiet hours** toggle (for critical alerts like prod-down or payment failures)

### Notification Storage

Notifications kept:

* **Device:** In app history (per plan retention)
* **Locked:** Encrypted on device
* **Deleted:** Can permanently remove

## Troubleshooting

### Not Getting Notifications

**Check 1: Notifications enabled**

* Settings → Notifications → Toggle ON

**Check 2: App permission granted**

* Device Settings → Apps → Dashtray → Permissions
* Grant "Notifications" permission

**Check 3: Alert active**

* Go to Alerts
* Toggle should be 🟢 (green)

### App Won't Open

**Try:**

1. Force close app (Settings → Apps → Dashtray → Force Close)
2. Wait 10 seconds
3. Open app again

### Lost Connection to Server

**Try:**

1. Check internet connection
2. Force close app
3. Restart device
4. Open app again

### Settings Not Saving

**Try:**

1. Make sure you tapped "Save" button
2. Wait a few seconds
3. Restart app
4. Try again

### Can't Sign In

**Try:**

1. Check email/password
2. Verify internet connection
3. Try forgot password flow
4. Clear app cache and retry

## Tips & Tricks

### Organizing Alerts

* Use emojis in names: "🚀 Deployments", "💳 Payments"
* Group by type: "Dev", "Business", "Personal"
* Color-code by importance
* Archive unused alerts (pause them)

### Template Variables

Use real data from your webhooks:

```
Title: "💰 {{currency}} {{amount}}"
Body: "From {{customer_email}}"

Result: "💰 USD 99.00"
         "From john@example.com"
```

### Bulk Actions

Select multiple notifications:

* Long-press to select
* Tap others to add more
* Export, delete, or search

### Share Webhook URLs

Want teammates to use a alert?

* Copy webhook URL
* Share via email or Slack
* They can send to same URL
* All notifications go to you

### Monitor Usage

* Settings → Billing → View stats
* See notifications this month
* See API requests today
* Track toward limits

### Keep Secure

* Don't share webhook URLs publicly
* Revoke unused API keys
* Use strong passwords
* Enable notifications permissions

## Support

Need help?

* **[FAQ](/resources/faq)** - Common questions
* **[Troubleshooting](/guides/troubleshooting)** - Detailed solutions
* **[Use Cases](/guides/use-cases)** - What to build with Dashtray
* **[GitHub Issues](https://github.com/bhupeshpradhan/dashtray/issues)** - Report bugs

You can also email: [support@dashtray.app](mailto:support@dashtray.app)

## What's Next?

* [Create your first alert](/guides/webhooks)
* [Explore use cases](/guides/use-cases)
* [Learn best practices](/guides/best-practices)
* [Set up MCP integration](/integration/mcp)

Ready to get started? Download the app and send your first notification! 🚀


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.