This guide covers the native FluentCRM integration in BricksMembers. With this integration, you can keep your CRM and membership in sync: FluentCRM tags and lists automatically assign BricksMembers levels, and level assignments automatically apply FluentCRM tags and lists—all without webhooks or complex configuration.
Why Use the Native Integration?
While BricksMembers supports FluentCRM through webhooks, the native integration offers several advantages:
- Bi-directional sync — Tags and lists in FluentCRM assign levels in BricksMembers; level assignments in BricksMembers apply tags and lists in FluentCRM
- Zero configuration complexity — No webhooks to set up
- Instant synchronization — Changes sync immediately when contacts or levels are updated
- Configurable removal sync — Choose whether removing tags, lists, or levels triggers removal on the other side
- Optional contact creation — Automatically create FluentCRM contacts when users receive levels
Prerequisites
- FluentCRM installed and active
- At least one tag or list created in FluentCRM
- At least one membership level created in BricksMembers
- Linked contacts — FluentCRM contacts must be linked to WordPress users (by user ID or email) for sync to work
Step 1: Enable the FluentCRM Module
First, enable the FluentCRM integration module:
- Go to BricksMembers → Settings → Modules
- Find FluentCRM in the list
- Enable the toggle
- Click Save Settings
Once enabled, you’ll see a new FluentCRM menu item under BricksMembers.
Step 2: Configure Sync Settings
Navigate to BricksMembers → FluentCRM to configure the integration.
Sync Direction
Enable FluentCRM → BricksMembers sync
- When enabled: When tags or lists are added to a FluentCRM contact, the corresponding BricksMembers levels are assigned to the linked WordPress user
- Use case: Adding a contact to a “Premium Members” list in FluentCRM automatically grants them the Premium level in BricksMembers
- Default: Enabled
Enable BricksMembers → FluentCRM sync
- When enabled: When a user is assigned a level (via admin, webhook, WooCommerce, Action Triggers, etc.), the corresponding FluentCRM tags and lists are applied to their contact
- Use case: A customer purchases via WooCommerce and gets a level—FluentCRM automatically receives the matching tags/lists for segmentation and automation
- Default: Enabled
Auto-create FluentCRM Contacts
When enabled: When a WordPress user is assigned a level but doesn’t have a FluentCRM contact yet, BricksMembers automatically creates one. The contact is linked to the user by email and user ID.
When disabled: Only existing FluentCRM contacts will receive tags and lists when levels are assigned. Users without contacts are skipped.
Recommendation: Enable this if you assign levels through WooCommerce, FluentCart, webhooks, or Action Triggers—it ensures every new member gets a FluentCRM contact for your campaigns.
New contact status
- Subscribed: Contact is ready to receive emails immediately
- Pending: Contact exists but hasn’t confirmed subscription (useful if you require double opt-in)
Step 3: Configure Removal Behavior
The Removal Behavior section controls what happens when tags, lists, or levels are removed. Each option is independent—enable only what you need.
FluentCRM → BricksMembers
Remove levels when mapped tags are removed from contact
- When a tag is removed from a FluentCRM contact, the corresponding BricksMembers level is removed from the user
Remove levels when mapped lists are removed from contact
- When a list is removed from a FluentCRM contact, the corresponding BricksMembers level is removed from the user
BricksMembers → FluentCRM
Remove tags when mapped levels are removed from user
- When a level is removed from a user, the mapped FluentCRM tags are removed from their contact
Remove lists when mapped levels are removed from user
- When a level is removed from a user, the mapped FluentCRM lists are removed from their contact
Recommendation: Enable removal sync if you want your CRM and membership to stay fully in sync. If you prefer to manage removals manually, leave these disabled.
Step 4: Map Levels to Tags and Lists
The User Level Mapping section shows each BricksMembers level with checkboxes for FluentCRM tags and lists. Check the tags and/or lists that should be associated with each level.
How Mapping Works
- Tags and lists are independent — You can map a level to tags only, lists only, or both
- Multiple tags/lists per level — One level can map to multiple tags and multiple lists
- One tag/list = multiple levels — The same tag or list can be mapped to multiple levels if needed
Example Configurations
Example 1: Tiered Membership with Tags
- Basic Member level: Map to “Basic Member” tag
- Pro Member level: Map to “Pro Member” tag
- VIP Member level: Map to “VIP Member” tag
When a contact gets the “Pro Member” tag in FluentCRM, they receive the Pro Member level. When a user gets the Pro Member level via WooCommerce, their FluentCRM contact receives the “Pro Member” tag.
Example 2: Course Access with Lists
- Course A Access level: Map to “Course A Students” list
- Course B Access level: Map to “Course B Students” list
- All Access level: Map to both “Course A Students” and “Course B Students” lists
Your FluentCRM automations can now target course students for email sequences, and new purchases automatically add contacts to the right lists.
Example 3: Combined Tags and Lists
Map a level to both a tag (e.g., “Premium Member”) and a list (e.g., “Premium Newsletter”). The level grants access; the tag and list enable different FluentCRM flows and segments.
Step 5: Save and Test
- Configure your sync settings, removal behavior, and level mappings
- Click Save Settings
- Test FluentCRM → BricksMembers:
- Pick a FluentCRM contact that has a linked WordPress user
- Add a mapped tag or list to the contact
- Verify the user has the corresponding level in BricksMembers (Users → Edit User)
- Test BricksMembers → FluentCRM:
- Assign a mapped level to a user (or use a test purchase)
- Check the user’s FluentCRM contact for the expected tags and lists
Understanding Sync Flow
| Event | Action |
|---|---|
| Tag added to contact | Assign mapped level(s) to user (if sync from FluentCRM is enabled) |
| List added to contact | Assign mapped level(s) to user (if sync from FluentCRM is enabled) |
| Tag removed from contact | Remove mapped level(s) from user (if removal setting is enabled) |
| List removed from contact | Remove mapped level(s) from user (if removal setting is enabled) |
| Level assigned to user | Add mapped tags and lists to contact (if sync to FluentCRM is enabled) |
| Level removed from user | Remove mapped tags and lists from contact (if removal settings are enabled) |
Important: Contact–User Linking
For sync to work, FluentCRM contacts must be linked to WordPress users. BricksMembers looks for:
- User ID — The contact’s linked WordPress user
- Email match — A WordPress user with the same email as the contact
Contacts without a linked user or matching email cannot receive level assignments when tags/lists are added. Enable Auto-create FluentCRM contacts so that users who receive levels (e.g., from WooCommerce) get a contact created and linked automatically.
Troubleshooting
Level Not Assigned When Adding Tag/List
- Module not enabled: Verify FluentCRM module is active in BricksMembers → Settings → Modules
- Sync not enabled: Check “Enable FluentCRM → BricksMembers sync” in BricksMembers → FluentCRM
- No mapping: Ensure the tag or list is mapped to a level in User Level Mapping
- Contact not linked to user: The contact must have a linked WordPress user or an email matching a WordPress user
Tags/Lists Not Applied When Assigning Level
- Sync not enabled: Check “Enable BricksMembers → FluentCRM sync”
- No mapping: Ensure the level is mapped to at least one tag or list
- No contact: User has no FluentCRM contact. Enable “Auto-create FluentCRM contacts” to create one automatically
Circular Sync / Infinite Loop
BricksMembers uses an internal guard to prevent infinite loops: when it’s applying changes from one side, it ignores incoming changes from the other. If you notice unexpected behavior, ensure your mappings are consistent (e.g., the same tag and level are mapped to each other in both directions).
Developer Hooks
For developers extending the integration, BricksMembers fires these action hooks:
// Fired when a level is added from a FluentCRM tag
do_action( 'brm_fluentcrm_level_added_from_tag', $user_id, $level_id, $tag_ids );
// Fired when a level is removed due to tag removal
do_action( 'brm_fluentcrm_level_removed_from_tag', $user_id, $level_id, $tag_ids );
// Fired when a level is added from a FluentCRM list
do_action( 'brm_fluentcrm_level_added_from_list', $user_id, $level_id, $list_ids );
// Fired when a level is removed due to list removal
do_action( 'brm_fluentcrm_level_removed_from_list', $user_id, $level_id, $list_ids );
// Fired when tags are added to contact from level assignment
do_action( 'brm_fluentcrm_tags_added_from_level', $user_id, $level_id, $tags_added );
// Fired when lists are added to contact from level assignment
do_action( 'brm_fluentcrm_lists_added_from_level', $user_id, $level_id, $lists_added );
// Fired when tags are removed from contact due to level removal
do_action( 'brm_fluentcrm_tags_removed_from_level', $user_id, $level_id, $tags_removed );
// Fired when lists are removed from contact due to level removal
do_action( 'brm_fluentcrm_lists_removed_from_level', $user_id, $level_id, $lists_removed );
FluentCRM Integration vs Webhooks
Use the native integration when:
- FluentCRM is on the same WordPress site as BricksMembers
- You want bi-directional sync between tags/lists and levels
- You use FluentCRM for segmentation and want membership status reflected automatically
Use webhooks when:
- FluentCRM is on a separate site
- You need one-way sync from an external system into BricksMembers only
Best Practices
- Enable auto-create contacts: Ensures users who receive levels from WooCommerce, FluentCart, or webhooks get a FluentCRM contact
- Use consistent naming: Name FluentCRM tags/lists to match your levels (e.g., “Pro Member” tag for Pro Member level) for easier mapping
- Enable removal sync when appropriate: Keeps CRM and membership aligned when access is revoked
- Combine with WooCommerce/FluentCart: Purchases assign levels, which then sync to FluentCRM for automated welcome sequences and segmentation
With the native FluentCRM integration configured, your membership and CRM stay in sync—no manual updates required.