Skip to content

feat: klaviyo piece#8320

Merged
sanket-a11y merged 14 commits intoactivepieces:mainfrom
Sanket6652:feat/klaviyo
Mar 17, 2026
Merged

feat: klaviyo piece#8320
sanket-a11y merged 14 commits intoactivepieces:mainfrom
Sanket6652:feat/klaviyo

Conversation

@Sanket6652
Copy link
Copy Markdown
Contributor

@Sanket6652 Sanket6652 commented Jul 9, 2025

/claim #8284
Fixes #8284

@Sanket6652 Sanket6652 changed the title Feat/klaviyo Feat: klaviyo piece Jul 9, 2025
@algora-pbc algora-pbc bot mentioned this pull request Jul 9, 2025
@onyedikachi-david
Copy link
Copy Markdown
Collaborator

onyedikachi-david commented Jul 10, 2025

To claim a bounty, you need to provide a short demo video of your changes in your pull request

@Sanket6652

@Sanket6652
Copy link
Copy Markdown
Contributor Author

@onyedikachi-david sure I'll add

@Sanket6652 Sanket6652 changed the title Feat: klaviyo piece feat: klaviyo piece Jul 10, 2025
@Sanket6652
Copy link
Copy Markdown
Contributor Author

Sanket6652 commented Jul 10, 2025

@onyedikachi-david Please review!

demo:

klaviyo_demo_activepiece.1.mp4

@onyedikachi-david onyedikachi-david self-requested a review July 10, 2025 22:58
* upstream/main: (1307 commits)
  refactor: update billing and project management
  fix: handle nil usage in platform hooks and update platform service to conditionally fetch usage
  fix: publishing piece to npm through tools scripts
  refactor: remove ManagePlanDialog from Billing component
  fix: update platform project service to directly assign tasks and aiCredits
  feat(gemini): add 2.5 flash and 2.5 pro models
  fix: reordered embedding sdk changelog to show latest first + added note for 0.66.0
  fix: add image version for sdk 0.6.0 notes
  chore: bump versions
  refactor: upgrade dialog
  fix: pieces with testing function were using simulation
  refactor: use global error handler
  fix: mcp trigger testing
  docs: add documentation for Delete Project endpoint
  Update index.ts
  feat: lock mcps, agents and tables on limits exceeded
  feat: split integration tests into multiple files
  feat(mistral-ai): fix upload file
  feat: mistral-ai piece
  fix: lint
  ...
* upstream/main: (31 commits)
  refactor: remove commented-out code and improve clarity in action files
  feat: some finishing touches and revamp
  fix: disable the button instead of showing loading
  fix: disable testing step while loading dynamic props or dropdown
  fix: lint
  fix: chats were infinitely loading for people not logged into activepieces
  feat: add flowId to job data structures and update related logic
  chore: bump version to 0.17.2 in package.json
  feat: release 0.66.2
  revert: workflow trigger condition
  fix: pre-prod cloud deploy workflow
  test: deploy pre-prod cloud
  test: deploy workflow
  feat: add pre-prod automate deploy workflow
  chore: skip empty values, allows removal of unwanted params
  feat: add secondary variant to status icon and update billing feature status icon
  feat: fireberry piece
  feat: fireberry piece
  fix: lint errors
  revert: tables piece migration
  ...
@gitguardian
Copy link
Copy Markdown

gitguardian bot commented Mar 17, 2026

⚠️ GitGuardian has uncovered 1 secret following the scan of your pull request.

Please consider investigating the findings and remediating the incidents. Failure to do so may lead to compromising the associated services or software components.

Since your pull request originates from a forked repository, GitGuardian is not able to associate the secrets uncovered with secret incidents on your GitGuardian dashboard.
Skipping this check run and merging your pull request will create secret incidents on your GitGuardian dashboard.

