Skip to content

Add Kadenzo app + Schedule a Post action#21256

Open
jors7 wants to merge 2 commits into
PipedreamHQ:masterfrom
jors7:add-kadenzo-app
Open

Add Kadenzo app + Schedule a Post action#21256
jors7 wants to merge 2 commits into
PipedreamHQ:masterfrom
jors7:add-kadenzo-app

Conversation

@jors7

@jors7 jors7 commented Jun 26, 2026

Copy link
Copy Markdown

Adds a new app: Kadenzo (https://kadenzo.app), a social media scheduler.

  • New app kadenzo — needs API-key authentication (a single API key field). Users generate the key at studio.kadenzo.app/dashboard/settings?section=api. The component reads it as this.$auth.api_key — happy to match whatever field key you assign when the app is created.
  • Action: Schedule a PostPOST https://studio.kadenzo.app/api/v1/posts, with a dynamic account picker via GET /accounts.
  • App website should be set to https://kadenzo.app.

First contribution — please let me know if the new-app auth needs to be set up on your side first.

Summary by CodeRabbit

  • New Features
    • Added Kadenzo integration support, including a new “Schedule a Post” action.
    • Users can select from active Kadenzo accounts, provide post content, set an ISO 8601 scheduled time, and optionally add media URLs.
  • Documentation
    • Added a Kadenzo integration guide covering setup in Pipedream, configuration steps, API reference link, and troubleshooting with common API error codes.

New app `kadenzo` (https://kadenzo.app), a social media scheduler.
API-key auth; "Schedule a Post" action posts to the Kadenzo public API
with a dynamic account picker.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@vercel

vercel Bot commented Jun 26, 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 Jun 26, 2026 10:53am

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 Jun 26, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: d00ee8f8-2e9c-40fb-9d88-f9b1dd1d9fb5

📥 Commits

Reviewing files that changed from the base of the PR and between a80ca3e and d0b2eb8.

📒 Files selected for processing (2)
  • components/kadenzo/actions/schedule-post/schedule-post.mjs
  • components/kadenzo/kadenzo.app.mjs

📝 Walkthrough

Walkthrough

Adds a new Kadenzo package with app helpers, a Schedule a Post action, and documentation for setup and troubleshooting.

Changes

Kadenzo integration

Layer / File(s) Summary
Package and app setup
components/kadenzo/package.json, components/kadenzo/kadenzo.app.mjs
Declares the Kadenzo package, adds the accountIds option lookup, builds API base URL and header helpers, and exposes listAccounts and schedulePost.
Schedule Post action
components/kadenzo/actions/schedule-post/schedule-post.mjs
Adds the action props and run handler that maps inputs into the POST payload, calls this.kadenzo.schedulePost, and returns the response with $summary.
Kadenzo README
components/kadenzo/README.md
Adds setup steps, post scheduling instructions, API reference guidance, and troubleshooting notes for the Kadenzo integration.

Sequence Diagram(s)

Schedule Post execution

sequenceDiagram
  participant SchedulePostAction
  participant kadenzo.app.mjs
  participant KadenzoAPI
  SchedulePostAction->>kadenzo.app.mjs: schedulePost({ $, data })
  kadenzo.app.mjs->>KadenzoAPI: POST /posts with account_ids, content, scheduled_for, media_urls
  KadenzoAPI-->>kadenzo.app.mjs: response.id and response.scheduled_for
  kadenzo.app.mjs-->>SchedulePostAction: API response
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Suggested reviewers

  • michelle0927
🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Description check ⚠️ Warning The description summarizes the change but omits the required checklist and explicit template sections. Add the template's Checklist section and answer the versioning, new app integration, and CodeRabbit review items explicitly.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly names the new Kadenzo app and its main action, matching the changeset.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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: 4

🤖 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/kadenzo/actions/schedule-post/schedule-post.mjs`:
- Around line 15-19: The schedule-post action currently allows an empty payload
when both content and mediaUrls are missing, which should be rejected before the
API call. Update run() in schedule-post.mjs to validate the inputs up front
using ConfigurationError and fail fast when neither content nor mediaUrls is
provided, keeping the existing content/mediaUrls contract enforced by the action
definition. Use the run() logic and the content prop metadata to locate the
validation point and ensure the invalid state is surfaced as a local
configuration error rather than a downstream 422.
- Around line 6-7: The top-level component description in schedule-post.mjs uses
the wrong documentation-link text; update the description string in the action
metadata so it ends with “[See the documentation](https://...)” instead of “[See
the docs](https://...)”. Make this change in the description field associated
with the schedule-post action, keeping the rest of the copy unchanged.
- Around line 3-10: The kadenzo-schedule-post action is missing the required
annotations metadata block, so add an annotations object to the exported action
definition in schedule-post.mjs alongside the existing key/name/type fields.
Make sure it includes readOnlyHint, destructiveHint, and openWorldHint, with
openWorldHint set to true for this external API action and the other two set
appropriately for a non-destructive scheduling operation. Use the default export
object as the location to update so the action contract is complete.

In `@components/kadenzo/kadenzo.app.mjs`:
- Around line 32-36: The `_makeRequest()` helper in `kadenzo.app.mjs` currently
builds a full `url` and replaces `headers`, which prevents per-request headers
from merging with the auth headers. Update `_makeRequest()` to follow the shared
request pattern: pass `baseURL` from `_baseUrl()` and keep `path` as the request
target, and merge `this._headers()` with any caller-provided `headers` inside
`opts` instead of overwriting them. Keep the fix localized to `_makeRequest()`
so future calls can add custom headers without clobbering defaults.
🪄 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: d583be2d-d514-43cf-9ff8-7e3f4489de0e

📥 Commits

Reviewing files that changed from the base of the PR and between 25679dc and a80ca3e.

📒 Files selected for processing (4)
  • components/kadenzo/README.md
  • components/kadenzo/actions/schedule-post/schedule-post.mjs
  • components/kadenzo/kadenzo.app.mjs
  • components/kadenzo/package.json

Comment thread components/kadenzo/actions/schedule-post/schedule-post.mjs
Comment thread components/kadenzo/actions/schedule-post/schedule-post.mjs Outdated
Comment thread components/kadenzo/actions/schedule-post/schedule-post.mjs
Comment thread components/kadenzo/kadenzo.app.mjs Outdated
… header merge

- Add action annotations block (destructive/openWorld/readOnly hints)
- Throw ConfigurationError when neither content nor media is provided
- Use the [See the documentation](...) description format
- Merge per-request headers in _makeRequest so they don't clobber auth

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

User submitted Submitted by a user

Projects

Status: Ready for PR Review

Development

Successfully merging this pull request may close these issues.

4 participants