プロジェクト

全般

プロフィール

SMART-CONTACT 管理者マニュアル

項目 内容
プロジェクト名 SMART-CONTACT
バージョン 2.0
更新日 2026-02-28
文書種別 管理者マニュアル

1. はじめに

1.1 管理画面とは

SMART-CONTACTの管理画面は、管理者(is_admin = true)のみアクセスできるWeb管理コンソールです。ユーザー管理、通知管理、送信ログの閲覧、サブスクリプション管理、システム設定など、サービス運営に必要な操作を行えます。

1.2 アクセス方法

ブラウザで /admin にアクセスしてください。管理者アカウントでログイン済みである必要があります。

アクセス制御: 管理者以外のアカウントで /admin にアクセスすると、アクセス拒否されます。管理者権限は別の管理者がユーザー詳細画面から付与します。

1.3 サイドバーナビゲーション

管理画面の左側サイドバーに以下のメニューが表示されます。

メニュー URL 説明
ダッシュボード /admin KPI・ユーザー推移・送信推移
ユーザー管理 /admin/users ユーザー一覧・検索・詳細・BAN/復元
通知管理 /admin/notifications お知らせの作成・編集・削除
送信ログ /admin/mail-logs メール送信ログの検索・閲覧
サブスクリプション /admin/subscriptions サブスク・Whiteユーザーの管理
アクティビティ /admin/activity-logs ユーザー操作のログ
システム設定 /admin/settings レート制限・メンテナンスモード等

2. ダッシュボード

この画面でできること

  • 主要KPIの確認(ユーザー数・DAU/WAU/MAU・送信数・MRR)
  • ユーザー数推移グラフの確認(30日間)
  • 送信数推移グラフの確認(30日間)

2.1 KPIカード

画面上部に7つのKPIカードが表示されます。

KPI 説明 計算方法
総ユーザー数 システム全体の登録ユーザー数 Usersテーブルの全件数
White ホワイトユーザー数 is_white_user = true の件数
有料ユーザー 有料サブスクリプションユーザー数 stripe_subscription_quantity > 0(White除く)
DAU 日次アクティブユーザー数 過去24時間でデバイスがアクティブだったユニークユーザー数
WAU / MAU 週次 / 月次アクティブユーザー数 過去7日 / 30日のユニークアクティブユーザー数
今月の総送信数 当月の全ユーザー合計送信数 メール送信(成功)+ フォーム送信(成功)の合計
MRR(概算) 月間定期収益の概算 有料ユーザー数 × ¥9,900

2.2 ユーザー数推移グラフ

直近30日間のユーザー数の推移を折れ線グラフで表示します。

2.3 送信数推移グラフ

直近30日間の送信数を積み上げ棒グラフで表示します。

  • フォーム送信: フォーム経由の送信件数(UserActivityLogのexecution_completeアクションから集計)
  • メール送信: メール経由の送信件数(ContactMailLogのstatus='success'から集計)

3. ユーザー管理

この画面でできること

  • ユーザーの検索・フィルタリング
  • ユーザー詳細の確認
  • ユーザーのBAN/BAN解除
  • White/管理者/テストユーザーの種別設定
  • ユーザーの削除・復元
  • デバイスの管理

3.1 ユーザー一覧

検索

画面上部の検索フィールドに名前またはメールアドレスを入力して検索できます(部分一致)。

フィルタ

以下のフィルタボタンで表示を切り替えます。

フィルタ 表示対象
すべて 全ユーザー(削除済み除く)
White ホワイトユーザー(is_white_user = true
有料 有料サブスクリプションユーザー(stripe_subscription_quantity > 0
BAN BANされたユーザー(is_banned = true
削除済み ソフトデリートされたユーザー(deleted_atあり)

テーブルカラム

カラム 説明
ユーザー 名前 + メールアドレス
ステータス バッジ表示(下記参照)
ライセンス数 「無制限」(ホワイト)またはライセンス数
登録日 アカウント作成日(ja-JP形式)
操作 復元ボタン(削除済みの場合)/ 詳細リンク

ステータスバッジ

バッジ 条件
削除済み deleted_at あり グレー(#71717A)
BAN is_banned = true 赤(#D4756A)
White is_white_user = true ブラウン(#8B7535)
Unlimited stripe_subscription_quantity > 0 ダーク(#3D3D3D)
Free 上記いずれにも該当しない ライトグレー(#B0A8A0)

ページネーション: 1ページ20件。

3.2 ユーザー詳細

ユーザー一覧の「詳細」をクリックすると、個別のユーザー詳細画面が表示されます。

基本情報カード

項目 説明
ID ユーザーID
名前 ユーザー名
メール メールアドレス
登録日 アカウント作成日
ライセンス数 デバイスライセンス数
削除日 ソフトデリートされた場合の日付

ユーザー種別の変更

3つのチェックボックスで種別を設定できます。

種別 アイコン 説明
White User 👑 ブラウン(#8B7535) ホワイトユーザー。課金不要・デバイス無制限
管理者 🛡️ 青(#3B82F6) 管理画面にアクセス可能
テストユーザー 🧪 紫(#A78BFA) フォーム入力まで行い送信ボタンは押さないモード
  1. チェックボックスで種別を設定する
  2. 種別を更新」ボタンをクリックする

テストユーザーについて: テストユーザーに設定すると、そのユーザーのChrome拡張機能で「テストユーザーモードで動作中」と表示され、フォーム送信ボタンが押されなくなります。ただしチケット・無料枠は消費されます。

BAN/BAN解除

操作 ボタン表示 動作
BAN BANする ユーザーをBANし、ログイン・利用を停止する
BAN解除 BAN解除 BANを解除し、利用を再開させる

クリック後すぐに反映されます。フラッシュメッセージで「ユーザーをBANしました。」等が表示されます。

ユーザーの削除

  • ユーザーを削除」ボタンをクリックする
  • 確認ダイアログ「このユーザーを削除しますか?この操作は後から復元可能です。」が表示される
  • OKをクリックするとソフトデリートされる

注意: 管理者ユーザーは削除できません。「管理者ユーザーは削除できません。」というエラーが表示されます。

削除済みユーザーの復元

ユーザー一覧で「削除済み」フィルタを選択し、復元したいユーザーの「復元」ボタンをクリックします。

今月の送信統計

2つのカードで当月の送信実績が表示されます。

カード 説明
今月のフォーム送信 当月のフォーム送信件数
今月のメール送信 当月のメール送信件数

デバイス一覧

ユーザーに紐づくデバイスが一覧表示されます。

項目 説明
デバイス名 ユーザーが設定した名前
UUID デバイス固有ID(先頭12文字)
最終アクティブ日時 最後にアクティブだった日時
削除ボタン デバイスを削除(ゴミ箱アイコン)

表示: 「デバイス(X台)」

最近のアクティビティ

直近20件のアクティビティログが表示されます。

項目 説明
アクション名 実行されたアクション(例: execution_complete, admin_ban
ユーザー名 操作を行ったユーザーへのリンク
IPアドレス アクセス元IPアドレス
タイムスタンプ 操作日時

4. 通知管理

この画面でできること

  • お知らせの作成・編集・削除
  • タイプ(info/warning/maintenance/update)の設定
  • 全ユーザーまたは個別ユーザーへの通知
  • 公開/下書きの管理
  • 有効期限の設定

4.1 通知一覧

通知が一覧でテーブル表示されます。

カラム 説明
タイプ アイコンで種別表示
タイトル 通知タイトル
対象 「all」(全ユーザー)または「individual」(個別)
公開 「公開中」バッジまたは「下書き」バッジ
公開日 公開日時
操作 編集ボタン / 削除ボタン

画面右上に「通知を作成」ボタンがあります。

ページネーション: 1ページ20件。

4.2 通知のタイプ

タイプ アイコン 表示名
info ℹ️ Info 青(#3B82F6) お知らせ
warning ⚠️ AlertTriangle オレンジ(#F59E0B) 注意
maintenance 🔧 Wrench 紫(#A855F7) メンテナンス
update ✅ CheckCircle ティール(#6B9E9E) アップデート

4.3 通知の作成

  1. 通知を作成」ボタンをクリックする
  2. フォームに以下の情報を入力する
フィールド ラベル 必須 バリデーション
タイトル タイトル はい 文字列、最大255文字
本文 本文 はい 文字列
タイプ タイプ はい info / warning / maintenance / update から選択
対象 対象 はい 全ユーザー(all) / 個別ユーザー(individual)
対象ユーザーID 対象ユーザーID 「個別ユーザー」選択時のみ表示。対象ユーザーのID
公開日時 公開日時 いいえ 日時形式。デフォルトは現在日時
有効期限 有効期限(任意) いいえ 日時形式。公開日より後の日時
公開する 公開する いいえ チェックボックス。デフォルトON
  1. 「保存」ボタンをクリックする

4.4 通知の編集

  1. 通知一覧の「編集」ボタンをクリックする
  2. 作成時と同じフォームが表示される(既存の値が入力済み)
  3. 内容を修正して「更新」ボタンをクリックする

4.5 通知の削除

  1. 通知一覧の「削除」ボタンをクリックする
  2. 確認ダイアログで削除を実行する

4.6 通知の表示条件

ユーザー側のWebダッシュボードおよびChrome拡張には、以下の条件を満たす通知のみが表示されます。

  • is_published = true(公開状態)
  • published_at が現在日時以前
  • expires_at が未設定、または現在日時以降(未期限切れ)
  • target_typeall、またはそのユーザーが対象の individual

5. 送信ログ

この画面でできること

  • メール送信ログの検索・閲覧
  • ステータス別のフィルタリング
  • 送信先・件名・ユーザーの確認

5.1 検索とフィルタ

検索

メールアドレスまたは件名で検索できます(部分一致)。

ステータスフィルタ

フィルタ 表示対象
すべて 全ログ
成功 status = 'success'
失敗 status = 'failed'

5.2 テーブルカラム

カラム 説明
ステータス ✅(緑・成功)または ❌(赤・失敗)
ユーザー 送信を行ったユーザー名(ユーザー詳細へのリンク)
宛先 送信先メールアドレス
件名 メールの件名
送信日時 送信された日時(ja-JP形式)

ページネーション: 1ページ20件。


6. サブスクリプション管理

この画面でできること

  • MRR(月間定期収益)の概算確認
  • 有料ユーザー・Whiteユーザーの一覧
  • Whiteユーザー権限の付与

6.1 MRR表示

画面上部に MRR(概算) が大きく表示されます。

計算式: 有料ユーザー数 × ¥9,900

6.2 フィルタ

フィルタ 表示対象
すべて Whiteユーザー + 有料サブスクリプションユーザー
White is_white_user = true のみ
有料 stripe_subscription_quantity > 0 かつ is_white_user = false

6.3 テーブルカラム

カラム 説明
ユーザー 名前 + メールアドレス(ユーザー詳細へのリンク)
プラン 「White」または「Unlimited」
ライセンス 「無制限」(ホワイト)またはライセンス数
操作 「White付与」ボタン(非Whiteユーザーのみ表示)

ページネーション: 1ページ20件。

6.4 Whiteユーザーの付与

  1. 対象ユーザーの行にある「White付与」ボタンをクリックする
  2. 確認ダイアログ「このユーザーにWhiteを付与しますか?」でOKをクリックする
  3. 即座に is_white_user = true に更新される
  4. フラッシュメッセージ「{ユーザー名} にWhiteを付与しました。」が表示される

Whiteユーザーの特典: デバイス無制限、課金不要で全機能利用可能。


7. アクティビティログ

この画面でできること

  • ユーザーの操作ログの検索・閲覧
  • アクション名やIPアドレスでの検索

7.1 検索

アクション名またはIPアドレスで検索できます(部分一致)。

7.2 ログ表示

各ログがカード形式で表示されます。

項目 説明
アクション 実行されたアクション名(ティール色・太字)
ユーザー 操作を行ったユーザー名(ユーザー詳細へのリンク)
詳細 アクションの詳細データ(JSON形式、モノスペース)
タイムスタンプ 操作日時(ja-JP形式、右寄せ)
IPアドレス アクセス元IP(グレー、右寄せ)

主なアクション名

アクション 説明
execution_complete 送信実行の完了(詳細にsuccess/failedカウントを含む)
admin_ban 管理者によるユーザーBAN
admin_unban 管理者によるBAN解除
login ユーザーのログイン
device_register デバイスの新規登録

ページネーション: 1ページ30件。


8. システム設定

この画面でできること

  • メール送信レート制限の設定
  • デフォルトデバイス上限の設定
  • メール認証有効期限の設定
  • 不正利用防止(auto-BAN閾値)の設定
  • お問い合わせ通知先メールの設定
  • メンテナンスモードのON/OFF
  • 全体お知らせバナーの設定

8.1 一般設定

設定項目 ラベル 範囲 デフォルト 説明
mail_rate_limit メール送信レート制限 (件/分/ユーザー) 数値 1〜100 10 1ユーザーあたり1分間に送信できるメール件数の上限
default_device_limit デフォルトデバイス上限 数値 1〜100 1 新規ユーザーのデバイス上限
email_verification_expiry_days メール認証の有効期限(日数) 数値 1〜90 7 新規登録時のメール認証リンクの有効期限

8.2 不正利用防止

設定項目 ラベル 範囲 デフォルト 説明
registration_ip_limit_per_day IP別登録上限 (件/日) 数値 1〜100 3 同一IPから24時間に登録できるアカウント数
abuse_ip_registration_threshold 異常検知: IP登録閾値 (件/7日) 数値 1〜100 5 同一IPから7日間でこの件数以上の登録があればauto-BAN
abuse_domain_registration_threshold 異常検知: ドメイン登録閾値 (件/7日) 数値 1〜100 5 同一メールドメインから7日間でこの件数以上の登録があればアラート

8.3 その他の設定

設定項目 ラベル デフォルト 説明
contact_email お問い合わせ通知先メールアドレス メール お問い合わせフォームからの通知を受け取るメールアドレス
maintenance_mode メンテナンスモード チェックボックス OFF(0) 有効にすると拡張機能の動作を一時停止します。ユーザーのログイン画面に「MAINTENANCE」画面が表示されます
free_monthly_urls 月間無料枠 数値 10 ユーザーが毎月無料で利用できるURL件数(設定UIからは変更不可、APIまたはDB直接操作で変更)
global_banner 全体お知らせバナー テキストエリア 空欄 バナーに表示するメッセージ。空欄で非表示。最大500文字

8.4 設定の保存

すべての設定を変更したら、画面下部の「保存」ボタンをクリックしてください。フラッシュメッセージ「設定を保存しました。」が表示されます。

メンテナンスモードについて: メンテナンスモードを有効にすると、Chrome拡張機能のログイン画面に「MAINTENANCE」画面が表示され、ユーザーはログインできなくなります。すでにログイン済みのユーザーの動作も停止します。メンテナンス作業完了後は必ずOFFに戻してください。

全体お知らせバナーについて: 設定したメッセージは全ユーザーのChrome拡張機能にバナーとして表示されます。緊急のお知らせや注意事項の告知に使用してください。空欄にするとバナーは非表示になります。


9. 運用ガイド

9.1 日常的な確認事項

確認項目 頻度 画面
DAU/WAU/MAUの推移 毎日 ダッシュボード
送信数の推移 毎日 ダッシュボード
MRRの確認 毎週 ダッシュボード / サブスクリプション
送信失敗ログの確認 適宜 送信ログ(失敗フィルタ)
不正利用の兆候確認 毎日 アクティビティログ

9.2 ユーザーBANの判断基準

以下のケースではユーザーのBANを検討してください。

  • 短時間での大量登録(auto-BAN閾値を超えた場合は自動でBANされます)
  • 利用規約に違反するコンテンツの送信
  • 不正なアカウント利用の兆候

BANの手順:

  1. ユーザー管理からBANフィルタで確認
  2. 対象ユーザーの詳細画面を開く
  3. 「BANする」ボタンをクリック

9.3 テストユーザーの活用

新規ユーザーの初期評価や、問題のあるユーザーの様子見に活用できます。

  • テストユーザーに設定すると、フォーム送信ボタンが押されなくなる
  • チケット・無料枠は消費されるため、ユーザーの利用パターンは通常通り記録される
  • 問題がなければテストユーザーフラグを解除して通常利用に移行

9.4 Whiteユーザーの付与基準

Whiteユーザーは課金不要・デバイス無制限の特別権限です。以下の場合に付与を検討してください。

  • 社内スタッフ・開発チーム
  • 特別提携先
  • 長期パートナー

付与方法:

  • ユーザー詳細画面の「White User」チェックボックスをONにして「種別を更新」
  • またはサブスクリプション管理画面の「White付与」ボタン

10. トラブルシューティング

10.1 ユーザーから「ログインできない」と連絡があった

  1. ユーザー管理で対象ユーザーを検索する
  2. ステータスを確認する
    • BAN: 意図的なBANか確認し、誤りであれば「BAN解除」
    • 削除済み: 必要であれば「復元」
  3. メンテナンスモードがONになっていないか確認する(システム設定)

10.2 送信数が急増している

  1. ダッシュボードの送信数推移グラフで異常な増加を確認する
  2. アクティビティログで大量送信しているユーザーを特定する
  3. 必要に応じてユーザーをBANまたはテストユーザーに設定する
  4. mail_rate_limit を一時的に下げることも検討する

10.3 不正登録が発生している

  1. アクティビティログでIPアドレスを確認する
  2. システム設定の不正利用防止閾値を確認・調整する
    • registration_ip_limit_per_day: 日次IP制限
    • abuse_ip_registration_threshold: 自動BAN閾値
    • abuse_domain_registration_threshold: ドメインアラート閾値
  3. auto-BANが機能している場合、BANフィルタでBANされたユーザーを確認する

10.4 メンテナンスモードの解除を忘れた

  1. システム設定画面(/admin/settings)にアクセスする
  2. 「メンテナンスモード」のチェックを外す
  3. 「保存」をクリックする
  4. ユーザーは再度ログイン画面からログインできるようになる

本マニュアルはSMART-CONTACT v2.0 (2026-02-28) に基づいて作成されています。