🏠 PA45トップ› 第30回 資料› ハンズオン手順
PA45 第30回|ハンズオン手順

Teamsの頼まれごとを1クリックでTo Doに入れるTeams のメッセージの「…」から押すと、その文が To Do のタスクになります。期限は押したときにカードで選び、選ばなければ3日後。最後にフロー ボットが「追加しました」と返します。

今日つくるもの: Teams のメッセージの「…」のメニューから押すと、期限を選ぶカードが出て、メッセージの文をタイトルにした To Do のタスクができ、フロー ボットから確認が届くフロー。
💬 manual=選択されたメッセージに対して(カードで期限)→ ✅ To Do を追加する (V3)(空なら3日後)→ 📨 フロー ボットで「追加しました」
■ 今回の考え方(スライドの考え方①〜⑤)
🔰 初参加の方へ: ここから始めて大丈夫です。用意するものはありません。Teams と To Do が使える会社・学校のアカウントがあれば作れます。
準備

練習用に、自分あてのチャットに頼まれごとを2つ書く(2分)

🧑‍💼 オートさん「なぜ」:課長のメッセージで試すと、課長に通知が飛ぶかもしれない。自分あてなら気兼ねなく何度でも押せるから

  1. Teams で自分とのチャット(またはチームの練習用チャネル)を開きます。
  2. 次の2つを送ります:見積書、金曜までにお願いします / 議事録の共有、手が空いたらでいいよ
準備

Copilot に、カードの JSON と期日の式を1回で作ってもらう

🧑‍💼 オートさん「なぜ」:カードの形と期日の決まり(空なら3日後)は、日本語で伝えれば Copilot が作れる。先に用意しておけば、あとは貼るだけになる

ブラウザの別タブで M365 Copilot チャット(m365.cloud.microsoft/chat)を開きます。

  1. 下の指示をコピーして、1回送ります。
  2. ①カードの JSON と ②期日の式 の2つが返ってきます。このタブは開いたままにしておきます。
Power Automate で使うものを2つ作ってください。説明は不要で、2つだけ返してください。

① Teams のアダプティブ カードの JSON(バージョン 1.4)
・見出し:To Do に追加します
・入力1:期限(日付を選ぶ)。id は dueDate。ラベルは「期限(空なら3日後)」
・入力2:重要度(高・標準・低から1つ)。id は importance。値は high / normal / low。初期値は normal
・入力3:メモ(複数行・空でもよい)。id は memo
・ボタンは「追加する」1つ

② To Do の「期日」に入れる式を1行で
・triggerBody()?['cardOutputs']?['dueDate'] が空なら今日から3日後、入っていればその日
・形は yyyy-MM-ddT00:00:00

①カードの JSON の見本(Copilot の答えがうまくいかないとき・時間がないときはこちら):

{
  "type": "AdaptiveCard",
  "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
  "version": "1.4",
  "body": [
    { "type": "TextBlock", "text": "To Do に追加します", "weight": "Bolder", "size": "Medium" },
    { "type": "Input.Date", "id": "dueDate", "label": "期限(空なら3日後)", "isRequired": false },
    { "type": "Input.ChoiceSet", "id": "importance", "label": "重要度", "style": "expanded", "value": "normal",
      "choices": [
        { "title": "高", "value": "high" },
        { "title": "標準", "value": "normal" },
        { "title": "低", "value": "low" }
      ] },
    { "type": "Input.Text", "id": "memo", "label": "メモ", "isMultiline": true, "isRequired": false }
  ],
  "actions": [
    { "type": "Action.Submit", "title": "追加する" }
  ]
}

②期日の式の見本:

if(empty(triggerBody()?['cardOutputs']?['dueDate']), addDays(utcNow(), 3, 'yyyy-MM-ddT00:00:00'), concat(triggerBody()?['cardOutputs']?['dueDate'], 'T00:00:00'))
STEP 1

フローを作る(トリガー=選択されたメッセージに対して)

🧑‍💼 オートさん「なぜ」:頼まれたメッセージを、自分で選んで押したい。メッセージの「…」から押せるのは「選択されたメッセージに対して」のトリガーだから

Power Automate で 「作成」→「インスタント クラウド フロー」を選びます。フロー名がそのまま Teams のメニューに出るので、短く分かる名前にします。

  1. フロー名は To Do に入れる。
  2. トリガーの一覧から Teams の「選択されたメッセージに対して (V2)」を選んで「作成」(キャンバスでは manual と表示されることがあります)。
  3. 画面左上の環境が既定の環境になっているか確かめます(Teams のメニューに出るのは既定の環境のフローだけ)。
STEP 2

トリガーに、Copilot の①のカードを貼る

🧑‍💼 オートさん「なぜ」:押した瞬間に、期限・重要度・メモを選びたい。トリガーには、押した人に入力してもらうカードを付けられるから

