Help Center

Everything you need to get MorningPulse running in minutes. Guides, troubleshooting, and answers to every question.

Getting Started

Creating your account takes less than 60 seconds:

  1. Visit morningpulse.app and click "Start for free."
  2. Enter your email address and choose a password — or sign up with your Google account for one-click registration.
  3. Confirm your email address by clicking the verification link we send you.
  4. You'll land on your dashboard, ready to connect your first data source.

No credit card is required. You're on the Free plan by default, which includes 1 app with daily emails and 7-day trend comparisons.

Most users are fully set up in under 2 minutes. Here's the typical breakdown:

  • 30 seconds: Create your account.
  • 30 seconds: Connect Google Analytics 4 (one-click OAuth).
  • 45 seconds: Paste your App Store Connect API key (if applicable).
  • 30 seconds: Paste your Stripe restricted key (if applicable).
  • 15 seconds: Pick your metrics and delivery time.

Your first email arrives at the next scheduled delivery time. If you want to see it immediately, hit "Send test email" from your dashboard.

After connecting at least one data source:

  1. Go to your Dashboard.
  2. Click the "Send test email" button in the top-right corner.
  3. Check your inbox within 1-2 minutes. Also check your spam/promotions folder the first time.

The test email uses yesterday's real data, so you'll see exactly what your daily pulse looks like. If the email doesn't arrive, see the Email & Delivery troubleshooting section below.

MorningPulse starts with smart defaults that work for most apps. To customize:

  1. Navigate to Dashboard > Settings > Metrics.
  2. Toggle individual metrics on or off. Each one shows a preview of how it will look in your email.
  3. Drag and drop to reorder — the most important metrics should be at the top.
  4. Click "Save" and optionally send a test email to preview.

Available metrics depend on which data sources you've connected. GA4-only users won't see App Store metrics, and vice versa. Connect both to unlock the full set.

Yes. The number of apps depends on your plan:

  • Free: 1 app
  • Starter: Up to 3 apps
  • Pro: Up to 10 apps
  • Agency: Unlimited

Each app gets its own dedicated email so nothing gets cluttered. To add a new app, go to Dashboard > Apps > Add new app and connect the relevant data sources.

Connectors & Integrations

GA4 Google Analytics 4

Connecting GA4 is a one-click OAuth flow:

  1. From your Dashboard, click "Add data source" and select Google Analytics 4.
  2. You'll be redirected to Google's sign-in page. Sign in with the Google account that has access to your GA4 property.
  3. Google will ask you to grant MorningPulse read-only access to your Analytics data. Review the permissions and click "Allow."
  4. Select the GA4 property you want to track from the dropdown.
  5. Done. MorningPulse will immediately start pulling yesterday's data.

Security note: We request the analytics.readonly scope only. MorningPulse cannot modify your GA4 configuration, create goals, delete data, or access any other Google service. You can revoke access anytime from your Google account settings.

If your property is missing, check the following:

  • Right Google account: Make sure you signed in with the Google account that has access to the GA4 property. Many people have multiple Google accounts — try signing out of Google entirely, then signing back in with the correct one.
  • GA4, not Universal Analytics: MorningPulse only supports GA4 properties (not the older Universal Analytics / UA-XXXXXXX). If you're still on UA, you'll need to create a GA4 property first.
  • Sufficient permissions: You need at least Viewer role on the GA4 property. Ask your Google Analytics admin to grant you access under Admin > Property Access Management.
  • Recently created property: Brand-new GA4 properties can take up to 24 hours to appear in the API. Wait and try again.

If none of these work, disconnect and reconnect Google Analytics from Dashboard > Settings > Connections.

A few common causes:

  • Data processing delay: GA4 data can take 24-48 hours to fully process. If you connected today, your first complete report arrives the day after tomorrow.
  • Wrong property selected: Double-check you selected the correct GA4 property in Dashboard > Settings > Connections.
  • Filters or data streams: If your GA4 property has internal traffic filters or limited data streams, the numbers may look lower than expected. Verify in GA4 directly that the property has real traffic data.
  • Token expired: In rare cases, your Google OAuth token may have expired. Go to Connections, click "Reconnect" next to GA4, and re-authorize.

If the problem persists after checking all of the above, send us an email at support@morningpulse.app with your property ID and we'll investigate.

