Zapierから他サービスのAPIをWebhookを使って呼び出す - Part.1

2 min read

はじめに

この記事は こちらの記事 の続編で、NotionのAPI呼び出しを、コードではなくWebhookで呼び出す方法をまとめたものです。
なお、Webhookによる呼び出しはZapierの有料プランでしか利用できませんのでご注意ください。

実行日時の取得

前回作成したZapでは現在の日付をPythonのコードで取得・フォーマットし、期限切れの判定で使用していました。それに代わるActionとしてFormatを利用します。

  • ActionのApp EventにFormatを選択します。
  • Action EventにはDate/Timeを選択します。
  • TransformにはFormatを選択し、InputにはPretty Dataを選択します。
  • To FormatにはYYYY-MM-DD(2001-01-22)を選択します。サンプル表示されている日付が謎ですがこれで大丈夫です。
  • Timezoneの指定があれば以降で指定します。
  • Test & Reviewをクリックし、ハイフン区切りの日付がoutputに設定されていればOKです。

Action設定

続いてPythonのコードの代替となるWebhookの設定を行います。

  • ActionのApp Eventにwebと入力してWebhooks by Zapierを選択します。

  • Action EventにはCustom Requestを選択します。

  • MethodにPOSTを、URLにはhttps://api.notion.com/v1/databases/{id}/queryのフォーマットで入力します。{id}の部分はアクセス先のDB_IDに書き換えてください。

  • Dataには以下を設定します。

    {
        "filter": {
    	"and": [
    	{
    	    "property": "ステータス",
    	    "select": {
    		"does_not_equal": "完了"
    	    }
    	},
    	{
    	    "property": "期日",
    	    "date": {
    		"before": "{実行日時の取得ステップのoutput}"
    	    }
    	}
    	]
        }
    }
    

  • Headersには以下を指定します。

    key value
    Authorization Bearer secretで始まるNotionで発行したトークン
    Notion-Version 2021-08-16
    Content-Type application/json

  • Test & ReviewをクリックしてNotionからデータが取得できればOKです。

なお、Pythonのコードを上記に置き換えたことで、前回設定した Filter や Format のステップも若干修正が必要となります。詳細は こちらの記事 を参照してみてください。

まとめ

以上、Zapierを使って、他サービスのAPIをWebhookを使って呼び出す方法のご紹介でした。
有料プランでしか利用できない機能ですが、コードを書く場合に比べてメンテナンス性に優れていますし、呼び出し方さえ覚えておけばさまざまな場面・サービスに応用ができると思います。
みなさんの業務効率化に役立てられれば幸いです。それではよいZapierライフを!

関連記事

https://zenn.dev/mogukones/articles/ad3e5f33a44453
https://zenn.dev/mogukones/articles/6b8b43debff017

Discussion

ログインするとコメントできます