Skip to main content

Staging journey cron

Nightly Playwright run against https://staging.compasscalendar.com only. Workflow: .github/workflows/staging-journey.yml.

Create GitHub Environment staging-journey with:

SecretPurpose
DISCORD_ERRORS_WEBHOOK_URLFailure notifications (same pattern as live provider smoke)
STAGING_JOURNEY_GOOGLE_EMAILGoogle leg signup/login email
STAGING_JOURNEY_GOOGLE_PASSWORDGoogle leg password
STAGING_JOURNEY_MICROSOFT_EMAILMicrosoft leg email
STAGING_JOURNEY_MICROSOFT_PASSWORDMicrosoft leg password
STAGING_JOURNEY_APPLE_EMAILApple leg email
STAGING_JOURNEY_APPLE_PASSWORDApple leg password

Each matrix leg sets STAGING_JOURNEY_PROVIDER and fails fast when that leg's email/password secrets are missing.

Synthetic accounts​

Journey signups are tagged server-side (isSynthetic, PostHog $internal_or_test_user and is_synthetic on client and server events), excluded from welcome email, and marked with the X-Compass-Synthetic-Account: true header from Playwright. Filter PostHog funnels with is_synthetic != true.

On staging-cloud, set GitHub Environment variable SYNTHETIC_JOURNEY_EMAILS to the same base addresses as the journey secrets (comma-separated, e.g. lance.essert@gmail.com). Deploy writes journeys.syntheticEmails into compass.yaml so plus-tagged signups match the base. Production uses the same variable when prod journey is enabled. For prod journey checkout, set stripe.syntheticJourneyDiscountId to a 100% off Stripe coupon or promotion code id (STRIPE_SYNTHETIC_JOURNEY_DISCOUNT_ID in deploy env).