Reference · Tools

Currents

Interact with the Currents API for test orchestration and analytics — manage actions, runs, projects, spec files, tests, and test results.

Action Utility v1

The Currents node gives BusyBot full access to the Currents.dev REST API, covering 8 resources across test runs, projects, actions, spec files, tests, and results. Use it to build workflows that automatically cancel flaky runs, quarantine failing tests, or pull per-spec performance metrics into a report. If you orchestrate Cypress or Playwright tests through Currents, this node is how you automate the surrounding workflow.

Node type
Action
Parameters
58
Outputs
Output, Error
Credentials
Currents API

Currents

Manage test orchestration and analytics on Currents.dev.

Overview

Currents (currents.dev) is a test orchestration and analytics platform for Cypress, Playwright, and other testing frameworks. This tool provides full access to the Currents REST API. It supports 8 resources: Action (create, delete, disable, enable, get, get many, update — manage test action rules like skip, quarantine, and tag), Instance (get — retrieve spec file execution instance details), Project (get, get many, get insights — manage projects and retrieve metrics), Run (cancel, cancel by GitHub CI, delete, find, get, get many, reset — manage test runs), Signature (generate — generate unique test signatures), Spec File (get many — spec file performance metrics), Test (get many — test performance metrics), and Test Result (get many — historical test execution results).

Category: Utility
Tool Name: currents
Version: 1

Appearance: Icon: lucide-TestTube | Color: #4B5563

Node Type

Action — processes input items and produces output

Input / Output

DirectionPort(s)
InputInput
OutputOutput, Error

Credentials

This tool requires Currents API credentials. See the Credentials Guide for setup instructions.

Resources

ResourceValue
Actionaction
Instanceinstance
Projectproject
Runrun
Signaturesignature
Spec FilespecFile
Testtest
Test ResulttestResult

Operations

OperationValueDescription
CreatecreateAction — create a new action for a project
DeletedeleteAction — archive an action (soft delete)
DisabledisableAction — deactivate an active action
EnableenableAction — reactivate a disabled action
GetgetAction — get a single action by ID
Get ManygetAllAction — get many actions for a project
UpdateupdateAction — update an existing action
GetgetInstance — get a spec file execution instance with full test results
GetgetProject — get a project by ID
Get ManygetAllProject — get many projects
Get InsightsgetInsightsProject — get project insights and metrics
CancelcancelRun — cancel a run in progress
Cancel by GitHub CIcancelGithubRun — cancel a run by GitHub Actions workflow run ID
DeletedeleteRun — delete a run and all associated data
FindfindRun — find a run by project and filters
GetgetRun — get a run by ID
Get ManygetAllRun — get many runs for a project
ResetresetRun — reset failed specs for re-execution on specified machines
GenerategenerateSignature — generate a unique test signature
Get ManygetAllSpec File — get aggregated spec file metrics for a project
Get ManygetAllTest — get aggregated test metrics for a project
Get ManygetAllTest Result — get historical test execution results for a specific test signature

Operation values are scoped to their resource, so get, getAll and delete mean different things depending on the Resource you picked.

Parameters

Action: Create

ParameterTypeRequiredDefaultDescription
Project IDstringYesThe Currents project ID. Find in Currents Dashboard under project settings. Supports expressions like {{ $json.projectId }}.
NamestringYesThe name of the action (1-255 characters). Supports expressions.
Action TypeoptionsYesquarantineThe type of action to create.
Options: quarantine (quarantine matching tests), skip (skip matching tests), tag (add tags to matching tests)
Tags (actionTags)stringNoComma-separated list of tags to apply. (shown when Action Type is tag)
Matcher TypeoptionsYestitleContainsHow to match tests for this action.
Options: specContains (spec file contains), specEquals (spec file equals), signature (test signature), titleContains (test title contains), titleEquals (test title equals)
Matcher ValuestringYesThe value to match against (test title, spec file path, or signature). Supports expressions.
Options (createOptions)collectionNo{}Optional properties for the new action.
— DescriptionstringNoA description for the action.
— Expires AfterstringNoWhen the action should expire (ISO 8601 format).

Action: Get

ParameterTypeRequiredDefaultDescription
Action IDstringYesThe ID of the action. Supports expressions.

Action: Get Many

ParameterTypeRequiredDefaultDescription
Project IDstringYesThe Currents project ID. Find in Currents Dashboard under project settings. Supports expressions.
FilterscollectionNo{}Optional filters narrowing the action list.
— SearchstringNoSearch actions by name (max 100 characters).
— StatusmultiOptionsNo[]Filter by action status.
Options: active, archived, disabled, expired

