Trigger hooks
Triggering tasks from your frontend application.
We provide a set of hooks that can be used to trigger tasks from your frontend application.
Demo
We’ve created a Demo application that demonstrates how to use our React hooks to trigger tasks in a Next.js application. The application uses the @trigger.dev/react-hooks
package to trigger a task and subscribe to the run in real-time.
Installation
Install the @trigger.dev/react-hooks
package in your project:
Authentication
To authenticate a trigger hook, you must provide a special one-time use “trigger” token. These tokens are very similar to Public Access Tokens, but they can only be used once to trigger a task. You can generate a trigger token using the auth.createTriggerPublicToken
function in your backend code:
These tokens also expire, with the default expiration time being 15 minutes. You can specify a custom expiration time by passing a expirationTime
parameter:
You can also pass multiple tasks to the createTriggerPublicToken
function to create a token that can trigger multiple tasks:
You can also pass the multipleUse
parameter to create a token that can be used multiple times:
After generating the trigger token in your backend, you must pass it to your frontend application. We have a guide on how to do this in the React hooks overview.
Hooks
useTaskTrigger
The useTaskTrigger
hook allows you to trigger a task from your frontend application.
useTaskTrigger
returns an object with the following properties:
submit
: A function that triggers the task. It takes the payload of the task as an argument.handle
: The run handle object. This object contains the ID of the run that was triggered, along with a Public Access Token that can be used to access the run.isLoading
: A boolean that indicates whether the task is currently being triggered.error
: An error object that contains any errors that occurred while triggering the task.
The submit
function triggers the task with the specified payload. You can additionally pass an optional options argument to the submit
function:
Using the handle object
You can use the handle
object to initiate a subsequent realtime hook to subscribe to the run.
We’ve also created some additional hooks that allow you to trigger tasks and subscribe to the run in one step:
useRealtimeTaskTrigger
The useRealtimeTaskTrigger
hook allows you to trigger a task from your frontend application and then subscribe to the run in using Realtime:
useRealtimeTaskTriggerWithStreams
The useRealtimeTaskTriggerWithStreams
hook allows you to trigger a task from your frontend application and then subscribe to the run in using Realtime, and also receive any streams that are emitted by the task.