docs/guides/frameworks/remix-webhooks.mdx
<Card title="View the project on GitHub" icon="GitHub" href="https://github.com/triggerdotdev/examples/tree/main/remix-webhooks"
Click here to view the full code for this project in our examples repository on GitHub. You can fork it and use it as a starting point for your own project. </Card>
The webhook handler in this guide will be an API route. Create a new file app/routes/api.webhook-handler.ts or app/routes/api.webhook-handler.js.
In your new file, add the following code:
import type { ActionFunctionArgs } from "@remix-run/node";
import { tasks } from "@trigger.dev/sdk";
import { helloWorldTask } from "src/trigger/example";
export async function action({ request }: ActionFunctionArgs) {
const payload = await request.json();
// Trigger the helloWorldTask with the webhook data as the payload
await tasks.trigger<typeof helloWorldTask>("hello-world", payload);
return new Response("OK", { status: 200 });
}
This code will handle the webhook payload and trigger the 'Hello World' task.
Now that you have a webhook handler set up, you can trigger the 'Hello World' task from it. We will do this locally using cURL.
<Steps> <Step title="Run your Remix app and the Trigger.dev dev server">First, run your Remix app.
<CodeGroup>```bash npm
npm run dev
```
```bash pnpm
pnpm run dev
```
```bash yarn
yarn dev
```
Then, open up a second terminal window and start the Trigger.dev dev server:
<CodeGroup>```bash npm
npx trigger.dev@latest dev
```
```bash pnpm
pnpm dlx trigger.dev@latest dev
```
```bash yarn
yarn dlx trigger.dev@latest dev
```
</CodeGroup>
To send a POST request to your webhook handler, open up a terminal window on your local machine and run the following command:
<Tip> If `http://localhost:5173` isn't the URL of your locally running Remix app, replace the URL in the below command with that URL instead. </Tip>curl -X POST -H "Content-Type: application/json" -d '{"Name": "John Doe", "Age": "87"}' http://localhost:5173/api/webhook-handler
This will send a POST request to your webhook handler, with a JSON payload.
</Step> <Step title="Check the task ran successfully">After running the command, you should see a successful dev run and a 200 response in your terminals.
If you now go to your Trigger.dev dashboard, you should also see a successful run for the 'Hello World' task, with the payload you sent, in this case; {"name": "John Doe", "age": "87"}.