Yes. Each "app" in MorningPulse can have its own GA4 property. If you have a website and a mobile app each with their own GA4 property, create two apps in MorningPulse and connect the respective properties.

The number of apps you can create depends on your plan (1 on Free, 3 on Starter, 10 on Pro, unlimited on Agency). Each app gets its own separate email so reports stay clean and focused.

Apple App Store Connect

App Store Connect uses API keys for authentication. Here's the step-by-step:

  1. Sign in to App Store Connect at appstoreconnect.apple.com.
  2. Navigate to Users and Access > Integrations > App Store Connect API.
  3. Click "Generate API Key" (or use an existing one).
  4. Set the role to "Sales and Reports" or "Finance" — this gives MorningPulse read-only access to the data it needs without any write permissions.
  5. Download the .p8 private key file. You'll also need the Key ID and your Issuer ID (shown at the top of the API keys page).
  6. In MorningPulse, go to Dashboard > Add data source > App Store Connect.
  7. Paste your Issuer ID, Key ID, and upload (or paste the contents of) the .p8 key file.
  8. Select the app(s) you want to track, then click "Connect."

Important: The .p8 key file can only be downloaded once from Apple. Store it securely. If you lose it, you'll need to generate a new key. MorningPulse encrypts and stores your key in an AES-256 encrypted vault — it is never logged or exposed.

We recommend the "Sales and Reports" role. Here's why:

  • Sales and Reports — Gives access to app units, impressions, page views, in-app purchases, and proceeds. This is exactly what MorningPulse needs and nothing more.
  • Finance — Also works, but includes financial reporting data you may not need. Use this if you want revenue breakdowns by territory.
  • Admin / App Manager — More permissions than necessary. We strongly recommend against using these roles for MorningPulse.

The principle of least privilege: give MorningPulse only the access it needs.

Common connection issues and fixes:

  • "Invalid API key" — Double-check that you pasted the correct Issuer ID, Key ID, and .p8 key content. The key content should start with -----BEGIN PRIVATE KEY----- and end with -----END PRIVATE KEY-----.
  • "Key revoked or expired" — If someone on your team revoked the API key in App Store Connect, you'll need to generate a new one and reconnect.
  • "Insufficient permissions" — Your key's role may not include sales data. Verify the role is set to Sales and Reports or Finance.
  • "No apps found" — The API key may be too new. Apple can take up to 30 minutes to propagate new keys. Wait and retry.
  • "Data unavailable" — App Store data has a 24–48 hour delay from Apple's side. Yesterday's data may not be available until the next day.

Apple's App Store Connect data pipeline has a built-in delay of 24 to 48 hours. This is an Apple limitation, not a MorningPulse limitation.

What this means for your daily email:

  • Your 7 AM email on Monday will typically contain App Store data from Saturday (not Sunday).
  • GA4 data is faster — usually available within a few hours — so your GA4 metrics in the same email will be from Sunday.
  • MorningPulse clearly labels the date range for each data source so there's never confusion.

If data is missing for more than 3 days, check your connection status in Dashboard > Settings > Connections, or contact us.

Google Play Console

Google Play Console uses a service account for API access. Follow these steps:

  1. Go to the Google Cloud Console at console.cloud.google.com.
  2. Create a new project (or use an existing one) and enable the Google Play Android Developer API.
  3. Navigate to IAM & Admin > Service Accounts and click "Create Service Account."
  4. Name it something like morningpulse-readonly. No special IAM roles are needed at the project level.
  5. Create a JSON key for the service account and download it.
  6. Now go to Google Play Console at play.google.com/console.
  7. Navigate to Settings > API access and link your Google Cloud project.
  8. Under "Service accounts," find your new service account and click "Manage Play Console permissions."
  9. Grant the service account "View app information and download bulk reports" and "View financial data, orders, and cancellation survey responses" permissions.
  10. Apply permissions to the specific apps you want to track (or all apps).
  11. In MorningPulse, go to Dashboard > Add data source > Google Play Console and upload the JSON key file.
  12. Select your app(s) and click "Connect."

Tip: This is a one-time setup. Once connected, MorningPulse automatically fetches your Android app data daily using the same read-only approach as the other connectors.

