RORK LABEN
TOOLING — Rorkの開発者向けリポジトリが動き続けています。rork-xcodeが7月16日、rork-deviceが7月15日、rork-plistが7月13日に更新されましたOPUS46 — RorkでClaude Opus 4.6が稼働しています。Rork MaxはClaude Codeを土台にアプリを組み立てる設計ですSIM — ブラウザ上で動くクラウドのiOSシミュレータを備え、実機へのインストールは1クリック、App Storeへの提出は2クリックと案内されていますMAX — Rork MaxはReact Nativeではなく純粋なSwiftを出力します。iPhone・iPad・Apple Watch・Apple TV・Vision Pro、そしてiMessageまでが射程ですNATIVE — HealthKit、ARKitとLiDAR、NFC、Dynamic Island、Live Activities、Metalによる3D、Core MLのオンデバイス推論まで扱えますSEED — RorkはLeft Lane Capitalが主導する1,500万ドルのシードラウンドを実施し、Peak XVとa16z Speedrunが参加しましたTOOLING — Rorkの開発者向けリポジトリが動き続けています。rork-xcodeが7月16日、rork-deviceが7月15日、rork-plistが7月13日に更新されましたOPUS46 — RorkでClaude Opus 4.6が稼働しています。Rork MaxはClaude Codeを土台にアプリを組み立てる設計ですSIM — ブラウザ上で動くクラウドのiOSシミュレータを備え、実機へのインストールは1クリック、App Storeへの提出は2クリックと案内されていますMAX — Rork MaxはReact Nativeではなく純粋なSwiftを出力します。iPhone・iPad・Apple Watch・Apple TV・Vision Pro、そしてiMessageまでが射程ですNATIVE — HealthKit、ARKitとLiDAR、NFC、Dynamic Island、Live Activities、Metalによる3D、Core MLのオンデバイス推論まで扱えますSEED — RorkはLeft Lane Capitalが主導する1,500万ドルのシードラウンドを実施し、Peak XVとa16z Speedrunが参加しました
記事一覧/開発ツール
開発ツール/2026-04-25中級

RorkアプリにZapierを繋ぐ — バックエンドなしでユーザー通知・データ連携を自動化する方法

Rorkで作ったアプリにZapierを連携させ、ユーザー登録メール・フォームデータ保存・購入通知などをバックエンドなしで自動化する方法を実例コード付きで解説します。

ZapierWebhook2自動化12バックエンド10ノーコード連携

Rorkでアプリを作り終えて「よし、公開しよう」と思ったとき、ふと気づくことがあります。「ユーザーが登録したら welcome メールを送りたい」「フォームの内容を Notion に保存したい」「購入が完了したら Slack に通知したい」——これらは全部、いわゆる"バックエンド処理"です。

Supabase や Firebase を使えば解決できますが、それなりに設定が必要で、コードも書かなければなりません。個人開発で「そこまでやりたくない」と感じるのは正直なところではないでしょうか。

そこで試してほしいのが Zapier との連携です。Rork の Webhook 機能と組み合わせることで、バックエンドをほとんど書かずに多くの自動化が実現できます。今回は実際に動作するコード例を交えながら、その仕組みと具体的なユースケースを紹介します。

ZapierとRorkの連携は「Webhook」が橋渡し

ZapierはSaaSツール同士を繋ぐ自動化プラットフォームです。「トリガー(何かが起きたとき)」→「アクション(何かをする)」という形式でワークフローを定義します。

Rorkアプリから Zapier を動かすには、Zapier の「Webhooks by Zapier」トリガーを使います。仕組みはシンプルです。

  1. Zapier 側でWebhookのURLを発行する
  2. RorkアプリからそのURLに fetch でデータを送る
  3. Zapier がデータを受け取り、後続のアクションを実行する

Rork 側でのコードは数行で済みます。

