Overview
RescueFill is a WordPress plugin that automatically captures partial form submissions and helps you recover abandoned leads. 68% of visitors who start your form never finish it — RescueFill captures their email the moment they type it and gives you a full suite to bring them back.
📥 Real-time Capture
Captures form data as visitors type — before they abandon.
📋 Audience Lists
Colour-tagged lists for lead segmentation.
📣 Broadcast Campaigns
Send targeted emails to lists via WordPress SMTP.
⚡ Pro: Leads Management
Full-featured table with filtering, search, and pagination.
⚡ Pro: Export & Webhooks
CSV/JSON export and real-time webhook events.
⚡ Pro: Funnels & Sequences
Drag-drop automation builder and multi-step drip sequences.
Supported Forms
- Contact Form 7
- WPForms (Lite & Pro)
- Gravity Forms
- Ninja Forms
- Elementor Forms
- Formidable Forms
- Any HTML
<form>with an email field
Installation
From WordPress.org
- Go to Plugins → Add New in your WordPress admin
- Search for "RescueFill"
- Click Install Now then Activate
Manual Upload
- Download the
rescuefill.zipfile - Go to Plugins → Add New → Upload Plugin
- Choose the zip file and click Install Now
- Activate the plugin
Pro Addon Installation
- Purchase a Pro licence at rescuefill.com/pricing
- Download
rescuefill-pro.zipfrom your account - Upload and activate alongside the free plugin
- Enter your licence key when prompted
Quick Start
- Navigate to RescueFill in your admin sidebar
- Configure email settings under Settings → Email & Providers
- The plugin starts tracking form submissions immediately
- Watch leads appear in the Dashboard as visitors fill forms
- Create an Audience List and assign leads
- Send a Campaign to recover abandoned leads
Lead Tracking
RescueFill injects a lightweight JavaScript tracker on your pages that monitors form field changes. When a visitor types their email, the tracker sends the data to the REST API endpoint, and a lead record is created instantly.
How Detection Works
- The tracker listens for
changeandblurevents oninput[type="email"] - When an email is detected, a periodic save runs every N seconds (configurable)
- Form data is captured progressively — the more fields they fill, the more data you get
- When the tab closes without submitting, the lead is marked abandoned after the inactivity threshold
Inactivity Threshold
The inactivity threshold (default: 30 minutes) determines how long to wait after the last activity before marking a lead as abandoned. Adjust this in Settings → General.
Dashboard
The dashboard provides a real-time overview of your lead recovery performance:
- Total Leads — all captured leads
- Abandoned — leads that left without submitting
- Recovered — leads who returned via recovery link
- Recovery Rate — percentage of abandoned leads recovered
- Lead Status Breakdown — visual counts by status
- Recent Leads — latest captured leads with status badges
Leads Management PRO
The Leads screen provides a full-featured table with filtering, search, pagination, and inline actions.
Filters
| Filter | Description |
|---|---|
| Search | Search by email, form name, city, or country |
| Status | Active, Abandoned, Recovered, Submitted |
| List | Filter by assigned list or "Unassigned" |
| Country | Filter by country code |
Inline Actions
- View — open lead detail modal with form data, location, and actions
- Assign to List — dropdown to assign/change list
- Delete — permanently remove a lead
- Send Reminder — send a recovery email (in detail modal)
Bulk Assign to List
Select multiple leads using the checkboxes, then click "📋 Assign to List" to bulk assign all selected leads to a list at once.
Audience Lists
Lists help you segment leads into targeted groups. Each list has a colour tag for easy identification.
Creating a List
- Go to Lists → click "+ New List"
- Enter a name, optional description, and pick a colour
- Optionally add auto-assign rules (Pro)
- Click Create List
Auto-Assign Rules PRO
With the Pro addon, you can configure location-based auto-assign rules per list. Leads matching a country code, city, or region will be automatically placed in the list.
Campaigns
Send targeted broadcast emails to your audience lists. Create campaigns with a name, subject line, body (with template tags), and select a sending provider.
Template Tags
| Tag | Description |
|---|---|
{name} | Lead's name (from form data) |
{email} | Lead's email address |
{form_name} | Name of the form |
{site_name} | Your website name |
{recovery_link} | Link to recover the form |
{date} | Current date |
{city} | Lead's city |
{country} | Lead's country |
Sending Providers
| Provider | Availability | Notes |
|---|---|---|
| WordPress SMTP | FREE | Uses your site's default mail function |
| Brevo (Sendinblue) | PRO | Transactional API for better deliverability |
| SendGrid | PRO | High-volume sending with analytics |
Export PRO
Export leads as CSV or JSON with custom field selection and filter conditions.
- Choose which fields to include (email, status, country, dates, etc.)
- Filter by status, list, country, date range, or form
- Set maximum record limit (up to 50,000)
- Download instantly from the browser
Settings
General
- Enable/Disable Tracking — toggle form monitoring
- Inactivity Threshold — minutes before marking as abandoned
- Save Interval — how often the tracker sends data (seconds)
- Data Retention — auto-purge recovered/submitted leads after N days
Email & Providers
- From Name / Email — sender identity
- Reply-To Email — where replies go
- Email Subject & Body — default recovery email template
- Provider Selection — SMTP, Brevo, or SendGrid
- API Keys — Brevo / SendGrid API key management
Advanced (GDPR/CCPA)
- GDPR Mode — require consent before tracking
- Track IP — enable/disable IP collection
- Track Location — enable/disable geolocation
Multi-Step Sequences PRO
Create automated drip email sequences with multiple steps that fire based on configurable delays. When a lead is marked as abandoned, they are enrolled in the active sequence automatically.
Creating a Sequence
- Go to Sequences → click "+ New Sequence"
- Add steps with subject, body, delay, and enable/disable toggle
- Set trigger delay (minutes after abandonment)
- Optionally target a specific list and provider
- Activate the sequence
Multi-Subsequence Campaigns PRO
Enhance any broadcast campaign with follow-up subsequence steps. Each step has its own subject line, body, delay (days + hours), and conditions.
How It Works
- Create or edit a campaign
- Click the "🔄 Steps" button on the campaign row
- Add follow-up steps with delay and conditions
- Conditions include: skip recovered, only unopened, only no-click
- Save and click "🚀 Schedule & Send All"
- Steps are scheduled via WP Cron based on their delay settings
Funnel Builder PRO
The drag-drop funnel builder lets you create visual automation workflows with nodes
for Email, Delay, Condition, List Assignment, Webhook, and more. Funnels use a directed
graph (nodes + edges) executed by the server — each abandoned lead is enrolled and tracked
independently via the rfpro_funnel_enrollments database table.
How Enrollment Works
- When a lead is marked abandoned, the engine finds all active funnels
- The lead is enrolled in each matching funnel (one enrollment record per funnel)
- Execution starts at the Trigger node and follows edges to the next node
- Delay nodes schedule a WP Cron event to resume after the specified time
- Condition nodes branch via Yes/No edges based on lead field values
- Enrollment completes when an End node or dead-end is reached
Node Types
| Node | Description |
|---|---|
| ⚡ Trigger | Entry point — fires when a lead is abandoned |
| 📧 Send Email | Send a personalised email (subject, HTML body, provider) |
| ⏰ Wait / Delay | Pause execution for minutes, hours, days, or weeks |
| 🔀 Condition | Branch Yes/No based on a lead field comparison |
| 📋 Assign List | Move the lead to a specified audience list |
| 🔗 Webhook | Fire an HTTP POST to an external URL with lead data |
| 🏁 End | Marks the enrollment as completed |
Condition Operators
| Operator | Description |
|---|---|
equals | Field value exactly matches |
not_equals | Field value does not match |
contains | Field value contains the string (case-insensitive) |
not_contains | Field value does not contain the string |
is_empty | Field has no value |
is_not_empty | Field has a value |
Available Condition Fields
country_code, country_name, city, region, status, email, form_id, form_name
Email Template Tags in Funnels
| Tag | Description |
|---|---|
{name} | Lead's name from form data |
{email} | Lead's email address |
{site_name} | Site name |
{recovery_url} | Personalised recovery link (token-based) |
{city} | Lead's city |
{country} | Lead's country name |
{form_name} | Name of the form they were filling |
Built-in Templates
Two templates are available from the + New Funnel dialog:
- Welcome Sequence — 3 emails over 3 days (immediate, +1 day, +2 days)
- Abandoned Form Recovery — conditional branching: high-intent leads get a personalised email; others get a general reminder
Webhooks PRO
Configure outgoing webhooks with HMAC signatures, retry logic, and delivery logs. Connect to Zapier, Make (Integromat), n8n, or any HTTP endpoint.
Events
lead.created— new lead starts filling a formlead.abandoned— lead abandons a formlead.recovered— lead clicks recovery linklead.submitted— lead completes the formemail.sent— recovery email sentlist.assigned— lead assigned to a list
Brevo / SendGrid PRO
Replace WordPress SMTP with professional email delivery services for better deliverability and analytics.
- Get your API key from Brevo or SendGrid
- Go to Settings → Email & Providers
- Select your provider and paste the API key
- Use Send Test to verify the connection
Location-Based Auto-Lists PRO
Automatically route leads to lists based on their geolocation. Configure rules per list or globally via the Location Rules panel.
Rule Types
| Type | Example |
|---|---|
| Country Code | US, GB, IN |
| City (partial match) | New York, London |
| Region / State | California, Ontario |
A/B Testing PRO
Split-test subject lines, email copy, timing, and CTAs to optimise your recovery rates. Available on Pro and Agency plans.
REST API
All endpoints are under /wp-json/rescue/v1/ and require manage_options capability (except /track). The Pro funnel builder uses a secondary namespace /wp-json/rfpro/v1/.
Authentication
Pass the X-WP-Nonce header with a valid REST nonce obtained via wp_create_nonce('wp_rest').
Core Endpoints rescue/v1
| Method | Endpoint | Plan | Description |
|---|---|---|---|
| GET | /stats | FREE | Dashboard statistics |
| GET | /analytics | FREE | Daily analytics (date_from, date_to) |
| GET | /leads | FREE | List leads (paginated, filterable) |
| GET | /leads/{id} | FREE | Get single lead detail |
| PATCH | /leads/{id} | FREE | Update lead status/list |
| DELETE | /leads/{id} | FREE | Delete a lead |
| POST | /leads/{id}/reminder | FREE | Send recovery email |
| POST | /leads/{id}/assign-list | FREE | Assign lead to list |
| POST | /leads/bulk-assign | FREE | Bulk assign leads to list |
| POST | /leads/export | PRO | Export leads (CSV/JSON) |
| GET | /leads/countries | PRO | Get lead country list |
| GET/POST | /settings | FREE | Get/update settings |
| GET/POST | /lists | FREE | List/create lists |
| GET/PUT/DELETE | /lists/{id} | FREE | Manage a list |
| GET/POST | /campaigns | FREE | List/create campaigns |
| POST | /campaigns/{id}/send | FREE | Send a campaign |
| GET/POST | /campaigns/{id}/subsequences | PRO | Multi-step follow-up config |
| GET/POST | /sequences | PRO | List/create drip sequences |
| GET/POST | /funnels | PRO | List/create funnels |
| GET/POST | /webhooks | PRO | Manage outgoing webhooks |
| GET/POST | /ab-tests | PRO | Manage A/B tests |
| GET/POST | /location-rules | PRO | Location auto-list rules |
| GET | /analytics/pro | PRO | Open/click rates and advanced stats |
| POST | /track | FREE | Public lead tracking (no auth) |
Pro Funnel Builder Endpoints rfpro/v1
| Method | Endpoint | Description |
|---|---|---|
| GET | /funnels/templates | Built-in funnel templates |
| POST | /funnels/{id}/duplicate | Clone an existing funnel |
| GET | /funnels/{id}/enrollments | Active/completed enrollments for a funnel |
| GET | /funnels/{id}/stats | Funnel performance metrics |
| POST | /funnels/import | Import a funnel from JSON |
| GET | /funnels/{id}/export | Export a funnel as JSON |
Example: Get Leads
GET /wp-json/rescue/v1/leads?status=abandoned&per_page=10&page=1
X-WP-Nonce: <nonce>
Response:
{
"success": true,
"data": [ ... ],
"total": 42,
"pages": 5
}
Hooks & Filters
Actions
| Hook | Args | Description |
|---|---|---|
rescue_lead_saved | int $lead_id, array $data | Fires after a lead is created or updated |
rescue_lead_abandoned | int $lead_id | Fires when a lead is marked as abandoned (Pro uses this to enroll in funnels & sequences) |
rescue_lead_recovered | int $lead_id | Fires when a lead clicks the recovery link |
rescue_settings_updated | array $params | Fires after settings are saved — Pro saves its own keys here |
rfpro_resume_funnel_enrollment | int $enrollment_id | WP Cron action to resume a paused funnel enrollment after a Delay node |
rfpro_lead_auto_assigned_list | int $lead_id, int $list_id, array $data | Fires after a lead is auto-assigned to a list by location rules |
Filters
| Filter | Description |
|---|---|
rescue_get_settings | Extend the settings API response — Pro uses this to inject email provider keys |
rescue_send_campaign | Intercept campaign sending. Return int (sent count) to bypass SMTP; return null to fall through |
RESCUE_js_data | Extend JS data passed to the React admin app (Pro flags, provider settings, etc.) |
rescue_cleanup_days_old | Override the data retention period (default: 90 days) |
rescue_geoip_lookup | Override the geolocation provider or result |
Developer Example: Custom Funnel Action
// Notify Slack when a lead completes a funnel
add_action( 'rfpro_resume_funnel_enrollment', function( $enrollment_id ) {
// enrollment completes when status=completed
global $wpdb;
$row = $wpdb->get_row( $wpdb->prepare(
"SELECT * FROM {$wpdb->prefix}rfpro_funnel_enrollments WHERE id = %d",
$enrollment_id
) );
if ( $row && $row->status === 'completed' ) {
// fire your custom notification
}
} );
GDPR / CCPA Compliance PRO
RescueFill includes built-in GDPR/CCPA compliance features:
- GDPR Mode — requires explicit consent before tracking
- Disable IP Tracking — stop collecting IP addresses
- Disable Location Tracking — stop geolocation lookups
- Data Retention — auto-purge old leads after configurable days
- Right to Deletion — delete individual leads from the admin
License Activation PRO
The RescueFill Pro addon uses the Software License Manager (Tips & Tricks HQ) hosted at themefreex.com to validate and manage licence keys.
Activating Your Licence
- Purchase a Pro licence at themefreex.com/rescuefill-pro
- Check your order confirmation email — the licence key will be included
- In your WordPress admin go to RescueFill → Licence
- Paste your key into the Licence Key field and click Activate
- The page will refresh with your plan (Pro / Agency), expiry date, and activated domain
Deactivating / Transferring
To move your licence to a different site, click Deactivate on the Licence page. This frees up one activation slot. You can then re-activate on the new site.
Licence Plans
| Plan | Sites | Features |
|---|---|---|
| Pro — Single | 1 | All Pro features |
| Pro — 5 Sites | 5 | All Pro features |
| Agency — Unlimited | Unlimited | All Pro features + white-label mode |
Automatic Renewal Check
Once activated, RescueFill Pro checks your licence status daily via WP Cron. If the key has expired, Pro features are gracefully disabled and a notice appears in the admin — existing data and leads are never deleted.
Integrations — Zapier, Make & n8n PRO
RescueFill Pro fires real-time webhook events to any HTTP endpoint. Connect to Zapier, Make (Integromat), n8n, or build a custom integration in minutes.
Setting Up a Webhook
- Go to RescueFill → Integrations
- Click + New Webhook
- Enter a name and the destination URL (your Zapier catch URL, Make webhook, n8n webhook, etc.)
- Select one or more events to subscribe to
- Optionally enable HMAC Signature and set a secret key for verification
- Click Save — the webhook fires on the next matching event
Webhook Events
| Event | When it fires |
|---|---|
lead.created | A visitor starts typing in a form |
lead.abandoned | Lead is marked abandoned after inactivity |
lead.recovered | Lead clicks a recovery link and returns |
lead.submitted | Lead completes the form |
email.sent | A recovery or campaign email was sent |
list.assigned | Lead is assigned to an audience list |
Webhook Payload
POST https://your-endpoint.com/webhook
Content-Type: application/json
X-RescueFill-Signature: sha256=<hmac_hex>
{
"event": "lead.abandoned",
"timestamp": "2026-03-30T14:22:10Z",
"site": "https://yoursite.com",
"lead": {
"id": 42,
"email": "jane@example.com",
"name": "Jane Doe",
"phone": "+1 555 0100",
"status": "abandoned",
"city": "New York",
"country_code": "US",
"country_name": "United States",
"form_name": "Contact Form",
"created_at": "2026-03-30T14:10:00Z"
}
}
Verifying HMAC Signatures
// PHP example
$secret = 'your-webhook-secret';
$payload = file_get_contents('php://input');
$sig = $_SERVER['HTTP_X_RESCUEFILL_SIGNATURE'] ?? '';
$expected = 'sha256=' . hash_hmac('sha256', $payload, $secret);
if ( ! hash_equals($expected, $sig) ) {
http_response_code(401);
exit('Invalid signature');
}
Zapier Quick-Start
- In Zapier, create a new Zap → Trigger: Webhooks by Zapier → Catch Hook
- Copy the generated Zapier webhook URL
- Paste it into RescueFill Integrations → New Webhook, subscribe to
lead.abandoned - Click Test or abandon a test form to send a sample payload
- Map the fields in Zapier and connect your action (HubSpot, Google Sheets, Slack, etc.)
Make (Integromat) Quick-Start
- In Make, add a Webhooks → Custom webhook module
- Copy the webhook URL from Make
- Paste it into RescueFill Integrations → New Webhook
- Send a test event — Make will auto-map the payload fields
- Build your scenario with the lead data (CRM update, email, spreadsheet, etc.)
n8n Quick-Start
- In n8n, add a Webhook node, set method to POST, copy the URL
- Paste into RescueFill Integrations → New Webhook
- Trigger a test event
- Connect downstream nodes (HTTP Request → CRM, Email Send, etc.)
Retry Logic
Failed deliveries (non-2xx response or network timeout) are retried automatically: 3 attempts at 1-minute, 5-minute, and 30-minute intervals. Each attempt is logged in the Delivery Log tab of the Integrations screen.
WooCommerce License Mapper
The RescueFill WooCommerce Licenses companion plugin is installed on themefreex.com (the licence server site). It bridges WooCommerce orders with the Software License Manager to automate licence key delivery.
Installation (Seller Site)
- Upload
rescuefill-woo-licenses.zipto your WooCommerce site - Activate. A new menu item appears under WooCommerce → RescueFill Plans
- For each WooCommerce product (or variation) you sell, set:
| Field | Description |
|---|---|
| Product / Variation ID | WooCommerce product or variation ID |
| Plan | pro or agency |
| Site Limit | Max activations (e.g. 1, 5, or 999 for unlimited) |
| Duration (days) | Licence validity — 365 for annual, 0 for lifetime |
Automated Flow
- Customer buys a Pro plan in your WooCommerce store
- On order completion the plugin calls the SLM API to create a licence key
- The licence key is appended to the WooCommerce order completion email
- Customer activates from RescueFill → Licence on their WordPress site
- On refund / cancellation the licence is automatically deactivated
Expiry Reminders
A daily WP Cron job sends renewal reminder emails to customers at 30, 7, and 1 day before licence expiry. Reminders are sent from your WooCommerce From Email address.
SLM API Credentials
The plugin uses hardcoded constants set to your themefreex.com SLM installation:
define( 'RFWL_SLM_URL', 'https://themefreex.com' );
define( 'RFWL_SLM_ACTIVATE_KEY', '69b8809474b014.90397835' );
define( 'RFWL_SLM_CREATE_KEY', '69b8809474afa9.52483643' );
define( 'RFWL_ITEM_REF', 'rescuefill-pro-398' );
Changelog
v2.2.0 — March 2026
- Fix: Pro auto-assign rules panel in Lists now correctly appears when Pro addon is active (was always showing upsell)
- Fix: Funnel builder — saved nodes and edges no longer display as 0 after create/edit (double JSON-encoding bug in REST)
- Fix:
isProflag now read synchronously at React mount — eliminates flash of upsell on first render - New: Location auto-assign rules are now stored per list and passed through the free plugin via WordPress filter hooks (
rescue_allow_list_auto_assign_rules,rescue_list_auto_assign_rules) - New: Full integrations screen with 12 pre-built app cards (Zapier, Make, n8n, HubSpot, Salesforce, ActiveCampaign, Slack, Mailchimp, Google Sheets, Airtable, Twilio, Custom Webhook)
- New: Software License Manager (SLM) client in Pro addon — daily cron validation, REST status endpoint, graceful degradation
- New:
rescuefill-woo-licensescompanion plugin for automated licence key delivery on themefreex.com - New: Funnel status validation on update (only
active,paused,draftaccepted)
v2.1.2 — February 2026
- ReactFlow drag-drop funnel builder UI polish
- Multi-subsequence campaign follow-up steps
- A/B testing framework scaffolding
- Improved GDPR consent mode in tracker
v2.1.0 — January 2026
- Initial public release of RescueFill Pro addon
- Funnel builder, drip sequences, webhooks, Brevo/SendGrid, location rules, export
FAQ
Does it work with Contact Form 7?
Yes! RescueFill auto-detects and integrates with all major form plugins including CF7.
Is the free version production-ready?
Absolutely. The free version includes lead capture, geolocation, lists, campaigns via SMTP, export, and full REST API.
What does the Pro addon add?
Pro adds multi-step sequences, multi-subsequence campaigns, drag-drop funnel builder, Brevo/SendGrid, webhooks with Zapier/Make, location-based auto-lists, A/B testing, and white-label (Agency).
Can I export leads to a CRM?
Yes — use Export for CSV/JSON, or connect via Webhooks (Pro) to push live data to HubSpot, Salesforce, or any endpoint.
How do recovery emails work?
Each lead gets a unique recovery token. The recovery link in emails redirects them back to the exact page with their form pre-filled.
What's the difference between Sequences and Subsequences?
Sequences are standalone automated drip flows triggered by lead abandonment. Subsequences are follow-up steps attached to a specific broadcast campaign — they let you add multi-step follow-ups to any one-off campaign.