Skip to main content
Some flows you depend on leave your app: Stripe checkout, a Calendly embed, an OAuth partner. A failure in the vendor integration can interrupt your user flow. This recipe runs that flow on a schedule and sends a Slack alert on failure.

The test

Keep it to the boundary: your app, into the vendor’s UI, far enough to prove the integration loads the expected controls, and back:
tests/monitors/checkout-stripe.test.yaml
Stop before the irreversible action: assert the expected form is available, not that a charge posts. When the vendor offers a test mode (Stripe test keys, a sandbox tenant), point the monitor at that instead and run the full path.

The workflow

The job installs momentic from devDependencies, so your lockfile pins the CLI version. Add it once with npm install -D momentic.
.github/workflows/monitor.yml
Scheduled workflows run from the default branch. Check that Actions and the schedule are enabled in the repository; forks may require enabling them. Use workflow_dispatch to verify the job and its configured secrets.

Third-party fragility rules

  • Route vendor outages to the appropriate on-call channel. Keep monitor alerts separate from pull request failures so each reaches its owner.
  • Vendor UI drifts. Payment iframes change markup. Write natural-language targets (“the Card number field”) so locator auto-heal re-resolves the target when the markup changes.
  • Whole-test retries default to one retry. Set --retries 0 for flows that mutate real state, such as creating a charge. Prefer vendor test modes.
  • Choose a schedule that fits the vendor’s rate limits and the flow’s duration. Avoid overlapping runs. If you need tighter detection, monitor the vendor’s status endpoint with a plain HTTP check and keep Momentic for the end-to-end signal.