開発情報・ナレッジ

投稿者: ShiningStar株式会社 2025年5月14日 (水)

Zapierと連携してSPIRALの予約データを自動でGoogleカレンダーに登録するサンプルプログラム

SPIRALで作成した予約フォームのデータを自動的にGoogleカレンダーに反映させることで、予約管理の効率化が図れます。
本記事では、外部連携ツール「Zapier(ザピアー)」を使用して、SPIRALの予約データをGoogleカレンダーに自動登録する方法を解説します。
プログラミングの知識がなくても簡単に連携できるため、ぜひ参考にしてみてください。

事前準備

連携を始める前に、以下のアカウントとサービスを用意しておく必要があります。

Zapierアカウント(Zapierアカウントで無料登録可能)
Googleアカウント(Googleカレンダーにアクセスできること)

SPIRALの設定

1. レコード登録時PHP実行機能の設定

SPIRALの予約DBからデータをZapierに送信するために、レコード登録時にPHPを実行するアクションを設定します。

1. DB設定画面へ遷移
2. 「トリガ」→「非同期アクション」を選択
3. 「PHP実行」を選択
4. 以下の設定を行います。
表示名:「Zapier連携」など分かりやすい名前を設定
PHPプログラム:Zapierに予約データを送信するPHPコードを記述(後述)
5. 「作成」ボタンをクリックして設定を保存します
2. Zapier連携用PHPプログラムの作成

レコード登録時に実行するPHPプログラムを作成します。このプログラムは、予約データをZapierのWebhook URLに送信する役割を果たします

  <?php
// 予約データの取得($SPIRALから必要な情報を取得)
$record = $SPIRAL->getRecord();

$reservationData = array(
    'reservation_date' => $record["item"]["reservation_date"],
    'reservation_time' => $record["item"]["reservation_time"],
    'customer_name'    => $record["item"]["customer_name"],
    'email'            => $record["item"]["email"],
    'phone'            => $record["item"]["phone"],
    'course'           => $record["item"]["course"],
    'notes'            => $record["item"]["notes"]
);

// Zapierに送信するためのWebhook URL(Zapierで取得したものに置き換えてください)
$zapier_webhook_url = 'https://hooks.zapier.com/hooks/catch/123456/abcdef/';

// cURLを使用してZapierにデータを送信
$ch = curl_init($zapier_webhook_url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($reservationData));
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

// 送信実行
$response = curl_exec($ch);
curl_close($ch);
?>
        

上記のコードは一例です。実際の予約フォームのフィールド名に合わせて、$record["item"]["field_name"]の部分を調整してください。
また、$zapier_webhook_urlは後ほどZapierで取得するURLに置き換える必要があります。

Zapierの設定

1. 新規Zapの作成

Zapierにログインし、SPIRALとGoogleカレンダーを連携するZapを作成します。

1. Zapierにログインし、「Create Zap」ボタンをクリックします
2. トリガーアプリとして「Webhooks by Zapier」を選択します
3. トリガーイベントとして「Catch Hook」を選択します
4. 「Continue」ボタンをクリックします
5. Zapierが提供する一意のWebhook URLが表示されるので、このURLをコピーします
6. 先ほどSPIRALで設定した送信先URLに、このZapierのWebhook URLを設定します
7. 「Test」ボタンをクリックし、SPIRALのフォームからテストデータを送信してみます
8. Zapierがデータを受信できたら「Continue」ボタンをクリックします
2. データマッピングの設定

SPIRALから受け取ったデータをGoogleカレンダーの形式に変換するための設定を行います。

1. 「Action」として「Google Calendar」を選択します
2. アクションイベントとして「Create Detailed Event」を選択します
3. Googleアカウントに接続するよう求められるので、連携したいGoogleアカウントで認証を行います
4. イベントの詳細設定を行います
Calendar:イベントを追加するカレンダーを選択します
Summary(タイトル):SPIRALから受け取った予約者名などを設定します(例:「{{customer_name}}様 ご予約」)
Description(説明):予約の詳細情報を設定します(例:「連絡先: {{phone}}、備考: {{notes}}」)
Start Date & Time:SPIRALから受け取った予約日時を設定します
End Date & Time:予約終了時間を設定します(開始時間から一定時間後など)
その他必要に応じて、場所やゲストなどの情報を設定します
5. 「Continue」ボタンをクリックします
6. 設定内容をテストし、問題なければ「Publish」ボタンをクリックしてZapを公開します

Googleカレンダーの設定

Googleカレンダー側での特別な設定は基本的に不要ですが、以下の点を確認しておくと良いでしょう

1. 予約用の専用カレンダーを作成しておくと管理がしやすくなります
2. 必要に応じて、カレンダーの共有設定を行い、関係者と予約情報を共有できるようにします
3. 通知設定を確認し、新規予約があった際にメール通知などを受け取れるように設定しておきます

動作確認

すべての設定が完了したら、実際に予約フォームからテスト送信を行い、連携が正しく機能するか確認します

1. SPIRALの予約フォームからテストデータを送信します
2. Zapierの「Zap History」で処理状況を確認します
3. Googleカレンダーに予約情報が正しく反映されているか確認します
4. 日時や予約者情報などが正確に反映されているか確認します

まとめ

SPIRALの予約フォームとGoogleカレンダーをZapierで連携することで、予約管理の効率化が図れます。
手動での予約入力作業が不要になり、ヒューマンエラーも減少するため、業務効率の向上につながります。
また、Zapierの柔軟な機能を活用することで、様々な業務プロセスの自動化が可能です。

本記事で紹介した方法を参考に、ぜひご自身のビジネスに合わせたカスタマイズを行ってみてください。

解決しない場合はこちら コンテンツに関しての
要望はこちら