Skill 详情
workflow-automation
Direct HubSpot workflow management via CLI.
使用前先检查
自动化审核只检查相关性,不代表安全审查或推荐。使用前请阅读来源中的说明。
SKILL.md
这段内容是审核时保存的快照。外部来源才是完整且最新的版本。
---
name: workflow-automation
description: List, inspect, create, update, and delete HubSpot workflows (v4 flows API) from the `hubspot` agent CLI, not the `hs` developer CLI.
triggers:
- "workflow"
- "automation"
- "automated flow"
- "enrollment trigger"
- "find workflow by name"
- "duplicate workflow"
- "update workflow"
- "delete workflow"
- "create a workflow"
- "create a workflow with the hubspot cli"
- "build an automation"
- "does the cli support workflows"
---
## Which CLI
Two different HubSpot CLIs share a confusing resemblance — don't mix them up:
- **`hubspot`** — the HubSpot **agent CLI** that this skill library targets. It manages CRM data and automation, and it **does** have native workflow commands: `hubspot workflows list|get|create|update|delete`.
- **`hs`** — the HubSpot **developer CLI** (`@hubspot/cli`), for building dev projects: themes, modules, serverless functions, UI extensions, and private apps (`hs project`, `hs upload`, `hs create`). It does **not** create or manage workflow records.
To create or manage a workflow, use `hubspot workflows ...` — not `hs`.
If anything here ever drifts, `hubspot workflows --help` and `hs --help` are authoritative.
## Resources
| File | When to use |
|---|---|
| `resources/workflow-json-reference.md` | Body shape for create/update — the action graph, branching/convergence, enrollment, full-PUT pitfall |
| `resources/example-contact-flow.json` | Minimal valid `CONTACT_FLOW` skeleton for `hubspot workflows create --file` |
| `resources/example-branching-flow.json` | Illustrates branch convergence — two paths pointing `connection.nextActionId` at one shared downstream action |
## Source of truth
`hubspot workflows --help` lists five subcommands: `list`, `get`, `create`, `update`, `delete`. There is **no `search`** — finding by name is `list | jq`. For JSONL piping, pagination, and destructive dry-run/digest/confirm patterns, this skill builds on `bulk-operations/SKILL.md` — re-read that first.
## 1. List + find by name
```bash
hubspot workflows list # JSONL: id, name, isEnabled, type, objectTypeId, revisionId
hubspot workflows list --format table # for human scanning
# Find by name — case-insensitive substring
hubspot workflows list | jq -c 'select(.name | test("Welcome"; "i"))'
# Exact match
hubspot workflows list | jq -c 'select(.name == "MQL Nurture")'
```
List is paginated at 100 per call. Loop with `--after` until `meta.next` is empty — see `bulk-operations/SKILL.md` "Pagination". See `resources/json-patterns.md` in `bulk-operations` for more `jq` filters.
## 2. Get + read shape
```bash
hubspot workflows get 12345678 # one
hubspot workflows get 12345678 87654321 # batch positional
printf '%s\n' 12345678 87654321 | hubspot workflows get # batch stdin
hubspot workflows get 12345678 > workflow.json # save for editing
```
Get returns the full body (`actions`, `enrollmentCriteria`, `revisionId`, …) — the shape required by create/update. See `resources/workflow-json-reference.md`.
## 3. Create from JSON
```bash
hubspot workflows create --file workflow.json --dry-run
hubspot workflows create --file workflow.json
cat workflow.json | hubspot workflows create # stdin also works
```
Set `type` (`CONTACT_FLOW` or `PLATFORM_FLOW`), `flowType` (`WORKFLOW`), and `objectTypeId` (e.g. `0-1` for contacts) — all required on create. See `resources/workflow-json-reference.md` for the body shape and `resources/example-contact-flow.json` for the minimal template. **Easiest path: `get` an existing similar workflow as a starting template** rather than hand-writing the JSON.
**Pitfall: `create --dry-run` does not validate the body.** It echoes the JSON back with `ok:true` and makes no API call — a green dry-run proves only that the input is well-formed JSON, not that it's a valid create (a body missing `type`/`flowType`/`objectTypeId`/`actions` still retur在 GitHub 阅读完整来源 (打开外部页面)