アダプティブ カード=Teams に出せる、入力欄やボタンの付いた小さな画面。

  1. トリガーをクリック →「アダプティブ カード の作成」(最初は見本の「アンケートのお願い」が出ています)。
  2. 下へスクロールし、CARD PAYLOAD EDITOR の右の ⊞ で欄を開く → 中をクリック → Ctrl+A → Copilot の①を貼る。
  3. プレビューに期限・重要度・メモのカードが出たら「カードの保存」→ フローの「保存」。
💡 id が、そのまま動的コンテンツの名前になります。 入力欄に付けた dueDate・importance・memo は、押した人が入れた値と一緒にトリガーの出力(cardOutputs)に入ります。後ろのアクションでは ⚡ のいちばん下に body/cardOutputs/dueDate のように名前で出てきます。
STEP 3

To Do を追加する(5つの欄を、前のステップの値で埋める)

🧑‍💼 オートさん「なぜ」:書き写していた内容は、全部前のステップにある。タイトルは Teams のメッセージ、期日は②の式、重要度とメモはカードから

  1. トリガーの下の + → to-do で検索 → Microsoft To-Do (仕事) の「To Do を追加する (V3)」。
  2. To Do リスト:タスク
  3. タイトル:⚡ → manual の下の「プレーン テキスト形式のメッセージの内容」
  4. 期日:欄で半角の / →「式を挿入する」→ Copilot の②を貼って、左下の「追加」
  5. 重要度:⚡ →「表示数を増やす」→ いちばん下の body/cardOutputs/importance
  6. 本文 コンテンツ:最初の「項目のコンテンツです。」を消して、⚡ body/cardOutputs/memo
⚠️ 「to-do」で検索すると、コネクタが2つ出ます。 会社・学校のアカウントで使うのは Microsoft To-Do (仕事) の「To Do を追加する (V3)」です。Microsoft To-Do (コンシューマー)(「To Do の追加」・(V3) なし)は個人用の Microsoft アカウント向けなので選びません。

②期日の式の読み方:

部品意味
if(条件, A, B)条件が正しければ A、ちがえば B
empty(…dueDate)カードの日付が空か(条件)
addDays(utcNow(), 3, 'yyyy-MM-ddT00:00:00')空のとき:今日+3日
concat(…dueDate, 'T00:00:00')選んだとき:日付に時刻を足す(To Do の期限の形)
STEP 4

フロー ボットから「追加しました」と返す

🧑‍💼 オートさん「なぜ」:押したあと、Teams は何も言わない。入ったかどうかを、その場で知りたいから(Learn もこの形をすすめています)

  1. To Do のアクションの下の + → Teams の「チャットまたはチャネルでメッセージを投稿する」。
  2. 投稿者:フロー ボット / 投稿先:フロー ボットとチャットをする / Recipient:自分のアドレス。
  3. メッセージ:To Do に追加しました: と打ち、⚡ から To Do の「タイトル」。
STEP 5

保存して、Teams のメッセージから押す(2回)

🧑‍💼 オートさん「なぜ」:このフローの入口は Teams の「…」。日付を選んだときと選ばないときの両方を確かめる

  1. 右上の「保存」。
  2. Teams で 見積書、金曜までにお願いします の「…」→「To Do に入れる」→ カードで日付を選んで「追加する」。
  3. 議事録の共有、手が空いたらでいいよ で同じように押し、今度は日付を選ばずに「追加する」。
  4. To Do の「タスク」に2件。期限が「選んだ日」「3日後」になっていて、フロー ボットから「追加しました」が届けば完成です。
⚠️ 「…」にフローが出ないとき: 作った直後は、デスクトップ版の Teams に出ないことがあります。ブラウザで Web 版の Teams(teams.cloud.microsoft)を開いて、同じメッセージの「…」から押します。それでも出ないときは ①保存したか ②既定の環境か を確かめます。
+

Copilotに聞くときの型(そのまま貼れます)

手を動かすのは自分、分からないところだけ聞く、という使い方です。M365 Copilot チャットに貼ってください。

① 返ってきた式の意味を、日本語で説明してもらう

Power Automate のこの式を、プログラミングを知らない人向けに説明してください。

if(empty(triggerBody()?['cardOutputs']?['dueDate']), addDays(utcNow(), 3, 'yyyy-MM-ddT00:00:00'), concat(triggerBody()?['cardOutputs']?['dueDate'], 'T00:00:00'))

② 決まりを変えたいとき(例:3日後ではなく次の金曜)

Power Automate の式を1行で教えて。
triggerBody()?['cardOutputs']?['dueDate'] が空なら、次の金曜日を yyyy-MM-ddT00:00:00 の形で返したい。

③ エラー文は、訳さずそのまま貼る

Power Automateでこのエラーが出ました。

(エラー文を全文そのまま貼る)

意味と、どこを直せばよいかを教えてください。
⚠️ 貼る前に一度だけ確認: 社名・氏名・取引先が混ざっていないか見てください。混ざっていたら、架空の名前に置き換えてから貼ります。
← 第30回の資料にもどる 🏠 サイトのトップへ