🔎 Detected hardcoded secret in your pull request
GitGuardian id GitGuardian status Secret Commit Filename
27585338 Triggered PostHog Project API Key 6bfa898 docs/docs.json View secret
🛠 Guidelines to remediate hardcoded secrets
  1. Understand the implications of revoking this secret by investigating where it is used in your code.
  2. Replace and store your secret safely. Learn here the best practices.
  3. Revoke and rotate this secret.
  4. If possible, rewrite git history. Rewriting git history is not a trivial act. You might completely break other contributing developers' workflow and you risk accidentally deleting legitimate data.

To avoid such incidents in the future consider


🦉 GitGuardian detects secrets in your source code to help developers and security teams secure the modern development process. You are seeing this because you or someone else with access to this repository has authorized GitGuardian to scan your pull request.

@greptile-apps
Copy link
Copy Markdown
Contributor

greptile-apps bot commented Mar 17, 2026

Confidence Score: 1/5

  • Not safe to merge — the klaviyoAuth array bug prevents the piece from loading, and the unquoted datetime filters guarantee both triggers fail on every execution.
  • Two independent critical bugs (auth array incompatibility and unquoted datetime filter expressions) each independently prevent the piece from functioning. Neither is a style or edge-case concern — they will cause hard failures for every user on every run.
  • src/lib/common/auth.ts (array auth), src/lib/triggers/new-profile.ts and src/lib/triggers/profile-added-to-list-segment.ts (unquoted datetime filters), src/lib/actions/unsubscribe-profile.ts (N+1 requests).

Important Files Changed

Filename Overview
packages/pieces/community/klaviyo/src/lib/common/auth.ts Exports klaviyoAuth as a plain JavaScript array of two PieceAuth entries, which is incompatible with createPiece's auth property — this will break the piece entirely at the framework level.
packages/pieces/community/klaviyo/src/lib/triggers/new-profile.ts Trigger will always fail: datetime values in Klaviyo filter expressions require double-quotes, but since is interpolated bare (lines 57 and 75), causing a 400 error on every poll cycle.
packages/pieces/community/klaviyo/src/lib/triggers/profile-added-to-list-segment.ts Same unquoted datetime filter bug as new-profile.ts on lines 141 and 162; also passes {} as body on GET requests (lines 76, 103) and only fetches the first page of lists/segments in dropdowns.
packages/pieces/community/klaviyo/src/lib/common/client.ts Implements fetchProfilesByIds with correct chunked batching (100 per request) to avoid N+1 lookups. makeRequest covers common HTTP error codes. Revision header is consistently 2025-04-15.
packages/pieces/community/klaviyo/src/lib/actions/unsubscribe-profile.ts Still uses N+1 individual GET requests per profile ID (lines 59–68) via Promise.all, unlike the subscribe action which was updated to use the batched fetchProfilesByIds helper.
packages/pieces/community/klaviyo/src/lib/common/props.ts Dropdowns fetch only the default first page (20 results) from Klaviyo, and profileIdDropdown/listIdDropdown still pass {} as body for GET requests.
packages/pieces/community/klaviyo/src/lib/actions/subscribe-profile.ts N+1 issue addressed via fetchProfilesByIds batching. Validates channel selection and historical-import constraints. Logic and request body construction look correct.
packages/pieces/community/klaviyo/src/lib/actions/find-list-by-name.ts User input is not quote-escaped in the filter string (line 47); success response omits count present in the failure response; uses rawresponse (no underscore) inconsistently with other actions.
packages/pieces/community/klaviyo/src/index.ts Passes klaviyoAuth array directly to createPiece's auth property; createCustomApiCallAction uses the same revision string (2025-04-15) as client.ts so the mismatch has been resolved.

Last reviewed commit: d306435

@sanket-a11y sanket-a11y merged commit 723ef39 into activepieces:main Mar 17, 2026
12 of 14 checks passed
pdfcrowd pushed a commit to pdfcrowd/activepieces that referenced this pull request Mar 20, 2026
Co-authored-by: David Anyatonwu <davidanyatonwu@gmail.com>
Co-authored-by: sanket@activepieces.com <sanket@activepieces.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[MCP] Klaviyo

5 participants