Reference
25 Core Forms data variables, explained
Core Forms ships 25+ template variables for emails, redirects, and webhooks. Most users only know three. Here's the full reference.
Most Core Forms users know [name] and [email]. The plugin ships 25+ data variables. The other 23 are where the real automation happens.
Here’s the full reference, organized by use case.
Form field tokens
The basics. Match a form field’s name attribute, wrapped in square brackets:
[name]— value of the field named “name.”[email]— value of the field named “email.”[any_field_name]— value of any submitted field.
Field names are case-sensitive. [Name] and [name] are different tokens. Match exactly.
Whole-submission tokens
For dumping all fields at once:
[all]— every submitted field askey: valuelines.[all:label]— every submitted field with the field’s HTML label as the key.
Use [all:label] in email notifications. The label is what makes the email readable: “Email Address: jane@example.com” instead of “email_address: jane@example.com”.
Submission metadata
Information about the submission, not the form data:
[CF_TIMESTAMP]— full UTC timestamp of submission.[CF_DATE]— date in your site’s date format.[CF_TIME]— time in your site’s time format.[CF_SUBMISSION_ID]— the database ID of this submission row.[CF_IP_ADDRESS]— IP the submission came from.[CF_USER_AGENT]— browser user-agent string.
Use [CF_DATE] in subject lines: “New lead — [CF_DATE].” Searchable in Gmail, sortable in inboxes.
The referrer family
Where the form was submitted from:
[CF_REFERRER_URL]— full URL of the page the form was on.[CF_REFERRER_HOST]— just the host portion.[CF_REFERRER_PATH]— just the path portion.[CF_POST_ID]— the WordPress post ID containing the form.[CF_POST_TITLE]— the post’s title.[CF_POST_URL]— alias of[CF_REFERRER_URL].
These are gold for analytics. A contact form on three pages, one form record. The referrer tells you which page converted.
For a multi-page lead funnel, append [CF_POST_TITLE] to your CRM “lead source” field. You’ll know which content drove which lead.
User context (when logged in)
If the submitter is logged into WordPress:
[CF_USER_ID]— their WP user ID.[CF_USER_LOGIN]— their username.[CF_USER_EMAIL]— their account email.[CF_USER_DISPLAY_NAME]— their display name.
Empty when the submitter is a guest.
Use case: a member portal where logged-in users can request things. The form auto-tags the request with the user, no fields needed.
Form context
Information about the form itself:
[CF_FORM_ID]— the form’s ID.[CF_FORM_TITLE]— the form’s name.
Use [CF_FORM_TITLE] in email subjects: “[CF_FORM_TITLE] — New submission.” When you have 10 forms feeding the same inbox, this tells you which one fired.
Site context
Where the submission happened, in site terms:
[CF_SITE_NAME]— your site’s name (Settings → General).[CF_SITE_URL]— your home URL.[CF_ADMIN_EMAIL]— your site’s admin email.
Useful in auto-responders: “Thanks for contacting [CF_SITE_NAME]” instead of hardcoding the brand name.
Where you can use them
All 25 work in:
- Email subject and body — both notification and auto-responder actions.
- Slack / Discord / Telegram message body.
- Webhook URL and headers — for dynamic routing.
- Redirect URL on submit — pass values to the thank-you page.
- CRM action mappings — drop the variables into HubSpot properties, FluentCRM tags, Notion text properties.
A token works the same way in every context.
Real patterns I use
1. The lead source tag. In every CRM action, set a “Source” property to:
[CF_FORM_TITLE] — [CF_REFERRER_HOST][CF_REFERRER_PATH]
Result in CRM: “Demo Request — yoursite.com/pricing”
2. The redirect with context. Send users to a thank-you page, prefilled with their context:
/thanks/?email=[email]&form=[CF_FORM_ID]
The thank-you page can read the email from the URL and personalize the message (“Thanks, [first name]!”). Or fire conversion pixels with the email as a hashed identifier.
3. The webhook for Zapier. POST every submission to a Zapier webhook trigger with a JSON body that includes referrer:
{
"name": "[name]",
"email": "[email]",
"source_page": "[CF_REFERRER_URL]",
"form": "[CF_FORM_TITLE]",
"submitted_at": "[CF_TIMESTAMP]"
}
Zapier fans out to whatever five tools you’ve wired downstream.
4. The auto-responder with branding. In the auto-responder action body:
Hi [name],
Thanks for reaching out to [CF_SITE_NAME] from [CF_REFERRER_PATH].
We typically respond within 4 hours during business days.
Reference number: [CF_SUBMISSION_ID]
— The team at [CF_SITE_NAME]
The reference number is golden. When the user follows up later, “I submitted #1387” lets you find their record instantly.
What the variables don’t do
A few honest limits:
1. No conditional logic in the variable itself. You can’t write [email if not empty]. If the field is empty, the variable renders as empty string.
2. No formatting transformations. No [name | uppercase] or [email | lowercase]. The value renders verbatim.
3. No nested data. A single [address] field can’t be split into [address.street] and [address.city]. If you need that, split the form into multiple fields.
For 95% of automations, the basic substitution is enough.
The next step
Open one form. Add [CF_REFERRER_URL] to the email notification subject. Submit a test. Notice the inbox is suddenly more useful.
The full list lives in the form’s Actions tab — every action has a “data variables” reference panel with all 25 tokens. Bundled with everything else.