Functionize provides the ability to run Extensions after a test or orchestration completes. These post-hook Extensions are often used for integrations—such as pushing results into a test management system, updating dashboards, or notifying downstream services.
By running after execution, post-hook Extensions have access to both overall test results and step-level results, giving you maximum flexibility in reporting and integrations.
Post-Test Extensions
Where to Configure
- Open the Test Settings modal
- Go to the Webhooks tab
- Click Add Extension under the Extensions section
- Select a Post-Hook Extension from your account or from team-shared Extensions
- Use the search field if you have multiple Extensions available
Once added, the Extension will appear in:
- Test Settings → Webhooks
- Main Test Details page
Project-Level Extensions
Extensions can also be attached at the project level from the Project Settings → Webhooks tab. Any Extension attached here will automatically run for all tests in the project.
Post-Test Extension Request Example
When a test completes, Functionize sends a structured JSON payload to the Extension.
{
"testResults": {
"result": "PASS",
"folderPath": "test-900000/job-10163538/"
},
"variables": {
"project": {
"sampleObject": { "testing": "123" },
"sampleString": "value",
"SampleArray": ["test", "value"]
},
"iteration": 0,
"team": { "email": "tester@functionizeapp.com" },
"env": {
"jobId": "10163538",
"testId": "900000",
"projectId": "24522",
"environment": "live",
"initialUrl": "https://www.google.com/",
"timeouts": { "pageLoadTimeout": 30, "ajaxTimeout": 10, "missingElementTimeout": 15 }
},
"local": { "sampleLocal": { "testing": "12345" }, "iterations": [0] },
"actionResults": [
{
"actionId": "1681486865296_V1CIIJZCL0",
"stepResult": { "resultCode": "PASS" }
},
{
"actionId": "1681486871246_JYU07L63KF",
"stepResult": { "resultCode": "PASS" }
}
]
}
}Key Fields
req.body.testResults["result"]→ the following are validresultvalues- PASS → test completed successfully
- FAIL → one or more steps failed
- WARNING → test passed but with critical warnings
- ERROR → test did not complete due to error
req.body.variables.project→ project-level datareq.body.variables.iteration→ iteration index (for loops)req.body.variables.team→ team-level datareq.body.variables.tdm→ Test Data Management valuesreq.body.variables.env→ environment variables (jobId, projectId, URLs, timeouts, etc.)req.body.variables.local→ local variables scoped to this testreq.body.actionResults→ ordered list of all executed actions, with their pass/fail status
Post-Orchestration Extensions
Extensions can also be configured to run after an orchestration completes. This enables you to integrate with higher-level pipelines or enterprise reporting systems.
Configuration Steps
- Open Edit Orchestration
- Go to the Notifications → Webhooks tab
- Click Add Extension, choose your Extension, and (optionally) fill in a post-hook proxy
- Click Confirm
Example Payload
{
"orchestration_id": "31839",
"title": "APP Runtime Smoke Suite",
"runid": "ab034f5217202f0c3c7cfeae459a6744",
"Status": "Completed",
"total_testcases": 42,
"start_ts": "2024-02-08 21:12:15",
"end_ts": "2024-02-08 21:19:04",
"last_execution_status": "Passed",
"warning": "1",
"passed": "41",
"failure": 0,
"tests": [
{
"status": "Passed",
"job_id": "13769733",
"name": "API Test_Basic",
"browser_name": "Chrome 110",
"duration": "96826"
}
]
}This orchestration-level payload summarizes:
- Execution metadata (IDs, timestamps, status)
- Aggregate results (total tests, passed, failed, warnings)
- Per-test results (status, job_id, name, browser, duration)
When to Use Post-Hook Extensions
- Test Level: Push individual test results into a test management tool (e.g., Jira, TestRail, qTest), or to perform an API call as part of data deletion or resetting the application before the next test execution
- Project Level: Ensure consistent reporting across all tests in a project
- Orchestration Level: Feed results into CI/CD pipelines, analytics dashboards, or enterprise reporting systems