// ユーザー登録時にZapierへ通知する例
const notifyZapier = async (userData: { email: string; name: string }) => {
  try {
    const response = await fetch('https://hooks.zapier.com/hooks/catch/XXXXXX/YYYYYYY/', {
      method: 'POST',
      headers: { 'Content-Type': 'application/json' },
      body: JSON.stringify({
        email: userData.email,
        name: userData.name,
        registered_at: new Date().toISOString(),
        source: 'rork_app',
      }),
    });
 
    if (!response.ok) {
      console.error('Zapier通知失敗:', response.status);
    }
  } catch (error) {
    // 自動化の失敗はアプリの動作を止めない
    console.error('Zapier fetch error:', error);
  }
};
 
// 登録処理の中で呼び出す
const handleSignUp = async (email: string, name: string) => {
  // メインの登録処理(Supabase/Firebase)
  await createUser(email, name);
 
  // Zapierへの通知(失敗してもアプリは続行)
  await notifyZapier({ email, name });
};

重要なのは、Zapierへの通知が失敗してもアプリのメイン処理を止めないように設計することです。try/catch で囲み、エラーをログに残すだけに留めましょう。

実践例① ユーザー登録 → ウェルカムメール自動送信

新規ユーザーが登録したとき、個別にメールを送るのは手間ですが、Zapierを使えばこれが自動化できます。

Zapierの設定:

  1. トリガー: Webhooks by Zapier → Catch Hook
  2. アクション: Gmail(または SendGrid)→ Send Email

アクションの設定で、受け取ったWebhookデータを使います。

  • 宛先: {{name}} (Webhookで受け取ったemail)
  • 件名: 「ご登録ありがとうございます、{{name}}さん」
  • 本文: 自由にHTMLで作成可能
// フロントマター: メール通知用のデータ構造
interface WelcomeEmailPayload {
  email: string;
  name: string;
  registered_at: string;
  app_version: string;
  platform: 'ios' | 'android';
}
 
// 送信例
const sendWelcomeEmailViaZapier = async (user: WelcomeEmailPayload) => {
  await fetch(process.env.ZAPIER_WELCOME_WEBHOOK_URL!, {
    method: 'POST',
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify(user),
  });
};

環境変数に Webhook URL を保存しておくのがお勧めです。Rork のプロジェクト設定で環境変数を定義できます。

実践例② フォーム送信 → Notionデータベースに自動追加

「お問い合わせフォームの内容を Notion で管理したい」という需要は意外と多いです。特に個人開発者にとって、Notion はシンプルなCRMとしても使えます。

Zapierの設定:

  1. トリガー: Webhooks by Zapier → Catch Hook
  2. アクション: Notion → Create Database Item
// お問い合わせフォームの送信処理
interface ContactFormData {
  name: string;
  email: string;
  message: string;
  category: 'bug' | 'feature_request' | 'general';
}
 
const submitContactForm = async (formData: ContactFormData) => {
  // バリデーション
  if (!formData.email.includes('@') || formData.message.length < 10) {
    throw new Error('入力内容を確認してください');
  }
 
  const response = await fetch(process.env.ZAPIER_CONTACT_WEBHOOK_URL!, {
    method: 'POST',
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify({
      ...formData,
      submitted_at: new Date().toISOString(),
      user_agent: 'RorkApp/1.0',
    }),
  });
 
  if (!response.ok) {
    throw new Error('送信に失敗しました。しばらくしてからお試しください。');
  }
};

このコードのポイントは、エラーを ユーザーに見える形でちゃんと投げていることです。Zapierへの送信失敗はユーザーに通知すべきケースなので、notifyZapier の例とは逆に、エラーを上位に伝播させています。

実践例③ 購入完了 → Slackチャンネルに通知

アプリの購入が発生したとき、即座に知りたいですよね。Stripe の Webhook を直接受け取る設定は少し複雑ですが、Zapier を介せばSlackへの通知が簡単にできます。

Zapierの設定(Stripe経由の場合):

  1. トリガー: Stripe → New Payment
  2. アクション: Slack → Send Channel Message

または Rork から直接 Zapier に通知する場合:

