How trial activation works

What this page is for

This page explains exactly what happens between the moment you finish signup and the moment your dashboard becomes fully usable. It also tells you what to do if something looks wrong — usually a single page refresh fixes it, but there are two unambiguous recovery paths if not. Account safety always wins: nothing about trial activation involves sending email, connecting LinkedIn, or running campaigns, so a delayed activation cannot harm any sender reputation or LinkedIn account.

WarmySender is a 4-pillar outreach platform — Cold Emailing, Email Warmup, LinkedIn Outreach, and Multichannel sequences. Trial activation gates access to all four pillars from a single account.

How your trial activates

Trial activation runs in three steps end to end. In a healthy deploy, all three complete within a second or two of you clicking "Start trial".

  1. Signup creates your account row. Your email, password, workspace, and an initial subscription record (tier set to pending) are written to our database. At this point you can sign in, but you can't yet add mailboxes or launch campaigns.
  2. Stripe creates a customer. We call Stripe to provision a customer record (no card needed for the trial), receive back a stripeCustomerId, and store it on your row. This is the slowest of the three steps because it's the only one that goes off-box.
  3. Webhook flips your tier to active. Stripe sends us a customer.subscription.created webhook the moment the trial subscription is live. Our handler flips your subscriptionTier from pending to your trial plan, and the dashboard becomes fully usable on your next page load.

What to do if you see an error after signup

If you land on the dashboard right after signup and see a placeholder error like "We're getting your account ready" or a banner offering a Recover button, the most likely cause is that the Stripe webhook in step 3 above has not landed yet. The fix order, fastest first:

  1. Refresh the page once. 95% of the time the webhook has actually arrived in the second or two between landing and reading; the dashboard re-fetches your tier on every load and will show the right value on refresh.
  2. Click "Recover" if a banner offers it. The banner appears specifically when our backend has detected the post-purchase anomaly fingerprint (Stripe customer present + tier still pending). The Recover button calls POST /api/billing/self-heal, which re-fetches your subscription state directly from Stripe and re-applies the tier flip on our side. This is idempotent — clicking it twice is harmless.
  3. Wait 30 seconds and try once more. In the rare case that Stripe's webhook delivery is delayed (it happens a few times a year), the polling fallback in step 2 above re-checks every 30 seconds for up to 5 minutes after signup. By the time you've finished a coffee, your trial is active without any further action.

How long does trial provisioning take?

End-to-end, including the Stripe round trip and our webhook handler, trial activation usually completes in under one second. The slowest part is Stripe's customer.create API call (~200-400 ms typical). We poll their status independently of the webhook so even if the webhook is slow you do not have to wait long for the dashboard to catch up.

If we are deploying a new version at the exact moment you sign up, activation can take up to 30 seconds while the new process boots. This is uncommon (we deploy a few times a week, deploys take ~60 seconds, and signup volume during deploys is low), but if it happens to you, a single refresh after 30 seconds always resolves it.

What happens if my trial doesn't activate?

If 5 minutes have passed and your dashboard still shows the pending state, two paths are available:

  1. Self-heal endpoint (fastest). Click the Recover Now banner on the dashboard, or visit /billing and click "Re-check subscription". Both routes call POST /api/billing/self-heal, which directly queries Stripe for your current subscription state and re-applies the tier on our side. This is the same call our internal monitoring uses to backfill missed webhooks; it is safe to invoke repeatedly. Most "stuck pending" cases clear in under 5 seconds via self-heal.
  2. Contact support. If self-heal does not resolve it, email hello@warmysender.com with the email address you signed up with. Our support team has direct access to the Stripe dashboard and can manually reconcile the state in under a minute. Please do not create a second account — that fragments your billing history and makes the eventual fix more involved.

For more detail on what happens at the platform level when this fingerprint surfaces, see Post-purchase troubleshooting — the companion page covering paid-plan upgrades that show the same symptom.

Frequently asked questions

Will I be charged anything to start the trial?

No. Trial signup does not require a card. We create a Stripe customer record so that, if you later choose to upgrade, your billing history is preserved on the same Stripe customer, but no payment instrument is collected at trial time. You will only be asked for a card when you choose to convert to a paid plan at the end of the trial.

What does "pending" mean on my account?

"Pending" is the placeholder tier we assign during the ~1 second between account creation and webhook-driven tier flip. It blocks usage of paid features (mailbox attachment, campaign launch, LinkedIn add-on) so we never accidentally allow sending under a not-yet-provisioned plan. If your account stays pending for more than a minute, that's the post-purchase fingerprint covered above — the Recover banner or self-heal endpoint clears it.

Is my data safe if activation fails?

Yes. Trial activation is purely a database state change — no email is sent, no LinkedIn account is touched, no warmup or campaign runs. If activation fails or stalls, the only impact is that you cannot use paid features yet. Nothing has been billed, nothing has been damaged, and self-heal restores the correct state.

Should I create a second account if activation gets stuck?

No, please don't. Creating a second account fragments your billing history across two Stripe customers and makes the manual reconciliation harder for our support team. Stick with the original account, click Recover, and if that doesn't work email hello@warmysender.com. We can almost always reconcile the original account in under a minute.

I left the dashboard tab open after signup — does activation still happen?

Yes. Activation runs server-side, independent of whether your tab is open. The dashboard polls our backend on every page load (and every 30 seconds while open), so once the webhook lands the next poll picks it up automatically. If you refresh after a coffee, the dashboard will reflect your active trial without any manual step.

Still stuck? Email hello@warmysender.com with the signup email and a screenshot of the dashboard error — our support team typically responds within a few hours and reconciliation takes under a minute on our side.