MorningPulse only needs two read-only permissions on your service account:

  • View app information and download bulk reports — For install counts, ratings, crash data, and store listing performance.
  • View financial data, orders, and cancellation survey responses — For revenue, in-app purchases, and subscription metrics.

Do not grant "Admin," "Release management," or "Manage store presence" — MorningPulse doesn't need them and following the principle of least privilege keeps your account secure.

Troubleshooting checklist:

  1. API enabled? — Make sure the "Google Play Android Developer API" is enabled in your Google Cloud project. Go to console.cloud.google.com > APIs & Services > Enabled APIs.
  2. Project linked? — In Google Play Console, go to Settings > API access and verify your Cloud project is linked.
  3. Service account visible? — The service account should appear under API access > Service accounts in Play Console. If it doesn't, the project link may not be correct.
  4. Permissions granted? — Click "Manage Play Console permissions" next to the service account and verify both required permissions are checked for the correct app(s).
  5. Propagation delay: — New service account permissions can take up to 24 hours to fully propagate. If you just set it up, wait and try again.
  6. JSON key valid? — Ensure you uploaded the correct JSON key file. The file should contain a "type": "service_account" field.

Once connected, your daily email can include:

  • Installs & uninstalls — New installs, updates, and net device growth.
  • Store listing performance — Impressions, store listing visitors, and install conversion rate.
  • Ratings & reviews — Average rating, new ratings count, and rating distribution changes.
  • Revenue — In-app purchases, subscriptions, and total estimated proceeds.
  • Crashes & ANRs — Crash rate, ANR rate, and whether they're trending up or down.

All metrics include trend comparisons just like GA4 and App Store data — vs. yesterday, vs. last week, and vs. last month.

Stripe

Stripe uses a Restricted API Key with read-only access — no OAuth needed. You read your own Stripe data directly. Here's how:

  1. Sign in to your Stripe Dashboard at dashboard.stripe.com.
  2. Navigate to Developers > API keys.
  3. Click "Create restricted key".
  4. Name it something like MorningPulse (read-only).
  5. Set the following permissions to "Read" only:
    • Charges — to pull daily purchase totals
    • Customers — to count active customers
    • Subscriptions — to calculate MRR and ARR
    • Balance Transactions — to compute revenue by country and monthly totals
  6. Leave all other permissions set to "None."
  7. Click "Create key" and copy the key (starts with rk_live_...).
  8. In MorningPulse, go to Dashboard > Add data source > Stripe.
  9. Paste the restricted key and click "Connect."

Security note: The restricted key can only read the four resources listed above. It cannot create charges, modify subscriptions, issue refunds, or access any other Stripe data. MorningPulse encrypts your key at rest using Fernet symmetric encryption and never logs or exposes it.

MorningPulse needs read-only access to exactly four Stripe resources:

Permission Access What it powers
ChargesReadYesterday's total purchases
CustomersReadActive customer count
SubscriptionsReadCurrent MRR & ARR
Balance TransactionsReadRevenue by country, monthly total

All other permissions should remain set to "None." Never use a full-access secret key (sk_live_...) — always create a restricted key for MorningPulse.

Once connected, your daily MorningPulse email can include:

  • Yesterday's total purchases — Successful charges from the previous day.
  • Current MRR — Monthly Recurring Revenue calculated from active subscriptions.
  • Current ARR — Annual Recurring Revenue (MRR × 12).
  • Active customers — Total customers with at least one active subscription.
  • Revenue by top 5 countries — Geographic breakdown of your revenue.
  • Current month total revenue — Running total for the calendar month.

All metrics include trend comparisons vs. yesterday, last week, and last month — just like every other data source in MorningPulse.

Common issues and fixes:

  • "Invalid API key" — Make sure you pasted the full restricted key, including the rk_live_ prefix. Test mode keys (rk_test_) won't return production data.
  • "Insufficient permissions" — Your restricted key is missing one or more required permissions. Go to Stripe Dashboard > Developers > API keys, find your key, and verify that Charges, Customers, Subscriptions, and Balance Transactions are all set to "Read."
  • "Key revoked" — Someone on your team may have deleted or rolled the key. Create a new restricted key and reconnect in MorningPulse.
  • "No data available" — If your Stripe account is brand new or has no charges yet, there's nothing to report. MorningPulse will start populating data as soon as transactions occur.
  • Using the wrong account — If you have multiple Stripe accounts (e.g. test vs. production), verify you're creating the key in the correct account by checking the account name in the top-left of the Stripe Dashboard.

