Build automated workflows using Zapier's 3000+ integrations.

Using the Zapier API with Trigger.dev

You can use Trigger.dev with any existing Node SDK or even just using fetch. Using io.runTask makes your Zapier background job resumable and appear in our dashboard.

  • Use io.runTask() and the official SDK or fetch.

  • Use our HTTP endpoint to subscribe to webhooks

  • Example code using Zapier

    Below is a working code example of how you can use Zapier with Trigger.dev. These samples are open source and maintained by the community, you can copy and paste them into your own projects.

    import { TriggerClient } from "@trigger.dev/sdk";
    // Create a workflow in Zapier
    // Select Webhooks by Zapier
    // Set the Webhook URL
    // By default, no auth is added, hence look for user-agent: Zapier
    // Add basic auth by piping the username|password
    // Now, look for the authorization header
    const zapier = client.defineHttpEndpoint({
    id: "zapier",
    source: "zapier.com",
    icon: "zapier",
    verify: async (request) => {
    const secret = process.env.ZAPIER_TRIGGER_SECRET;
    if (!secret) {
    return {
    success: false,
    reason: "The Zapier secret needs to be set in the environment.",
    };
    }
    if (secret !== request.headers.get("x-trigger-secret")) {
    return {
    success: false,
    reason: "The secret does not match.",
    };
    }
    return { success: true };
    },
    });
    client.defineJob({
    id: "http-zapier",
    name: "HTTP Zapier",
    version: "1.0.0",
    enabled: true,
    trigger: zapier.onRequest(),
    run: async (request, io, ctx) => {
    const body = await request.json();
    await io.logger.info(`Body`, body);
    },
    });
    ,