ふと思った

Notionに家族で使う買い物リストを用意しているんですが、アレクサ経由で入れたいなと。
音声入力でさくっと済ませたいと思ったわけです。

例

「アレクサ、買い物リストにバナナを追加して」
→ Notionの買い物リストにバナナが入る

実は昔やっていた

以前は、アレクサの買い物リスト ⇔ Todoist ⇔ Make ⇔ Notion という繋ぎ方で実現していました。
その後、アレクサ側の仕様変更で、買い物リストを外部に繋げることができなくなり終了したという、悲しき思い出。

🔗 20230620 アレクサの買い物リストをNotionで使いたい
🔗 20250124 アレクサ Listスキル終了(昨年7月)

改めて調べる

仕様変更で繋がらなくなったときにいろいろ調べたんですけど、良い代替案が見付からなかったんですよね。
ただ、あれから時間もずいぶん経ったことだし・・・ということで改めて調べてみたところ、アレクサの中で動かすアプリ(アレクサスキル)を自作できることが判明。

では、のっちーに作ってもらいましょう。

ざっくりフロー

こんな形のものを作りましょう。
アレクサ(Echo)に呼びかけたら動く形。

flowchart TD U[ユーザー] -->|声で依頼| E[Echo] E -->|音声を送信| A[Alexaスキル] A --> O{操作を選ぶ} O -->|登録| R1[商品名を受け取る] R1 --> R2[Notionに未購入商品として登録] R2 --> R3[登録結果をEchoで案内] R3 --> E O -->|削除| D1[商品名を受け取る] D1 --> D2[Notionで未購入商品を検索] D2 --> D3[購入済みに変更] D3 --> D4[削除結果をEchoで案内] D4 --> E O -->|確認| C1[Notionから未購入商品を取得] C1 --> C2[未購入商品をEchoで読み上げ] C2 --> E E -->|音声で結果を伝える| U

やること

  1. 🔗 Amazon Developers でアカウント作成
  2. Notionの設定とID等取得
  3. スキルの作成とテスト

1. Amazon Developersでアカウント作成

🔗 Amazon Developersにアクセスして、アカウトを作成します。
スキルは公開せず自分しか使わない場合は、普段使っているAmazonのアカウントを使うのが良いようです。 私はそうしました。

いつものAmazonアカウントでサインインすると、個人なのか企業での開発なのか、連絡先等々の登録があります。
良きように情報を入力して進めます。

2. Notionの設定とID等取得

Notion開発者ツール
Notion側との連携ができるよう、事前に設定をしておきます。

Notion新規コネクト
わかりやすいコネクト名を入れて「コネクトを作成」を選択します。

生成したあと、そのコネクトのインテグレーショントークンという文字の羅列(共有厳禁)をメモ。
アクセス可能なコンテンツを設定し、そのIDをメモ。 今回は買い物リストというDBが対象。

Notion全体がAlexaからアクセスできちゃうとセキュリティ上の問題が出ますので、このようにアクセスできるところを限定するわけです。

3. スキルの作成とテスト

Amazon Developers
Amazon Developersのトップ画面です。
右上にあるコンソールから中に入ることができます。

Alexa Skills Kit
コンソール内にメニューがたくさんあります。
今回選ぶのは「Alexa Skills Kit」です。

スキル一覧画面
キャプチャ画像はすでにスキルを作ったあとですが、初回は「スキルの作成」を選択します。

メニュー画面
普段使うのは「ビルド」、「コードエディタ」、「テスト」です。

ビルド

面倒になったのでスクリーンショットを省きます。
ここでは、スキルの名前(呼ぶときに使う)や、スキル実行中にどういうセリフで動作させるかを設定します。
設定が完了したら、「Save」→「Build skill」でビルドします。

コードエディタ

  • Skill Code
    • lambda ※ここから下のファイルを用意します。
      • .env(Notionと繋ぐときのToken番号、買い物リストのIDを保管)
      • index.js(Skillの心臓、動作用のプログラムになります)
      • package.json(Skillの名前、バージョン等の情報を管理)
      • … (あとは必要に応じて)

コードを書き換えたら、ファイルごとに「保存」して、最後に「デプロイ」で完成です。

テスト

Alexaの実機テスト前にシミュレーターを使ってテストができます。
ステージは「開発中」にしておきます。

ここでうまく動かなかったら、ビルドやコードエディタに戻って修正。

ビルドを修正したら「Build skill」で再ビルド。
コードエディタを修正したr「デプロイ」を行います。
修正したほうだけやればいいので、毎回ビルドとデプロイをやり直す必要はありません。

テスト
こんな感じでテストします。

はじめ、「アレクサ、ノーションにバナナを追加して」とやったんですがうまくいかず。

どうやらここのシミュレーターは「●●スキル(を起動)」とスキルを起動してから操作するための文言「バナナを登録して」を入れないといけないそうです。

何度か試して良さそうかなとなったら実機で行って最終調整です。

実機テスト

アレクサ標準機能が邪魔をする

「アレクサ、ノーションにバナナを追加(登録)して」と言うと、 3回に1回は誤動作します。

アレクサの標準機能に持っていこうとする力が強いのです。 そして、それは無効化ができない。

  • 「追加して」で、アレクサのリスト機能が動作
  • 「登録して」で、アレクサの付箋機能が動作

かなりストレスが溜まるので、一発操作は諦めました。 しばらく頑張った。

テストと同じようにスキルを起動してから操作することにしました。
ひと手間(声)増えますが、安定して動作するほうが良いです。

しばらくこれで様子をみましょう。

Notion AI

途中で書いた通り、設計からコード生成までのほとんどをのっちー(Notion AI)に任せました。

コードは節約のためにお安いモデルのGPT-5.6 Luna(High)、DeepSeek V4 Flash(High)をメインにしつつ、手こずったところはGLM 5.2で。 GLM 5.3がなかなか来ないな・・・。
これらでうまくいかなかったらKimi K3かなと思っていましたが、出番はありませんでした。

どのモデルが良いのか

高機能モデルの思考レベル最高でぶん回せれば何も考えなくて良いのですがね。 1カ月前はそれができた・・・。

よくやることやよく使うスキルを、いくつかのモデルで、思考レベルを変えながら実際に試して比較するのが一番ですね。
私も検証用のページを用意してまとめたりしています。

先日、公式でこのようなものを用意してくれたのもありがたかったです。

🔗 Knowledge Board
Trade-off frontier
集計および反映に少し時間がかかると中の人が言っていたので、先日追加されたばかりのDeepSeek V4 Flashとか入っていません。
それでもNotionで利用するにあたっての目安としてとても参考になっています。
これを見て、GPT-5.6 Luna、GLM 5.2、Kimi K3の利用が増えました。あと、DeepSeek V4 Flashも。