Integromatでメールの添付ファイルをファイル名ごとにフォルダ分けしてOneDriveに自動保存

Integromatを使って

「特定のアドレス宛に送ったメールの添付ファイル(出荷伝票)を、添付ファイル名ごとのフォルダに仕分けてOneDriveに自動保存」
がやりたいのですが、フォルダに仕分けるところでつまづいています。。

こんな感じです。


メール1
送信先:example@email.com
添付ファイル:取引先A.pdf

メール2
送信先:example@email.com
添付ファイル:取引先B.pdf

メール3
送信先:example@email.com
添付ファイル:取引先C.pdf


メールN
送信先:example@email.com
添付ファイル:取引先N.pdf

※上記を毎週送信します。
※ちなみに宛先が同じなのは、そこ経由でネットファックスを送信するためです。


Onedrive
└ 出荷伝票
├ 取引先A
│ └ 取引先A.pdf
│ └ 取引先A1.pdf
│ └ 取引先A2.pdf
├ 取引先B
│ └ 取引先B.pdf
│ └ 取引先B1.pdf
│ └ 取引先B2.pdf
├ 取引先C
│ └ 取引先C.pdf
│ └ 取引先C1.pdf
│ └ 取引先C2.pdf
以下略

↑こういう状態にしたいです。


Integromatの「Save attachments from new Email to Onedrive」というテンプレートを使って、送信済みフォルダを参照し、OneDriveに添付ファイルを保存するところまではできたのですが、フォルダに仕分ける方法がわかりません。

あと、欲を言えば、添付ファイル名にメールを送信した日付をつけて、
取引先A_20210708.pdf
とかにできたら最高です。が、、そこまでできるのかはてなです。。

Integromat得意な方、教えていただけないでしょうか。
よろしくお願いいたします。

「いいね!」 1

ファイル場所の指定は、Router で分岐をつくると可能になります。
そのための条件は、Fileterのところで分岐が可能です。

【参考】How to Use Filters to Specify What Type of Data is Sent to a Particular Route

添付ファイル名にメールを送信した日付をつけて、
取引先A_20210708.pdf

Gmail取得時にDateフィールドがあるので、

取引先 + Date のような形にすればOKです。
フォーマットはformatdate 関数があるので、そちらを Date で括ってあげれば良いと思います。

例えば、取引先A formatDate ( “date” ; YYYYMMDD) という感じに入れます。

Formatdate関数の場所

できました!!!
丁寧に教えていただきありがとうございました!

ファイル名の追加もできました!

あと、新規の取引先が出てきた場合も、保存先フォルダ名をAttachment>Nameにしておけば、勝手に新規の取引先名でフォルダを作成した上で保存してくれるんですね。
これもできたらやりたいと思ってたことなので、できて嬉しいです!

Integromatすごい!!! :flushed: :flushed:

「いいね!」 1

うおおー、良かったです:blush:
頑張ってくださいねー。

「いいね!」 1

すみません、これの受信版をやりたいのですが、つまづいてしまい、、
下記、教えてもらえませんか?

■やりたいこと
自社に届いたFAXを、送信元ごとにフォルダ分けしてOneDriveに保存したい

■前提:
・自社宛に届いたFAXは、fax@example.comからfaxjushin@email.comへ添付ファイルとして送信される。
・このメールの件名は10桁の送信元FAX番号から始まる
・D列に取引先名、E列に取引先のFAX番号を記載したエクセルファイルがOneDrive上にある

■仕様:
fax@example.comからfaxjushin@email.comへ届いたメールの添付ファイルを

  1. 送信元のFAX番号がエクセルのE列に登録されている場合は「受信FAX>売り立て伝票」内に対応する取引先名(D列)でフォルダを作成し保存
  2. FAX番号がエクセルに登録されていない場合は「受信FAX>未分類」内にFAX番号でフォルダを作成し保存
    ※1,2ともにフォルダが既にある場合はそこに格納する
    ※ファイル名は「取引先名_受信日時(YYYYMMDD).pdf」または「送信元FAX番号_受信日時(YYYYMMDD).pdf」とする

■ファイル構成イメージ
OneDrive/
└受信FAX
├ 売立伝票/
│ ├ 取引先A
│ │ ├ 取引先A_20210709.pdf
│ │ ├ 取引先A_20210810.pdf
│ │ └ 取引先A_20210911.pdf
│ ├ 取引先B
│ │ ├ 取引先B_20210709.pdf
│ │ ├ 取引先B_20210810.pdf
│ │ └ 取引先B_20210911.pdf
│ └ 取引先C
│ ├ 取引先C_20210709.pdf
│ ├ 取引先C_20210810.pdf
│ └ 取引先C_20210911.pdf
└ 未分類/
├ 111111111
│ ├ 111111111_20210709.pdf
│ ├ 111111111_20210810.pdf
│ └ 111111111_20210911.pdf
├ 222222222
│ ├ 222222222_20210709.pdf
│ ├ 222222222_20210810.pdf
│ └ 222222222_20210911.pdf
└ 333333333
├ 333333333_20210709.pdf
├ 333333333_20210810.pdf
└ 333333333_20210911.pdf

■教えて欲しいこと
送信の時と異なり、ファイル名がそのまま取引先名ではないので、エクセルを参照してFAX番号と対応する取引先名を利用すればいいのかなと思ったのですが、そのやり方がわからず。。

FAX番号を取得するのは、substring(メールの件名;0;10)でやればいいというのはわかりました。

よろしくお願いいたします。

つまりExcel のE列にある、Fax番号から、D列の取引先を探しそこの取引先に応じて、格納ファイルを分岐すれば良いのですね?

であれば、該当のカラムを判別するために、Search Moduleを1つ余分に追加する必要があります。
Search Moduleは、指定された範囲の列の中に該当のカラムを取得します。

例では、Google Search で実装してます。
A列に顧客名
F列に顧客FAX番号 があります。

Input は、今回固定で123 としてますが、事前のモジュールである、substring(メールの件名;0;10)を入れてあげれば同じことが可能です。

Microsoft 365のアカウントを持ってないので、検証ができないのですが、
Watch Table Rows かSearch Workbooksあたりで実装できると思います。
Microsoft 365 Excel (OneDriveではなく)

「いいね!」 1

ありがとうございます!
教えてもらった方法でできました!

エクセルでも試したのですが、なかなかうまくいかなかったので、
結局スプレッドシートで実装しました。

integromatにも徐々に慣れられていい経験でした!


エクセルの場合、Rowを参照するためには、
そのままではできなくて、
Tableのスタイルに加工しないといけないんですね。
これ案外落とし穴な気がするので情報として載せておきます。

「いいね!」 1

良かったです~~^^

「いいね!」 1