Skip to content

Storm

Storm is Rival’s content tagging engine. Instead of writing code, you provide a topic file - a document that defines the topics, categories, or tags you want to classify against. Storm then takes any incoming content, reads it against your topic file, and returns the tagged result.

When you select Storm as the tool type, the runtime is automatically set to storm and cannot be changed.


When to use Storm

Use Storm when you need to:

  • Classify documents, articles, tickets, or any text against a predefined taxonomy
  • Tag large volumes of incoming content automatically
  • Apply consistent labeling across files or text without writing classification logic
  • Keep your tagging taxonomy updatable without changing any code

For general-purpose logic or computation, use Python, JavaScript, or Lua instead.


How Storm tools work

Storm tools do not have a code editor - they work through two things: a topic file (your classification taxonomy) and the content you want to tag.

A Storm tool execution receives an event with references to:

  • A topic file - the digital asset that defines what to tag against (your taxonomy)
  • A source - either a JSON payload or a digital asset (file) containing the content to be tagged
  • A target - either JSON output or a digital asset to write the tagged results into

Input types

Input typeDescription
Text (JSON)Pass a JSON object directly in the event
Data sourceReference a digital asset by its ID (source_asset_id)

Output types

Output typeDescription
JSONThe result is returned as a JSON object
Data outboundResults are written to a digital asset (target_asset_id)

Storm event format

When executing a Storm tool, the event payload follows this structure:

Text input → JSON output

{
"topic_file": "search terms or content string here"
}

Digital asset input → digital asset output

Use the Copy Ref button in the Digital Assets section to get the topic_file path, and the asset UUID for source_asset_id / target_asset_id:

{
"topic_file": "assets/org-slug/my-dataset.csv",
"source_asset_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"target_asset_id": "f9e8d7c6-b5a4-3210-fedc-ba0987654321"
}

The topic_file field is always required. source_asset_id and target_asset_id are used when working with file-based digital assets.


Digital assets

Digital assets are files stored in the platform’s cloud storage. The UI’s Digital Assets section lists all assets in your organization.

Each asset has two identifiers you need for Storm:

What to copyWhere to find itUsed as
File reference (asset.file)Click Copy Ref button on the assettopic_file field in your event
Asset ID (UUID)Shown on the asset detail pagesource_asset_id or target_asset_id

Using Copy Ref for topic_file

The Copy Ref button copies the file reference path (asset.file). Paste this directly into the topic_file field of your execution event:

{
"topic_file": "assets/org-slug/my-dataset.csv"
}

Using asset IDs for input/output

When your Storm tool reads from or writes to a digital asset, pass the asset UUID:

{
"topic_file": "assets/org-slug/my-dataset.csv",
"source_asset_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"target_asset_id": "f9e8d7c6-b5a4-3210-fedc-ba0987654321"
}
  • source_asset_id - the asset the Storm engine reads as input
  • target_asset_id - the asset the Storm engine writes results into

You can also select digital assets directly in the Storm test UI (Step 2 of the tool editor) without typing IDs manually.


Testing a Storm tool

The test interface for Storm tools is different from regular function testing:

  1. Choose Input type: Text or Data Source
    • Text: Enter a JSON payload in the editor
    • Data Source: Select a digital asset from the picker
  2. Choose Output type: JSON or Data Outbound
    • JSON: Results appear inline
    • Data Outbound: Select a target digital asset to write into
  3. Click Run to execute

Storm tool configuration

When creating a Storm tool, you provide a digital asset ID (digital_asset_id) that points to your topic file. This is set in Step 2 of the tool editor.

Unlike other runtimes where you write source code, Storm references an uploaded topic file from Digital Assets. The platform handles all tagging execution - you do not write any classification logic.


Notes

  • Storm tools cannot be switched to a different runtime.
  • The digital_asset_id (your topic file) is required when creating a Storm tool - without it, the tool cannot be saved.
  • Storm tools support the same pricing, versioning, and publishing workflow as other tool types.
  • Storm is designed for content tagging and classification - use Python, JavaScript, or Lua for general-purpose computation.