@revfleet/hscli 0.8.4 → 0.8.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,64 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.8.6 - 2026-04-23
4
+
5
+ **Docs re-audit finds 4 more endpoints previously flagged as blocked.**
6
+ Systematic second pass against HubSpot developer docs uncovered:
7
+
8
+ - Email cloning — endpoint is `POST /marketing/v3/emails/clone` (id goes in body, not path — we only tried path variants before).
9
+ - A/B variant authoring — `POST /marketing/v3/emails/ab-test/create-variation` with `{contentId, variationName}`.
10
+ - v4 workflow enable/disable — `PUT` (not `PATCH` — 405 was verb-wrong) with full flow body including `revisionId`.
11
+ - CMS source-code upload (still ⚠️) — endpoint exists, requires `multipart/form-data` with a `file` field. hscli's HTTP client can't emit multipart yet.
12
+
13
+ All four verified live on portal 147975758 before shipping — no "claimed from priors" entries.
14
+
15
+ ### Added
16
+
17
+ - `hscli marketing emails clone <emailId> --name <name> [--language <lang>]` — clone a marketing email.
18
+ - `hscli marketing emails ab-variant --content-id <id> --name <variantName>` — create an A/B variant.
19
+ - `hscli workflows flows enable <flowId>` / `flows disable <flowId>` — toggle workflow on/off via PUT.
20
+
21
+ ### Fixes
22
+
23
+ - [docs/CAPABILITY_LIBRARY.md](docs/CAPABILITY_LIBRARY.md) §2 Marketing emails + §5 Automation + §10 Blocks reclassified. The ❌ list in §10 shrank by 3 items after the re-audit; §12 roadmap now names the multipart CMS upload command as the only remaining CMS-upload gap.
24
+
25
+ ## 0.8.5 - 2026-04-23
26
+
27
+ **Multi-step workflow creation via CLI — legacy v3 unlock.** The v4
28
+ `/automation/v4/flows` endpoint rejects populated `actions[]` on
29
+ create (500) / update (405), which we previously classified as a
30
+ HubSpot platform block. **It isn't.** HubSpot's legacy v3 API
31
+ (`/automation/v3/workflows`) accepts a fully-populated `actions[]`
32
+ array on create — DELAY, EMAIL, SET_CONTACT_PROPERTY, BRANCH,
33
+ WEBHOOK, UPDATE_LIST, TASK, TICKET, DEAL, NOTIFICATION — and
34
+ workflows created via v3 are dual-backed: they surface in v4
35
+ (`migrationStatus.flowId`) and render in HubSpot's modern canvas UI
36
+ with all action nodes visible. Verified live on portal 147975758
37
+ with a 5-step welcome onboarding flow (Trigger → Delay → Send email
38
+ → Delay → Set property → Branch).
39
+
40
+ ### Added
41
+
42
+ - **`hscli workflows v3`** subcommand suite:
43
+ - `v3 list` / `v3 get <id>` — read legacy workflows (includes full
44
+ `actions[]` tree, which v4 GET omits).
45
+ - `v3 create --data '{...}'` — create contact-based workflow with
46
+ populated multi-step actions. One CLI call replaces an entire
47
+ clicking-through-canvas UI session.
48
+ - `v3 delete <id>` — archive a workflow.
49
+ - `v3 enroll <id> <email>` / `v3 unenroll <id> <email>` — manage
50
+ contact enrollment (automation membership).
51
+ - `v3 enrollments <email>` — list a contact's current workflow
52
+ memberships.
53
+
54
+ ### Fixes
55
+
56
+ - **[docs/CAPABILITY_LIBRARY.md](docs/CAPABILITY_LIBRARY.md)** §5
57
+ Automation — workflow-action creation reclassified from ❌
58
+ "API-locked" to ✅ via v3. Full `type`-value catalogue added.
59
+ §10 blocked-list entry amended: the ❌ on v4 remains, but v3
60
+ provides the missing workaround.
61
+
3
62
  ## 0.8.4 - 2026-04-23
4
63
 
5
64
  **Drag-and-drop library access + polish.** A batch of capability-surface
