---
name: Zapier
description: Use when building AI agents, embedding automation workflows,
  running actions across 9,000+ apps, or creating integrations. Agents should
  reach for this skill when users ask to connect apps, automate tasks, build
  workflows, or integrate Zapier into products.
metadata:
  mintlify-proj: zapier
  version: "1.0"
---

# Zapier Skill

## Product summary

Zapier is an automation platform that connects 9,000+ apps and enables agents to take real actions across them. Agents use Zapier through three main paths: **Zapier MCP** (Model Context Protocol) for AI clients like Claude and ChatGPT to call tools directly, **Zapier SDK** (TypeScript/Node.js) for code-based integrations, or **Zapier APIs** for embedding workflows into products. The primary documentation is at https://docs.zapier.com. Key entry points: MCP quickstart at `/mcp/get-started/quickstart`, SDK at `/sdk/quickstart`, and integration building at `/integrations/quickstart/build-integration`.

## When to use

Reach for this skill when:

- **An agent needs to act on apps**: User asks Claude, ChatGPT, or Cursor to send a message, create a task, update a record, or look up data in connected apps.
- **Building an AI agent or coding assistant**: You're writing code that needs to call actions across multiple apps (use SDK or APIs).
- **Embedding automation in a product**: You're building a SaaS product and want to offer users workflow automation without building integrations yourself.
- **Creating a Zapier integration**: You're building a connector for an app to make it available in Zapier's App Directory.
- **Troubleshooting connection or execution issues**: User reports that a tool isn't working, an action failed, or authentication isn't completing.

## Quick reference

### Three main paths

| Path | Use case | Setup |
|---|---|---|
| **Zapier MCP** | AI client (Claude, ChatGPT, Cursor) needs to call tools | Connect via OAuth in the MCP client; Zapier auto-provisions tools from existing app connections |
| **Zapier SDK** | Code project needs to run actions programmatically | `npm install @zapier/zapier-sdk` + `npx zapier-sdk login` |
| **Zapier APIs** | Embed workflows or actions into your product | Use Workflow API or White Label API; requires OAuth or JWT authentication |

### MCP meta-tools (always available in agentic mode)

| Category | Tools | Purpose |
|---|---|---|
| Action management | `discover_zapier_actions`, `enable_zapier_action`, `inspect_zapier_actions`, `disable_zapier_action` | Find and enable actions; inspect what's enabled |
| Execution | `execute_zapier_read_action`, `execute_zapier_write_action` | Run read (search) or write (create/update) actions |
| Connections | `list_zapier_connections`, `manage_zapier_connections` | List available app connections; add new ones |
| Skills | `list_zapier_skills`, `get_zapier_skill`, `create_zapier_skill`, `update_zapier_skill`, `delete_zapier_skill` | Manage reusable workflow instructions |

### SDK quick commands

```bash
# Install
npm install @zapier/zapier-sdk
npm install -D @zapier/zapier-sdk-cli

# Authenticate
npx zapier-sdk signup  # New account
npx zapier-sdk login   # Existing account

# Generate types for an app
npx zapier-sdk add slack --types

# List connected apps
npx zapier-sdk list-apps
```

### Authentication methods

| Method | When to use | Where |
|---|---|---|
| **OAuth** | MCP clients (Claude, ChatGPT, Cursor, etc.) | Automatic during MCP client setup |
| **Connection token** | Unlisted MCP clients, Python/TypeScript code | Create at mcp.zapier.com, pass as `Authorization: Bearer` header |
| **Client credentials** | SDK server-side deployments | Use `ZAPIER_CREDENTIALS_CLIENT_ID` and `ZAPIER_CREDENTIALS_CLIENT_SECRET` env vars |
| **API key / Session auth** | Building integrations for your app | Configure in Developer Platform UI or CLI |

## Decision guidance

### When to use MCP vs SDK vs APIs

| Scenario | Use MCP | Use SDK | Use APIs |
|---|---|---|---|
| Agent in Claude/ChatGPT needs to act on apps | ✓ | | |
| Coding assistant (Cursor, VS Code) needs tools | ✓ | | |
| Node.js/TypeScript project needs to run actions | | ✓ | |
| Embedding workflows in your SaaS product | | | ✓ |
| Building a Zapier integration for your app | | | ✓ |
| One-off automation from terminal | | ✓ | |

### When to use agentic vs managed mode

| Mode | Use when | Tradeoff |
|---|---|---|
| **Agentic (default)** | Agent discovers and enables tools on demand during conversation | More flexible; agent can enable new actions mid-conversation |
| **Managed** | You want a fixed, predictable toolset with no dynamic discovery | Tighter control; agent cannot enable new actions without manual setup |

### When to use Powered by Zapier vs White Label

| Option | Use when | Billing |
|---|---|---|
| **Powered by Zapier** | Embedding workflows or actions; users have Zapier accounts | Users pay Zapier directly |
| **White Label** | Native automation in your product; users don't see Zapier branding | You pay Zapier per task executed |

## Workflow

### For an agent to run its first action via MCP