If none of these resolve the issue, email support@morningpulse.app with the error message you see and we'll investigate.

Use a live mode restricted key (rk_live_...) to track real revenue and customer data in your daily email.

Test mode keys (rk_test_...) only access Stripe's sandbox environment with fake data. They're useful if you want to preview how Stripe metrics look in MorningPulse before going live, but they won't reflect real transactions.

To switch: disconnect the current Stripe source in MorningPulse, create a new restricted key in the correct mode, and reconnect.

General Connector Questions

Totally fine. MorningPulse works with any combination of data sources — one, two, three, or all four. The email adapts automatically to show only the metrics available from your connected sources.

You can always add more data sources later as your needs grow.

  1. Go to Dashboard > Settings > Connections.
  2. Click the "Disconnect" button next to the data source.
  3. Confirm the disconnection.

When you disconnect a source, MorningPulse immediately deletes the stored credentials (OAuth tokens or API keys). Your email reports will automatically adapt to exclude data from the disconnected source.

For extra security, you can also revoke access from the source side:

  • GA4: Go to myaccount.google.com/permissions and remove MorningPulse.
  • App Store Connect: Revoke the API key in Users and Access > Integrations.
  • Google Play: Delete the service account or remove its permissions in Play Console.
  • Stripe: Delete the restricted key in Developers > API keys.

Security is foundational to how MorningPulse works:

  • Read-only access only. Every connector uses the minimum required permissions. MorningPulse cannot modify, delete, or publish anything on your behalf.
  • Encrypted storage. OAuth tokens, API keys, .p8 files, and Stripe restricted keys are encrypted at rest (AES-256 / Fernet) and never appear in logs.
  • TLS everywhere. All data in transit is encrypted with TLS 1.2+.
  • No third-party sharing. Your analytics data is used exclusively to generate your reports. It is never sold, shared with advertisers, or used for any other purpose.
  • SOC 2 infrastructure. We host on AWS with SOC 2 Type II compliance, regular penetration testing, and automated vulnerability scanning.

For full details, see our Privacy Policy.

Email & Delivery

By default, 7:00 AM in your local timezone. You can change this to any time you like:

  1. Go to Dashboard > Settings > Delivery.
  2. Set your preferred time and timezone.
  3. Click "Save."

Most people love it right before their morning coffee. Some prefer end-of-day. It's entirely up to you.

Try these steps in order:

  1. Check spam / promotions: Especially on Gmail, first-time emails can land in the Promotions tab. Move it to Primary and mark as "Not spam."
  2. Whitelist our sender: Add check@my.morningpulse.app to your contacts or safe senders list.
  3. Verify your email: Go to Dashboard > Settings > Account and confirm your email address is correct and verified.
  4. Check connection status: If all your data sources show errors, MorningPulse may skip the email rather than send empty data. Fix any connection issues first.
  5. Send a test email: Click "Send test email" from your dashboard. If the test arrives, the issue is likely timezone-related — double-check your delivery time settings.

If nothing works, email us at support@morningpulse.app and we'll check your delivery logs within minutes.

Yes, on Starter, Pro, and Agency plans. Go to Dashboard > Settings > Delivery and pick any time. Free plan users receive emails at 7:00 AM in their local timezone.

Absolutely. The email is designed to look great when forwarded.

On Pro (up to 5 recipients) and Agency (unlimited) plans, you can add team members directly so they receive the email at the scheduled time — no forwarding required. Go to Dashboard > Settings > Recipients to add email addresses.

GA4's built-in reports are ugly, limited, and can't include App Store or Google Play data. MorningPulse combines all sources into one clean, scannable email with trend arrows and insights — designed for humans, not analysts.

Key differences:

  • Multi-source: GA4 + App Store + Google Play + Stripe in one email.
  • Beautiful design: Color-coded, responsive, scannable in 15 seconds.
  • Trend context: Every metric shows vs. yesterday, last week, and last month.
  • Anomaly detection: Pro plans highlight unusual spikes or drops automatically.

