A privacy-focused CiviCRM extension that allows users to search for friends from the past and connect with them without disclosing personal information.
- Users must already be in the CiviCRM database to register
- Email-based verification system
- Invitation links for administrators to send to users
- Secure token-based authentication
- Search only returns partial information (e.g., "Steve S, Michigan")
- Full contact details are only revealed after a connection is accepted
- No crawling allowed - only searches contacts already in the database
- Search logging for audit purposes
- Users can send connection requests to people they find
- Connection requests include optional messages
- Recipients can accept or decline connections
- Full contact information is only shared after acceptance
-
Copy this extension to your CiviCRM extensions directory:
cp -r "CIVI CRM " /path/to/civicrm/extensions/com.example.peoplefinder -
Install the extension via CiviCRM:
- Go to Administer > System Settings > Extensions
- Find "People Finder" and click Install
-
The extension will automatically:
- Create necessary database tables
- Register API endpoints
- Create menu items
-
Registration:
- Navigate to People Finder login page
- Enter your email address (must be in database)
- Check your email for verification link
- Click the link to verify and access People Finder
-
Search:
- Use the search form to find people by:
- First name
- Last name
- State/Province
- City
- Results show partial information (e.g., "Steve S, Michigan")
- Use the search form to find people by:
-
Connect:
- Click "Connect" on a search result
- Optionally add a message
- The person will receive a notification
- If they accept, full contact information is shared
-
User Management:
- Access the admin page to view all registered users
- Send invitation links to users
- Manage user accounts
-
API Access:
- All functionality is available via CiviCRM API3
- See API documentation below
Search for people with privacy restrictions.
Parameters:
first_name(optional): First name to searchlast_name(optional): Last name to searchstate_province(optional): State/Province to searchcity(optional): City to searchlimit(optional): Results limit (default: 50)offset(optional): Results offset (default: 0)
Returns: Array of contacts with partial information
Example:
$result = civicrm_api3('PeopleFinder', 'search', [
'first_name' => 'Steve',
'last_name' => 'Smith',
'state_province' => 'Michigan',
]);
Register a new user (must be in database).
Parameters:
email(required): Email address
Returns: User ID and verification status
Example:
$result = civicrm_api3('PeopleFinder', 'register', [
'email' => 'user@example.com',
]);
Verify email with token.
Parameters:
token(required): Verification token
Returns: User ID and verification status
Send a connection request.
Parameters:
contact_id(required): Target contact IDmessage(optional): Message to include
Returns: Connection ID
Example:
$result = civicrm_api3('PeopleFinder', 'connect', [
'contact_id' => 123,
'message' => 'Hi, remember me?',
]);
Get connection requests for current user.
Parameters:
status(optional): Filter by status (pending, accepted, declined)
Returns: Array of connections
Stores registered users and their verification status.
Stores connection requests between users.
Logs all searches for audit purposes.
- Authentication Required: All searches require authenticated, verified users
- Privacy by Default: Only partial information is returned in searches
- No Crawling: Only searches contacts already in the database
- Connection-Based Sharing: Full information only shared after mutual connection
- Search Logging: All searches are logged for security auditing
- CiviCRM 5.0 or higher
- PHP 7.0 or higher
- MySQL/MariaDB
For issues or questions, please contact your CiviCRM administrator.