Keeping Contact WP Registry grade A. No security issues foundWP RegistryNo security issues foundOpen the reportA #6 in Users & Membership
Track contact frequency and outreach with your network. Integrates with Personal CRM.
Install
Upload it under Plugins → Add New Plugin → Upload Plugin, then activate.
Install straight from GitHub with WP-CLI:
wp plugin install https://github.com/akirk/keeping-contact/releases/download/0.9.1/keeping-contact.zipA WordPress plugin that extends Personal CRM to track contact frequency and outreach with people in your network. Optionally integrates with Beeper to sync messaging history and enable sending messages directly from the CRM.
Features
- Contact Scheduling — Set custom contact frequencies (weekly, monthly, quarterly, etc.) for each person
- Outreach Dashboard — See who is overdue for contact and who is coming due soon
- Contact Logging — Log contacts manually with type (email, call, meeting, message) and notes
- Priority Levels — Mark contacts as high, normal, or low priority
- Pause Schedules — Temporarily pause reminders for specific people
- Beeper Integration (optional):
- Link CRM contacts to Beeper chat threads
- View recent message history from within the CRM
- Draft and send messages with AI assistance
- Auto-sync last contact dates from message history
- Bulk-connect existing contacts to Beeper chats
- Relationship analysis visualization
Requirements
- WordPress 6.0+
- PHP 7.4+
- Personal CRM plugin (must be installed and activated)
- Beeper Desktop (optional, for messaging integration)
Installation
- Install and activate the Personal CRM plugin first
- Download or clone this repository into
wp-content/plugins/keeping-contact - Activate "Keeping Contact" in WordPress admin → Plugins
- The database tables are created automatically on activation
Configuration
Setting Up Beeper (Optional)
Beeper integration allows you to connect your messaging history with your CRM contacts. This requires Beeper Desktop running locally.
- Open Beeper Desktop
- Go to Settings → Developer → Create API Token
- In your CRM, navigate to Outreach → Settings
- Enter your Beeper API token and save
The plugin communicates with Beeper Desktop's local API (localhost:23373) — your messages stay on your machine and are never sent to external servers.
Usage
Adding a Contact Schedule
- Navigate to a person's profile in Personal CRM
- In the sidebar, use the "Keeping Contact" dropdown to set a schedule
- Or edit the person and set frequency, priority, and notes in the form
Viewing Overdue Contacts
- Go to Outreach in the main menu
- The dashboard shows:
- Overdue — People past their contact due date
- Due Soon — People due within the next 2 weeks
- Needs Schedule — People linked to Beeper but without a schedule
Logging a Contact
- From the Outreach dashboard, click "Log Contact" on any person
- Select the contact type (email, call, meeting, message, general)
- Set the date and add optional notes
- Click Save
Linking Beeper Chats
- On a person's profile page, click "+ Connect Beeper chat"
- Search for their chat in the modal
- Click to link — their message history will now sync
Sending Messages
- On a person's profile, click "Send message" in the quick links
- View recent conversation context
- Draft your message (with optional AI assistance)
- Send directly through Beeper
Database Tables
The plugin creates three tables (prefixed with your WordPress table prefix):
keeping_contact_schedules— Contact frequency settings per personkeeping_contact_log— Contact history recordskeeping_contact_beeper_chats— Beeper chat to person mappings
Hooks
The plugin provides actions for extending functionality:
// Fires when a Beeper chat is linked to a person
do_action( 'keeping_contact_beeper_chat_linked', $username, $chat_id, $phone );
Contributing
Contributions are welcome. Please open an issue to discuss significant changes before submitting a pull request.
License
GPL-2.0-or-later. See LICENSE for details.
Releases
2 releases. Each count is every asset in that release; expand a row for the breakdown.
Active-site estimate ≈480 comes from the median of recent superseded releases. Method.