Set it up
Create a test plan
Pick the tests, then copy the plan short ID (
pln_…).Test Run Action
Run the plan from a workflow, with blocking and preview URL overrides.
Mobile build
Upload the build and run the plan against it.
Schedule
Run the plan on a cron schedule from Manage Schedules.
What works on GitHub
What this does not do
- The Test Run Action does not post a pull request review and does not pick tests from the diff.
- Envoyer is a different trigger for the same kind of plan. It is not required when you have GitHub Actions. See Envoyer.
- A schedule configured only in GitHub Actions is optional. The product schedule is Manage Schedules on the test plan.
Post-merge agent
When a pull request is merged, QA.tech can run an autonomous post-merge agent to keep your test suite healthy — before the internal review retrospective runs. Configure it under Settings → Integrations → GitHub App with the Run post-merge agent toggle, which reveals a Post-merge prompt you can edit. These settings live on the GitHub App integration (alongside Auto-run on PRs and other merge-review options). New GitHub integrations default the agent on with the default prompt prefilled. Existing integrations keep the agent off until you enable it (the default prompt is still prefilled in the form). You can also pass per-PR options when starting a change review via the Start change review chat API or the Change Review Action. See API and CI options below. The key idea: the prompt is the agent’s entire goal. The agent only changes tests when the prompt asks it to. If you point the prompt at something else (for example, “open a Linear issue summarizing the merge”), that is all it does — it will not touch your tests. The default prompt focuses on conservative regression maintenance. The agent runs in the same conversation as the PR review, so it already has the review history — the tests that ran, their results, and the diff — as context. It reuses your existing test tools; there is nothing new to configure beyond the prompt.What it can do
Depending on your prompt, the agent can:- Promote review tests into the regression suite. Only tests this PR’s own reviews created — surfaced to the agent as “main candidates,” still drafts and not last seen failing — can be promoted. Promoting activates a test (and its dependencies) and labels it
regression+auto-addedautomatically, so you can filter for them in the test list. Promoting nothing is a normal outcome. - Update tests whose behavior the merge changed so they match the merged state.
- Convert to draft tests that the merge made stale or irrelevant — cautiously, and only with strong, diff-grounded evidence. If another active test depends on one being drafted, the agent must confirm and draft the whole chain together; it never archives tests automatically.
- Add tests to a test plan (for example Smoke or Regression) when your prompt asks for it and defines the criteria.
- Use connected integrations — for example open a tracker issue, post or read a Slack update (when Enable Slack Tools in Chat is on), or (when you have connected MCP servers) run one of their tools — when your prompt asks for something other than test maintenance.
Example prompts
Use these as inspiration — copy, combine, or adapt them: Conservative regression maintenance (default):The post-merge agent runs before the internal review retrospective, which
always runs afterward regardless of whether the post-merge agent is enabled,
skipped, or fails. Non-merged (closed) PRs skip the post-merge agent and go
straight to the retrospective.
Post-merge via API or CI
When you trigger a merge review withPOST /v1/chat/change-review (mode: "pr"), you can pass optional postMerge options. Those options are stored on the review conversation and override the GitHub App integration settings for that PR only when it merges.
Omit
postMerge entirely to use the GitHub App integration toggle and prompt. From CI, pass the same JSON body to the change-review API (or wrap it in your own workflow step).
Promoted tests are labelled auto-added for provenance today; a durable, structured link back to the originating pull request, and per-test-plan opt-in controls for automatic additions, are planned follow-ups.
Test run implementation patterns
Run on pull requests
Test preview deployments
Test a mobile PR build
Native apps have no preview URL. Build the APK or simulator.app in the workflow, upload it, then pass applicationBuildShortId in applications_config instead of url. Full workflows (test plan and change review) are in PR Testing for Mobile Apps.
Persist environment custom headers
PasscustomHeaders on any environment in applications_config to persist host-pattern header rules (auth and protection bypass). The Test Run Action and Change Review Action both accept this field. The preview deployment example shows it in a full workflow.
customHeaders works with url, shortId, or applicationBuildShortId. Omit the field to leave stored headers unchanged. Pass [] to clear them. The Start Run API uses the same customHeaders shape on applications[].environment (array of application objects, not a map). See Environment custom headers.