Fanafdelingen - Member Management & Synchronization Guide
Overview
Fanafdelingen is a member management platform that automatically synchronizes member data between two systems:
- ForeningLet (Fanafdelingen) - Your primary membership database and management system
- Brøndby Support (MentoClub) - Your payment and subscription platform
The platform runs automatic hourly synchronizations and provides an admin interface to monitor, filter, and manage members across both systems.
Table of Contents
- Understanding Membership Types
- How Synchronization Works
- Admin Panel Overview
- Managing ForeningLet Members
- Managing Brøndby Support Members
- Common Scenarios & Solutions
- Filters & Tabs Explained
- Bulk Actions
- Sync Logs & Monitoring
- Troubleshooting
Understanding Membership Types
Regular Members (Almindelig)
- Members who pay their membership fee through ForeningLet
- Payment status tracked via account balance (saldo) in ForeningLet
- Marked with
genuine_member = truein the system - Displayed with a green badge as "Almindelig"
Combi Members (Kombi)
- Members who have an active subscription through Brøndby Support
- Payment status tracked via Brøndby Support's payment system
- Marked with
genuine_member = falsein the system - May also have a ForeningLet account (linked automatically)
- Displayed with an orange badge as "Kombi"
- Their membership type in Brøndby Support contains "Kombi"
How Member Types Are Determined
When a member subscribes through Brøndby Support with a "Kombi" membership: 1. The system automatically searches for an existing ForeningLet account using their email address 2. If found: The two accounts are linked together, and the ForeningLet account is marked as combi 3. If not found: A new ForeningLet account is created and marked as combi 4. The member is now managed as a combi member with payment handled by Brøndby Support
How Synchronization Works
Automatic Hourly Sync
The platform runs a full synchronization every hour in this sequence:
1. Activities Sync (First)
- Fetches all activities from ForeningLet
- Updates activity names and details
- Creates new activities if they don't exist locally
2. ForeningLet Members Sync (Second)
- Fetches all members from ForeningLet API
- Processes in batches of 500 members for performance
- Creates new member records if they don't exist
- Updates existing member records with latest data
- Restores soft-deleted members if they reappear
- Syncs member-activity relationships
- Removes members that no longer exist in ForeningLet (soft delete)
3. Brøndby Support Members Sync (Third - After ForeningLet completes)
- Fetches all members from MentoClub API
- Processes in batches
- Creates new Brøndby Support member records
- Updates existing records with payment status
- Calculates payment status based on:
- Next payment date (
next_capture) - Number of unpaid transactions
- Payment interval (monthly/yearly)
- Links combi members to ForeningLet accounts
- Removes members that no longer exist (soft delete)
4. Automatic Member Linking (Hourly)
- Runs after synchronization completes
- Attempts to link unconnected combi members by matching email addresses
- Only links members with paid Brøndby Support subscriptions
Payment Status Calculation
For Brøndby Support members, payment status is calculated as:
- Paid - Next payment is in the future (0 or more days away)
- Overdue - Next payment is past due but within 90 days
- Terminated - Next payment is more than 90 days overdue
- Unknown - No payment group information available
- Null - No status information
The calculation accounts for: - Unpaid transactions (subtracts months/years from next payment date) - Payment interval (yearly vs monthly subscriptions)
Manual Sync
Admins can trigger manual synchronization:
For ForeningLet: 1. Go to Fanafdelingen → Medlemmer 2. Click "Sync from ForeningLet" button in the top right 3. A notification confirms the sync has started 4. Refresh the page after a few moments to see updated data
For Brøndby Support: 1. Go to Brøndby Support → Medlemmer 2. Click "Sync from Brøndby Support" button in the top right 3. A notification confirms the sync has started 4. Refresh the page after a few moments to see updated data
Admin Panel Overview
The admin panel is organized into several navigation groups:
Fanafdelingen Group
- Medlemmer - View and manage ForeningLet members
- Aktiviteter - View club activities and their members
Brøndby Support Group
- Medlemmer - View and manage Brøndby Support members (combi members only)
Mentoclub Group
- Mentoclub Combinations - Analysis view of membership combinations
Other
- Sync Logs - View synchronization history and errors
- Users - Manage admin users
Managing ForeningLet Members
Access: Fanafdelingen → Medlemmer
Available Tabs
1. Alle (All)
Shows all ForeningLet members regardless of type or status.
2. Unpaid
Shows members with a positive saldo (balance owed). - These members have outstanding payments in ForeningLet - Only relevant for regular members (not combi) - Badge shows total count of unpaid members
3. Combi
Shows all combi members (genuine_member = false).
- Payment handled by Brøndby Support
- Should have a link to Brøndby Support account
4. Regular
Shows all regular members (genuine_member = true).
- Payment handled directly in ForeningLet
- Payment status based on saldo
5. Combi uden BS (Combi without Brøndby Support)
Shows combi members who are NOT linked to a Brøndby Support account. - This is a problem state - combi members should always have a BS link - How to fix: - Check if the member exists in Brøndby Support with a different email - Wait for the hourly linking job to match by email - Investigate why the link failed
6. Duplikerede emails (Duplicate Emails)
Shows members who share the same email address with other members. - This indicates data quality issues - Multiple people using the same email, or - The same person registered multiple times - How to fix: - Review each duplicate manually - Update email addresses to be unique - Consider merging duplicate member records
7. Deleted
Shows soft-deleted members (members removed from ForeningLet). - These are kept for 30 days before permanent deletion - Can be restored if they reappear in ForeningLet
Table Filters
Payment Filter: - All Memberships - No filter applied - Paid Memberships - Members with saldo ≤ 0 (no debt) - Unpaid Memberships - Members with saldo > 0 (owed money)
Combi uden BS forbindelse: - Shows only combi members without Brøndby Support connection - Useful for identifying linking problems
Available Actions
For Individual Members:
- Edit - View member details (read-only, data comes from ForeningLet)
- ForeningLet - Opens the member's profile in ForeningLet (new tab)
- Use this to edit member data in the source system
- Restore - Restore a soft-deleted member
Bulk Actions:
- Force Delete - Permanently delete selected members
- Restore - Restore selected soft-deleted members
- Opsig medlemskab i FA - Cancel membership in ForeningLet for selected members
- Konvertér til kombimedlemmer - Convert selected members to combi members
Member Detail View
When viewing/editing a member, you'll see:
Main Information: - Member ID, number, and code - Name (first and last) - Email, phone, mobile - Birthday and gender - Address details
Payment Information: - Enrollment date - Resignation date (if applicable) - Saldo (account balance in DKK) - Payment deadline - Delivery method - PBS agreement number
System Information: - Created/updated timestamps (from ForeningLet) - Genuine member status (regular vs combi) - Newsletter subscription status - Last sync time - Deleted timestamp (if soft-deleted)
Custom Fields: - Member fields (JSON data from ForeningLet) - Consent fields (GDPR consents)
Related Data (Tabs): - Activities - Activities this member is registered for - Brøndby Support By Id - Linked Brøndby Support account (if combi) - Duplicates By Email - Other members with the same email address
Managing Brøndby Support Members
Access: Brøndby Support → Medlemmer
Note: This view only shows members with "Kombi" membership type. Other Brøndby Support members are filtered out.
Available Tabs
1. Kombimedlemmer (Combi Members - Default)
Shows all Brøndby Support members with a "Kombi" membership type. - This is the main working view - Includes all combi members regardless of payment status
2. Unfound
Shows combi members who are paid but have NO ForeningLet account linked. - Not linked by ID (no bs_member_id connection) - Not linked by email (no matching email in ForeningLet) - This is a critical issue - paid combi members should have a ForeningLet account
How to Handle: 1. Check if the email exists in ForeningLet but with different formatting 2. Use bulk action "Opret medlemskab af FA" to create ForeningLet accounts 3. Verify the member's email address is correct in Brøndby Support 4. Contact the member to confirm their details
3. Unconnected
Shows combi members who are paid, have a matching email in ForeningLet, but are not yet linked by ID. - Not linked by ID (no bs_member_id) - BUT email exists in ForeningLet - The hourly linking job should connect these automatically
How to Handle: 1. Wait for the next hourly sync/linking job 2. Use bulk action "Opret forbindelse til FA" to manually link them 3. If this list grows, check the sync logs for errors
4. Unpaid (Expired Combi Members)
Shows combi members who are unpaid but still have a ForeningLet link.
- Payment status is Overdue or Terminated
- Still have bs_member_id connection
- May need membership cancellation or payment follow-up
How to Handle: 1. Contact members for payment 2. If terminated, consider canceling their FA membership 3. Monitor for members transitioning from overdue to terminated
5. Double payment (Combi with Paid Membership)
Shows combi members who have BOTH:
- A paid Brøndby Support subscription AND
- A genuine ForeningLet membership (genuine_member = true)
This means they're paying twice!
How to Handle:
1. Verify if this is intentional (some members may want both)
2. If unintentional, use bulk action "Konvertér til kombimedlemmer"
3. This marks their ForeningLet membership as combi (genuine_member = false)
4. They'll only pay through Brøndby Support
6. Downgraded
Shows members who: - Are NO LONGER combi members in Brøndby Support (membership type changed) - BUT still have a ForeningLet account linked
How to Handle: 1. Verify the member's current status in Brøndby Support 2. If they downgraded intentionally, their FA membership should be converted to regular 3. Update their membership type accordingly
7. Deleted
Shows soft-deleted combi members from Brøndby Support. - Members who were removed from Brøndby Support - Kept for 30 days before permanent deletion - Can be restored if they reappear
Table Filters
Betaling (Payment) Filter: Dropdown to filter by payment status: - Paid - Active paid subscriptions - Overdue - Payment failed, within 90 days - Terminated - More than 90 days overdue - Unknown - No payment group data - Null - No status information
Har medlemskab af Fanafdelingen: Checkbox filter showing only members with a linked ForeningLet account.
Available Actions
For Individual Members:
- Activities - View timeline of changes to this member
- Edit - View member details (read-only)
- Restore - Restore soft-deleted member
- Cancel FA Membership - Cancel their ForeningLet membership
- Only visible if status is "Terminated"
- Requires confirmation
Bulk Actions:
- Force Delete - Permanently delete selected members
- Restore - Restore selected soft-deleted members
- Opret forbindelse til FA - Create connection to ForeningLet
- Links to existing FA account by email
- Use for "Unconnected" members
- Opret medlemskab af FA - Create ForeningLet membership
- Creates new FA account for this member
- Use for "Unfound" members
- Konvertér til kombimedlemmer - Convert to combi members
- Marks linked FA accounts as combi (genuine_member = false)
- Use for "Double payment" members
Member Detail View
Basic Information: - ID and membership number - Name (first, last, full) - Email address (copyable) - Active status
Payment Information: - Unpaid transactions count - Payment status (Paid/Overdue/Terminated) - Next payment in (days) - Payment interval (yearly/monthly) - Payment groups (detailed view)
Membership Information: - Membership type (should contain "Kombi") - Created date in Brøndby Support - Combi member status (Ja/Nej)
Custom Fields: - Member fields (JSON data from MentoClub)
System Information: - Created/updated timestamps - Last sync time - Deleted timestamp (if soft-deleted)
Related Data (Tabs): - Membership By Id - Linked ForeningLet account (if connected by ID) - Membership By Email - ForeningLet accounts with matching email - Activity Log - History of changes to this member
Common Scenarios & Solutions
Scenario 1: New Combi Member Signs Up
What Happens Automatically:
1. Member signs up for combi membership in Brøndby Support
2. Next sync (within 1 hour):
- Member is imported to platform
- System searches for existing FA account by email
3. If FA account found:
- Accounts are linked (bs_member_id set)
- FA account marked as combi (genuine_member = false)
4. If FA account not found:
- New FA account is created
- Automatically linked
- Marked as combi
Admin Action Required: - None if email matches perfectly - If member appears in Unfound tab, use bulk action to create FA membership
Scenario 2: Combi Member Payment Fails
What Happens Automatically:
1. Brøndby Support marks payment as failed
2. unpaid_transactions counter increases
3. Next sync:
- Status changes to Overdue
- Member appears in Unpaid tab
4. After 90 days overdue:
- Status changes to Terminated
Admin Action Required: 1. Contact member for payment 2. If payment recovered: No action needed, next sync updates status 3. If terminated and no recovery: - Consider using "Cancel FA Membership" action - Member loses access to FA benefits
Scenario 3: Double Payment Detection
Identifying:
- Member appears in Double payment tab
- Has Brøndby Support combi subscription (paid)
- Has ForeningLet membership marked as regular (genuine_member = true)
How to Fix: 1. Go to Brøndby Support → Medlemmer 2. Click Double payment tab 3. Select the affected member(s) 4. Use bulk action: Konvertér til kombimedlemmer 5. This marks their FA membership as combi 6. They'll only pay through Brøndby Support
Scenario 4: Email Mismatch Prevents Linking
Symptoms: - Combi member in Unfound tab - You know they have an FA account - Email addresses differ slightly
How to Fix: 1. Update email in Brøndby Support OR ForeningLet to match 2. Wait for next hourly linking job 3. OR use Opret forbindelse til FA bulk action 4. OR manually create link if emails cannot match
Scenario 5: Duplicate Members in ForeningLet
Identifying: - Members appear in Duplikerede emails tab - Same email address used multiple times
Investigation: 1. Click member to view details 2. Check Duplicates By Email tab 3. Compare member details (name, address, registration date)
How to Fix: 1. Determine which record is correct/primary 2. Update incorrect record's email in ForeningLet 3. Consider merging data if same person 4. If different people, ask one to use different email
Scenario 6: Member Cancels Combi Subscription
What Happens Automatically: 1. Member cancels in Brøndby Support 2. Next sync: - Member removed from Brøndby Support (soft deleted) - Appears in Deleted tab - Link to FA account is cleared
Admin Action Required: 1. Decide if FA membership should continue 2. If yes: Convert to regular membership, they pay via FA 3. If no: Cancel FA membership 4. Note: Currently downgrade handling is disabled by feature flag
Scenario 7: Combi Member Not Yet Linked
Identifying: - Member in Unconnected tab - Has matching email in ForeningLet - Not yet linked by ID
How to Fix: 1. Wait for next hourly linking job (automated) 2. OR select member(s) and use: Opret forbindelse til FA 3. Verify link created successfully
Filters & Tabs Explained
ForeningLet Members - Quick Reference
| Tab Name | What It Shows | When to Use |
|---|---|---|
| Alle | All members | General overview, searching |
| Unpaid | Members with balance owed | Payment follow-up for regular members |
| Combi | All combi members | Overview of Brøndby Support subscribers |
| Regular | All regular members | Members paying through ForeningLet |
| Combi uden BS | Combi without BS link | Action needed - Fix broken links |
| Duplikerede emails | Duplicate email addresses | Action needed - Data quality cleanup |
| Deleted | Soft-deleted members | Review recently removed members |
Brøndby Support Members - Quick Reference
| Tab Name | What It Shows | When to Use |
|---|---|---|
| Kombimedlemmer | All combi members | Main working view |
| Unfound | Paid, no FA account | Critical - Create FA accounts |
| Unconnected | Paid, email match, no ID link | Usually auto-fixed, manual link if needed |
| Unpaid | Overdue/terminated, still linked | Payment follow-up, possible cancellation |
| Double payment | Paying both BS and FA | Fix - Convert to combi only |
| Downgraded | No longer combi, still linked | Update membership type |
| Deleted | Removed from BS | Review cancellations |
Bulk Actions
ForeningLet Members
Opsig medlemskab i FA (Cancel FA Membership) - Cancels membership in ForeningLet for selected members - Requires confirmation - Use when: Members should no longer have FA access
Konvertér til kombimedlemmer (Convert to Combi)
- Marks selected members as combi (genuine_member = false)
- Use when: Fixing double payment situations
Force Delete - Permanently removes members from local database - Use with caution: Cannot be undone - Deleted members will return on next sync if still in ForeningLet
Restore - Restores soft-deleted members - Use when: Member should be active again
Brøndby Support Members
Opret forbindelse til FA (Create Connection to FA) - Links selected BS members to ForeningLet accounts by email - Use for: Unconnected members - Requires: Matching email address exists in ForeningLet
Opret medlemskab af FA (Create FA Membership) - Creates new ForeningLet account for selected BS members - Use for: Unfound members (no FA account exists) - Automatically links after creation
Konvertér til kombimedlemmer (Convert to Combi) - Marks linked FA accounts as combi - Use for: Double payment members - Prevents double payment
Force Delete & Restore - Same as ForeningLet members
Sync Logs & Monitoring
Access: Main Menu → Sync Logs
What Gets Logged
Every synchronization operation creates a log entry with:
- Name - Operation type (e.g., "Combi Upgrade", "Sync FA", "Link Member")
- Description - Details about what happened
- Status - done or error
- Error - Error message if sync failed
- Properties - JSON data with details (member IDs, counts, etc.)
- Timestamps - When the operation occurred
Common Log Entries
Successful Operations:
- Sync FA - ForeningLet member sync completed
- Sync BS - Brøndby Support member sync completed
- Combi Upgrade - Member converted to combi
- Link Member - BS member linked to FA account
Error Situations:
- Sync failed: [error message] - API connection issue
- Link failed: [reason] - Member linking problem
- Create failed: [reason] - Account creation issue
Monitoring Best Practices
- Check logs daily for error status
- Investigate errors immediately - they indicate sync problems
- Look for patterns - repeated errors suggest systematic issues
- Review timestamps - ensure hourly sync is running
Manual Sync Verification
After triggering a manual sync:
1. Go to Sync Logs
2. Sort by Created At (newest first)
3. Look for recent entry with your sync type
4. Verify Status = done
5. Check Properties for counts (members synced, created, updated)
Troubleshooting
Sync Not Running
Symptoms:
- synced_at timestamps are old
- New members not appearing
- Changes in source system not reflected
Check: 1. Verify cron job is running (server admin task) 2. Check Sync Logs for recent errors 3. Manually trigger sync to test 4. Review server logs for queue worker issues
Fix:
- Contact server administrator
- Ensure Laravel scheduler is active: php artisan schedule:work
- Ensure queue workers are running: php artisan queue:work
Member Not Linking Automatically
Symptoms: - Combi member appears in Unfound or Unconnected - Email addresses match but no link
Check: 1. Verify email addresses match exactly (case-insensitive, but check spacing) 2. Check if member is actually a combi member in BS 3. Check if member has paid status in BS 4. Review Sync Logs for linking errors
Fix: 1. Wait for next hourly linking job 2. Use Opret forbindelse til FA bulk action 3. If emails don't match, update in source system 4. If still fails, check application logs
Payment Status Not Updating
Symptoms: - Member paid but still shows as Overdue/Terminated - Status in BS is correct but platform shows wrong status
Check:
1. When was last sync? (Check synced_at)
2. Check Sync Logs for recent BS sync errors
3. Verify payment group data exists in BS
Fix: 1. Trigger manual sync from BS Medlemmer page 2. Wait for next hourly sync 3. If persistent, check BS API is returning correct data
Duplicate Members Keep Appearing
Symptoms: - Same person has multiple accounts - Duplikerede emails tab keeps growing
Root Causes: - People registering multiple times - Family members sharing email - Data import issues
Fix: 1. Review each duplicate case individually 2. Update email addresses to be unique 3. Consider adding email validation at registration 4. Implement member merge functionality (future enhancement)
Member Appears in Wrong Tab
Symptoms: - Combi member in Regular tab or vice versa - Payment status seems incorrect
Check:
1. View member details, check genuine_member flag
2. Check if BS link exists (bs_member_id)
3. Verify membership type in BS contains "Kombi"
4. Check payment calculation (next_payment_in)
Fix: 1. If link is missing: Use linking bulk action 2. If genuine_member wrong: Use convert bulk action 3. If still wrong after sync: Check source data
Data Privacy & Security
Data Retention
- Soft-deleted members are kept for 30 days
- After 30 days, members are permanently deleted (pruned)
- Activity logs are cleaned up after configured retention period
- Sync logs are pruned after 30 days
Personal Data
All member data is synchronized from authoritative sources: - ForeningLet owns all FA member data - Brøndby Support owns all BS member data - Platform acts as read-only viewer with limited admin actions - Changes should be made in source systems
Audit Trail
- All member changes are logged via Activity Log
- Tracks: Name, email, saldo, status changes
- Admin actions are recorded
- Sync operations are logged
Best Practices for Admins
Daily Tasks
- Check Unfound tab - create FA accounts for new combi members
- Review Duplikerede emails - clean up data quality issues
- Check Sync Logs for errors
- Monitor Double payment tab - fix billing issues
Weekly Tasks
- Review Unconnected tab - verify auto-linking is working
- Check Unpaid tab - follow up on overdue payments
- Review Combi uden BS tab - fix broken links
- Verify sync timestamps are recent
Monthly Tasks
- Review deleted members
- Analyze membership trends
- Clean up duplicate emails
- Audit member data quality
When Making Changes
- Never edit data directly in the platform - data will be overwritten
- Always edit in source system (ForeningLet or Brøndby Support)
- Wait for sync or trigger manual sync to see changes
- Use bulk actions for administrative tasks (linking, converting)
Communication
- Inform members of payment status changes
- Follow up on terminated subscriptions
- Explain combi vs regular memberships clearly
- Provide clear payment instructions
Support & Further Help
For Technical Issues
- Review Sync Logs for error details
- Check member linking status
- Verify synchronization timestamps
- Contact your system administrator
For Member Issues
- Verify member exists in source system (ForeningLet or BS)
- Check email address matching
- Review payment status in Brøndby Support
- Update data in source system, not in platform
For Data Issues
- Check Duplikerede emails tab
- Review Combi uden BS tab
- Use appropriate bulk actions
- Wait for next sync after source data updates