# sumsub-create-workflow

Turns a short node-and-edge spec into a Sumsub verification workflow, validates the draft and publishes it. Publishing rewrites live traffic, so read the gate rules first.

- skill · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 542 installs · ★ 7
- Author: sumsub
- License: not stated · policy=link-only · description only; the file stays with the author
- Source: https://github.com/sumsub/agent-skills/tree/HEAD/skills/sumsub-create-workflow/SKILL.md
- Updated: 2026-10-02
- HTML: https://affpapa.org/en/nevibecode/skills/sumsub-create-workflow

## What it does

The skill builds an `ApplicantWorkflow` JSON payload from a compact node/edge spec, runs a dry-run validation, saves the result as a draft and then publishes it with `PUT /{id}/revisionStatus`. It reports back `name` (kind), `revision`, `revisionStatus` and `id`. There are three kinds: `default` runs for every verification, `actions` runs for applicant actions, and `test` is isolated — launched manually per applicant and never publishable. Every save adds a revision to that singleton rather than creating a new workflow.

Drafts route no traffic, so creating, updating and validating them is safe. A publish is a different matter: it makes the revision live for all production traffic and auto-archives the previous one. A sandbox `sbx:` token does not help here, because revisions are shared between live and sandbox and only applicants are isolated. That is why publishing `default` or `actions` goes through an exposure gate. When the published revision's levels show more than 400 recent applicants, or the count cannot be read, the skill wants a clean validation, a diff against the current published revision, an explicit yes and `SUMSUB_ALLOW_WORKFLOW_PUBLISH=1`. The threshold can be overridden with `SUMSUB_PUBLISH_TRAFFIC_THRESHOLD`. Counts are level-derived, so revisions sharing level names report overlapping numbers.

You need an App Token carrying the `manageWorkflows` permission plus a sandbox pair: `SUMSUB_APP_TOKEN` in the `sbx:...` form and `SUMSUB_SECRET_KEY`.

## Install

### Claude Code (native platform)

1. **Skills CLI (Vercel)**
```bash
npx skills add sumsub/agent-skills --skill sumsub-create-workflow -a claude-code
```

2. **Manually: put the files in place**
- File: `~/.claude/skills/sumsub-create-workflow/SKILL.md` — Copy the whole skill folder; for one project use .claude/skills/sumsub-create-workflow/

### Codex

1. **Skills CLI (Vercel)**
```bash
npx skills add sumsub/agent-skills --skill sumsub-create-workflow -a codex
```

2. **Manually: put the files in place**
- File: `.agents/skills/sumsub-create-workflow/SKILL.md` — For all projects use ~/.agents/skills/

### Cursor

1. **Skills CLI (Vercel)**
```bash
npx skills add sumsub/agent-skills --skill sumsub-create-workflow -a cursor
```

2. **Manually: put the files in place**
- File: `.cursor/skills/sumsub-create-workflow/SKILL.md` — Cursor also reads .agents/skills/ and .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install sumsub/agent-skills sumsub-create-workflow
```

2. **Manually: put the files in place**
- File: `.github/skills/sumsub-create-workflow/SKILL.md`

### Gemini CLI

1. **Skills CLI (Vercel)**
```bash
npx skills add sumsub/agent-skills --skill sumsub-create-workflow -a gemini-cli
```

2. **Platform CLI**
```bash
gemini skills install https://github.com/sumsub/agent-skills --path skills/sumsub-create-workflow
```

### Windsurf (Devin Desktop)

**Manually: put the files in place**
- File: `.devin/skills/sumsub-create-workflow/SKILL.md` — The legacy .windsurf/skills/ path still works

### OpenCode

**Skills CLI (Vercel)**
```bash
npx skills add sumsub/agent-skills --skill sumsub-create-workflow -a opencode
```

### Claude.ai

**Claude.ai**
- Zip the folder and upload it in Settings → Capabilities → Skills

Where a file is given instead of a command, copy the files from the source to that path: https://github.com/sumsub/agent-skills/tree/HEAD/skills/sumsub-create-workflow/SKILL.md

## When to use it
- build a verification workflow from a node/edge description
- validate routing rules before anything goes live
- add country and age branches with a manual-review step
- set post-verification tags, notes and source-key changes
- ship a new workflow revision without disturbing the live one

## Example prompts
- Create a workflow: applicants from Germany over 18 go to level `kyc-de`, everyone else to manual review
- Build an action workflow that tags applicants `verified` after verification and changes the source key
- Save a draft workflow and show me the diff against the currently published revision

## Similar
- [connect-required-verification-information](https://affpapa.org/en/nevibecode/skills/connect-required-verification-information.md) — skill · 1400 installs
- [create-phone-number](https://affpapa.org/en/nevibecode/skills/create-phone-number.md) — skill · 941 installs
- [create-tool](https://affpapa.org/en/nevibecode/skills/create-tool.md) — skill · 925 installs
- [create-branch](https://affpapa.org/en/nevibecode/skills/create-branch.md) — skill · 4300 installs
- [create-website](https://affpapa.org/en/nevibecode/skills/create-website.md) — skill · 2300 installs
- [create-workflow-command](https://affpapa.org/en/nevibecode/skills/create-workflow-command.md) — skill · 1100 installs

From the same set: [sumsub/agent-skills](https://affpapa.org/en/nevibecode/by/sumsub/agent-skills.md) — 25 cards

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
