> ## Documentation Index
> Fetch the complete documentation index at: https://docs.qa.tech/llms.txt
> Use this file to discover all available pages before exploring further.

# Envoyer regression testing

> Start a test plan from an Envoyer deployment hook after a PHP deploy.

Start from a [test plan](/core-concepts/test-plans). Envoyer runs a hook after deploy that starts that plan. Envoyer cannot review a pull request. See [Envoyer pull request testing](/pr-testing/envoyer).

## Set it up

[Envoyer](https://envoyer.io) deploys PHP and Laravel applications. A deployment hook can start a QA.tech test plan after each deploy.

<Steps>
  <Step title="Get the project short ID">
    Copy `proj_…` from the project URL or Settings (for example `proj_abc123`). See [Understanding Different IDs](/api-reference/introduction#understanding-different-ids).
  </Step>

  <Step title="Get the test plan short ID">
    Open the plan under [Test
    Plans](https://app.qa.tech/current-project/test-plans) and copy `pln_…` from
    the URL (for example `pln_abc123`). The hook script from **Settings →
    Integrations** targets a plan. See [Find the test plan short
    ID](/core-concepts/test-plans#find-the-test-plan-short-id).
  </Step>

  <Step title="Navigate to Deployment Hooks">
    Inside Envoyer, find your project and navigate to the section Deployment Hooks, and press "Add Hook"

    <img src="https://mintcdn.com/qatech/awtlj7WS6M855cNN/images/envoyer1.png?fit=max&auto=format&n=awtlj7WS6M855cNN&q=85&s=fe274027634d27afd803c0040b4b375a" alt="Deployment Hook page" width="2452" height="2289" data-path="images/envoyer1.png" />
  </Step>

  <Step title="Add the hook">
    Fill in the modal with the following values:

    Name: `Trigger QA.tech Tests`

    Script: copy the script from **Settings → Integrations** in QA.tech.

    <img src="https://mintcdn.com/qatech/awtlj7WS6M855cNN/images/envoyer2.png?fit=max&auto=format&n=awtlj7WS6M855cNN&q=85&s=c52e6e31d8943871868d636af63a2efe" alt="Add Hook Modal" width="2460" height="2243" data-path="images/envoyer2.png" />
  </Step>

  <Step title="Verify that the hook was added">
    It should show up in the list of hooks

    <img src="https://mintcdn.com/qatech/awtlj7WS6M855cNN/images/envoyer3.png?fit=max&auto=format&n=awtlj7WS6M855cNN&q=85&s=bdd6028a763753158a927503276336b7" alt="Verify that Hook is added" width="2484" height="943" data-path="images/envoyer3.png" />
  </Step>
</Steps>

## What works on Envoyer

| Capability | Envoyer |
| :- | :- |
| Review on a preview URL, before merge | No. |
| Review after merge, with no preview URL | No. |
| Run a regression test plan from CI | Yes. A deployment hook starts the plan after Envoyer deploys. |
| Run that plan against a mobile build | No. Envoyer does not upload an iOS or Android build. |
| Block the deploy until the plan finishes | No. The hook starts the run and does not wait. |
| Schedule | On the test plan, with **Manage Schedules**. The Envoyer hook runs on deploy, not on a clock. |

## What this does not do

* It does not read a pull request, post a review, or test a preview URL.
* It does not fail the deploy when tests fail.
* It does not run mobile builds. Use [Bitrise](/regression-testing/bitrise) or the [API](/regression-testing/api) for that.
* If the deploy is already handled by GitHub Actions or GitLab CI, you do not need Envoyer. Use [GitHub](/regression-testing/github) or [GitLab](/regression-testing/gitlab).
