Search all guides

Reference · Tools

Currents integration

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.

Works as
Action
Tool name
currents
Operations
22 — Create , Delete , Disable , Enable , Get and 17 more
Parameters
58
Outputs
Output, Error
Credentials
Currents API
Official docs
Currents docs docs.currents.dev

What you can build with Currents

  • 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.

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).

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 IDstringYes—The Currents project ID. Find in Currents Dashboard under project settings. Supports expressions like {{ $json.projectId }}.
NamestringYes—The 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)stringNo—Comma-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 ValuestringYes—The value to match against (test title, spec file path, or signature). Supports expressions.
Options (createOptions)collectionNo{}Optional properties for the new action.
— DescriptionstringNo—A description for the action.
— Expires AfterstringNo—When the action should expire (ISO 8601 format).

Action: Get

ParameterTypeRequiredDefaultDescription
Action IDstringYes—The ID of the action. Supports expressions.

Action: Get Many

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

Action: Update

ParameterTypeRequiredDefaultDescription
Action IDstringYes—The ID of the action. Supports expressions.
Update FieldscollectionNo{}Properties to change on the existing action. Fields you leave out are untouched.
— NamestringNo—The name of the action (1-255 characters).
— DescriptionstringNo—A description for the action.
— Expires AfterstringNo—When the action should expire (ISO 8601 format).

Action: Delete

ParameterTypeRequiredDefaultDescription
Action IDstringYes—The ID of the action. Supports expressions.

Action: Enable

ParameterTypeRequiredDefaultDescription
Action IDstringYes—The ID of the action. Supports expressions.

Action: Disable

ParameterTypeRequiredDefaultDescription
Action IDstringYes—The ID of the action. Supports expressions.

Instance: Get

ParameterTypeRequiredDefaultDescription
Instance IDstringYes—The ID of the spec file execution instance. Supports expressions.

Project: Get

ParameterTypeRequiredDefaultDescription
Project IDstringYes—The 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 IDstringYes—The Currents project ID. Find in Currents Dashboard under project settings. Supports expressions.
Date StartstringYes—Start date for metrics (ISO 8601 format). Supports expressions.
Date EndstringYes—End date for metrics (ISO 8601 format). Supports expressions.
Options (options)collectionNo{}Optional filters and shaping for the insights query.
— Git AuthorsstringNo—Filter by git authors (comma-separated for multiple).
— BranchesstringNo—Filter by branches (comma-separated for multiple).
— GroupsstringNo—Filter by groups (comma-separated for multiple).
— ResolutionoptionsNo1dTime resolution for metrics.
Options: 1h (1 hour), 1d (1 day), 1w (1 week)
— TagsstringNo—Filter by tags (comma-separated for multiple).

Run: Get

ParameterTypeRequiredDefaultDescription
Run IDstringYes—The ID of the run. Supports expressions like {{ $json.runId }}.

Run: Get Many

ParameterTypeRequiredDefaultDescription
Project IDstringYes—The 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 AuthorsstringNo—Filter by git authors (comma-separated for multiple).
— BranchesstringNo—Filter by branches (comma-separated for multiple).
— Completion StatemultiOptionsNo[]Filter by completion state.
Options: CANCELED, COMPLETE, IN_PROGRESS, TIMEOUT
— Date EndstringNo—Filter runs created before this date (ISO 8601).
— Date StartstringNo—Filter runs created on or after this date (ISO 8601).
— SearchstringNo—Search by ciBuildId or commit message (max 200 characters).
— StatusmultiOptionsNo[]Filter by run status.
Options: FAILED, FAILING, PASSED, RUNNING
— TagsstringNo—Filter by tags (comma-separated for multiple).
— Tag OperatoroptionsNoANDLogical operator for tag filtering.
Options: AND, OR
Options (options)collectionNo{}Cursor pagination controls.
— Starting AfterstringNo—Cursor for forward pagination (use cursor from previous response).
— Ending BeforestringNo—Cursor for backward pagination (use cursor from previous response).

Run: Find

