Skip to main content
Every automation is built from nodes. This page documents every trigger and action node that ships natively with Collabase. All native nodes run under the automation engine’s session and respect your Space permissions — no connection setup required. All input values support double-brace variable syntax to reference data from upstream nodes: {{testCaseTitle}}, {{previous.id}}, {{payload.environment}}.

Triggers

A trigger is the first node in every automation. It listens for an event and fires the pipeline when that event occurs, passing its output fields to all downstream nodes.

Test case failed

Fires every time a tester marks a test result as FAILED during an active test run. When it fires: Once per failing result. Does not fire for BLOCKED, SKIPPED, or PASSED results.
Output fieldTypeDescription
testRunIdstringID of the test run containing the result
testCaseIdstringID of the test case that failed
testCaseTitlestringHuman-readable title of the failed test case
Example:
[Trigger: Test Case Failed]

[Condition: testCaseTitle contains "checkout"]

[Action: Send Notification]
    userId: qa-lead-user-id
    title: "Critical test failure"
    message: "{{testCaseTitle}} failed in run {{testRunId}}"

Test case passed

Fires every time a tester marks a test result as PASSED during an active test run. When it fires: Once per passing result. Does not fire for FAILED, BLOCKED, or SKIPPED results.
Output fieldTypeDescription
testRunIdstringID of the test run
testCaseIdstringID of the test case that passed
testCaseTitlestringHuman-readable title of the test case

Test run started

Fires the moment a new test run is created — whether started manually or by an automation. When it fires: Once per test run, at the moment of creation. Does not fire when the run status changes later.
Output fieldTypeDescription
testRunIdstringID of the newly created test run
testRunNamestringName given to the run
testProjectIdstringID of the test project this run belongs to
Example:
[Trigger: Test Run Started]

[Action: Create Page]
    spaceId: your-space-id
    title: "Run Report — {{testRunName}}"

Test suite created

Fires when a new test suite is added to a test project. When it fires: Once per suite creation. Does not fire when a suite is renamed or deleted.
Output fieldTypeDescription
suiteIdstringID of the newly created suite
suiteNamestringName of the suite
testProjectIdstringID of the parent test project

Schedule

Fires on a recurring schedule you define. Use cron syntax or the schedule picker in the builder.
Output fieldTypeDescription
timestampstringISO 8601 timestamp of when the trigger fired
datestringDate portion: YYYY-MM-DD
Common schedule expressions:
ExpressionFires
0 9 * * 1Every Monday at 09:00
0 0 * * *Every day at midnight
0 8 1 * *First of every month at 08:00

Webhook

Fires when an external system sends a POST request to the automation’s unique endpoint. The full JSON payload is passed downstream as {{payload.*}}. To get the webhook URL: open the automation, click the trigger node, and copy the Webhook URL from the configuration panel.
curl -X POST "https://your-collabase.example/api/v1/automation/auto-abc123/webhook" \
  -H "Content-Type: application/json" \
  -d '{"event": "deployment.completed", "environment": "production"}'
Output fieldTypeDescription
payloadobjectThe full JSON body sent in the POST request

Manual

Fires when you click Run from the automation dashboard. Useful for testing or workflows you want to control explicitly. No output fields — use this trigger when the automation does not depend on event data.

Actions

Action nodes run after your trigger fires and your conditions pass. Each action receives the output of the previous node and produces its own output that subsequent nodes can reference.

Create page

Creates a new page inside a Collabase Space with an empty body. You can optionally nest it under an existing parent page.
Input fieldTypeRequiredDescription
spaceIdstringYesID of the target Space
titlestringNoTitle of the new page. Defaults to "Untitled"
parentIdstringNoID of an existing page to nest this one under
Output fieldTypeDescription
idstringID of the newly created page
titlestringTitle of the page as saved
Pages are created with DRAFT status. Chain an Update page status action immediately after if you need the page published right away.
Example — create a run report page when a test run starts:
[Trigger: Test Run Started]

[Action: Create Page]
    spaceId: your-space-id
    title: "Run Report — {{testRunName}}"

Update page status

Changes the status of an existing Collabase page. Use this to advance content through its lifecycle automatically.
Input fieldTypeRequiredDescription
pageIdstringYesID of the page to update
statusenumYesNew status — see values below
StatusMeaning
DRAFTWork in progress — not ready for review
IN_PROGRESSActively being written
IN_REVIEWReady for someone to review
PUBLISHEDVisible and ready to read
VERIFIEDReviewed and approved — the authoritative version
Output fieldTypeDescription
idstringID of the updated page
Example — chain with Create Page to move a new page straight to review:
[Action: Create Page] → outputs id

[Action: Update Page Status]
    pageId: {{previous.id}}
    status: IN_REVIEW

