Skip to content
View as Markdown

Extending FluentCRM ​

FluentCRM Core Intermediate

FluentCRM provides a modular architecture that lets third-party plugins add custom automation components, merge tags, profile sections, and more. This section covers all the extension points available to developers.

Automation Components ​

FluentCRM automations (called "Funnels") are built from three types of components:

ComponentBase ClassDescription
TriggerBaseTriggerAn event that starts an automation (e.g., user registers, form submitted)
ActionBaseActionA task executed during the automation (e.g., apply tag, send email)
BenchmarkBaseBenchMarkA goal/checkpoint that contacts must reach to proceed (e.g., link clicked, tag applied)

All base classes live in the FluentCrm\App\Services\Funnel namespace.

Each component is a PHP class that extends the corresponding base class and implements a set of abstract methods. The base class handles registration automatically — you just define the component's metadata, UI fields, and processing logic.

Registration ​

Register your components on the fluent_crm/after_init hook:

php
add_action('fluent_crm/after_init', function () {
    new YourPlugin\Automation\CourseEnrolledTrigger();
    new YourPlugin\Automation\AddToGroupAction();
    new YourPlugin\Automation\TagAppliedBenchmark();
});

Form Fields ​

Automation components use a declarative field system to render their settings UI. See the Form Field Types reference for all 26 available field types (input-text, select, radio, yes_no_check, html_editor, etc.).

Other Extension Points ​

ExtensionAPIDescription
Smart CodesFluentCrmApi('extender')->addSmartCode()Custom merge tags for emails and templates
Event TrackingFluentCrmApi('event_tracker')->track()Track custom contact activities and behaviors
Contact Profile SectionFluentCrmApi('extender')->addProfileSection()Custom tabs on the contact profile page
Company Profile SectionFluentCrmApi('extender')->addCompanyProfileSection()Custom tabs on the company profile page