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
})
});