Database Models
OPBX uses Laravel Eloquent models. Most models are scoped by organization_id through OrganizationScope. Platform admin models are not tenant-scoped.
Model Reference Pages
Auto Dialer
- AutoDialerCampaign — Campaign configuration
- AutoDialerCampaignCallerId — Caller ID pool pivot
- AutoDialerCallerIdStat — Per-Caller ID statistics
App\Models\AutoDialerList— Distribution lists (auto_dialer_lists)App\Models\AutoDialerDestination— List destinations (auto_dialer_destinations)App\Models\AutoDialerCallSession— Campaign call sessions (auto_dialer_call_sessions)
Call & Logging
App\Models\CallDetailRecord— CDR from Cloudonix (call_detail_records)- SessionUpdate — Real-time session events (
session_updates) - CallNotificationsSettings — Webhook notification config (
call_notifications_settings) App\Models\CallNotificationLog— Notification delivery log (call_notification_logs)- EmailLog — Transactional email log (
email_logs) - PlatformAuditLog — Cross-tenant audit trail (
platform_audit_logs)
Call Tracking
- CallTrackingCampaign — Marketing campaign attribution (
call_tracking_campaigns) - CallTrackingNumber — DID-to-campaign assignment (
call_tracking_numbers) - CallTrackingSession — Attributed call session (
call_tracking_sessions) - CallTrackingNotificationSettings — Per-campaign webhook settings (
call_tracking_notification_settings) App\Models\CallTrackingNotificationLog— Notification delivery log (call_tracking_notification_logs)App\Models\CallTrackingAdPlatformIntegration— Google Ads / Meta settings (call_tracking_ad_platform_integrations)
Core PBX
App\Models\Extension— PBX extensions (extensions)App\Models\DidNumber— Phone numbers (did_numbers)App\Models\RingGroup— Ring groups (ring_groups)App\Models\RingGroupMember— Ring group members (ring_group_members)App\Models\IvrMenu— IVR menus (ivr_menus)App\Models\IvrMenuOption— IVR options (ivr_menu_options)App\Models\BusinessHoursSchedule— Business hours (business_hours_schedules)App\Models\BusinessHoursScheduleDay— Schedule days (business_hours_schedule_days)App\Models\BusinessHoursTimeRange— Time ranges (business_hours_time_ranges)App\Models\BusinessHoursException— Exceptions (business_hours_exceptions)App\Models\ConferenceRoom— Conference rooms (conference_rooms)
AI Integration
App\Models\AiAssistant— AI assistants (ai_assistants)App\Models\AiAssistantLoadBalancer— Load balancers (ai_assistant_load_balancers)App\Models\AiAssistantLoadBalancerMember— Load balancer members (ai_assistant_load_balancer_members)
Recordings
App\Models\Recording— Audio files (recordings)
Security
App\Models\InboundBlacklist— Blocked caller patterns (inbound_blacklists)App\Models\OutboundWhitelist— Outbound routing rules (outbound_whitelists)App\Models\BlockedCallLog— Log of blocked calls (blocked_call_logs)
Users & Organizations
App\Models\User— User accounts (users)App\Models\Organization— Multi-tenant organizations (organizations)- CloudonixSettings — Cloudonix credentials per org (
cloudonix_settings)
Tenancy Notes
- Models with
#[ScopedBy([OrganizationScope::class])]are automatically filtered by the authenticated user's organization. - Webhook handlers and platform admin operations must use
OrganizationScope::bypass()when querying tenant-scoped models. PlatformAuditLogandEmailLogare not tenant-scoped.