Create test case

Creates a new test case inside a Collabase test project. New cases are created with status DRAFT and must be promoted to READY before they can be enrolled in a test run.
Input fieldTypeRequiredDefaultDescription
testProjectIdstringYesID of the target test project
titlestringYesTitle of the test case
descriptionstringNoOptional detailed description
priorityenumNoMEDIUMLOW, MEDIUM, HIGH, or CRITICAL
typeenumNoMANUALMANUAL, AUTOMATED, or EXPLORATORY
suiteIdstringNoID of the suite to place this case in
Output fieldTypeDescription
idstringID of the created test case
titlestringTitle as saved
Example — create a regression case for every bug filed via webhook:
[Trigger: Webhook — bug tracker]

[Action: Create Test Case]
    testProjectId: regression-project-id
    title: "Regression: {{payload.bugTitle}}"
    priority: HIGH
    type: MANUAL

Update test case status

Changes the status of an existing test case. This controls whether the case is enrolled in future test runs — only READY cases are included when a run starts.
Input fieldTypeRequiredDescription
testCaseIdstringYesID of the test case to update
statusenumYesDRAFT, READY, or DEPRECATED
Output fieldTypeDescription
idstringID of the updated test case

Create test run

Creates a new test run inside a test project and automatically enrolls all READY test cases. This is the automation equivalent of clicking Start Run manually — the run and all results are created in a single transaction.
Input fieldTypeRequiredDescription
testProjectIdstringYesID of the test project to run
namestringYesName of the test run
descriptionstringNoOptional description
milestoneIdstringNoID of a milestone to associate this run with
Output fieldTypeDescription
idstringID of the created test run
namestringName of the run as saved
Only READY test cases are enrolled. DRAFT and DEPRECATED cases are skipped. If the project has no READY cases, the run is still created but will have no results.
Example — start a regression run every Monday at 09:00:
[Trigger: Schedule — Weekly, Monday 09:00]

[Action: Create Test Run]
    testProjectId: your-project-id
    name: "Weekly Regression — {{date}}"

Search test cases

Searches for test cases within a project by keyword. Returns up to 20 matches ordered by relevance.
Input fieldTypeRequiredDescription
testProjectIdstringYesID of the test project to search in
querystringYesKeyword matched against title and description (case-insensitive)
Output fieldTypeDescription
resultsarrayArray of matched test cases, each with id and title
{
  "results": [
    { "id": "tc-001", "title": "Verify checkout with discount code" },
    { "id": "tc-002", "title": "Checkout with expired card should fail" }
  ]
}

Search test runs

Looks up test runs within a project by name or status. Returns up to 20 matches ordered by creation date (newest first).
Input fieldTypeRequiredDescription
testProjectIdstringYesID of the test project to search in
querystringNoKeyword matched against the run name (case-insensitive)
statusenumNoFilter: PENDING, IN_PROGRESS, COMPLETED, or ABORTED
Output fieldTypeDescription
resultsarrayArray of matching runs, each with id, name, and status

Send notification

Sends an in-app notification to a Collabase user. The notification appears in the user’s notification centre immediately.
Input fieldTypeRequiredDescription
userIdstringYesID of the Collabase user to notify
titlestringYesShort title shown in the notification badge
messagestringYesFull message body
linkstringNoURL to open when the user clicks the notification
Output fieldTypeDescription
idstringID of the created notification record
This action delivers in-app notifications only. There is no email fallback. The link field accepts a Collabase-internal path (e.g., /my-space/page-id) or a full external URL.

HTTP action

The HTTP action calls any external API from within an automation. Use it to send data to Slack, post to GitHub, trigger a CI pipeline, or update a record in an external tool.
Input fieldTypeRequiredDescription
methodenumYesGET or POST
urlstringYesThe full URL to call
headersobjectNoKey-value pairs to include as request headers
bodyobjectNoJSON body for POST requests
credentialIdstringNoID of a saved credential to use for authentication
The response body is available to downstream nodes as {{previous.body}} and the HTTP status code as {{previous.status}}.

Saving credentials

If the external API requires authentication, save the credentials once in Space Settings and reference them by ID — rather than hardcoding keys into action configurations.
1

Open Space Settings

Navigate to your Space and click Settings in the sidebar, then open the Credentials tab.
2

Add a new credential

Click New Credential, give it a name, and enter the key-value pairs — for example, Authorization: Bearer your-api-key.
3

Reference it in the HTTP action

In the HTTP action configuration, select your saved credential from the Credential dropdown. The headers are injected at runtime and never exposed in execution logs.
Credential values are stored encrypted and are never shown in plain text after saving. If you need to update a key, delete the existing credential and create a new one.