Understand how PloverCRM protects your data when deleting stages and what happens to contacts in deleted stages.
Overview #
PloverCRM includes built-in protection mechanisms to prevent accidental data loss when deleting contact stages. When you delete a stage, the system ensures all contacts are safely moved to a default stage before the deletion completes.
How Stage Deletion Works #
Deletion Process #
When you attempt to delete a stage:
- Check for Contacts: System checks if any contacts are in that stage
- Move Contacts: If contacts exist, they’re moved to the default stage
- Confirm Deletion: You’re asked to confirm the deletion
- Delete Stage: The stage definition is removed
- Update References: All references to the stage are cleaned up
Default Stage Behavior #
- Contacts are moved to the first stage in your pipeline (typically “New” or “Lead”)
- You can configure which stage is the default in settings
- The move is logged in contact history
- No contact data is lost during the process
Deleting a Stage #
Via Settings Page #
- Navigate to PloverCRM > Settings
- Click on the PloverCRM tab
- Scroll to the Stages section
- Find the stage you want to delete
- Click the Delete button (trash icon)
- Review the warning message
- Confirm the deletion
Warning Message #
Before deletion, you’ll see a message like:
Warning: This stage contains 47 contacts. Deleting it will move all contacts to the “New” stage. This action cannot be undone. Are you sure?
Confirmation Required #
- You must explicitly confirm the deletion
- The system shows how many contacts will be affected
- You can cancel at any time before confirming
What Happens to Contacts #
Automatic Migration #
All contacts in the deleted stage are:
- Moved to the default stage (usually “New”)
- Preserved with all their data intact
- Logged in their activity history
- Notified (if notifications are enabled)
Contact History #
The stage change is recorded in each contact’s history:
Stage changed <span class="hljs-keyword">from</span> <span class="hljs-string">"Old Stage Name"</span> <span class="hljs-keyword">to</span> <span class="hljs-string">"New"</span> (reason: stage deleted)
Date: February <span class="hljs-number">3</span>, <span class="hljs-number">2026</span> <span class="hljs-keyword">at</span> <span class="hljs-number">2</span>:<span class="hljs-number">30</span> PM
No Data Loss #
- All contact information is preserved
- Custom fields remain intact
- Notes and activities are maintained
- Lists and tags are unchanged
- Ownership is preserved
Protected Stages #
Cannot Delete Default Stage #
You cannot delete the default stage (the stage contacts are moved to when other stages are deleted). To delete it:
- First, set a different stage as the default
- Then delete the original default stage
Cannot Delete Last Stage #
You must always have at least one stage in your system. If you try to delete the last remaining stage, you’ll see an error:
Error: Cannot delete the last stage. You must have at least one stage in your system.
Best Practices #
Before Deleting a Stage #
- Review Contacts: Check how many contacts are in the stage
- Manual Migration: Consider manually moving contacts to appropriate stages first
- Team Communication: Notify your team before deleting stages
- Backup Data: Export contacts if you want a backup
- Check Integrations: Verify external systems don’t reference the stage
Alternative to Deletion #
Instead of deleting a stage, consider:
- Renaming it to repurpose it
- Moving Contacts manually to other stages
- Archiving (if your workflow supports it)
- Hiding it from active use (via custom code)
After Deletion #
- Verify Migration: Check that contacts were moved correctly
- Update Documentation: Update team documentation
- Review Reports: Ensure reports still work correctly
- Check Integrations: Verify external systems adapted to the change
Recovering from Accidental Deletion #
No Built-In Undo #
PloverCRM doesn’t have a built-in undo feature for stage deletion. Once confirmed, the deletion is permanent.
Recovery Options #
If you accidentally delete a stage:
- Recreate the Stage: Create a new stage with the same name
- Manual Reassignment: Manually move contacts back to the new stage
- Database Restore: Restore from a database backup (if available)
- Contact History: Use contact history to identify which contacts were affected
Prevention #
- Always read the warning message carefully
- Double-check the stage name before confirming
- Consider the number of affected contacts
- Test in a staging environment first
Technical Details #
Database Operations #
When deleting a stage:
<span class="hljs-comment">-- 1. Get all contacts in the stage</span>
<span class="hljs-keyword">SELECT</span> post_id <span class="hljs-keyword">FROM</span> wp_postmeta
<span class="hljs-keyword">WHERE</span> meta_key = <span class="hljs-string">'plover_crm_stage'</span>
<span class="hljs-keyword">AND</span> meta_value = <span class="hljs-string">'old-stage-slug'</span>;
<span class="hljs-comment">-- 2. Update contacts to default stage</span>
<span class="hljs-keyword">UPDATE</span> wp_postmeta
<span class="hljs-keyword">SET</span> meta_value = <span class="hljs-string">'new-stage-slug'</span>
<span class="hljs-keyword">WHERE</span> meta_key = <span class="hljs-string">'plover_crm_stage'</span>
<span class="hljs-keyword">AND</span> meta_value = <span class="hljs-string">'old-stage-slug'</span>;
<span class="hljs-comment">-- 3. Delete stage definition</span>
<span class="hljs-keyword">DELETE</span> <span class="hljs-keyword">FROM</span> wp_options
<span class="hljs-keyword">WHERE</span> option_name = <span class="hljs-string">'plover_crm_stages'</span>;
Performance Considerations #
- Deleting stages with many contacts may take a few seconds
- The operation is performed in a transaction (all or nothing)
- Large databases (10,000+ contacts) may experience brief slowdown
- The system handles the migration efficiently
API Impact #
- API calls referencing the deleted stage will return errors
- Mobile apps will sync the stage removal
- Webhooks may need updating if they reference the stage
- External integrations should handle stage deletion gracefully
Troubleshooting #
Can’t Delete Stage #
Problem: The delete button is disabled or doesn’t work.
Solutions:
- Check if it’s the default stage (can’t delete default)
- Verify you have permission to delete stages
- Check if it’s the last remaining stage
- Try a different browser
- Check for JavaScript errors in console
Contacts Not Moved Correctly #
Problem: Some contacts weren’t moved to the default stage after deletion.
Solutions:
- Refresh the contact list
- Clear WordPress cache
- Check contact history to verify the move
- Manually move any remaining contacts
- Contact support if data appears lost
Error During Deletion #
Problem: An error message appears when trying to delete a stage.
Solutions:
- Check database connection
- Verify you have sufficient permissions
- Try again after a few minutes
- Check server error logs
- Contact support if the issue persists
Stage Reappears After Deletion #
Problem: A deleted stage reappears in the list.
Solutions:
- Clear WordPress cache
- Clear browser cache
- Check if another admin recreated it
- Verify the deletion completed successfully
- Check for plugin conflicts
Related Articles #
- Managing Stages
- Stage Cascade Rename
- Stage Colors Customization
- Contact Stages Overview
- Bulk Operations
FAQ #
Q: Can I recover a deleted stage?
A: No, stage deletion is permanent. You’ll need to recreate the stage and manually reassign contacts.
Q: What happens to contacts in a deleted stage?
A: They’re automatically moved to the default stage (usually “New” or “Lead”). No contact data is lost.
Q: Can I delete multiple stages at once?
A: No, stages must be deleted one at a time to ensure data integrity and provide clear feedback.
Q: Will deleting a stage affect my reports?
A: Historical reports may show the deleted stage name. New reports will only show active stages.
Q: Can I prevent certain stages from being deleted?
A: Not through the UI, but you can add custom code to protect specific stages from deletion.
Last Updated: February 3, 2026
Applies To: PloverCRM 2.0+