Webhooks & Integration Filters
FluentCRM Core IntermediateThese filter hooks let you customize webhook processing, import providers, commerce integrations, and third-party data.
Webhooks
fluent_crm/incoming_webhook_data
Filter incoming webhook data before it gets validated and processed. Use this to format or transform data from external sources.
Parameters
$postDataArray - Posted data on the webhook$webhookWebhook Model$requestRequest Object
Usage:
add_filter('fluent_crm/incoming_webhook_data', function($postData, $webhook, $request) {
if ($webhook->id != 1) {
return $postData;
}
// Transform data for webhook #1
$postData['email'] = $postData['user_email'] ?? '';
return $postData;
}, 10, 3);Source: app/Hooks/Handlers/ExternalPages.php
fluent_crm/webhook_contact_data
Filter the formatted contact data from a webhook before it is used to create or update a contact. At this point the raw webhook data has already been processed.
Parameters
$dataArray - Formatted contact data$postDataArray - Original posted data$webhookWebhook Model
Usage:
add_filter('fluent_crm/webhook_contact_data', function($data, $postData, $webhook) {
// Override the status for a specific webhook
if ($webhook->id === 2) {
$data['status'] = 'subscribed';
}
return $data;
}, 10, 3);Source: app/Hooks/Handlers/ExternalPages.php
Import & Migration
fluent_crm/import_providers
Filter the registered import provider definitions (CSV, WP Users, etc.).
Parameters
$providersArray - Import provider definitions
Usage:
add_filter('fluent_crm/import_providers', function($providers) {
$providers['my_source'] = [
'label' => 'My Data Source',
'callback' => 'MyImporter::handle'
];
return $providers;
});Source: app/Http/Controllers/ImporterController.php
fluent_crm/csv_import_contact_limit_per_request
Filter the number of CSV rows to process per import request.
Parameters
$limitINT - Default100
Usage:
add_filter('fluent_crm/csv_import_contact_limit_per_request', function($limit) {
return 500;
});Source: app/Http/Controllers/CsvController.php
fluent_crm/import_users_limit_per_request
Filter the number of WordPress users to process per import request.
Parameters
$limitINT - Default100
Usage:
add_filter('fluent_crm/import_users_limit_per_request', function($limit) {
return 200;
});Source: app/Http/Controllers/ImporterController.php
fluent_crm/saas_migrators
Filter the array of registered SaaS migrator definitions (MailChimp, ConvertKit, MailerLite, etc.).
Parameters
$migratorsArray - Migrator definitions keyed by service slug
Usage:
add_filter('fluent_crm/saas_migrators', function($migrators) {
$migrators['my_service'] = [
'title' => 'My Email Service',
'description' => 'Import contacts from My Email Service',
'logo' => 'https://example.com/logo.png'
];
return $migrators;
});Source: app/Http/Controllers/MigratorController.php
Commerce & Integration Providers
fluent_crm/purchase_history_providers
Filter the array of registered purchase history providers (WooCommerce, Easy Digital Downloads, etc.).
Parameters
$providersArray - Provider definitions
Usage:
add_filter('fluent_crm/purchase_history_providers', function($providers) {
$providers[] = 'my_shop';
return $providers;
});Source: app/Services/Helper.php
fluent_crm/woo_purchase_sidebar_html
Filter the WooCommerce purchase summary HTML shown on a contact's profile sidebar.
Parameters
$htmlString - Sidebar HTML$subscriberSubscriber Model$pageINT - Pagination page number
Usage:
add_filter('fluent_crm/woo_purchase_sidebar_html', function($html, $subscriber, $page) {
if (!$html) {
return ''; // No data
}
$html .= '<p>Custom WooCommerce info</p>';
return $html;
}, 20, 3);Source: app/Hooks/Handlers/PurchaseHistory.php
fluent_crm/edd_purchase_sidebar_html
Filter the Easy Digital Downloads purchase summary HTML shown on a contact's profile sidebar.
Parameters
$htmlString - Sidebar HTML$subscriberSubscriber Model$pageINT - Pagination page number
Usage:
add_filter('fluent_crm/edd_purchase_sidebar_html', function($html, $subscriber, $page) {
if (!$html) {
return '';
}
$html .= '<p>Custom EDD info</p>';
return $html;
}, 20, 3);Source: app/Hooks/Handlers/PurchaseHistory.php
fluent_crm/contact_lifetime_value
Filter the contact's lifetime value (total revenue). Provided by commerce integrations.
Parameters
$valueFloat - Default0$profileArray - Contact profile data
Usage:
add_filter('fluent_crm/contact_lifetime_value', function($value, $profile) {
// Calculate from your own commerce data
return $value;
}, 10, 2);Source: app/Functions/helpers.php
fluentcrm_currency_sign
Filter the currency symbol used for displaying monetary values.
Parameters
$signString - Default''
Usage:
add_filter('fluentcrm_currency_sign', function($sign) {
return '$';
});Source: app/Hooks/Handlers/AdminMenu.php, app/Functions/helpers.php
fluent_crm/form_submission_providers
Filter the list of registered form submission provider slugs for the contact profile (e.g., FluentForms, Gravity Forms).
Parameters
$providersArray - Provider slugs
Usage:
add_filter('fluent_crm/form_submission_providers', function($providers) {
$providers[] = 'gravity_forms';
return $providers;
});Source: app/Hooks/Handlers/AdminMenu.php
fluentcrm_deep_integration_providers
Filter the array of deep-integration provider definitions (Elementor, Gravity Forms, etc.).
Parameters
$providersArray - Provider definitions$withFieldsBoolean - Whether to include field mappings
Usage:
add_filter('fluentcrm_deep_integration_providers', function($providers, $withFields) {
$providers['my_form_plugin'] = [
'title' => 'My Form Plugin',
'logo' => 'https://example.com/logo.png'
];
return $providers;
}, 10, 2);Source: app/Http/Controllers/SettingsController.php
fluent_crm/advanced_report_providers
Filter the array of registered advanced reporting provider definitions.
Parameters
$providersArray - Default[]
Usage:
add_filter('fluent_crm/advanced_report_providers', function($providers) {
$providers['my_reports'] = [
'title' => 'My Custom Reports',
'slug' => 'my_reports'
];
return $providers;
});Source: app/Http/Controllers/ReportingController.php
Dynamic Segments
Profluentcrm_dynamic_segments
Filter the list of registered dynamic segments. Use this to add custom segment types (e.g., "VIP Customers", "Users with Pending Orders").
Parameters
$segmentsArray - registered segment definitions
Usage:
add_filter('fluentcrm_dynamic_segments', function($segments) {
$segments[] = [
'slug' => 'high_value_customers',
'label' => 'High Value Customers',
'description' => 'Customers with total orders > $1000'
];
return $segments;
});Source: fluentcampaign-pro/app/Http/Controllers/DynamicSegmentController.php
fluentcrm_dynamic_segment_{$slug}
Filter subscriber data for a specific dynamic segment type. Implement this for each custom segment slug registered via fluentcrm_dynamic_segments.
Parameters
$segmentDataMixed - segment query results$segmentIdINT - segment ID$optionsArray - containssubscribers(bool) andpaginate(bool)
Usage:
add_filter('fluentcrm_dynamic_segment_high_value_customers', function($data, $segmentId, $options) {
// Return subscribers matching segment criteria
if ($options['subscribers']) {
// Return actual subscriber data
}
return ['total' => 150];
}, 10, 3);Source: fluentcampaign-pro/app/Http/Controllers/DynamicSegmentController.php
WooCommerce
Profluent_crm/woo_checkout_fields
Filter WooCommerce checkout form fields available for newsletter signup integration.
Parameters
$fieldsArray - checkout field definitions
Usage:
add_filter('fluent_crm/woo_checkout_fields', function($fields) {
// Customize checkout fields for CRM
return $fields;
});Source: fluentcampaign-pro/app/Services/Integrations/WooCommerce/WooInit.php
fluent_crm/woo_block_checkout_consent_position
Control the position of the newsletter consent checkbox in WooCommerce block-based checkout.
Parameters
$positionString - Default'order'
Usage:
add_filter('fluent_crm/woo_block_checkout_consent_position', function($position) {
return 'contact'; // Move to contact section
});Source: fluentcampaign-pro/app/Services/Integrations/WooCommerce/WooInit.php
fluent_crm/woo_checkout_auto_subscribe_data
Filter subscriber data created during WooCommerce checkout auto-subscription.
Parameters
$subscriberDataArray - contact data to create/update$orderWC_Order - the WooCommerce order
Usage:
add_filter('fluent_crm/woo_checkout_auto_subscribe_data', function($subscriberData, $order) {
$subscriberData['source'] = 'woo_checkout';
return $subscriberData;
}, 10, 2);Source: fluentcampaign-pro/app/Services/Integrations/WooCommerce/WooInit.php
fluent_crm/woo_order_conditions
Filter available WooCommerce order-based automation conditions.
Parameters
$orderPropsArray - condition property definitions
Usage:
add_filter('fluent_crm/woo_order_conditions', function($orderProps) {
$orderProps[] = [
'value' => 'custom_order_field',
'label' => 'Custom Order Field'
];
return $orderProps;
});Source: fluentcampaign-pro/app/Services/Integrations/WooCommerce/AutomationConditions.php
fluent_crm/user_can_view_woo_report
Control whether a user can access WooCommerce integration reports in FluentCRM.
Parameters
$canViewBoolean - default checksview_woocommerce_reportscapability
Usage:
add_filter('fluent_crm/user_can_view_woo_report', function($canView) {
return current_user_can('manage_options');
});Source: fluentcampaign-pro/app/Services/Integrations/WooCommerce/DeepIntegration.php
fluent_crm/disable_woo_subscriptions_widget
Disable the WooCommerce subscriptions widget for specific subscribers.
Parameters
$shouldDisableBoolean - Defaultfalse$subscriberSubscriber Model
Usage:
add_filter('fluent_crm/disable_woo_subscriptions_widget', function($shouldDisable, $subscriber) {
return $shouldDisable;
}, 10, 2);Source: fluentcampaign-pro/app/Services/Integrations/WooCommerce/WooInit.php
WooCommerce Abandoned Cart
Profluent_crm/ab_cart_cookie_validity
Filter how long the abandon cart tracking cookie is valid (in days).
Parameters
$daysINT - Default30
Usage:
add_filter('fluent_crm/ab_cart_cookie_validity', function($days) {
return 14; // Track for 14 days
});Source: fluentcampaign-pro/app/Modules/AbandonCart/Woo/WooCartTrackingInit.php
fluent_crm/ab_cart_opt_out_cookie_validity
Filter how long the abandon cart opt-out cookie persists (in days).
Parameters
$daysINT - Default7
Usage:
add_filter('fluent_crm/ab_cart_opt_out_cookie_validity', function($days) {
return 30;
});Source: fluentcampaign-pro/app/Modules/AbandonCart/Woo/WooCartTrackingInit.php
fluent_crm/ab_cart_is_win_status
Determine whether a WooCommerce order status should be considered a "win" (recovered cart).
Parameters
$isWonBoolean - whether the status counts as recovery$orderStatusString - WooCommerce order status$driverObject - cart driver instance
Usage:
add_filter('fluent_crm/ab_cart_is_win_status', function($isWon, $orderStatus, $driver) {
// Custom statuses that count as cart recovery
if ($orderStatus === 'wc-on-hold') {
return true;
}
return $isWon;
}, 10, 3);Source: fluentcampaign-pro/app/Modules/AbandonCart/Woo/WooDriver.php
EDD
Profluent_crm/user_can_view_edd_report
Control whether a user can access EDD integration reports in FluentCRM.
Parameters
$canViewBoolean - default checksview_shop_sensitive_datacapability
Usage:
add_filter('fluent_crm/user_can_view_edd_report', function($canView) {
return current_user_can('manage_options');
});Source: fluentcampaign-pro/app/Services/Integrations/Edd/DeepIntegration.php
Integration Metaboxes
Profluentcrm_disable_integration_metaboxes
Disable FluentCRM metaboxes within specific third-party plugin admin pages (WooCommerce, EDD, LearnDash, etc.).
Parameters
$shouldDisableBoolean - Defaultfalse$integrationNameString - integration slug (e.g.,woocommerce,edd,learndash,lifterlms,learnpress,tutorlms)
Usage:
add_filter('fluentcrm_disable_integration_metaboxes', function($shouldDisable, $integrationName) {
if ($integrationName === 'woocommerce') {
return true; // Disable metabox on WooCommerce product pages
}
return $shouldDisable;
}, 10, 2);Source: fluentcampaign-pro/app/Services/Integrations/ (multiple integration init files)