Documentation

Getting started with Stillpoint CRM

A complete first-run guide: install, licence, pipeline, finance settings, mailbox, lead capture and WooCommerce sync. Budget about half an hour to be genuinely up and running.

Before you start

You need WordPress 5.8 or newer, PHP 8.0 or newer, and the pdo_sqlite (or pdo_mysql), mbstring and openssl PHP extensions. Pretty permalinks must be enabled. The imap extension is optional and only required for the built-in email inbox. Full detail is in the feature documentation.

  1. 1. Install the plugin
  2. 2. Re-save your permalinks
  3. 3. Open the CRM
  4. 4. Activate your licence
  5. 5. Give your team access
  6. 6. Build your pipeline
  7. 7. Configure finance settings
  8. 8. Connect your mailbox
  9. 9. Capture website leads
  10. 10. Connect WooCommerce
  11. 11. Optional hardening
  12. 12. Create your first workspace and board
  13. 13. Enable your first automation
  14. 14. Connect a send provider for marketing
  15. 15. Set up real cron

Step 1: Install the plugin

Download the plugin zip from your purchase email or your Freemius customer portal. In WordPress go to Plugins → Add New → Upload Plugin, choose the zip, install it, then click Activate.

Nothing else is required at install time — there is no setup wizard to sit through and no database credentials to enter.

Step 2: Re-save your permalinks

Go to Settings → Permalinks and click Save Changes. You do not need to change any option on that screen; saving flushes WordPress rewrite rules so the CRM interface mounts on its route.

Pretty permalinks are required — any structure except “Plain”. If the CRM page returns a 404 later, this step is almost always the fix.

Step 3: Open the CRM from the sidebar

Click Stillpoint CRM in the WordPress admin sidebar. On first load the plugin creates its own database — by default a single SQLite file in a private folder inside your uploads directory — and seeds a default pipeline you can edit.

There is no database to create, no user to grant and no schema to import. If you would rather run on your own MySQL/MariaDB database, point the CRM at it in settings before you start entering data.

Step 4: Activate your licence

Open the licence screen and paste the key from your purchase email. Activation registers this site against your plan (1 site on Starter, 5 on Pro, 20 on Agency) and switches on automatic updates through your WordPress plugins screen.

On Pro and Agency, activating the licence is also what unlocks the WooCommerce suite in step 10.

Step 5: Give your team access

Access is controlled by a single WordPress capability, manage_stillpoint_crm. Administrators map to CRM admin automatically; anyone else with the capability maps to agent. Grant it with your existing role editor, or in code:

functions.php or a small site plugin
// Give the Sales Manager role access to the CRM
$role = get_role( 'shop_manager' );
if ( $role ) {
    $role->add_cap( 'manage_stillpoint_crm' );
}

CRM user records are created automatically from the WordPress account the first time someone opens the CRM — there is no second login and no separate password. Agents can be scoped so they only see the contacts, companies and deals they own.

Step 6: Set up your pipeline and stages

Edit the seeded pipeline or create your own. Order the stages to match how you really sell, then set a win probability (0–100) on each stage — this is what powers weighted forecasting, and it is the single highest-value five minutes of setup.

Mark which stages mean won and lost. A $50,000 deal at 20% and a $10,000 deal at 100% are not the same thing, and the dashboard will only tell you that if your probabilities are honest. You can run unlimited pipelines — a sales pipeline, a renewals pipeline, and the auto-created Orders pipeline for WooCommerce.

Step 7: Configure finance settings

Before you send a quote or invoice, open Finance settings and set your company name, logo, default currency symbol and the legal/registration footer that must appear on documents. Set your numbering scheme and default due-date terms here too.

Doing this first saves reissuing documents: branded PDF export is built in, so whatever is configured here appears on every quote and invoice you generate.

Step 8: Connect your mailbox

Email is per user, not a shared shop mailbox. Each team member enters their own IMAP details for reading (host, port, SSL) and SMTP details for sending, plus a personal from-name and HTML signature. Passwords are encrypted at rest with OpenSSL.

Every message sent from the CRM is logged against the contact, and templates support merge placeholders. If your host does not enable the PHP imap extension, inbox reading is unavailable but sending, templates and the sent log all continue to work.

Step 9: Capture leads from your website

Either call the PHP helper directly from your theme or form plugin hook:

PHP — direct integration
stillpoint_crm_capture_lead( array(
    'name'       => 'Jane Mokoena',
    'email'      => 'jane@example.com',
    'phone'      => '+27 82 000 0000',
    'company'    => 'Example Pty Ltd',
    'source'     => 'Website contact form',
    'deal_title' => 'Website enquiry — Jane Mokoena',
    'value'      => 25000,
    'notes'      => 'Asked about onboarding timelines.',
) );

Or post JSON to the token-protected intake endpoint from anywhere:

