スプレッドシート構成
| スプレッドシート | 用途 | 推奨アクセス権限 |
| EAP_Admin | テナント管理 | 管理者のみ |
| EAP_Forms | フォーム送信データ | 対応担当者 |
テナント管理
契約企業のアクセストークンを管理します。
テナント管理シート
| Token | Name | Brand | Expires At | Active | Note |
xx-xK9mN2pQ7rAbCd | 株式会社ABC | {brand} | 2026-01-15 | TRUE | 初期契約 |
xx-yL3oP5qR8sTuVw | DEF Corp | {brand} | 2025-12-31 | TRUE | |
- Token: アクセストークン(ブランドコード + 英数字)
- Name: 企業名
- Brand: ブランドID
- Expires At: 有効期限(YYYY-MM-DD形式)
- Active: TRUE/FALSE(FALSEは同期されない)
運用手順
新規契約時
- テナント管理シートに新しい行を追加
- トークンを生成して入力
- メニュー「EAP Widget」→「テナント情報を同期」
契約更新時
- 該当行の Expires At を更新
- 同期を実行
解約時
- 該当行の Active を FALSE に変更
- 同期を実行
トークン生成
ブラウザのコンソール(F12)で以下を実行:
const brandCode = 'xx'; // 貴社のブランドコード
const body = Array.from(crypto.getRandomValues(new Uint8Array(12)))
.map(b => b.toString(36).padStart(2, '0').slice(-1))
.join('').slice(0, 14);
const token = brandCode + '-' + body;
console.log(token);
または、パスワード生成ツール(英数字16文字)を使用し、先頭にブランドコードを付与。
送信データの確認
フォーム送信シート
| 列 | 内容 |
| ID | 一意の識別子 |
| Timestamp | 送信日時 |
| Form Type | フォーム種別 |
| Token | 送信元企業のトークン |
| Name | お名前 |
| Email | メールアドレス |
| Content | 相談内容 |
フォーム種別
| ID | 名称 |
| soudan | メール相談 |
| compliance | ハラスメント通報・相談 |
| executive | 経営者・管理者向け相談 |
| counseling | カウンセリング予約 |
チャットログシート
AI相談の会話履歴が記録されます。
| 列 | 内容 |
| Session ID | セッションID |
| User Message | ユーザーのメッセージ |
| Assistant Message | AIの応答 |
ストレスチェック結果シート
| 列 | 内容 |
| A: 心身ストレス反応 | 判定結果 (%) |
| B: 仕事のストレス要因 | 判定結果 (%) |
| C: 周囲のサポート | 判定結果 (%) |
| D: 仕事の満足度 | 判定結果 (%) |
| AI分析 | AIによるアドバイス |
トラブルシューティング
データが記録されない
- スプレッドシートのアクセス権限を確認
- Apps Scriptの実行ログでエラーを確認
同期が失敗する
- 「同期先」シートの設定を確認
- Sync Keyがサーバー側と一致しているか確認
メール通知が届かない
- 通知先メールアドレスが正しいか確認
- 1日あたりの送信制限(無料: 100通)に注意