Action: Update

ParameterTypeRequiredDefaultDescription
Action IDstringYesThe ID of the action. Supports expressions.
Update FieldscollectionNo{}Properties to change on the existing action. Fields you leave out are untouched.
— NamestringNoThe name of the action (1-255 characters).
— DescriptionstringNoA description for the action.
— Expires AfterstringNoWhen the action should expire (ISO 8601 format).

Action: Delete

ParameterTypeRequiredDefaultDescription
Action IDstringYesThe ID of the action. Supports expressions.

Action: Enable

ParameterTypeRequiredDefaultDescription
Action IDstringYesThe ID of the action. Supports expressions.

Action: Disable

ParameterTypeRequiredDefaultDescription
Action IDstringYesThe ID of the action. Supports expressions.

Instance: Get

ParameterTypeRequiredDefaultDescription
Instance IDstringYesThe ID of the spec file execution instance. Supports expressions.

Project: Get

ParameterTypeRequiredDefaultDescription
Project IDstringYesThe Currents project ID. Find in Currents Dashboard under project settings. Supports expressions.

Project: Get Many

ParameterTypeRequiredDefaultDescription
LimitnumberNo10Max number of results to return.

Project: Get Insights

ParameterTypeRequiredDefaultDescription
Project IDstringYesThe Currents project ID. Find in Currents Dashboard under project settings. Supports expressions.
Date StartstringYesStart date for metrics (ISO 8601 format). Supports expressions.
Date EndstringYesEnd date for metrics (ISO 8601 format). Supports expressions.
Options (options)collectionNo{}Optional filters and shaping for the insights query.
— Git AuthorsstringNoFilter by git authors (comma-separated for multiple).
— BranchesstringNoFilter by branches (comma-separated for multiple).
— GroupsstringNoFilter by groups (comma-separated for multiple).
— ResolutionoptionsNo1dTime resolution for metrics.
Options: 1h (1 hour), 1d (1 day), 1w (1 week)
— TagsstringNoFilter by tags (comma-separated for multiple).

Run: Get

ParameterTypeRequiredDefaultDescription
Run IDstringYesThe ID of the run. Supports expressions like {{ $json.runId }}.

Run: Get Many

ParameterTypeRequiredDefaultDescription
Project IDstringYesThe Currents project ID. Find in Currents Dashboard under project settings. Supports expressions.
LimitnumberNo10Max number of results to return.
FilterscollectionNo{}Optional filters narrowing the run list.
— Git AuthorsstringNoFilter by git authors (comma-separated for multiple).
— BranchesstringNoFilter by branches (comma-separated for multiple).
— Completion StatemultiOptionsNo[]Filter by completion state.
Options: CANCELED, COMPLETE, IN_PROGRESS, TIMEOUT
— Date EndstringNoFilter runs created before this date (ISO 8601).
— Date StartstringNoFilter runs created on or after this date (ISO 8601).
— SearchstringNoSearch by ciBuildId or commit message (max 200 characters).
— StatusmultiOptionsNo[]Filter by run status.
Options: FAILED, FAILING, PASSED, RUNNING
— TagsstringNoFilter by tags (comma-separated for multiple).
— Tag OperatoroptionsNoANDLogical operator for tag filtering.
Options: AND, OR
Options (options)collectionNo{}Cursor pagination controls.
— Starting AfterstringNoCursor for forward pagination (use cursor from previous response).
— Ending BeforestringNoCursor for backward pagination (use cursor from previous response).

Run: Find

ParameterTypeRequiredDefaultDescription
Project IDstringYesThe Currents project ID. Find in Currents Dashboard under project settings. Supports expressions.
FilterscollectionNo{}Criteria identifying the run to find.
— BranchstringNoFilter by git branch name.
— CI Build IDstringNoFilter by CI build ID.
— TagsstringNoFilter by tags (comma-separated for multiple).

Run: Cancel

ParameterTypeRequiredDefaultDescription
Run IDstringYesThe ID of the run. Supports expressions.

Run: Cancel by GitHub CI

ParameterTypeRequiredDefaultDescription
GitHub Run IDstringYesThe GitHub Actions workflow run ID. Supports expressions.
GitHub Run AttemptnumberYes1The GitHub Actions workflow attempt number.
Options (cancelGithubOptions)collectionNo{}Optional narrowing of what gets cancelled.
— Project IDstringNoLimit cancellation to a specific project.
— CI Build IDstringNoLimit cancellation to a specific CI build.

