Whatโs changed in v18.0.5
Released: 2025-12-10Weโre releasing v18.0.5, skipping comprimised versions v18.0.2, v18.0.3, and v18.0.4, due to the prior security incident.
build command related to zip file decompression.
cli
- ๐ Remove problematic decompress-tar dependency (#1202)
- ๐จ Switch to pnpm as package manager and task runner (#1204)
Incident: Unauthorized Access to Zapier NPM Packages
Released: 2025-11-24 Unauthorized Access to Zapier npm Packages Note: No action is needed from Zapier users, only from Zapier developers using one of the NPM package versions listed on this page. See that link for detailed mitigation recommendations. All Zapier products are operating as expected and there is no indication of data loss or leak. Please see this link for the most up-to-date information.Whatโs changed in v18.0.1
Released: 2025-11-05 This release addresses an npx resolution issue introduced in v18.0.0 and fixes TypeScript typing for nested input fields when working with line items. cli- ๐ Fix npx resolution issue with dual binary entries (#1191)
- ๐ Fix children input types when line items are present (#1188)
Whatโs changed in v18.0.0
Released: 2025-10-30 Version 18.0.0 is a BREAKING CHANGE release that contains several important upgrades and changes. Here is a brief breakdown of the main changes (โ denotes a breaking change): โ Node.js 22 Support Zapier Platform v18 runs on Node.js 22 runtime. This is a breaking change as it may affect compatibility with older Node.js versions and dependencies. โ Schema Changes TheskipCleanArrayInputData experimental flag has been replaced with cleanInputData. This provides more consistent data cleaning behavior across the platform. This change is breaking only if youโre using skipCleanArrayInputData.
See cleanInputData flag documentation for more details on how to configure this behavior.
โ New Throttling Middleware
A new throwForThrottling middleware has been added to prevent afterResponse middleware from suppressing 429 (throttling) responses. This ensures proper handling of rate limiting scenarios. This change is breaking if you want to handle 429 responses in your afterResponse. See v18.x and above: the built-in throwForThrottling middleware for how to handle 429s yourself.
New Executable Name zapier-platform
The CLI now includes a new executable name zapier-platform while deprecating the old zapier command. Both will work for now, but zapier-platform is the recommended command going forward.
Apart from these major changes, here are the detailed release notes for this release (note that โ denotes a breaking change): cli
- ๐ Add executable name
zapier-platformand deprecatezapier(#1181) - ๐จ Update outdated dependencies with security vulnerabilities (#1111)
- ๐จ Apply prettier formatting to generated auth files since gen.fs.write bypasses transform streams
- ๐จ Add ESM wrapper improvements for better module support
- โ Add Node.js 22 support (#1078)
- ๐ Add
throwForThrottlingmiddleware with backward-compatible default behavior (#1151) - ๐ Add better error message for 413 responses (#1110)
- โ Replace
skipCleanArrayInputDatawithcleanInputData(#1183) - ๐จ Add global
cleanInputDataflag for consistent data cleaning behavior
- โ Major dependency updates across all packages (#1079)
- ๐จ Update CI configuration for Node.js 22 support
- ๐จ Pin exact xmldom version for security
Whatโs changed in v17.9.1
Released: 2025-10-28 This release addresses a bug in thezapier push command and includes dependency updates.
cli
- ๐ Fix issue where zapier push fail if the app wasnโt built already (may have affected ESM builds) (#1187)
- ๐จ Bump vite from 6.3.6 to 6.4.1 (#1185)
Self-serve static IP for private integrations
Released: 2025-10-21 Self-serve static IP for private integrations- ๐ Static IP can now be enabled by team members for private integrations:
- Platform UI toggle: Navigate to the Settings tab on the Advanced page to enable static IP addresses for your private integration without contacting support.
- Published integrations: Continue to contact Zapier Support to enable static IP for published integrations.
Labeled Versions now available in CLI and Platform UI
Released: 2025-10-21 Labeled Versions- ๐ Labeled Versions are now publicly available!
- Versions like
2.0.0-betacan be used for testing and avoiding version collisions during parallel development - More flexible โsnapshotโ versions like
0.0.0-my-featurecan be used to push integration updates without committing to a semantic version number
- Versions like
Whatโs changed in v17.9.0
Released: 2025-10-20 This release fixes an issue with validation for labeled versions, and improves failures onzapier env:set.
cli
- ๐ Validate snapshot labels for 12 chars instead of 18 (#1182)
- ๐ Display failure reasons for env:set (#1180)
Whatโs changed in v17.8.0
Released: 2025-10-07 Aside from some clean up work, this release adds support for natural snapshots tozapier push. This is currently only supported internally but look out for a public release soon!
cli
- ๐
zapier pushsupports natural snapshots (#1172) - ๐ Address
punycodedeprecation warning by removingnode-fetch(#1171) - ๐ Fix incorrect docs in
zapier migrate(#1169)
- ๐ Allow null and undefined values for
page_tokeninSearchResult(#1168) - ๐ Allow undefined value for
paging_token(#1166)
- ๐ Direct developers to Platform News (#1174)
Migration UI now supports individual and organization-level migrations
Released: 2025-10-02 Migration via the Platform UI- ๐ Email-based migration now supports two scopes:
- Individual: Migrates only private Zaps under the userโs individual account (equivalent to the
--userflag of thezapier migrateCLI command) - Organization: Migrates all Zaps including shared resources across organization accounts (equivalent to the
--accountflag of thezapier migrateCLI command)
- Individual: Migrates only private Zaps under the userโs individual account (equivalent to the
Whatโs changed in v17.7.2
Released: 2025-09-17 cli- ๐ Allows deleting old non-semver versions and blocks pushes to non-semver versions (#1160)
- ๐ Integration check displays failure icon if errors are present (#1159)
- ๐ Adds paging_token to bundle.meta types (#1157)
Whatโs changed in v17.7.1
Released: 2025-09-10 cli- ๐ Fix
zapier scaffoldfailing when app object contains spread elements (#1115) - ๐ Fix
zapier invoke authmay append to last line without a newline (#1138) - ๐ Fix
zapier scaffoldto use.jsextension for TS imports (#1123) - ๐ Fix
zapier scaffoldto handle shorthand property syntax (#1125) - ๐
zapier validatenow runs_zapier-buildbefore validation by default (#1130) - ๐
Add
devscript topackage.jsonof typescript templates generated byzapier init(#1128) - ๐
Improve
zapier initto list only templates that support selected module and language (#1146)
- ๐ Censor sensitive info in
ResponseError(#1147)
- ๐ Fix
InputFieldGroupsSchemato have its properties displayed (#1143) - ๐งช Allow to skip cleaning arrays in
inputDataviaskipCleanArrayInputData(#1153) - ๐จ Support version with label (ongoing work) (#1093)
No more manual handling of 4xx errors in refreshAccessToken
Effective: 2025-09-08 We made a change to how we handle error responses when refreshing OAuth2 access tokens. Old behavior When an app gives an error response (status code 4xx or 5xx) while refreshing the OAuth2 access token, Zapier keeps retrying the Zap step indefinitely or until it hits a certain limit, depending on the userโs settings. New behavior When an app encounter a 4xx error response (except for the ones listed below) while refreshing the access token, Zapier will mark the connect as stale, and send an email telling the user to reconnect. Exceptions: The following 4xx errors often indicate a temporary issue so they still have the same behavior as before:- 408 (Request Timeout)
- 409 (Conflict)
- 423 (Locked)
- 425 (Too Early)
- 429 (Too Many Requests)
- If the stale connection is used by a trigger step, the trigger polling system will skip polling when the scheduled time comes.
- If the stale connection is used by an action step, the Zap run will be put on hold until the user reconnects and replays the run.
refreshAccessToken anymore. For example, you might have been catching 4xx errors in refreshAccessToken by enabling skipThrowForStatus and throwing ExpiredAuthError:
Whatโs changed in v17.7.0
Released: 2025-08-22 cli- ๐ Fix
zapier pullerror โlistFiles is not a functionโ (#1113) - ๐ Fix
zapier invoke authwriting object values to.envas[object Object](#1107) - ๐
Add logic to
zapier buildto handle the case where the app directory has symlinks to files on a different drive (#1106) - ๐
zapier invokesupports testing Search Pagination with apaging_tokenflag (#1082)
- ๐ Foundational support for Search Pagination (#1082)
- ๐ Schema support for Search Pagination (#1082)
- ๐ Enable Windows in Github Actions CI (#1106)
- ๐ Add Claude, Copilot, and Cursor instructions/rules (#1107)
- ๐จ Bump
tmpfrom 0.2.3 to 0.2.4 (#1100) - ๐จ Bump
sha.jsfrom 2.4.11 to 2.4.12 (#1116)
Whatโs changed in v17.6.0
Released: 2025-08-11 cli- ๐ Add user and account filters to canary (#1066)
- ๐
Export
consolefrom zapier-platform-core (#1077, #1102) - ๐ Allow safe
authDatakeys to be logged uncensored (#1097)
Whatโs changed in v17.5.0
Released: 2025-07-30 cli- ๐ Fix missing
bundle.inputDataRawin invoke command (#1072) - ๐ Fix error
'No loader is configured for ".node" files'onzapier build(#1094) - ๐จ Refactor
zapier initto move auth befores/afters intomiddleware.jsinstead ofauthentication.js(#1073)
- ๐
Export errors from
zapier-platform-core(#1075) - ๐จ Update
form-datafrom4.0.1to4.0.4(#1096)
- ๐
Expanded
AuthFieldSchemawith additional field types:
Whatโs changed in v17.4.0
Released: 2025-07-23 cli- ๐ Fix regression bugs with
zapier build, where it can fail with โโThe โpathโ argument must be of type stringโโ when dirent.parentPath property is missing (#1087) - ๐ Fixes a regression where
zapier build --skip-npm-installfails when an app has a linked dependencies in itsnode_modules(#1089) - ๐ Remove empty array at the end of
zapier versions -f json(#1086) - ๐
Add additional Typescript auth options to
zapier init(#1067)
- ๐ Support compression when stashing large input bundles (#1085)
Whatโs changed in v17.3.1
Released: 2025-07-17 cli- ๐ Fix regression bugs with
zapier build --skip-npm-install, where: - ๐
Improve some error messages in
zapier build(#1070)
- ๐ Improve the error message when the app module fails to import (#1070)
Whatโs changed in v17.3.0
Released: 2025-07-01 This release introduces two major improvements:zapier build and input field grouping.
The zapier build command has been revamped to:
- Better support npm/yarn/pnpm workspaces
- Run faster when the
--skip-npm-installflag is enabled - Test the build.zip file to verify all load-time dependencies are included (not applicable on Windows)
- Grouping support, intended for visual purpose in products, has been added to the input fields.
- ๐
zapier buildsupports npm/yarn/pnpm workspaces and runs faster (#1052) - ๐ Fix a bug where
zapier buildcan select the wrong entry point of a dependency (#1052 - c004298) - :scroll: Update docs for new days before deprecation and sending emails (#1056)
- ๐ Fix a bug where Fetch logger crashes when response doesnโt have content-type (#1062)
- ๐ Fix a bug where
text/xmlresponse content should be logged (#1058) - ๐
Typing update: allow overriding
idrequirement in polling triggers (#1059) - ๐ Typing update: allow test bundles to be recursively partial (#1057)
- ๐จ Bump fernet from 0.4.0 to 0.3.3 (latest) (#1055)
- ๐ Input fields now support visual grouping through the โgroupโ property of the
/PlainInputFieldSchemaand the new/InputFieldGroupsSchema(#1061)
Whatโs changed in v17.2.0
Released: 2025-06-11 cli None! core- ๐ Add before middleware to fetch stashed bundles for improved large payload handling (#1050)
Looking for older news? 2025, and old changelogs prior to v17