docs: Add Hookdeck example (#3005)
Add documentation for integrating Hookdeck with Trigger.dev to receive webhooks and forward them to Trigger.dev tasks. <!-- devin-review-badge-begin --> --- <a href="https://app.devin.ai/review/triggerdotdev/trigger.dev/pull/3005"> <picture> <source media="(prefers-color-scheme: dark)" srcset="https://static.devin.ai/assets/gh-open-in-devin-review-dark.svg?v=1"> <img src="https://static.devin.ai/assets/gh-open-in-devin-review-light.svg?v=1" alt="Open with Devin"> </picture> </a> <!-- devin-review-badge-end -->
This commit is contained in:
+2
-1
@@ -352,7 +352,8 @@
|
||||
"guides/frameworks/webhooks-guides-overview",
|
||||
"guides/frameworks/nextjs-webhooks",
|
||||
"guides/frameworks/remix-webhooks",
|
||||
"guides/examples/stripe-webhook"
|
||||
"guides/examples/stripe-webhook",
|
||||
"guides/examples/hookdeck-webhook"
|
||||
]
|
||||
}
|
||||
]
|
||||
|
||||
@@ -0,0 +1,71 @@
|
||||
---
|
||||
title: "Trigger tasks from Hookdeck webhooks"
|
||||
sidebarTitle: "Hookdeck webhooks"
|
||||
description: "This example demonstrates how to use Hookdeck to receive webhooks and trigger Trigger.dev tasks."
|
||||
---
|
||||
|
||||
## Overview
|
||||
|
||||
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.
|
||||
|
||||
## Key features
|
||||
|
||||
- Use Hookdeck as your webhook endpoint for external services
|
||||
- Hookdeck forwards webhooks directly to Trigger.dev tasks via the API
|
||||
- All webhooks are logged and replayable in Hookdeck
|
||||
|
||||
## Setting up Hookdeck
|
||||
|
||||
You'll configure everything in the [Hookdeck dashboard](https://dashboard.hookdeck.com). No code changes needed in your app.
|
||||
|
||||
### 1. Create a destination
|
||||
|
||||
In Hookdeck, create a new [destination](https://hookdeck.com/docs/destinations) with the following settings:
|
||||
|
||||
- **URL**: `https://api.trigger.dev/api/v1/tasks/<task-id>/trigger` (replace `<task-id>` with your task ID)
|
||||
- **Method**: POST
|
||||
- **Authentication**: Bearer token (use your `TRIGGER_SECRET_KEY` from Trigger.dev)
|
||||
|
||||
### 2. Add a transformation
|
||||
|
||||
Create a [transformation](https://hookdeck.com/docs/transformations) to wrap the webhook body in the `payload` field that Trigger.dev expects:
|
||||
|
||||
```javascript
|
||||
addHandler("transform", (request, context) => {
|
||||
request.body = { payload: { ...request.body } };
|
||||
return request;
|
||||
});
|
||||
```
|
||||
|
||||
### 3. Create a connection
|
||||
|
||||
Create a [connection](https://hookdeck.com/docs/connections) that links your source (where webhooks come from) to the destination and transformation you created above.
|
||||
|
||||
## Task code
|
||||
|
||||
This task will be triggered when Hookdeck forwards a webhook to the Trigger.dev API.
|
||||
|
||||
```ts trigger/webhook-handler.ts
|
||||
import { task } from "@trigger.dev/sdk";
|
||||
|
||||
export const webhookHandler = task({
|
||||
id: "webhook-handler",
|
||||
run: async (payload: Record<string, unknown>) => {
|
||||
// The payload contains the original webhook data from the external service
|
||||
console.log("Received webhook:", payload);
|
||||
|
||||
// Add your custom logic here
|
||||
},
|
||||
});
|
||||
```
|
||||
|
||||
## Testing your setup
|
||||
|
||||
To test everything is working:
|
||||
|
||||
1. Set up your destination, transformation, and connection in [Hookdeck](https://dashboard.hookdeck.com)
|
||||
2. Send a test webhook to your Hookdeck source URL (use the Hookdeck Console or cURL)
|
||||
3. Check the Hookdeck dashboard to verify the webhook was received and forwarded
|
||||
4. Check the [Trigger.dev dashboard](https://cloud.trigger.dev) to see the successful run of your task
|
||||
|
||||
For more information on setting up Hookdeck, refer to the [Hookdeck Documentation](https://hookdeck.com/docs).
|
||||
@@ -31,6 +31,10 @@ A webhook handler is code that executes in response to an event. They can be end
|
||||
How to create a Stripe webhook handler and trigger a task when a 'checkout session completed'
|
||||
event is received.
|
||||
</Card>
|
||||
<Card title="Hookdeck webhooks" icon="webhook" href="/guides/examples/hookdeck-webhook">
|
||||
Use Hookdeck to receive webhooks and forward them to Trigger.dev tasks with logging and replay
|
||||
capabilities.
|
||||
</Card>
|
||||
<Card
|
||||
title="Supabase database webhooks guide"
|
||||
icon="webhook"
|
||||
|
||||
@@ -37,6 +37,7 @@ Get set up fast using our detailed walk-through guides.
|
||||
| [Python web crawler](/guides/python/python-crawl4ai) | Use Python, Crawl4AI and Playwright to create a headless web crawler |
|
||||
| [Sequin database triggers](/guides/frameworks/sequin) | Trigger tasks from database changes using Sequin |
|
||||
| [Stripe webhooks](/guides/examples/stripe-webhook) | Trigger tasks from incoming Stripe webhook events |
|
||||
| [Hookdeck webhooks](/guides/examples/hookdeck-webhook) | Use Hookdeck to receive webhooks and forward them to Trigger.dev tasks |
|
||||
| [Supabase database webhooks](/guides/frameworks/supabase-edge-functions-database-webhooks) | Trigger tasks using Supabase database webhooks |
|
||||
| [Supabase edge function hello world](/guides/frameworks/supabase-edge-functions-basic) | Trigger tasks from Supabase edge function |
|
||||
| [Using webhooks in Next.js](/guides/frameworks/nextjs-webhooks) | Trigger tasks from a webhook in Next.js |
|
||||
|
||||
Reference in New Issue
Block a user