Run: Delete

ParameterTypeRequiredDefaultDescription
Run IDstringYesThe ID of the run. Supports expressions.

Run: Reset

ParameterTypeRequiredDefaultDescription
Run IDstringYesThe ID of the run. Supports expressions.
Machine IDsstringYesComma-separated list of machine identifiers to reset (1-63 items). Supports expressions.
Options (resetOptions)collectionNo{}Optional settings for the reset.
— Batched OrchestrationbooleanNofalseWhether to enable batched orchestration.

Signature: Generate

ParameterTypeRequiredDefaultDescription
Project IDstringYesThe Currents project ID. Supports expressions.
Spec File PathstringYesThe complete path to the spec file. Supports expressions.
Test TitlestringYesThe test title. For nested describe blocks, use ” > ” as separator (e.g., “Login > should login with valid credentials”). Supports expressions.

Spec File: Get Many

ParameterTypeRequiredDefaultDescription
Project IDstringYesThe Currents project ID. Supports expressions.
Date StartstringYesStart date for metrics (ISO 8601 format). Supports expressions.
Date EndstringYesEnd date for metrics (ISO 8601 format). Supports expressions.
LimitnumberNo50Max number of results to return.
FilterscollectionNo{}Optional filters narrowing which spec files are measured.
— Git AuthorsstringNoFilter by git authors (comma-separated for multiple).
— BranchesstringNoFilter by branches (comma-separated for multiple).
— GroupsstringNoFilter by groups (comma-separated for multiple).
— Spec NamestringNoFilter spec files by name (partial match).
— TagsstringNoFilter by tags (comma-separated for multiple).
Options (options)collectionNo{}Ordering, paging and metric shaping.
— Include Failed in DurationbooleanNofalseWhether to include failed executions in duration calculation.
— Order ByoptionsNoavgDurationThe field to order results by.
Options: avgDuration, failedExecutions, failureRate, flakeRate, flakyExecutions, fullyReported, overallExecutions, suiteSize, timeoutExecutions, timeoutRate
— Sort DirectionoptionsNodescThe direction to sort results.
Options: asc, desc
— PagenumberNo0Page number (0-indexed).

Test: Get Many

ParameterTypeRequiredDefaultDescription
Project IDstringYesThe Currents project ID. Supports expressions.
Date StartstringYesStart date for metrics (ISO 8601 format). Supports expressions.
Date EndstringYesEnd date for metrics (ISO 8601 format). Supports expressions.
LimitnumberNo50Max number of results to return.
FilterscollectionNo{}Optional filters narrowing which tests are measured.
— Git AuthorsstringNoFilter by git authors (comma-separated for multiple).
— BranchesstringNoFilter by branches (comma-separated for multiple).
— GroupsstringNoFilter by groups (comma-separated for multiple).
— Minimum ExecutionsnumberNo1Minimum number of executions to include a test.
— Spec FilestringNoFilter tests by spec file name (partial match).
— TagsstringNoFilter by tags (comma-separated for multiple).
— Test StatemultiOptionsNo[]Filter by test state.
Options: failed, passed, pending, skipped
— TitlestringNoFilter tests by title (partial match).
Options (options)collectionNo{}Ordering, paging and metric shaping.
— Order ByoptionsNotitleThe field to order results by.
Options: duration, durationDelta, durationXSamples (duration impact), executions, failRateXSamples (failure impact), failureRateDelta, failures, flakiness, flakinessXSamples (flakiness impact), flakinessRateDelta, passes, title
— Sort DirectionoptionsNodescThe direction to sort results.
Options: asc, desc
— PagenumberNo0Page number (0-indexed).
— Metric SettingsstringNoOverride which test statuses are included in metric calculations. JSON object with optional keys: executions, avgDuration, flakinessRate, failureRate. Each value is an array of status strings: passed, failed, pending, skipped. Example: {“executions”:[“failed”,“passed”],“failureRate”:[“failed”]}

Test Result: Get Many