@@ -52,6 +52,44 @@ export function registerMarketing(program, getCtx) {
52
52
  const res = await maybeWrite(ctx, client, "POST", `/marketing/v3/emails/${id}/publish`, {});
53
53
  printResult(ctx, res);
54
54
  });
55
+ // Clone a marketing email — v3 endpoint rediscovered via a
56
+ // docs re-audit (the id goes in the request body, not the path).
57
+ emails
58
+ .command("clone")
59
+ .argument("<emailId>", "Source email ID to clone")
60
+ .option("--name <name>", "Name for the cloned email", "Clone")
61
+ .option("--language <lang>", "Target language code (e.g. 'en', 'fr')")
62
+ .description("Clone an existing marketing email (POST /marketing/v3/emails/clone)")
63
+ .action(async (emailId, opts) => {
64
+ const ctx = getCtx();
65
+ const client = createClient(ctx.profile);
66
+ const body = {
67
+ id: String(emailId).trim(),
68
+ cloneName: String(opts.name).trim(),
69
+ };
70
+ if (opts.language)
71
+ body.language = String(opts.language).trim();
72
+ const res = await maybeWrite(ctx, client, "POST", `/marketing/v3/emails/clone`, body);
73
+ printResult(ctx, res);
74
+ });
75
+ // Create an A/B variant of an existing marketing email.
76
+ // Endpoint: POST /marketing/v3/emails/ab-test/create-variation
77
+ // (ids in body, NOT in path — rediscovered via docs re-audit).
78
+ emails
79
+ .command("ab-variant")
80
+ .requiredOption("--content-id <id>", "Source email ID (contentId)")
81
+ .requiredOption("--name <name>", "Variation name (e.g. 'Variant B')")
82
+ .description("Create an A/B variant of a marketing email")
83
+ .action(async (opts) => {
84
+ const ctx = getCtx();
85
+ const client = createClient(ctx.profile);
86
+ const body = {
87
+ contentId: String(opts.contentId).trim(),
88
+ variationName: String(opts.name).trim(),
89
+ };
90
+ const res = await maybeWrite(ctx, client, "POST", `/marketing/v3/emails/ab-test/create-variation`, body);
91
+ printResult(ctx, res);
92
+ });
55
93
  // Upload an image for use inside an email body. Wraps
56
94
  // `POST /files/v3/files/import-from-url/async` + status polling.
57
95
  // Returns the final HubFS CDN URL once the async task completes,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/marketing/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/marketing/index.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,23 @@
1
1
  /**
2
- * `hscli workflows` — v4 flows + legacy v2/v3 workflow enrollment.
2
+ * `hscli workflows` — v4 flows + legacy v3 workflows.
3
+ *
4
+ * Two workflow APIs ship side-by-side on every Marketing-Hub portal:
5
+ *
6
+ * - **v4 `/automation/v4/flows`** (current) — returns 500 on POST
7
+ * with populated `actions[]` (schema undocumented; verified
8
+ * 2026-04-23). Works for create-metadata + enrollment triggers
9
+ * only.
10
+ * - **v3 `/automation/v3/workflows`** (legacy, still live) —
11
+ * **accepts a populated `actions[]` array with DELAY,
12
+ * SET_CONTACT_PROPERTY, BRANCH, EMAIL, WEBHOOK,
13
+ * UPDATE_LIST, TASK, TICKET, DEAL, NOTIFICATION, WEBHOOK,
14
+ * and more.** Workflows created via v3 are dual-backed: they
15
+ * surface in v4 (`migrationStatus.flowId`) and render in the
16
+ * modern HubSpot canvas UI with visible action nodes.
17
+ *
18
+ * Use `hscli workflows flows` for the v4 surface (enrollment criteria
19
+ * + metadata) and `hscli workflows v3` for creating multi-step
20
+ * workflows with real action nodes.
3
21
  */
4
22
  import { Command } from "commander";
5
23
  import type { CliContext } from "../../core/output.js";
