You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.$projectParam.env.$envParam.deployments.$deploymentParam/route.tsx
+109-1Lines changed: 109 additions & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -3,7 +3,16 @@ import { type LoaderFunctionArgs } from "@remix-run/server-runtime";
description: "This example demonstrates how to use Hookdeck to receive webhooks and trigger Trigger.dev tasks."
5
+
---
6
+
7
+
## Overview
8
+
9
+
This example shows how to use [Hookdeck](https://hookdeck.com) as your webhook infrastructure to trigger Trigger.dev tasks. Hookdeck receives webhooks from external services, and forwards them directly to the Trigger.dev API. This gives you the best of both worlds: Hookdeck's webhook management, logging, and replay capabilities, combined with Trigger.dev's reliable task execution.
10
+
11
+
## Key features
12
+
13
+
- Use Hookdeck as your webhook endpoint for external services
14
+
- Hookdeck forwards webhooks directly to Trigger.dev tasks via the API
15
+
- All webhooks are logged and replayable in Hookdeck
16
+
17
+
## Setting up Hookdeck
18
+
19
+
You'll configure everything in the [Hookdeck dashboard](https://dashboard.hookdeck.com). No code changes needed in your app.
20
+
21
+
### 1. Create a destination
22
+
23
+
In Hookdeck, create a new [destination](https://hookdeck.com/docs/destinations) with the following settings:
24
+
25
+
-**URL**: `https://api.trigger.dev/api/v1/tasks/<task-id>/trigger` (replace `<task-id>` with your task ID)
26
+
-**Method**: POST
27
+
-**Authentication**: Bearer token (use your `TRIGGER_SECRET_KEY` from Trigger.dev)
28
+
29
+
### 2. Add a transformation
30
+
31
+
Create a [transformation](https://hookdeck.com/docs/transformations) to wrap the webhook body in the `payload` field that Trigger.dev expects:
32
+
33
+
```javascript
34
+
addHandler("transform", (request, context) => {
35
+
request.body= { payload: { ...request.body } };
36
+
return request;
37
+
});
38
+
```
39
+
40
+
### 3. Create a connection
41
+
42
+
Create a [connection](https://hookdeck.com/docs/connections) that links your source (where webhooks come from) to the destination and transformation you created above.
43
+
44
+
## Task code
45
+
46
+
This task will be triggered when Hookdeck forwards a webhook to the Trigger.dev API.
47
+
48
+
```ts trigger/webhook-handler.ts
49
+
import { task } from"@trigger.dev/sdk";
50
+
51
+
exportconst webhookHandler =task({
52
+
id: "webhook-handler",
53
+
run: async (payload:Record<string, unknown>) => {
54
+
// The payload contains the original webhook data from the external service
55
+
console.log("Received webhook:", payload);
56
+
57
+
// Add your custom logic here
58
+
},
59
+
});
60
+
```
61
+
62
+
## Testing your setup
63
+
64
+
To test everything is working:
65
+
66
+
1. Set up your destination, transformation, and connection in [Hookdeck](https://dashboard.hookdeck.com)
67
+
2. Send a test webhook to your Hookdeck source URL (use the Hookdeck Console or cURL)
68
+
3. Check the Hookdeck dashboard to verify the webhook was received and forwarded
69
+
4. Check the [Trigger.dev dashboard](https://cloud.trigger.dev) to see the successful run of your task
70
+
71
+
For more information on setting up Hookdeck, refer to the [Hookdeck Documentation](https://hookdeck.com/docs).
0 commit comments