ParameterTypeRequiredDefaultDescription
Test SignaturestringYesThe unique test signature. Use the Signature resource to generate this from project ID, spec file path, and test title. Supports expressions.
Date StartstringYesStart date for results (ISO 8601 format). Supports expressions.
Date EndstringYesEnd date for results (ISO 8601 format). Supports expressions.
LimitnumberNo10Max number of results to return.
FilterscollectionNo{}Optional filters narrowing the result history.
— BranchesstringNoFilter by branches (comma-separated for multiple).
— Git AuthorsstringNoFilter by git authors (comma-separated for multiple).
— GroupsstringNoFilter by groups (comma-separated for multiple).
— StatusmultiOptionsNo[]Filter by test status.
Options: failed, passed, pending, skipped
— TagsstringNoFilter by run tags (comma-separated, multiple values supported).
Options (options)collectionNo{}Cursor pagination controls.
— Starting AfterstringNoCursor for forward pagination.
— Ending BeforestringNoCursor for backward pagination.

All Operations

ParameterTypeRequiredDefaultDescription
Max ConcurrencynumberNo10Maximum number of items to process concurrently.

Output Data

The Currents response is merged into the item JSON at the top level, so the incoming fields stay addressable alongside it, and binary data is forwarded. Currents wraps most responses in a data envelope; the node unwraps it, so what lands on the item is the record itself rather than a wrapper.

List operations fan out. When the unwrapped response is an array — the Get Many operations, and Find when it matches several runs — each element becomes its own output item, so no Split Out node is needed. Every other operation produces exactly one output item per input item.

Resource: OperationWhat lands on the item
Action: Create / Get / Update / Enable / DisableThe action record — its ID, name, type, matcher, status and expiry.
Action: Get ManyOne item per action in the project, filtered by Search and Status.
Action: Delete{ "success": true } — the archive call returns no body of its own.
Instance: GetThe spec file execution instance, including its full test results.
Project: GetThe project record.
Project: Get ManyOne item per project, capped by Limit.
Project: Get InsightsThe insight metrics for the date range, bucketed at the Resolution you chose.
Run: Get / Cancel / Reset / Cancel by GitHub CIThe run record as it stands after the call.
Run: Get ManyOne item per run, capped by Limit and narrowed by Filters.
Run: FindThe matching run, or one item per match when several runs qualify.
Run: Delete{ "success": true } — the delete call returns no body of its own.
Signature: GenerateThe generated test signature, ready to feed into Test Result: Get Many.
Spec File: Get ManyOne item per spec file with its aggregated metrics, ordered by Order By.
Test: Get ManyOne item per test with its aggregated metrics, ordered by Order By.
Test Result: Get ManyOne item per historical execution of the signature you supplied.

Because the merge happens at the top level, an incoming item field whose name collides with a Currents response key is overwritten. Rename such fields upstream if you need both.

Usage Examples

  • List all test runs for a project
  • Create a quarantine action for a flaky test
  • Get project insights and metrics for a date range
  • Cancel a running test run
  • Get historical test results for a specific test signature
  • Generate a unique test signature from project, spec file, and test title
  • Get spec file performance metrics
  • Delete a test action

Example Configuration

List the most recent failing runs for a project:

{
  "type": "currents",
  "parameters": {
    "resource": "run",
    "operation": "getAll",
    "projectId": "{{ $json.projectId }}",
    "limit": 25,
    "filters": {
      "status": ["FAILED", "FAILING"],
      "branches": "main",
      "dateStart": "2026-03-01T00:00:00Z"
    }
  }
}

Quarantine a flaky test by title:

{
  "type": "currents",
  "parameters": {
    "resource": "action",
    "operation": "create",
    "projectId": "{{ $json.projectId }}",
    "name": "Quarantine flaky checkout test",
    "actionType": "quarantine",
    "matcherType": "titleContains",
    "matcherValue": "{{ $json.testTitle }}",
    "createOptions": {
      "description": "Auto-quarantined by the flake watcher workflow",
      "expiresAfter": "2026-04-01T00:00:00Z"
    }
  }
}

Tag matching tests instead of quarantining them:

{
  "type": "currents",
  "parameters": {
    "resource": "action",
    "operation": "create",
    "projectId": "{{ $json.projectId }}",
    "name": "Tag slow suite",
    "actionType": "tag",
    "actionTags": "slow, needs-review",
    "matcherType": "specContains",
    "matcherValue": "e2e/checkout"
  }
}

Generate a test signature, then read that test’s history:

{
  "type": "currents",
  "parameters": {
    "resource": "signature",
    "operation": "generate",
    "projectId": "{{ $json.projectId }}",
    "specFilePath": "cypress/e2e/checkout.cy.ts",
    "testTitle": "Checkout > applies a discount code"
  }
}
{
  "type": "currents",
  "parameters": {
    "resource": "testResult",
    "operation": "getAll",
    "signature": "{{ $json.signature }}",
    "dateStart": "2026-03-01T00:00:00Z",
    "dateEnd": "2026-03-31T23:59:59Z",
    "limit": 50,
    "filters": {
      "status": ["failed"],
      "branches": "main"
    }
  }
}

