Trigger workflows from APIs, on a schedule, or on demand. API calls are easy with authentication handled for you. Add durable delays that survive server restarts.
In your codebase
Trigger.dev is code-first so you can create workflows where they belong: in your codebase. Version control, localhost, test, review, and deploy like you’re used to.
Secure by design
Your workflows run on your servers, not ours. We only receive the data you choose to send to us.
Subscribe to API changes and make requests, we’ll handle authentication for you.
Create an email drip feed campaign in under 2 minutes
One of our most requested simple workflows. When a new user signs up, send a Slack message and start a welcome email drip campaign.
Triggered when a GitHub issue is created or updated. Query your database to map GitHub user ids to Linear user ids. Then create or update Linear issues.
Triggered on demand by your other code when a user is created. We wait for 3 hours then send a follow-up email if the user hasn’t completed onboarding yet.
Triggered when an Intercom incident happens. We create a Linear issue, send a Slack message and, if it’s an urgent incident, we alert whoever is on call.
Sync GitHub issues to Linear
import { Trigger } from "@trigger.dev/sdk";
import { github, linear } from "@trigger.dev/integrations";
new Trigger({
id: "sync-github-issue-to-linear",
name: "Sync Github issues to Linear",
apiKey: "",
on: github.events.issueEvent({
repo: "acme/website",
}),
run: async (event, ctx) => {
const { issue, action } = event;
// Find the user in our local database
const assignee = await findUserByGithubId(issue.assignee?.id);
if (action === "opened") {
await linear.createIssue({
id: issue.id,
title: issue.title,
description: issue.body,
assigneeId: assignee?.linearId,
teamId: ctx.env.LINEAR_TEAM_ID,
});
} else {
await linear.updateIssue(issue.id, {
assigneeId: assignee?.linearId,
stateId:
action === "closed"
? ctx.env.LINEAR_CLOSED_STATE_ID
: ctx.env.LINEAR_OPEN_STATE_ID,
});
}
return event;
},
}).listen();
Install our SDK and get instant access to an arsenal of triggers you can use in your code.
Webhooks
Subscribe to webhooks without creating API endpoints. Plus they work locally without tunneling.
github.issueEvent({ repo: "acme/website" })
Scheduled (CRON)
Easily subscribe to a recurring schedule using human readable code or CRON syntax.
scheduleEvent({ every: { minutes: 30 } })
Custom Events
Trigger workflows from any event in your app. Send us your events, and we’ll do the rest.
customEvent({ name: "your.event" })
HTTP Endpoint
Expose a HTTP endpoint to trigger your workflows with the method and path of your choice.
httpEvent({ method: "POST", path: "/users/:id" })
Receive Emails
Receive emails from your custom domain and trigger a workflow with the email metadata and content.
emailEvent({ address: "[email protected]" })
AWS Event Bridge
Integrate with AWS Event Bridge to trigger workflows on your own Event Bridge events.
eventBridge({ bus: "customer-support" })
Debugging and visibility
We provide a full history of all runs, so you can see exactly what happened.
Survives downtime
Workflows pick up where they left off when your server or external APIs go down.
Go from idea to production in minutes
Write workflows by creating triggers directly in your code. These can be 3rd-party integrations, custom events or on a schedule.
When your server runs, your workflow will be registered and you can authenticate with any APIs you’re using.
Test your workflow by triggering manually in your dashboard. Follow it as it runs step-by-step.
Deploy your new workflow as you would any other code commit and inspect each workflow run in real time.
You’ll always be able to host and run Trigger.dev yourself. Join our community and star our repo to stay up to date.
We’ve also created JSON Hero, an open source JSON viewer used by around 55,000 developers per month.
If you have any other questions, drop us an email at [email protected], and we will get back to you.
Start creating workflows in your codebase now.
Leave A Comment