Migrate from Zapier Functions to Code by Zapier

Zapier Functions is being deprecated on September 1, 2026. This guide maps each Functions feature to Code by Zapier and explains migration paths for secrets, app actions, and Python code.

Before you start

Timeline

Date What happens
June 1, 2026 Functions is no longer accepting new users. Start planning your migration.
September 1, 2026 All functions stop running. Migrate your workflows before this date.

Feature comparison

Functions feature Code by Zapier equivalent Notes
Python code Python or JavaScript code Use JavaScript if you need the Zapier SDK.
Third-party packages npm and PyPI packages Available on Zapier paid plans.
zapier.action (authenticated app calls) Zapier SDK (JavaScript only) (Optional) Replace zapier.action with the Zapier SDK
Multiple triggers Sub-Zap Create one Zap per trigger, or share logic in a sub-Zap.
Secrets (API keys, tokens) API by Zapier + Zapier SDK (JavaScript only) (Optional) Replace secrets with API by Zapier
Multiple code files Single Code step Combine logic into one step, or split across multiple Zap steps.
Copilot in Functions AI-assisted code generation Built into the Code editor.
Deploy and rollback Zap publishing Use Zap version history to manage changes.
5-minute runtime Extended runtimes Code steps can run up to 10 minutes on paid plans.
1,500 tasks per month Tasks counted per Zap run Standard task usage applies.

Step-by-step migration

1. Create a new Zap with a trigger

Each function trigger becomes a separate Zap trigger. If your function had multiple triggers, create one Zap per trigger or share code logic in a sub-Zap.

Create a Zap with the same trigger your function used. For trigger setup, go to Set up your Zap trigger.

2. Add a Code by Zapier step

3. Adapt your code for Code by Zapier

Choose your migration path:

  • Python code without zapier.action or secrets: Reuse much of your code in a Python Code step. Update how input and output data are handled.
  • zapier.action calls: Rewrite in JavaScript using the Zapier SDK.
  • Secrets or custom API calls: Use API by Zapier with the Zapier SDK. Do not use fetch for these calls.
Python (Functions) JavaScript (Code by Zapier)
input_data['key'] inputData.key or inputData['key']
output = {'key': 'value'} output = {key: 'value'}
print(value) console.log(value)
import requests Use fetch, or API by Zapier with the Zapier SDK for authenticated calls
requests.get(url) await fetch(url)
requests.post(url, json=data) await fetch(url, {method: 'POST', body: JSON.stringify(data), headers: {'Content-Type': 'application/json'}})
try: ... except: try { ... } catch (error) { ... }
zapier.action.app.action_key(params={...}) Zapier SDK: await app.write.action_key({inputs: {...}})
Tip

Use AI-assisted code generation in the Code editor to help adapt your code.

(Optional) Replace secrets with API by Zapier

Use this section if your function stored API keys or tokens as secrets.

Code by Zapier cannot store secrets like API keys in your code. If you need to call an app Zapier does not support, or an API endpoint that is not in the standard app integration, use API by Zapier with the Zapier SDK. That is the safest way to make authenticated calls without putting credentials in your code. Follow Add the Zapier SDK to a Code step to set up the step and attach your API by Zapier connection.

Before: Zapier Functions After: Code by Zapier
import requests

response = requests.post(
    "https://api.example.com/v1/items",
    json={"name": input_data["name"]},
    headers={"Authorization": f"Bearer {secrets['api_token']}"},
)

(Optional) Replace `zapier.action` with the Zapier SDK

Use this section if your function used zapier.action to call app actions.

Follow Add the Zapier SDK to a Code step to enable the SDK and attach your app connections.

Before: Zapier Functions After: Code by Zapier
zapier.action.slack.send_channel_message(
    params={"channel": "#general", "text": "Hello"},
    type_of="write",
)

(Optional) Replace Python libraries

Use this section if your function relied on Python libraries beyond the standard library.

Python (built-in) JavaScript (built-in) Purpose
requests fetch HTTP client
print console.log Debugging
StoreClient StoreClient Store and retrieve data between Zap runs
BeautifulSoup Not applicable Parse HTML and XML content

For other libraries, add third-party packages to your Code step.

4. Test and publish

Test your Zap steps, remap fields in downstream steps if needed, then publish your Zap. Once confirmed, stop or remove the original function.

Related resources

Get help

Was this article helpful?
0 out of 0 found this helpful