繰り返しでメール送信
この記事では、Excelファイルに記載されたアドレスに対してメールを自動送信するワークフローの作り方について説明します。
まず、「GetFile」アクションをドロップします。
ファイル(ID、ファイル名)にlocalのストレージにあるファイルのIDを入力します。ストレージプロバイダはlocalと入力します。

読み込んだExcelシート内のデータを範囲指定で取得します。
※該当の取得箇所
キーにrowsを入力します。これで、直前の「SelectSheet」アクションのアウトプットのオブジェクトの中のrowsの値が取り出せます。この値は、「GetValueWithKey」アクションのアウトプット(Anything)として出力されます。
次に、「StoreValue」アクションをドロップします。
変数名にrowNumを指定します。変数名は任意に設定できます。値には直前の「GetValueWithKey」アクションのアウトプットの値を設定します。これで、rowNumを以降のアクションで変数のように扱うことができるようになりました。

${変数名}の表記で、変数に格納した値を使用することができます。これでデータ数が増減しても動的に対応することができます。このケースでは、A2:C4の範囲のデータが二次元配列として取得できました。
Excelシートから取得したリストに記載されている全てのアドレスにメールを送信します。

要素を格納する変数名はitemと入力しました。名前は任意で設定できます。
これで、配列listに格納された要素を1つずつ取り出し、itemとして利用できます。
以降は、「ForEach」アクションの中に繰り返し処理するアクションを設置していきます。
「GmailSend」アクションを、「ForEach」アクションの中にドロップします。
各パラメータには下記の通りに設定します。
【送信先のアドレス】${item[2]["text"]}
【件名】メールテスト
【本文】${item[1] + "さん テストメールです"}
【プロバイダーID】右側のリンクボタンからコネクションに紐付けたGmailアカウントを連携します。
※変数の使い方について
「1.繰り返しを設定する」で説明した通り、itemにはExcelシートから取得したテーブルデータの中の1つの行レコードが入っています。
具体的にはitemの中身は次のようになっています。
[ "株式会社A", "田中", {"text":"xxxxx@xx.xx","hyperlink":"mailto:xxxxx@xx.xx"} ]
このレコードから情報を取得する場合、変数名itemを利用して以下のように指定します。
会社名:${item[0]}
氏名:${item[1]}
アドレス:${item[2]["text"]}
アドレス指定の考え方はオブジェクト/JSONをご参照ください。
最後に、保存して実行します
# ファイルを取得 +get_file_1: action>: GetFile provider: local filename: '' meta: display: # ワークシートを選択 +select_sheet_1: action>: SelectSheet filename: +get_file_1 sheetname: list # オブジェクトのキーの値を取得 +get_value_with_key_1: action>: GetValueWithKey object: +select_sheet_1 key: rows # 変数に保存 +store_value_1: action>: StoreValue key: rowNum value: +get_value_with_key_1 # 範囲を読み込む +read_range_1: action>: ReadRange worksheet: +select_sheet_1 range: 'A2:C${rowNum}' # 変数に保存 +store_value_2: action>: StoreValue key: list value: +read_range_1 # 各要素について繰り返す +for_each_1: for_each>: item: ${list} _do: # Gmailを送信する +gmail_send_1: action>: GmailSend provider: '' to: ${item[2]["text"]} subject: 'メールテスト' body: ${item[1] + "さん テストメールです"} attachments: '' from: '' meta: display: