Skip to content

[20230][feat(workflowy)]: add create-node, search-nodes, update-node actions#21314

Open
vetrivigneshwaran wants to merge 9 commits into
masterfrom
issue-20230-workflowy
Open

[20230][feat(workflowy)]: add create-node, search-nodes, update-node actions#21314
vetrivigneshwaran wants to merge 9 commits into
masterfrom
issue-20230-workflowy

Conversation

@vetrivigneshwaran

@vetrivigneshwaran vetrivigneshwaran commented Jul 2, 2026

Copy link
Copy Markdown
Contributor

Resolves: #20230

Summary

Create Node — Create a new node/bullet, with options to set its name, note, and parent node.
Search Nodes — Search nodes by keyword, returning matching nodes with their IDs and content.
Update Node — Update an existing node’s name or note by node ID.
Please provide a link to the relevant API docs for the specific service / operation.
https://beta.workflowy.com/api-reference/

Create 3 new action components, Create Node , Search Nodes , Update Node and updated the package.json.
Also updated pnpm-lock file.

Checklist

Please check the following items before your PR can be reviewed:

Versioning

  • All components updated in this PR had their version updated (0.0.1 for new ones)
  • The app updated in this PR had its package.json's version updated

New app

If this is a new app, please submit an app integration request - the PR will only be reviewed after the app is integrated.

  • The app updated in this PR is already integrated

CodeRabbit review

After the PR is opened, and if new changes are pushed, CodeRabbit will automatically review it. Do not 'mark as resolved' CodeRabbit's comments, but reply to them instead, whether you agree (and update the PR accordingly) or disagree.

  • I have addressed or acknowledged all of CodeRabbit's review comments

Summary by CodeRabbit

  • New Features

    • Added WorkFlowy actions to create new nodes, update existing nodes, and search across nodes.
    • You can now create top-level or nested nodes, set position, and optionally apply layout options.
    • Search results are filtered by node name or note and capped by a configurable limit.
  • Bug Fixes

    • Updated node edits now return the latest saved state after changes are made.
    • Improved handling of supported layout and placement options.

@vercel

vercel Bot commented Jul 2, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

1 Skipped Deployment
Project Deployment Actions Updated (UTC)
pipedream-docs-redirect-do-not-edit Ignored Ignored Jul 4, 2026 9:40am

Request Review

@pipedream-component-development

Copy link
Copy Markdown
Collaborator

Thank you so much for submitting this! We've added it to our backlog to review, and our team has been notified.

@pipedream-component-development

Copy link
Copy Markdown
Collaborator

Thanks for submitting this PR! When we review PRs, we follow the Pipedream component guidelines. If you're not familiar, here's a quick checklist:

@coderabbitai

coderabbitai Bot commented Jul 2, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

📝 Walkthrough

Walkthrough

This PR adds a WorkFlowy Pipedream component with three new actions—Create Node, Search Nodes, and Update Node—backed by new app methods (_makeRequest, createNode, updateNode, getNode, exportNodes) and shared constants for API URLs, layout modes, and positions. Package dependencies and version are updated accordingly.

Changes

WorkFlowy App and Actions

Layer / File(s) Summary
Constants and app HTTP methods
components/workflowy/common/constants.mjs, components/workflowy/workflowy.app.mjs, components/workflowy/package.json
Adds BASE_URL, VERSION_PATH, LAYOUT_MODES, POSITIONS constants; replaces authKeys() with _makeRequest, createNode, updateNode, getNode, exportNodes using axios with Bearer auth; adds layoutMode propDefinition; adds @pipedream/platform dependency and bumps version to 0.1.0.
Create Node action
components/workflowy/actions/create-node/create-node.mjs
New action accepting name, note, parentNodeId, layoutMode, position; calls workflowy.createNode, derives node ID from response, returns response with summary.
Search Nodes action
components/workflowy/actions/search-nodes/search-nodes.mjs
New action that exports all nodes, filters by case-insensitive query match on name/note, limits results via maxResults, and returns matches with summary.
Update Node action
components/workflowy/actions/update-node/update-node.mjs
New action validating at least one of name, note, layoutMode, updates via workflowy.updateNode, fetches updated node via workflowy.getNode, returns it with summary.

Estimated code review effort: 2 (Simple) | ~15 minutes

Sequence Diagram(s)

sequenceDiagram
  participant User
  participant Action
  participant WorkflowyApp
  participant WorkflowyAPI

  User->>Action: Run action (create/search/update)
  Action->>WorkflowyApp: call app method (createNode/exportNodes/updateNode+getNode)
  WorkflowyApp->>WorkflowyAPI: HTTP request via _makeRequest (Bearer auth)
  WorkflowyAPI-->>WorkflowyApp: JSON response
  WorkflowyApp-->>Action: response data
  Action-->>User: $summary + returned node(s)
Loading

Related issues: #20230

Suggested labels: new-component, workflowy

Suggested reviewers: vunguyenhung, jcortes

🐰

A node is born, a note updated,
Search finds them, cross-checked, curated,
Constants set the layout tight,
Bearer tokens grant the right,
WorkFlowy hops, three actions elated!

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly summarizes the main change: adding new WorkFlowy actions for create, search, and update.
Description check ✅ Passed The description includes a summary, linked issue, API docs link, and checklist items from the required template.
Linked Issues check ✅ Passed The new Create Node, Search Nodes, and Update Node actions match the linked issue requirements.
Out of Scope Changes check ✅ Passed No clear out-of-scope code changes are evident beyond the requested WorkFlowy actions and supporting app updates.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch issue-20230-workflowy
⚔️ Resolve merge conflicts
  • Resolve merge conflict in branch issue-20230-workflowy

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@components/workflowy/actions/update-node/update-node.mjs`:
- Around line 56-62: The update-node action is returning the
`workflowy.getNode()` wrapper instead of the actual node object, so downstream
steps can’t access node fields directly. In `update-node.mjs`, adjust the
`updatedNode` handling after `this.workflowy.getNode(...)` to unwrap the `node`
property (or update `getNode()` itself) so the returned value is the node
payload with fields like `name` and `note`, while keeping the existing
`$.export("$summary", ...)` behavior.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: efca549c-9144-4461-9885-3b9f61dc1ad7

📥 Commits

Reviewing files that changed from the base of the PR and between b540455 and cc27da2.

⛔ Files ignored due to path filters (1)
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
📒 Files selected for processing (6)
  • components/workflowy/actions/create-node/create-node.mjs
  • components/workflowy/actions/search-nodes/search-nodes.mjs
  • components/workflowy/actions/update-node/update-node.mjs
  • components/workflowy/common/constants.mjs
  • components/workflowy/package.json
  • components/workflowy/workflowy.app.mjs

Comment thread components/workflowy/actions/update-node/update-node.mjs Outdated
Changes with respect to base url and link in description
change in the url
michelle0927
michelle0927 previously approved these changes Jul 2, 2026

@michelle0927 michelle0927 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. One optional comment. Ready for QA.

position: this.position,
},
});
const nodeId = response?.item_id ?? response?.id ?? "unknown";

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The docs show the response only has item_id.

Suggested change
const nodeId = response?.item_id ?? response?.id ?? "unknown";
const nodeId = response?.item_id ?? "unknown";

addressed the review comment
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[ACTION] WorkFlowy new actions

4 participants