Create tasks that are not exported from your trigger files but can still be executed.
Hidden tasks are tasks that are not exported from your trigger files but can still be executed. These tasks are only accessible to other tasks within the same file or module where they’re defined.
trigger/my-task.ts
Copy
Ask AI
import { task } from "@trigger.dev/sdk";// This is a hidden task - not exportedconst internalTask = task({ id: "internal-processing", run: async (payload: any, { ctx }) => { // Internal processing logic },});
Hidden tasks are useful for creating internal workflows that should only be triggered by other tasks in the same file:
trigger/my-workflow.ts
Copy
Ask AI
import { task } from "@trigger.dev/sdk";// Hidden task for internal useconst processData = task({ id: "process-data", run: async (payload: { data: string }, { ctx }) => { // Process the data return { processed: payload.data.toUpperCase() }; },});// Public task that uses the hidden taskexport const mainWorkflow = task({ id: "main-workflow", run: async (payload: any, { ctx }) => { const result = await processData.trigger({ data: payload.input }); return result; },});
You can also create packages of reusable tasks that can be imported and used without needing to re-export them:
trigger/my-task.ts
Copy
Ask AI
import { task } from "@trigger.dev/sdk";import { sendToSlack } from "@repo/tasks"; // Hidden task from another packageexport const notificationTask = task({ id: "send-notification", run: async (payload: any, { ctx }) => { await sendToSlack.trigger(payload); },});