Settings & System Actions
FluentCRM Core AdvancedSystem-level action hooks that do not belong to a single contact, campaign or automation. For the matching filters, see Settings & System Filters.
Email Sending Sessions
A sending session is one lock-winning sender run, which can last up to roughly 50 seconds and spans many claimed batches. Transport plugins use these two hooks to hold a reusable connection open for the whole window. FluentSMTP, for example, uses them for SMTP keep-alive and HTTP connection reuse.
fluent_crm/email_sender_session_started
Fires after a sender process wins the processing lock and a bulk sending session begins. It does not fire for a process that fails to get the lock.
Parameters
$optionKeyString - the sender lock key; identifies the cron, multi-thread or CLI sender
Usage:
add_action('fluent_crm/email_sender_session_started', function($optionKey) {
// Open a reusable connection for the duration of the session
});Source: fluent-crm/app/Services/Libs/Mailer/BaseHandler.php
fluent_crm/email_sender_session_ended
Fires when the sender releases its processing lock, so close anything you opened on email_sender_session_started. It can fire without a matching session start, because the lock may be released when it was never held, and it can fire more than once per run. Make listeners idempotent.
Parameters
$optionKeyString - the sender lock key
Usage:
add_action('fluent_crm/email_sender_session_ended', function($optionKey) {
// Close the connection if it is open; safe to call repeatedly
});Source: fluent-crm/app/Services/Libs/Mailer/BaseHandler.php
Experimental Settings
fluent_crm/experimental_settings_saved
Fires after the experimental module switches (Settings, Experimental) are saved through the REST API. Core runs its own migrations for its modules. Modules that live in an add-on cannot be reached from there, so they listen here to create their tables when their switch has just been turned on.
A partial request is merged into the stored settings first, so $data holds the full saved settings, including flags the request did not carry.
Parameters
$dataArray - the full experimental settings as saved, for example['company_module' => 'yes', 'messaging_module' => 'no', ...]
Usage:
add_action('fluent_crm/experimental_settings_saved', function($data) {
if (($data['my_addon_module'] ?? '') === 'yes') {
my_addon_create_tables();
}
});Source: fluent-crm/app/Http/Controllers/SettingsController.php