Rank the flakiest tests over a month:

{
  "type": "currents",
  "parameters": {
    "resource": "test",
    "operation": "getAll",
    "projectId": "{{ $json.projectId }}",
    "dateStart": "2026-03-01T00:00:00Z",
    "dateEnd": "2026-03-31T23:59:59Z",
    "limit": 50,
    "filters": {
      "minExecutions": 10
    },
    "options": {
      "order": "flakiness",
      "dir": "desc"
    }
  }
}

Cancel the run started by a GitHub Actions workflow:

{
  "type": "currents",
  "parameters": {
    "resource": "run",
    "operation": "cancelGithub",
    "githubRunId": "{{ $json.workflow_run.id }}",
    "githubRunAttempt": 1,
    "cancelGithubOptions": {
      "projectId": "{{ $json.projectId }}"
    }
  }
}

Re-run the failed specs of a run on two machines:

{
  "type": "currents",
  "parameters": {
    "resource": "run",
    "operation": "reset",
    "runId": "{{ $json.runId }}",
    "machineIds": "machine-1,machine-2",
    "resetOptions": {
      "isBatchedOr8n": true
    }
  }
}

Error Handling

ModeBehavior
stopHalts workflow on first error
continueSkips failed items, passes successful ones through
errorPortRoutes failed items to Error output port

Tips

Manage test orchestration and analytics on Currents.dev — actions, runs, projects, spec files, tests, and test results.

  • Almost everything needs a Project ID. Find it in the Currents dashboard under project settings; a Project: Get Many run is the quickest way to list them all.
  • Dates are ISO 8601. Date Start and Date End on the insights and metrics operations expect full timestamps such as 2026-03-01T00:00:00Z.
  • Signatures identify a test across runs. Generate one with Signature: Generate from the project ID, spec file path and test title, then use it for Test Result: Get Many or as the Matcher Value of a signature action.
  • Nested describe blocks use > in Test Title — for example Login > should login with valid credentials.
  • Action Type decides the extra fields. Tags only appears for the tag type; quarantine and skip need no extra input beyond the matcher.
  • Delete archives an action. It is a soft delete, so the action stops applying but remains visible with the archived status.
  • Two pagination styles. Run: Get Many and Test Result: Get Many page with the Starting After / Ending Before cursors from the previous response; Spec File: Get Many and Test: Get Many page with a 0-indexed Page number.
  • Comma-separated lists are the norm. Git Authors, Branches, Groups, Tags and Machine IDs all take one string with commas rather than repeated fields.
  • Reset needs the machines named. Machine IDs takes between 1 and 63 identifiers, and only the failed specs of that run are re-queued.

Frequently asked questions

What credentials do I need, and where do I find them?

The node uses the Currents API credential type (currentsApi). You'll generate an API key inside your Currents dashboard and store it there. Almost every operation also requires a Project ID, which you can look up in project settings or by running a Project: Get Many operation first to list all projects your key can access.

How do I page through large result sets — for example, all test results for a project?

Currents uses two different pagination styles depending on the resource. Run: Get Many and Test Result: Get Many use cursor-based pagination — you pass the Starting After or Ending Before value from the previous response to fetch the next page. Spec File: Get Many and Test: Get Many use a simpler 0-indexed Page number instead. Don't mix the two approaches across resources.

What is a Signature and when do I need one?

A signature is a stable identifier that tracks a specific test across multiple runs. Generate one using Signature: Generate by supplying the project ID, the spec file path, and the test title. You then use that signature with Test Result: Get Many to pull historical results for that exact test, or as the Matcher Value when creating a `signature`-type Action to quarantine or skip it.

I'm creating an Action — why don't I see a Tags field?

The Tags field only appears when Action Type is set to `tag`. For `quarantine` and `skip` action types, no extra fields beyond the matcher are required. The visible parameters change depending on which Action Type you select, so if a field you expect isn't showing, check that setting first.

If I delete an Action, does it disappear permanently?

No — Action: Delete is a soft delete. The action stops being applied to future test runs, but it remains visible in Currents with an `archived` status. You can still see it in the dashboard; it just won't match or affect any new runs.

Build with the Currents node

Drop it into a workflow, wire it to an agent, or call it on a schedule. You'll need Currents API credentials first.

Open BusyBot

Last updated . Spotted something wrong? Tell us.