WP Manifestindependent plugin directory
manifest / users / syncpoint-crm

SyncPoint CRM

Free WordPress CRM with lots of cool features.

★ 1stars

Install

Download source zip No release zip yet

This is the repository archive. It installs, but the folder name will carry the branch suffix and updates will not flow.

Install straight from GitHub with WP-CLI:

wp plugin install https://github.com/wpgaurav/syncpoint-crm/archive/refs/heads/main.zip
No built-in updater. New versions won't appear under Dashboard → Updates. Install new releases yourself, or let Git Updater track the repository.

A lightweight, extensible WordPress CRM plugin with PayPal & Stripe integration, invoicing, and powerful automation capabilities.

Features

  • Contact Management — Customers, leads, prospects with custom IDs
  • Company Management — Link contacts to companies
  • Transaction Tracking — Multi-currency, per-contact settings
  • Payment Integration — PayPal & Stripe API support
  • Invoicing — Create, send, and track invoices with PDF generation
  • Tagging System — Color-coded tags for organization
  • CSV Import — Field mapping and duplicate detection
  • Dashboard — Charts and statistics
  • REST API — Full CRUD for all data types
  • Webhooks — Receive data from external services
  • Developer Friendly — 50+ hooks, template overrides

Requirements

  • WordPress 6.0+
  • PHP 7.4+
  • MySQL 5.7+ or MariaDB 10.3+

Installation

  1. Upload the syncpoint-crm folder to /wp-content/plugins/
  2. Activate the plugin through the 'Plugins' menu
  3. Go to CRM → Settings to configure

File Structure

syncpoint-crm/
├── syncpoint-crm.php          # Main plugin file
├── uninstall.php            # Clean uninstall handler
├── readme.txt               # WordPress.org readme
│
├── includes/
│   ├── scrm-functions.php        # Core CRUD functions
│   ├── scrm-helper-functions.php # Utility functions
│   ├── class-scrm-activator.php  # DB table creation
│   ├── class-scrm-deactivator.php
│   ├── admin/
│   │   └── class-scrm-admin.php  # Admin UI controller
│   └── api/
│       ├── class-scrm-rest-api.php  # REST endpoints
│       └── class-scrm-webhooks.php  # Webhook handlers
│
├── assets/
│   ├── css/
│   │   └── admin.css        # Admin styles
│   └── js/
│       ├── admin.js         # Admin scripts
│       ├── charts.js        # Dashboard charts
│       └── import.js        # CSV import wizard
│
├── templates/               # Overridable templates
│
└── docs/
    ├── IMPLEMENTATION-PLAN.md  # Database schema & architecture
    ├── HOOKS-REFERENCE.md      # All hooks & filters
    ├── REST-API.md             # API documentation
    ├── WEBHOOKS.md             # Webhook integration guide
    ├── DEVELOPER-GUIDE.md      # Extension development
    └── CHANGELOG.md            # Version history

Documentation

See the /docs folder for complete documentation:

Quick Start

Create a Contact

$contact_id = scrm_create_contact( array(
    'first_name' => 'John',
    'last_name'  => 'Doe',
    'email'      => 'john@example.com',
    'type'       => 'customer',
) );

Get Contacts

$customers = scrm_get_contacts( array(
    'type'   => 'customer',
    'status' => 'active',
    'limit'  => 50,
) );

Create Transaction

$txn_id = scrm_create_transaction( array(
    'contact_id' => $contact_id,
    'type'       => 'payment',
    'amount'     => 500.00,
    'currency'   => 'USD',
    'gateway'    => 'manual',
) );

Use Hooks

// After contact created
add_action( 'scrm_contact_created', function( $id, $data ) {
    // Send welcome email
    wp_mail( $data['email'], 'Welcome!', 'Thanks for joining.' );
}, 10, 2 );

// Filter contact types
add_filter( 'scrm_contact_types', function( $types ) {
    $types['partner'] = 'Partner';
    return $types;
} );

REST API

# Get contacts
curl -X GET "https://site.com/wp-json/scrm/v1/contacts" \
  -u "user:app-password"

# Create contact
curl -X POST "https://site.com/wp-json/scrm/v1/contacts" \
  -u "user:app-password" \
  -H "Content-Type: application/json" \
  -d '{"email":"test@example.com","type":"lead"}'

Webhooks

# Send data from external service
curl -X POST "https://site.com/wp-json/scrm/v1/webhooks/inbound" \
  -H "X-SCRM-Webhook-Key: your-key" \
  -H "Content-Type: application/json" \
  -d '{
    "action": "create_contact",
    "data": {
      "email": "jane@example.com",
      "first_name": "Jane"
    }
  }'

License

GPL v2 or later

Credits

Built for the WordPress community.