1. **Identify the MCP client**: Determine which client the user is using (Claude, ChatGPT, Cursor, etc.).
2. **Route to the right setup page**: Send the user to `/mcp/get-started/quickstart` and have them follow their MCP client's specific page (e.g., `/mcp/get-started/connect/claude`).
3. **Verify OAuth completes**: The MCP client will prompt for Zapier sign-in. Confirm the user authenticates and the server is created.
4. **Auto-provision tools**: Zapier automatically enables actions from apps already connected to the user's Zapier account.
5. **Run a test action**: Ask the agent to execute a read-only action first (e.g., "Find my last 3 emails") to verify the connection works.
6. **Enable additional apps as needed**: If the user needs an app not yet connected, the agent uses `discover_zapier_actions` to find it, then `enable_zapier_action` to add it. The agent will prompt the user to authenticate that app.

### For an SDK project to run actions

1. **Install the SDK**: Run `npm install @zapier/zapier-sdk` and `npm install -D @zapier/zapier-sdk-cli`.
2. **Authenticate**: Run `npx zapier-sdk signup` (new account) or `npx zapier-sdk login` (existing account).
3. **Generate types**: Run `npx zapier-sdk add <app-name> --types` for each app you'll use (e.g., `slack`, `gmail`).
4. **Initialize the SDK**: Create a file with `const zapier = createZapierSdk()`.
5. **List apps**: Run `zapier.apps.list()` to verify authentication works.
6. **Get a connection**: Retrieve a connection ID for the app you want to use.
7. **Run an action**: Call `zapier.apps.slack.actions.sendChannelMessage({ connection_id, text: "..." })`.
8. **Handle results**: Parse the response and handle errors (401 = auth failed, 429 = rate limited, etc.).

### For embedding workflows in a product

1. **Publish your app**: Your app must be listed in the Zapier App Directory (public or private integration).
2. **Choose your embed surface**: Decide between embedded workflows, actions, triggers, or AI agent connections.
3. **Set up authentication**: Configure OAuth credentials and redirect URIs in the Developer Platform.
4. **Call the Workflow API**: Use endpoints like `/v2/zaps` to create, list, or run workflows.
5. **Handle connections**: Use the Connect UI to let users authenticate their apps.
6. **Test end-to-end**: Create a test workflow in your product and verify it executes.

## Common gotchas

- **MCP client not listed?** The user's MCP client may not be on the supported list. Send them to `/mcp/get-started/connect/other` to use a connection token instead.
- **Tools not appearing after connecting**: The MCP client caches the tool list. Refresh it by asking the agent to call `list_zapier_skills` or restarting the client.
- **"Authorization error" when running an action**: The app connection may have expired or been revoked. Use `manage_zapier_connections` to re-authenticate the app.
- **Action times out**: The third-party API may be slow or the action may require too much data. Check the app's API limits and consider using filters or pagination.
- **Connection token exposed in logs**: Connection tokens are long-lived credentials. Never log them, commit them to version control, or pass them in URLs. Store in environment variables only.
- **SDK authentication fails on server**: CLI authentication (`zapier-sdk login`) is for development only. For production, use client credentials with `ZAPIER_CREDENTIALS_CLIENT_ID` and `ZAPIER_CREDENTIALS_CLIENT_SECRET`.
- **Workflow API returns 401**: The OAuth token may have expired. Refresh it using the refresh token endpoint.
- **Action run is "waiting"**: The action is still executing. Poll the status endpoint (`/v2/action-runs/{id}`) until it returns `success` or `error`.
- **Payload size exceeded**: The response from the third-party app is too large. Use hydration/dehydration or request only the fields you need.
- **Trigger not firing**: Webhooks may not be registered. Check that the trigger is enabled and the third-party app supports webhooks. Polling triggers may have a delay.

## Verification checklist

Before submitting work with Zapier:

- [ ] **Connection works**: Run a read-only action (search, list, get) and confirm real data is returned.
- [ ] **Authentication is fresh**: If using OAuth, verify the token is not expired. If using connection token, confirm it's stored securely.
- [ ] **Action runs to completion**: Execute a write action (create, update, send) and verify the result in the third-party app.
- [ ] **Error handling is in place**: Test with invalid inputs and confirm errors are caught and logged.
- [ ] **No credentials in logs**: Search code and logs for API keys, tokens, or secrets. None should be visible.
- [ ] **Rate limits are respected**: If running multiple actions, confirm you're not hitting the third-party app's rate limits.
- [ ] **Workflow is idempotent**: If the workflow runs twice, it should not create duplicate records or cause side effects.
- [ ] **MCP client tool list is fresh**: If using MCP, refresh the tool list after enabling new actions.
- [ ] **Permissions are correct**: Verify the authenticated user has permission to perform the action (e.g., can post to the channel, can edit the record).

## Resources

- **Full documentation**: https://docs.zapier.com/llms.txt — comprehensive page-by-page navigation for all Zapier features
- **MCP quickstart**: https://docs.zapier.com/mcp/get-started/quickstart — connect your MCP client and run your first tool
- **SDK quickstart**: https://docs.zapier.com/sdk/quickstart — set up the TypeScript SDK and run actions programmatically
- **Workflow API**: https://docs.zapier.com/powered-by-zapier/zap-creation/getting-started — embed workflows and actions into your product

---

> For additional documentation and navigation, see: https://docs.zapier.com/llms.txt