Skip to main content

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.
  • PlatformAuditLog and EmailLog are not tenant-scoped.