# SMS Campaign Filters These filter hooks let you customize SMS campaign behavior — providers, processing limits, scheduling, and message content. All SMS hooks require FluentCRM Pro. ## Providers ### `fluent_crm_sms_providers` Filter the list of available SMS providers. Use this to register custom SMS provider integrations. **Parameters** - `$providers` Array - Default `['twilio', 'aws_end_user_message']` **Usage:** ```php add_filter('fluent_crm_sms_providers', function($providers) { $providers[] = 'my_sms_service'; return $providers; }); ``` **Source:** `fluentcampaign-pro/app/Modules/SMS/SMSHelper.php` --- ### `fluent_crm/sms_provider_definitions` Filter SMS provider configuration definitions, including form fields and settings structure for each provider. **Parameters** - `$definitions` Array - provider config definitions **Usage:** ```php add_filter('fluent_crm/sms_provider_definitions', function($definitions) { $definitions['my_sms_service'] = [ 'label' => 'My SMS Service', 'fields' => [ 'api_key' => ['type' => 'text', 'label' => 'API Key'], 'api_secret' => ['type' => 'password', 'label' => 'API Secret'] ] ]; return $definitions; }); ``` **Source:** `fluentcampaign-pro/app/Modules/SMS/SMSHelper.php` --- ### `fluent_crm/sms_provider_select` Filter the SMS provider selection dropdown configuration. **Parameters** - `$selectConfig` Array - dropdown options - `$providerDefinitions` Array - full provider definitions **Usage:** ```php add_filter('fluent_crm/sms_provider_select', function($selectConfig, $providerDefinitions) { // Customize provider dropdown return $selectConfig; }, 10, 2); ``` **Source:** `fluentcampaign-pro/app/Modules/SMS/SMSHelper.php` --- ## Campaign Data ### `fluent_crm/sms_campaign_data` Filter SMS campaign data before processing or display. **Parameters** - `$campaign` Campaign Model **Usage:** ```php add_filter('fluent_crm/sms_campaign_data', function($campaign) { // Modify campaign data return $campaign; }); ``` **Source:** `fluentcampaign-pro/app/Modules/SMS/Http/Controllers/SMSController.php` --- ### `fluent_crm/parse_campaign_sms_text` Filter SMS message content before sending. Use this to add custom smart code replacements for SMS messages. **Parameters** - `$smsContent` String - SMS message text - `$subscriber` [Subscriber Model](/database/models/subscriber) **Usage:** ```php add_filter('fluent_crm/parse_campaign_sms_text', function($smsContent, $subscriber) { // Replace custom smart codes in SMS $smsContent = str_replace('{membership_level}', get_user_meta($subscriber->user_id, 'level', true), $smsContent ); return $smsContent; }, 10, 2); ``` **Source:** `fluentcampaign-pro/app/Modules/SMS/SMSScheduler.php` --- ## Processing Limits ### `fluent_crm/sms_campaign_action_limit` Filter the number of subscribers processed per SMS campaign action request. **Parameters** - `$limit` INT - Default `50` **Usage:** ```php add_filter('fluent_crm/sms_campaign_action_limit', function($limit) { return 100; }); ``` **Source:** `fluentcampaign-pro/app/Modules/SMS/Http/Controllers/SMSController.php` --- ### `fluent_crm/sms_process_subscribers_per_request` Filter the SMS subscriber batch size per processing request. **Parameters** - `$limit` INT - Default `30` **Usage:** ```php add_filter('fluent_crm/sms_process_subscribers_per_request', function($limit) { return 50; }); ``` **Source:** `fluentcampaign-pro/app/Modules/SMS/SMSHandler.php` --- ### `fluent_crm/sms_scheduler_chunk_size` Filter the SMS scheduling chunk size for batch processing. **Parameters** - `$chunkSize` INT - chunk size - `$scheduler` Object - SMS Scheduler instance **Usage:** ```php add_filter('fluent_crm/sms_scheduler_chunk_size', function($chunkSize, $scheduler) { return 50; }, 10, 2); ``` **Source:** `fluentcampaign-pro/app/Modules/SMS/SMSScheduler.php` --- ### `fluent_crm/sms_scheduler_max_processing_seconds` Filter the maximum time (in seconds) the SMS scheduler can run per execution. **Parameters** - `$maxSeconds` INT - max processing time - `$scheduler` Object - SMS Scheduler instance **Usage:** ```php add_filter('fluent_crm/sms_scheduler_max_processing_seconds', function($maxSeconds, $scheduler) { return 30; }, 10, 2); ``` **Source:** `fluentcampaign-pro/app/Modules/SMS/SMSScheduler.php` --- ### `fluent_crm/disable_sms_processing` Completely disable SMS processing when set to `true`. Useful for maintenance windows. **Parameters** - `$shouldDisable` Boolean - Default `false` **Usage:** ```php add_filter('fluent_crm/disable_sms_processing', function($shouldDisable) { return true; // Pause all SMS sending }); ``` **Source:** `fluentcampaign-pro/app/Modules/SMS/SMSScheduler.php`