本日が期限のタスクについて、各チームメンバーに毎日メールでリマインダーを送信します。
このワークフローはスケジュールで実行され、以下を実行します:
- すべてのワークスペースメンバーを取得
- 各メンバーを順に処理
- 各メンバーの本日が期限のタスクを検索
- 整形し、パーソナライズされたメールを送信
ステップバイステップの設定
ステップ 1: トリガーを設定
- 「Settings → Workflows」に移動し、新しいワークフローを作成します
- トリガーとして「On a Schedule」を選択します
- 毎日 8:00 の cron 式を使用します:
0 8 * * *
ステップ 2: すべてのワークスペースメンバーを検索
- 「Search Records」アクションを追加します
- 「Workspace Members」(advanced objects 内)を選択します
- フィルターは不要です—すべてのメンバーが取得されます
ステップ 3: Iterator を追加
- 「Iterator」アクションを追加します
- 入力配列を前のステップのワークスペースメンバーに設定します
- Iterator 内のすべてのアクションはメンバーごとに1回実行されます
ステップ 4: 本日が期限のタスクを検索(Iterator 内)
- Iterator 内で「Search Records」アクションを追加します
- オブジェクトとして「Tasks」を選択します
- フィルターを追加:
- Assignee = 現在のワークスペースメンバー(Iterator から)
- Due Date = 今日
ステップ 5: タスクをメール本文に整形(Iterator 内)
タスクをリンク付きの読みやすいリストに整形するために「Code」アクションを追加します:
export const main = async (params: {
tasksDue?: Array<{ id: string; title: string }> | null | string;
}) => {
const tasksDue =
typeof params.tasksDue === "string"
? JSON.parse(params.tasksDue)
: params.tasksDue;
if (!Array.isArray(tasksDue) || tasksDue.length === 0) {
return {
formattedTasks: "No tasks due today."
};
}
const formattedTasks = tasksDue
.map(
t =>
`${t.title}\nhttps://yourSubDomain.twenty.com/object/task/${t.id}`
)
.join("\n\n");
return { formattedTasks };
};
yourSubDomain を実際の Twenty ワークスペースのサブドメインに置き換えてください。
ステップ 6: メールを送信(Iterator 内)
- 「Send Email」アクションを追加します(引き続き Iterator 内)
- 設定:
| フィールド | 値 |
|---|
| 宛先 | {{iterator.currentItem.userEmail}}(ワークスペースメンバーのメールアドレス) |
| 件名 | 本日が期限のタスク |
| 本文 | {{code.formattedTasks}} |
ステップ 7: テストして有効化
- ワークフローを手動で実行するには「Test」をクリックします
- 受信トレイでメールを確認します
- ワークフローを有効化します