Before publishing your integration on Zapier, it is essential to ensure that your integration is well-prepared to provide a seamless and efficient user experience. The following guidelines are designed to assist you in refining your integration before submitting it for review. Adhering to these guidelines will help enhance the functionality and user interaction with your integration and will provide you with the best value and opportunities to harness Zapier as a method of obtaining new users and most commonly, boosting the lifetime value of your current customers.
2023-12-15T01:15:13Z
(or -0000
instead of Z
)2023-12-01T12:32:01-0800
2023-12-01T12:32:01-08:00
2023-12-13
(for date-only values){"key": "value"}
instead of [{"key": "value"}, {"key": "value2"}, … ]
.2023-12-15T01:15:13Z
(or -0000
instead of Z
)2023-12-01T12:32:01-0800
2023-12-01T12:32:01-08:00
2023-12-13
(for date-only values)2023-12-15T01:15:13Z
(or -0000
instead of Z
)2023-12-01T12:32:01-0800
2023-12-01T12:32:01-08:00
2023-12-13
(for date-only values){"key": "value"}
instead of [{"key": "value"}, {"key": "value2"}, … ]
.z.errors.Error
in situations where users misconfigure their Zaps and need to take action. Typically, this will be for prettifying 4xx
responses and APIs that return errors as 200 with a payload that describes the error with guidance on how to correct it.
z.errors.HaltedError
in situations where a required pre-condition is not met. For instance, in an action to add an email address to a list where duplicates are not allowed, throw a HaltedError
if the Zap attempted to add a duplicate. This indicates failure but is treated as a soft failure. Thus, unlike general errors, a Zap will never be turned off when this error is thrown even if it is raised more often than not.
z.errors.ExpiredAuthError
, so the current operation is interrupted, the Zap is turned off (to prevent additional runs with expired credentials), and a predefined email is sent out informing the user to refresh the credentials. The runs will be Held, and the user will be able to replay them after reconnecting.
For integrations using OAuth2 with automatic refresh requests or Session Auth, use z.errors.RefreshAuthError
. This signals Zapier to refresh the credentials and retry the failed operation.
It’s important to note that Zapier will automatically request a new token only when we receive a 401 status code, and will not do so for any other status code, such as a 403.
If a 401 cannot be returned, use code mode for every trigger and action and set them up so that when an error message that indicates an expired token is returned by your API, the trigger/action would throw new z.errors.RefreshAuthError();
. This would enable the integration to refresh the expired token.
zapier-platform-legacy-scripting-runner
, zapier-platform-core
, or zapier-platform-cli
—complete the update promptly or by the stated deadline. If requested updates are not completed by the stated deadline, Zapier reserves the right to make necessary updates on your behalf.