// RevenueCategory の購入完了コールバック内で実行
const notifyPurchaseToSlack = async (purchase: {
  productId: string;
  price: number;
  currency: string;
  userId: string;
}) => {
  const message = `💰 購入完了: ${purchase.productId} / ¥${purchase.price} / User: ${purchase.userId}`;
 
  await fetch(process.env.ZAPIER_PURCHASE_WEBHOOK_URL!, {
    method: 'POST',
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify({
      ...purchase,
      message,
      purchased_at: new Date().toISOString(),
    }),
  });
};

購入通知はリアルタイムで知りたいケースなので、Slack への通知は特に効果的です。月に数件の購入でも、実際に通知が来ると嬉しいものです。

Zapierの無料枠で足りる? Make・n8nとの使い分け

Zapierの無料プランは月100タスク・5つのZapが上限です。個人開発の初期段階ならほぼ十分ですが、ユーザー数が増えてきたら有料プランへの移行が必要になります。

用途によって他のツールと使い分けるのも良い選択肢です。

  • Zapier: 設定が直感的で、連携できるサービスが最多(6,000以上)。迷ったらこれ
  • Make(旧Integromat): より複雑なワークフロー向け。無料枠が少し広い。詳しくはMakeとWebhookで自動化する方法を参照してください
  • n8n: セルフホスト可能でコスト最小化できます。技術的なハードルは上がります。n8nとRorkの自動化も参考になります

まずはZapierで試して、コストやワークフローの複雑さに応じて乗り換えを検討するのが現実的なアプローチです。

Zapierでは対応できないようなカスタムなAPI連携が必要になったときは、RorkのAPI外部連携ガイドも合わせて読んでみてください。

Webhook URLをソースコードに直書きしない

最後に、セキュリティ面での注意を一つ。ZapierのWebhook URLはアクセストークンの役割を持っています。これをコードに直書きするとGitHubにアップロードされたとき誰でも悪用できてしまいます。

// ❌ 直書きは絶対にしない
const ZAPIER_URL = 'https://hooks.zapier.com/hooks/catch/1234567/abcdefg/';
 
// ✅ 環境変数から読み込む
const ZAPIER_URL = process.env.ZAPIER_WEBHOOK_URL;
// Rorkのプロジェクト設定 → Environment Variables に追加する

Rork のプロジェクト設定画面から環境変数を追加できます。本番・開発環境で別のURLを使い分けることもできるので、ぜひ活用してください。


Zapierとの連携は、個人開発の「バックエンドを書く手間を省きつつ、必要な自動化だけ拾っていく」という戦略にぴったりです。まず1つのワークフローから試してみると、意外とすんなり動くはずです。最初の1つは「ユーザー登録 → 自分への Slack 通知」あたりが手軽でお勧めです。

シェア

お読みいただきありがとうございます

Rork Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • コピー&ペーストで使える実装コード付き
  • 毎日新しい上級ガイドを追加
  • ¥580/月 または ¥1,480 の永久アクセス
メンバーシップを見る →

もしこの記事がお役に立ちましたら、チップ(¥150)で応援いただけると大変励みになります。広告なしでの運営を続けるため、皆さまのご支援が大きな力になっています。

関連記事

開発ツール2026-03-31
Rork × Make(旧Integromat)連携ガイド:Webhookでノーコードバックエンドを構築する方法
Rorkアプリに Make(旧Integromat)を連携させる方法を解説。Webhookを使ったノーコードバックエンドの構築から、フォーム送信→Notion保存→メール通知まで実践的なシナリオを紹介します。
開発ツール2026-07-03
App Store Connect API の日次集計が月末に合わなくなるとき — JWT 失効・レポート確定遅延・突合の運用メモ
App Store Connect API で自動化した売上・レビュー収集は、止まらずに「欠け」ます。401/404/429 が生む3種類の静かな欠損を fetch ログと突合クエリで検出し、バックフィルで埋める運用設計を実装コード付きでまとめます。
開発ツール2026-05-06
Rork Max × Xcode Cloud で実現する完全自動化CI/CD ― プルリクレビューからApp Store配布まで一気通貫
Rork Max が生成したネイティブSwiftUIプロジェクトにXcode Cloudを接続し、プルリクのテスト自動化からTestFlight配布・App Store提出まで完全自動化するCI/CDを0から構築する実践ガイド。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →