@extends('layouts.app') @php $isGlobalScenarioList = $isGlobalScenarioList ?? (! isset($account) || $account === null); @endphp @section('title', ($isGlobalScenarioList ? 'シナリオ配信' : $account->name . ' のシナリオ') . ' - メール・LINE配信') @if(! $isGlobalScenarioList) @section('delivery-primary-tabs') @include('account.partials.mail-delivery-primary-tabs', ['mailDeliveryTab' => 'accounts']) @endsection @endif @section('page-title', $isGlobalScenarioList ? 'シナリオ配信' : $account->name . ' のシナリオ') @section('page-subtitle', $isGlobalScenarioList ? 'メール・LINEを使った自動配信(シナリオ)を作成・管理します。' : 'この送信用アカウントに関係するシナリオ(読者の流れ・ステップ配信のまとまり)の一覧です。下の各行では、シナリオごとのメール/LINE紐づけが分かるように表示しています。') @push('styles') @endpush @section('content') @php $hasScenarioAccountOptions = ($mailAccounts ?? collect())->isNotEmpty() || ($lineAccounts ?? collect())->isNotEmpty(); $canCreateScenario = ! $isGlobalScenarioList || $hasScenarioAccountOptions; @endphp
@if($isGlobalScenarioList) シナリオ一覧 アーカイブ済み @else 送信用アカウント一覧 {{ $account->name }} / シナリオ一覧 アーカイブ済み @endif
@if($isGlobalScenarioList)

「シナリオ」は、読者(見込みのお客様)を登録するところから、その後メールやLINEを自動で順番に届けるところまでを含む、ひとつながりの配信の流れのまとまりです。読者を集める登録フォームや登録経路もシナリオに含まれます。たとえば フォームから登録 → 直後に「ようこそ」 → 翌日に「使い方」 → 3日後に「ご案内」 のように、一度作れば自動で流れます。

使い方の流れ
  1. シナリオを作る(下の「追加」ボタン)
  2. 作ったシナリオを開いて、登録フォーム/登録経路を用意する(または読者を手動で登録)
  3. ステップ配信で送る順番・タイミング・本文を設定(今すぐ全員に送るならメール一斉
@endif

シナリオ名の行をクリックすると、そのシナリオが開きます。

@if($isGlobalScenarioList && ! $hasScenarioAccountOptions)
シナリオを追加するには、先に初期設定の「メール設定」または「LINE設定」でアカウントを1件以上作成してください。
メール設定を追加 LINE設定を追加
@endif
@if(! $isGlobalScenarioList) 送信用アカウント一覧 @endif @if(empty($archived)) {{-- 一覧から「どのシナリオが何を送るのか」を、中に入らずに確かめられるようにする (2026-08-04 に利用者から要望を受けて追加)。 --}} @include('account.scenario.partials._bulk_preview_offcanvas', [ 'previewUrl' => route('scenario.global.preview', [], false), 'previewTitle' => '配信内容プレビュー', 'previewCount' => 0, 'previewSelection' => '.js-scenario-preview-check', 'previewLabel' => '選んだシナリオをプレビュー', ]) @if(! $isGlobalScenarioList) @endif @endif
@php $acctLine = ! $isGlobalScenarioList && in_array($account->type, ['line', 'both'], true); @endphp @if(! $isGlobalScenarioList)
この一覧の送信用アカウント
{{ $account->name }}
種別: @if($account->type === 'email')メール @elseif($account->type === 'line')LINE @elseif($account->type === 'both')メール+LINE @else{{ $account->type }} @endif · シナリオはいずれもこのアカウント設定のもとで配信されます
@if($acctLine)
@if(filled($account->line_bot_picture_url)) @else @endif
連携中のLINE(共通)
{{ filled($account->line_bot_display_name) ? $account->line_bot_display_name : '(LINEアカウント設定で保存すると表示)' }}
@if(filled($account->line_bot_basic_id))
{{ $account->line_bot_basic_id }}
@endif
@endif
@if($acctLine) LINEアカウント設定 @endif
@else
シナリオ独立管理
シナリオ作成時にメール送信用アカウントとLINEアカウントを選びます。あとからシナリオ設定でも変更できます。
@endif @if($scenarios->isEmpty())
{{ empty($archived) ? 'シナリオがありません' : 'アーカイブ済みシナリオがありません' }}
@else
@php $groups = $groups ?? collect(); $groupedScenarios = $scenarios->groupBy(fn ($scenario) => $scenario->group_id ? ('g_'.$scenario->group_id) : 'none'); $orderedSections = []; foreach ($groups as $group) { $key = 'g_'.$group->id; $orderedSections[] = ['name' => $group->name, 'key' => $key, 'items' => $groupedScenarios->get($key, collect())]; } foreach ($groupedScenarios as $groupKey => $items) { if ($groupKey === 'none') { continue; } $groupId = (int) str_replace('g_', '', $groupKey); if ($groups->contains('id', $groupId)) { continue; } $orderedSections[] = [ 'name' => $items->first()?->group?->name ?? 'グループ', 'key' => $groupKey, 'items' => $items, ]; } if ($groupedScenarios->has('none')) { $orderedSections[] = ['name' => '未分類', 'key' => 'none', 'items' => $groupedScenarios->get('none')]; } @endphp @foreach($orderedSections as $section)
{{ $section['name'] }}
@forelse($section['items'] as $scenario)
@php $rowAccount = $scenario->account ?? $scenario->mailAccount ?? $scenario->lineAccount ?? $account; @endphp {{-- プレビュー対象の選択(行のリンクを踏まないよう label にはしない) --}} {{ $scenario->name }} 開く
@php $rowHasExplicitChannelLink = $scenario->mail_delivery_account_id !== null || $scenario->line_delivery_account_id !== null; $rowMailAccount = $rowHasExplicitChannelLink ? $scenario->mailAccount : (in_array(optional($scenario->account)->type, ['email', 'both'], true) ? $scenario->account : null); $rowLineAccount = $rowHasExplicitChannelLink ? $scenario->lineAccount : (in_array(optional($scenario->account)->type, ['line', 'both'], true) ? $scenario->account : null); @endphp @if($rowMailAccount)
メール設定済 {{ $rowMailAccount->name }} {{ $rowMailAccount->from_email ?: '送信元未設定' }}
@else
メール未設定
@endif @if($rowLineAccount)
LINE設定済 @if(filled($rowLineAccount->line_bot_picture_url)) @else @endif {{ $rowLineAccount->line_bot_display_name ?: $rowLineAccount->name }} @if(filled($rowLineAccount->line_bot_basic_id)) ({{ $rowLineAccount->line_bot_basic_id }}) @endif
@else
LINE未設定
@endif
会社{{ $scenario->businessSetting?->displayName() ?: '未選択' }}
@if($rowMailAccount) メール {{ (int) ($scenario->subscribers_mail_count ?? 0) }} @else メール — @endif @if($rowLineAccount) LINE {{ (int) ($scenario->subscribers_line_count ?? 0) }} @else LINE — @endif
@empty @if($section['key'] !== 'none')
このグループに属するシナリオはまだありません。右のプルダウンまたはシナリオ設定で割り当てできます。
@endif @endforelse
@endforeach
@endif @if(empty($archived)) @if(! $isGlobalScenarioList) @endif @push('scripts') @endpush @endif @push('scripts') @endpush @endsection