FormForge Pro Operations
Complete reference for the 7 FormForge Pro Operations tools in Royal MCP Pro. Read individual entries and per-form analytics, paginated bulk entry export, bulk delete entries with 72-hour undo, form duplication, spin up new forms from templates, and re-fire email notifications for a batch of entries. Preview before every destructive write.
All seven tools on this page wrap the paid FormForge Pro plugin. FormForge Pro must be installed and active on the site — the free FormForge plugin doesn't include the underlying analytics API, template system, or bulk-notification hooks these tools call into. Tools return a clean formforge_pro_not_active error envelope when FormForge Pro is missing — no partial state is written. Not to be confused with Royal MCP Pro, which is what gates every tool on this page in the first place.
Prerequisites
- FormForge Pro installed and active (see the plugin page at royalplugins.com/formforge)
- Royal MCP Pro installed and licensed (see Getting Started)
- MCP client connected to your site (Claude Desktop, ChatGPT connector, Cursor, or any MCP-compatible client)
- Your MCP-connecting WordPress user needs
manage_optionsfor form CRUD and bulk operations, oredit_postsfor entry reads (see capability model)
Tools that reference a form or entry by ID refuse when the target can't be resolved and return form_not_found or entry_not_found. Nothing is partially written on a resolution failure.
Capability model
FormForge Pro Operations tools use two capability tiers matching the two kinds of work they do:
edit_posts— entry reads (formforge_get_entry,formforge_get_analytics) and paginated bulk export. Reading entries is a content-editor-scoped operation, not a site-admin one.manage_options— bulk delete, bulk resend notifications, duplicate form, create from template. Anything that changes site-wide form configuration or dispatches emails requires administrator.
Every tool falls back to manage_options if the scoped capability is missing. If your MCP-connecting user is an administrator this is all transparent.
Shared safety layer
Every FormForge Pro write tool runs through the same safety layer used across Royal MCP Pro's write surface, with a couple of FormForge-specific patterns:
- Cap checks. Every tool checks the appropriate scoped cap first (
edit_postsfor reads,manage_optionsfor writes and email dispatches). Fails-first withinsufficient_capsif the caller doesn't have it — no partial writes. - Form + entry resolution. Tools that reference a form or entry by ID resolve against FormForge's own registry first and refuse with
form_not_found/entry_not_foundif the target doesn't exist. No silent creation. - Confirm tokens on bulk delete.
formforge_bulk_delete_entriesis two-step by design: call once with the entry ID set to get a five-minute confirm token plus a preview count; call again with the token to persist. Prevents accidental fat-finger deletes. - 72-hour undo tokens on destructive writes.
formforge_bulk_delete_entriesandformforge_duplicate(undo-able direction) return an undo token good for 72 hours. Undo on delete restores every deleted entry with its exact prior payload; undo on duplicate deletes the created form. - No undo on email dispatches.
formforge_bulk_resend_notificationsreturnsundo_token: "NO_UNDO_SCOPE"— emails already left the box. Preview machinery on the read step lets you eyeball the recipient set before firing. - Audit Log row on every call. Success, error, and undone states all produce audit rows.
The 7 tools
Grouped by write shape. Two read tools (entry data + analytics) require the edit_posts capability; three bulk operations and two form-creation tools require manage_options.
Entry reads (2)
Side-effect-free. edit_posts capability required.
formforge_get_entry
Fetch a single form submission by entry ID. Returns the entry's field values, submission timestamp, submitter IP (if capture is enabled on the form), user agent, referrer, and any per-entry metadata FormForge Pro captured (e.g. UTM parameters, custom hidden fields).
Cap
edit_posts
Arguments
| Name | Type | Description |
|---|---|---|
entry_id required | integer | The FormForge entry ID. |
include_meta | boolean | Include per-entry metadata (UTM, referrer, custom hidden fields). Default true. |
Example prompt
Show me the full details of FormForge entry 4287, including any UTM parameters captured on submission.Read-only.
formforge_get_analytics
Per-form submission analytics over a date range: total submissions, conversion rate (submissions / page views if tracking is enabled), abandonment rate at each field, average time-to-submit, top referrer sources, top UTM sources, and per-field completion rates.
Cap
edit_posts
Arguments
| Name | Type | Description |
|---|---|---|
form_id required | integer | The FormForge form ID. |
date_from | string | ISO 8601 date lower bound. Default: last 30 days. |
date_to | string | ISO 8601 date upper bound. Default: today. |
include_field_breakdown | boolean | Include per-field completion + abandonment rates. Default true. |
Example prompt
Show me the analytics for form 12 over the last 14 days, including field-level completion rates.Read-only.
Bulk operations (3)
Bulk export is read-only. Bulk delete is a two-step confirm flow with a 72-hour undo. Bulk resend notifications dispatches emails — no undo scope.
formforge_bulk_export_entries
Paginated bulk export of form entries as JSON. Cap 500 entries per call. Response contains a page cursor for the next batch. Supports the same filter set as the FormForge admin entries view.
Cap
edit_posts
Arguments
| Name | Type | Description |
|---|---|---|
form_id required | integer | The FormForge form ID. |
status | string | One of completed / partial / spam / trashed. Default completed. |
date_from | string | ISO 8601 date lower bound. |
date_to | string | ISO 8601 date upper bound. |
search | string | LIKE match against entry field values. |
paginate | object | {page, per_page}. Defaults page 1, per_page 100, max 500. |
Example prompt
Export the last 30 days of completed submissions from form 12, 200 per page, ordered by submission date descending.Read-only.
formforge_bulk_delete_entries
Bulk-delete form entries. Two-step confirm: call 1 returns a five-minute confirm_token plus the exact list of entry IDs that would be deleted; call 2 passes the token back and commits. Deleted entries are captured in the undo payload so the 72-hour undo can restore every one with its exact prior field values and metadata.
Cap
manage_options
Arguments
| Name | Type | Description |
|---|---|---|
entry_ids required | integer[] | Explicit list of entry IDs to delete. Cap 500 per call. |
confirm_token | string | Required for step 2. One-shot — consumed on commit to prevent double-deletes. |
Example prompt
Delete FormForge entries 4200 through 4285 (the test submissions I made while setting up the form).Undo: 72h token — restores every deleted entry with its exact prior field values, submission timestamp, and metadata.
formforge_bulk_resend_notifications
Re-fire the email notification hooks for a batch of already-submitted entries. Useful when a notification failed on original submission (SMTP outage, misconfigured recipient) and you need to send it now without re-triggering downstream integrations. Wraps FormForge Pro's own send_notifications() so it respects every notification rule, template, and conditional logic configured on the form.
Cap
manage_options
Arguments
| Name | Type | Description |
|---|---|---|
entry_ids required | integer[] | Explicit list of entry IDs whose notifications should be re-sent. Cap 500 per call. |
notification_ids | integer[] | Optional. Restrict to specific notification IDs configured on the form. Omit to fire every notification for each entry. |
Example prompt
Re-fire the admin notification email for entries 4287 through 4295 (they were submitted while my SMTP provider was down).NO UNDO. Emails already left the box. Per-entry send outcomes are legible in the response (sent / skipped / failed with reason).
Form creation shortcuts (2)
Both tools create a new FormForge form. Duplicate copies an existing form (including notification config, field logic, and styling); create-from-template spins up a new form from a FormForge Pro template.
formforge_duplicate
Duplicate an existing form by ID. Copies every field, notification rule, conditional logic branch, styling override, and post-submit action. The clone starts with a fresh entry table — existing submissions are NOT copied.
Cap
manage_options
Arguments
| Name | Type | Description |
|---|---|---|
source_form_id required | integer | The form ID to duplicate. |
new_title required | string | Title for the cloned form. |
copy_notifications | boolean | Whether to copy notification config. Default true. |
copy_confirmations | boolean | Whether to copy post-submit confirmation messages/redirects. Default true. |
Example prompt
Duplicate form 12 ("Contact Us") as "Contact Us — Landing Page Version" with notifications and confirmations copied.Undo: 72h token — deletes the cloned form. Original form is untouched.
formforge_create_from_template
Spin up a new form from a FormForge Pro template. Templates ship with pre-configured field structure, notification defaults, and confirmation messages tuned for common use cases (contact, quote request, event registration, feedback survey, lead capture, etc.).
Cap
manage_options
Arguments
| Name | Type | Description |
|---|---|---|
template_slug required | string | Template identifier. Use the FormForge admin to list available templates. |
new_title required | string | Title for the created form. |
notification_email | string | Override the default admin notification recipient. Defaults to the site admin email. |
confirmation_message | string | Override the template's default post-submit confirmation message. |
Example prompt
Create a new form titled "2026 Customer Feedback" from the "customer-satisfaction-survey" template, sending notifications to feedback@example.com.Undo: 72h token — deletes the created form.
Still Stuck? Two-Step Support Path
If a FormForge Pro tool isn't behaving the way you expected, work through these two steps in order — most tool-level failures resolve at Step 1 because they're actually MCP-connection, host-layer, or FormForge-Pro-availability issues, not FormForge Pro Operations specific.
Step 1: Start with the Royal MCP Troubleshooting Guide
Royal MCP Troubleshooting — Start Here covers MCP-layer issues. If Claude can't reach your site at all, the tool call never fires — that guide is where to start.
For Pro-specific patterns:
- Undo token errors — expired, consumed, or handler missing
- Undo Tokens & Reversibility — how the 72h undo flow on destructive tools works
- Pro tool returned upgrade prompt with valid license
For FormForge Pro-specific patterns:
formforge_pro_not_active. Every tool on this page requires FormForge Pro. The free FormForge plugin doesn't include the analytics API, template system, or bulk-notification hooks these tools wrap. Install FormForge Pro from royalplugins.com/formforge to unlock.form_not_found/entry_not_found. The tool couldn't resolve the target by ID. Confirm the form or entry ID via the FormForge admin (WP Admin → FormForge → Forms or → Entries) before re-calling.confirm_token_invalidonformforge_bulk_delete_entries. Confirm tokens are one-shot with a 5-minute TTL. If the token expired or was already consumed, re-run step 1 with the entry ID list to get a fresh token.batch_too_large. Every bulk tool caps at 500 entries per call. Narrow the filter or split the batch and re-call.- Notifications not firing on
formforge_bulk_resend_notifications. The tool wraps FormForge Pro's ownsend_notifications()path, so if notifications aren't firing when you re-fire them here, the underlying cause is the same as when they don't fire on original submission — usually SMTP config. Check WP Admin → FormForge → Settings → Email Log, then Royal SMTP (or your SMTP plugin) admin dashboard.
Step 2: Email priority support
If you've worked through Start Here and the relevant Pro-specific doc and the issue still isn't resolved, email priority support from your purchase email address at support@royalplugins.com. Priority email support is included with your license — typical response within 24 hours. Never include your license key in email; we look it up from your purchase address.
- Your hosting provider (SiteGround, Cloudways, Hostinger, Kinsta, WP Engine, Liquid Web, self-hosted VPS, etc.)
- Royal MCP Pro version from WP Admin → Plugins
- FormForge Pro version from WP Admin → Plugins
- Active caching plugins (LiteSpeed Cache, WP Rocket, W3 Total Cache, SpeedyCache, Hummingbird, none)
- Active security plugins (Wordfence, Defender Pro, Solid Security, NinjaFirewall, none)
- Active SMTP plugin (Royal SMTP, WP Mail SMTP, Fluent SMTP, none) — only relevant for notification issues
- Cloudflare or CDN in front of the site? If yes, is “Manage AI Bots” or “Bot Fight Mode” on?
- Which MCP client — claude.ai web custom connector, Claude Desktop with
mcp-remote, ChatGPT MCP, Cursor, or another MCP-compatible client - The exact FormForge tool name and args you called (e.g.
formforge_bulk_delete_entrieswithentry_ids: [4200, 4201, 4202]) - The exact error message returned (from the MCP client's chat surface), plus any
ofid_xxxxxreference code if claude.ai shows one - Screenshot of the most recent Pro tool row in Audit Log with View Details expanded — or confirmation that the log is empty after a reproduced failure
- The target form ID and a screenshot of that form in the FormForge admin — so we can visually confirm the state we're operating against