HTTP — intake endpoint
curl -X POST https://your-site.com/?stillpoint_crm_intake=lead \
  -H "Content-Type: application/json" \
  -H "X-Stillpoint-Token: YOUR_INTAKE_TOKEN" \
  -d '{
    "name": "Jane Mokoena",
    "email": "jane@example.com",
    "source": "Website contact form",
    "deal_title": "Website enquiry"
  }'

Either route creates (or enriches) the contact and opens a deal in the first stage of your default pipeline, optionally round-robin assigned across active reps. Generate and rotate the intake token in settings.

Step 10: Connect WooCommerce and backfill

On Pro and Agency, enable the ecommerce suite once WooCommerce is active. Set which order statuses count as revenue (default: processing and completed), your VIP spend and order thresholds, and the at-risk window in days.

Then run the one-click backfill to import your existing order history in batches. Because sync is idempotent, you can safely re-run it if a batch is interrupted. Detail on what gets captured is on the WooCommerce CRM page.

Step 11: Optional hardening

The data folder already ships with a deny-all rule and a blank index file so it cannot be browsed over the web. On hosts that allow it, you can go further and move the database and attachments entirely outside your web root:

wp-config.php
// Store the CRM database outside the web root
define( 'STILLPOINT_CRM_DATA_DIR', '/home/youruser/private/stillpoint-crm' );

Add the constant above the “That's all, stop editing!” line, make sure the directory exists and is writable by PHP, and move any existing database file across. More on the architecture is on the data ownership page.

Step 12: Create your first workspace and board

Work management lives alongside the CRM in the same install. Create a workspace, add a board inside it, and lay out the columns, statuses and groups that match how your team actually works — a simple To do / In progress / Done set is a fine starting point, and you can add swimlane-style groups later without moving anything.

Then invite the team. Five roles cover the day-to-day: owner, admin, member, limited member (restricted to assigned items) and viewer (read-only). Give people the narrowest role that lets them do their job, and widen it later rather than the other way round. See work management for the full model.

Step 13: Enable your first automation

Automations connect CRM events to work: a common starting recipe is a deal marked won creating an onboarding project from a template, so the handoff from sales to delivery happens without anyone remembering to do it by hand.

Example recipe
Trigger:  Deal stage changes to "Won"
Action:   Create project from template "Client onboarding"
          Assign owner: deal owner
          Copy deal fields: company, value, contact

Every automation run — fired or skipped, and why — is recorded in the automation run log, which is the first place to look if something did not fire, or fired twice. Runs carry an idempotency key, so a retried or duplicate trigger cannot create a second project by accident. More detail is on automations.

Step 14: Connect a send provider for marketing

Stillpoint does not send bulk marketing email itself — journeys and campaigns go out through a provider you connect over SMTP: SendGrid, Mailgun, Postmark or Amazon SES, a capped direct SMTP connection for small lists, or a handoff to FluentCRM if you already run it. Enter the SMTP host, port, username and password from your provider in marketing settings.

Before you rely on it, set SPF, DKIM and DMARC records for your sending domain with your DNS host — without them, mailbox providers are far more likely to route your mail to spam regardless of content — and send a test message to confirm delivery. Bounces and spam complaints reported back by the provider land automatically on the suppression list, so a bad address stops being mailed without manual cleanup. Full detail is on marketing automation.

Step 15: Set up real cron

Recurring work items, journey step timers and scheduled campaign sends all depend on WordPress cron actually running on a schedule rather than only when someone visits the site. Disable WordPress's page-visit pseudo-cron:

wp-config.php
define( 'DISABLE_WP_CRON', true );

Then call the real cron endpoint from your host's system crontab every five minutes:

System crontab
*/5 * * * * curl -s "https://your-site.com/wp-cron.php?doing_wp_cron" > /dev/null 2>&1

Most managed WordPress hosts already run something like this for you — check your host's control panel before adding a duplicate cron job.

Troubleshooting

The CRM page returns a 404

Rewrite rules have not been flushed. Go to Settings → Permalinks and click Save Changes, and confirm you are not using the “Plain” permalink structure. This resolves it in nearly every case, including after a host migration.

The inbox is empty or will not connect

Check that the PHP imap extension is enabled — it is required for reading mail and many shared hosts leave it off. Also verify the IMAP host, port and SSL setting, and use an app password if your provider enforces one. Sending, templates and the sent log work without imap.

Storage path is not writable

If a custom STILLPOINT_CRM_DATA_DIR is unwritable, the CRM falls back to the default uploads location and shows an admin notice rather than failing. Fix the directory permissions (PHP needs write access) or remove the constant to stay on the default path.

Missing PHP extensions

You need pdo_sqlite (or pdo_mysql), mbstring and openssl. Your host's control panel usually has a PHP extensions toggle; otherwise ask support to enable them. Without openssl, mailbox credentials cannot be encrypted, so email setup is blocked.

Something else? Check the FAQ or contact support.

Ready to run it on your own server?

Install takes minutes, the database builds itself, and every record stays inside your WordPress hosting.

Unlimited users · Flat price per site · 30-day money-back guarantee