CI/CD Pipeline Integration
Trigger a test run automatically when your pipeline deploys — so a tester can sign off on the build before it reaches production.
How the Integration Works
Evaficy Smart Test is a manually executed testing tool — a tester opens a run and marks each test case pass or fail step by step. The CI/CD integration does not automate test execution. What it does is give your pipeline a way to kick off that human sign-off at the right moment in your release cycle.
When a pipeline step calls the trigger endpoint, Evaficy creates a new test run in Draft status with all test case snapshots ready. The tester receives a notification, opens the run in Evaficy Smart Test, and executes it normally. The pipeline does not wait — it fires and moves on.
Pipeline deploys to Staging
Your CI/CD system completes a build and deploys it.
Pipeline calls the trigger endpoint
A single POST request creates a test run with environment and build version pre-filled.
Tester executes the run
A QA engineer opens the new run in Evaficy Smart Test and marks each test case pass or fail.
Release decision is made
The team reviews the results in Evaficy and decides whether to promote the build.
Use your CI system's native gate for blocking deployments
If you want to block a deployment until QA signs off, use your CI platform's built-in approval mechanism — GitHub Environment protection rules, GitLab manual gates, or Jenkins input steps. These are designed for human approvals and handle timeouts cleanly. The Evaficy trigger creates the run; your CI gate waits for the approval.
How to Set Up the Integration
The integration requires the Enterprise plan and takes a few minutes to configure. You need one token, two IDs, and a pipeline step.
Upgrade to the Enterprise plan
The CI/CD trigger endpoint is available on the Enterprise plan. You can upgrade from Settings → Billing or by starting a free trial.
Generate a Personal Access Token
Go to Settings → API Tokens and create a new token. Give it a descriptive name like "CI Pipeline". Copy the token immediately — it is only shown once. Store it as a secret in your CI system.
Find your Project ID and Scenario ID
Open the project in Evaficy Smart Test. The Project ID appears in the URL when viewing the project. To find the Scenario ID, open the scenario — its ID is also visible in the URL. Both are MongoDB ObjectIDs (24-character hex strings).
Add the pipeline step
Add a step to your pipeline that sends a POST request to the trigger endpoint with your token, Project ID, Scenario ID, environment name, and build version. See the examples below.
Execute the run in Evaficy Smart Test
After the pipeline step runs, a new test run appears in Test Runs with Draft status. A tester opens it and executes each test case manually, marking pass or fail. The pipeline does not wait — this is a fire-and-forget trigger.
Store your token as a secret
Never commit your Personal Access Token to source control. Add it as a repository secret in GitHub Actions (secrets.EVAFICY_TOKEN), a credential in Jenkins, or the equivalent in your CI system. Tokens can be revoked from Settings → API Tokens at any time.
Endpoint Reference
The trigger endpoint accepts a JSON body and responds immediately. It does not hold the connection open while the run is being executed.
Request body
{
"projectId": "<24-char Project ID>", // required
"scenarioId": "<24-char Scenario ID>", // required
"environment": "Staging", // optional
"buildVersion": "1.4.2", // optional
"runName": "CI Run — build #42" // optional — auto-generated if omitted
}Response (201 Created)
{
"success": true,
"runId": "<run ID>",
"runName": "CI Run — Checkout Flow (1.4.2) — 2026-04-10",
"testCaseCount": 24,
"message": "Test run created. Open Evaficy Smart Test to execute it."
}The ID of the newly created test run. Use it to link directly to the run in the app.
The name assigned to the run — either what you supplied or the auto-generated name.
How many test case snapshots were included in the run.
Human-readable confirmation that the run was created.
Example — GitHub Actions
Add this step to any workflow to trigger a test run after a deployment. Store EVAFICY_TOKEN as a repository secret and set EVAFICY_SCENARIO_ID and EVAFICY_PROJECT_ID as repository variables.
name: Create QA Run
on:
push:
branches: [main]
jobs:
create-qa-run:
runs-on: ubuntu-latest
steps:
- name: Trigger Evaficy test run
run: |
curl -s -X POST https://app.evaficy.com/runs/trigger \
-H "Authorization: Bearer ${{ secrets.EVAFICY_TOKEN }}" \
-H "Content-Type: application/json" \
-d '{
"scenarioId": "${{ vars.EVAFICY_SCENARIO_ID }}",
"projectId": "${{ vars.EVAFICY_PROJECT_ID }}",
"environment": "Staging",
"buildVersion": "${{ github.sha }}"
}'Use the short SHA for a readable build version
github.sha gives the full 40-character commit hash. For a shorter build version label, use ${{ github.sha }} sliced: add a step that runs echo "SHORT_SHA=$(echo $GITHUB_SHA | cut -c1-8)" >> $GITHUB_ENV and reference ${{ env.SHORT_SHA }} in the trigger step.
Example — Jenkins Pipeline
In Jenkins, store the token as a Secret Text credential and reference it with withCredentials. Bind the Scenario ID and Project ID as string parameters or environment variables.
pipeline {
agent any
environment {
EVAFICY_SCENARIO_ID = '<your-scenario-id>'
EVAFICY_PROJECT_ID = '<your-project-id>'
}
stages {
stage('Trigger QA Run') {
steps {
withCredentials([string(credentialsId: 'evaficy-token', variable: 'EVAFICY_TOKEN')]) {
sh """
curl -s -X POST https://app.evaficy.com/runs/trigger \
-H "Authorization: Bearer ${EVAFICY_TOKEN}" \
-H "Content-Type: application/json" \
-d '{"scenarioId":"${EVAFICY_SCENARIO_ID}","projectId":"${EVAFICY_PROJECT_ID}","buildVersion":"${BUILD_NUMBER}","environment":"Staging"}'
"""
}
}
}
}
}Test the Endpoint Without a Pipeline
If you do not have a CI/CD pipeline configured yet, you can test the trigger endpoint directly from Evaficy Smart Test. Go to Settings → CI/CD Trigger Test, paste your Personal Access Token, select a project and scenario, and click Send Test Request. If the run is created successfully, it will appear in Test Runs with Draft status.
Common Errors
Most failures are due to a missing or expired token, a wrong plan, or incorrect IDs. The API always returns a message field explaining what went wrong.
401 — User not found
The Bearer token is invalid or has been deleted. Regenerate a Personal Access Token from Settings → API Tokens and update your pipeline secret.
403 — Feature not available on your plan
The trigger endpoint requires the Enterprise plan. Upgrade from Settings → Billing.
400 — scenarioId and projectId are required
Both IDs must be supplied in the request body. Double-check your pipeline variables contain the correct 24-character hex IDs.
404 — Scenario not found
The scenarioId does not match any scenario in the given project. Verify the Scenario ID from the scenario URL in Evaficy Smart Test.
Related guides
Jira QA Integration
Push defects from test runs directly to Jira — one click, full context, no copy-paste.Test Run Execution Guide
Step-by-step execution tracking, defect logging in context, and interpreting run results accurately.Test Plan Management
How QA teams use structured test plans to scope releases, track execution coverage, and ship with confidence.Gate your releases on a real test sign-off
The CI/CD trigger is available on the Enterprise plan — connect your pipeline and make human-verified QA part of every release.
Start your trial