Deploy Ladill Queue / deploy (push) Successful in 1m39s
Queue Core stays generic; selecting Healthcare, Banking, Restaurant, and other industries installs departments, stages (queues), service points, workflows, terminology, and announcement profiles without code changes per vertical. Care-linked orgs skip stage materialization so Care remains the clinical provisioner. Co-authored-by: Cursor <cursoragent@cursor.com>
1248 lines
56 KiB
PHP
1248 lines
56 KiB
PHP
<?php
|
|
|
|
/**
|
|
* Industry packages configure the Queue Core without embedding industry logic in the engine.
|
|
*
|
|
* Mapping to core entities:
|
|
* - department → Department
|
|
* - stage → ServiceQueue (ticket pool + workflow step)
|
|
* - service_point → Counter
|
|
* - terminology / announcements / display → organization.settings.industry_package
|
|
*/
|
|
|
|
return [
|
|
|
|
'version' => 1,
|
|
|
|
'packages' => [
|
|
|
|
'healthcare' => [
|
|
'label' => 'Healthcare',
|
|
'description' => 'Hospitals and clinics — multi-department patient journeys with doctor-specific service points.',
|
|
'ticket_entity' => 'patient',
|
|
'integrations' => ['care'],
|
|
'display_layout' => 'standard',
|
|
'terminology' => [
|
|
'ticket' => 'Patient',
|
|
'tickets' => 'Patients',
|
|
'queue' => 'Waiting list',
|
|
'service_point' => 'Room / desk',
|
|
'worker' => 'Clinician',
|
|
'customer' => 'Patient',
|
|
'call_next' => 'Call next patient',
|
|
],
|
|
'announcement' => [
|
|
'en' => 'Patient :ticket, please proceed to :destination.',
|
|
'fr' => 'Patient :ticket, veuillez vous rendre au :destination.',
|
|
'with_staff' => ':ticket, :staff, :destination.',
|
|
],
|
|
'kpis' => [
|
|
'avg_wait_time',
|
|
'consultation_time',
|
|
'doctor_utilization',
|
|
'patient_throughput',
|
|
],
|
|
'workflow' => [
|
|
'name' => 'Patient journey',
|
|
'description' => 'Registration through discharge',
|
|
],
|
|
'departments' => [
|
|
['code' => 'reception', 'name' => 'Registration', 'type' => 'reception'],
|
|
['code' => 'triage', 'name' => 'Triage', 'type' => 'consultation'],
|
|
['code' => 'consultation', 'name' => 'Consultation', 'type' => 'consultation'],
|
|
['code' => 'laboratory', 'name' => 'Laboratory', 'type' => 'laboratory'],
|
|
['code' => 'imaging', 'name' => 'Imaging', 'type' => 'laboratory'],
|
|
['code' => 'pharmacy', 'name' => 'Pharmacy', 'type' => 'pharmacy'],
|
|
['code' => 'billing', 'name' => 'Billing', 'type' => 'cashier'],
|
|
],
|
|
'stages' => [
|
|
[
|
|
'code' => 'reception',
|
|
'department' => 'reception',
|
|
'name' => 'Registration',
|
|
'prefix' => 'R',
|
|
'strategy' => 'fifo',
|
|
'routing_mode' => 'shared_pool',
|
|
'routing_strategy' => 'round_robin',
|
|
'optional' => false,
|
|
'service_points' => [
|
|
['name' => 'Registration Desk 1', 'destination' => 'Registration Desk 1', 'code' => 'RD1'],
|
|
],
|
|
],
|
|
[
|
|
'code' => 'triage',
|
|
'department' => 'triage',
|
|
'name' => 'Triage',
|
|
'prefix' => 'T',
|
|
'strategy' => 'priority',
|
|
'routing_mode' => 'assigned_only',
|
|
'routing_strategy' => 'manual_assignment',
|
|
'optional' => true,
|
|
'service_points' => [
|
|
['name' => 'Triage Station 1', 'destination' => 'Triage Station 1', 'code' => 'TS1'],
|
|
],
|
|
],
|
|
[
|
|
'code' => 'consultation',
|
|
'department' => 'consultation',
|
|
'name' => 'Consultation',
|
|
'prefix' => 'C',
|
|
'strategy' => 'appointment',
|
|
'routing_mode' => 'assigned_only',
|
|
'routing_strategy' => 'doctor_assignment',
|
|
'optional' => false,
|
|
'service_points' => [
|
|
['name' => 'Consultation Room 1', 'destination' => 'Consultation Room 1', 'code' => 'CR1'],
|
|
],
|
|
],
|
|
[
|
|
'code' => 'laboratory',
|
|
'department' => 'laboratory',
|
|
'name' => 'Laboratory',
|
|
'prefix' => 'L',
|
|
'strategy' => 'fifo',
|
|
'routing_mode' => 'assigned_only',
|
|
'routing_strategy' => 'least_busy',
|
|
'optional' => true,
|
|
'service_points' => [
|
|
['name' => 'Sample Collection Desk 1', 'destination' => 'Sample Desk 1', 'code' => 'LD1'],
|
|
],
|
|
],
|
|
[
|
|
'code' => 'imaging',
|
|
'department' => 'imaging',
|
|
'name' => 'Imaging',
|
|
'prefix' => 'I',
|
|
'strategy' => 'fifo',
|
|
'routing_mode' => 'assigned_only',
|
|
'routing_strategy' => 'skill_based',
|
|
'optional' => true,
|
|
'service_points' => [
|
|
['name' => 'X-Ray', 'destination' => 'X-Ray Room', 'code' => 'XR1'],
|
|
],
|
|
],
|
|
[
|
|
'code' => 'pharmacy',
|
|
'department' => 'pharmacy',
|
|
'name' => 'Pharmacy',
|
|
'prefix' => 'P',
|
|
'strategy' => 'fifo',
|
|
'routing_mode' => 'assigned_only',
|
|
'routing_strategy' => 'least_busy',
|
|
'optional' => false,
|
|
'service_points' => [
|
|
['name' => 'Pharmacy Counter 1', 'destination' => 'Pharmacy Counter 1', 'code' => 'PC1'],
|
|
],
|
|
],
|
|
[
|
|
'code' => 'billing',
|
|
'department' => 'billing',
|
|
'name' => 'Billing',
|
|
'prefix' => 'B',
|
|
'strategy' => 'fifo',
|
|
'routing_mode' => 'assigned_only',
|
|
'routing_strategy' => 'round_robin',
|
|
'optional' => false,
|
|
'service_points' => [
|
|
['name' => 'Cashier 1', 'destination' => 'Cashier 1', 'code' => 'CA1'],
|
|
],
|
|
],
|
|
],
|
|
],
|
|
|
|
'restaurant' => [
|
|
'label' => 'Restaurant',
|
|
'description' => 'Kitchen production queues and pickup — integrates with Ladill POS.',
|
|
'ticket_entity' => 'order',
|
|
'integrations' => ['pos'],
|
|
'display_layout' => 'split',
|
|
'terminology' => [
|
|
'ticket' => 'Order',
|
|
'tickets' => 'Orders',
|
|
'queue' => 'Kitchen queue',
|
|
'service_point' => 'Station',
|
|
'worker' => 'Cook',
|
|
'customer' => 'Guest',
|
|
'call_next' => 'Bump next order',
|
|
],
|
|
'announcement' => [
|
|
'en' => 'Order :ticket is ready for pickup.',
|
|
'fr' => 'Commande :ticket prête à emporter.',
|
|
'with_staff' => 'Order :ticket — :destination.',
|
|
],
|
|
'kpis' => [
|
|
'kitchen_prep_time',
|
|
'order_completion_time',
|
|
'station_utilization',
|
|
],
|
|
'workflow' => [
|
|
'name' => 'Kitchen production',
|
|
'description' => 'Order through pickup',
|
|
],
|
|
'departments' => [
|
|
['code' => 'orders', 'name' => 'Orders', 'type' => 'general'],
|
|
['code' => 'kitchen', 'name' => 'Kitchen', 'type' => 'general'],
|
|
['code' => 'packing', 'name' => 'Packing', 'type' => 'general'],
|
|
['code' => 'pickup', 'name' => 'Pickup', 'type' => 'collections'],
|
|
],
|
|
'stages' => [
|
|
[
|
|
'code' => 'orders',
|
|
'department' => 'orders',
|
|
'name' => 'New orders',
|
|
'prefix' => 'O',
|
|
'strategy' => 'fifo',
|
|
'routing_mode' => 'shared_pool',
|
|
'routing_strategy' => 'round_robin',
|
|
'service_points' => [
|
|
['name' => 'Expo', 'destination' => 'Expo', 'code' => 'EX1'],
|
|
],
|
|
],
|
|
[
|
|
'code' => 'grill',
|
|
'department' => 'kitchen',
|
|
'name' => 'Grill',
|
|
'prefix' => 'G',
|
|
'strategy' => 'fifo',
|
|
'routing_mode' => 'assigned_only',
|
|
'routing_strategy' => 'skill_based',
|
|
'service_points' => [
|
|
['name' => 'Grill Station', 'destination' => 'Grill', 'code' => 'GR1'],
|
|
],
|
|
],
|
|
[
|
|
'code' => 'fryer',
|
|
'department' => 'kitchen',
|
|
'name' => 'Fryer',
|
|
'prefix' => 'F',
|
|
'strategy' => 'fifo',
|
|
'routing_mode' => 'assigned_only',
|
|
'routing_strategy' => 'skill_based',
|
|
'service_points' => [
|
|
['name' => 'Fryer Station', 'destination' => 'Fryer', 'code' => 'FR1'],
|
|
],
|
|
],
|
|
[
|
|
'code' => 'drinks',
|
|
'department' => 'kitchen',
|
|
'name' => 'Drinks',
|
|
'prefix' => 'D',
|
|
'strategy' => 'fifo',
|
|
'routing_mode' => 'assigned_only',
|
|
'routing_strategy' => 'least_busy',
|
|
'service_points' => [
|
|
['name' => 'Drinks Station', 'destination' => 'Drinks', 'code' => 'DR1'],
|
|
],
|
|
],
|
|
[
|
|
'code' => 'packing',
|
|
'department' => 'packing',
|
|
'name' => 'Packing',
|
|
'prefix' => 'K',
|
|
'strategy' => 'fifo',
|
|
'routing_mode' => 'shared_pool',
|
|
'routing_strategy' => 'round_robin',
|
|
'service_points' => [
|
|
['name' => 'Packing Bench', 'destination' => 'Packing', 'code' => 'PK1'],
|
|
],
|
|
],
|
|
[
|
|
'code' => 'pickup',
|
|
'department' => 'pickup',
|
|
'name' => 'Pickup',
|
|
'prefix' => 'U',
|
|
'strategy' => 'fifo',
|
|
'routing_mode' => 'shared_pool',
|
|
'routing_strategy' => 'round_robin',
|
|
'service_points' => [
|
|
['name' => 'Pickup Counter', 'destination' => 'Pickup', 'code' => 'PU1'],
|
|
],
|
|
],
|
|
],
|
|
],
|
|
|
|
'banking' => [
|
|
'label' => 'Banking',
|
|
'description' => 'Central ticketing with next-available tellers and specialty desks.',
|
|
'ticket_entity' => 'customer',
|
|
'integrations' => [],
|
|
'display_layout' => 'standard',
|
|
'terminology' => [
|
|
'ticket' => 'Ticket',
|
|
'tickets' => 'Tickets',
|
|
'queue' => 'Queue',
|
|
'service_point' => 'Counter',
|
|
'worker' => 'Teller',
|
|
'customer' => 'Customer',
|
|
'call_next' => 'Call next',
|
|
],
|
|
'announcement' => [
|
|
'en' => 'Ticket :ticket, please proceed to :destination.',
|
|
'fr' => 'Ticket :ticket, veuillez vous rendre au :destination.',
|
|
'with_staff' => 'Ticket :ticket, please proceed to :destination.',
|
|
],
|
|
'kpis' => [
|
|
'teller_efficiency',
|
|
'sla_compliance',
|
|
'queue_abandonment',
|
|
],
|
|
'workflow' => [
|
|
'name' => 'Branch visit',
|
|
'description' => 'Reception through service exit',
|
|
],
|
|
'departments' => [
|
|
['code' => 'reception', 'name' => 'Reception', 'type' => 'reception'],
|
|
['code' => 'teller', 'name' => 'Teller', 'type' => 'cashier'],
|
|
['code' => 'customer_service', 'name' => 'Customer Service', 'type' => 'customer_service'],
|
|
['code' => 'loans', 'name' => 'Loans', 'type' => 'general'],
|
|
['code' => 'accounts', 'name' => 'Account Opening', 'type' => 'general'],
|
|
['code' => 'forex', 'name' => 'Foreign Exchange', 'type' => 'cashier'],
|
|
],
|
|
'stages' => [
|
|
[
|
|
'code' => 'reception',
|
|
'department' => 'reception',
|
|
'name' => 'Reception',
|
|
'prefix' => 'A',
|
|
'strategy' => 'fifo',
|
|
'routing_mode' => 'shared_pool',
|
|
'routing_strategy' => 'round_robin',
|
|
'service_points' => [
|
|
['name' => 'Reception Desk', 'destination' => 'Reception', 'code' => 'R1'],
|
|
],
|
|
],
|
|
[
|
|
'code' => 'teller',
|
|
'department' => 'teller',
|
|
'name' => 'Teller',
|
|
'prefix' => 'T',
|
|
'strategy' => 'fifo',
|
|
'routing_mode' => 'shared_pool',
|
|
'routing_strategy' => 'least_busy',
|
|
'service_points' => [
|
|
['name' => 'Teller 1', 'destination' => 'Counter 1', 'code' => 'T1'],
|
|
['name' => 'Teller 2', 'destination' => 'Counter 2', 'code' => 'T2'],
|
|
],
|
|
],
|
|
[
|
|
'code' => 'customer_service',
|
|
'department' => 'customer_service',
|
|
'name' => 'Customer Service',
|
|
'prefix' => 'S',
|
|
'strategy' => 'priority',
|
|
'routing_mode' => 'shared_pool',
|
|
'routing_strategy' => 'skill_based',
|
|
'service_points' => [
|
|
['name' => 'Service Desk 1', 'destination' => 'Service Desk 1', 'code' => 'S1'],
|
|
],
|
|
],
|
|
[
|
|
'code' => 'loans',
|
|
'department' => 'loans',
|
|
'name' => 'Loans',
|
|
'prefix' => 'L',
|
|
'strategy' => 'appointment',
|
|
'routing_mode' => 'assigned_only',
|
|
'routing_strategy' => 'manual_assignment',
|
|
'optional' => true,
|
|
'service_points' => [
|
|
['name' => 'Loans Desk', 'destination' => 'Loans Desk', 'code' => 'LN1'],
|
|
],
|
|
],
|
|
[
|
|
'code' => 'accounts',
|
|
'department' => 'accounts',
|
|
'name' => 'Account Opening',
|
|
'prefix' => 'N',
|
|
'strategy' => 'fifo',
|
|
'routing_mode' => 'shared_pool',
|
|
'routing_strategy' => 'round_robin',
|
|
'optional' => true,
|
|
'service_points' => [
|
|
['name' => 'Accounts Desk', 'destination' => 'Accounts Desk', 'code' => 'AC1'],
|
|
],
|
|
],
|
|
[
|
|
'code' => 'forex',
|
|
'department' => 'forex',
|
|
'name' => 'Foreign Exchange',
|
|
'prefix' => 'X',
|
|
'strategy' => 'fifo',
|
|
'routing_mode' => 'shared_pool',
|
|
'routing_strategy' => 'round_robin',
|
|
'optional' => true,
|
|
'service_points' => [
|
|
['name' => 'Forex Counter', 'destination' => 'Forex', 'code' => 'FX1'],
|
|
],
|
|
],
|
|
],
|
|
],
|
|
|
|
'government' => [
|
|
'label' => 'Government Office',
|
|
'description' => 'Passport, DVLA, tax, and municipal service workflows.',
|
|
'ticket_entity' => 'application',
|
|
'integrations' => [],
|
|
'display_layout' => 'standard',
|
|
'terminology' => [
|
|
'ticket' => 'Application',
|
|
'tickets' => 'Applications',
|
|
'queue' => 'Queue',
|
|
'service_point' => 'Window',
|
|
'worker' => 'Officer',
|
|
'customer' => 'Citizen',
|
|
'call_next' => 'Call next',
|
|
],
|
|
'announcement' => [
|
|
'en' => 'Application :ticket, please proceed to :destination.',
|
|
'with_staff' => 'Application :ticket, please proceed to :destination.',
|
|
],
|
|
'kpis' => ['processing_time', 'applications_completed'],
|
|
'workflow' => ['name' => 'Citizen service', 'description' => 'Reception through collection'],
|
|
'departments' => [
|
|
['code' => 'reception', 'name' => 'Reception', 'type' => 'reception'],
|
|
['code' => 'verification', 'name' => 'Verification', 'type' => 'verification'],
|
|
['code' => 'processing', 'name' => 'Processing', 'type' => 'general'],
|
|
['code' => 'payment', 'name' => 'Payment', 'type' => 'payments'],
|
|
['code' => 'collection', 'name' => 'Collection', 'type' => 'collections'],
|
|
],
|
|
'stages' => [
|
|
[
|
|
'code' => 'reception',
|
|
'department' => 'reception',
|
|
'name' => 'Reception',
|
|
'prefix' => 'A',
|
|
'strategy' => 'fifo',
|
|
'routing_mode' => 'shared_pool',
|
|
'routing_strategy' => 'round_robin',
|
|
'service_points' => [['name' => 'Reception', 'destination' => 'Reception', 'code' => 'R1']],
|
|
],
|
|
[
|
|
'code' => 'verification',
|
|
'department' => 'verification',
|
|
'name' => 'Verification',
|
|
'prefix' => 'V',
|
|
'strategy' => 'fifo',
|
|
'routing_mode' => 'shared_pool',
|
|
'routing_strategy' => 'round_robin',
|
|
'service_points' => [['name' => 'Verification Window', 'destination' => 'Window 1', 'code' => 'V1']],
|
|
],
|
|
[
|
|
'code' => 'processing',
|
|
'department' => 'processing',
|
|
'name' => 'Processing',
|
|
'prefix' => 'P',
|
|
'strategy' => 'fifo',
|
|
'routing_mode' => 'shared_pool',
|
|
'routing_strategy' => 'least_busy',
|
|
'service_points' => [['name' => 'Processing Desk', 'destination' => 'Processing', 'code' => 'P1']],
|
|
],
|
|
[
|
|
'code' => 'payment',
|
|
'department' => 'payment',
|
|
'name' => 'Payment',
|
|
'prefix' => 'Y',
|
|
'strategy' => 'fifo',
|
|
'routing_mode' => 'shared_pool',
|
|
'routing_strategy' => 'round_robin',
|
|
'service_points' => [['name' => 'Payment Counter', 'destination' => 'Payments', 'code' => 'Y1']],
|
|
],
|
|
[
|
|
'code' => 'collection',
|
|
'department' => 'collection',
|
|
'name' => 'Collection',
|
|
'prefix' => 'C',
|
|
'strategy' => 'fifo',
|
|
'routing_mode' => 'shared_pool',
|
|
'routing_strategy' => 'round_robin',
|
|
'service_points' => [['name' => 'Collection Window', 'destination' => 'Collection', 'code' => 'C1']],
|
|
],
|
|
],
|
|
],
|
|
|
|
'retail_service' => [
|
|
'label' => 'Retail Service Centre',
|
|
'description' => 'Phone, electronics, and appliance repair centres.',
|
|
'ticket_entity' => 'device',
|
|
'integrations' => [],
|
|
'display_layout' => 'compact',
|
|
'terminology' => [
|
|
'ticket' => 'Job',
|
|
'tickets' => 'Jobs',
|
|
'queue' => 'Workbench queue',
|
|
'service_point' => 'Bench',
|
|
'worker' => 'Technician',
|
|
'customer' => 'Customer',
|
|
'call_next' => 'Call next job',
|
|
],
|
|
'announcement' => [
|
|
'en' => 'Job :ticket, please proceed to :destination.',
|
|
'with_staff' => 'Job :ticket — :destination.',
|
|
],
|
|
'kpis' => ['avg_repair_duration', 'bench_utilization'],
|
|
'workflow' => ['name' => 'Repair journey', 'description' => 'Reception through pickup'],
|
|
'departments' => [
|
|
['code' => 'reception', 'name' => 'Reception', 'type' => 'reception'],
|
|
['code' => 'diagnosis', 'name' => 'Diagnosis', 'type' => 'technical_support'],
|
|
['code' => 'repair', 'name' => 'Repair', 'type' => 'technical_support'],
|
|
['code' => 'qc', 'name' => 'Quality Check', 'type' => 'verification'],
|
|
['code' => 'pickup', 'name' => 'Pickup', 'type' => 'collections'],
|
|
],
|
|
'stages' => [
|
|
[
|
|
'code' => 'reception',
|
|
'department' => 'reception',
|
|
'name' => 'Reception',
|
|
'prefix' => 'R',
|
|
'strategy' => 'fifo',
|
|
'routing_mode' => 'shared_pool',
|
|
'routing_strategy' => 'round_robin',
|
|
'service_points' => [['name' => 'Front Desk', 'destination' => 'Front Desk', 'code' => 'FD1']],
|
|
],
|
|
[
|
|
'code' => 'diagnosis',
|
|
'department' => 'diagnosis',
|
|
'name' => 'Diagnosis',
|
|
'prefix' => 'D',
|
|
'strategy' => 'fifo',
|
|
'routing_mode' => 'assigned_only',
|
|
'routing_strategy' => 'skill_based',
|
|
'service_points' => [['name' => 'Diagnosis Bench', 'destination' => 'Diagnosis', 'code' => 'DB1']],
|
|
],
|
|
[
|
|
'code' => 'repair',
|
|
'department' => 'repair',
|
|
'name' => 'Repair',
|
|
'prefix' => 'X',
|
|
'strategy' => 'fifo',
|
|
'routing_mode' => 'assigned_only',
|
|
'routing_strategy' => 'skill_based',
|
|
'service_points' => [['name' => 'Repair Bench 1', 'destination' => 'Bench 1', 'code' => 'RB1']],
|
|
],
|
|
[
|
|
'code' => 'qc',
|
|
'department' => 'qc',
|
|
'name' => 'Quality Check',
|
|
'prefix' => 'Q',
|
|
'strategy' => 'fifo',
|
|
'routing_mode' => 'shared_pool',
|
|
'routing_strategy' => 'round_robin',
|
|
'service_points' => [['name' => 'QC Desk', 'destination' => 'QC', 'code' => 'QC1']],
|
|
],
|
|
[
|
|
'code' => 'pickup',
|
|
'department' => 'pickup',
|
|
'name' => 'Pickup',
|
|
'prefix' => 'P',
|
|
'strategy' => 'fifo',
|
|
'routing_mode' => 'shared_pool',
|
|
'routing_strategy' => 'round_robin',
|
|
'service_points' => [['name' => 'Pickup Counter', 'destination' => 'Pickup', 'code' => 'PU1']],
|
|
],
|
|
],
|
|
],
|
|
|
|
'vehicle' => [
|
|
'label' => 'Vehicle Service Centre',
|
|
'description' => 'Inspection, mechanic bays, electrical, wash, and release.',
|
|
'ticket_entity' => 'vehicle',
|
|
'integrations' => [],
|
|
'display_layout' => 'split',
|
|
'terminology' => [
|
|
'ticket' => 'Vehicle',
|
|
'tickets' => 'Vehicles',
|
|
'queue' => 'Bay queue',
|
|
'service_point' => 'Bay',
|
|
'worker' => 'Technician',
|
|
'customer' => 'Owner',
|
|
'call_next' => 'Call next vehicle',
|
|
],
|
|
'announcement' => [
|
|
'en' => 'Vehicle :ticket, please proceed to :destination.',
|
|
'with_staff' => 'Vehicle :ticket — :destination.',
|
|
],
|
|
'kpis' => ['avg_repair_duration', 'bay_utilization'],
|
|
'workflow' => ['name' => 'Vehicle service', 'description' => 'Reception through release'],
|
|
'departments' => [
|
|
['code' => 'reception', 'name' => 'Reception', 'type' => 'reception'],
|
|
['code' => 'inspection', 'name' => 'Inspection', 'type' => 'verification'],
|
|
['code' => 'mechanic', 'name' => 'Mechanic', 'type' => 'technical_support'],
|
|
['code' => 'electrical', 'name' => 'Electrical', 'type' => 'technical_support'],
|
|
['code' => 'wash', 'name' => 'Wash', 'type' => 'general'],
|
|
['code' => 'billing', 'name' => 'Billing', 'type' => 'payments'],
|
|
],
|
|
'stages' => [
|
|
[
|
|
'code' => 'reception',
|
|
'department' => 'reception',
|
|
'name' => 'Reception',
|
|
'prefix' => 'V',
|
|
'strategy' => 'fifo',
|
|
'routing_mode' => 'shared_pool',
|
|
'routing_strategy' => 'round_robin',
|
|
'service_points' => [['name' => 'Service Desk', 'destination' => 'Reception', 'code' => 'SD1']],
|
|
],
|
|
[
|
|
'code' => 'inspection',
|
|
'department' => 'inspection',
|
|
'name' => 'Inspection',
|
|
'prefix' => 'I',
|
|
'strategy' => 'fifo',
|
|
'routing_mode' => 'shared_pool',
|
|
'routing_strategy' => 'round_robin',
|
|
'service_points' => [['name' => 'Inspection Bay', 'destination' => 'Inspection', 'code' => 'IB1']],
|
|
],
|
|
[
|
|
'code' => 'mechanic',
|
|
'department' => 'mechanic',
|
|
'name' => 'Mechanic',
|
|
'prefix' => 'M',
|
|
'strategy' => 'fifo',
|
|
'routing_mode' => 'assigned_only',
|
|
'routing_strategy' => 'skill_based',
|
|
'service_points' => [
|
|
['name' => 'Bay 1', 'destination' => 'Bay 1', 'code' => 'B1'],
|
|
['name' => 'Bay 2', 'destination' => 'Bay 2', 'code' => 'B2'],
|
|
],
|
|
],
|
|
[
|
|
'code' => 'electrical',
|
|
'department' => 'electrical',
|
|
'name' => 'Electrical',
|
|
'prefix' => 'E',
|
|
'strategy' => 'fifo',
|
|
'routing_mode' => 'assigned_only',
|
|
'routing_strategy' => 'skill_based',
|
|
'optional' => true,
|
|
'service_points' => [['name' => 'Electrical Bay', 'destination' => 'Electrical', 'code' => 'EB1']],
|
|
],
|
|
[
|
|
'code' => 'wash',
|
|
'department' => 'wash',
|
|
'name' => 'Wash',
|
|
'prefix' => 'W',
|
|
'strategy' => 'fifo',
|
|
'routing_mode' => 'shared_pool',
|
|
'routing_strategy' => 'round_robin',
|
|
'optional' => true,
|
|
'service_points' => [['name' => 'Wash Bay', 'destination' => 'Wash', 'code' => 'WB1']],
|
|
],
|
|
[
|
|
'code' => 'billing',
|
|
'department' => 'billing',
|
|
'name' => 'Billing',
|
|
'prefix' => 'B',
|
|
'strategy' => 'fifo',
|
|
'routing_mode' => 'shared_pool',
|
|
'routing_strategy' => 'round_robin',
|
|
'service_points' => [['name' => 'Cashier', 'destination' => 'Billing', 'code' => 'CA1']],
|
|
],
|
|
],
|
|
],
|
|
|
|
'hospitality' => [
|
|
'label' => 'Hotel / Hospitality',
|
|
'description' => 'Check-in, concierge, guest services, and checkout.',
|
|
'ticket_entity' => 'guest',
|
|
'integrations' => [],
|
|
'display_layout' => 'compact',
|
|
'terminology' => [
|
|
'ticket' => 'Guest',
|
|
'tickets' => 'Guests',
|
|
'queue' => 'Front desk queue',
|
|
'service_point' => 'Desk',
|
|
'worker' => 'Agent',
|
|
'customer' => 'Guest',
|
|
'call_next' => 'Call next guest',
|
|
],
|
|
'announcement' => [
|
|
'en' => 'Guest :ticket, please proceed to :destination.',
|
|
'with_staff' => 'Guest :ticket — :destination.',
|
|
],
|
|
'kpis' => ['checkin_time', 'desk_utilization'],
|
|
'workflow' => ['name' => 'Guest journey', 'description' => 'Arrival through checkout'],
|
|
'departments' => [
|
|
['code' => 'reception', 'name' => 'Reception', 'type' => 'reception'],
|
|
['code' => 'checkin', 'name' => 'Check-in', 'type' => 'general'],
|
|
['code' => 'concierge', 'name' => 'Concierge', 'type' => 'customer_service'],
|
|
['code' => 'checkout', 'name' => 'Checkout', 'type' => 'cashier'],
|
|
],
|
|
'stages' => [
|
|
[
|
|
'code' => 'reception',
|
|
'department' => 'reception',
|
|
'name' => 'Reception',
|
|
'prefix' => 'H',
|
|
'strategy' => 'fifo',
|
|
'routing_mode' => 'shared_pool',
|
|
'routing_strategy' => 'round_robin',
|
|
'service_points' => [['name' => 'Lobby Desk', 'destination' => 'Lobby', 'code' => 'LB1']],
|
|
],
|
|
[
|
|
'code' => 'checkin',
|
|
'department' => 'checkin',
|
|
'name' => 'Check-in',
|
|
'prefix' => 'C',
|
|
'strategy' => 'appointment',
|
|
'routing_mode' => 'shared_pool',
|
|
'routing_strategy' => 'least_busy',
|
|
'service_points' => [['name' => 'Check-in Desk 1', 'destination' => 'Check-in 1', 'code' => 'CI1']],
|
|
],
|
|
[
|
|
'code' => 'concierge',
|
|
'department' => 'concierge',
|
|
'name' => 'Concierge',
|
|
'prefix' => 'G',
|
|
'strategy' => 'fifo',
|
|
'routing_mode' => 'shared_pool',
|
|
'routing_strategy' => 'round_robin',
|
|
'optional' => true,
|
|
'service_points' => [['name' => 'Concierge Desk', 'destination' => 'Concierge', 'code' => 'CG1']],
|
|
],
|
|
[
|
|
'code' => 'checkout',
|
|
'department' => 'checkout',
|
|
'name' => 'Checkout',
|
|
'prefix' => 'X',
|
|
'strategy' => 'fifo',
|
|
'routing_mode' => 'shared_pool',
|
|
'routing_strategy' => 'round_robin',
|
|
'service_points' => [['name' => 'Checkout Desk', 'destination' => 'Checkout', 'code' => 'CO1']],
|
|
],
|
|
],
|
|
],
|
|
|
|
'logistics' => [
|
|
'label' => 'Logistics',
|
|
'description' => 'Dock allocation, loading, inspection, and dispatch.',
|
|
'ticket_entity' => 'shipment',
|
|
'integrations' => [],
|
|
'display_layout' => 'compact',
|
|
'terminology' => [
|
|
'ticket' => 'Shipment',
|
|
'tickets' => 'Shipments',
|
|
'queue' => 'Dock queue',
|
|
'service_point' => 'Dock',
|
|
'worker' => 'Handler',
|
|
'customer' => 'Carrier',
|
|
'call_next' => 'Call next shipment',
|
|
],
|
|
'announcement' => [
|
|
'en' => 'Shipment :ticket, please proceed to :destination.',
|
|
'with_staff' => 'Shipment :ticket — :destination.',
|
|
],
|
|
'kpis' => ['dock_turnaround', 'dispatch_time'],
|
|
'workflow' => ['name' => 'Yard operations', 'description' => 'Arrival through dispatch'],
|
|
'departments' => [
|
|
['code' => 'arrival', 'name' => 'Arrival', 'type' => 'reception'],
|
|
['code' => 'dock', 'name' => 'Dock Allocation', 'type' => 'general'],
|
|
['code' => 'loading', 'name' => 'Loading', 'type' => 'general'],
|
|
['code' => 'inspection', 'name' => 'Inspection', 'type' => 'verification'],
|
|
['code' => 'dispatch', 'name' => 'Dispatch', 'type' => 'collections'],
|
|
],
|
|
'stages' => [
|
|
[
|
|
'code' => 'arrival',
|
|
'department' => 'arrival',
|
|
'name' => 'Arrival',
|
|
'prefix' => 'A',
|
|
'strategy' => 'fifo',
|
|
'routing_mode' => 'shared_pool',
|
|
'routing_strategy' => 'round_robin',
|
|
'service_points' => [['name' => 'Gate', 'destination' => 'Gate', 'code' => 'GT1']],
|
|
],
|
|
[
|
|
'code' => 'dock',
|
|
'department' => 'dock',
|
|
'name' => 'Dock Allocation',
|
|
'prefix' => 'D',
|
|
'strategy' => 'fifo',
|
|
'routing_mode' => 'assigned_only',
|
|
'routing_strategy' => 'least_busy',
|
|
'service_points' => [
|
|
['name' => 'Dock 1', 'destination' => 'Dock 1', 'code' => 'D1'],
|
|
['name' => 'Dock 2', 'destination' => 'Dock 2', 'code' => 'D2'],
|
|
],
|
|
],
|
|
[
|
|
'code' => 'loading',
|
|
'department' => 'loading',
|
|
'name' => 'Loading',
|
|
'prefix' => 'L',
|
|
'strategy' => 'fifo',
|
|
'routing_mode' => 'assigned_only',
|
|
'routing_strategy' => 'manual_assignment',
|
|
'service_points' => [['name' => 'Loading Bay', 'destination' => 'Loading', 'code' => 'LB1']],
|
|
],
|
|
[
|
|
'code' => 'inspection',
|
|
'department' => 'inspection',
|
|
'name' => 'Inspection',
|
|
'prefix' => 'I',
|
|
'strategy' => 'fifo',
|
|
'routing_mode' => 'shared_pool',
|
|
'routing_strategy' => 'round_robin',
|
|
'service_points' => [['name' => 'Inspection', 'destination' => 'Inspection', 'code' => 'IN1']],
|
|
],
|
|
[
|
|
'code' => 'dispatch',
|
|
'department' => 'dispatch',
|
|
'name' => 'Dispatch',
|
|
'prefix' => 'X',
|
|
'strategy' => 'fifo',
|
|
'routing_mode' => 'shared_pool',
|
|
'routing_strategy' => 'round_robin',
|
|
'service_points' => [['name' => 'Dispatch Office', 'destination' => 'Dispatch', 'code' => 'DX1']],
|
|
],
|
|
],
|
|
],
|
|
|
|
'university' => [
|
|
'label' => 'University',
|
|
'description' => 'Admissions, finance, registrar, library, and student affairs.',
|
|
'ticket_entity' => 'student',
|
|
'integrations' => [],
|
|
'display_layout' => 'standard',
|
|
'terminology' => [
|
|
'ticket' => 'Ticket',
|
|
'tickets' => 'Tickets',
|
|
'queue' => 'Queue',
|
|
'service_point' => 'Desk',
|
|
'worker' => 'Officer',
|
|
'customer' => 'Student',
|
|
'call_next' => 'Call next',
|
|
],
|
|
'announcement' => [
|
|
'en' => 'Ticket :ticket, please proceed to :destination.',
|
|
'with_staff' => 'Ticket :ticket — :destination.',
|
|
],
|
|
'kpis' => ['avg_wait_time', 'desk_throughput'],
|
|
'workflow' => ['name' => 'Student services', 'description' => 'Campus service desks'],
|
|
'departments' => [
|
|
['code' => 'admissions', 'name' => 'Admissions', 'type' => 'reception'],
|
|
['code' => 'finance', 'name' => 'Finance', 'type' => 'payments'],
|
|
['code' => 'registrar', 'name' => 'Registrar', 'type' => 'general'],
|
|
['code' => 'library', 'name' => 'Library', 'type' => 'general'],
|
|
['code' => 'student_affairs', 'name' => 'Student Affairs', 'type' => 'customer_service'],
|
|
],
|
|
'stages' => [
|
|
[
|
|
'code' => 'admissions',
|
|
'department' => 'admissions',
|
|
'name' => 'Admissions',
|
|
'prefix' => 'A',
|
|
'strategy' => 'fifo',
|
|
'routing_mode' => 'shared_pool',
|
|
'routing_strategy' => 'round_robin',
|
|
'service_points' => [['name' => 'Admissions Desk', 'destination' => 'Admissions', 'code' => 'AD1']],
|
|
],
|
|
[
|
|
'code' => 'finance',
|
|
'department' => 'finance',
|
|
'name' => 'Finance',
|
|
'prefix' => 'F',
|
|
'strategy' => 'fifo',
|
|
'routing_mode' => 'shared_pool',
|
|
'routing_strategy' => 'round_robin',
|
|
'service_points' => [['name' => 'Finance Counter', 'destination' => 'Finance', 'code' => 'FN1']],
|
|
],
|
|
[
|
|
'code' => 'registrar',
|
|
'department' => 'registrar',
|
|
'name' => 'Registrar',
|
|
'prefix' => 'R',
|
|
'strategy' => 'fifo',
|
|
'routing_mode' => 'shared_pool',
|
|
'routing_strategy' => 'round_robin',
|
|
'service_points' => [['name' => 'Registrar Desk', 'destination' => 'Registrar', 'code' => 'RG1']],
|
|
],
|
|
[
|
|
'code' => 'library',
|
|
'department' => 'library',
|
|
'name' => 'Library',
|
|
'prefix' => 'L',
|
|
'strategy' => 'fifo',
|
|
'routing_mode' => 'shared_pool',
|
|
'routing_strategy' => 'round_robin',
|
|
'optional' => true,
|
|
'service_points' => [['name' => 'Library Desk', 'destination' => 'Library', 'code' => 'LB1']],
|
|
],
|
|
[
|
|
'code' => 'student_affairs',
|
|
'department' => 'student_affairs',
|
|
'name' => 'Student Affairs',
|
|
'prefix' => 'S',
|
|
'strategy' => 'fifo',
|
|
'routing_mode' => 'shared_pool',
|
|
'routing_strategy' => 'round_robin',
|
|
'optional' => true,
|
|
'service_points' => [['name' => 'Student Affairs', 'destination' => 'Student Affairs', 'code' => 'SA1']],
|
|
],
|
|
],
|
|
],
|
|
|
|
'telecom' => [
|
|
'label' => 'Telecom Service Centre',
|
|
'description' => 'SIM registration, customer care, technical support, and device repair.',
|
|
'ticket_entity' => 'customer',
|
|
'integrations' => [],
|
|
'display_layout' => 'standard',
|
|
'terminology' => [
|
|
'ticket' => 'Ticket',
|
|
'tickets' => 'Tickets',
|
|
'queue' => 'Queue',
|
|
'service_point' => 'Counter',
|
|
'worker' => 'Agent',
|
|
'customer' => 'Customer',
|
|
'call_next' => 'Call next',
|
|
],
|
|
'announcement' => [
|
|
'en' => 'Ticket :ticket, please proceed to :destination.',
|
|
'with_staff' => 'Ticket :ticket — :destination.',
|
|
],
|
|
'kpis' => ['avg_wait_time', 'agent_utilization'],
|
|
'workflow' => ['name' => 'Store visit', 'description' => 'Reception through support'],
|
|
'departments' => [
|
|
['code' => 'reception', 'name' => 'Reception', 'type' => 'reception'],
|
|
['code' => 'sim', 'name' => 'SIM Registration', 'type' => 'general'],
|
|
['code' => 'care', 'name' => 'Customer Care', 'type' => 'customer_service'],
|
|
['code' => 'tech', 'name' => 'Technical Support', 'type' => 'technical_support'],
|
|
['code' => 'repair', 'name' => 'Device Repair', 'type' => 'technical_support'],
|
|
],
|
|
'stages' => [
|
|
[
|
|
'code' => 'reception',
|
|
'department' => 'reception',
|
|
'name' => 'Reception',
|
|
'prefix' => 'A',
|
|
'strategy' => 'fifo',
|
|
'routing_mode' => 'shared_pool',
|
|
'routing_strategy' => 'round_robin',
|
|
'service_points' => [['name' => 'Reception', 'destination' => 'Reception', 'code' => 'R1']],
|
|
],
|
|
[
|
|
'code' => 'sim',
|
|
'department' => 'sim',
|
|
'name' => 'SIM Registration',
|
|
'prefix' => 'S',
|
|
'strategy' => 'fifo',
|
|
'routing_mode' => 'shared_pool',
|
|
'routing_strategy' => 'round_robin',
|
|
'service_points' => [['name' => 'SIM Desk', 'destination' => 'SIM Desk', 'code' => 'SM1']],
|
|
],
|
|
[
|
|
'code' => 'care',
|
|
'department' => 'care',
|
|
'name' => 'Customer Care',
|
|
'prefix' => 'C',
|
|
'strategy' => 'priority',
|
|
'routing_mode' => 'shared_pool',
|
|
'routing_strategy' => 'least_busy',
|
|
'service_points' => [['name' => 'Care Desk 1', 'destination' => 'Care 1', 'code' => 'CD1']],
|
|
],
|
|
[
|
|
'code' => 'tech',
|
|
'department' => 'tech',
|
|
'name' => 'Technical Support',
|
|
'prefix' => 'T',
|
|
'strategy' => 'fifo',
|
|
'routing_mode' => 'assigned_only',
|
|
'routing_strategy' => 'skill_based',
|
|
'service_points' => [['name' => 'Tech Desk', 'destination' => 'Tech Support', 'code' => 'TD1']],
|
|
],
|
|
[
|
|
'code' => 'repair',
|
|
'department' => 'repair',
|
|
'name' => 'Device Repair',
|
|
'prefix' => 'D',
|
|
'strategy' => 'fifo',
|
|
'routing_mode' => 'assigned_only',
|
|
'routing_strategy' => 'skill_based',
|
|
'optional' => true,
|
|
'service_points' => [['name' => 'Repair Bench', 'destination' => 'Repair', 'code' => 'RB1']],
|
|
],
|
|
],
|
|
],
|
|
|
|
'events' => [
|
|
'label' => 'Events',
|
|
'description' => 'Registration, badge printing, and hall entry.',
|
|
'ticket_entity' => 'attendee',
|
|
'integrations' => [],
|
|
'display_layout' => 'media',
|
|
'terminology' => [
|
|
'ticket' => 'Attendee',
|
|
'tickets' => 'Attendees',
|
|
'queue' => 'Line',
|
|
'service_point' => 'Station',
|
|
'worker' => 'Staff',
|
|
'customer' => 'Attendee',
|
|
'call_next' => 'Call next',
|
|
],
|
|
'announcement' => [
|
|
'en' => 'Attendee :ticket, please proceed to :destination.',
|
|
'with_staff' => 'Attendee :ticket — :destination.',
|
|
],
|
|
'kpis' => ['checkin_rate', 'entry_throughput'],
|
|
'workflow' => ['name' => 'Event entry', 'description' => 'Registration through hall'],
|
|
'departments' => [
|
|
['code' => 'registration', 'name' => 'Registration', 'type' => 'reception'],
|
|
['code' => 'badges', 'name' => 'Badge Printing', 'type' => 'general'],
|
|
['code' => 'entry', 'name' => 'Hall Entry', 'type' => 'security'],
|
|
],
|
|
'stages' => [
|
|
[
|
|
'code' => 'registration',
|
|
'department' => 'registration',
|
|
'name' => 'Registration',
|
|
'prefix' => 'E',
|
|
'strategy' => 'fifo',
|
|
'routing_mode' => 'shared_pool',
|
|
'routing_strategy' => 'round_robin',
|
|
'service_points' => [['name' => 'Reg Desk 1', 'destination' => 'Registration 1', 'code' => 'RD1']],
|
|
],
|
|
[
|
|
'code' => 'badges',
|
|
'department' => 'badges',
|
|
'name' => 'Badge Printing',
|
|
'prefix' => 'B',
|
|
'strategy' => 'fifo',
|
|
'routing_mode' => 'shared_pool',
|
|
'routing_strategy' => 'round_robin',
|
|
'service_points' => [['name' => 'Badge Station', 'destination' => 'Badges', 'code' => 'BD1']],
|
|
],
|
|
[
|
|
'code' => 'entry',
|
|
'department' => 'entry',
|
|
'name' => 'Hall Entry',
|
|
'prefix' => 'H',
|
|
'strategy' => 'fifo',
|
|
'routing_mode' => 'shared_pool',
|
|
'routing_strategy' => 'round_robin',
|
|
'service_points' => [['name' => 'Hall Gate', 'destination' => 'Hall Entrance', 'code' => 'HG1']],
|
|
],
|
|
],
|
|
],
|
|
|
|
'church' => [
|
|
'label' => 'Church',
|
|
'description' => 'Reception, counselling, pastoral sessions, and follow-up.',
|
|
'ticket_entity' => 'member',
|
|
'integrations' => [],
|
|
'display_layout' => 'compact',
|
|
'terminology' => [
|
|
'ticket' => 'Visitor',
|
|
'tickets' => 'Visitors',
|
|
'queue' => 'Waiting list',
|
|
'service_point' => 'Room',
|
|
'worker' => 'Counsellor',
|
|
'customer' => 'Member',
|
|
'call_next' => 'Call next',
|
|
],
|
|
'announcement' => [
|
|
'en' => 'Visitor :ticket, please proceed to :destination.',
|
|
'with_staff' => 'Visitor :ticket — :destination.',
|
|
],
|
|
'kpis' => ['session_time', 'followup_rate'],
|
|
'workflow' => ['name' => 'Pastoral care', 'description' => 'Reception through follow-up'],
|
|
'departments' => [
|
|
['code' => 'reception', 'name' => 'Reception', 'type' => 'reception'],
|
|
['code' => 'counselling', 'name' => 'Counselling', 'type' => 'consultation'],
|
|
['code' => 'pastoral', 'name' => 'Pastoral Session', 'type' => 'consultation'],
|
|
['code' => 'followup', 'name' => 'Follow-up', 'type' => 'customer_service'],
|
|
],
|
|
'stages' => [
|
|
[
|
|
'code' => 'reception',
|
|
'department' => 'reception',
|
|
'name' => 'Reception',
|
|
'prefix' => 'R',
|
|
'strategy' => 'fifo',
|
|
'routing_mode' => 'shared_pool',
|
|
'routing_strategy' => 'round_robin',
|
|
'service_points' => [['name' => 'Welcome Desk', 'destination' => 'Welcome Desk', 'code' => 'WD1']],
|
|
],
|
|
[
|
|
'code' => 'counselling',
|
|
'department' => 'counselling',
|
|
'name' => 'Counselling',
|
|
'prefix' => 'C',
|
|
'strategy' => 'appointment',
|
|
'routing_mode' => 'assigned_only',
|
|
'routing_strategy' => 'manual_assignment',
|
|
'service_points' => [['name' => 'Counselling Room 1', 'destination' => 'Room 1', 'code' => 'CR1']],
|
|
],
|
|
[
|
|
'code' => 'pastoral',
|
|
'department' => 'pastoral',
|
|
'name' => 'Pastoral Session',
|
|
'prefix' => 'P',
|
|
'strategy' => 'appointment',
|
|
'routing_mode' => 'assigned_only',
|
|
'routing_strategy' => 'manual_assignment',
|
|
'service_points' => [['name' => 'Pastoral Office', 'destination' => 'Pastoral Office', 'code' => 'PO1']],
|
|
],
|
|
[
|
|
'code' => 'followup',
|
|
'department' => 'followup',
|
|
'name' => 'Follow-up',
|
|
'prefix' => 'F',
|
|
'strategy' => 'fifo',
|
|
'routing_mode' => 'shared_pool',
|
|
'routing_strategy' => 'round_robin',
|
|
'optional' => true,
|
|
'service_points' => [['name' => 'Follow-up Desk', 'destination' => 'Follow-up', 'code' => 'FU1']],
|
|
],
|
|
],
|
|
],
|
|
|
|
'visitor' => [
|
|
'label' => 'Visitor Management',
|
|
'description' => 'General visitor check-in and host queues.',
|
|
'ticket_entity' => 'visitor',
|
|
'integrations' => ['frontdesk'],
|
|
'display_layout' => 'standard',
|
|
'terminology' => [
|
|
'ticket' => 'Visitor',
|
|
'tickets' => 'Visitors',
|
|
'queue' => 'Queue',
|
|
'service_point' => 'Desk',
|
|
'worker' => 'Host',
|
|
'customer' => 'Visitor',
|
|
'call_next' => 'Call next visitor',
|
|
],
|
|
'announcement' => [
|
|
'en' => 'Visitor :ticket, please proceed to :destination.',
|
|
'with_staff' => 'Visitor :ticket — :destination.',
|
|
],
|
|
'kpis' => ['avg_wait_time', 'checkin_rate'],
|
|
'workflow' => ['name' => 'Visitor check-in', 'description' => 'Reception through host'],
|
|
'departments' => [
|
|
['code' => 'reception', 'name' => 'Reception', 'type' => 'reception'],
|
|
['code' => 'host', 'name' => 'Host', 'type' => 'general'],
|
|
],
|
|
'stages' => [
|
|
[
|
|
'code' => 'reception',
|
|
'department' => 'reception',
|
|
'name' => 'Reception',
|
|
'prefix' => 'V',
|
|
'strategy' => 'fifo',
|
|
'routing_mode' => 'shared_pool',
|
|
'routing_strategy' => 'round_robin',
|
|
'service_points' => [['name' => 'Reception Desk', 'destination' => 'Reception', 'code' => 'R1']],
|
|
],
|
|
[
|
|
'code' => 'host',
|
|
'department' => 'host',
|
|
'name' => 'Host Meeting',
|
|
'prefix' => 'H',
|
|
'strategy' => 'fifo',
|
|
'routing_mode' => 'assigned_only',
|
|
'routing_strategy' => 'manual_assignment',
|
|
'service_points' => [['name' => 'Meeting Room 1', 'destination' => 'Meeting Room 1', 'code' => 'MR1']],
|
|
],
|
|
],
|
|
],
|
|
|
|
'retail' => [
|
|
'label' => 'Retail',
|
|
'description' => 'General retail customer service and returns.',
|
|
'ticket_entity' => 'customer',
|
|
'integrations' => ['pos'],
|
|
'display_layout' => 'standard',
|
|
'terminology' => [
|
|
'ticket' => 'Ticket',
|
|
'tickets' => 'Tickets',
|
|
'queue' => 'Queue',
|
|
'service_point' => 'Counter',
|
|
'worker' => 'Associate',
|
|
'customer' => 'Customer',
|
|
'call_next' => 'Call next',
|
|
],
|
|
'announcement' => [
|
|
'en' => 'Ticket :ticket, please proceed to :destination.',
|
|
'with_staff' => 'Ticket :ticket — :destination.',
|
|
],
|
|
'kpis' => ['avg_wait_time', 'counter_utilization'],
|
|
'workflow' => ['name' => 'Store service', 'description' => 'Customer service flow'],
|
|
'departments' => [
|
|
['code' => 'reception', 'name' => 'Customer Service', 'type' => 'customer_service'],
|
|
['code' => 'returns', 'name' => 'Returns', 'type' => 'collections'],
|
|
['code' => 'cashier', 'name' => 'Cashier', 'type' => 'cashier'],
|
|
],
|
|
'stages' => [
|
|
[
|
|
'code' => 'reception',
|
|
'department' => 'reception',
|
|
'name' => 'Customer Service',
|
|
'prefix' => 'A',
|
|
'strategy' => 'fifo',
|
|
'routing_mode' => 'shared_pool',
|
|
'routing_strategy' => 'round_robin',
|
|
'service_points' => [['name' => 'Service Desk 1', 'destination' => 'Service Desk 1', 'code' => 'SD1']],
|
|
],
|
|
[
|
|
'code' => 'returns',
|
|
'department' => 'returns',
|
|
'name' => 'Returns',
|
|
'prefix' => 'R',
|
|
'strategy' => 'fifo',
|
|
'routing_mode' => 'shared_pool',
|
|
'routing_strategy' => 'round_robin',
|
|
'optional' => true,
|
|
'service_points' => [['name' => 'Returns Counter', 'destination' => 'Returns', 'code' => 'RT1']],
|
|
],
|
|
[
|
|
'code' => 'cashier',
|
|
'department' => 'cashier',
|
|
'name' => 'Cashier',
|
|
'prefix' => 'C',
|
|
'strategy' => 'fifo',
|
|
'routing_mode' => 'shared_pool',
|
|
'routing_strategy' => 'least_busy',
|
|
'service_points' => [['name' => 'Cashier 1', 'destination' => 'Cashier 1', 'code' => 'CA1']],
|
|
],
|
|
],
|
|
],
|
|
|
|
'custom' => [
|
|
'label' => 'Custom',
|
|
'description' => 'Start with a blank canvas — add departments, stages, and service points yourself.',
|
|
'ticket_entity' => 'customer',
|
|
'integrations' => [],
|
|
'display_layout' => 'standard',
|
|
'terminology' => [
|
|
'ticket' => 'Ticket',
|
|
'tickets' => 'Tickets',
|
|
'queue' => 'Queue',
|
|
'service_point' => 'Counter',
|
|
'worker' => 'Staff',
|
|
'customer' => 'Customer',
|
|
'call_next' => 'Call next',
|
|
],
|
|
'announcement' => [
|
|
'en' => 'Ticket :ticket, please proceed to :destination.',
|
|
'with_staff' => 'Ticket :ticket — :destination.',
|
|
],
|
|
'kpis' => ['avg_wait_time'],
|
|
'workflow' => ['name' => 'Custom workflow', 'description' => 'Build your own stages'],
|
|
'departments' => [
|
|
['code' => 'reception', 'name' => 'General Reception', 'type' => 'reception'],
|
|
],
|
|
'stages' => [
|
|
[
|
|
'code' => 'reception',
|
|
'department' => 'reception',
|
|
'name' => 'Reception',
|
|
'prefix' => 'A',
|
|
'strategy' => 'fifo',
|
|
'routing_mode' => 'shared_pool',
|
|
'routing_strategy' => 'round_robin',
|
|
'service_points' => [['name' => 'Counter 1', 'destination' => 'Counter 1', 'code' => 'C1']],
|
|
],
|
|
],
|
|
],
|
|
],
|
|
];
|