Yes, on Pro and Agency plans. The weekly digest arrives every Monday morning and includes:

  • A summary of the entire week's performance vs. the previous week.
  • Top-performing days and notable anomalies.
  • Sparkline trends for each tracked metric.

You can configure it under Dashboard > Settings > Delivery > Weekly digest.

Billing & Plans

Yes. The free plan gives you:

  • 1 app / property
  • Daily emails with core metrics
  • 7-day trend comparisons
  • GA4, App Store Connect, Google Play, and/or Stripe

No credit card required. Use it forever if it's all you need. Upgrade only when you want more apps, deeper insights, or team features.

Yes. All paid plans (Starter, Pro, Agency) include a 14-day free trial. No credit card required to start. You won't be charged until the trial ends, and you can cancel at any time during the trial with no obligation.

  1. Go to Dashboard > Settings > Billing.
  2. Click "Change plan" and select your new plan.
  3. Upgrades take effect immediately — you'll get prorated credit for the unused portion of your current plan.
  4. Downgrades take effect at the end of your current billing period.

If you downgrade and have more apps than your new plan allows, you'll be asked to choose which apps to keep active.

Yes. No contracts, no questions. Cancel in two clicks from your Dashboard > Settings > Billing. You'll retain access to paid features until the end of your current billing period. We'll even send you a final export of your data if you want it.

Annual billing saves you 20% compared to monthly. Here's the breakdown:

Plan Monthly Annual
Starter$9/mo$7/mo
Pro$19/mo$15/mo
Agency$49/mo$39/mo

You can switch between billing cycles anytime from Dashboard > Settings > Billing.

If you cancel within the first 14 days of your initial subscription (outside of a free trial), you can request a full refund by emailing support@morningpulse.app. After that, we don't offer prorated refunds for partial billing periods, but you retain access until the end of your current cycle.

Troubleshooting & Advanced

Small discrepancies are normal and usually caused by:

  • Data processing timing: MorningPulse pulls data at a fixed time. If GA4 or Apple hasn't finished processing when we pull, numbers may be slightly lower. They usually reconcile within 48 hours.
  • Timezone differences: MorningPulse uses the timezone you set in your account. If your GA4 property uses a different timezone, the "day" boundaries differ slightly.
  • Sampling: GA4 may apply data sampling on high-traffic properties. MorningPulse requests unsampled data via the API, which can yield different numbers than the GA4 dashboard.
  • Filters: If you have custom filters in GA4 (e.g., excluding internal traffic), those are applied. MorningPulse sees the same filtered data.

If the discrepancy is large (>10%), please contact us with your property details and we'll investigate.

On Pro and Agency plans, MorningPulse automatically detects unusual changes in your metrics. When a metric deviates significantly from its recent trend (more than 2 standard deviations from the 14-day rolling average), it gets flagged in your daily email with a highlighted callout.

Common triggers include:

  • Sudden traffic spikes (viral content, press coverage)
  • Traffic drops (broken redirects, server issues, algorithm changes)
  • Crash rate increases (bad app update)
  • Revenue anomalies (pricing changes, subscription issues)

You don't need to configure anything — anomaly detection is automatic once enabled on your plan.

Yes. Go to Dashboard > Settings > Data > Export. You can download your last 90 days of report data in CSV or JSON format. This includes all metrics, trend comparisons, and timestamps.

If you're deleting your account, we'll also offer a final data export during the deletion flow.

Agency plan users can fully customize the email appearance:

  • Upload your company logo to replace the MorningPulse branding.
  • Set your brand color for headers, accents, and trend indicators.
  • Customize the sender name (e.g., "YourAgency Analytics" instead of "MorningPulse").
  • Add a custom footer with your contact info or disclaimers.

Configure everything under Dashboard > Settings > Branding. Your clients will receive a polished email that looks like it comes from your own tool.

  1. Go to Dashboard > Settings > Account > Delete account.
  2. Optionally download a final data export.
  3. Confirm deletion.

All your data — including credentials, report history, and personal information — will be permanently deleted within 30 days. Billing records are retained for 7 years as required by law. For details, see our Privacy Policy.

Still stuck? We're here to help.

Our support team typically responds within 2 hours during business days. No bots, no ticketing maze — just real humans who know the product.

Email support@morningpulse.app