Make・n8n・ZapierでHTTPステップ1つでQRコードを作る
Make、n8n、ZapierのワークフローでQRコードを作るには、HTTPリクエストのステップを1つ追加し、行き先リンクと、ワークフローを起動したレコードのIDを付けてQR Maker REST APIにPOSTを送ります。レスポンスには印刷用の短縮リンクと、要求すればSVG画像が含まれます。IDのおかげでリクエストは再試行しても安全なので、同じレコードでワークフローが2回動いても、コードが2つできることはありません。
これらのツールにQR Maker専用のアプリはありません。なくても困りません。3つとも汎用のHTTPステップがあり、リクエストの内容はどのツールでも同じです。
リクエストの内容
- メソッド:
POST - URL:
https://qrmaker.ai/api/v1/qrcodes?include=svg - ヘッダー:
Authorization: Bearer qrs_your_tokenとContent-Type: application/json - ボディ:
{
"target_url": "https://shop.example.com/orders/10492",
"external_id": "order-10492",
"name": "Order 10492",
"folder": "orders"
}
target_url と external_id はトリガーからマッピングします。IDには注文番号、CRMのレコードID、イベント申込IDなど、そのレコードにとって安定して一意なものを使います。
レスポンスでは、data.short_link が印刷するコードにエンコードされるリンク、data.svg がSVGテキストの画像です。コードを保存しておきたい場合は data.id で識別できます。
APIはBusinessプランの機能です。各呼び出しの詳細はREST APIガイドで解説しています。トークンは「設定」の「API トークン」で作成し、ステップのボディに直接書かず、自動化ツールの認証情報やシークレットの保管機能に入れてください。
Makeの場合
HTTPモジュールの「Make a request」を追加します。メソッドをPOSTにしてURLを貼り付け、2つのヘッダーを加え、ボディの種類に「Raw」、コンテンツタイプにJSONを選び、前のモジュールのフィールドからボディを組み立てます。「Parse response」をオンにすると、後続のモジュールで data.short_link を使えます。トークンをシナリオに残さないためには、ヘッダーを手入力せずにモジュールのAPIキー認証を使い、ヘッダー名 Authorization、値 Bearer qrs_... のキーチェーン項目を作成します。HTTPアプリのバージョンによって、同じモジュールの認証オプションの場合と、「Make an API Key Auth request」という別モジュールの場合があります。
n8nの場合
HTTP Requestノードを追加します。POSTとURLを選び、Authenticationを「Generic Credential Type」にして「Header Auth」(名前 Authorization、値 Bearer qrs_...)を設定し、「Send Body」をオンにしてJSONを選び、各フィールドには {{ $json.order_id }} のような式を使います。解析済みのレスポンスは、次のノードで {{ $json.data.short_link }} として使えます。
Zapierの場合
「Webhooks by Zapier」の「Custom Request」アクションを使います(Zapierの有料プランで利用可能)。POSTを選んでURLを貼り付け、DataフィールドにJSONを入れてトリガーのフィールドをマッピングし、2つのヘッダーを追加します。後続のステップでは、レスポンスの data short_link を使えます。
結果の使い道
- メールやメッセージで送る。 本文に短縮リンクを入れ、SVGを添付するか埋め込みます。多くのメールソフトはインラインSVGを表示しないので、メールではコードへのリンクにするか、後のステップでSVGをPNGに変換するほうが安全です。
- ファイルストレージに保存する。
data.svgをorder-10492.svgという名前でGoogleドライブ、Dropbox、S3に書き込みます。SVGはどのサイズでも鮮明に印刷できます。 - 元のレコードに書き戻す。 ワークフローを起動した注文、連絡先、行に
data.short_linkを保存しておけば、後でコードを見つけられます。
IDが重要な理由
自動化は再試行します。トリガーが2回発火することも、失敗した実行を手動でやり直すこともあります。同じ external_id と同じリンクを送ると、APIはすでに作ったコードを、201ではなくステータス200で返します。同じIDに別のリンクが届いた場合、APIは409を返して何も変更しません。印刷済みのコードが誤って移動されることは決してありません。
コードの行き先を変えるには、別のステップを追加して PATCH https://qrmaker.ai/api/v1/qrcodes/by-external-id/order-10492 に { "target_url": "..." } を送ります。
スキャンに反応する
Webhookはありません。コードがスキャンされたときにワークフローを起動するには、スケジュールトリガーで毎分 GET https://qrmaker.ai/api/v1/scans?since_id=... を呼び出し、レスポンスの next_since_id を保存して、次回 since_id として渡します。各イベントにはコード、あなたの external_id、時刻、国、端末が含まれます。新しいスキャンがないレスポンスは月間の利用枠にカウントされません。
制限
Businessプランには月50,000回の成功リクエストが含まれ、1分あたり120回まで送れます。注文ごとにコードを1つ作るワークフローなら、注文1件につき1リクエストです。毎分のスキャン確認は、スキャンが絶え間なく届いても月最大約43,000リクエストで、通常はずっと少なくなります。
よくある質問
QR MakerのZapier・Make・n8n用アプリはありますか?
ありません。各ツールの汎用HTTPステップで専用アプリと同じことがすべてでき、リクエストもPOST 1回だけです。
SVGではなくPNGを受け取れますか?
APIはSVGだけを返します。行き先でPNGが必要なら、画像変換モジュールや小さなコードステップを使って、後のステップで変換してください。
リンクが拒否されたらどうなりますか?
APIは安定した code を持つエラーを返します。リンクが有効なhttp/httpsアドレスでなければ400と INVALID_TARGET_URL、別のURL短縮サービスへのリンクなど行き先が安全チェックで拒否されれば403と URL_BLOCKED_ で始まるコードです。エラー処理の分岐では、メッセージの文面ではなくこのコードで振り分けてください。