@extends('layouts.app') @section('title', 'CRM settings') @section('heading', 'CRM settings') @section('content')

Business hours ({{ $branchId ? 'this branch' : 'company-wide' }})

Response deadlines only count time inside these hours, so an enquiry at 9pm is not late at 9:15pm.

@csrf @method('PUT')
Open on
@foreach ([1 => 'Mon', 2 => 'Tue', 3 => 'Wed', 4 => 'Thu', 5 => 'Fri', 6 => 'Sat', 7 => 'Sun'] as $n => $l)@endforeach

Response targets

How long a new lead may wait for a first reply. The most specific target applies (branch and source, then branch, then source, then the default). Walk-ins and phone calls taken by staff have no deadline.

@foreach ($policies as $p)@endforeach
Response targets
Applies toFirst reply withinTell manager afterActions
{{ $p->branch?->name ?? 'All branches' }} ยท {{ $p->source ? (config('crm.sources')[$p->source] ?? $p->source) : 'any source' }}{{ $p->first_response_minutes }} business min+{{ $p->escalate_after_minutes }} min
@csrf @method('DELETE')
@csrf

Assignment rules

A new lead goes to the first matching rule, lowest priority number first. If no rule gives anyone, the salesperson with the fewest open leads gets it. If nobody is available, managers are told.

@foreach ($rules as $r)@endforeach
Assignment rules
PriorityRuleWhenThenActions
{{ $r->priority }}{{ $r->name }} {{ $r->branch?->name ?? 'Any branch' }}, {{ $r->match_source ? (config('crm.sources')[$r->match_source] ?? $r->match_source) : 'any source' }}{{ $r->match_payment_intent ? ', paying by '.(config('crm.payment_intents')[$r->match_payment_intent] ?? '') : '' }} {{ ['round_robin' => 'Take turns', 'least_open' => 'Fewest open leads', 'specific' => 'Give to '.($r->assignUser?->name ?? 'someone')][$r->strategy] }}
@csrf @method('DELETE')
@csrf

Lead rotation

Take someone out while they are on leave or in training. Their existing leads stay with them.

@endsection