ParameterTypeRequiredDefaultDescription
Project IDstringYes—The Currents project ID. Find in Currents Dashboard under project settings. Supports expressions.
FilterscollectionNo{}Criteria identifying the run to find.
— BranchstringNo—Filter by git branch name.
— CI Build IDstringNo—Filter by CI build ID.
— TagsstringNo—Filter by tags (comma-separated for multiple).

Run: Cancel

ParameterTypeRequiredDefaultDescription
Run IDstringYes—The ID of the run. Supports expressions.

Run: Cancel by GitHub CI

ParameterTypeRequiredDefaultDescription
GitHub Run IDstringYes—The 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 IDstringNo—Limit cancellation to a specific project.
— CI Build IDstringNo—Limit cancellation to a specific CI build.

Run: Delete

ParameterTypeRequiredDefaultDescription
Run IDstringYes—The ID of the run. Supports expressions.

Run: Reset

ParameterTypeRequiredDefaultDescription
Run IDstringYes—The ID of the run. Supports expressions.
Machine IDsstringYes—Comma-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 IDstringYes—The Currents project ID. Supports expressions.
Spec File PathstringYes—The complete path to the spec file. Supports expressions.
Test TitlestringYes—The 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 IDstringYes—The Currents project ID. Supports expressions.
Date StartstringYes—Start date for metrics (ISO 8601 format). Supports expressions.
Date EndstringYes—End date for metrics (ISO 8601 format). Supports expressions.
LimitnumberNo50Max number of results to return.
FilterscollectionNo{}Optional filters narrowing which spec files are measured.
— Git AuthorsstringNo—Filter by git authors (comma-separated for multiple).
— BranchesstringNo—Filter by branches (comma-separated for multiple).
— GroupsstringNo—Filter by groups (comma-separated for multiple).
— Spec NamestringNo—Filter spec files by name (partial match).
— TagsstringNo—Filter 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 IDstringYes—The Currents project ID. Supports expressions.
Date StartstringYes—Start date for metrics (ISO 8601 format). Supports expressions.
Date EndstringYes—End date for metrics (ISO 8601 format). Supports expressions.
LimitnumberNo50Max number of results to return.
FilterscollectionNo{}Optional filters narrowing which tests are measured.
— Git AuthorsstringNo—Filter by git authors (comma-separated for multiple).
— BranchesstringNo—Filter by branches (comma-separated for multiple).
— GroupsstringNo—Filter by groups (comma-separated for multiple).
— Minimum ExecutionsnumberNo1Minimum number of executions to include a test.
— Spec FilestringNo—Filter tests by spec file name (partial match).
— TagsstringNo—Filter by tags (comma-separated for multiple).
— Test StatemultiOptionsNo[]Filter by test state.
Options: failed, passed, pending, skipped
— TitlestringNo—Filter 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 SettingsstringNo—Override 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 SignaturestringYes—The unique test signature. Use the Signature resource to generate this from project ID, spec file path, and test title. Supports expressions.
Date StartstringYes—Start date for results (ISO 8601 format). Supports expressions.
Date EndstringYes—End date for results (ISO 8601 format). Supports expressions.
LimitnumberNo10Max number of results to return.
FilterscollectionNo{}Optional filters narrowing the result history.
— BranchesstringNo—Filter by branches (comma-separated for multiple).
— Git AuthorsstringNo—Filter by git authors (comma-separated for multiple).
— GroupsstringNo—Filter by groups (comma-separated for multiple).
— StatusmultiOptionsNo[]Filter by test status.
Options: failed, passed, pending, skipped
— TagsstringNo—Filter by run tags (comma-separated, multiple values supported).
Options (options)collectionNo{}Cursor pagination controls.
— Starting AfterstringNo—Cursor for forward pagination.
— Ending BeforestringNo—Cursor 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.

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

This tool manages test orchestration and analytics on Currents.dev, working with actions, runs, projects, spec files, tests, and test results. It is ideal for detailed management of test artifacts, such as creating quarantine actions or getting specific test run insights, rather than general project overviews. It produces updated test configurations, detailed performance metrics, and historical test execution 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 Currents

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 reviewed . Spotted something wrong? Tell us.