---
title: "Reset workflow variable to default"
method: POST
path: "/v1/workflows/{workflowId}/variables/{name}/reset"
tags: ["WorkflowVariables"]
---

# Reset workflow variable to default

`POST /v1/workflows/{workflowId}/variables/{name}/reset`

## Path parameters

- `workflowId` string, required
- `name` string, required

## Response `200`

OK

- SuccessResponse
  - `data` PaginatedDataTemplate
    - `hasMore` boolean
    - `items` Template[]
      - `archived` boolean
      - `category` string — Deprecated: Use Tags instead
      - `cooldownMs` integer
      - `createdAt` string
      - `createdBy` string
      - `definition` WorkflowDefinition — Definition is the inline workflow graph to analyze. Same shape as a saved workflow's definition. Unlike the ephemeral-run endpoint there is no trigger restriction — analysis is read-only and method-agnostic.
        - `blockExpansions` object — Set on run snapshots only (not workflow DB)
        - `inputSchema` WorkflowInput[]
          - `description` string
          - `key` string
          - `required` boolean
          - `type` string — "string", "number", "boolean", "object", "array"
        - `nodes` object, required
        - `sensitivePropKeys` string[] — Legacy: kept for old runs; no longer populated for new workflows
        - `triggerNodeIds` string[] — TriggerNodeIDs lists the node IDs that are trigger (root) nodes. Every workflow declares this — single-trigger workflows ship ["root"] (the legacy node id), multi-trigger workflows list every trigger node id. Treating single-trigger as a forest-of-1 removes the two-path branching throughout the BE + FE; older rows without the field are backfilled by migration 000282 and the field-missing path stays as a read-side safety net (see FindTriggerNodeIDs) but is no longer exercised by saves. "root" is also a runtime alias for "the trigger that fired this run" — {{root.X}} variable references resolve to the firing trigger regardless of which trigger fired. Don't repurpose the literal "root" as a trigger id on a multi-trigger workflow.
        - `variableDefs` VariableDef[] — VariableDefs is a snapshot of the workflow's declared variables at run creation time. The canonical source lives on the workflows row (Workflow.VariableDefs column). Snapshotted into the run definition so the worker can resolve {{$vars.x}} lookups and route variable-action writes to the right scope without an extra DB round trip.
          - `default` unknown
          - `description` string
          - `lifetime` 'persist' | 'reset'
          - `name` string
          - `type` 'number' | 'text' | 'boolean' | 'list' | 'object'
      - `description` string
      - `forkCount` integer
      - `generatedAppId` string — Generated-app attachment (nil when the template ships no app). On adoption the referenced app is CLONED into the adopting org's new workflow. GeneratedAppVersionID optionally pins a specific version whose manifest is used as the clone source.
      - `generatedAppVersionId` string
      - `id` string
      - `isPromoted` boolean
      - `maxRuns` integer
      - `moderationStatus` 'pending' | 'approved' | 'rejected' — Moderation fields (B3-4168). Only meaningful for public templates; org templates are always approved.
      - `name` string
      - `organizationDescription` string
      - `organizationId` string — Fields for user-generated templates (nil for built-in templates)
      - `organizationName` string
      - `organizationPhoto` string
      - `promotedAt` string
      - `promotedBy` string
      - `promotedOrder` integer
      - `rejectionReason` string
      - `reviewedAt` string
      - `reviewedBy` string
      - `slug` string
      - `sourceWorkflowId` string — Source workflow link (nil for built-in or legacy templates)
      - `submittedAt` string
      - `tableSchemas` object
      - `tags` Tag[]
        - `categories` string[] — e.g., ["blockchain", "finance"]
        - `count` integer — Scope-dependent: template, action, trigger, or connector count
        - `createdAt` string
        - `description` string
        - `id` string
        - `imageUrl` string
        - `name` string
        - `promotedTemplateCount` integer
        - `publicTemplateCount` integer
        - `slug` string
        - `updatedAt` string
        - `weight` integer — Higher weight = more prominent
      - `templateProps` TemplateProp[]
        - `default` unknown
        - `description` string
        - `key` string
        - `name` string
        - `properties` PropSchema
          - `accountType` string — AccountType filters the wallet picker by account type on inputType="walletConnector" fields (e.g. "polymarket_deposit_wallet").
          - `allowWalletPicker` boolean — AllowWalletPicker controls the org-wallet picker on inputType="address" fields. When false, the frontend hides the inline "Wallets" badge and the org-wallet autocomplete popover. Use for third-party address fields (e.g. a deployer filter) where suggesting org wallets is misleading. Pointer so explicit false survives JSON round-trip (default true on FE).
          - `allowedChannels` string[] — AllowedChannels constrains the notification-channel picker (inputType: "notification-channel") to a subset of channels. Used by templates whose downstream nodes only work with one channel type (e.g. ["slack"] for a Slack-only approval flow). Frontend ignores unknown keys; a length-1 list auto-selects in the picker.
          - `autoFillFromWallet` boolean — AutoFillFromWallet, when true, auto-fills this prop with the selected workflow wallet address and hides it from the form. Pointer so an explicit false survives the JSON round-trip (same rationale as AllowWalletPicker).
          - `bindsConnectorNodes` string[] — BindsConnectorNodes lists workflow node IDs whose wallet-type connector should be prefilled from this prop's picked wallet (inputType: "walletConnector"). The connector stays a plain, editable connector — this is a prefill, not a permanent bind.
          - `chainId` integer — For tokenAmount: hardcoded chain ID
          - `chainPropKey` string — For tokenSelector/tokenAmount: prop key providing chainId
          - `columns` PropColumn[] — Columns describes a csvTable prop (inputType: "csvTable"). The stored value is an object-of-columnar-arrays: {colKey: []value}. Payload templates reference each column via {{$props.<propKey>.<colKey>}}.
            - `chainId` integer
            - `chainPropKey` string — For tokenAmount cells
            - `inputType` string — address, recipientAddress, tokenAmount, text (see frontend CELL_REGISTRY)
            - `key` string
            - `name` string
            - `pattern` string
            - `placeholder` string
            - `required` boolean
            - `tokenAddress` string
            - `tokenAddressPropKey` string — For tokenAmount cells
            - `type` string — "string", "number", "integer"
          - `dex` string — For hyperliquidAsset: hardcoded DEX name (fallback when no dexPropKey)
          - `dexPropKey` string — For hyperliquidAsset: prop key providing HIP-3 DEX name
          - `enum` unknown[]
            - unknown
          - `enumLabels` string[]
          - `excludeNative` boolean — For tokenSelector/multiTokenSelector: hide native tokens (field only accepts ERC-20 contract addresses)
          - `groupKey` string — Groups related props for unified UI rendering
          - `inputType` string — InputType is a UI rendering hint. The frontend uses it to pick a rich selector component instead of a plain text input. Unknown values are silently ignored (falls back to default input). Valid values: chainSelector, tokenSelector, multiTokenSelector, tokenAmount, coinSelector, multiCoinSelector, address, contractAddress, recipientAddress, email, telegram-chat, slack-channel, pushover-recipient, pushbullet-device, webpush-subscription, textarea, password, polymarketUser, twitterUsername, storkAsset, hyperliquidAsset, morphoVault, morphoMarket, csvTable, notification-channel, googleSheetUrl, rrule, walletConnector
          - `maxRows` integer — csvTable: maximum allowed rows (0 = no cap)
          - `maximum` number
          - `minRows` integer — csvTable: minimum required rows (0 = default 1)
          - `minimum` number
          - `pattern` string
          - `placeholder` string
          - `showWalletBalances` boolean — For tokenSelector: show wallet balances (useful for "sell" tokens)
          - `sources` PropSource[] — Sources lists the workflow node fields this prop was created from. Each entry identifies a node + field path so the frontend can reliably match props back to their source fields on reload. Multiple entries indicate the prop was merged from fields with identical values across different nodes.
            - `fieldPath` string
            - `nodeId` string
            - `nodeLabel` string
          - `summary` PropSchemaSummary — Summary drives the csvTable footer summary. Nil means no summary is rendered. See PropSchemaSummary for details.
            - `aggregates` PropSchemaSummaryAggregate[] — Aggregates declared in display order, left-to-right.
              - …
            - `position` string — Position in the grid. "footer" (default) renders inline under the table. "none" suppresses even when aggregates are declared — use to disable inherited summaries. Other values reserved.
          - `tokenAddress` string — For tokenAmount: hardcoded token address
          - `tokenAddressPropKey` string — For tokenAmount: prop key providing tokenAddress
          - `visibleWhen` PropVisibleWhen — VisibleWhen controls conditional visibility: show this prop only when the referenced prop has the specified value.
            - `propKey` string
            - `value` unknown
        - `required` boolean
        - `sensitive` boolean
        - `type` string — "string", "number", "integer", "boolean", "object" (for csvTable)
      - `uiMetadata` WorkflowUIMetadata
        - `comments` Comment[]
          - `createdAt` string
          - `createdBy` StickyNoteUser
            - `clientId` string
            - `name` string
          - `id` string
          - `nodeId` string
          - `position` NodePosition
            - `x` number
            - `y` number
          - `replies` CommentReply[]
            - `createdAt` string
            - `createdBy` StickyNoteUser
              - …
            - `id` string
            - `text` string
            - `updatedAt` string
          - `resolved` boolean
          - `text` string
          - `updatedAt` string
        - `nodePositions` object
        - `stickyNotes` StickyNote[]
          - `color` string
          - `createdAt` string
          - `createdBy` StickyNoteUser
            - `clientId` string
            - `name` string
          - `id` string
          - `position` NodePosition
            - `x` number
            - `y` number
          - `size` StickyNoteSize
            - `height` number
            - `width` number
          - `text` string
          - `updatedAt` string
          - `zIndex` integer
      - `updatedAt` string
      - `updatedBy` string
      - `version` integer
      - `visibility` 'org' | 'public' | 'org' | 'public'
    - `limit` integer
    - `offset` integer

---

[API](https://skmtc.dev/b3os/apis/b3os-workflow-api.md) · [All operations](https://skmtc.dev/b3os/apis/b3os-workflow-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/b3os/b3os-workflow-api/revisions/a8c7af3c66a1/schema)