@@ -1,13 +1,127 @@
1
+ import { createClient } from "../../core/http.js";
2
+ import { printResult } from "../../core/output.js";
1
3
  import { registerResource } from "../domains/shared.js";
4
+ import { encodePathSegment, maybeWrite, parseJsonPayload, parseNumberFlag } from "../crm/shared.js";
2
5
  export function registerWorkflows(program, getCtx) {
3
6
  const workflows = program.command("workflows").description("HubSpot Workflow Automation APIs");
4
7
  registerResource(workflows, getCtx, {
5
8
  name: "flows",
6
- description: "Automation flows",
9
+ description: "Automation flows (v4 API)",
7
10
  listPath: "/automation/v4/flows",
8
11
  itemPath: (id) => `/automation/v4/flows/${id}`,
9
12
  createPath: "/automation/v4/flows",
10
13
  updatePath: (id) => `/automation/v4/flows/${id}`,
11
14
  });
15
+ // Enable/disable a v4 flow. Requires PUT (not PATCH — 405 on PATCH)
16
+ // with the full flow body including `revisionId`. Rediscovered via
17
+ // the docs re-audit after earlier probes that used PATCH.
18
+ const flows = workflows.commands.find((c) => c.name() === "flows");
19
+ if (flows) {
20
+ flows
21
+ .command("enable")
22
+ .argument("<flowId>", "Flow ID")
23
+ .description("Enable a flow (PUT /automation/v4/flows/{id} with isEnabled:true)")
24
+ .action(async (flowId) => {
25
+ const ctx = getCtx();
26
+ const client = createClient(ctx.profile);
27
+ const id = encodePathSegment(flowId, "flowId");
28
+ // Fetch current body — revisionId must match, and `type` is
29
+ // required on the PUT.
30
+ const current = (await client.request(`/automation/v4/flows/${id}`));
31
+ const put = { ...current, isEnabled: true };
32
+ const res = await maybeWrite(ctx, client, "PUT", `/automation/v4/flows/${id}`, put);
33
+ printResult(ctx, res);
34
+ });
35
+ flows
36
+ .command("disable")
37
+ .argument("<flowId>", "Flow ID")
38
+ .description("Disable a flow (PUT /automation/v4/flows/{id} with isEnabled:false)")
39
+ .action(async (flowId) => {
40
+ const ctx = getCtx();
41
+ const client = createClient(ctx.profile);
42
+ const id = encodePathSegment(flowId, "flowId");
43
+ const current = (await client.request(`/automation/v4/flows/${id}`));
44
+ const put = { ...current, isEnabled: false };
45
+ const res = await maybeWrite(ctx, client, "PUT", `/automation/v4/flows/${id}`, put);
46
+ printResult(ctx, res);
47
+ });
48
+ }
49
+ // Legacy v3 workflows — the only public API that accepts
50
+ // populated multi-step actions on create. Contact-based only.
51
+ const v3 = workflows.command("v3").description("Legacy v3 workflows API (accepts populated actions[] — contact-based only)");
52
+ v3.command("list")
53
+ .option("--limit <n>", "Max workflows (client-side cap; endpoint returns all)", "50")
54
+ .description("List all v3 workflows")
55
+ .action(async (o) => {
56
+ const ctx = getCtx();
57
+ const client = createClient(ctx.profile);
58
+ const limit = parseNumberFlag(o.limit, "--limit");
59
+ const res = (await client.request(`/automation/v3/workflows`));
60
+ const workflowsArr = (res.workflows) || (res.data?.workflows) || [];
61
+ printResult(ctx, { total: workflowsArr.length, workflows: workflowsArr.slice(0, limit) });
62
+ });
63
+ v3.command("get")
64
+ .argument("<workflowId>")
65
+ .description("Get a v3 workflow by id (includes full actions tree)")
66
+ .action(async (workflowId) => {
67
+ const ctx = getCtx();
68
+ const client = createClient(ctx.profile);
69
+ const id = encodePathSegment(workflowId, "workflowId");
70
+ const res = await client.request(`/automation/v3/workflows/${id}`);
71
+ printResult(ctx, res);
72
+ });
73
+ v3.command("create")
74
+ .requiredOption("--data <payload>", "JSON payload. Required: name, type (DRIP_DELAY|STATIC_ANCHOR|PROPERTY_ANCHOR), actions[]. Actions support: DELAY, SET_CONTACT_PROPERTY, BRANCH, EMAIL, WEBHOOK, UPDATE_LIST, TASK, TICKET, DEAL, NOTIFICATION. See https://legacydocs.hubspot.com/docs/methods/workflows/v3/create_workflow")
75
+ .description("Create a v3 workflow with populated actions (multi-step)")
76
+ .action(async (o) => {
77
+ const ctx = getCtx();
78
+ const client = createClient(ctx.profile);
79
+ const res = await maybeWrite(ctx, client, "POST", `/automation/v3/workflows`, parseJsonPayload(o.data));
80
+ printResult(ctx, res);
81
+ });
82
+ v3.command("delete")
83
+ .argument("<workflowId>")
84
+ .description("Delete a v3 workflow")
85
+ .action(async (workflowId) => {
86
+ const ctx = getCtx();
87
+ const client = createClient(ctx.profile);
88
+ const id = encodePathSegment(workflowId, "workflowId");
89
+ const res = await maybeWrite(ctx, client, "DELETE", `/automation/v3/workflows/${id}`);
90
+ printResult(ctx, res);
91
+ });
92
+ v3.command("enroll")
93
+ .argument("<workflowId>")
94
+ .argument("<email>")
95
+ .description("Enroll a contact (by email) in a v3 workflow")
96
+ .action(async (workflowId, email) => {
97
+ const ctx = getCtx();
98
+ const client = createClient(ctx.profile);
99
+ const id = encodePathSegment(workflowId, "workflowId");
100
+ const e = encodePathSegment(email, "email");
101
+ const res = await maybeWrite(ctx, client, "POST", `/automation/v3/workflows/${id}/enrollments/contacts/${e}`);
102
+ printResult(ctx, res);
103
+ });
104
+ v3.command("unenroll")
105
+ .argument("<workflowId>")
106
+ .argument("<email>")
107
+ .description("Remove a contact (by email) from a v3 workflow")
108
+ .action(async (workflowId, email) => {
109
+ const ctx = getCtx();
110
+ const client = createClient(ctx.profile);
111
+ const id = encodePathSegment(workflowId, "workflowId");
112
+ const e = encodePathSegment(email, "email");
113
+ const res = await maybeWrite(ctx, client, "DELETE", `/automation/v3/workflows/${id}/enrollments/contacts/${e}`);
114
+ printResult(ctx, res);
115
+ });
116
+ v3.command("enrollments")
117
+ .argument("<email>")
118
+ .description("Get current workflow enrollments for a contact (by email)")
119
+ .action(async (email) => {
120
+ const ctx = getCtx();
121
+ const client = createClient(ctx.profile);
122
+ const e = encodePathSegment(email, "email");
123
+ const res = await client.request(`/automation/v3/contacts/${e}/workflowEnrollments`);
124
+ printResult(ctx, res);
125
+ });
12
126
  }
13
127
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/workflows/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAExD,MAAM,UAAU,iBAAiB,CAAC,OAAgB,EAAE,MAAwB;IAC1E,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,WAAW,CAAC,kCAAkC,CAAC,CAAC;IAE/F,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE;QAClC,IAAI,EAAE,OAAO;QACb,WAAW,EAAE,kBAAkB;QAC/B,QAAQ,EAAE,sBAAsB;QAChC,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,wBAAwB,EAAE,EAAE;QAC9C,UAAU,EAAE,sBAAsB;QAClC,UAAU,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,wBAAwB,EAAE,EAAE;KACjD,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/workflows/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@revfleet/hscli",
3
- "version": "0.8.4",
3
+ "version": "0.8.6",
4
4
  "description": "Agentic HubSpot CLI + MCP server. 100% public API coverage (1180 endpoints, 55+ command domains) — full portal, no UI dependency. Enterprise safety rails, self-hosted.",
5
5
  "type": "module",
6
6
  "bin": {