workflow("hello-world-workflow", async ({ payload }) => {
const task = await step.custom(
"fetch-db-data",
async () => {
const taskData = db.fetchTask(payload.task_id);
return {
task_id: taskData.id,
task_title: taskData.title,
complete: taskData.complete,
};
},
{
outputSchema: {
type: "object",
properties: {
task_title: { type: "string" },
task_id: { type: "string" },
complete: { type: "boolean" },
},
required: ["task_id", "complete"],
},
}
);
await step.email(
"send-email",
() => {
return {
subject: `Task reminder for ${task.task_title}`,
body: "Task is not yet complete. Please complete the task.",
};
},
{
// Only send the reminder E-mail if the task is not complete
skip: () => !task.complete,
}
);
});